NorMIT-nav  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 
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_
cx::XmlOptionFile
Helper class for xml files used to store ssc/cx data.
Definition: cxXmlOptionItem.h:78
cx::SpaceListenerPtr
boost::shared_ptr< class SpaceListener > SpaceListenerPtr
Definition: cxAxisConnector.h:23
cx::ICPRegistrationBaseWidget::mMargin
DoublePropertyPtr mMargin
Definition: cxICPRegistrationBaseWidget.h:87
cx
Namespace for all CustusX production code.
Definition: cx_dev_group_definitions.h:13
cx::ICPRegistrationBaseWidget::mNumberOfIterations
DoublePropertyPtr mNumberOfIterations
Definition: cxICPRegistrationBaseWidget.h:93
cx::ICPRegistrationBaseWidget::mICPWidget
ICPWidget * mICPWidget
Definition: cxICPRegistrationBaseWidget.h:97
cx::BoolPropertyPtr
boost::shared_ptr< class BoolProperty > BoolPropertyPtr
Definition: cxPlusConnectWidget.h:29
cx::ICPRegistrationBaseWidget
Definition: cxICPRegistrationBaseWidget.h:49
cxDoubleProperty.h
cx::RegistrationBaseWidget
Definition: cxRegistrationBaseWidget.h:28
cx::ICPWidget
Definition: cxICPWidget.h:35
cx::ICPRegistrationBaseWidget::mObscuredListener
boost::shared_ptr< class WidgetObscuredListener > mObscuredListener
Definition: cxICPRegistrationBaseWidget.h:100
cx::ICPRegistrationBaseWidget::mRegistrator
SeansVesselRegPtr mRegistrator
Definition: cxICPRegistrationBaseWidget.h:99
cx::DoublePropertyPtr
boost::shared_ptr< class DoubleProperty > DoublePropertyPtr
Definition: cxReconstructionMethodService.h:33
cx::SeansVesselRegPtr
boost::shared_ptr< class SeansVesselReg > SeansVesselRegPtr
Definition: cxRMPCFromPointerWidget.h:35
cx::ICPRegistrationBaseWidget::mOptions
XmlOptionFile mOptions
Definition: cxICPRegistrationBaseWidget.h:98
cx::SeansVesselRegistrationDebuggerPtr
boost::shared_ptr< class SeansVesselRegistrationDebugger > SeansVesselRegistrationDebuggerPtr
Definition: cxICPRegistrationBaseWidget.h:27
cx::ICPRegistrationBaseWidget::mLTSRatio
DoublePropertyPtr mLTSRatio
Definition: cxICPRegistrationBaseWidget.h:86
cx::Transform3D
Transform3D Transform3D
Transform3D is a representation of an affine 3D transform.
Definition: cxLandmarkPatientRegistrationWidget.h:33
cx::ICPRegistrationBaseWidget::mOneStep
BoolPropertyPtr mOneStep
Definition: cxICPRegistrationBaseWidget.h:91
cxRegistrationBaseWidget.h
cx::RegServicesPtr
boost::shared_ptr< class RegServices > RegServicesPtr
Definition: cxRegServices.h:20
cx::ICPRegistrationBaseWidget::getDefaultAutoLTS
virtual double getDefaultAutoLTS() const
Definition: cxICPRegistrationBaseWidget.h:75
cx::ICPRegistrationBaseWidget::mLinear
BoolPropertyPtr mLinear
Definition: cxICPRegistrationBaseWidget.h:88
cx::MeshInViewPtr
boost::shared_ptr< class MeshInView > MeshInViewPtr
Definition: cxRMPCFromPointerWidget.h:36
cxStringPropertyBase.h
cx::ICPRegistrationBaseWidget::mMaxTime
DoublePropertyPtr mMaxTime
Definition: cxICPRegistrationBaseWidget.h:95
cxTransform3D.h
cxBoolProperty.h
cx::ICPRegistrationBaseWidget::mStopThreshold
DoublePropertyPtr mStopThreshold
Definition: cxICPRegistrationBaseWidget.h:94
cx::ICPRegistrationBaseWidget::mDisplayProgress
BoolPropertyPtr mDisplayProgress
Definition: cxICPRegistrationBaseWidget.h:90
cx::ICPRegistrationBaseWidget::mAutoLTS
BoolPropertyPtr mAutoLTS
Definition: cxICPRegistrationBaseWidget.h:89
cx::GeometricRepPtr
boost::shared_ptr< class GeometricRep > GeometricRepPtr
Definition: cxICPRegistrationBaseWidget.h:29