Medical Imaging Interaction Toolkit  2018.4.99-87d68d9f
Medical Imaging Interaction Toolkit
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:
Collaboration diagram for mitk::NavigationTool:

Public Types

enum  NavigationToolType { Instrument, Fiducial, Skinmarker, Unknown }
 

Public Member Functions

 mitkClassMacroItkParent (NavigationTool, itk::DataObject)
 
Pointer Clone () const
 
virtual NavigationToolType GetType () const
 
virtual void SetType (NavigationToolType _arg)
 
virtual std::string GetIdentifier () const
 
virtual void SetIdentifier (std::string _arg)
 
virtual mitk::DataNode::Pointer GetDataNode () const
 
virtual void SetDataNode (mitk::DataNode::Pointer _arg)
 
virtual itk::SpatialObject< 3 >::Pointer GetSpatialObject () const
 
virtual void SetSpatialObject (itk::SpatialObject< 3 >::Pointer _arg)
 
virtual std::string GetCalibrationFile () const
 
void SetCalibrationFile (const std::string filename)
 
virtual mitk::Point3D GetToolTipPosition () const
 
virtual void SetToolTipPosition (mitk::Point3D _arg)
 
virtual mitk::Quaternion GetToolAxisOrientation () const
 
virtual void SetToolAxisOrientation (mitk::Quaternion _arg)
 
mitk::Point3D GetToolAxis ()
 
void SetToolAxis (mitk::Point3D toolAxis)
 
mitk::AffineTransform3D::Pointer GetToolTipTransform ()
 
bool IsToolTipSet ()
 
virtual mitk::PointSet::Pointer GetToolLandmarks () const
 
virtual void SetToolLandmarks (mitk::PointSet::Pointer _arg)
 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. More...
 
virtual mitk::PointSet::Pointer GetToolControlPoints () const
 
virtual void SetToolControlPoints (mitk::PointSet::Pointer _arg)
 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. More...
 
virtual std::string GetSerialNumber () const
 
virtual void SetSerialNumber (std::string _arg)
 
virtual mitk::TrackingDeviceType GetTrackingDeviceType () const
 
virtual void SetTrackingDeviceType (mitk::TrackingDeviceType _arg)
 
std::string GetToolName ()
 
mitk::Surface::Pointer GetToolSurface ()
 
void Graft (const DataObject *data) override
 Graft the data and information from one NavigationTool to another. More...
 
std::string GetStringWithAllToolInformation () const
 
void SetDefaultSurface ()
 

Static Public Member Functions

static Pointer New ()
 

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. More...
 
itk::SpatialObject< 3 >::Pointer m_SpatialObject
 This member variable holds a mathamatical description of the tool. More...
 
std::string m_CalibrationFile
 The path to the calibration file of the tool. More...
 
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. More...
 
mitk::TrackingDeviceType m_TrackingDeviceType
 This member holds the tracking device type of the tool. More...
 
mitk::PointSet::Pointer m_ToolLandmarks
 Holds landmarks for tool registration. More...
 
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. More...
 
mitk::Point3D m_ToolTipPosition
 Holds the position of the tool tip. More...
 
mitk::Quaternion m_ToolAxisOrientation
 Holds the transformation of the main tool axis to the negative z-axis (0,0,-1) More...
 

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.

References m_ToolTipPosition, and SetDefaultSurface().

◆ NavigationTool() [2/2]

◆ ~NavigationTool()

mitk::NavigationTool::~NavigationTool ( )
overrideprotected

Definition at line 80 of file mitkNavigationTool.cpp.

Member Function Documentation

◆ Clone()

Pointer mitk::NavigationTool::Clone ( ) const

◆ GetCalibrationFile()

virtual std::string mitk::NavigationTool::GetCalibrationFile ( ) const
virtual

◆ GetDataNode()

virtual mitk::DataNode::Pointer mitk::NavigationTool::GetDataNode ( ) const
virtual

Referenced by SetDefaultSurface().

◆ GetIdentifier()

virtual std::string mitk::NavigationTool::GetIdentifier ( ) const
virtual

◆ GetSerialNumber()

virtual std::string mitk::NavigationTool::GetSerialNumber ( ) const
virtual

◆ GetSpatialObject()

virtual itk::SpatialObject<3>::Pointer mitk::NavigationTool::GetSpatialObject ( ) const
virtual

◆ 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.

References m_CalibrationFile, m_Identifier, m_SerialNumber, m_ToolAxisOrientation, m_ToolTipPosition, m_TrackingDeviceType, and m_Type.

◆ 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.

References mitk::FillVector3D(), and m_ToolAxisOrientation.

◆ GetToolAxisOrientation()

virtual mitk::Quaternion mitk::NavigationTool::GetToolAxisOrientation ( ) const
virtual

◆ GetToolControlPoints()

virtual mitk::PointSet::Pointer mitk::NavigationTool::GetToolControlPoints ( ) const
virtual
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.

