MITK-IGT
IGT Extension of MITK
Loading...
Searching...
No Matches
mitk::PolhemusInterface Class Reference

An object of this class represents the interface to Polhemus trackers. All variables with the name "tool" start with index 1, which is the station number of Polhemus. Make sure to call functions in this class with parameter "1" if you want to loop over all tools. If you need to access an array (e.g. m_Hemisphere), you need to use "_tool -1" and adapt your index for loops... More...

#include <mitkPolhemusInterface.h>

Inheritance diagram for mitk::PolhemusInterface:

Classes

struct  trackingData
 

Public Member Functions

 mitkClassMacroItkParent (PolhemusInterface, itk::Object)
 
 itkFactorylessNewMacro (Self)
 
 itkCloneMacro (Self)
 
bool StartTracking ()
 Opens the connection to the device and makes it ready to track tools.
 
bool StopTracking ()
 Clears all resources. After this method have been called the system isn't ready to track any longer.
 
bool Connect ()
 
bool Disconnect ()
 
unsigned int GetNumberOfTools ()
 
void SetHemisphereTrackingEnabled (bool _HemisphereTrackingEnabled, int _tool=-1)
 
void ToggleHemisphere (int _tool=-1)
 
void PrintStatus ()
 
void SetHemisphere (int _tool, mitk::Vector3D _hemisphere)
 
mitk::Vector3D GetHemisphere (int _tool)
 
std::vector< int > GetToolPorts ()
 
bool GetHemisphereTrackingEnabled (int _tool)
 
void AdjustHemisphere (int _tool)
 
std::vector< trackingDataGetSingleFrame ()
 
std::vector< trackingDataAutoDetectTools ()
 
std::vector< trackingDataGetLastFrame ()
 

Protected Member Functions

 PolhemusInterface ()
 standard constructor
 
 ~PolhemusInterface ()
 standard destructor
 
std::vector< mitk::PolhemusInterface::trackingDataParsePolhemusRawData (PBYTE pBuf, DWORD dwSize)
 
bool InitializeDevice ()
 
bool SetupDevice ()
 
int GetToolIndex (int _tool)
 
std::vector< trackingDataGetFrame ()
 Convenient method to get a frame from the tracking device.
 

Protected Attributes

CPDIdev * m_pdiDev
 

Detailed Description

An object of this class represents the interface to Polhemus trackers. All variables with the name "tool" start with index 1, which is the station number of Polhemus. Make sure to call functions in this class with parameter "1" if you want to loop over all tools. If you need to access an array (e.g. m_Hemisphere), you need to use "_tool -1" and adapt your index for loops...

Documentation:

Definition at line 42 of file mitkPolhemusInterface.h.

Constructor & Destructor Documentation

◆ PolhemusInterface()

mitk::PolhemusInterface::PolhemusInterface ( )
protected

standard constructor

Definition at line 18 of file mitkPolhemusInterface.cpp.

◆ ~PolhemusInterface()

mitk::PolhemusInterface::~PolhemusInterface ( )
protected

standard destructor

Definition at line 24 of file mitkPolhemusInterface.cpp.

Member Function Documentation

◆ AdjustHemisphere()

void mitk::PolhemusInterface::AdjustHemisphere ( int _tool)

Adjust the Hemisphere for this tool. User needs to make sure, that the tool is located in hemisphere (1|0|0) when calling this function. In contrast to SetHemisphere(1,0,0), this method restores the original HemisphereTracking settings at the end.

Definition at line 363 of file mitkPolhemusInterface.cpp.

◆ AutoDetectTools()

std::vector< mitk::PolhemusInterface::trackingData > mitk::PolhemusInterface::AutoDetectTools ( )
Returns
Returns a single frame with all tools, which could be auto detected.

Definition at line 192 of file mitkPolhemusInterface.cpp.

◆ Connect()

bool mitk::PolhemusInterface::Connect ( )

Definition at line 120 of file mitkPolhemusInterface.cpp.

◆ Disconnect()

bool mitk::PolhemusInterface::Disconnect ( )

Definition at line 178 of file mitkPolhemusInterface.cpp.

◆ GetFrame()

std::vector< mitk::PolhemusInterface::trackingData > mitk::PolhemusInterface::GetFrame ( )
protected

Convenient method to get a frame from the tracking device.

Returns
Returns a single OR the last frame depending on m_continuousTracking.
Warning
Don't use this function if you use different threads. You need to make sure, that you are still in the right mode!

Definition at line 206 of file mitkPolhemusInterface.cpp.

◆ GetHemisphere()

mitk::Vector3D mitk::PolhemusInterface::GetHemisphere ( int _tool)

Get the Hemisphere for _tool as mitk vector. -1 ("all tools") returns hemisphere of first tool. Index starts at "1" for the first tool (i.e. station number of Polhemus). Not 0!

