MITK-IGT
IGT Extension of MITK
Loading...
Searching...
No Matches
mitk::NavigationTool Class Reference

An object of this class represents a navigation tool in the view of the software. A few informations like an identifier, a toolname, a surface and a itk spatial object are stored in such an object. The classes NavigationToolReader and are availiable to write/read tools to/from the harddisc. If you need a collection of navigation tools the class NavigationToolStorage could be used. More...

#include <mitkNavigationTool.h>

Inheritance diagram for mitk::NavigationTool:

Public Types

enum  NavigationToolType { Instrument , Fiducial , Skinmarker , Unknown }
 

Public Member Functions

 mitkClassMacroItkParent (NavigationTool, itk::DataObject)
 
 itkFactorylessNewMacro (Self)
 
 itkCloneMacro (Self)
 
 itkGetConstMacro (Type, NavigationToolType)
 
 itkSetMacro (Type, NavigationToolType)
 
 itkGetConstMacro (Identifier, std::string)
 
 itkSetMacro (Identifier, std::string)
 
 itkGetConstMacro (DataNode, mitk::DataNode::Pointer)
 
 itkSetMacro (DataNode, mitk::DataNode::Pointer)
 
 itkGetConstMacro (SpatialObject, itk::SpatialObject< 3 >::Pointer)
 
 itkSetMacro (SpatialObject, itk::SpatialObject< 3 >::Pointer)
 
 itkGetConstMacro (CalibrationFile, std::string)
 
void SetCalibrationFile (const std::string filename)
 
 itkGetConstMacro (ToolTipPosition, mitk::Point3D)
 
 itkSetMacro (ToolTipPosition, mitk::Point3D)
 
 itkGetConstMacro (ToolAxisOrientation, mitk::Quaternion)
 
 itkSetMacro (ToolAxisOrientation, mitk::Quaternion)
 
mitk::Point3D GetToolAxis ()
 
void SetToolAxis (mitk::Point3D toolAxis)
 
mitk::AffineTransform3D::Pointer GetToolTipTransform ()
 
bool IsToolTipSet ()
 
 itkGetConstMacro (ToolLandmarks, mitk::PointSet::Pointer)
 
 itkSetMacro (ToolLandmarks, mitk::PointSet::Pointer)
 Sets the tool landmarks which represent markers / special points on a tool that can be used for registration. The landmarks should be given in tool coordinates.
 
 itkGetConstMacro (ToolControlPoints, mitk::PointSet::Pointer)
 
 itkSetMacro (ToolControlPoints, mitk::PointSet::Pointer)
 Sets the tool calibration landmarks for calibration of defined points in the tool coordinate system, e.g. 2 landmarks for a 5DoF tool and 3 landmarks for a 6DoF tool.
 
 itkGetConstMacro (SerialNumber, std::string)
 
 itkSetMacro (SerialNumber, std::string)
 
 itkGetConstMacro (TrackingDeviceType, mitk::TrackingDeviceType)
 
 itkSetMacro (TrackingDeviceType, mitk::TrackingDeviceType)
 
std::string GetToolName ()
 
mitk::Surface::Pointer GetToolSurface ()
 
void Graft (const DataObject *data) override
 Graft the data and information from one NavigationTool to another.
 
std::string GetStringWithAllToolInformation () const
 
void SetDefaultSurface ()
 

Protected Member Functions

 NavigationTool ()
 
 NavigationTool (const NavigationTool &other)
 
 ~NavigationTool () override
 
itk::LightObject::Pointer InternalClone () const override
 

Protected Attributes

std::string m_Identifier
 
NavigationToolType m_Type
 
mitk::DataNode::Pointer m_DataNode
 This DataNode holds a toolname and a tool surface.
 
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.
 
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::TrackingDeviceType m_TrackingDeviceType
 This member holds the tracking device type of the tool.
 
mitk::PointSet::Pointer m_ToolLandmarks
 Holds landmarks for tool registration.
 
