Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
fb0be31
Read the Docs setup
nids2001 Apr 23, 2021
6752982
Add pages from old docs
nids2001 Apr 30, 2021
a1addb8
Add Basic Functonality Manual
nids2001 Apr 30, 2021
9cbf2a3
Add Tools and Filters Reference page
nids2001 Apr 30, 2021
4c28403
Page Layout and Structure Changes
nids2001 May 5, 2021
9406ff5
Fix image embedding
nids2001 May 6, 2021
cff973f
Update remaining image embedding
nids2001 May 6, 2021
3351bf1
Fix page references
nids2001 May 6, 2021
d5c8474
Clean up excessive content in index files
nids2001 May 6, 2021
9566079
Update table reference
nids2001 May 6, 2021
74d39b7
Remove chapter numbers
nids2001 May 10, 2021
3b10d7e
Fix links
nids2001 May 10, 2021
7eb6484
Remove captions from toctrees
nids2001 May 10, 2021
7df169c
Fix code blocks
nids2001 May 10, 2021
47538b5
Move images
nids2001 May 10, 2021
d7bface
Update image references
nids2001 May 10, 2021
faa4981
Add custom stylesheet
nids2001 May 10, 2021
68ed996
Change from markdown tables to rst tables
nids2001 May 12, 2021
3b3d702
Create requirements.txt
nids2001 May 14, 2021
68f21e4
Update requirements.txt
nids2001 May 14, 2021
ae058c3
Merge branch 'master' into rtd_docs
nids2001 May 14, 2021
7b074a9
Remove /adjust figure mentions
nids2001 May 19, 2021
03f6812
Fix unexpected indent warnings
nids2001 May 19, 2021
a1c86c3
Change image captions to figcaptions to allow more customization
nids2001 May 20, 2021
2e52d97
Merge branch 'master' into rtd_docs
jessdtate May 21, 2021
d8de472
Inline images using eval_rst
nids2001 May 21, 2021
eaddc39
Fix duplicate definition warning
nids2001 May 21, 2021
e7933b4
Fit table to page and fix table image scaling
nids2001 May 25, 2021
be58557
Change tables to list-tables for better readability
nids2001 May 26, 2021
46cc6b2
Update more figure references
nids2001 May 28, 2021
cc4a8fb
Reference sections from different pages
nids2001 May 28, 2021
ca85cb2
Rearrange figures closer to where they are referenced
nids2001 May 28, 2021
eb2f9ba
Update image references
nids2001 May 28, 2021
77e6777
Small fixes
nids2001 Jun 4, 2021
1062375
Update ArithmeticFilter.md
nids2001 Jun 7, 2021
681da20
Update recommonmark version
nids2001 Jun 11, 2021
46d2d88
Fix references to other pages
nids2001 Jun 28, 2021
68afc72
Update external link
nids2001 Jun 28, 2021
b4b9b89
Change nav background
nids2001 Jun 28, 2021
ea1d731
Add references page
nids2001 Jun 29, 2021
ec84690
Fix links
nids2001 Jun 29, 2021
20e939b
Clean up toc
nids2001 Jun 29, 2021
02e3952
Add video tutorial
nids2001 Jul 9, 2021
3533ce4
Move to MyST
nids2001 Jul 15, 2021
259f965
Update page references
nids2001 Jul 15, 2021
931e49b
Fix header level warnings
nids2001 Jul 15, 2021
7bc39aa
Change list-tables to follow myst syntax
nids2001 Jul 15, 2021
05946d0
Use myst substitutions
nids2001 Jul 15, 2021
1976d97
Update in-line citations
nids2001 Jul 15, 2021
4feb0e9
Add numbered figure references
nids2001 Jul 16, 2021
b55abe6
Update figure names
nids2001 Jul 16, 2021
386c6cf
Auto-number figures
nids2001 Jul 16, 2021
cd918d4
Auto-label figure and table references
nids2001 Jul 22, 2021
b199102
Update theme to sphinx-book
nids2001 Jul 23, 2021
0bee092
Update theme to sphinx-book
nids2001 Jul 23, 2021
9c7eacd
Update conf.py
nids2001 Jul 23, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,6 @@ install_manifest.txt
CTestTestfile.cmake
DartConfiguration.tcl
xCode_bin*

# Sphinx builds
docs/_build/
11 changes: 11 additions & 0 deletions docs/_static/css/main.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
@import url('https://fonts.googleapis.com/css2?family=Fira+Sans:ital,wght@0,400;0,600;1,400&family=Staatliches&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Patua+One&display=swap');

body {
font-family: 'Fira Sans', sans-serif !important;
}

h1, h2, h3, h4, h5, h6 {
font-family: 'Patua One', cursive;
/* font-size: 2.2rem; */
}
Binary file added docs/_static/seg3d.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions docs/_templates/layout.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{% extends "!layout.html" %}
{% block rootrellink %}
<li><a href="https://project.invalid/">Project Homepage</a> &raquo;</li>
{{ super() }}
{% endblock %}
3 changes: 3 additions & 0 deletions docs/bib.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Bibliography
============
.. bibliography::
139 changes: 139 additions & 0 deletions docs/conf.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
# Configuration file for the Sphinx documentation builder.
#
# This file only contains a selection of the most common options. For a full
# list see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html

# -- Path setup --------------------------------------------------------------

# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
import os
import sys
sys.path.insert(0, os.path.abspath('.'))

# from recommonmark.transform import AutoStructify

# -- Project information -----------------------------------------------------

project = 'Seg3D'
copyright = '2021, The Scientific Computing and Imaging Institute at the University of Utah'
author = 'To be Added'

# The full version, including alpha/beta/rc tags
release = '0.01'


# -- General configuration ---------------------------------------------------

# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.

#extensions = [
# 'sphinx.ext.autodoc',
# 'sphinx.ext.napoleon',
# 'recommonmark',
# 'sphinxcontrib.bibtex',
# 'sphinx_markdown_tables'
#]

extensions = [
'sphinx.ext.autodoc',
'sphinx.ext.napoleon',
'myst_parser',
'sphinx_markdown_tables',
'sphinxcontrib.bibtex',
'notfound.extension'
]

myst_enable_extensions = [
"colon_fence", # Allow code fence using ::: (see https://myst-parser.readthedocs.io/en/latest/using/syntax-optional.html#syntax-colon-fence)
"linkify", # Allow automatic creation of links from URLs (it is sufficient to write https://google.com instead of <https://google.com>)
"substitution"
]

# Auto-generate header anchors up to level 6, so that it can be referenced like [](file.md#header-anchor).
# (see https://myst-parser.readthedocs.io/en/latest/using/syntax-optional.html#auto-generated-header-anchors)
myst_heading_anchors = 6

# auto number figures
numfig = True

# Path for bibtex files
bibtex_bibfiles = ['references.bib']

# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']

# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']

source_suffix = {
'.rst': 'restructuredtext',
'.md': 'markdown',
}

notfound_context = {
'title': 'Page Not Found',
'body': '''
<h1>Page Not Found</h1>
<p>Sorry, we couldn't find that page.</p>
<p>Try using the search box or go to the homepage.</p>
''',
}


# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'

# the master toctree doc
master_doc = 'index'

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = 'python'

# -- Options for HTML output -------------------------------------------------

# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
html_theme = 'sphinx_book_theme'

#html_theme = 'groundwork'

# html_style = '/css/main.css'

#on_rtd = os.environ.get('READTHEDOCS', None) == 'True'

#if not on_rtd: # only import and set the theme if we're building docs locally
# import sphinx_rtd_theme
# html_theme = 'sphinx_book_theme'
# html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]

# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".


html_static_path = ['_static']

html_css_files = ['css/main.css']

html_title = project

html_logo = '_static/seg3d.png'

html_theme_options = {
'logo_only': True
}

autosectionlabel_prefix_document = True
209 changes: 209 additions & 0 deletions docs/dev_docs/build.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,209 @@
Build Seg3D
=================

