MITK-IGT
IGT Extension of MITK
Loading...
Searching...
No Matches
mitkNavigationTool.h
Go to the documentation of this file.
1/*============================================================================
2
3The Medical Imaging Interaction Toolkit (MITK)
4
5Copyright (c) German Cancer Research Center (DKFZ)
6All rights reserved.
7
8Use of this source code is governed by a 3-clause BSD license that can be
9found in the LICENSE file.
10
11============================================================================*/
12
13#ifndef mitkNavigationTool_h
14#define mitkNavigationTool_h
15
16//itk headers
17#include <itkObjectFactory.h>
18#include <itkSpatialObject.h>
19#include <itkDataObject.h>
20
21//mitk headers
22#include <mitkCommon.h>
23#include <mitkDataNode.h>
24#include <mitkPointSet.h>
25#include <mitkTrackingTypes.h>
26#include <mitkSurface.h>
27#include <MitkIGTExports.h>
28
29namespace mitk {
39 class MITKIGT_EXPORT NavigationTool : public itk::DataObject
40 {
41 public:
42
46
47 enum NavigationToolType {Instrument, Fiducial, Skinmarker, Unknown};
48
49 //## getter and setter ##
50 //NavigationToolType:
53
54 //Identifier:
55 itkGetConstMacro(Identifier,std::string);
56 itkSetMacro(Identifier,std::string);
57
58 //Datatreenode:
59 itkGetConstMacro(DataNode,mitk::DataNode::Pointer);
60 itkSetMacro(DataNode,mitk::DataNode::Pointer);
61
62 //SpatialObject:
63 itkGetConstMacro(SpatialObject,itk::SpatialObject<3>::Pointer);
64 itkSetMacro(SpatialObject,itk::SpatialObject<3>::Pointer);
65
66 //CalibrationFile:
67 itkGetConstMacro(CalibrationFile,std::string);
68 void SetCalibrationFile(const std::string filename);
69
70 //Tool tip definition:
71 itkGetConstMacro(ToolTipPosition,mitk::Point3D);
72 itkSetMacro(ToolTipPosition,mitk::Point3D);
73 itkGetConstMacro(ToolAxisOrientation,mitk::Quaternion);
74 itkSetMacro(ToolAxisOrientation,mitk::Quaternion);
75
76 //Tool Axis definition:
78 mitk::Point3D GetToolAxis();
82 void SetToolAxis(mitk::Point3D toolAxis);
83
85 mitk::AffineTransform3D::Pointer GetToolTipTransform();
86
88 bool IsToolTipSet();
89
90 //Tool Landmarks:
109 itkGetConstMacro(ToolLandmarks,mitk::PointSet::Pointer);
113 itkSetMacro(ToolLandmarks,mitk::PointSet::Pointer);
117 itkGetConstMacro(ToolControlPoints,mitk::PointSet::Pointer);
121 itkSetMacro(ToolControlPoints,mitk::PointSet::Pointer);
122
123 //SerialNumber:
124 itkGetConstMacro(SerialNumber,std::string);
125 itkSetMacro(SerialNumber,std::string);
126 //TrackingDeviceType:
129 //ToolName (only getter):
138 std::string GetToolName();
139 //ToolSurface (only getter):
147 mitk::Surface::Pointer GetToolSurface();
158 void Graft(const DataObject *data) override;
159
160
164 std::string GetStringWithAllToolInformation() const;
165
166
167 void SetDefaultSurface();
168
169 //#######################
170
171 protected:
172
174 NavigationTool(const NavigationTool &other);
175 ~NavigationTool() override;
176 itk::LightObject::Pointer InternalClone() const override;
177
178 //## data structure of a navigation tool object ##
179 std::string m_Identifier;
182 mitk::DataNode::Pointer m_DataNode;
184 itk::SpatialObject<3>::Pointer m_SpatialObject;
186 std::string m_CalibrationFile;
189 std::string m_SerialNumber;
193 mitk::PointSet::Pointer m_ToolLandmarks;
197 mitk::PointSet::Pointer m_ToolControlPoints;
199 mitk::Point3D m_ToolTipPosition;
201 mitk::Quaternion m_ToolAxisOrientation;
202
203 };
204} // namespace mitk
205#endif
An object of this class represents a navigation tool in the view of the software. A few informations ...
itkSetMacro(ToolAxisOrientation, mitk::Quaternion)
mitk::TrackingDeviceType m_TrackingDeviceType
This member holds the tracking device type of the tool.
itkSetMacro(Identifier, std::string)
itkSetMacro(DataNode, mitk::DataNode::Pointer)
itkGetConstMacro(TrackingDeviceType, mitk::TrackingDeviceType)
itkSetMacro(SpatialObject, itk::SpatialObject< 3 >::Pointer)
NavigationToolType m_Type
itkGetConstMacro(ToolLandmarks, mitk::PointSet::Pointer)
itkGetConstMacro(ToolControlPoints, mitk::PointSet::Pointer)
mitkClassMacroItkParent(NavigationTool, itk::DataObject)
mitk::PointSet::Pointer m_ToolLandmarks
Holds landmarks for tool registration.
itkSetMacro(ToolTipPosition, mitk::Point3D)
itkGetConstMacro(SerialNumber, std::string)
mitk::DataNode::Pointer m_DataNode
This DataNode holds a toolname and a tool surface.
itkSetMacro(SerialNumber, std::string)
itkGetConstMacro(Type, NavigationToolType)
mitk::Point3D m_ToolTipPosition
Holds the position of the tool tip.
mitk::PointSet::Pointer m_ToolControlPoints
Holds control points in the tool coordinate system, e.g. 2 landmarks for a 5DoF tool and 3 landmarks ...
itkSetMacro(TrackingDeviceType, mitk::TrackingDeviceType)
itkGetConstMacro(Identifier, std::string)
itkSetMacro(Type, NavigationToolType)
itkGetConstMacro(ToolTipPosition, mitk::Point3D)
itkGetConstMacro(SpatialObject, itk::SpatialObject< 3 >::Pointer)
mitk::Quaternion m_ToolAxisOrientation
Holds the transformation of the main tool axis to the negative z-axis (0,0,-1)
std::string m_SerialNumber
A unique serial number of the tool which is needed to identify the tool correctly....
itkGetConstMacro(CalibrationFile, std::string)
itkSetMacro(ToolControlPoints, mitk::PointSet::Pointer)
Sets the tool calibration landmarks for calibration of defined points in the tool coordinate system,...
itk::SpatialObject< 3 >::Pointer m_SpatialObject
This member variable holds a mathamatical description of the tool.
std::string m_CalibrationFile
The path to the calibration file of the tool.
itkGetConstMacro(ToolAxisOrientation, mitk::Quaternion)
itkGetConstMacro(DataNode, mitk::DataNode::Pointer)
itkSetMacro(ToolLandmarks, mitk::PointSet::Pointer)
Sets the tool landmarks which represent markers / special points on a tool that can be used for regis...
IGT Exceptions.
std::string TrackingDeviceType