Medical Imaging Interaction Toolkit  2016.11.0
Medical Imaging Interaction Toolkit
mitk::TrackingDevice Class Referenceabstract

Interface for all Tracking Devices. More...

#include <mitkTrackingDevice.h>

Inheritance diagram for mitk::TrackingDevice:
Collaboration diagram for mitk::TrackingDevice:

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. More...
 
virtual bool CloseConnection ()=0
 Closes the connection to the device. More...
 
virtual bool StartTracking ()=0
 start retrieving tracking data from the device. More...
 
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. More...
 
virtual TrackingToolGetTool (unsigned int toolNumber) const =0
 Return tool with index toolNumber. More...
 
virtual mitk::TrackingToolGetToolByName (std::string name) const
 Returns the tool with the given tool name. More...
 
virtual unsigned int GetToolCount () const =0
 Returns number of tracking tools. More...
 
virtual void SetRotationMode (RotationMode r)
 
virtual RotationMode GetRotationMode () const
 
TrackingDeviceState GetState () const
 return current object state (Setup, Ready or Tracking) More...
 
TrackingDeviceType GetType () const
 Deprecated! Use the more specific getDeviceData instead. return device type identifier. More...
 
void SetType (TrackingDeviceType type)
 Deprecated! Use the more specific setDeviceData instead. set device type. More...
 
TrackingDeviceData GetData () const
 return device data More...
 
void SetData (TrackingDeviceData data)
 set device type More...
 
virtual bool IsDeviceInstalled ()
 

Protected Member Functions

void SetState (TrackingDeviceState state)
 change object state More...
 
 TrackingDevice ()
 
virtual ~TrackingDevice ()
 

Protected Attributes

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

Detailed Description

Interface for all Tracking Devices.

Documentation Defines the methods that are common for all tracking devices.

Definition at line 38 of file mitkTrackingDevice.h.

Member Enumeration Documentation

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 56 of file mitkTrackingDevice.h.

Enumerator
Setup 
Ready 
Tracking 

Definition at line 58 of file mitkTrackingDevice.h.

Constructor & Destructor Documentation

mitk::TrackingDevice::TrackingDevice ( )
protected
mitk::TrackingDevice::~TrackingDevice ( )
protectedvirtual

Definition at line 45 of file mitkTrackingDevice.cpp.

Member Function Documentation

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::OptitrackTrackingDevice, mitk::NDITrackingDevice, mitk::VirtualTrackingDevice, mitk::OpenIGTLinkTrackingDevice, mitk::ClaronTrackingDevice, and mitk::MicroBirdTrackingDevice.

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

return device data

Definition at line 101 of file mitkTrackingDevice.cpp.

virtual RotationMode mitk::TrackingDevice::GetRotationMode ( ) const
virtual
Returns
Returns the rotation mode of this class. See documentation of enum RotationMode for details on the different modes.
mitk::TrackingDevice::TrackingDeviceState mitk::TrackingDevice::GetState ( ) const

return current object state (Setup, Ready or Tracking)

Definition at line 58 of file mitkTrackingDevice.cpp.

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

Return tool with index toolNumber.

tools are numbered from 0 to GetToolCount() - 1.

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

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 NULL if no tool with that name exists

Reimplemented in mitk::NDITrackingDevice.

Definition at line 130 of file mitkTrackingDevice.cpp.

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

Deprecated! Use the more specific getDeviceData instead. return device type identifier.

Definition at line 83 of file mitkTrackingDevice.cpp.

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::OpenIGTLinkTrackingDevice, mitk::OptitrackTrackingDevice, and mitk::ClaronTrackingDevice.

Definition at line 49 of file mitkTrackingDevice.cpp.

mitk::TrackingDevice::mitkClassMacroItkParent ( TrackingDevice  ,
itk::Object   
)
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::OptitrackTrackingDevice, mitk::VirtualTrackingDevice, mitk::NDITrackingDevice, mitk::OpenIGTLinkTrackingDevice, mitk::ClaronTrackingDevice, and mitk::MicroBirdTrackingDevice.

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

set device type

Definition at line 106 of file mitkTrackingDevice.cpp.

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 78 of file mitkTrackingDevice.cpp.

References MITK_WARN.

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

change object state

Definition at line 65 of file mitkTrackingDevice.cpp.

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

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

Definition at line 87 of file mitkTrackingDevice.cpp.

References mitk::TrackingDeviceTypeCollection::GetFirstCompatibleDeviceDataForLine(), us::GetModuleContext(), and MITK_ERROR.

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::NDITrackingDevice, mitk::OptitrackTrackingDevice, mitk::MicroBirdTrackingDevice, mitk::VirtualTrackingDevice, mitk::OpenIGTLinkTrackingDevice, and mitk::ClaronTrackingDevice.

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::OptitrackTrackingDevice, mitk::VirtualTrackingDevice, mitk::MicroBirdTrackingDevice, mitk::OpenIGTLinkTrackingDevice, and mitk::ClaronTrackingDevice.

Definition at line 111 of file mitkTrackingDevice.cpp.

References mitk::IGTTimeStamp::GetInstance(), and mitk::IGTTimeStamp::Stop().

Referenced by mitk::MicroBirdTrackingDevice::StopTracking().

Member Data Documentation

RotationMode mitk::TrackingDevice::m_RotationMode
protected

defines the rotation mode Standard or Transposed, Standard is default

Definition at line 185 of file mitkTrackingDevice.h.

itk::FastMutexLock::Pointer mitk::TrackingDevice::m_StateMutex
protected

mutex to control access to m_State

Definition at line 184 of file mitkTrackingDevice.h.

Referenced by TrackingDevice().

bool mitk::TrackingDevice::m_StopTracking
protected

signal stop to tracking thread

Definition at line 181 of file mitkTrackingDevice.h.

itk::FastMutexLock::Pointer mitk::TrackingDevice::m_StopTrackingMutex
protected

mutex to control access to m_StopTracking

Definition at line 182 of file mitkTrackingDevice.h.

Referenced by TrackingDevice().

itk::FastMutexLock::Pointer mitk::TrackingDevice::m_TrackingFinishedMutex
protected

mutex to manage control flow of StopTracking()

Definition at line 183 of file mitkTrackingDevice.h.

Referenced by TrackingDevice().


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