PlusLib  2.9.0
Software library for tracked ultrasound image acquisition, calibration, and processing.
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
vtkPlusNDICertusTracker Class Reference

Interface for the NDI Optotrak Certus tracking device. More...

#include <src/PlusDataCollection/NDICertusTracking/vtkPlusNDICertusTracker.h>

Inheritance diagram for vtkPlusNDICertusTracker:
Inheritance graph
[legend]
Collaboration diagram for vtkPlusNDICertusTracker:
Collaboration graph
[legend]

Public Types

enum  LedState { TR_LED_OFF = 0, TR_LED_ON = 1, TR_LED_FLASH = 2 }
 
typedef vtkPlusDevice Superclass
 
- Public Types inherited from vtkPlusDevice
typedef vtkImageAlgorithm Superclass
 

Public Member Functions

virtual const char * GetClassName ()
 
virtual std::string GetSdkVersion ()
 
virtual char * GetVersion ()
 
virtual PlusStatus InternalConnect ()
 
virtual PlusStatus InternalDisconnect ()
 
PlusStatus InternalUpdate ()
 
virtual int IsA (const char *type)
 
virtual bool IsTracker () const
 
virtual void PrintSelf (ostream &os, vtkIndent indent) VTK_OVERRIDE
 
PlusStatus Probe ()
 
PlusStatus SetToolLED (int portNumber, int led, LedState state)
 
- Public Member Functions inherited from vtkPlusDevice
PlusStatus AddFieldDataSource (vtkPlusDataSource *aSource)
 
PlusStatus AddInputChannel (vtkPlusChannel *aChannel)
 
PlusStatus AddOutputChannel (vtkPlusChannel *aChannel)
 
PlusStatus AddTool (vtkPlusDataSource *tool, bool requireUniquePortName=true)
 
PlusStatus AddVideoSource (vtkPlusDataSource *anImage)
 
void ClearAllBuffers ()
 
virtual PlusStatus Connect ()
 
virtual PlusStatus CreateDefaultOutputChannel (const char *channelId=NULL, bool addSource=true)
 
void DeepCopy (const vtkPlusDevice &device)
 
virtual PlusStatus Disconnect ()
 
virtual PlusStatus ForceUpdate ()
 
virtual double GetAcquisitionRate () const
 
virtual PlusStatus GetBufferSize (vtkPlusChannel &aChannel, int &outVal, const std::string &aSourceId=std::string(""))
 
virtual int GetConnected () const
 
virtual bool GetCorrectlyConfigured () const
 
PlusStatus GetDataSource (const char *aSourceId, vtkPlusDataSource *&aSource)
 
PlusStatus GetDataSource (const std::string &aSourceId, vtkPlusDataSource *&aSource)
 
virtual double GetDesiredTimestamp ()
 
virtual std::string GetDeviceId () const
 
PlusStatus GetFieldDataSource (const char *aSourceId, vtkPlusDataSource *&aSource) const
 
PlusStatus GetFieldDataSource (const std::string &aSourceId, vtkPlusDataSource *&aSource) const
 
DataSourceContainerConstIterator GetFieldDataSourcessIteratorBegin () const
 
DataSourceContainerConstIterator GetFieldDataSourcessIteratorEnd () const
 
PlusStatus GetFirstActiveOutputVideoSource (vtkPlusDataSource *&aVideoSource)
 
PlusStatus GetFirstActiveTool (vtkPlusDataSource *&aTool) const
 
PlusStatus GetFirstOutputChannel (vtkPlusChannel *&aChannel)
 
PlusStatus GetFirstVideoSource (vtkPlusDataSource *&anImage)
 
virtual unsigned long GetFrameNumber () const
 
virtual double GetFrameTimeStamp () const
 
virtual PlusStatus GetImage (const std::string &requestedImageId, std::string &assignedImageId, const std::string &imageReferencFrameName, vtkImageData *imageData, vtkMatrix4x4 *ijkToReferenceTransform)
 
virtual PlusStatus GetImageMetaData (igsioCommon::ImageMetaDataList &imageMetaDataItems)
 
virtual US_IMAGE_TYPE GetImageType (vtkPlusChannel &aChannel)
 
