COMP: Add HDF5 and Matlab TransformIO to ITKFactoryRegistration

This commit explicitly lists these transform to ensure the associated
files can be read/write.

This should help in fixing error related to the integration of
BRAINSFit and EMSegment.

Co-authored-by: Bradley Lowekamp <blowekamp@mail.nih.gov>
Co-authored-by: Steve Pieper <pieper@isomics.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23490 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Added a method in VolumesLogic class to resample volume node.

Also changed the LabelStatistics.py to use the new resample logic to make labelmap same as input volume.

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

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23491 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Added a method in VolumesLogic class to resample volume node.

Also added a new CloneVolume method which does not clone the imageData. Changed the LabelStatistics.py to use the new resample logic to make labelmap same as input volume.

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

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23492 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: test for active camera before enabling fiducials

Removes the error message that world to view and view to world
can't compute result due to a missing active camera. Delaying
setting the handles and widgets to be enabled if there's
no active camera defined on their renderers seems to work well
since the next time through the update code once the layout
has stabilised and the renderers are updated, the seeds 
will get positioned and enabled.

Issue #3761


git-svn-id: http://svn.slicer.org/Slicer4/trunk@23493 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: check for valid transform pointers to avoid crash

On scene close and possibly other circumstances there can be transform
nodes that don't have valid transforms, so check the pointers.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23494 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: fix logic on showing slice intersections

Added an attribute (and a name) for the volume slice
model display nodes and check for it in a new slice
logic static method. If it's not a volume slice model
display node, use the visibility of the regular
model to determine if should show the slice intersections,
otherwise rely on the slice intersections visible flag.

Issue #3718


git-svn-id: http://svn.slicer.org/Slicer4/trunk@23495 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: BRAINS can only now read in h5 files

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23496 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Remember if updates are automatic

Store if the user has enabled automatic extension updates in QSettings.

Issue #2089

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23497 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Adding API to check for extension updates

Add some initial API to manage scheduling extensions for update, similar
to how we schedule extensions for uninstall (as the implementation will
necessarily be similar). For now, the settings management should be
working; the rest (including a checkForUpdates() method) is mostly
placeholder that is needed to start implementing UI and underlying
logic.

Issue #2089

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23498 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Start adding logic to check for updates

Add logic to issue server API calls to check for updates to extensions,
and to manage the same. This is still missing anything to actually
download or apply said updates.

Issue #2089

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

Refactor update download logic, introducing a new 'task' class to
manager downloads, rather than trying everything through the network
manager's signals. Also, move the code to start such a task to a helper
function. Leverage these to hook up downloading of updates, now that
tasks can have different completion handlers assigned. Write update
archive file and scheduling information on update download completion.

Issue #2089

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23500 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Improve extension manager info icons

Tweak the information icons used in the extension manager to have whiter
glyphs, and a less muddy glyph for the 'i' (update available) icon.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23501 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Hook up UI for updating extensions

Hook up update availability and download progress reporting in extension
model. Add UI to extension manager to report update availability and
allow requesting updates and canceling such requests. This brings update
management almost to full functionality, missing only to actually
install the update on restart.

Issue #2089

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23502 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Improve UI update scheduling

Improve update handling to enable 'restart' button when appropriate due
to update-related actions. Disable updating of extensions scheduled to
be uninstalled (the model already does this, but having the button
enabled makes for a confusing user experience where clicking the update
button does nothing).

Issue #2089

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23503 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Implement installation of updates

Implement installation of updates to extensions (consisting of first
removing the old version, then installing the new version). Note that
this will attempt to install new dependencies as well. Also, change
handling of update downloads to additionally write the metadata for the
update (in addition to the archive), as we'll want it when we install
the update and need to persist it across a restart.

Issue #2089

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23504 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fixed SubjectHierarchyGenericSelfTest
Fixes #3754

Additional minor fixes in handling potential nodes in the subject hierarchy tree (removed unavailable context menu items)
Removed potential subject hierarchy node list and related classes (model, proxy model, designer plugin)

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23505 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Added developer mode and base classes for scripted modules

* Added "Enable developer mode" option in the application settings
(Developer section, next to Enable QtTesting)