◆ GetToolLandmarks()

virtual mitk::PointSet::Pointer mitk::NavigationTool::GetToolLandmarks ( ) const
virtual

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.

◆ 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.

References m_DataNode.

◆ 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.

References m_DataNode.

◆ GetToolTipPosition()

virtual mitk::Point3D mitk::NavigationTool::GetToolTipPosition ( ) const
virtual

◆ GetToolTipTransform()

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

Definition at line 129 of file mitkNavigationTool.cpp.

References m_ToolAxisOrientation, m_ToolTipPosition, and mitk::NavigationData::New().

◆ GetTrackingDeviceType()

virtual mitk::TrackingDeviceType mitk::NavigationTool::GetTrackingDeviceType ( ) const
virtual

◆ GetType()

virtual NavigationToolType mitk::NavigationTool::GetType ( ) const
virtual

◆ 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.

References m_CalibrationFile, m_DataNode, m_Identifier, m_SerialNumber, m_SpatialObject, m_ToolAxisOrientation, m_ToolControlPoints, m_ToolLandmarks, m_ToolTipPosition, m_TrackingDeviceType, m_Type, and mitkThrowException.

◆ 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.

References m_ToolAxisOrientation, and m_ToolTipPosition.

◆ mitkClassMacroItkParent()

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

◆ New()

◆ SetCalibrationFile()

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

Definition at line 186 of file mitkNavigationTool.cpp.

References File, and m_CalibrationFile.

◆ SetDataNode()

virtual void mitk::NavigationTool::SetDataNode ( mitk::DataNode::Pointer  _arg)
virtual

◆ SetDefaultSurface()

void mitk::NavigationTool::SetDefaultSurface ( )

Definition at line 216 of file mitkNavigationTool.cpp.

References GetDataNode(), m_DataNode, mitk::Surface::New(), and mitk::DataNode::New().

Referenced by NavigationTool().

◆ SetIdentifier()

virtual void mitk::NavigationTool::SetIdentifier ( std::string  _arg)
virtual

◆ SetSerialNumber()

virtual void mitk::NavigationTool::SetSerialNumber ( std::string  _arg)
virtual

◆ SetSpatialObject()

virtual void mitk::NavigationTool::SetSpatialObject ( itk::SpatialObject< 3 >::Pointer  _arg)
virtual

◆ 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.

References mitk::FillVector3D(), and m_ToolAxisOrientation.

◆ SetToolAxisOrientation()

virtual void mitk::NavigationTool::SetToolAxisOrientation ( mitk::Quaternion  _arg)
virtual

◆ SetToolControlPoints()

virtual void mitk::NavigationTool::SetToolControlPoints ( mitk::PointSet::Pointer  _arg)
virtual

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.

◆ SetToolLandmarks()

virtual void mitk::NavigationTool::SetToolLandmarks ( mitk::PointSet::Pointer  _arg)
virtual

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.

◆ SetToolTipPosition()

virtual void mitk::NavigationTool::SetToolTipPosition ( mitk::Point3D  _arg)
virtual

◆ SetTrackingDeviceType()

virtual void mitk::NavigationTool::SetTrackingDeviceType ( mitk::TrackingDeviceType  _arg)
virtual

◆ SetType()

virtual void mitk::NavigationTool::SetType ( NavigationToolType  _arg)
virtual

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.

Referenced by GetStringWithAllToolInformation(), Graft(), NavigationTool(), and SetCalibrationFile().

◆ 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.

Referenced by GetToolName(), GetToolSurface(), Graft(), NavigationTool(), and SetDefaultSurface().

◆ m_Identifier

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

Definition at line 179 of file mitkNavigationTool.h.

Referenced by GetStringWithAllToolInformation(), Graft(), and NavigationTool().

◆ 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.

Referenced by GetStringWithAllToolInformation(), Graft(), and NavigationTool().

◆ 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.

Referenced by Graft(), and NavigationTool().

◆ 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.

Referenced by GetStringWithAllToolInformation(), GetToolAxis(), GetToolTipTransform(), Graft(), IsToolTipSet(), NavigationTool(), and SetToolAxis().

◆ 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.

Referenced by Graft(), and NavigationTool().

◆ m_ToolLandmarks

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

Holds landmarks for tool registration.

Definition at line 193 of file mitkNavigationTool.h.

Referenced by Graft(), and NavigationTool().

◆ m_ToolTipPosition

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

Holds the position of the tool tip.

Definition at line 199 of file mitkNavigationTool.h.

Referenced by GetStringWithAllToolInformation(), GetToolTipTransform(), Graft(), IsToolTipSet(), and NavigationTool().

◆ 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.

Referenced by GetStringWithAllToolInformation(), Graft(), and NavigationTool().

◆ m_Type

NavigationToolType mitk::NavigationTool::m_Type
protected

Definition at line 180 of file mitkNavigationTool.h.

Referenced by GetStringWithAllToolInformation(), Graft(), and NavigationTool().


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