13#ifndef mitkAbstractUltrasoundTrackerDevice_h
14#define mitkAbstractUltrasoundTrackerDevice_h
16#include <MitkUSNavigationExports.h>
18#include "mitkImageSource.h"
22#include <mitkServiceInterface.h>
23#include <usServiceRegistration.h>
24#include <usGetModuleContext.h>
26#include <usServiceProperties.h>
27#include <usModuleContext.h>
30 template<
class T>
class SmartPointer;
34 class NavigationDataSmoothingFilter;
35 class NavigationDataDelayFilter;
36 class NavigationDataDisplacementFilter;
78 AffineTransform3D::Pointer GetCalibration();
86 AffineTransform3D::Pointer GetCalibration(std::string depth);
95 AffineTransform3D::Pointer GetCalibration(std::string depth, std::string probe);
98 virtual AffineTransform3D::Pointer GetUSPlaneTransform();
105 void SetCalibration(AffineTransform3D::Pointer calibration);
111 bool RemoveCalibration();
119 bool RemoveCalibration(std::string depth);
128 bool RemoveCalibration(std::string depth, std::string probe);
133 std::string GetDeviceClass();
138 USImageSource::Pointer GetUSImageSource();
145 bool GetIsCalibratedForCurrentStatus();
150 bool GetContainsAtLeastOneCalibration();
158 std::string SerializeCalibration();
168 void DeserializeCalibration(
const std::string &xmlString,
bool clearPreviousCalibrations =
true);
170 void SetNumberOfSmoothingValues(
unsigned int numberOfSmoothingValues);
172 void SetDelayCount(
unsigned int delayCount);
180 void UnregisterOnService();
182 virtual void RegisterAsMicroservice();
209 virtual void SetIsFreezed(
bool freeze);
214 virtual bool GetIsFreezed();
226 bool trackedUltrasoundActive );
235 void GenerateData()
override;
237 std::string GetIdentifierForCurrentCalibration();
238 std::string GetIdentifierForCurrentProbe();
239 std::string GetCurrentDepthValue();
241 void RebuildFilterPipeline();
268 bool m_IsTrackedUltrasoundActive;
Abstract class for an easy handling of a combination of an USDevice and a NavigationDataSource....
itk::SmartPointer< mitk::NavigationDataDisplacementFilter > m_DisplacementFilter
std::map< std::string, AffineTransform3D::Pointer > m_Calibrations
static const char * ProbeAndDepthSeperator
mitkNewMacro3Param(AbstractUltrasoundTrackerDevice, USDevice::Pointer, itk::SmartPointer< NavigationDataSource >, bool)
static const std::string US_PROPKEY_CLASS
static const std::string DeviceClassIdentifier
itkGetMacro(IsTrackedUltrasoundActive, bool)
itk::SmartPointer< mitk::NavigationDataDelayFilter > m_DelayFilter
itkGetMacro(TrackingDeviceDataSource, itk::SmartPointer< NavigationDataSource >)
us::ServiceProperties m_ServiceProperties
Properties of the device's Microservice.
virtual void OnFreeze(bool)
Called when mitk::AbstractUltrasoundTrackerDevice::SetIsFreezed() is called. Subclasses can overwrite...
us::ServiceRegistration< Self > m_ServiceRegistration
The device's ServiceRegistration object that allows to modify it's Microservice registraton details.
unsigned int m_DelayCount
itkGetMacro(UltrasoundDevice, itk::SmartPointer< USDevice >)
unsigned int m_NumberOfSmoothingValues
static const char * DefaultProbeIdentifier
itk::SmartPointer< mitk::NavigationDataSource > m_LastFilterOfIGTPipeline
itkSetMacro(UltrasoundDevice, itk::SmartPointer< USDevice >)
itk::SmartPointer< NavigationDataSource > m_TrackingDeviceDataSource
USDevice::Pointer m_UltrasoundDevice
mitkClassMacro(AbstractUltrasoundTrackerDevice, mitk::ImageSource)
static const std::string US_PROPKEY_ID
itkSetMacro(TrackingDeviceDataSource, itk::SmartPointer< NavigationDataSource >)
itk::SmartPointer< mitk::NavigationDataSmoothingFilter > m_SmoothingFilter
static const std::string US_INTERFACE_NAME
static const std::string US_PROPKEY_DEVICENAME