mitk::PointSet::Pointer m_ToolControlPoints
 Holds control points in the tool coordinate system, e.g. 2 landmarks for a 5DoF tool and 3 landmarks for a 6DoF tool.
 
mitk::Point3D m_ToolTipPosition
 Holds the position of the tool tip.
 
mitk::Quaternion m_ToolAxisOrientation
 Holds the transformation of the main tool axis to the negative z-axis (0,0,-1)
 

Detailed Description

An object of this class represents a navigation tool in the view of the software. A few informations like an identifier, a toolname, a surface and a itk spatial object are stored in such an object. The classes NavigationToolReader and are availiable to write/read tools to/from the harddisc. If you need a collection of navigation tools the class NavigationToolStorage could be used.

Documentation

Definition at line 39 of file mitkNavigationTool.h.

Member Enumeration Documentation

◆ NavigationToolType

Enumerator
Instrument 
Fiducial 
Skinmarker 
Unknown 

Definition at line 47 of file mitkNavigationTool.h.

Constructor & Destructor Documentation

◆ NavigationTool() [1/2]

mitk::NavigationTool::NavigationTool ( )
protected

Definition at line 29 of file mitkNavigationTool.cpp.

◆ NavigationTool() [2/2]

mitk::NavigationTool::NavigationTool ( const NavigationTool & other)
protected

Definition at line 52 of file mitkNavigationTool.cpp.

◆ ~NavigationTool()

mitk::NavigationTool::~NavigationTool ( )
overrideprotected

Definition at line 80 of file mitkNavigationTool.cpp.

Member Function Documentation

◆ GetStringWithAllToolInformation()

std::string mitk::NavigationTool::GetStringWithAllToolInformation ( ) const

Return all relevant information as string, e.g. to display all tool information

Definition at line 344 of file mitkNavigationTool.cpp.

◆ GetToolAxis()

mitk::Point3D mitk::NavigationTool::GetToolAxis ( )
Returns
Returns the main tool axis which is defined as the z-coordinate of the tool coordinate system.

Definition at line 84 of file mitkNavigationTool.cpp.

◆ GetToolName()

std::string mitk::NavigationTool::GetToolName ( )
Returns
Returns the name of this navigation tool. Returns an empty string if there is no name (for example because the data node has not been set yet).

Note: There is no setter for the name, because the name of the corresponding data node is used as tool name. So if you want to modify the name of this navigation tool only get the data node and modify its name.

Definition at line 203 of file mitkNavigationTool.cpp.

◆ GetToolSurface()

mitk::Surface::Pointer mitk::NavigationTool::GetToolSurface ( )
Returns
Returns the surface of this navigation tool. Returns nullptr if there is no surface (for example because the data node has not been set yet).

Note: There is no setter for the surface, because the surface is the data of the corresponding data node. So if you want to set a new surface only get the data node and modify its data.

Definition at line 209 of file mitkNavigationTool.cpp.

◆ GetToolTipTransform()

mitk::AffineTransform3D::Pointer mitk::NavigationTool::GetToolTipTransform ( )
Returns
Returns the tooltip as transform object.

Definition at line 129 of file mitkNavigationTool.cpp.

◆ Graft()

void mitk::NavigationTool::Graft ( const DataObject * data)
override

Graft the data and information from one NavigationTool to another.

Copies the content of data into this object. This is a convenience method to setup a second NavigationTool object with all the meta information of another NavigationTool object. Note that this method is different than just using two SmartPointers to the same NavigationTool object since separate DataObjects are still maintained.

Definition at line 137 of file mitkNavigationTool.cpp.

◆ InternalClone()

itk::LightObject::Pointer mitk::NavigationTool::InternalClone ( ) const
overrideprotected

Definition at line 45 of file mitkNavigationTool.cpp.

◆ IsToolTipSet()

bool mitk::NavigationTool::IsToolTipSet ( )
Returns
Returns true if a tooltip is set, false if not.

Definition at line 173 of file mitkNavigationTool.cpp.

◆ itkCloneMacro()

mitk::NavigationTool::itkCloneMacro ( Self )

