17 #ifndef MITKVIRTUALTRACKINGDEVICE_H_HEADER_INCLUDED_
18 #define MITKVIRTUALTRACKINGDEVICE_H_HEADER_INCLUDED_
20 #include <MitkIGTExports.h>
23 #include <itkMultiThreader.h>
25 #include "itkFastMutexLock.h"
44 itkFactorylessNewMacro(Self)
54 itkSetMacro(RefreshRate,
unsigned int)
60 itkGetConstMacro(RefreshRate,
unsigned int)
71 virtual bool StartTracking()
override;
77 virtual bool StopTracking()
override;
83 virtual bool OpenConnection()
override;
88 virtual bool CloseConnection()
override;
93 virtual unsigned int GetToolCount()
const override;
100 TrackingTool* GetTool(
unsigned int toolNumber)
const override;
162 void EnableGaussianNoise();
167 void DisableGaussianNoise();
173 void SetParamsForGaussianNoise(
double meanDistribution,
double deviationDistribution);
178 double GetMeanDistribution();
183 double GetDeviationDistribution();
197 static ITK_THREAD_RETURN_TYPE ThreadStartTracking(
void* data);
201 ControlPointType GetRandomPoint();
itk::FastMutexLock::Pointer m_ToolsMutex
mutex for coordinated access of tool container
itk::SmartPointer< Self > Pointer
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.
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.
const mitk::ScalarType * GetBounds() const
return the tracking volume bounds
double m_MeanDistributionParam