ENH: Update vtkMRMLNodeTest1 to display error on standard error.

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

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22660 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Update CTK to integrate Andras Lasso VTK connection optimization.

Andras Lasso (3):
      ENH: Use a hashmap to avoid linear search for existing vtk connections
      BUG: Fixed ctkVTKObjectEventsObserverPrivate::findConnection behavior for wildcards
      ENH: qvtkConnect and qvtkDisconnect performance improvement

Jean-Christophe Fillion-Robin (1):
      Merge branch 'vtkconnect-performance-improvement-consolidated'

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

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22661 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Don't batch process when show/hide only a few child nodes

When there are many child nodes in a hierarchy then show/hide is much more efficient if batch processing is enabled.
However, if there are few nodes only then a full refresh at the end of a batch processing takes longer than doing the update on each node separately.
Count the number of child nodes and if there are less than 30 then update each node separately.

From: Andras Lasso <lasso@queensu.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22662 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Add BatchUpdateThreshold to Model hierarchy logic

Only use batch processing for show/hide of model hierarchies if the
total number of nodes in the selected branch is larger than a given threshold.

From: Andras Lasso <lasso@queensu.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22663 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fixed references to nodes in qSlicerTractographyDisplayWidget

Crash happened at the end of SceneClose in py_test_tractography_display test because old (invalid) display node was still used.

From: Andras Lasso <lasso@queensu.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22664 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: vtkEventBroker performance improvement

Use a set instead of a vector to allow faster finding and deletion of observations

From: Andras Lasso <lasso@queensu.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22665 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Optimized qMRMLSceneModel::nodeIndex performance

qMRMLSceneModel::nodeIndex is called tens of millions of times, therefore it's optimum performance is critical.
Find MRML nodes by object pointer instead of ID comparison to improve the performance.

Also, always do lazyupdate for qMRMLSceneModel if scene is closing to unsubscribe from all events at once the scene is closed.

From: Andras Lasso <lasso@queensu.ca>

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