ENH: Add enhanced scalarbar actor class based on VTK6. Fixes #2919

The VTK6 vtkScalarBarActor class allows displaying annotations in
conjunction with labels. However, in Slicer we want to sample the
annotations for display just like color values since some color
tables have more than 10000 values and annotations.

The vtkSlicerScalarBarActor is based on vtkScalarBarActor class and
only overrides its LayoutTicks method to slightly modify the method
to enable sampling the annotations and display it as labels.

Additional remarks:

* Change colors module logic using the new class.

* Keep backward compatibility to VTK5.

* Added a python selftest based on scripted module superclass.

* Added a check box to toggle using the color names as labels, and set
default label formats when it's toggled to support strings or numbers.

* Added simple label format testing to avoid crashes that were seen when
using a string format with a number value.

* Regular expression associated with LabelFormat could be improved. This
is tracked by issue 3802

Co-authored-by: Nicole Aucoin <nicole@bwh.harvard.edu>

From: Kevin Wang <kevin.wang@rmp.uhn.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23566 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Ensure application can be killed using CTRL-C. Fixes #3804

This commits fixes a regression introduced by the addition of the
SlicerExtensionWizard module. See inlined comment for more details.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23567 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Ensure slice intersection position are updated using VTK6. Fixes #3803

This commit fixes a regression introduced when transitioning to VTK6.

Note that ideally a pipeline should be created, that would avoid to
manually call Update or Modified.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23568 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: fix case of Qt method in VTK branch

Qt methods start with lower case and probably this
branch never got tested on VTK5.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23569 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Script exited with error when writting out intermediate results with tasks that included subparcellation

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23570 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Update ITKv4 and BRAINSTools

The commit BRAINSia/BRAINSTools@7311363 related to the re-organization of
the "find_package(VTK)" call has not been included, this will be done
when Slicer itself will be re-organized.

// -----------------
ITK changes:

$ git shortlog v4.6.0...3147239 --no-merges
Bradley Lowekamp (4):
      ENH: Adding License file from upstream MetaIO
      ENH: Adding script to update MetaIO from upstream
      ENH: Remove ITK MetaIO to prepare for upstream import
      COMP: Fix variable type for Set/Get macros

David T. Chen (1):
      DOC: Fixed HistogramThresholdImageFitler

Gert Wollny (1):
      COMP: Fix SSE2 build errors with WrapITK on GCC 4.9. (ForRelease)

Hans Johnson (3):
      COMP: Add tolerance for comparing floating point
      PERF: Remove non-threadable algorithm components
      PERF: Remove large foot print of PDF derivatives.

Matthew McCormick (13):
      BUG: ArchiveTestingData.py future imports must occur at the beginning.
      DOC: Remove Image2.cxx reference from Book 2.
      DOC: Fix Software Guide page overruns in IterativeClosestPoint3.cxx.
      DOC: Remove references to Book 1 sections from Book 2.
      DOC: Make BinaryThresholdImageFilter not floating.
      DOC: Fix Software Guide figure caption for FlipImageFilter.
      DOC: Avoid duplicate figure description in ResampleImageFilter2.cxx.
      DOC: Remove duplicate figure in LaplacianRecursiveGaussianImageFilter2.cxx.
      DOC: ImageRandomConstIteratorWithIndex table reference.
      BUG: Bump GCCXML to 2014-08-06.
      BUG: Fix invalid assignment of second VoronoiBoundaryOrigin.
      BUG: Call clear instead of empty on PatchBasedDenoising EmptyCaches().
      BUG: Fix Size() in ImageToListSampleAdaptor for VectorImage's.

MetaIO Maintainers (1):
      MetaIO (reduced)

Michka Popoff (4):
      BUG: Improve SWIG version check
      BUG: Add VTK_VERSION for older VTK versions
      BUG: Update VTK minimum version (for release)
      BUG: Fix memory leak in MetaImageIO after exception


// -----------------
BRAINSTools changes:

$ git shortlog slicer-e5c9c8c_2014-07-29...slicer-57c31ab_2014-08-08 --no-merges
Ali Ghayoor (2):
      BUG: Fix cmake bug and replace a test baseline
      BUG: Fix ValidateBRAINSResampleTest4 by increasing tolearance

David Welch (9):
      WIP: Initial testing with one session/subject
      WIP: Run one session/subject successfully
      ENH: Refactored workflow with new config variable and singleSession.py executable
      STYLE: Updated configuration template file
      BUG: singleSession.py can now be called as an executable w/o modifying PYTHONPATH     BUG: Fixed --session flag to take in one or more session IDs
      BUG: Fixing the template running stage.
      STYLE: Remove python warning and reorganize imports
      STYLE: Removed master_config dictionary in favor of descriptive dictionary names
      ENH: Fixed command line for singleSession and template     STYLE: Moved imports in template to top of file     BUG: Fixed DataGrabber for template workflow     BUG: Fixed session checking in singleSe

