CustusX  2023.01.05-dev+develop.0da12
An IGT application
cxWirePhantomWidget.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 CXWIREPHANTOMWIDGET_H_
13 #define CXWIREPHANTOMWIDGET_H_
14 
15 #include "org_custusx_registration_gui_Export.h"
17 #include "cxPipeline.h"
18 #include "cxFilter.h"
19 #include "cxVector3D.h"
20 #include "cxTransform3D.h"
21 #include "cxBoundingBox3D.h"
22 
23 class QPushButton;
24 class QVBoxLayout;
25 class QTextEdit;
26 
27 namespace cx
28 {
29 typedef boost::shared_ptr<class AcquisitionData> AcquisitionDataPtr;
30 
39 class org_custusx_registration_gui_EXPORT WirePhantomWidget: public RegistrationBaseWidget
40 {
41 Q_OBJECT
42 
43 public:
44  WirePhantomWidget(ctkPluginContext *pluginContext, QWidget* parent = 0);
45  virtual ~WirePhantomWidget();
46  virtual QString defaultWhatsThis() const;
47 
48 protected:
49  QVBoxLayout* mLayout;
50 
51 private slots:
52  void measureSlot();
53  MeshPtr loadNominalCross();
54  void registration();
55  void generate_sMt();
56 
57 private:
58  void showDataMetrics(Vector3D cross_r);
59  std::pair<QString, Transform3D> getLastProbePosition();
60  void showData(DataPtr data);
61  Vector3D findCentroid(MeshPtr mesh);
62 
63  class PipelineWidget* mPipelineWidget;
64  PipelinePtr mPipeline;
65  QPushButton* mMeasureButton;
66  QPushButton* mCalibrationButton;
67  QTextEdit* mResults;
68  Transform3D mLastRegistration;
69  UsReconstructionServicePtr mUsReconstructionService;
70 };
71 
72 } /* namespace cx */
73 #endif /* CXWIREPHANTOMWIDGET_H_ */
boost::shared_ptr< class UsReconstructionService > UsReconstructionServicePtr
Probe accuracy measurements using the Wire Phantom.
Transform3D Transform3D
Transform3D is a representation of an affine 3D transform.
boost::shared_ptr< class Data > DataPtr
boost::shared_ptr< class AcquisitionData > AcquisitionDataPtr
Eigen::Vector3d Vector3D
Vector3D is a representation of a point or vector in 3D.
Definition: cxVector3D.h:42
boost::shared_ptr< class Mesh > MeshPtr
Namespace for all CustusX production code.
boost::shared_ptr< Pipeline > PipelinePtr
Definition: cxPipeline.h:146