MITK-IGT
IGT Extension of MITK
Loading...
Searching...
No Matches
mitk::TrackingDevice Class Referenceabstract

Interface for all Tracking Devices. More...

#include <mitkTrackingDevice.h>

Inheritance diagram for mitk::TrackingDevice:
TrackingDeviceTestClass mitk::ClaronTrackingDevice mitk::MicroBirdTrackingDevice mitk::NDITrackingDevice mitk::OpenIGTLinkTrackingDevice mitk::OptitrackTrackingDevice mitk::PolhemusTrackingDevice mitk::VirtualTrackingDevice

Public Types

enum  RotationMode { RotationStandard , RotationTransposed }
 
enum  TrackingDeviceState { Setup , Ready , Tracking }
 

Public Member Functions

 mitkClassMacroItkParent (TrackingDevice, itk::Object)
 
virtual bool OpenConnection ()=0
 Opens a connection to the device.
 
virtual bool CloseConnection ()=0
 Closes the connection to the device.
 
virtual bool StartTracking ()=0
 start retrieving tracking data from the device.
 
virtual bool StopTracking ()
 stop retrieving tracking data from the device. stop retrieving tracking data from the device. This may only be called after StartTracking was called (e.g. the object is in Tracking mode). This will change the object state from Tracking to Ready.
 
virtual TrackingToolGetTool (unsigned int toolNumber) const =0
 Return tool with index toolNumber.
 
virtual mitk::TrackingToolGetToolByName (std::string name) const
 Returns the tool with the given tool name.
 
virtual unsigned int GetToolCount () const =0
 Returns number of tracking tools.
 
virtual void SetRotationMode (RotationMode r)
 
 itkGetConstMacro (RotationMode, RotationMode)
 
TrackingDeviceState GetState () const
 return current object state (Setup, Ready or Tracking)
 
TrackingDeviceType GetType () const
 Deprecated! Use the more specific getData or GetTrackingDeviceName instead. return device type identifier.
 
void SetType (TrackingDeviceType type)
 Deprecated! Use the more specific setDeviceData instead. set device type.
 
std::string GetTrackingDeviceName ()
 Convenient Method to get the Name of the Tracking Device. This is identical with GetData().Line and can be used to compare with TrackingDeviceTypeInformation::GetTrackingDeviceName() to check if you have a specific device.
 
TrackingDeviceData GetData () const
 return device data
 
void SetData (TrackingDeviceData data)
 set device type
 
virtual bool IsDeviceInstalled ()
 
virtual bool AutoDetectToolsAvailable ()
 
virtual bool AddSingleToolIsAvailable ()
 
virtual mitk::NavigationToolStorage::Pointer AutoDetectTools ()
 

Protected Member Functions

void SetState (TrackingDeviceState state)
 change object state
 
 TrackingDevice ()
 
 ~TrackingDevice () override
 

Protected Attributes

TrackingDeviceData m_Data
 current device Data
 
bool m_StopTracking
 signal stop to tracking thread
 
std::mutex m_StopTrackingMutex
 mutex to control access to m_StopTracking
 
std::mutex m_TrackingFinishedMutex
 mutex to manage control flow of StopTracking()
 
std::mutex m_StateMutex
 mutex to control access to m_State
 
RotationMode m_RotationMode
 defines the rotation mode Standard or Transposed, Standard is default
 

Detailed Description

Interface for all Tracking Devices.

Documentation

Defines the methods that are common for all tracking devices.

Definition at line 34 of file mitkTrackingDevice.h.

Member Enumeration Documentation

◆ RotationMode

Defines the rotation modes of this tracking device which results in different representations of quaternions.

  • Standard: normal representation, rawdata from the device is not changed (DEFAULT)
  • Transposed: the rotation is stored transposed, which is (by mistake!) expected by some older MITK classes due to an ambigious method naming in VNL.

CAUTION: The rotation mode can only be changed for backward compatibility of old WRONG code. PLEASE DO NOT CHANGE THE ROTATION MODE UNLESS YOU ARE KNOWING EXACTLY WHAT YOU ARE DOING!

use SetRotationMode to change the mode.

Enumerator
RotationStandard 
RotationTransposed 

Definition at line 52 of file mitkTrackingDevice.h.

◆ TrackingDeviceState

Enumerator
Setup 
Ready 
Tracking 

Definition at line 54 of file mitkTrackingDevice.h.

Constructor & Destructor Documentation

◆ TrackingDevice()

mitk::TrackingDevice::TrackingDevice ( )
protected

Definition at line 24 of file mitkTrackingDevice.cpp.

◆ ~TrackingDevice()