◆ itkFactorylessNewMacro()

mitk::NavigationTool::itkFactorylessNewMacro ( Self )

◆ itkGetConstMacro() [1/11]

mitk::NavigationTool::itkGetConstMacro ( CalibrationFile ,
std::string  )

◆ itkGetConstMacro() [2/11]

mitk::NavigationTool::itkGetConstMacro ( DataNode ,
mitk::DataNode::Pointer  )

◆ itkGetConstMacro() [3/11]

mitk::NavigationTool::itkGetConstMacro ( Identifier ,
std::string  )

◆ itkGetConstMacro() [4/11]

mitk::NavigationTool::itkGetConstMacro ( SerialNumber ,
std::string  )

◆ itkGetConstMacro() [5/11]

mitk::NavigationTool::itkGetConstMacro ( SpatialObject ,
itk::SpatialObject< 3 >::Pointer  )

◆ itkGetConstMacro() [6/11]

mitk::NavigationTool::itkGetConstMacro ( ToolAxisOrientation ,
mitk::Quaternion  )

◆ itkGetConstMacro() [7/11]

mitk::NavigationTool::itkGetConstMacro ( ToolControlPoints ,
mitk::PointSet::Pointer  )
Returns
Returns the tool control point in the tool coordinate system, e.g. 2 landmarks for a 5DoF tool and 3 landmarks for a 6DoF tool.

◆ itkGetConstMacro() [8/11]

mitk::NavigationTool::itkGetConstMacro ( ToolLandmarks ,
mitk::PointSet::Pointer  )

For overview, here are descriptons of the two types of tool landmarks:

control points: These landmarks may be used clearly define the tools pose only by using landmarks in the tool coordinate system. E.g., two landmarks for a 5DoF tool and three landmarks for a 6DoF tool. These landmarks may be used, e.g., for a point based registration of a tool from image space to tracking space.

tool landmarks: These landmarks are designed for representing defined landmarks on a tools surface. The number of these landmarks might exeed the number of tool control points for reasons of redundancy and averaging. They are used for, e.g., manually registering the pose of a tool by visual markers in a CT scan. If you would use these landmarks to do a point based registration from image space to tracking space later, you might overweight the tool because of two many landmarks compared to other markers.

Returns
Returns the tool registration landmarks which represent markers / special points on a tool that can be used for registration. The landmarks should be given in tool coordinates. If there are no landmarks defined for this tool the method returns an empty point set.

◆ itkGetConstMacro() [9/11]

mitk::NavigationTool::itkGetConstMacro ( ToolTipPosition ,
mitk::Point3D  )

◆ itkGetConstMacro() [10/11]

mitk::NavigationTool::itkGetConstMacro ( TrackingDeviceType ,
mitk::TrackingDeviceType  )

◆ itkGetConstMacro() [11/11]

mitk::NavigationTool::itkGetConstMacro ( Type ,
NavigationToolType  )

◆ itkSetMacro() [1/10]

mitk::NavigationTool::itkSetMacro ( DataNode ,
mitk::DataNode::Pointer  )

◆ itkSetMacro() [2/10]

mitk::NavigationTool::itkSetMacro ( Identifier ,
std::string  )

◆ itkSetMacro() [3/10]

mitk::NavigationTool::itkSetMacro ( SerialNumber ,
std::string  )

◆ itkSetMacro() [4/10]

mitk::NavigationTool::itkSetMacro ( SpatialObject ,
itk::SpatialObject< 3 >::Pointer  )

◆ itkSetMacro() [5/10]

mitk::NavigationTool::itkSetMacro ( ToolAxisOrientation ,
mitk::Quaternion  )

◆ itkSetMacro() [6/10]

mitk::NavigationTool::itkSetMacro ( ToolControlPoints ,
mitk::PointSet::Pointer  )

Sets the tool calibration landmarks for calibration of defined points in the tool coordinate system, e.g. 2 landmarks for a 5DoF tool and 3 landmarks for a 6DoF tool.

◆ itkSetMacro() [7/10]