Hans Johnson (27):
      ENH: Utilize new mattes with improved threading
      BUG: Fixed bugs in singleSession
      COMP: Address dependencies on tests.
      BUG: Incomplete refactorings done for Autoworkup
      ENH: Add convience alias for pushing changes.
      ENH: Allow XML files to have relative paths to images
      COMP: Add warning suppressions for OpenCV.
      COMP: Add second suppression for OpenCV.
      BUG: Missed brainmask read read wrapping
      ENH: Refactoring template.py for consistent data sinks.
      ENH: More changes to get atlas generation cleaned up.
      BUG: Incorrect file was used for selecting the brain mask.
      STYLE: Remove unnecessary code.
      BUG: Data grabber changes required dictionary changes
      BUG: The master atlas should be specified from config file
      STYLE: Remove global code from __init__.py
      BUG: Command line wfrun argument was not being respected
      STYLE: Remove unnecessary checking
      BUG: The logitudinal processing could not occur previously
      ENH: Add separate config variables specific to each workphase
      BUG: Premature return from loop
      ENH: Updated to latest ITK+Gerrit Mattes patch
      ENH: Update to latest version of ANTS.
      COMP: Erroneous closing ')'
      ENH: Remove outdated and non-functioning md5 files.
      ENH: Added Sentinal output file checking for Workflows
      STYLE: Only give debugging information when requested

Jean-Christophe Fillion-Robin (2):
      COMP: Move ITK find_package calls into each sub-project.
      COMP: Fixes tests by explicitly specifying list of ITK IO components

Kent Williams (15):
      COMP: get rid of ITKv3 Compatibility ifdefs
      COMP: Sync with NAMICExternalProjects
      COMP: fix teem build and ITK->VTK dependency
      BUG: don't extend composite transform filenames needlessly.there was some deficient logic that was changing the filename of composit transforms to force them to hdf5 format, even if the filename give
      BUG: don't extend composite transform filenames needlessly.there was some deficient logic that was changing the filename of composit transforms to force them to hdf5 format, even if the filename give
      COMP: update teem tag
      COMP: Make FSLToNrrd synthesize bval/bvec filenames if none are given.
      COMP: Move find_package(ITK) into a macro
      COMP: tune module list
      COMP: streamlined FindITKUtil commands
      COMP: cleaned up CMakeLists.txt with respect to FindITKUtil
      COMP: slight changes to address compiler errors in BRAINSSurfaceTools
      COMP: iccdef changes to work with ITKv4
      COMP: add new parameter for FSLToNrrd conversion
      COMP: reorganize path processing

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23571 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: In developer mode do not remove CLI input and output files

In developer mode do not remove CLI input and output files. This
allows re-running of CLI with the input data that normally would
have been deleted right after the CLI execution completes.

From: Andras Lasso <lasso@queensu.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23572 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Reduced the chance of crashes when CLI returns result images

From: Andras Lasso <lasso@queensu.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23573 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: WIP - Add .h5 formated transform storage of BSplines. See #3788

Partial implementation for reading itkBSplineTransform (for ITKv4)

Mostly implemented but the transform that gets read in is identity
and not the one in the file. Probably something wrong with
this cast:

+  typedef itk::BSplineTransform< T,VTKDimension,BSPLINE_TRANSFORM_ORDER > BSplineTransformType;
+  typename BSplineTransformType::Pointer bsplineItk =
+    dynamic_cast< BSplineTransformType* >( warpTransformItk.GetPointer() );

The transformation itself is not populated with correct data,
so need to reach inside to get spacing, origin, etc.

From: Steve Pieper <pieper@bwh.harvard.edu>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23574 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Any kind of linear transform is usable as bspline bulk. See #3788

From: Andras Lasso <lasso@queensu.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23575 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Implemented composite transform reading. See #3788

Not just BSpline but any combination of bspline and linear
can be read from composite transforms.

Reading of grid transforms from transform file is not implemented yet.

From: Andras Lasso <lasso@queensu.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23576 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Refactored ITK-VTK transform conversion code. See #3788

Moved low-level conversion functions to separate class.
Reduced redundancy between ITKv3 and ITKv4 converters.

From: Andras Lasso <lasso@queensu.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23577 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Added grid transform reading-writing from h5 file. See #3788

From: Andras Lasso <lasso@queensu.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23578 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Simplified transform storage node. See #3788

From: Andras Lasso <lasso@queensu.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23579 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Always send transform "from parent" to CLI. See #3788

From: Andras Lasso <lasso@queensu.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23580 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Implemented inverse ITK transform reading and writing. See #3788

From: Andras Lasso <lasso@queensu.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23581 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Always save transforms as FromParent. See #3788

Kept readWriteTransformAsToParent flag just for backward
compatibility, when reading an old scene.

If in the future we want to save the ToParent transform or
both FromParent and ToParent then the flag has to be added
to the storage node (and not the transform node).

From: Andras Lasso <lasso@queensu.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23582 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Linear transforms now use vtkTransform for transform storage. See #3788

Main limitation was that the vtkMatrixToLinearTransform did not
have a GetInverseFlag() method.

Couple of other smaller fixes.

From: Andras Lasso <lasso@queensu.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23583 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fixed shared memory image IO error. See #3788

Due to a copy-paste error a static ITK transform was instantiated,
which broke image IO (probably some static initialization race condition).

From: Andras Lasso <lasso@queensu.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23584 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Fixes vtkITKTransform classes MacOSX compilation errors. See #3788

From: Steve Pieper <pieper@bwh.harvard.edu>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23585 3bd1e089-480b-0410-8dfb-8563597acbee