CustusX  2023.01.05-dev+develop.0da12
An IGT application
cxCenterlineRegistrationWidget.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 CXCENTERLINEREGISTRATIONWIDGET_H
13 #define Centerline
14 
15 #include <QPushButton>
16 #include <QDomElement>
18 #include "cxForwardDeclarations.h"
19 #include "cxXmlOptionItem.h"
20 #include "org_custusx_registration_method_centerline_Export.h"
21 
22 
23 namespace cx
24 {
25 class RecordTrackingWidget;
26 class WidgetObscuredListener;
27 typedef boost::shared_ptr<class Acquisition> AcquisitionPtr;
28 typedef boost::shared_ptr<class StringPropertySelectMesh> StringPropertySelectMeshPtr;
29 typedef boost::shared_ptr<class ToolRep3D> ToolRep3DPtr;
30 typedef boost::shared_ptr<class RecordSessionWidget> RecordSessionWidgetPtr;
31 typedef boost::shared_ptr<class AcquisitionData> AcquisitionDataPtr;
32 typedef boost::shared_ptr<class CenterlineRegistration> CenterlineRegistrationPtr;
33 typedef std::map<QString, ToolPtr> ToolMap;
34 typedef boost::shared_ptr<class StringPropertySelectTool> StringPropertySelectToolPtr;
35 
44 class org_custusx_registration_method_centerline_EXPORT CenterlineRegistrationWidget: public RegistrationBaseWidget
45 {
46  Q_OBJECT
47 
48 public:
49  CenterlineRegistrationWidget(RegServicesPtr services, QWidget *parent);
51  {
52  }
53  virtual QString defaultWhatsThis() const;
54 
55 protected:
56  virtual void prePaintEvent();
57 private slots:
58  void registerSlot();
59  void clearDataOnNewPatient();
60 private:
61  void setup();
62 
63  CenterlineRegistrationPtr mCenterlineRegistration;
64 
65  RegServicesPtr mServices;
66  QVBoxLayout* mVerticalLayout;
67  BoolPropertyPtr mUseXtranslation;
68  BoolPropertyPtr mUseYtranslation;
69  BoolPropertyPtr mUseZtranslation;
70  BoolPropertyPtr mUseXrotation;
71  BoolPropertyPtr mUseYrotation;
72  BoolPropertyPtr mUseZrotation;
73 
74  XmlOptionFile mOptions;
75  MeshPtr mMesh;
76 
77  StringPropertySelectMeshPtr mSelectMeshWidget;
78  QPushButton* mRegisterButton;
79  ToolPtr mTool;
80 
81  RecordTrackingWidget* mRecordTrackingWidget;
82 
83  void initializeTrackingService();
84 
85  void selectXtranslation(QDomElement root);
86  void selectYtranslation(QDomElement root);
87  void selectZtranslation(QDomElement root);
88  void selectXrotation(QDomElement root);
89  void selectYrotation(QDomElement root);
90  void selectZrotation(QDomElement root);
91 
92 };
93 
94 } //namespace cx
95 
96 #endif // CXCENTERLINEREGISTRATIONWIDGET_H
boost::shared_ptr< class StringPropertySelectTool > StringPropertySelectToolPtr
boost::shared_ptr< class Acquisition > AcquisitionPtr
boost::shared_ptr< class AcquisitionData > AcquisitionDataPtr
boost::shared_ptr< class RecordSessionWidget > RecordSessionWidgetPtr
std::map< QString, ToolPtr > ToolMap
boost::shared_ptr< class RegServices > RegServicesPtr
Definition: cxRegServices.h:20
Register tracked tool path to centerline data (from CT)
boost::shared_ptr< class ToolRep3D > ToolRep3DPtr
boost::shared_ptr< class CenterlineRegistration > CenterlineRegistrationPtr
boost::shared_ptr< class BoolProperty > BoolPropertyPtr
boost::shared_ptr< class Mesh > MeshPtr
boost::shared_ptr< class StringPropertySelectMesh > StringPropertySelectMeshPtr
Helper class for xml files used to store ssc/cx data.
Namespace for all CustusX production code.
boost::shared_ptr< class Tool > ToolPtr