PlusStatus GetInputDevices (std::vector< vtkPlusDevice * > &outDeviceList) const
 
PlusStatus GetInputDevicesRecursive (std::vector< vtkPlusDevice * > &outDeviceList) const
 
virtual PlusStatus GetInputFrameSize (vtkPlusChannel &aChannel, unsigned int &x, unsigned int &y, unsigned int &z) const
 
virtual PlusStatus GetInputFrameSize (vtkPlusChannel &aChannel, FrameSizeType &dim) const
 
double GetInternalUpdateRate () const
 
virtual double GetLocalTimeOffsetSec () const
 
double GetMissingInputGracePeriodSec () const
 
virtual int GetNumberOfFieldDataSources () const
 
virtual int GetNumberOfTools () const
 
virtual int GetNumberOfVideoSources () const
 
PlusStatus GetOutputChannelByName (vtkPlusChannel *&aChannel, const char *aChannelId)
 
PlusStatus GetOutputChannelByName (vtkPlusChannel *&aChannel, const std::string &aChannelId)
 
ChannelContainerConstIterator GetOutputChannelsEnd () const
 
ChannelContainerIterator GetOutputChannelsEnd ()
 
ChannelContainerConstIterator GetOutputChannelsStart () const
 
ChannelContainerIterator GetOutputChannelsStart ()
 
virtual PlusStatus GetOutputFrameSize (vtkPlusChannel &aChannel, unsigned int &x, unsigned int &y, unsigned int &z) const
 
virtual PlusStatus GetOutputFrameSize (vtkPlusChannel &aChannel, FrameSizeType &dim) const
 
virtual std::string GetParameter (const std::string &key) const
 
virtual PlusStatus GetParameter (const std::string &key, std::string &outValue) const
 
virtual igsioCommon::VTKScalarPixelType GetPixelType (vtkPlusChannel &aChannel)
 
virtual double GetStartTime ()
 
virtual double GetTimestampClosestToDesired ()
 
PlusStatus GetTool (const char *aToolSourceId, vtkPlusDataSource *&aTool) const
 
PlusStatus GetTool (const std::string &aToolSourceId, vtkPlusDataSource *&aTool) const
 
PlusStatus GetToolByPortName (const char *aPortName, vtkPlusDataSource *&aSource)
 
PlusStatus GetToolByPortName (const std::string &aPortName, vtkPlusDataSource *&aSource)
 
DataSourceContainerConstIterator GetToolIteratorBegin () const
 
DataSourceContainerConstIterator GetToolIteratorEnd () const
 
std::string GetToolReferenceFrameName () const
 
virtual int GetUpdateWithDesiredTimestamp ()
 
PlusStatus GetVideoSource (const char *aSourceId, vtkPlusDataSource *&aVideoSource)
 
PlusStatus GetVideoSourceByIndex (const unsigned int index, vtkPlusDataSource *&aVideoSource)
 
DataSourceContainerConstIterator GetVideoSourceIteratorBegin () const
 
DataSourceContainerConstIterator GetVideoSourceIteratorEnd () const
 
std::vector< vtkPlusDataSource * > GetVideoSources () const
 
PlusStatus GetVideoSourcesByPortName (const char *aPortName, std::vector< vtkPlusDataSource * > &sources)
 
PlusStatus GetVideoSourcesByPortName (const std::string &aPortName, std::vector< vtkPlusDataSource * > &sources)
 
virtual bool IsConnected () const
 
virtual bool IsRecording () const
 
virtual bool IsResettable ()
 
virtual bool IsVirtual () const
 
virtual PlusStatus NotifyConfigured ()
 
virtual int OutputChannelCount () const
 
virtual PlusStatus ReadConfiguration (vtkXMLDataElement *)
 
virtual int RequestData (vtkInformation *, vtkInformationVector **, vtkInformationVector *)
 
virtual int RequestInformation (vtkInformation *, vtkInformationVector **, vtkInformationVector *)
 
virtual PlusStatus Reset ()
 
virtual PlusStatus SendText (const std::string &textToSend, std::string *textReceived=NULL)
 
PlusStatus SetAcquisitionRate (double aRate)
 
virtual PlusStatus SetBufferSize (vtkPlusChannel &aChannel, int FrameBufferSize, const std::string &aSourceId=std::string(""))
 
virtual void SetDataCollector (vtkPlusDataCollector *_arg)
 
virtual void SetDesiredTimestamp (double)
 
void SetDeviceId (const std::string &id)
 
void SetFieldDataSourcesBufferSize (int aBufferSize)
 
virtual PlusStatus SetImageType (vtkPlusChannel &aChannel, US_IMAGE_TYPE imageType)
 
virtual PlusStatus SetInputFrameSize (vtkPlusDataSource &aSource, unsigned int x, unsigned int y, unsigned int z)
 
virtual void SetLocalTimeOffsetSec (double aTimeOffsetSec)
 
virtual void SetMissingInputGracePeriodSec (double)
 
virtual PlusStatus SetParameter (const std::string &key, const std::string &value)
 
virtual PlusStatus SetPixelType (vtkPlusChannel &aChannel, igsioCommon::VTKScalarPixelType pixelType)
 
virtual void SetStartTime (double startTime)
 
void SetToolReferenceFrameName (const std::string &frameName)
 
void SetToolsBufferSize (int aBufferSize)
 
virtual void SetUpdateWithDesiredTimestamp (int)
 
virtual PlusStatus StartRecording ()
 
virtual PlusStatus StopRecording ()
 
virtual void UpdateWithDesiredTimestampOff ()
 
virtual void UpdateWithDesiredTimestampOn ()
 
virtual PlusStatus WriteConfiguration (vtkXMLDataElement *)
 
virtual PlusStatus WriteToolsToSequenceFile (const std::string &filename, bool useCompression=false)
 

Static Public Member Functions

static int IsTypeOf (const char *type)
 
static vtkPlusNDICertusTrackerNew ()
 
static vtkPlusNDICertusTrackerSafeDownCast (vtkObject *o)
 
- Static Public Member Functions inherited from vtkPlusDevice
static PlusStatus GetToolReferenceFrameFromTrackedFrame (igsioTrackedFrame &aFrame, std::string &aToolReferenceFrameName)
 
static int IsTypeOf (const char *type)
 
static vtkPlusDeviceNew ()
 
static vtkPlusDeviceSafeDownCast (vtkObject *o)
 

Protected Member Functions

PlusStatus ActivateCertusMarkers ()
 
PlusStatus DeActivateCertusMarkers ()
 
PlusStatus DisableToolPorts ()
 
PlusStatus EnableToolPorts ()
 
int GetToolFromHandle (int handle)
 
PlusStatus InitializeCertusSystem ()
 
PlusStatus InternalStartRecording ()
 
PlusStatus InternalStopRecording ()
 
virtual void SetVersion (const char *)
 
PlusStatus ShutdownCertusSystem ()
 
 vtkPlusNDICertusTracker ()
 
 ~vtkPlusNDICertusTracker ()
 
- Protected Member Functions inherited from vtkPlusDevice
virtual PlusStatus AddVideoItemToVideoSources (const std::vector< vtkPlusDataSource * > &videoSources, const igsioVideoFrame &frame, long frameNumber, double unfilteredTimestamp=UNDEFINED_TIMESTAMP, double filteredTimestamp=UNDEFINED_TIMESTAMP, const igsioFieldMapType *customFields=NULL)
 
virtual PlusStatus AddVideoItemToVideoSources (const std::vector< vtkPlusDataSource * > &videoSources, void *imageDataPtr, US_IMAGE_ORIENTATION usImageOrientation, const FrameSizeType &frameSizeInPx, igsioCommon::VTKScalarPixelType pixelType, unsigned int numberOfScalarComponents, US_IMAGE_TYPE imageType, int numberOfBytesToSkip, long frameNumber, double unfilteredTimestamp=UNDEFINED_TIMESTAMP, double filteredTimestamp=UNDEFINED_TIMESTAMP, const igsioFieldMapType *customFields=NULL)
 
PlusStatus EnsureUniqueDataSourceId (const std::string &aSourceId)
 
