BUG: Update ITKv4 to include fixes for TIFF Reader/Writer

$ git shortlog 56fae27..8012ade --no-merges
Bradley Lowekamp (22):
      ENH: Extract TiffReaderInternal to separate file
      ENH: Refactor ReadTwoSamplePerPixelImage into template function
      ENH: Refactor GenericReadImage into template function
      BUG: Remove Zeiss 2-channel support code in TIFFImageIO ( and LSMImageIO )
      ENH: Refactor method to convert RGBA image to output buffer
      ENH: Refactor duplicated code to read a page
      BUG: Fix right oriented tiff images
      BUG: Remove dead separated plannar code, add test
      STYLE: Fix minor kwstyle defects in test and test results
      BUG: Use array delete operator for array new allocations
      ENH: add arbitrary TIFF TAGs to meta-data dictionary
      ENH: Reduce code duplicate in TIFFImageIO::ReadCurrentPage
      BUG: Address Coverity warning about null pointer dereferences
      ENH: Remove support for TIFF tile as 3D and dead code
      ENH: RGBA read images should stay unchanged.
      ENH: Refactor per pixel conversion function to per scan-line method
      PERF: Refactor color table lookup
      BUG: Adding missing parentheses around boolean expression
      ENH: adding TIFFImageIO test for RGB palette images
      ENH: Query libtiff to determine compression support
      BUG: Support TIFF tiled image with TIFFReadRGBAImage
      COMP: Add explicit conversion to const char

Matthew McCormick (1):
      COMP: Do not use _stat64 with MinGW-32.

Richard Beare (1):
      ENH: Include TIFF tags in the MetaDataDictionary

From: Bradley Lowekamp <blowekamp@mail.nih.gov>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23797 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Subject hierarchy tree headers show icons instead of text

The text in the narrow columns ('Vis' and 'Tr') looked quite bad, so instead it shows the show/hide icon for the visualization column, and a transform icon in the transforms column. The columns are now not resized when exiting then entering the module.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23798 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Add access to the currently selected module for testing convenience

This commit adds a Q_PROPERTY to qSlicerModuleSelectorToolBar to ensure it is
available from python. It also adds the convenience method to the
slicer.util python module.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23799 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Fix CMake 3.x warnings related to CMP0054 and CMP0026

* Update ExternalProjectDependency based on commontk/Artichoke@6725b6a

* This commit fixes warning like these ones:

// ----------------------
CMake Warning (dev) at CMake/ctkMacroCheckExternalProjectDependency.cmake:345 (if):
  Policy CMP0054 is not set: Only interpret if() arguments as variables or
  keywords when unquoted.  Run "cmake --help-policy CMP0054" for policy
  details.  Use the cmake_policy command to set the policy and suppress this
  warning.

  Quoted variables like "SB_SECOND_PASS" will no longer be dereferenced when
  the policy is set to NEW.  Since the policy is not set the OLD behavior
  will be used.
Call Stack (most recent call first):
  CMake/ctkMacroCheckExternalProjectDependency.cmake:596 (ExternalProject_Message)
  CMakeExternals/Log4Qt.cmake:9 (ExternalProject_Include_Dependencies)
  CMake/ctkMacroCheckExternalProjectDependency.cmake:568 (include)
  CMake/ctkMacroCheckExternalProjectDependency.cmake:614 (ExternalProject_Include_Dependencies)
  CMake/ctkBlockCheckDependencies.cmake:132 (ExternalProject_Include_Dependencies)
  CMakeLists.txt:970 (include)
// ----------------------

// ----------------------
1>-- Configuring Loadable module: Transforms [qSlicerTransformsModuleExport.h]
1>CMake Warning (dev) at C:/D/P/SonoEQ-0-build/Slicer-build/CTK/CMake/ctkMacroBuildQtPlugin.cmake:168 (get_target_property):
1>  Policy CMP0026 is not set: Disallow use of the LOCATION target property.
1>  Run "cmake --help-policy CMP0026" for policy details.  Use the cmake_policy
1>  command to set the policy and suppress this warning.
1>  The LOCATION property should not be read from target
1>  "qSlicerAnnotationsModuleWidgetsPlugins".  Use the target name directly
1>  with add_custom_command, or use the generator expression $<TARGET_FILE>, as
1>  appropriate.
1>Call Stack (most recent call first):
1>  C:/D/P/SonoEQ-0-build/Slicer-build/CTK/CMake/ctkMacroBuildQtPlugin.cmake:181 (ctkMacroBuildQtPlugin)
1>  Modules/Loadable/Annotations/Widgets/DesignerPlugins/CMakeLists.txt:36 (ctkMacroBuildQtDesignerPlugin)
// ----------------------


