CustusX  2023.01.05-dev+develop.0da12
An IGT application
cxTrackerConfiguration.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 CXTRACKERCONFIGURATION_H
13 #define CXTRACKERCONFIGURATION_H
14 
15 #include "cxResourceExport.h"
16 
17 #include "boost/shared_ptr.hpp"
18 #include <QStringList>
19 
21 
22 namespace cx
23 {
24 typedef boost::shared_ptr<class TrackerConfiguration> TrackerConfigurationPtr;
25 
33 class cxResource_EXPORT TrackerConfiguration
34 {
35 public:
37  {
38  QString mUid;
39  QString mName;
41  QString mTrackingSystemName;//Tracking system name (polaris, aurora, ...)
42  QStringList mTools;
43  QString mReferenceTool;
44  QString mTrackingSystemImplementation;//Tracking system implementation (igstk or openigtlink)
45  bool mApplyRefToTools;//Apply ref position to all tools for OpenIGTLink transforms
46  std::vector<cx::ConfigurationFileParser::ToolStructure> mToolList;
47  };
48  struct Tool
49  {
50  QString mUid; // absolute filename
51  QString mName; // User-friendly name
56  };
57 
58  virtual ~TrackerConfiguration();
59 
60  virtual QString getConfigurationApplicationsPath() = 0;
61  virtual void saveConfiguration(const Configuration& config) = 0;
62  virtual Configuration getConfiguration(QString uid) = 0;
63 
64  virtual QStringList getConfigurationsGivenApplication() = 0;
65  virtual QStringList getAllConfigurations() = 0;
66 
67  virtual QStringList getSupportedTrackingSystems() = 0;
68  virtual QStringList getToolsGivenFilter(QStringList applicationsFilter,
69  QStringList trackingsystemsFilter) = 0;
70  virtual QStringList getAllTools() = 0;
71  virtual QStringList getAllApplications() = 0;
72 
73  virtual Tool getTool(QString uid) = 0;
74  virtual bool verifyTool(QString uid) = 0;
75 
76  virtual QString getTrackingSystemImplementation() = 0;
77  virtual void setTrackingSystemImplementation(QString trackingSystemImplementation) = 0;
78 
79  virtual bool isNull() = 0;
80  static TrackerConfigurationPtr getNullObject();
81 
82 protected:
84 };
85 
86 } // namespace cx
87 
88 #endif // CXTRACKERCONFIGURATION_H
boost::shared_ptr< class TrackerConfiguration > TrackerConfigurationPtr
std::vector< cx::ConfigurationFileParser::ToolStructure > mToolList
QString mUid
absolute path and filename for the new config file
Namespace for all CustusX production code.