Medical Imaging Interaction Toolkit
2023.04.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 | GeometryTimeEvent |
class | GeometryUpdateEvent |
class | TimeGeometryEvent |
Public Types | |
typedef SliceNavigationController | Self |
typedef BaseController | Superclass |
typedef itk::SmartPointer< Self > | Pointer |
typedef itk::SmartPointer< const Self > | ConstPointer |
Public Types inherited from mitk::BaseController | |
typedef BaseController | Self |
typedef OperationActor | Superclass |
typedef itk::SmartPointer< Self > | Pointer |
typedef itk::SmartPointer< const Self > | ConstPointer |
Public Member Functions | |
virtual std::vector< std::string > | GetClassHierarchy () const override |
virtual const char * | GetClassName () const |
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 |
virtual void | SetViewDirectionToDefault () |
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... | |
virtual void | SendTime () |
Send the currently selected time 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 | ConnectGeometryTimeEvent (T *receiver) |
template<typename T > | |
void | ConnectGeometryEvents (T *receiver) |
template<typename T > | |
void | Disconnect (T *receiver) |
virtual void | SetGeometry (const itk::EventObject &geometrySliceEvent) |
To connect multiple SliceNavigationController, we can act as an observer ourselves: implemented interface. More... | |
virtual void | SetGeometrySlice (const itk::EventObject &geometrySliceEvent) |
To connect multiple SliceNavigationController, we can act as an observer ourselves: implemented interface. More... | |
virtual void | SetGeometryTime (const itk::EventObject &geometryTimeEvent) |
To connect multiple SliceNavigationController, we can act as an observer ourselves: implemented interface. More... | |
void | SelectSliceByPoint (const Point3D &point) |
Positions the SNC according to the specified 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-orients the slice stack. All slices will be oriented to the given normal vector. The given point (world coordinates) defines the selected slice. Careful: The resulting axis vectors are not clearly defined this way. If you want to define them clearly, use ReorientSlices (const Point3D &point, const Vector3D &axisVec0, const Vector3D &axisVec1). More... | |
void | ReorientSlices (const Point3D &point, const Vector3D &axisVec0, const Vector3D &axisVec1) |
Re-orients the slice stack so that all planes are oriented according to the given axis vectors. The given Point eventually defines selected slice. More... | |
void | ExecuteOperation (Operation *operation) override |
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... | |
TimeStepType | GetSelectedTimeStep () const |
Convenience method that returns the time step currently selected by the controller. More... | |
TimePointType | GetSelectedTimePoint () const |
Convenience method that returns the time point that corresponds to the selected time step. The conversion is done using the time geometry of the SliceNavigationController. If the time geometry is not yet set, this function will always return 0.0. More... | |
Public Member Functions inherited from mitk::BaseController | |
Stepper * | GetSlice () |
Get the Stepper through the slices. More... | |
const Stepper * | GetSlice () const |
Stepper * | GetTime () |
Get the Stepper through the time. More... | |
const Stepper * | GetTime () const |
Public Member Functions inherited from mitk::OperationActor | |
itkTypeMacroNoParent (OperationActor) virtual ~OperationActor() | |
Static Public Member Functions | |
static const char * | GetStaticNameOfClass () |
static Pointer | New () |
Static Public Member Functions inherited from mitk::BaseController | |
static const char * | GetStaticNameOfClass () |
static Pointer | New () |
Public Attributes | |
Message1< const Point3D & > | SetCrosshairEvent |
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 | |
Default 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_Time |
Stepper::Pointer | m_Slice |
unsigned long | m_LastUpdateTime |
Controls the selection of the slice the associated BaseRenderer will display.
A SliceNavigationController takes a BaseGeometry or a TimeGeometry as input world geometry (TODO what are the exact requirements?) and generates a TimeGeometry as output. 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 has Steppers (one for the slice, a second for the time step), which control the selection of a single PlaneGeometry from the TimeGeometry. SliceNavigationController generates ITK events to tell observers, like a BaseRenderer, when the selected slice or timestep 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 132 of file mitkSliceNavigationController.h.
typedef itk::SmartPointer<const Self> mitk::SliceNavigationController::ConstPointer |
Definition at line 136 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 420 of file mitkSliceNavigationController.h.
Definition at line 136 of file mitkSliceNavigationController.h.
Definition at line 136 of file mitkSliceNavigationController.h.
Definition at line 136 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 290 of file mitkSliceNavigationController.h.
|
inline |
Definition at line 254 of file mitkSliceNavigationController.h.
|
inline |
Definition at line 272 of file mitkSliceNavigationController.h.
|
inline |
Definition at line 281 of file mitkSliceNavigationController.h.
|
inline |
Definition at line 263 of file mitkSliceNavigationController.h.
|
protected |
|
inline |
Definition at line 299 of file mitkSliceNavigationController.h.
|
overridevirtual |
Reimplemented from mitk::BaseController.
|
inlineoverridevirtual |
Reimplemented from mitk::BaseController.
Definition at line 136 of file mitkSliceNavigationController.h.
|
virtual |
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 |
TimePointType mitk::SliceNavigationController::GetSelectedTimePoint | ( | ) | const |
Convenience method that returns the time point that corresponds to the selected time step. The conversion is done using the time geometry of the SliceNavigationController. If the time geometry is not yet set, this function will always return 0.0.
TimeStepType mitk::SliceNavigationController::GetSelectedTimeStep | ( | ) | const |
Convenience method that returns the time step currently selected by the controller.
|
virtual |
|
virtual |
|
inlinestatic |
Definition at line 136 of file mitkSliceNavigationController.h.
const char* mitk::SliceNavigationController::GetViewDirectionAsString | ( | ) | const |
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.
|
static |
void mitk::SliceNavigationController::ReorientSlices | ( | const Point3D & | point, |
const Vector3D & | axisVec0, | ||
const Vector3D & | axisVec1 | ||
) |
Re-orients the slice stack so that all planes are oriented according to the given axis vectors. The given Point eventually defines selected slice.
void mitk::SliceNavigationController::ReorientSlices | ( | const Point3D & | point, |
const Vector3D & | normal | ||
) |
Re-orients the slice stack. All slices will be oriented to the given normal vector. The given point (world coordinates) defines the selected slice. Careful: The resulting axis vectors are not clearly defined this way. If you want to define them clearly, use ReorientSlices (const Point3D &point, const Vector3D &axisVec0, const Vector3D &axisVec1).
void mitk::SliceNavigationController::SelectSliceByPoint | ( | const Point3D & | point | ) |
Positions the SNC according to the specified point.
|
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().
|
virtual |
Send the currently selected time to the connected observers (renderers)
Called by Update().
|
virtual |
To connect multiple SliceNavigationController, we can act as an observer ourselves: implemented interface.
|
virtual |
To connect multiple SliceNavigationController, we can act as an observer ourselves: implemented interface.
|
virtual |
To connect multiple SliceNavigationController, we can act as an observer ourselves: implemented interface.
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 previous set input geometry (3D or Time) will be ignored in 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 |
|
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.
|
protected |
Definition at line 415 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 406 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 409 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 405 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 421 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 413 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 411 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 417 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 418 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 408 of file mitkSliceNavigationController.h.
Definition at line 312 of file mitkSliceNavigationController.h.