13 #ifndef MITKVIRTUALTRACKINGDEVICE_H_HEADER_INCLUDED_ 14 #define MITKVIRTUALTRACKINGDEVICE_H_HEADER_INCLUDED_ 16 #include <MitkIGTExports.h> 19 #include <itkMultiThreader.h> 21 #include "itkFastMutexLock.h" 40 itkFactorylessNewMacro(Self);
49 itkSetMacro(RefreshRate,
unsigned int);
55 itkGetConstMacro(RefreshRate,
unsigned int);
66 bool StartTracking()
override;
72 bool StopTracking()
override;
78 bool OpenConnection()
override;
83 bool CloseConnection()
override;
88 unsigned int GetToolCount()
const override;
95 TrackingTool* GetTool(
unsigned int toolNumber)
const override;
157 void EnableGaussianNoise();
162 void DisableGaussianNoise();
168 void SetParamsForGaussianNoise(
double meanDistribution,
double deviationDistribution);
173 double GetMeanDistribution();
178 double GetDeviationDistribution();
192 static ITK_THREAD_RETURN_TYPE ThreadStartTracking(
void* data);
196 ControlPointType GetRandomPoint();
itk::FastMutexLock::Pointer m_ToolsMutex
mutex for coordinated access of tool container
unsigned int m_NumberOfControlPoints
number of control points for the random path generation
ToolContainer m_AllTools
container for all tracking tools
bool m_GaussianNoiseEnabled
adding Gaussian Noise to tracking coordinates or not, false by default
double m_DeviationDistributionParam
mean distribution for Gaussion Noise, 0.0 by default
DataCollection - Class to facilitate loading/accessing structured data.
const mitk::ScalarType * GetBounds() const
return the tracking volume bounds
itk::MultiThreader::Pointer m_MultiThreader
MultiThreader that starts continuous tracking update.
std::vector< VirtualTrackingTool::Pointer > ToolContainer
container type for tracking tools
#define mitkClassMacro(className, SuperClassName)
Interface for all Tracking Devices.
mitk::VirtualTrackingTool::SplineType::ControlPointType ControlPointType
unsigned int m_RefreshRate
refresh rate of the internal tracking thread in milliseconds (NOT refreshs per second!) ...
Class representing a tracking device which generates random positions / orientations. No hardware is needed for tracking device.
double m_MeanDistributionParam