vtkXMLDataElement * FindInputChannelElement (vtkXMLDataElement *rootXMLElement, const char *aChannelId)
 
vtkXMLDataElement * FindOutputChannelElement (vtkXMLDataElement *rootXMLElement, const char *aChannelId)
 
vtkXMLDataElement * FindThisDeviceElement (vtkXMLDataElement *rootXMLElement)
 
virtual vtkPlusDataCollectorGetDataCollector ()
 
double GetRecordingStartTime () const
 
bool GetStartThreadForInternalUpdates () const
 
bool HasGracePeriodExpired ()
 
virtual void InternalWriteInputChannels (vtkXMLDataElement *rootXMLElement)
 
virtual void InternalWriteOutputChannels (vtkXMLDataElement *rootXMLElement)
 
virtual void SetCorrectlyConfigured (bool)
 
virtual void SetRecordingStartTime (double)
 
virtual void SetStartThreadForInternalUpdates (bool)
 
virtual PlusStatus ToolTimeStampedUpdate (const std::string &aToolSourceId, vtkMatrix4x4 *matrix, ToolStatus status, unsigned long frameNumber, double unfilteredtimestamp, const igsioFieldMapType *customFields=NULL)
 
virtual PlusStatus ToolTimeStampedUpdateWithoutFiltering (const std::string &aToolSourceId, vtkMatrix4x4 *matrix, ToolStatus status, double unfilteredtimestamp, double filteredtimestamp, const igsioFieldMapType *customFields=NULL)
 
 vtkPlusDevice ()
 
virtual ~vtkPlusDevice ()
 

Protected Attributes

int NumberOfMarkers
 
int NumberOfRigidBodies
 
int PortEnabled [VTK_CERTUS_NTOOLS]
 
int PortHandle [VTK_CERTUS_NTOOLS]
 
std::map< int, intRigidBodyMap
 
vtkMatrix4x4 * SendMatrix
 
char * Version
 
- Protected Attributes inherited from vtkPlusDevice
double AcquisitionRate
 
int Connected
 
bool CorrectlyConfigured
 
StreamBufferItemCurrentStreamBufferItem
 
vtkPlusDataCollectorDataCollector
 
double DesiredTimestamp
 
std::string DeviceId
 
DataSourceContainer Fields
 
unsigned long FrameNumber
 
double FrameTimeStamp
 
ChannelContainer InputChannels
 
double LocalTimeOffsetSec
 
double MissingInputGracePeriodSec
 
ChannelContainer OutputChannels
 
int OutputNeedsInitialization
 
std::map< std::string, std::string > Parameters
 
int Recording
 
double RecordingStartTime
 
std::set< std::string > ReportedUnknownTools
 
bool RequireImageOrientationInConfiguration
 
bool RequirePortNameInDeviceSetConfiguration
 
bool StartThreadForInternalUpdates
 
bool ThreadAlive
 
vtkMultiThreader * Threader
 
int ThreadId
 
double TimestampClosestToDesired
 
std::string ToolReferenceFrameName
 
DataSourceContainer Tools
 
int UpdateWithDesiredTimestamp
 
DataSourceContainer VideoSources
 

Additional Inherited Members

- Public Attributes inherited from vtkPlusDevice
double InternalUpdateRate
 
vtkIGSIORecursiveCriticalSection * UpdateMutex
 
vtkTimeStamp UpdateTime
 
- Static Public Attributes inherited from vtkPlusDevice
static const std::string BMODE_PORT_NAME = "B"
 
static const std::string PARAMETER_XML_ELEMENT_TAG = "Parameter"
 
static const std::string PARAMETERS_XML_ELEMENT_TAG = "Parameters"
 
static const std::string RFMODE_PORT_NAME = "Rf"
 
- Static Protected Member Functions inherited from vtkPlusDevice
static void * vtkDataCaptureThread (vtkMultiThreader::ThreadInfo *data)
 
- Static Protected Attributes inherited from vtkPlusDevice
static const int VIRTUAL_DEVICE_FRAME_RATE = 50
 

Detailed Description

Interface for the NDI Optotrak Certus tracking device.