* Updates of the associated projects are reported below:

[Artichoke]
$ git shortlog c3eb170..6725b6a
Jean-Christophe Fillion-Robin (12):
      Rename Artichoke into ExternalProjectDependency
      Add cmake sphinx extension based on Kitware/CMake@3c8226e59
      Add explicit support for function and macro directive
      Add sphinx gitignore
      Add sphinx documentation
      Convert README into rst and reference it from index.rst
      Include "indices and tables" only if generating html
      Add docs badge
      Merge pull request #8 from mwoehlke-kitware/installable-external-projects
      Fix tests including the correct module (broken after commit 9106d3d)
      Tweak test in ExternalProject_Message to avoid warning related to CMP0054
      Update tests setting policy CMP0054 to OLD.

Matthew Woehlke (1):
      Add function to install external CMake projects

[CTK]
$ git shortlog 1c97e54..6dfdb85 --no-merges
Andreas Fetzer (1):
      Remove empty build command and set install command empty. Thus is cannot happen     that the dcmtk libraries are installed to some unintended location.     Setting dcmtk_dir to dcmtk-build directory

Christian Askeland (4):
      fixed crashing line in ctkFileDialog for Qt5.
      improved in-code description of previous ctkFileDialog crash fix
      Fixed broken doxygen generation for Plugin Framework
      set doxygen variable ensuring macro definitions of type MY_FOO(arg) dont mess up doc generation

Jean-Christophe Fillion-Robin (2):
      Update ExternalProjectDependency based on commontk/Artichoke@388fc33
      Update ctkMacroBuildQtPlugin to fix CMake warning related to CMP0026

Sascha Zelzer (1):
      Removed custom QT5_INSTALL_PREFIX variable.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23800 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Update CTK to fix generator expression introduced in previous commit

$ git shortlog 6dfdb85..9e8f66fd --no-merges
Jean-Christophe Fillion-Robin (1):
      Fix generator expression introduced in previous commit d779b43

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23801 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Filter testing modules in module list depending on DeveloperMode

In the module selector only show modules in Testing category if DeveloperMode is enabled in application settings
Fixes http://www.na-mic.org/Bug/view.php?id=3903


git-svn-id: http://svn.slicer.org/Slicer4/trunk@23802 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fixed slice intersection display of non-linearly transformed model nodes

An additional polydata transform filter is added to the pipeline that applies the model-to-world transform to the model's polydata.
Fixes http://www.na-mic.org/Bug/view.php?id=3900

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23803 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fixed crash when slice compositing option is changed

vtkNew pointer was deleted with Delete().
Fixes http://na-mic.org/Mantis/view.php?id=3904

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23804 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Update build system to more robustly check bitness using void ptr size

This commit update the build system so that void pointer size is used
instead of system process name.

[CTK]

$ git shortlog 9e8f66f..f34158 --no-merges
Jean-Christophe Fillion-Robin (1):
      Check bitness using void ptr size instead of system processor name

[DMCTK]

$ git shortlog f461865..042de27 --no-merges
Jean-Christophe Fillion-Robin (1):
      Update CMake build system to more robustly check bitness using void pointer size

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23805 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Update python - Fix configuration error on 32-bit system of type i686

The commit fixes the following error:

// ---------------
CMAKE_SYSTEM_PROCESSOR:i686

/home/thiele/Slicer-SuperBuild-Debug/python-build/../Python-2.7.3/Modules/_ctypes/libffi/src/i686/ffi.c

  Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
  .hxx .in .txx
Call Stack (most recent call first):
  cmake/extensions/CMakeLists.txt:183 (add_python_extension)

// ---------------

[python]

$ git shortlog 47845c5..ee53f79 --no-merges
Jean-Christophe Fillion-Robin (1):
      Fix configuration of ctypes extension in case system processor is i686



Thanks to  "Thiele Kobus <TKOBUS@partners.org>" for his help identifying
the issue.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23806 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fixed composite transform problems

