Medical Imaging Interaction Toolkit  2016.11.0
Medical Imaging Interaction Toolkit
mitkNavigationTool.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,
6 Division of Medical and Biological Informatics.
7 All rights reserved.
8 
9 This software is distributed WITHOUT ANY WARRANTY; without
10 even the implied warranty of MERCHANTABILITY or FITNESS FOR
11 A PARTICULAR PURPOSE.
12 
13 See LICENSE.txt or http://www.mitk.org for details.
14 
15 ===================================================================*/
16 
17 #ifndef NAVIGATIONTOOL_H_INCLUDED
18 #define NAVIGATIONTOOL_H_INCLUDED
19 
20 //itk headers
21 #include <itkObjectFactory.h>
22 #include <itkSpatialObject.h>
23 #include <itkDataObject.h>
24 
25 //mitk headers
26 #include <mitkCommon.h>
27 #include <mitkDataNode.h>
28 #include <mitkPointSet.h>
29 #include <mitkTrackingTool.h>
30 #include <mitkTrackingTypes.h>
31 #include <mitkSurface.h>
32 #include <MitkIGTExports.h>
33 
34 namespace mitk {
44  class MITKIGT_EXPORT NavigationTool : public itk::DataObject
45  {
46  public:
47 
48  mitkClassMacroItkParent(NavigationTool,itk::DataObject);
49  itkFactorylessNewMacro(Self)
50  itkCloneMacro(Self)
51 
52  enum NavigationToolType {Instrument, Fiducial, Skinmarker, Unknown};
53 
54  //## getter and setter ##
55  //NavigationToolType:
56  itkGetConstMacro(Type,NavigationToolType);
57  itkSetMacro(Type,NavigationToolType);
58 
59  //Identifier:
60  itkGetConstMacro(Identifier,std::string);
61  itkSetMacro(Identifier,std::string);
62 
63  //Datatreenode:
64  itkGetConstMacro(DataNode,mitk::DataNode::Pointer);
65  itkSetMacro(DataNode,mitk::DataNode::Pointer);
66 
67  //SpatialObject:
68  itkGetConstMacro(SpatialObject,itk::SpatialObject<3>::Pointer);
69  itkSetMacro(SpatialObject,itk::SpatialObject<3>::Pointer);
70 
71  //TrackingTool:
72  itkGetConstMacro(TrackingTool,mitk::TrackingTool::Pointer);
74 
75  //CalibrationFile:
76  itkGetConstMacro(CalibrationFile,std::string);
77  void SetCalibrationFile(const std::string filename);
78 
79  //Tool tip definition:
80  itkGetConstMacro(ToolTipPosition,mitk::Point3D);
81  itkSetMacro(ToolTipPosition,mitk::Point3D);
82  itkGetConstMacro(ToolTipOrientation,mitk::Quaternion);
83  itkSetMacro(ToolTipOrientation,mitk::Quaternion);
84 
86  mitk::AffineTransform3D::Pointer GetToolTipTransform();
87 
89  bool IsToolTipSet();
90 
91  //Tool Landmarks:
110  itkGetConstMacro(ToolRegistrationLandmarks,mitk::PointSet::Pointer);
114  itkSetMacro(ToolRegistrationLandmarks,mitk::PointSet::Pointer);
118  itkGetConstMacro(ToolCalibrationLandmarks,mitk::PointSet::Pointer);
122  itkSetMacro(ToolCalibrationLandmarks,mitk::PointSet::Pointer);
123 
124  //SerialNumber:
125  itkGetConstMacro(SerialNumber,std::string);
126  itkSetMacro(SerialNumber,std::string);
127  //TrackingDeviceType:
130  //ToolName (only getter):
139  std::string GetToolName();
140  //ToolSurface (only getter):
148  mitk::Surface::Pointer GetToolSurface();
159  virtual void Graft(const DataObject *data) override;
160  //#######################
161 
162  protected:
163 
164  NavigationTool();
165  ~NavigationTool();
166 
167  //## data structure of a navigation tool object ##
168  std::string m_Identifier;
177  std::string m_CalibrationFile;
180  std::string m_SerialNumber;
193  //#################################################
194 
195  };
196 } // namespace mitk
197 #endif //NAVIGATIONTOOL
Interface for all Tracking Tools.
itk::SmartPointer< Self > Pointer
std::string m_SerialNumber
A unique serial number of the tool which is needed to identify the tool correctly. This is very important in case of the NDI Aurora System.
mitk::DataNode::Pointer m_DataNode
This DataNode holds a toolname and a tool surface.
mitk::Point3D m_ToolTipPosition
Holds the position of the tool tip.
mitk::PointSet::Pointer m_ToolCalibrationLandmarks
Holds landmarks for calibration of the defined points in the tool coordinate system, e.g. 2 landmarks for a 5DoF tool and 3 landmarks for a 6DoF tool.
DataCollection - Class to facilitate loading/accessing structured data.
An object of this class represents a navigation tool in the view of the software. A few informations ...
mitk::TrackingDeviceType m_TrackingDeviceType
This member holds the tracking device type of the tool.
NavigationToolType m_Type
itk::SpatialObject< 3 >::Pointer m_SpatialObject
This member variable holds a mathamatical description of the tool.
static const std::string filename
#define mitkClassMacroItkParent(className, SuperClassName)
Definition: mitkCommon.h:53
mitk::Quaternion m_ToolTipOrientation
Holds the orientation of the tool tip.
vnl_quaternion< ScalarType > Quaternion
std::string m_CalibrationFile
The path to the calibration file of the tool.
mitk::TrackingTool::Pointer m_TrackingTool
This member variable holds a pointer to the corresponding tracking tool in the hardware.
std::string TrackingDeviceType
mitk::PointSet::Pointer m_ToolRegistrationLandmarks
Holds landmarks for tool registration.
Class for nodes of the DataTree.
Definition: mitkDataNode.h:66