The vtkPlusNDICertusTracker class provides an interface to the Optotrak Certus (Northern Digital Inc., Waterloo, Canada)

Definition at line 27 of file vtkPlusNDICertusTracker.h.

Member Typedef Documentation

◆ Superclass

Definition at line 39 of file vtkPlusNDICertusTracker.h.

Member Enumeration Documentation

◆ LedState

Enumerator
TR_LED_OFF 
TR_LED_ON 
TR_LED_FLASH 

Definition at line 31 of file vtkPlusNDICertusTracker.h.

Constructor & Destructor Documentation

◆ vtkPlusNDICertusTracker()

vtkPlusNDICertusTracker::vtkPlusNDICertusTracker ( )
protected

Definition at line 44 of file vtkPlusNDICertusTracker.cxx.

◆ ~vtkPlusNDICertusTracker()

vtkPlusNDICertusTracker::~vtkPlusNDICertusTracker ( )
protected

Definition at line 65 of file vtkPlusNDICertusTracker.cxx.

Member Function Documentation

◆ ActivateCertusMarkers()

PlusStatus vtkPlusNDICertusTracker::ActivateCertusMarkers ( )
protected

Activate the markers for tracking.

Definition at line 225 of file vtkPlusNDICertusTracker.cxx.

◆ DeActivateCertusMarkers()

PlusStatus vtkPlusNDICertusTracker::DeActivateCertusMarkers ( )
protected

Deactivate all markers.

Definition at line 255 of file vtkPlusNDICertusTracker.cxx.

◆ DisableToolPorts()

PlusStatus vtkPlusNDICertusTracker::DisableToolPorts ( )
protected

Definition at line 734 of file vtkPlusNDICertusTracker.cxx.

◆ EnableToolPorts()

PlusStatus vtkPlusNDICertusTracker::EnableToolPorts ( )
protected

Methods for detecting which ports have tools in them, and auto-enabling those tools.

Definition at line 453 of file vtkPlusNDICertusTracker.cxx.

◆ GetClassName()

virtual const char* vtkPlusNDICertusTracker::GetClassName ( )
virtual

Reimplemented from vtkPlusDevice.

◆ GetSdkVersion()

std::string vtkPlusNDICertusTracker::GetSdkVersion ( )
virtual

Hardware device SDK version.

Reimplemented from vtkPlusDevice.

Definition at line 79 of file vtkPlusNDICertusTracker.cxx.

◆ GetToolFromHandle()

int vtkPlusNDICertusTracker::GetToolFromHandle ( int  handle)
protected

Find the tool for a specific port handle (-1 if not found).

Definition at line 771 of file vtkPlusNDICertusTracker.cxx.

◆ GetVersion()

virtual char* vtkPlusNDICertusTracker::GetVersion ( )
virtual

Get the a string (perhaps a long one) describing the type and version of the device.

◆ InitializeCertusSystem()

PlusStatus vtkPlusNDICertusTracker::InitializeCertusSystem ( )
protected

Initialize communication with the Certus system.

Definition at line 174 of file vtkPlusNDICertusTracker.cxx.

◆ InternalConnect()

PlusStatus vtkPlusNDICertusTracker::InternalConnect ( )
virtual

Connect to device

Reimplemented from vtkPlusDevice.

Definition at line 111 of file vtkPlusNDICertusTracker.cxx.

◆ InternalDisconnect()

PlusStatus vtkPlusNDICertusTracker::InternalDisconnect ( )
virtual

Disconnect from device

Reimplemented from vtkPlusDevice.

Definition at line 163 of file vtkPlusNDICertusTracker.cxx.

◆ InternalStartRecording()

PlusStatus vtkPlusNDICertusTracker::InternalStartRecording ( )
protectedvirtual

Start the tracking system. The tracking system is brought from its ground state into full tracking mode. The device will only be reset if communication cannot be established without a reset.

Reimplemented from vtkPlusDevice.

Definition at line 285 of file vtkPlusNDICertusTracker.cxx.

◆ InternalStopRecording()

PlusStatus vtkPlusNDICertusTracker::InternalStopRecording ( )
protectedvirtual

