|
Medical Imaging Interaction Toolkit
2026.06.00
Medical Imaging Interaction Toolkit
|
Controls the selection of the slice the associated BaseRenderer will display. More...
#include <mitkSliceNavigationController.h>


Classes | |
| class | GeometrySendEvent |
| class | GeometrySliceEvent |
| class | GeometryUpdateEvent |
| class | TimeGeometryEvent |
Public Member Functions | |
| mitkClassMacro (SliceNavigationController, BaseController) | |
| void | SetInputWorldTimeGeometry (const TimeGeometry *geometry) |
| Set the input world time geometry out of which the geometries for slicing will be created. More... | |
| virtual const TimeGeometry * | GetInputWorldTimeGeometry () |
| virtual const TimeGeometry * | GetCreatedWorldGeometry () |
| Access the created geometry. More... | |
| virtual TimeGeometry * | GetCreatedWorldGeometry () |
| itkSetEnumMacro (ViewDirection, AnatomicalPlane) | |
| Set the desired view directions. More... | |
| itkGetEnumMacro (ViewDirection, AnatomicalPlane) | |
| itkSetEnumMacro (DefaultViewDirection, AnatomicalPlane) | |
| Set the default view direction. More... | |
| itkGetEnumMacro (DefaultViewDirection, AnatomicalPlane) | |
| const char * | GetViewDirectionAsString () const |
| Get the current view direction as a human-readable string. More... | |
| virtual void | SetViewDirectionToDefault () |
| Reset the view direction to the default view direction. More... | |
| virtual void | Update () |
| Do the actual creation and send it to the connected observers (renderers) More... | |
| virtual void | Update (AnatomicalPlane viewDirection, bool top=true, bool frontside=true, bool rotated=false) |
| Extended version of Update, additionally allowing to specify the direction/orientation of the created geometry. More... | |
| virtual void | SendCreatedWorldGeometry () |
| Send the created geometry to the connected observers (renderers) More... | |
| virtual void | SendCreatedWorldGeometryUpdate () |
| Tell observers to re-read the currently selected 2D geometry. More... | |
| virtual void | SendSlice () |
| Send the currently selected slice to the connected observers (renderers) More... | |
| template<typename T > | |
| void | ConnectGeometrySendEvent (T *receiver) |
| template<typename T > | |
| void | ConnectGeometryUpdateEvent (T *receiver) |
| template<typename T > | |
| void | ConnectGeometrySliceEvent (T *receiver) |
| template<typename T > | |
| void | Disconnect (T *receiver) |
| void | SelectSliceByPoint (const Point3D &point) |
| Select the slice closest to the given 3D point. More... | |
| const BaseGeometry * | GetCurrentGeometry3D () |
| Returns the BaseGeometry of the currently selected time step. More... | |
| const PlaneGeometry * | GetCurrentPlaneGeometry () |
| Returns the currently selected Plane in the current BaseGeometry (if existent). More... | |
| virtual void | SetRenderer (BaseRenderer *_arg) |
| Sets / gets the BaseRenderer associated with this SNC (if any). While the BaseRenderer is not directly used by SNC, this is a convenience method to enable BaseRenderer access via the SNC. More... | |
| virtual BaseRenderer * | GetRenderer () |
| void | ReorientSlices (const Point3D &point, const Vector3D &normal) |
| Re-orient the slice stack using a normal vector. More... | |
| void | ReorientSlices (const Point3D &point, const Vector3D &axisVec0, const Vector3D &axisVec1) |
| Re-orient the slice stack using two explicit axis vectors. More... | |
| void | ExecuteOperation (Operation *operation) override |
| Execute an operation (e.g. OpMOVE, OpRESTOREPLANEPOSITION, OpAPPLYTRANSFORMMATRIX). More... | |
| virtual void | SetSliceLocked (bool _arg) |
| Feature option to lock planes during mouse interaction. This option flag disables the mouse event which causes the center cross to move near by. More... | |
| virtual bool | GetSliceLocked () |
| virtual void | SliceLockedOn () |
| virtual void | SliceLockedOff () |
| virtual void | SetSliceRotationLocked (bool _arg) |
| Feature option to lock slice rotation. More... | |
| virtual bool | GetSliceRotationLocked () |
| virtual void | SliceRotationLockedOn () |
| virtual void | SliceRotationLockedOff () |
| void | AdjustSliceStepperRange () |
| Adjusts the numerical range of the slice stepper according to the current geometry orientation of this SNC's SlicedGeometry. More... | |
Public Member Functions inherited from mitk::BaseController | |
| mitkClassMacroItkParent (BaseController, OperationActor) | |
| Stepper * | GetStepper () |
| Get the stepper for stepping through the controlled dimension. More... | |
| const Stepper * | GetStepper () const |
| Get the stepper for stepping through the controlled dimension (const). More... | |
Public Member Functions inherited from mitk::OperationActor | |
| itkTypeMacroNoParent (OperationActor) virtual ~OperationActor() | |
Static Public Member Functions | |
| static Pointer | New () |
Static Public Member Functions inherited from mitk::BaseController | |
| static Pointer | New () |
Public Attributes | |
| Message1< const Point3D & > | SetCrosshairEvent |
| Signal emitted when the crosshair position changes. The parameter is the new position in world coordinates. More... | |
Protected Types | |
| typedef std::map< void *, std::list< unsigned long > > | ObserverTagsMapType |
Protected Member Functions | |
| SliceNavigationController () | |
| ~SliceNavigationController () override | |
| void | CreateWorldGeometry (bool top, bool frontside, bool rotated) |
Protected Member Functions inherited from mitk::BaseController | |
| BaseController () | |
| Default constructor. More... | |
| ~BaseController () override | |
| Destructor. More... | |
Protected Attributes | |
| TimeGeometry::ConstPointer | m_InputWorldTimeGeometry |
| TimeGeometry::Pointer | m_CreatedWorldGeometry |
| AnatomicalPlane | m_ViewDirection |
| AnatomicalPlane | m_DefaultViewDirection |
| RenderingManager::Pointer | m_RenderingManager |
| BaseRenderer * | m_Renderer |
| bool | m_BlockUpdate |
| bool | m_SliceLocked |
| bool | m_SliceRotationLocked |
| ObserverTagsMapType | m_ReceiverToObserverTagsMap |
Protected Attributes inherited from mitk::BaseController | |
| Stepper::Pointer | m_Stepper |
| Stepper through the controlled dimension. More... | |
| unsigned long | m_LastUpdateTime |
| Timestamp of the last update. More... | |
Controls the selection of the slice the associated BaseRenderer will display.
A SliceNavigationController takes a TimeGeometry as input world time geometry and generates a different TimeGeometry as output, depending on the current view direction and the current time step. The TimeGeometry holds a number of SlicedGeometry3Ds and these in turn hold a series of PlaneGeometries. One of these PlaneGeometries is selected as world geometry for the BaseRenderers associated to 2D views.
The SliceNavigationController holds a Stepper, which controls the slice-selection of a single PlaneGeometry from the TimeGeometry. SliceNavigationController generates ITK events to tell observers, like a BaseRenderer, when the selected slice changes.
Example:
You can connect visible navigation widgets to a SliceNavigationController, e.g., a QmitkSliceNavigationWidget (for Qt):
If you do not want that all renderwindows are updated when a new slice is selected, you can use a specific RenderingManager, which updates only those renderwindows that should be updated. This is sometimes useful when a 3D view does not need to be updated when the slices in some 2D views are changed.
Definition at line 134 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 407 of file mitkSliceNavigationController.h.
|
protected |
|
overrideprotected |
| void mitk::SliceNavigationController::AdjustSliceStepperRange | ( | ) |
Adjusts the numerical range of the slice stepper according to the current geometry orientation of this SNC's SlicedGeometry.
|
inline |
Definition at line 259 of file mitkSliceNavigationController.h.
|
inline |
Definition at line 277 of file mitkSliceNavigationController.h.
|
inline |
Definition at line 268 of file mitkSliceNavigationController.h.
|
protected |
|
inline |
Definition at line 287 of file mitkSliceNavigationController.h.
|
overridevirtual |
Execute an operation (e.g. OpMOVE, OpRESTOREPLANEPOSITION, OpAPPLYTRANSFORMMATRIX).
| [in] | operation | The operation to execute. Nullptr is safely ignored. |
Reimplemented from mitk::BaseController.
|
virtual |
Access the created geometry.
|
virtual |
| const BaseGeometry* mitk::SliceNavigationController::GetCurrentGeometry3D | ( | ) |
Returns the BaseGeometry of the currently selected time step.
| const PlaneGeometry* mitk::SliceNavigationController::GetCurrentPlaneGeometry | ( | ) |
Returns the currently selected Plane in the current BaseGeometry (if existent).
|
virtual |
|
virtual |
|
virtual |
|
virtual |
| const char* mitk::SliceNavigationController::GetViewDirectionAsString | ( | ) | const |
Get the current view direction as a human-readable string.
| mitk::SliceNavigationController::itkGetEnumMacro | ( | DefaultViewDirection | , |
| AnatomicalPlane | |||
| ) |
| mitk::SliceNavigationController::itkGetEnumMacro | ( | ViewDirection | , |
| AnatomicalPlane | |||
| ) |
| mitk::SliceNavigationController::itkSetEnumMacro | ( | DefaultViewDirection | , |
| AnatomicalPlane | |||
| ) |
Set the default view direction.
This is used to re-initialize the view direction of the SNC to the default value with SetViewDirectionToDefault()
| mitk::SliceNavigationController::itkSetEnumMacro | ( | ViewDirection | , |
| AnatomicalPlane | |||
| ) |
Set the desired view directions.
| mitk::SliceNavigationController::mitkClassMacro | ( | SliceNavigationController | , |
| BaseController | |||
| ) |
|
static |
| void mitk::SliceNavigationController::ReorientSlices | ( | const Point3D & | point, |
| const Vector3D & | axisVec0, | ||
| const Vector3D & | axisVec1 | ||
| ) |
Re-orient the slice stack using two explicit axis vectors.
All planes are oriented according to the given axis vectors. The given point defines which slice is selected.
| [in] | point | A 3D world coordinate defining the selected slice. |
| [in] | axisVec0 | The first in-plane axis vector. |
| [in] | axisVec1 | The second in-plane axis vector. |
| void mitk::SliceNavigationController::ReorientSlices | ( | const Point3D & | point, |
| const Vector3D & | normal | ||
| ) |
Re-orient the slice stack using a normal vector.
All slices will be oriented perpendicular to the given normal vector. The given point (world coordinates) defines which slice is selected.
| [in] | point | A 3D world coordinate defining the selected slice. |
| [in] | normal | The desired normal vector of the slice planes. |
| void mitk::SliceNavigationController::SelectSliceByPoint | ( | const Point3D & | point | ) |
Select the slice closest to the given 3D point.
Updates the stepper position, sends a geometry update event, and fires the SetCrosshairEvent.
| [in] | point | The 3D world coordinate to select the closest slice for. |
|
virtual |
Send the created geometry to the connected observers (renderers)
Called by Update().
|
virtual |
Tell observers to re-read the currently selected 2D geometry.
|
virtual |
Send the currently selected slice to the connected observers (renderers)
Called by Update().
| void mitk::SliceNavigationController::SetInputWorldTimeGeometry | ( | const TimeGeometry * | geometry | ) |
Set the input world time geometry out of which the geometries for slicing will be created.
Any previous set input geometry (3D or Time) will be ignored in the future.
|
virtual |
Sets / gets the BaseRenderer associated with this SNC (if any). While the BaseRenderer is not directly used by SNC, this is a convenience method to enable BaseRenderer access via the SNC.
|
virtual |
Feature option to lock planes during mouse interaction. This option flag disables the mouse event which causes the center cross to move near by.
|
virtual |
Feature option to lock slice rotation.
This option flag disables separately the rotation of a slice which is implemented in mitkSliceRotator.
|
virtual |
Reset the view direction to the default view direction.
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
Do the actual creation and send it to the connected observers (renderers)
|
virtual |
Extended version of Update, additionally allowing to specify the direction/orientation of the created geometry.
| [in] | viewDirection | The anatomical plane direction for slicing. |
| [in] | top | If true, the geometry is oriented from the top. |
| [in] | frontside | If true, the geometry faces the front side. |
| [in] | rotated | If true, the geometry is rotated. |
|
protected |
Definition at line 402 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 393 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 396 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 392 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 408 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 400 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 398 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 404 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 405 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 395 of file mitkSliceNavigationController.h.
Signal emitted when the crosshair position changes. The parameter is the new position in world coordinates.
Definition at line 301 of file mitkSliceNavigationController.h.