Medical Imaging Interaction Toolkit  2016.11.0
Medical Imaging Interaction Toolkit
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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