BUG: Prevent Slicer from hanging when restarting

See CTK commit ad15090

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

Ensure ctkFDHandler can be enabled/disabled multiple times

To give the opportunity to the thread to exit the polling loop, the
character "\n" is now written when disabling the handler.

The pipe is also setup each time the thread is enabled. Additionally,
the reading side of the redirection pipe is also closed when the thread is
disabled.

Tests have also been updated to enable/disable the handler multiple times
in a row.
// ------------------------

See http://na-mic.org/Mantis/view.php?id=2535

Fixes #2535

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21413 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Fix windows build error using function prefixed with "_"

See http://na-mic.org/Mantis/view.php?id=2535

Fixes #2535

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21415 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Remove SWidget related code from Performance test

This is a follow up of commit r21404

See http://na-mic.org/Mantis/view.php?id=2735
Fixes #2735

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21417 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Fix build error occurring when disabling QtTesting

See http://www.na-mic.org/Bug/view.php?id=2760

Fixes #2760

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21419 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: fix spelling error in variable name

refrencingNode -> referencingNode

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21421 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: fix leaks on scene close - related to issue #2512

Use vtkSmartPointers to rather than bare C pointers
to manage lists of node references.  This avoids dangling
pointers to already deleted nodes (and hence prevents
crashes).

Also STYLE: add at least some documentation to the header
file describing what these methods are meant to do and
how the data structures are managed.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21422 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Add method to streamline loading of scalar volumes

* Update DICOM scalar volume plugin to use the new method name.

Adapted from topic proposed by Andriy Fedorov
Credit: Andriy Fedorov, Julien Finet and Steve Pieper

See http://na-mic.org/Bug/view.php?id=2748

Fixes #2748

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21425 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Apply redesign to glyphable volume slice display nodes

In r20910, model display nodes had a demand driven pipeline redesign.
However, this redesign wasn't applied to glyphable volume slice display
nodes.
Issue #2374

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21427 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Model displayable manager now supports any displayable node...

...that has display nodes with a non null output polydata.

Issue #2374

Conflicts:
	Libs/MRML/DisplayableManager/vtkMRMLModelDisplayableManager.cxx

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21428 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Restore 2D slice glyph display

When display nodes where added to a volume node,
vtkMRMLVolumeGlyphSliceDisplayableManager was not notified so it couldn't
observe the glyph diffusion tendor display node modify event.

Issue #2374

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21429 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Update display when tensor display properies are modified

When the properties node is modified, the event must be propagated so that
the 3D and 2D displayable managers are notified and trigger a refresh.

Closes #2374

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21430 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Move light box renderer manager proxy to abstract displayable manager

Suggested by Steve Pieper
Contributed by Jim Miller

Moved the LightBoxRendererManagerProxy up to the superclass of the
DisplayableManager hierarchy so that all (2D & 3D) displayable managers
can interact with a lightbox.

Note that light boxes are only currently supported on 2D viewers, so the
proxy is only configured in qMRMLSliceView. CTK will need to be changed to
put the LightBoxManager into ctkVTKAbstractView to make it accessible to
both ctkVTKSliceView and ctkVTKRenderView. Then qMRMLThreeDView could also
create and initialize a LightBoxManagerProxy and set it on its DisplayableManagers.
Here, we would also want to move qMRMLSliceViewPrivate::vtkInternalLightBoxRendererManagerProxy
class to a place where it could be used by both types of VTK widgets.

The proxy can now be set on the DisplayableManagerGroup which
broadcasts the proxy to all the DisplayableManagers in that group.

See http://www.na-mic.org/Bug/view.php?id=2732

Fixes #2732

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21431 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: issue #1690 starting to fix annotations in light box mode. Use the renderer from the light box proxy manager if it's defined
BUG: when in light box mode, switch to using 2d point handles for fiducials.

This works for placing new ones in limited testing, but not to convert existing ones
to 2d handles yet.

Issue #1690
BUG: switch fiducials between 2d and 3d as swap between light box and not.

TODO: initiate the change when the lightbox mode is changed, as opposed to when
move the fiducial in 3d.

issue #1690
BUG: update fiducial widgets on slice node changes.

If just update position, the handle widget 2d/3d type won't
get updated when switch in and out of light box mode.
This may slow things down a bit, but they'll be more correct.

Issue #1690
BUG: Avoid seed widget and representation having different renderers on creation.

Check the light box state so set the correct renderer on creation. Issue # 1690
Check that the seed representation has a valid renderer and active camera before
trying to set display position, should fix load crash with issue #2512