Medical Imaging Interaction Toolkit
2018.4.99-389bf124
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 | |
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... | |
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.
Enumerator | |
---|---|
Instrument | |
Fiducial | |
Skinmarker | |
Unknown |
Definition at line 47 of file mitkNavigationTool.h.
|
protected |
Definition at line 29 of file mitkNavigationTool.cpp.
References m_ToolTipPosition, and SetDefaultSurface().
|
protected |
Definition at line 52 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, and m_Type.
|
overrideprotected |
Definition at line 80 of file mitkNavigationTool.cpp.
Pointer mitk::NavigationTool::Clone | ( | ) | const |
|
virtual |
|
virtual |
Referenced by SetDefaultSurface().
|
virtual |
|
virtual |
|
virtual |
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.
mitk::Point3D mitk::NavigationTool::GetToolAxis | ( | ) |
Definition at line 84 of file mitkNavigationTool.cpp.
References mitk::FillVector3D(), and m_ToolAxisOrientation.
|
virtual |
|
virtual |
|
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.
std::string mitk::NavigationTool::GetToolName | ( | ) |
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.
mitk::Surface::Pointer mitk::NavigationTool::GetToolSurface | ( | ) |
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.
|
virtual |
mitk::AffineTransform3D::Pointer mitk::NavigationTool::GetToolTipTransform | ( | ) |
Definition at line 129 of file mitkNavigationTool.cpp.
References m_ToolAxisOrientation, m_ToolTipPosition, and mitk::NavigationData::New().
|
virtual |
|
virtual |
|
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.
|
overrideprotected |
Definition at line 45 of file mitkNavigationTool.cpp.
bool mitk::NavigationTool::IsToolTipSet | ( | ) |
Definition at line 173 of file mitkNavigationTool.cpp.
References m_ToolAxisOrientation, and m_ToolTipPosition.
mitk::NavigationTool::mitkClassMacroItkParent | ( | NavigationTool | , |
itk::DataObject | |||
) |
|
static |
Referenced by mitk::PolhemusTrackingDevice::AutoDetectTools(), mitk::NDITrackingDevice::AutoDetectTools(), mitk::NavigationToolReader::ConvertDataNodeToNavigationTool(), mitk::NavigationToolStorageTestHelper::CreateTestData_ComplexStorage(), mitk::NavigationToolStorageTestHelper::CreateTestData_SimpleStorage(), mitk::NavigationToolStorageTestHelper::CreateTestData_StorageWithOneTool(), QmitkNDIConfigurationWidget::GenerateNavigationTool(), mitk::NavigationDataSource::GetToolMetaData(), QmitkNavigationToolCreationWidget::Initialize(), QmitkNDIConfigurationWidget::OnSaveTool(), QmitkNavigationToolCreationWidget::QmitkNavigationToolCreationWidget(), and mitk::OpenIGTLinkTrackingDevice::ReceiveMessage().
void mitk::NavigationTool::SetCalibrationFile | ( | const std::string | filename | ) |
Definition at line 186 of file mitkNavigationTool.cpp.
References File, and m_CalibrationFile.
|
virtual |
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().
|
virtual |
|
virtual |
|
virtual |
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.
|
virtual |
|
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.
|
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.
|
virtual |
|
virtual |
|
virtual |
|
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().
|
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().
|
protected |
Definition at line 179 of file mitkNavigationTool.h.
Referenced by GetStringWithAllToolInformation(), Graft(), and NavigationTool().
|
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().
|
protected |
This member variable holds a mathamatical description of the tool.
Definition at line 184 of file mitkNavigationTool.h.
Referenced by Graft(), and NavigationTool().
|
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().
|
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().
|
protected |
Holds landmarks for tool registration.
Definition at line 193 of file mitkNavigationTool.h.
Referenced by Graft(), and NavigationTool().
|
protected |
Holds the position of the tool tip.
Definition at line 199 of file mitkNavigationTool.h.
Referenced by GetStringWithAllToolInformation(), GetToolTipTransform(), Graft(), IsToolTipSet(), and NavigationTool().
|
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().
|
protected |
Definition at line 180 of file mitkNavigationTool.h.
Referenced by GetStringWithAllToolInformation(), Graft(), and NavigationTool().