ENH: Added ViewGroup property to view nodes
ViewGroup is used for restricting scope of:
- linked slice view property changes (if slices are linked, a property change will only change views in the same group)
- crosshair jump to slice (if crosshair is moved with shift+mousemove and slice jump is enabled, only those slices will be moved that are in the same group as the view where the mouse was)
- slice intersection display (slice intersections will only shown of those slices that are in the same group)
Implementation:
- Added new ViewGroup member to abstract view node (string, empty by default)
- In default layouts "Three over three" and "Four over four" separated top/bottom rows (view IDs changed to Red+, Yellow+, Green+, 1+; unique node IDs were necessary because on layout change view group is not updated, so we cannot share view nodes between layouts the same group ID for all views)
- Updated vtkMRMLSliceNode::JumpAllSlices to only jump those slices that have matching viewgroup
- Updated vtkMRMLSliceLinkLogic::OnMRMLNodeModified(vtkMRMLNode* node) to make aware of groups
- Updated slice displayable manager to only show slice intersections in the same group (and mapped in layout)
- Updated 2D/3D displayable managers to only jump those slices on crosshair update (shift+mousemove) that are in the same group
- Updated GUI: ** Added View group view/edit to Slice information widget (used in View Controllers module). ** Added viewGroup property to simple markups widget (that can restrict slice jumping to a specific view group)