COMP: Undefine the min symbol for VC.

Visual Studio defines min as a macro and collides with the use of
std::min. Here we conditionally undefine the min macro.

Contributed by Luis Ibanez

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

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21591 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Add ITKFactoryRegistration library centralizing ITK IO factory registration

This commit will ensure that ITK IO factory are properly registered on all
supported platforms.

When ITKv4 is build shared, the library holding the factory registration code
are build statically. As a consequence, when CLI module are loaded as library
the factory are registered multiple times. Around 800 factories where registered
and this was leading to poor performance when loading images.

This commit enable the building of a shared library named ITKFactoryRegistration
that should be linked against to ensure loading of the factory. This approach
can succeed thanks to the help of the ITK variable ITK_NO_IO_FACTORY_REGISTER_MANAGER.

This variable allow to disable the automatic registration of factory in selected part
of the code.

The following two cases are handled:
 - Registration of the factories within the Slicer executable.
 - Registration of the factories within CLI executable.

Fixes #2813

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

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21592 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Update ITKv4 to include ObjectFactory Leak Fix.

From: Hans Johnson <hans-johnson@uiowa.edu>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21593 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: ConstBoundaryCondition header was missing.

Previously the ConstBoundaryCondition header was implicitly included
from other headers.  It now must be explicitly specified if used.

From: Hans Johnson <hans-johnson@uiowa.edu>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21594 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Explicitly list ITK component in attempt to reduce link command length

In find_package(ITK ...) specify the modules that will be used. This
reduces the number of libraries specified on the link command and
help reduces linking errors.

ITKv4 provides a script allowing to discover the list of ITK components.
See ./Utilities/Maintenance/WhatModulesITK.py

Contributed by Matt McCormick and Jean-Christophe Fillion-Robin

From: Matt McCormick <matt.mccormick@kitware.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21595 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Properly link SFLSRobustStat3DTestConsole CLI executable

Contributed by Matt McCormick

From: Matt McCormick <matt.mccormick@kitware.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21596 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Fix link error related to ObjectFactoryBase methods

Contributed by Matt McCormick

From: Matt McCormick <matt.mccormick@kitware.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21597 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Update ITK and DCMTK to support DWIConvert provided by BRAINSTools

By adding DWIConvert to BRAINSTools, the logic necessary to support
this tool becames much simpler.  It will also reduce the burden
of maintainance.

The DWIConvert program was originally building a private version
of the ITKv4 DCMTK interface.

From: Hans Johnson <hans-johnson@uiowa.edu>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21598 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Update python script to use DWIConvert module instead of DicomToNrrd with DWIConvert

The new DWIConvert is much more flexible and complete
in it's handling of DWI data.

Contributed by Hans Johnson

From: Hans Johnson <hans-johnson@uiowa.edu>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21599 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Ensure that module relying "DWIConvert" also work when build against ITKv3

Backward compatibility with ITKv3 is maintained by aliasing the module.

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

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21600 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Ensure ITK Wrapping is disabled

The name of the variable used for turning on WRAPPING in ITK has changed.

From: Hans Johnson <hans-johnson@uiowa.edu>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21601 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Prevent DCMTK double free errors.

Also update version of DCMTK including some of the patch
contributed upstream.

Contributed by Bill Lorensen

From: Bill Lorensen <bill.lorensen@gmail.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21602 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Update SimpleITK version to integrate update recent improvements

This version matches the one used during the AHM2013 Utah Meeting demos.

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

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21603 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Make sure itkTestMain.h is available when building extension

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

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21604 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Avoid build error on windows by shortening filename of generated pythonqt files

Thanks to Matt McCormick for testing the change.

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

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21605 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: detect exceptions in self-tests during reload and test of scripts

Based on a suggestion from Brad Lowekamp to let developers know
about execeptions when developing scripted extensions.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21606 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: restructure the event collapsing timers so they only run once

Before, a singleshot would be triggered once each time the timer
ran out.  Now, the timer interval is extended so that one a single
invocation occcurs even if a large number of events come, as long as
no two events are separated by more than half a second.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21607 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: fix a crash caused by an overlay file with unassigned labels.

When loading some FreeSurfer scalar overlay files, the reader 
returns a warning that some labels were unassigned. This was being
treated as an error, but a valid node was being returned from the
Models logic instead of NULL, causing a crash in the IO file. 
Fixed that issue then changed the response to that warning
to return valid nodes and color tables and that seemed to 
fix the issue.

Issue #2851



git-svn-id: http://svn.slicer.org/Slicer4/trunk@21608 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: avoid hangs/crashes when importing - fixes #2839, #2871

See CTK bug #292
https://github.com/commontk/CTK/issues/292

Multithreading of the indexing operation removed.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21609 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Avoid build error on windows by shortening filename of generated pythonqt files

This commit is a follow-up on r21605 and applies on Slicer base libraries
instead of slicer module libraries.

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