Stop the tracking system and bring it back to its ground state: Initialized, not tracking, at 9600 Baud.

Reimplemented from vtkPlusDevice.

Definition at line 314 of file vtkPlusNDICertusTracker.cxx.

◆ InternalUpdate()

PlusStatus vtkPlusNDICertusTracker::InternalUpdate ( )
virtual

Get an update from the tracking system and push the new transforms to the tools.

Reimplemented from vtkPlusDevice.

Definition at line 330 of file vtkPlusNDICertusTracker.cxx.

◆ IsA()

virtual int vtkPlusNDICertusTracker::IsA ( const char *  type)
virtual

Reimplemented from vtkPlusDevice.

◆ IsTracker()

virtual bool vtkPlusNDICertusTracker::IsTracker ( ) const
inlinevirtual

Is this device a tracker

Reimplemented from vtkPlusDevice.

Definition at line 64 of file vtkPlusNDICertusTracker.h.

◆ IsTypeOf()

static int vtkPlusNDICertusTracker::IsTypeOf ( const char *  type)
static

◆ New()

static vtkPlusNDICertusTracker* vtkPlusNDICertusTracker::New ( )
static

◆ PrintSelf()

void vtkPlusNDICertusTracker::PrintSelf ( ostream &  os,
vtkIndent  indent 
)
virtual

Reimplemented from vtkPlusDevice.

Definition at line 89 of file vtkPlusNDICertusTracker.cxx.

◆ Probe()

PlusStatus vtkPlusNDICertusTracker::Probe ( )
virtual

Probe to check whether there is an attached Certus system that is able to track. After Probe is called, you can call GetVersion() to get information about the attached Certus system.

Reimplemented from vtkPlusDevice.

Definition at line 267 of file vtkPlusNDICertusTracker.cxx.

◆ SafeDownCast()

static vtkPlusNDICertusTracker* vtkPlusNDICertusTracker::SafeDownCast ( vtkObject *  o)
static

◆ SetToolLED()

PlusStatus vtkPlusNDICertusTracker::SetToolLED ( int  portNumber,
int  led,
vtkPlusNDICertusTracker::LedState  state 
)

Set the specified tool LED to the specified state.

Definition at line 788 of file vtkPlusNDICertusTracker.cxx.

◆ SetVersion()

virtual void vtkPlusNDICertusTracker::SetVersion ( const char *  )
protectedvirtual

Set the version information.

◆ ShutdownCertusSystem()

PlusStatus vtkPlusNDICertusTracker::ShutdownCertusSystem ( )
protected

Terminate communication with the Certus system.

Definition at line 212 of file vtkPlusNDICertusTracker.cxx.

Member Data Documentation

◆ NumberOfMarkers

int vtkPlusNDICertusTracker::NumberOfMarkers
protected

Number of markers

Definition at line 110 of file vtkPlusNDICertusTracker.h.

◆ NumberOfRigidBodies

int vtkPlusNDICertusTracker::NumberOfRigidBodies
protected

Number of rigid bodies

Definition at line 113 of file vtkPlusNDICertusTracker.h.

◆ PortEnabled

int vtkPlusNDICertusTracker::PortEnabled[VTK_CERTUS_NTOOLS]
protected

Container used for storing enabled tools

Definition at line 119 of file vtkPlusNDICertusTracker.h.

◆ PortHandle

int vtkPlusNDICertusTracker::PortHandle[VTK_CERTUS_NTOOLS]
protected

Container used for storing tool handles

Definition at line 122 of file vtkPlusNDICertusTracker.h.

◆ RigidBodyMap

std::map<int,int> vtkPlusNDICertusTracker::RigidBodyMap
protected

Container used for storing rigid body maps

Definition at line 125 of file vtkPlusNDICertusTracker.h.

◆ SendMatrix

vtkMatrix4x4* vtkPlusNDICertusTracker::SendMatrix
protected

Internal matrix used for storing the actual tool matrix

Definition at line 116 of file vtkPlusNDICertusTracker.h.

◆ Version

char* vtkPlusNDICertusTracker::Version
protected

Version information

Definition at line 107 of file vtkPlusNDICertusTracker.h.


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