mitk::TrackingDevice::~TrackingDevice ( )
overrideprotected

Definition at line 34 of file mitkTrackingDevice.cpp.

Member Function Documentation

◆ AddSingleToolIsAvailable()

bool mitk::TrackingDevice::AddSingleToolIsAvailable ( )
virtual
Returns
Returns true if it is possible to add a single tool. Default return is true.

Reimplemented in mitk::NDITrackingDevice.

Definition at line 51 of file mitkTrackingDevice.cpp.

◆ AutoDetectTools()

mitk::NavigationToolStorage::Pointer mitk::TrackingDevice::AutoDetectTools ( )
virtual

Autodetects tools from this device and returns them as a navigation tool storage.

Returns
Returns the detected tools. Returns an empty storage if no tools are present or if detection is not possible

Reimplemented in mitk::NDITrackingDevice, mitk::OpenIGTLinkTrackingDevice, and mitk::PolhemusTrackingDevice.

Definition at line 56 of file mitkTrackingDevice.cpp.

◆ AutoDetectToolsAvailable()

bool mitk::TrackingDevice::AutoDetectToolsAvailable ( )
virtual
Returns
Returns true if this device can autodetects its tools.

Reimplemented in mitk::NDITrackingDevice, mitk::OpenIGTLinkTrackingDevice, and mitk::PolhemusTrackingDevice.

Definition at line 46 of file mitkTrackingDevice.cpp.

◆ CloseConnection()

virtual bool mitk::TrackingDevice::CloseConnection ( )
pure virtual

Closes the connection to the device.

This may only be called if there is currently a connection to the device, but tracking is not running (e.g. object is in Ready state) Closes the connection with the device

Implemented in mitk::ClaronTrackingDevice, mitk::MicroBirdTrackingDevice, mitk::NDITrackingDevice, mitk::OpenIGTLinkTrackingDevice, mitk::OptitrackTrackingDevice, mitk::PolhemusTrackingDevice, mitk::VirtualTrackingDevice, and TrackingDeviceTestClass.

◆ GetData()

mitk::TrackingDeviceData mitk::TrackingDevice::GetData ( ) const

return device data

Definition at line 105 of file mitkTrackingDevice.cpp.

◆ GetState()

mitk::TrackingDevice::TrackingDeviceState mitk::TrackingDevice::GetState ( ) const

return current object state (Setup, Ready or Tracking)

Definition at line 62 of file mitkTrackingDevice.cpp.

◆ GetTool()

virtual TrackingTool * mitk::TrackingDevice::GetTool ( unsigned int toolNumber) const
pure virtual

◆ GetToolByName()

mitk::TrackingTool * mitk::TrackingDevice::GetToolByName ( std::string name) const
virtual

Returns the tool with the given tool name.

Note: subclasses can and should implement optimized versions of this method

Returns
the given tool or nullptr if no tool with that name exists

Reimplemented in mitk::NDITrackingDevice.

Definition at line 134 of file mitkTrackingDevice.cpp.

◆ GetToolCount()

virtual unsigned int mitk::TrackingDevice::GetToolCount ( ) const
pure virtual

◆ GetTrackingDeviceName()

std::string mitk::TrackingDevice::GetTrackingDeviceName ( )

Convenient Method to get the Name of the Tracking Device. This is identical with GetData().Line and can be used to compare with TrackingDeviceTypeInformation::GetTrackingDeviceName() to check if you have a specific device.

Definition at line 143 of file mitkTrackingDevice.cpp.

◆ GetType()

mitk::TrackingDeviceType mitk::TrackingDevice::GetType ( ) const

Deprecated! Use the more specific getData or GetTrackingDeviceName instead. return device type identifier.

Definition at line 87 of file mitkTrackingDevice.cpp.

◆ IsDeviceInstalled()

bool mitk::TrackingDevice::IsDeviceInstalled ( )
virtual
Returns
Returns true if the device is installed on this system an can be used. Installed means activated in MITK, in some cases this means the MITK installation / build has to know the installation path of the device libraries on this system. This path is usually given as cmake variable during the build configuration in devellopers mode. If the device should be available for end users with an installer the libraries can be included into the installer or the installer has to be adapted such that it asks for the path. Returns fals if the device is not installed. It cannot be used on this build in this case.

Note that some tracking systems communicate via a standard interface (e.g., serial port) and don't need any library or installation. These devices are always "installed".

Reimplemented in mitk::ClaronTrackingDevice, mitk::OpenIGTLinkTrackingDevice, mitk::OptitrackTrackingDevice, and mitk::PolhemusTrackingDevice.

Definition at line 38 of file mitkTrackingDevice.cpp.

◆ itkGetConstMacro()

