CustusX  18.04
An IGT application
cxVBcameraPath.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 CXVBCAMERAPATH_H
13 #define CXVBCAMERAPATH_H
14 
15 #include <QObject>
16 
17 #include "cxForwardDeclarations.h"
18 #include "cxVector3D.h"
19 #include "cxTransform3D.h"
20 
21 typedef vtkSmartPointer<class vtkCardinalSpline> vtkCardinalSplinePtr;
22 typedef vtkSmartPointer<class vtkParametricSpline> vtkParametricSplinePtr;
23 
24 namespace cx {
25 
37 class CXVBcameraPath : public QObject
38 {
39  Q_OBJECT
40 
41 private:
42  vtkParametricSplinePtr mSpline;
43  TrackingServicePtr mTrackingService;
44  PatientModelServicePtr mPatientModelService;
45  ViewServicePtr mViewService;
46  ToolPtr mManualTool;
47 
48  int mNumberOfInputPoints;
49  int mNumberOfControlPoints;
50  Vector3D mLastCameraPos_r;
51  Vector3D mLastCameraFocus_r;
52  Vector3D mLastStoredViewVector;
53  double mLastCameraViewAngle;
54  double mLastCameraRotAngle;
55 
56  void updateManualToolPosition();
57  void generateSplineCurve(MeshPtr mesh);
58 
59 public:
61  ViewServicePtr visualization);
62 
63 public slots:
64  void cameraRawPointsSlot(MeshPtr mesh);
65  void cameraPathPositionSlot(int pos);
66  void cameraViewAngleSlot(int angle);
67  void cameraRotateAngleSlot(int angle);
68 
69 };
70 
71 } /* namespace cx */
72 
73 #endif // CXVBCAMERAPATH_H
vtkSmartPointer< class vtkCardinalSpline > vtkCardinalSplinePtr
void cameraRawPointsSlot(MeshPtr mesh)
boost::shared_ptr< class TrackingService > TrackingServicePtr
vtkSmartPointer< class vtkParametricSpline > vtkParametricSplinePtr
boost::shared_ptr< class ViewService > ViewServicePtr
void cameraRotateAngleSlot(int angle)
boost::shared_ptr< class PatientModelService > PatientModelServicePtr
void cameraViewAngleSlot(int angle)
Eigen::Vector3d Vector3D
Vector3D is a representation of a point or vector in 3D.
Definition: cxVector3D.h:42
void cameraPathPositionSlot(int pos)
boost::shared_ptr< class Mesh > MeshPtr
CXVBcameraPath(TrackingServicePtr tracker, PatientModelServicePtr patientModel, ViewServicePtr visualization)
Namespace for all CustusX production code.
boost::shared_ptr< class Tool > ToolPtr