Medical Imaging Interaction Toolkit  2021.02.99-e55a5d2f Medical Imaging Interaction Toolkit

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>

## Public Types

enum  NavigationToolType { Instrument, Fiducial, Skinmarker, Unknown }

## Public Member Functions

Pointer Clone () const

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

itk::LightObject::Pointer InternalClone () const override

## Protected Attributes

std::string m_Identifier

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

Enumerator
Instrument
Fiducial
Skinmarker
Unknown

Definition at line 47 of file mitkNavigationTool.h.

## Constructor & Destructor Documentation

protected

protected

overrideprotected

## ◆ GetCalibrationFile()

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

## ◆ GetDataNode()

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

## ◆ 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()

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

## ◆ GetToolAxis()

Returns
Returns the main tool axis which is defined as the z-coordinate of the tool coordinate system.

## ◆ 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()

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.

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

## ◆ GetToolTipPosition()

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

## ◆ GetToolTipTransform()

Returns
Returns the tooltip as transform object.

## ◆ GetTrackingDeviceType()

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

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.

## ◆ InternalClone()

overrideprotected

## ◆ IsToolTipSet()

Returns
Returns true if a tooltip is set, false if not.

static

## ◆ SetCalibrationFile()

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

## ◆ SetDataNode()

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

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

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

virtual

## ◆ m_CalibrationFile

protected

The path to the calibration file of the tool.

Definition at line 186 of file mitkNavigationTool.h.

## ◆ m_DataNode

protected

This DataNode holds a toolname and a tool surface.

Definition at line 182 of file mitkNavigationTool.h.

## ◆ m_Identifier

protected

Definition at line 179 of file mitkNavigationTool.h.

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

protected

This member variable holds a mathamatical description of the tool.

Definition at line 184 of file mitkNavigationTool.h.

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

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

protected

Holds landmarks for tool registration.

Definition at line 193 of file mitkNavigationTool.h.

## ◆ m_ToolTipPosition

protected

Holds the position of the tool tip.

Definition at line 199 of file mitkNavigationTool.h.

## ◆ m_TrackingDeviceType

protected

This member holds the tracking device type of the tool.

Definition at line 191 of file mitkNavigationTool.h.