CustusX  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_
boost::shared_ptr< class SpaceProvider > SpaceProviderPtr
CoordinateSystem mSpace
Transform3D Transform3D
Transform3D is a representation of an affine 3D transform.
std::string matrixAsSingleLineString(cx::Transform3D transform)
virtual bool showValueInGraphics() const
virtual QString getValueAsString() const
Abstract base class for frame metric.
SpaceListenerPtr mSpaceListener
boost::shared_ptr< class PatientModelService > PatientModelServicePtr
Identification of a Coordinate system.
Representation of a floating-point bounding box in 3D. The data are stored as {xmin,xmax,ymin,ymax,zmin,zmax}, in order to simplify communication with vtk.
Eigen::Vector3d Vector3D
Vector3D is a representation of a point or vector in 3D.
Definition: cxVector3D.h:42
boost::shared_ptr< class SpaceListener > SpaceListenerPtr
Base class for all Data Metrics.
Definition: cxDataMetric.h:43
Namespace for all CustusX production code.
Transform3D mFrame
frame qFt described in local space q = mSpace