Definition at line 410 of file mitkPolhemusInterface.cpp.

◆ GetHemisphereTrackingEnabled()

bool mitk::PolhemusInterface::GetHemisphereTrackingEnabled ( int _tool)

Is Hemisphere Tracking Enabled for this tool? if tool is -1, this means "All Tools". We return true if HemiTracking is enabled for all tools, and false if it is off for at least one tool.

Definition at line 420 of file mitkPolhemusInterface.cpp.

◆ GetLastFrame()

std::vector< mitk::PolhemusInterface::trackingData > mitk::PolhemusInterface::GetLastFrame ( )
Returns
Returns the last frame when the tracking device is in continous tracking mode. Returns an empty vector in case of an error.

Definition at line 214 of file mitkPolhemusInterface.cpp.

◆ GetNumberOfTools()

unsigned int mitk::PolhemusInterface::GetNumberOfTools ( )
Returns
Returns the number of tools. Returns 0 if no information is available.

Definition at line 200 of file mitkPolhemusInterface.cpp.

◆ GetSingleFrame()

std::vector< mitk::PolhemusInterface::trackingData > mitk::PolhemusInterface::GetSingleFrame ( )
Returns
Returns a single frame. Only works if the tracking device is not in continuous tracking mode. Returns an empty vector in case of an error.

Definition at line 232 of file mitkPolhemusInterface.cpp.

◆ GetToolIndex()

int mitk::PolhemusInterface::GetToolIndex ( int _tool)
protected

Definition at line 439 of file mitkPolhemusInterface.cpp.

◆ GetToolPorts()

std::vector< int > mitk::PolhemusInterface::GetToolPorts ( )

Get the ports on which tools are connected. Returns empty vector if device is not connected!

Definition at line 434 of file mitkPolhemusInterface.cpp.

◆ InitializeDevice()

bool mitk::PolhemusInterface::InitializeDevice ( )
protected

Definition at line 29 of file mitkPolhemusInterface.cpp.

◆ itkCloneMacro()

mitk::PolhemusInterface::itkCloneMacro ( Self )

◆ itkFactorylessNewMacro()

mitk::PolhemusInterface::itkFactorylessNewMacro ( Self )

◆ mitkClassMacroItkParent()

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

◆ ParsePolhemusRawData()

std::vector< mitk::PolhemusInterface::trackingData > mitk::PolhemusInterface::ParsePolhemusRawData ( PBYTE pBuf,
DWORD dwSize )
protected

Parses polhemus raw data to a collection of tracking data of single tools.

Definition at line 251 of file mitkPolhemusInterface.cpp.

◆ PrintStatus()

void mitk::PolhemusInterface::PrintStatus ( )

Convenient method to print the status of the tracking device (true/false) if connection is established. For debugging...

Definition at line 462 of file mitkPolhemusInterface.cpp.

◆ SetHemisphere()

void mitk::PolhemusInterface::SetHemisphere ( int _tool,
mitk::Vector3D _hemisphere )

Sets the Hemisphere of tool _tool to the vector _hemisphere. "-1" sets all tools. Index starts at "1" for the first tool (i.e. station number of Polhemus). Not 0!

Definition at line 387 of file mitkPolhemusInterface.cpp.

◆ SetHemisphereTrackingEnabled()

void mitk::PolhemusInterface::SetHemisphereTrackingEnabled ( bool _HemisphereTrackingEnabled,
int _tool = -1 )

Enables/disables hemisphere tracking for all stations/tools.

Definition at line 290 of file mitkPolhemusInterface.cpp.

◆ SetupDevice()

bool mitk::PolhemusInterface::SetupDevice ( )
protected

Definition at line 38 of file mitkPolhemusInterface.cpp.

◆ StartTracking()

bool mitk::PolhemusInterface::StartTracking ( )

Opens the connection to the device and makes it ready to track tools.

Returns
Returns true if there is a connection to the device and the device is ready to track tools, false if not.

Definition at line 61 of file mitkPolhemusInterface.cpp.

◆ StopTracking()

bool mitk::PolhemusInterface::StopTracking ( )

Clears all resources. After this method have been called the system isn't ready to track any longer.

Returns
Returns true if the operation was succesful, false if not.

Definition at line 67 of file mitkPolhemusInterface.cpp.

◆ ToggleHemisphere()

void mitk::PolhemusInterface::ToggleHemisphere ( int _tool = -1)

Toggles the current hemisphere. Parameter _tool describes, for which tool the hemisphere should change. Default -1 toggles all tools. Index starts at "1" for the first tool (i.e. station number of Polhemus). Not 0!

Definition at line 341 of file mitkPolhemusInterface.cpp.

Member Data Documentation

◆ m_pdiDev

CPDIdev* mitk::PolhemusInterface::m_pdiDev
protected

Polhemus liberty/patriot tracker object

Definition at line 130 of file mitkPolhemusInterface.h.


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