API Reference
This page provides an overview of the main PlusLib APIs and classes.
Core Classes
Configuration Management
vtkPlusConfig
Global configuration management for Plus applications.
Key Methods:
static vtkPlusConfig* GetInstance();
PlusStatus ReadConfiguration(vtkXMLDataElement* configRootElement);
PlusStatus SaveConfiguration(const std::string& filename);
Usage:
vtkPlusConfig* config = vtkPlusConfig::GetInstance();
config->ReadConfiguration(configElement);
PlusXmlUtils
XML reading and writing utilities.
Key Macros:
XML_FIND_DEVICE_ELEMENT_REQUIRED_FOR_READING()XML_READ_STRING_ATTRIBUTE_REQUIRED()XML_READ_SCALAR_ATTRIBUTE_OPTIONAL()XML_READ_BOOL_ATTRIBUTE_OPTIONAL()
Data Collection
vtkPlusDataCollector
Main class for managing devices and data acquisition.
Key Methods:
PlusStatus ReadConfiguration(vtkXMLDataElement* config);
PlusStatus Connect();
PlusStatus Start();
PlusStatus Stop();
PlusStatus Disconnect();
PlusStatus GetDevice(vtkPlusDevice*& device, const std::string& deviceId);
Example:
vtkSmartPointer<vtkPlusDataCollector> collector =
vtkSmartPointer<vtkPlusDataCollector>::New();
collector->ReadConfiguration(configElement);
collector->Connect();
collector->Start();
// Get device
vtkPlusDevice* device = NULL;
collector->GetDevice(device, "VideoDevice");
vtkPlusDevice
Base class for all devices.
Key Methods:
virtual PlusStatus ReadConfiguration(vtkXMLDataElement* config);
virtual PlusStatus Connect();
virtual PlusStatus Disconnect();
virtual PlusStatus StartRecording();
virtual PlusStatus StopRecording();
PlusStatus GetFirstActiveOutputVideoSource(vtkPlusDataSource*& videoSource);
vtkPlusDataSource
Represents a data stream (video, tracking, field data).
Key Methods:
vtkPlusBuffer* GetBuffer();
PlusStatus GetLatestTrackedFrame(PlusTrackedFrame* frame);
const char* GetId();
vtkPlusBuffer
Circular buffer for storing tracked frames.
Key Methods:
ItemStatus GetLatestTrackedFrame(PlusTrackedFrame* trackedFrame);
ItemStatus GetTrackedFrame(double timestamp, PlusTrackedFrame* trackedFrame);
ItemStatus AddItem(PlusTrackedFrame* frame);
int GetNumberOfItems();
Calibration Algorithms
vtkPlusProbeCalibrationAlgo
Probe (stylus) calibration using phantom-based methods.
Key Methods:
PlusStatus ReadConfiguration(vtkXMLDataElement* config);
PlusStatus Calibrate();
vtkMatrix4x4* GetImageToProbeTransformMatrix();
Configuration:
<ProbeCalibration>
<Segmentation
ClipRectangleOrigin="0 0"
ClipRectangleSize="640 480" />
<Optimization
MaximumIterations="500"
OptimizationMethod="2" />
</ProbeCalibration>
vtkPlusPhantomLandmarkRegistrationAlgo
Landmark-based phantom registration.
Key Methods:
PlusStatus ReadConfiguration(vtkXMLDataElement* config);
PlusStatus SetPhantomCoordinates(vtkPoints* points);
PlusStatus SetRecordedPoints(vtkPoints* points);
PlusStatus LandmarkRegister();
vtkMatrix4x4* GetPhantomToReferenceTransformMatrix();
vtkPlusPhantomLinearObjectRegistrationAlgo
Linear object (e.g., wire) based phantom registration.
Key Methods:
PlusStatus ReadConfiguration(vtkXMLDataElement* config);
PlusStatus Register();
vtkPlusTemporalCalibrationAlgo
Temporal calibration between video and tracking streams.
Key Methods:
PlusStatus ReadConfiguration(vtkXMLDataElement* config);
PlusStatus Update();
double GetVideoOffset();
Configuration:
<TemporalCalibration>
<SamplingResolutionSec>0.001</SamplingResolutionSec>
<MaximumMovingLagSec>0.08</MaximumMovingLagSec>
<FixedLagSec>0.05</FixedLagSec>
</TemporalCalibration>
vtkPlusPivotCalibrationAlgo
Pivot calibration for tracked stylus tools.
Key Methods:
PlusStatus ReadConfiguration(vtkXMLDataElement* config);
PlusStatus AddToolToReferenceTransform(vtkMatrix4x4* matrix);
PlusStatus DoPivotCalibration();
void GetToolTipToToolTransform(vtkMatrix4x4* matrix);
vtkPlusSpacingCalibAlgo
Ultrasound image spacing calibration.
Key Methods:
PlusStatus ReadConfiguration(vtkXMLDataElement* config);
PlusStatus Calibrate();
PlusStatus GetSpacing(double spacing[3]);
Transform Management
igsioTransformRepository
Manages coordinate system transforms.
Key Methods:
PlusStatus ReadConfiguration(vtkXMLDataElement* config);
PlusStatus GetTransform(const igsioTransformName& name, vtkMatrix4x4* matrix);
PlusStatus SetTransform(const igsioTransformName& name, vtkMatrix4x4* matrix);
PlusStatus IsExistingTransform(const igsioTransformName& name);
Usage:
vtkSmartPointer<vtkIGSIOTransformRepository> repo =
vtkSmartPointer<vtkIGSIOTransformRepository>::New();
repo->ReadConfiguration(configElement);
vtkSmartPointer<vtkMatrix4x4> matrix = vtkSmartPointer<vtkMatrix4x4>::New();
repo->GetTransform(igsioTransformName("Probe", "Tracker"), matrix);
Logging
vtkPlusLogger
Singleton logger for Plus applications.
Key Methods:
static vtkPlusLogger* Instance();
void SetLogLevel(int level);
int GetLogLevel();
Log Levels:
vtkPlusLogger::LOG_LEVEL_ERROR // 1
vtkPlusLogger::LOG_LEVEL_WARNING // 2
vtkPlusLogger::LOG_LEVEL_INFO // 3
vtkPlusLogger::LOG_LEVEL_DEBUG // 4
vtkPlusLogger::LOG_LEVEL_TRACE // 5
Macros:
LOG_ERROR("Error message");
LOG_WARNING("Warning message");
LOG_INFO("Info message");
LOG_DEBUG("Debug message");
LOG_TRACE("Trace message");
Image Processing
PlusVideoFrame
Utilities for video frame I/O and manipulation.
Key Methods:
static PlusStatus ReadImageFromFile(const std::string& filename, vtkImageData* image);
static PlusStatus SaveImageToFile(const std::string& filename, vtkImageData* image);
static PlusStatus FlipImage(vtkImageData* image, FlipInfoType flipInfo);
Common Patterns
Reading Configuration
PlusStatus MyClass::ReadConfiguration(vtkXMLDataElement* rootConfigElement)
{
XML_FIND_DEVICE_ELEMENT_REQUIRED_FOR_READING(deviceConfig, rootConfigElement);
XML_READ_STRING_ATTRIBUTE_REQUIRED(MyParameter, deviceConfig);
XML_READ_SCALAR_ATTRIBUTE_OPTIONAL(int, OptionalParam, deviceConfig);
return PLUS_SUCCESS;
}
Device Initialization Pattern
// Create and configure device
vtkSmartPointer<vtkPlusMyDevice> device =
vtkSmartPointer<vtkPlusMyDevice>::New();
device->ReadConfiguration(configElement);
// Connect and start recording
device->Connect();
device->StartRecording();
// Use device...
// Cleanup
device->StopRecording();
device->Disconnect();
Error Handling Pattern
PlusStatus MyFunction()
{
if (CheckCondition() != PLUS_SUCCESS)
{
LOG_ERROR("Condition check failed");
return PLUS_FAIL;
}
if (!DoSomething())
{
LOG_ERROR("DoSomething failed");
return PLUS_FAIL;
}
return PLUS_SUCCESS;
}
Full API Documentation
For complete API documentation with all classes and methods, see the generated Doxygen documentation.
Module-Specific Documentation
PlusCommon: Core utilities and base classes
PlusDataCollection: Device interfaces and data acquisition
PlusCalibration: Calibration algorithms
PlusImageProcessing: Image processing utilities
PlusOpenIGTLink: OpenIGTLink communication
PlusVolumeReconstruction: Volume reconstruction
PlusRendering: Visualization components
PlusWidgets: Qt-based UI components