Medical Imaging Interaction Toolkit  2022.10.99-eeb2f471
Medical Imaging Interaction Toolkit
mitkCrosshairManager.h
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 #ifndef mitkCrosshairManager_h
14 #define mitkCrosshairManager_h
15 
16 #include <MitkCoreExports.h>
17 
18 #include <mitkBaseRenderer.h>
19 #include <mitkDataStorage.h>
20 #include <mitkPlaneGeometry.h>
21 #include <mitkTimeGeometry.h>
22 
23 #include <itkCommand.h>
24 #include <itkObject.h>
25 
26 namespace mitk
27 {
41  class MITKCORE_EXPORT CrosshairManager : public itk::Object
42  {
43  public:
44 
47 
48  itkSetObjectMacro(DataStorage, DataStorage);
49  itkSetObjectMacro(BaseRenderer, BaseRenderer);
50 
54  void ComputeOrientedTimeGeometries(const TimeGeometry* geometry);
55 
56  void SetCrosshairPosition(const Point3D& selectedPoint);
57  Point3D GetCrosshairPosition() const;
58 
59  void UpdateSlice(const SliceNavigationController* sliceNavigationController);
60 
61  void SetCrosshairVisibility(bool visible);
62  bool GetCrosshairVisibility() const;
63  void SetCrosshairGap(unsigned int gapSize);
64 
65  void AddPlanesToDataStorage();
66  void RemovePlanesFromDataStorage();
67 
68  protected:
69 
70  CrosshairManager(DataStorage* dataStorage, BaseRenderer* baseRenderer);
72 
73  void InitializePlaneProperties(DataNode::Pointer planeNode, const std::string& planeName);
74  void InitializePlaneData(DataNode::Pointer planeNode, const TimeGeometry* timeGeometry, unsigned int& slice);
75  void UpdatePlaneSlice(DataNode::Pointer planeNode, const TimeGeometry* timeGeometry, unsigned int slice);
76  void SetCrosshairPosition(const Point3D& selectedPoint,
77  DataNode::Pointer planeNode,
78  const TimeGeometry* timeGeometry,
79  unsigned int& slice);
80  void AddPlaneToDataStorage(DataNode::Pointer planeNode, DataNode::Pointer parent);
81 
84 
89 
90  unsigned int m_AxialSlice;
91  unsigned int m_CoronalSlice;
92  unsigned int m_SagittalSlice;
93 
101 
102  };
103 } // namespace mitk
104 
105 #endif
mitk::CrosshairManager::m_AxialSlice
unsigned int m_AxialSlice
Definition: mitkCrosshairManager.h:90
mitk::CrosshairManager::m_CoronalPlaneNode
DataNode::Pointer m_CoronalPlaneNode
Definition: mitkCrosshairManager.h:98
mitk::TimeGeometry
Definition: mitkTimeGeometry.h:43
mitkNewMacro2Param
#define mitkNewMacro2Param(classname, typea, typeb)
Definition: mitkCommon.h:81
mitk::CrosshairManager::m_BaseRenderer
BaseRenderer * m_BaseRenderer
Definition: mitkCrosshairManager.h:83
mitk::CrosshairManager::m_InputTimeGeometry
TimeGeometry::ConstPointer m_InputTimeGeometry
Definition: mitkCrosshairManager.h:85
mitk::CrosshairManager::m_SagittalPlaneNode
DataNode::Pointer m_SagittalPlaneNode
Definition: mitkCrosshairManager.h:99
mitk::CrosshairManager::m_AxialPlaneNode
DataNode::Pointer m_AxialPlaneNode
The 3 helper objects which contain the plane geometry.
Definition: mitkCrosshairManager.h:97
mitkDataStorage.h
itk::SmartPointer< Self >
mitkTimeGeometry.h
mitkClassMacroItkParent
#define mitkClassMacroItkParent(className, SuperClassName)
Definition: mitkCommon.h:45
mitk::SliceNavigationController
Controls the selection of the slice the associated BaseRenderer will display.
Definition: mitkSliceNavigationController.h:132
mitk
DataCollection - Class to facilitate loading/accessing structured data.
Definition: RenderingTests.dox:1
mitk::CrosshairManager::m_SagittalTimeGeometry
TimeGeometry::Pointer m_SagittalTimeGeometry
Definition: mitkCrosshairManager.h:88
MitkCoreExports.h
mitk::Point< ScalarType, 3 >
mitk::CrosshairManager::m_DataStorage
DataStorage * m_DataStorage
Definition: mitkCrosshairManager.h:82
mitk::DataStorage
Data management class that handles 'was created by' relations.
Definition: mitkDataStorage.h:43
mitk::CrosshairManager
The CrosshairManager takes care of the correct settings for the plane geometries that form the crossh...
Definition: mitkCrosshairManager.h:41
mitk::CrosshairManager::m_SagittalSlice
unsigned int m_SagittalSlice
Definition: mitkCrosshairManager.h:92
mitk::CrosshairManager::m_CoronalSlice
unsigned int m_CoronalSlice
Definition: mitkCrosshairManager.h:91
mitk::CrosshairManager::m_ParentNodeForGeometryPlanes
DataNode::Pointer m_ParentNodeForGeometryPlanes
Definition: mitkCrosshairManager.h:100
mitk::BaseRenderer
Definition: mitkBaseRenderer.h:55
mitk::CrosshairManager::m_CoronalTimeGeometry
TimeGeometry::Pointer m_CoronalTimeGeometry
Definition: mitkCrosshairManager.h:87
mitkBaseRenderer.h
mitk::CrosshairManager::m_AxialTimeGeometry
TimeGeometry::Pointer m_AxialTimeGeometry
Definition: mitkCrosshairManager.h:86
MITKCORE_EXPORT
#define MITKCORE_EXPORT
Definition: MitkCoreExports.h:15
mitkPlaneGeometry.h