mitk::NavigationTool::itkSetMacro ( ToolLandmarks ,
mitk::PointSet::Pointer  )

Sets the tool landmarks which represent markers / special points on a tool that can be used for registration. The landmarks should be given in tool coordinates.

◆ itkSetMacro() [8/10]

mitk::NavigationTool::itkSetMacro ( ToolTipPosition ,
mitk::Point3D  )

◆ itkSetMacro() [9/10]

mitk::NavigationTool::itkSetMacro ( TrackingDeviceType ,
mitk::TrackingDeviceType  )

◆ itkSetMacro() [10/10]

mitk::NavigationTool::itkSetMacro ( Type ,
NavigationToolType  )

◆ mitkClassMacroItkParent()

mitk::NavigationTool::mitkClassMacroItkParent ( NavigationTool ,
itk::DataObject  )

◆ SetCalibrationFile()

void mitk::NavigationTool::SetCalibrationFile ( const std::string filename)

Definition at line 186 of file mitkNavigationTool.cpp.

◆ SetDefaultSurface()

void mitk::NavigationTool::SetDefaultSurface ( )

Definition at line 216 of file mitkNavigationTool.cpp.

◆ SetToolAxis()

void mitk::NavigationTool::SetToolAxis ( mitk::Point3D toolAxis)

Convenience function to define the tool orientation given the main tool axis. As the main tool axis is defined as the negative z-axis of the tool coordinate system, the tool orientation is calculated as a rotation of the actual tool axis in tool coordinates as obtained by a calibration to the main axis.

Definition at line 99 of file mitkNavigationTool.cpp.

Member Data Documentation

◆ m_CalibrationFile

std::string mitk::NavigationTool::m_CalibrationFile
protected

The path to the calibration file of the tool.

Definition at line 186 of file mitkNavigationTool.h.

◆ m_DataNode

mitk::DataNode::Pointer mitk::NavigationTool::m_DataNode
protected

This DataNode holds a toolname and a tool surface.

Definition at line 182 of file mitkNavigationTool.h.

◆ m_Identifier

std::string mitk::NavigationTool::m_Identifier
protected

Definition at line 179 of file mitkNavigationTool.h.

◆ m_SerialNumber

std::string mitk::NavigationTool::m_SerialNumber
protected

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.

Definition at line 189 of file mitkNavigationTool.h.

◆ m_SpatialObject

itk::SpatialObject<3>::Pointer mitk::NavigationTool::m_SpatialObject
protected

This member variable holds a mathamatical description of the tool.

Definition at line 184 of file mitkNavigationTool.h.

◆ m_ToolAxisOrientation

mitk::Quaternion mitk::NavigationTool::m_ToolAxisOrientation
protected

Holds the transformation of the main tool axis to the negative z-axis (0,0,-1)

Definition at line 201 of file mitkNavigationTool.h.

◆ m_ToolControlPoints

mitk::PointSet::Pointer mitk::NavigationTool::m_ToolControlPoints
protected

Holds control points in the tool coordinate system, e.g. 2 landmarks for a 5DoF tool and 3 landmarks for a 6DoF tool.

Definition at line 197 of file mitkNavigationTool.h.

◆ m_ToolLandmarks

mitk::PointSet::Pointer mitk::NavigationTool::m_ToolLandmarks
protected

Holds landmarks for tool registration.

Definition at line 193 of file mitkNavigationTool.h.

◆ m_ToolTipPosition

mitk::Point3D mitk::NavigationTool::m_ToolTipPosition
protected

Holds the position of the tool tip.

Definition at line 199 of file mitkNavigationTool.h.

◆ m_TrackingDeviceType

mitk::TrackingDeviceType mitk::NavigationTool::m_TrackingDeviceType
protected

This member holds the tracking device type of the tool.

Definition at line 191 of file mitkNavigationTool.h.

◆ m_Type

NavigationToolType mitk::NavigationTool::m_Type
protected

Definition at line 180 of file mitkNavigationTool.h.


The documentation for this class was generated from the following files: