NorMIT-nav  2023.01.05-dev+develop.0da12
An IGT application
cxTrackingSystemService.h
Go to the documentation of this file.
1 /*=========================================================================
2 This file is part of CustusX, an Image Guided Therapy Application.
3 
4 Copyright (c) SINTEF Department of Medical Technology.
5 All rights reserved.
6 
7 CustusX is released under a BSD 3-Clause license.
8 
9 See Lisence.txt (https://github.com/SINTEFMedtek/CustusX/blob/master/License.txt) for details.
10 =========================================================================*/
11 
12 #ifndef CXTRACKINGSYSTEMSERVICE_H
13 #define CXTRACKINGSYSTEMSERVICE_H
14 
15 #include "cxResourceExport.h"
16 #include "cxTool.h"
17 
18 #define TrackingSystemService_iid "cx::TrackingSystemService"
19 
20 namespace cx
21 {
22 
23 typedef boost::shared_ptr<class TrackingSystemService> TrackingSystemServicePtr;
24 typedef boost::shared_ptr<class TrackerConfiguration> TrackerConfigurationPtr;
25 
35 class cxResource_EXPORT TrackingSystemService : public QObject
36 {
37  Q_OBJECT
38 public:
41 
42  virtual QString getUid() const = 0;
43  virtual Tool::State getState() const;
44  virtual void setState(const Tool::State val) = 0;
45  virtual std::vector<ToolPtr> getTools() = 0;
46  virtual TrackerConfigurationPtr getConfiguration() = 0;
47  virtual ToolPtr getReference() = 0;
48 
49  virtual void setConfigurationFile(QString configurationFile);
50  virtual void setLoggingFolder(QString loggingFolder);
51 
52  virtual void resetTimeSynchronization() {};
53 
54 signals:
55  void stateChanged();
56  void updateTrackingSystemImplementation(QString trackingSystemImplementation);
57 
58 protected slots:
59  virtual void deconfigure() {}
60  virtual void configure() {}
61 
62  virtual void initialize();
63  virtual void uninitialize();
64  virtual void startTracking();
65  virtual void stopTracking();
66 protected:
69  QString mLoggingFolder;
70 
71  virtual bool isConfigured() const;
72  virtual bool isInitialized() const;
73  virtual bool isTracking() const;
74 
75  void internalSetState(Tool::State val);
76 };
77 } //namespace cx
79 
80 #endif // CXTRACKINGSYSTEMSERVICE_H
cx
Namespace for all CustusX production code.
Definition: cx_dev_group_definitions.h:13
cx::TrackerConfigurationPtr
boost::shared_ptr< class TrackerConfiguration > TrackerConfigurationPtr
Definition: cxTrackerConfiguration.h:24
cx::TrackingSystemService::~TrackingSystemService
virtual ~TrackingSystemService()
Definition: cxTrackingSystemService.h:40
cx::TrackingSystemService
Tracking System Service.
Definition: cxTrackingSystemService.h:35
cx::TrackingSystemService::resetTimeSynchronization
virtual void resetTimeSynchronization()
Definition: cxTrackingSystemService.h:52
cx::TrackingSystemService::mConfigurationFilePath
QString mConfigurationFilePath
path to the configuration file
Definition: cxTrackingSystemService.h:68
cx::TrackingSystemServicePtr
boost::shared_ptr< class TrackingSystemService > TrackingSystemServicePtr
Definition: cxTrackingImplService.h:36
cxTool.h
cx::Tool::State
State
Definition: cxTool.h:72
cx::TrackingSystemService::mLoggingFolder
QString mLoggingFolder
path to where logging should be saved
Definition: cxTrackingSystemService.h:69
cx::TrackingSystemService::mState
Tool::State mState
Definition: cxTrackingSystemService.h:67
cx::ToolPtr
boost::shared_ptr< class Tool > ToolPtr
Definition: cxVideoConnectionWidget.h:43
TrackingSystemService_iid
#define TrackingSystemService_iid
Definition: cxTrackingSystemService.h:18