Medical Imaging Interaction Toolkit
2018.04.99-3ec0dd08
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 | |
enum | ViewDirection { Axial, Sagittal, Frontal, Original } |
Possible view directions, Original will uses the PlaneGeometry instances in a SlicedGeometry3D provided as input world geometry (by SetInputWorldGeometry3D). More... | |
typedef SliceNavigationController | Self |
typedef BaseController | Superclass |
typedef itk::SmartPointer< Self > | Pointer |
typedef itk::SmartPointer< const Self > | ConstPointer |
![]() | |
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 | SetInputWorldGeometry3D (const mitk::BaseGeometry *geometry) |
Set the input world geometry3D out of which the geometries for slicing will be created. More... | |
virtual const mitk::BaseGeometry * | GetInputWorldGeometry3D () |
void | SetInputWorldTimeGeometry (const mitk::TimeGeometry *geometry) |
virtual const mitk::TimeGeometry * | GetInputWorldTimeGeometry () |
virtual const mitk::TimeGeometry * | GetCreatedWorldGeometry () |
Access the created geometry. More... | |
itkSetEnumMacro (ViewDirection, ViewDirection) | |
Set the desired view directions. More... | |
itkGetEnumMacro (ViewDirection, ViewDirection) | |
itkSetEnumMacro (DefaultViewDirection, ViewDirection) | |
Set the default view direction. More... | |
itkGetEnumMacro (DefaultViewDirection, ViewDirection) | |
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 (ViewDirection 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... | |
itkEventMacro (UpdateEvent, itk::AnyEvent) | |
template<typename T > | |
void | ConnectGeometrySendEvent (T *receiver) |
template<typename T > | |
void | ConnectGeometryUpdateEvent (T *receiver) |
template<typename T > | |
void | ConnectGeometrySliceEvent (T *receiver, bool connectSendEvent=true) |
template<typename T > | |
void | ConnectGeometryTimeEvent (T *receiver, bool connectSendEvent=true) |
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 mitk::Point3D &point) |
Positions the SNC according to the specified point. More... | |
mitk::TimeGeometry * | GetCreatedWorldGeometry () |
Returns the TimeGeometry created by the SNC. More... | |
const mitk::BaseGeometry * | GetCurrentGeometry3D () |
Returns the BaseGeometry of the currently selected time step. More... | |
const mitk::PlaneGeometry * | GetCurrentPlaneGeometry () |
Returns the currently selected Plane in the current BaseGeometry (if existent). More... | |
void | SetRenderer (BaseRenderer *renderer) |
Sets 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... | |
BaseRenderer * | GetRenderer () const |
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. Returns nullptr if no BaseRenderer has been specified. More... | |
void | ReorientSlices (const mitk::Point3D &point, const mitk::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 mitk::Point3D &point, const mitk::Vector3D &axisVec0, const mitk::Vector3D &axisVec1). More... | |
void | ReorientSlices (const mitk::Point3D &point, const mitk::Vector3D &axisVec0, const mitk::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... | |
![]() | |
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 |
![]() | |
itkTypeMacroNoParent (OperationActor) virtual ~OperationActor() | |
Static Public Member Functions | |
static const char * | GetStaticNameOfClass () |
static Pointer | New () |
![]() | |
static const char * | GetStaticNameOfClass () |
static Pointer | New () |
Public Attributes | |
Message1< mitk::Point3D > | SetCrosshairEvent |
Protected Types | |
typedef std::map< void *, std::list< unsigned long > > | ObserverTagsMapType |
Protected Member Functions | |
SliceNavigationController () | |
~SliceNavigationController () override | |
virtual void | SetTop (bool _arg) |
virtual bool | GetTop () |
virtual void | TopOn () |
virtual void | TopOff () |
virtual void | SetFrontSide (bool _arg) |
virtual bool | GetFrontSide () |
virtual void | FrontSideOn () |
virtual void | FrontSideOff () |
virtual void | SetRotated (bool _arg) |
virtual bool | GetRotated () |
virtual void | RotatedOn () |
virtual void | RotatedOff () |
![]() | |
BaseController () | |
Default Constructor. More... | |
~BaseController () override | |
Default Destructor. More... | |
Protected Attributes | |
mitk::BaseGeometry::ConstPointer | m_InputWorldGeometry3D |
mitk::TimeGeometry::ConstPointer | m_InputWorldTimeGeometry |
mitk::TimeGeometry::Pointer | m_CreatedWorldGeometry |
ViewDirection | m_ViewDirection |
ViewDirection | m_DefaultViewDirection |
mitk::RenderingManager::Pointer | m_RenderingManager |
mitk::BaseRenderer * | m_Renderer |
bool | m_Top |
bool | m_FrontSide |
bool | m_Rotated |
bool | m_BlockUpdate |
bool | m_SliceLocked |
bool | m_SliceRotationLocked |
unsigned int | m_OldPos |
ObserverTagsMapType | m_ReceiverToObserverTagsMap |
![]() | |
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 navigators to a SliceNavigationController, e.g., a QmitkSliderNavigator (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. QmitkSliderNavigator (for Qt):
Definition at line 132 of file mitkSliceNavigationController.h.
typedef itk::SmartPointer<const Self> mitk::SliceNavigationController::ConstPointer |
Definition at line 135 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 471 of file mitkSliceNavigationController.h.
Definition at line 135 of file mitkSliceNavigationController.h.
Definition at line 135 of file mitkSliceNavigationController.h.
Definition at line 135 of file mitkSliceNavigationController.h.
Possible view directions, Original will uses the PlaneGeometry instances in a SlicedGeometry3D provided as input world geometry (by SetInputWorldGeometry3D).
Enumerator | |
---|---|
Axial | |
Sagittal | |
Frontal | |
Original |
Definition at line 146 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 318 of file mitkSliceNavigationController.h.
|
inline |
Definition at line 274 of file mitkSliceNavigationController.h.
|
inline |
Definition at line 294 of file mitkSliceNavigationController.h.
|
inline |
Definition at line 306 of file mitkSliceNavigationController.h.
|
inline |
Definition at line 284 of file mitkSliceNavigationController.h.
|
inline |
Definition at line 327 of file mitkSliceNavigationController.h.
|
overridevirtual |
Reimplemented from mitk::BaseController.
|
protectedvirtual |
|
protectedvirtual |
|
inlineoverridevirtual |
Reimplemented from mitk::BaseController.
Definition at line 135 of file mitkSliceNavigationController.h.
|
virtual |
Reimplemented from mitk::BaseController.
|
virtual |
Access the created geometry.
mitk::TimeGeometry* mitk::SliceNavigationController::GetCreatedWorldGeometry | ( | ) |
Returns the TimeGeometry created by the SNC.
const mitk::BaseGeometry* mitk::SliceNavigationController::GetCurrentGeometry3D | ( | ) |
Returns the BaseGeometry of the currently selected time step.
const mitk::PlaneGeometry* mitk::SliceNavigationController::GetCurrentPlaneGeometry | ( | ) |
Returns the currently selected Plane in the current BaseGeometry (if existent).
|
protectedvirtual |
|
virtual |
|
virtual |
BaseRenderer* mitk::SliceNavigationController::GetRenderer | ( | ) | const |
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. Returns nullptr if no BaseRenderer has been specified.
|
protectedvirtual |
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 135 of file mitkSliceNavigationController.h.
|
protectedvirtual |
const char* mitk::SliceNavigationController::GetViewDirectionAsString | ( | ) | const |
mitk::SliceNavigationController::itkEventMacro | ( | UpdateEvent | , |
itk::AnyEvent | |||
) |
mitk::SliceNavigationController::itkGetEnumMacro | ( | ViewDirection | , |
ViewDirection | |||
) |
mitk::SliceNavigationController::itkGetEnumMacro | ( | DefaultViewDirection | , |
ViewDirection | |||
) |
mitk::SliceNavigationController::itkSetEnumMacro | ( | ViewDirection | , |
ViewDirection | |||
) |
Set the desired view directions.
mitk::SliceNavigationController::itkSetEnumMacro | ( | DefaultViewDirection | , |
ViewDirection | |||
) |
Set the default view direction.
This is used to re-initialize the view direction of the SNC to the default value with SetViewDirectionToDefault()
|
static |
void mitk::SliceNavigationController::ReorientSlices | ( | const mitk::Point3D & | point, |
const mitk::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 mitk::Point3D &point, const mitk::Vector3D &axisVec0, const mitk::Vector3D &axisVec1).
void mitk::SliceNavigationController::ReorientSlices | ( | const mitk::Point3D & | point, |
const mitk::Vector3D & | axisVec0, | ||
const mitk::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.
|
protectedvirtual |
|
protectedvirtual |
void mitk::SliceNavigationController::SelectSliceByPoint | ( | const mitk::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().
|
protectedvirtual |
|
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::SetInputWorldGeometry3D | ( | const mitk::BaseGeometry * | geometry | ) |
Set the input world geometry3D out of which the geometries for slicing will be created.
Any previous previous set input geometry (3D or Time) will be ignored in future.
void mitk::SliceNavigationController::SetInputWorldTimeGeometry | ( | const mitk::TimeGeometry * | geometry | ) |
void mitk::SliceNavigationController::SetRenderer | ( | BaseRenderer * | renderer | ) |
Sets 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.
|
protectedvirtual |
|
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.
|
protectedvirtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
protectedvirtual |
|
protectedvirtual |
|
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 465 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 440 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 443 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 462 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 437 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 438 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 469 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 472 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 447 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 445 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 463 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 467 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 468 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 459 of file mitkSliceNavigationController.h.
|
protected |
Definition at line 442 of file mitkSliceNavigationController.h.
Message1<mitk::Point3D> mitk::SliceNavigationController::SetCrosshairEvent |
Definition at line 340 of file mitkSliceNavigationController.h.