CustusX  2023.01.05-dev+develop.0da12
An IGT application
cxICPRegistrationBaseWidget.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 #ifndef CXICPREGISTRATIONBASEWIDGET_H_
12 #define CXICPREGISTRATIONBASEWIDGET_H_
13 
15 #include "cxStringPropertyBase.h"
16 
17 class QSpinBox;
18 class QPushButton;
19 class QLabel;
20 #include "cxBoolProperty.h"
21 #include "cxDoubleProperty.h"
22 #include "cxTransform3D.h"
23 #include "org_custusx_registration_method_vessel_Export.h"
24 
25 namespace cx
26 {
27 class ICPWidget;
28 typedef boost::shared_ptr<class SeansVesselRegistrationDebugger> SeansVesselRegistrationDebuggerPtr;
29 typedef boost::shared_ptr<class GeometricRep> GeometricRepPtr;
30 typedef boost::shared_ptr<class SeansVesselReg> SeansVesselRegPtr;
31 typedef boost::shared_ptr<class MeshInView> MeshInViewPtr;
32 typedef boost::shared_ptr<class SpaceListener> SpaceListenerPtr;
33 
34 
35 
36 
49 class org_custusx_registration_method_vessel_EXPORT ICPRegistrationBaseWidget : public RegistrationBaseWidget
50 {
51  Q_OBJECT
52 public:
53  ICPRegistrationBaseWidget(RegServicesPtr services, QWidget* parent, QString uid, QString name);
54  virtual ~ICPRegistrationBaseWidget();
55 
56 protected:
60  virtual void initializeRegistrator() = 0;
64  virtual void onShown() = 0;
68  virtual void applyRegistration(Transform3D delta) = 0;
69 
73  virtual void setup() = 0;
74 
75  virtual double getDefaultAutoLTS() const { return true; }
76 
77 protected:
78  virtual void prePaintEvent();
79 
80 private slots:
81  void obscuredSlot(bool obscured);
82 protected slots:
83  void registerSlot();
84 
85 protected:
92 
96 
99  SeansVesselRegPtr mRegistrator;
100  boost::shared_ptr<class WidgetObscuredListener> mObscuredListener;
101 
102  void onSpacesChanged();
103  void onSettingsChanged();
104 
105 private:
106  MeshInViewPtr mMeshInView;
107 
108  void initializeProperties();
109  std::vector<PropertyPtr> getAllProperties();
110  void updateDifferenceLines();
111  void onDisplayProgressChanged();
112  void initialize();
113 };
114 
115 
116 }//namespace cx
117 
118 #endif // CXICPREGISTRATIONBASEWIDGET_H_
Transform3D Transform3D
Transform3D is a representation of an affine 3D transform.
boost::shared_ptr< class SeansVesselRegistrationDebugger > SeansVesselRegistrationDebuggerPtr
boost::shared_ptr< class WidgetObscuredListener > mObscuredListener
boost::shared_ptr< class RegServices > RegServicesPtr
Definition: cxRegServices.h:20
boost::shared_ptr< class DoubleProperty > DoublePropertyPtr
boost::shared_ptr< class SpaceListener > SpaceListenerPtr
boost::shared_ptr< class BoolProperty > BoolPropertyPtr
Helper class for xml files used to store ssc/cx data.
boost::shared_ptr< class SeansVesselReg > SeansVesselRegPtr
boost::shared_ptr< class MeshInView > MeshInViewPtr
boost::shared_ptr< class GeometricRep > GeometricRepPtr
Namespace for all CustusX production code.