mitk::TrackingDevice::itkGetConstMacro ( RotationMode ,
RotationMode  )
Returns
Returns the rotation mode of this class. See documentation of enum RotationMode for details on the different modes.

◆ mitkClassMacroItkParent()

mitk::TrackingDevice::mitkClassMacroItkParent ( TrackingDevice ,
itk::Object  )

◆ OpenConnection()

virtual bool mitk::TrackingDevice::OpenConnection ( )
pure virtual

Opens a connection to the device.

This may only be called if there is currently no connection to the device. If OpenConnection() is successful, the object will change from Setup state to Ready state

Implemented in mitk::ClaronTrackingDevice, mitk::MicroBirdTrackingDevice, mitk::NDITrackingDevice, mitk::OpenIGTLinkTrackingDevice, mitk::OptitrackTrackingDevice, mitk::PolhemusTrackingDevice, and mitk::VirtualTrackingDevice.

◆ SetData()

void mitk::TrackingDevice::SetData ( mitk::TrackingDeviceData data)

set device type

Definition at line 110 of file mitkTrackingDevice.cpp.

◆ SetRotationMode()

void mitk::TrackingDevice::SetRotationMode ( RotationMode r)
virtual

Sets the rotation mode of this class. See documentation of enum RotationMode for details on the different modes. This method has to be implemented in a deriving class to become functional / if different rotation modes should be supported. CAUTION: The rotation mode can only be changed for backward compatibility of old WRONG code. PLEASE DO NOT CHANGE THE ROTATION MODE UNLESS YOU ARE KNOWING EXACTLY WHAT YOU ARE DOING!

Reimplemented in mitk::NDITrackingDevice.

Definition at line 82 of file mitkTrackingDevice.cpp.

◆ SetState()

void mitk::TrackingDevice::SetState ( TrackingDeviceState state)
protected

change object state

Definition at line 69 of file mitkTrackingDevice.cpp.

◆ SetType()

void mitk::TrackingDevice::SetType ( mitk::TrackingDeviceType deviceType)

Deprecated! Use the more specific setDeviceData instead. set device type.

Definition at line 91 of file mitkTrackingDevice.cpp.

◆ StartTracking()

virtual bool mitk::TrackingDevice::StartTracking ( )
pure virtual

start retrieving tracking data from the device.

This may only be called after the connection to the device has been established with a call to OpenConnection() (E.g. object is in Ready mode). This will change the object state from Ready to Tracking

Implemented in mitk::ClaronTrackingDevice, mitk::MicroBirdTrackingDevice, mitk::NDITrackingDevice, mitk::OpenIGTLinkTrackingDevice, mitk::OptitrackTrackingDevice, mitk::PolhemusTrackingDevice, mitk::VirtualTrackingDevice, and TrackingDeviceTestClass.

◆ StopTracking()

bool mitk::TrackingDevice::StopTracking ( )
virtual

stop retrieving tracking data from the device. stop retrieving tracking data from the device. This may only be called after StartTracking was called (e.g. the object is in Tracking mode). This will change the object state from Tracking to Ready.

Reimplemented in mitk::ClaronTrackingDevice, mitk::MicroBirdTrackingDevice, mitk::OpenIGTLinkTrackingDevice, mitk::OptitrackTrackingDevice, mitk::PolhemusTrackingDevice, and mitk::VirtualTrackingDevice.

Definition at line 115 of file mitkTrackingDevice.cpp.

Member Data Documentation

◆ m_Data

TrackingDeviceData mitk::TrackingDevice::m_Data
protected

current device Data

Definition at line 194 of file mitkTrackingDevice.h.

◆ m_RotationMode

RotationMode mitk::TrackingDevice::m_RotationMode
protected

defines the rotation mode Standard or Transposed, Standard is default

Definition at line 200 of file mitkTrackingDevice.h.

◆ m_StateMutex

std::mutex mitk::TrackingDevice::m_StateMutex
mutableprotected

mutex to control access to m_State

Definition at line 199 of file mitkTrackingDevice.h.

◆ m_StopTracking

bool mitk::TrackingDevice::m_StopTracking
protected

signal stop to tracking thread

Definition at line 196 of file mitkTrackingDevice.h.

◆ m_StopTrackingMutex

std::mutex mitk::TrackingDevice::m_StopTrackingMutex
protected

mutex to control access to m_StopTracking

Definition at line 197 of file mitkTrackingDevice.h.

◆ m_TrackingFinishedMutex

std::mutex mitk::TrackingDevice::m_TrackingFinishedMutex
protected

mutex to manage control flow of StopTracking()

Definition at line 198 of file mitkTrackingDevice.h.


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