CustusX  2023.01.05-dev+develop.0da12
An IGT application
cxSpaceProviderImpl.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 CXSPACEPROVIDERIMPL_H
12 #define CXSPACEPROVIDERIMPL_H
13 
14 #include "cxResourceExport.h"
15 
16 #include "cxSpaceProvider.h"
17 #include "cxForwardDeclarations.h"
18 
19 namespace cx
20 {
21 
29 class cxResource_EXPORT SpaceProviderImpl : public SpaceProvider
30 {
31 public:
32  SpaceProviderImpl(TrackingServicePtr trackingService, PatientModelServicePtr dataManager);
33  virtual ~SpaceProviderImpl() {}
34 
35  virtual Transform3D get_toMfrom(CoordinateSystem from, CoordinateSystem to);
36  virtual std::vector<CoordinateSystem> getSpacesToPresentInGUI();
37  virtual std::map<QString, QString> getDisplayNamesForCoordRefObjects();
38  virtual SpaceListenerPtr createListener();
39 
40  virtual Vector3D getActiveToolTipPoint(CoordinateSystem to, bool useOffset = false);
41  virtual Transform3D getActiveToolTipTransform(CoordinateSystem to, bool useOffset = false);
42  virtual Transform3D get_rMpr();
43 
44  virtual CoordinateSystem getS(ToolPtr tool);
45  virtual CoordinateSystem getT(ToolPtr tool);
46  virtual CoordinateSystem getTO(ToolPtr tool);
47  virtual CoordinateSystem getD(DataPtr data);
48  virtual CoordinateSystem getPr();
49  virtual CoordinateSystem getR();
50  virtual CoordinateSystem convertToSpecific(CoordinateSystem space);
51 
52 private:
53  Transform3D get_rMfrom(CoordinateSystem from);
54 
55  Transform3D get_rMr();
56  Transform3D get_rMd(QString uid);
57  Transform3D get_rMdv(QString uid);
58 // Transform3D get_rMpr();
59  Transform3D get_rMt(QString uid);
60  Transform3D get_rMto(QString uid);
61  Transform3D get_rMs(QString uid);
62 
63  CoordinateSystem getToolCoordinateSystem(ToolPtr tool);
64 
65  TrackingServicePtr mTrackingService;
66  PatientModelServicePtr mDataManager;
67 };
68 
69 } // namespace cx
70 
71 #endif // CXSPACEPROVIDERIMPL_H
Transform3D Transform3D
Transform3D is a representation of an affine 3D transform.
boost::shared_ptr< class TrackingService > TrackingServicePtr
boost::shared_ptr< class Data > DataPtr
boost::shared_ptr< class PatientModelService > PatientModelServicePtr
Identification of a Coordinate system.
Eigen::Vector3d Vector3D
Vector3D is a representation of a point or vector in 3D.
Definition: cxVector3D.h:42
boost::shared_ptr< class SpaceListener > SpaceListenerPtr
Namespace for all CustusX production code.
boost::shared_ptr< class Tool > ToolPtr