<!-- * [Installing Seg3D from source](#installing-seg3d-from-source)
* [Compiler Requirements](#compiler-requirements)
* [Windows](#windows)
* [Mac OS X](#mac-os-x)
* [Linux](#linux)
* [Dependencies](#dependencies)
* [Qt](#qt)
* [Seg3D 2.4 And Newer](#seg3d-24-and-newer)
* [Mac OS X](#mac-os-x-2)
* [Linux](#linux-2)
* [Seg3D 2.0 to 2.3](#seg3d-20-to-23)
* [Windows](#windows)
* [Mac OS X](#mac-os-x-1)
* [Linux](#linux-1)
* [Compiling Seg3D](#compiling-seg3d)
* [Seg3D 2.4 And Newer](#seg3d-24-and-newer-1)
* [Optional Image Registration Tools](#optional-image-registration-tools)
* [Seg3D Packages](#seg3d-packages)
* [Seg3D Data](#seg3d-data)
* [Seg3D Support](#seg3d-support) -->

<!-- Created by [gh-md-toc](https://github.com/ekalinin/github-markdown-toc) -->

## Installing Seg3D from source

### Compiler Requirements

**At least C++11 64-bit compiler support is required.**

#### Windows

The current source code must be compiled with the 64-bit version of Visual Studio 2013.
Visual Studio 2015 support is coming soon.
If building the installer using CPack, NSIS is required.
The code has not been tested under Cygwin or MinGW compilers.

#### Mac OS X

The source code base was built with Xcode 5-7 as well as GNU Make and Ninja and works for both environments on OS X 10.8+.
If building the installer using CPack, PackageMaker is required.

#### Linux

The code base has been tested for use with GCC, and this is the recommended compiler for
linux. GNU Make and Ninja build systems can be used. **Compiler must support C++11.**

### Dependencies

#### Qt

##### Seg3D 2.4 And Newer

Before building Seg3D, please make sure that **Qt 5.9** has been installed on your system.

###### Windows

A typical Qt 5.9 build is as follows:

+ Qt will need to be built from the command line using [Visual C++ command line tools](https://msdn.microsoft.com/en-us/library/f35ctcxw(v=vs.120).aspx). Troubleshooting tips can be found [here](http://stackoverflow.com/questions/21476588/where-is-developer-command-prompt-for-vs2013).
+ Perl and Python are required before building Qt from source. The link below includes download links for both dependencies.
+ Refer to the [Qt docs](http://doc.qt.io/qt-5/windows-requirements.html#building-from-source) for requirements for building from source.
+ Run ```configure``` from this new directory with the following parameters (using the ***-fast*** flag to speed up build process can be helpful too):

```
configure -platform win32-msvc2013 -no-gif -qt-libpng -qt-zlib -qt-libjpeg -no-openssl -skip qtwebengine -skip qtwebkit -D _BIND_TO_CURRENT_VCLIBS_VERSION=1 -debug-and-release -opensource -opengl desktop
```

+ You will be asked a few questions on license before configuring.
+ Now run nmake and compile all of Qt (this is a long build).

###### Mac OS X

Qt binaries are available on the Qt website or can be built from source code.

###### Linux

Qt 5 static libraries are **NOT** supported. If building from source, ensure that the shared library build is enabled.

If building from source, use the following:

```
./configure -qt-xcb -qt-zlib -nomake examples -nomake tests -skip qtwayland -skip qtwebengine -skip qtwebkit -opengl desktop
```

##### Seg3D 2.0 to 2.3

Before building Seg3D, please make sure that **Qt 4.7-4.8** has been installed on your system.

###### Windows

A Visual Studio binary build is available.
To our knowledge the Windows Visual Studio development libraries are only available in a 32-bit version.
A 64-bit version can be built from the source code download, configuring it as described on the Qt webpage.
A typical Qt build is as follows:

+ Download the open source version of Seg3D2. [Qt 4.8](http://download.qt.io/archive/qt/4.8/) is recommended.
+ Qt will need to be built from the command line using [Visual C++ command line tools](https://msdn.microsoft.com/en-us/library/f35ctcxw(v=vs.120).aspx). Troubleshooting tips can be found [here](http://stackoverflow.com/questions/21476588/where-is-developer-command-prompt-for-vs2013).
+ Create a new directory called ***C:\Qt\4.8-64bit*** (or name of your choice), change into that directory and copy all the source files into it.
+ Now, run ```configure.exe``` from this new directory with the following parameters (using the ***-fast*** flag to speed up build process can be helpful too):

```
configure.exe -platform win32-msvc2013 -no-gif -qt-libpng -qt-zlib -no-libmng -qt-libtiff -qt-libjpeg -no-openssl
-no-phonon -no-phonon-backend -no-qt3support -D _BIND_TO_CURRENT_VCLIBS_VERSION=1
-debug-and-release -opensource
```

+ You will be asked a few questions on license before configuring.
+ Now run nmake and compile all of Qt (this is a long build).

###### Mac OS X

Qt binaries are available on the Qt website or can be built from source code.

###### Linux

Qt is available from most package managers. Look for Qt 4.7-4.8.

#### CMake

[CMake](https://cmake.org/) versions 2.8 - 3.4 are supported.


### Compiling Seg3D

Once you have obtained a compatible compiler and installed Qt on your system, you need to
download and install CMake (<http://www.cmake.org>) to actually build the software.
CMake is a platform independent configuring system that is used for generating Makefiles,
Visual Studio project files, or Xcode project files.

Once CMake has been installed, run CMake from your build (***bin***) directory and give a path to the CMake ***Superbuild*** directory containing the master CMakeLists.txt file.

You may build Seg3D with [Ninja](https://ninja-build.org) by adding the tag "`-G Ninja`" to your cmake command. Note: Mac users will have to install Ninja with [Homebrew](https://brew.sh).

#### Seg3D 2.4 And Newer

CMake requires a path to the Qt 5 install directory. Typically, this directory will contain ***bin*** and ***lib*** directories.
For example, for Qt installed on Mac OS X from the Qt 5 binaries on the Qt site:

```
cd bin
```

```
cmake -DQt5_PATH:PATH=/Users/test/Qt5.5.1/5.5/clang_64 ../Superbuild
```

If building on Linux, the path may be under /usr/lib or /usr/lib64.

The console version ``ccmake``, or GUI version can also be used.
Set the **Qt5_PATH** variable to the location of the Qt 5 installation.

After configuration is done, generate the make files or project files for your favorite
development environment and build.

The build script can also be used:

```
./build.sh --qt5=/Users/test/Qt5.5.1/5.5/clang_64
```

The Seg3D application will be built in bin/Seg3D.

#### Seg3D 2.0 to 2.3

Running cmake on the command line:

```
cd bin
```

```
cmake ../Superbuild
```

Following the previous example, the Seg3D application will be built in bin/Seg3D.

The console version ``ccmake``, or GUI version can also be used.
You may be prompted to specify your location of the Qt installation.
If you installed Qt in the default location, it should find Qt automatically.

After configuration is done, generate the make files or project files for your favorite
development environment and build.

A bash build script (build.sh) is also available for Linux and Mac OS X to simplify the process.
Usage information is available using the ***--help*** flag:

```
./build.sh --help
```

#### Optional Image Registration Tools

To build the optional [python-based image registrations tools](ir-tools), the CMake option **BUILD_MOSAIC_TOOLS** must be turned on, either on the command line with the flag **-DBUILD_MOSAIC_TOOLS:BOOL=ON**, or in the console or GUI interfaces.

### Seg3D Packages

Build the ***package*** target in Visual Studio or Xcode, or ``make package`` using GNU make on Mac OS X.

## Seg3D Data

Seg3D sample data (also used in the tutorial) is available [here](https://github.com/CIBC-Internal/Seg3DData/releases).

## Seg3D Support

For questions and issues regarding building the software from source,
please email our support list: [seg3d@sci.utah.edu](mailto:seg3d@sci.utah.edu)
Loading