CustusX  2023.01.05-dev+develop.0da12
An IGT application
cxRegistrationService.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 CXREGISTRATIONSERVICE_H
13 #define CXREGISTRATIONSERVICE_H
14 
15 #include "cxResourceExport.h"
16 #include "org_custusx_registration_Export.h"
17 
18 #include <QObject>
19 #include <boost/shared_ptr.hpp>
20 #include "cxTransform3D.h"
21 
22 class QDateTime;
23 
24 namespace cx
25 {
26 typedef boost::shared_ptr<class Data> DataPtr;
27 }
28 
29 #define RegistrationService_iid "cx::RegistrationService"
30 
31 namespace cx
32 {
33 class RegistrationTransform;
34 typedef boost::shared_ptr<class RegistrationService> RegistrationServicePtr;
35 
45 class org_custusx_registration_EXPORT RegistrationService : public QObject
46 {
47  Q_OBJECT
48 public:
49  virtual ~RegistrationService() {}
50 
51  virtual void setMovingData(DataPtr data) = 0;
52  virtual void setFixedData(DataPtr data) = 0;
53  virtual DataPtr getMovingData() = 0;
54  virtual DataPtr getFixedData() = 0;
55 
56  virtual void doPatientRegistration() = 0;
57  virtual void doFastRegistration_Translation() = 0;
58  virtual void doFastRegistration_Orientation(const Transform3D& tMtm, const Transform3D &prMt) = 0;
59  virtual void doImageRegistration(bool translationOnly) = 0;
60  virtual void addImage2ImageRegistration(Transform3D delta_pre_rMd, QString description) = 0;
61  virtual void updateImage2ImageRegistration(Transform3D delta_pre_rMd, QString description) = 0;
62  virtual void addPatientRegistration(Transform3D rMpr_new, QString description) = 0;
63  virtual void updatePatientRegistration(Transform3D rMpr_new, QString description) = 0;
64  virtual void applyPatientOrientation(const Transform3D &tMtm, const Transform3D &prMt) = 0;
65 
66  virtual QDateTime getLastRegistrationTime() = 0;
67  virtual void setLastRegistrationTime(QDateTime time) = 0;
68 
69  virtual bool isNull() = 0;
70  static RegistrationServicePtr getNullObject();
71 
72  //Utility functions
73  QString getFixedDataUid();
74  QString getMovingDataUid();
75 
76 signals:
77  void fixedDataChanged(QString uid);
78  void movingDataChanged(QString uid);
79 };
80 
81 } //namespace cx
83 
84 
85 #endif // CXREGISTRATIONSERVICE_H
boost::shared_ptr< class RegistrationService > RegistrationServicePtr
Transform3D Transform3D
Transform3D is a representation of an affine 3D transform.
boost::shared_ptr< class Data > DataPtr
Registration services.
#define RegistrationService_iid
Namespace for all CustusX production code.