By hardening a non-linear transform on a vtkMRMLLinearTransformNode makes the contents of the linear transform node non-linear. This causes errors in many places in the code where linearity of the transform is tested by checking the class type instead of calling transform->IsLinear() or transform->IsTransformToParentLinear().

In the long term all specific transform nodes (linear, bspline, grid) should be removed and only the generic vtkMRMLTransformNode should be used everywhere. The specific classes are already “empty”, they do not contain any useful functionality, but they are be used in extensions (and still have not removed from everywhere in the Slicer core), so they have to be phased out gradually.

Specific problems:
* If affine transform is applied to bspline then bspline component is ignored
* If affine transform is applied to bspline and affine is hardened then the bspline component is lost.
* Hardening multiple nonlinear transforms on a transform sometimes results in incorrect composite transform

Fixes:
* Instead of casting to vtkMRMLLinearTransform IsLinear or IsTransformToWorldLinear has to be called to decide if a transform is linear (checking the class type does not work correctly for composite transforms)
* Fixed vtkMRMLTransformNode::ApplyTransform
* Moved full implementation of get/set transform matrix functions in vtkMRMLTransformNode (it further prepares removal of obsolete linear/bspline/grid transform node classes)

Enhancements:
* Allow splitting of composite transforms to its components (Transforms module: Split button – only displayed for composite transforms)


git-svn-id: http://svn.slicer.org/Slicer4/trunk@23807 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: 3905. Fixed visibility control logic for model hierarchy nodes.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23808 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Ensure RemoveAllMarkups also invoke MarkupRemovedEvent

This commit improve the API consistency by ensuring the event will
be sent also if RemoveAllMarkups is called.

Similarly, the function "SetLocked" is called instead of directly
setting the ivar, doing so will ensure that the LockModifiedEvent
is also invoked.

Note that the pair StartModify/EndModify is used to ensure the ModifedEvent
associated with the markups node is invoked at the end if it applies.

For sake of consistency, the function RemoveAllTexts() has been added.
Since no text is added/removed when function Add/RemoveMarkup are called,
it doesn't make sense to clear the text when removing markups.

Running the test py_AddManyMarkupsFiducialTest doesn't show any decrease
in time with/without this patch. (Ubuntu 13.10 / debug build)

With: 24.17 sec, 26.65 sec, 24.01 sec (3 runs)
Without: 26.59 sec, 27.04 sec, 24.72 sec (3 runs)

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23809 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Add new DICOM export feature and scalar volume plugin

DICOM export dialog and tag editor widget are new widgets for DICOM export of all kinds of data in the new DICOMLib directory of the Scripted module folder. The existing DICOM plugin mechanism is used, but extended with an export function. Although the existing DICOMLoadable python object still works, C++ containers have been added to ensure C++ support of DICOM import/export. DICOMDataExchange.py was split into DICOMExportScalarVolume.py and DICOMExportScene.py.
See all details, including design considerations and usage information here:
http://www.slicer.org/slicerWiki/index.php/Documentation/Labs/DICOMExport

Closes #3163

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23810 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Fixed export directive in DICOM subject hierarchy plugin

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23811 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Fixed linux build warnings

Also fix Subject Hierarchy failing python self tests.

Fixes #3910

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23812 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: 3911. Fixed crash on change of visibility of ModelHierarchy nodes introduced by making them part of SubjectHierarchy.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23813 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: enable parsing of Philips DWI datasets

Philips private tag added to allow parsing multi-b acquisitions as multivolumes by the plugin.


git-svn-id: http://svn.slicer.org/Slicer4/trunk@23814 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Update CTK to ensure python error a written to stderr

$ git shortlog f341589..42700cf --no-merges
Andras Lasso (1):
      BUG: Fixed issue of writing Python errors to stdout instead of stderr

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23815 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Make subject hierarchy plugin method addNodeToSubjectHierarchy non-virtual

Now that subject hierarchy nodes are automatically created when a supported data node (i.e. there exists an SH plugin that can add it to the tree) is added to the scene, the qSlicerSubjectHierarchyAbstractPlugin::addNodeToSubjectHierarchy method lost its purpose, so although it's still used as a convenience function, it cannot be overridden any more.
Minor fixes: comments, checks, typos

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