NorMIT-nav  2023.01.05-dev+develop.0da12
An IGT application
cxFrameMetricBase.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 CXFRAMEMETRICBASE_H_
13 #define CXFRAMEMETRICBASE_H_
14 
15 #include "cxResourceExport.h"
16 #include "cxPrecompiledHeader.h"
17 
18 #include "cxDataMetric.h"
20 
21 namespace cx {
22 
30 class cxResource_EXPORT FrameMetricBase: public DataMetric
31 {
32  Q_OBJECT
33 public:
34  FrameMetricBase(const QString& uid, const QString& name, PatientModelServicePtr dataManager, SpaceProviderPtr spaceProvider);
35  virtual ~FrameMetricBase();
36  virtual QString getType() const = 0;
37 
38  virtual void setFrame(const Transform3D& qMt);
39  virtual Transform3D getFrame();
40  virtual Vector3D getCoordinate() const;
41  virtual Vector3D getRefCoord() const;
42  virtual Transform3D getRefFrame() const;
43  virtual void setSpace(CoordinateSystem space); // use parentframe from Data
44  virtual CoordinateSystem getSpace() const; // use parentframe from Data
45  virtual DoubleBoundingBox3D boundingBox() const;
46 
47  virtual QString getValueAsString() const { return ""; }
48  virtual bool showValueInGraphics() const { return false; }
49 
50  virtual QString getParentSpace();
51 protected:
52  QString matrixAsSingleLineString() const;
56 
57 };
58 
59 } //namespace cx
60 #endif // CXFRAMEMETRICBASE_H_
cx::SpaceListenerPtr
boost::shared_ptr< class SpaceListener > SpaceListenerPtr
Definition: cxAxisConnector.h:23
cx::DoubleBoundingBox3D
Representation of a floating-point bounding box in 3D. The data are stored as {xmin,...
Definition: cxBoundingBox3D.h:63
cx
Namespace for all CustusX production code.
Definition: cx_dev_group_definitions.h:13
cxPrecompiledHeader.h
cx::FrameMetricBase::showValueInGraphics
virtual bool showValueInGraphics() const
Definition: cxFrameMetricBase.h:48
cxDataMetric.h
cx::FrameMetricBase::mFrame
Transform3D mFrame
frame qFt described in local space q = mSpace
Definition: cxFrameMetricBase.h:55
cx::matrixAsSingleLineString
std::string matrixAsSingleLineString(cx::Transform3D transform)
Definition: cxTransform3D.cpp:279
cx::Transform3D
Transform3D Transform3D
Transform3D is a representation of an affine 3D transform.
Definition: cxLandmarkPatientRegistrationWidget.h:33
cx::PatientModelServicePtr
boost::shared_ptr< class PatientModelService > PatientModelServicePtr
Definition: cxLogicManager.h:25
cxCoordinateSystemHelpers.h
cx::FrameMetricBase::getValueAsString
virtual QString getValueAsString() const
Definition: cxFrameMetricBase.h:47
cx::FrameMetricBase
Abstract base class for frame metric.
Definition: cxFrameMetricBase.h:30
cx::DataMetric
Base class for all Data Metrics.
Definition: cxDataMetric.h:43
cx::FrameMetricBase::mSpace
CoordinateSystem mSpace
Definition: cxFrameMetricBase.h:53
cx::Vector3D
Eigen::Vector3d Vector3D
Vector3D is a representation of a point or vector in 3D.
Definition: cxVector3D.h:42
cx::SpaceProviderPtr
boost::shared_ptr< class SpaceProvider > SpaceProviderPtr
Definition: cxLogicManager.h:23
cx::CoordinateSystem
Identification of a Coordinate system.
Definition: cxCoordinateSystemHelpers.h:31
cx::FrameMetricBase::mSpaceListener
SpaceListenerPtr mSpaceListener
Definition: cxFrameMetricBase.h:54