* Added base classes for scripted module, widget, logic, and test: they
make scripted modules simpler and shorter and also more functions and
helper methods can be added in the future without changing each scripted
module
** Module handles selftest registration
** Widget handles reload&test (shown on GUI only in developer mode)
** Logic and Test contains delayDisplay utility function

* As an example, updated ScriptedLoadableModuleTemplate and SurfaceToolbox to use the new base classes

From: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23506 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Partial fix for EMSegment/BRAINSFit integration. See #3561, #2741, #3779

This commit is a follow up of EMSegment commit r23496. It updates BRAINSFit
to integrate the fix done by Kent to specifically address the naming
of .h5 transform files written by BRAINSFit.

// ---------------------
commit e46c99795cedd4c6aeec98e881af9c2b28dc5cf5
Author: Kent Williams <norman-k-williams@uiowa.edu>
Date:   Tue Jul 29 15:24:11 2014 -0500

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
given was already for an HDF5 file.
// ---------------------

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23507 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Specify list VTK_MAKE_INSTANTIATOR3 input as list of cxx files only.

This commit fixes a build error introduced by kitware/VTK@5c3241b9d8
It ensures there are no duplicated entries in the instantiator files.

The error (reported below) was first discovered when building Slicer
on MacOSX 10.6 with the option VTK_ENABLE_KITS while working on issue
#3741.

// ------------------------
$ make vtkSlicerTransformsModuleMRMLDisplayableManager/fast
[ 59%] Building CXX object Modules/Loadable/Transforms/MRMLDM/CMakeFiles/vtkSlicerTransformsModuleMRMLDisplayableManager.dir/TransformsInstantiator.cxx.o
/path/to/Slicer-build/Modules/Loadable/Transforms/MRMLDM/TransformsInstantiator.cxx: In function 'vtkObject* vtkInstantiatorvtkMRMLTransformsDisplayableManager2DNew()':
/path/to/Slicer-build/Modules/Loadable/Transforms/MRMLDM/TransformsInstantiator.cxx:10: error: redefinition of 'vtkObject* vtkInstantiatorvtkMRMLTransformsDisplayableManager2DNew()'
/path/to/Slicer-build/Modules/Loadable/Transforms/MRMLDM/TransformsInstantiator.cxx:9: error: 'vtkObject* vtkInstantiatorvtkMRMLTransformsDisplayableManager2DNew()' previously defined here
/path/to/Slicer-build/Modules/Loadable/Transforms/MRMLDM/TransformsInstantiator.cxx: In function 'vtkObject* vtkInstantiatorvtkMRMLTransformsDisplayableManager3DNew()':
/path/to/Slicer-build/Modules/Loadable/Transforms/MRMLDM/TransformsInstantiator.cxx:12: error: redefinition of 'vtkObject* vtkInstantiatorvtkMRMLTransformsDisplayableManager3DNew()'
/path/to/Slicer-build/Modules/Loadable/Transforms/MRMLDM/TransformsInstantiator.cxx:11: error: 'vtkObject* vtkInstantiatorvtkMRMLTransformsDisplayableManager3DNew()' previously defined here
make[1]: *** [Modules/Loadable/Transforms/MRMLDM/CMakeFiles/vtkSlicerTransformsModuleMRMLDisplayableManager.dir/TransformsInstantiator.cxx.o] Error 1
make: *** [vtkSlicerTransformsModuleMRMLDisplayableManager/fast] Error 2
// ------------------------

The content of the associated instantiator file was:

// ---------------
$ cat Modules/Loadable/Transforms/MRMLDM/TransformsInstantiator.cxx

[...]

vtkInstantiatorNewMacro(vtkMRMLTransformsDisplayableManager2D)
vtkInstantiatorNewMacro(vtkMRMLTransformsDisplayableManager2D)
vtkInstantiatorNewMacro(vtkMRMLTransformsDisplayableManager3D)
vtkInstantiatorNewMacro(vtkMRMLTransformsDisplayableManager3D)

[...]
// ---------------

This commit avoid the duplicated entries in the instantiator file.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23508 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Fix VTK6 link error on MacOSX 10.6. Fixes #3741

To reduce the number of libraries passed to the linker, this commit build
VTK6 with the VTK_ENABLE_KITS option enabled.

If building on MacOSX 10.6 without CMake 3.0, it also updated the build
system to output a fatal error message explaining that a more recent
version of CMake is required.

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