CustusX  16.5.0-rc9
An IGT application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
cxRouteToTarget.h
Go to the documentation of this file.
1 #ifndef CXROUTETOTARGET_H
2 #define CXROUTETOTARGET_H
3 
4 #include "cxMesh.h"
5 #include <QDomElement>
6 
7 
8 namespace cx
9 {
10 
11 typedef std::vector< Eigen::Matrix4d > M4Vector;
12 typedef boost::shared_ptr<class RouteToTarget> RouteToTargetPtr;
13 typedef boost::shared_ptr<class BranchList> BranchListPtr;
14 typedef boost::shared_ptr<class Branch> BranchPtr;
15 
16 
18 {
19 public:
20  RouteToTarget();
21  virtual ~RouteToTarget();
22  void setCenterline(vtkPolyDataPtr centerline);
23  Eigen::MatrixXd getCenterlinePositions(vtkPolyDataPtr centerline);
24  void processCenterline(vtkPolyDataPtr centerline);
25  void findClosestPointInBranches(Vector3D targetCoordinate);
26  void findRoutePositions();
27  void searchBranchUp(BranchPtr searchBranchPtr, int startIndex);
28  vtkPolyDataPtr findRouteToTarget(Vector3D targetCoordinate);
30 
31 private:
32  Eigen::MatrixXd mCLpoints;
33  BranchListPtr mBranchListPtr;
34  BranchPtr mProjectedBranchPtr;
35  int mProjectedIndex;
36  std::vector< Eigen::Vector3d > mRoutePositions;
37  std::vector<BranchPtr> mSearchBranchPtrVector;
38  std::vector<int> mSearchIndexVector;
39  void smoothPositions();
40 };
41 
42 double findDistance(Eigen::MatrixXd p1, Eigen::MatrixXd p2);
43 
44 } /* namespace cx */
45 
46 #endif // CXROUTETOTARGET_H
boost::shared_ptr< class RouteToTarget > RouteToTargetPtr
void findClosestPointInBranches(Vector3D targetCoordinate)
boost::shared_ptr< class BranchList > BranchListPtr
void setCenterline(vtkPolyDataPtr centerline)
void processCenterline(vtkPolyDataPtr centerline)
boost::shared_ptr< class Branch > BranchPtr
double findDistance(Eigen::MatrixXd p1, Eigen::MatrixXd p2)
vtkSmartPointer< class vtkPolyData > vtkPolyDataPtr
void searchBranchUp(BranchPtr searchBranchPtr, int startIndex)
vtkPolyDataPtr findRouteToTarget(Vector3D targetCoordinate)
Eigen::Vector3d Vector3D
Vector3D is a representation of a point or vector in 3D.
Definition: cxVector3D.h:63
vtkPolyDataPtr addVTKPoints()
std::vector< Eigen::Matrix4d > M4Vector
Eigen::MatrixXd getCenterlinePositions(vtkPolyDataPtr centerline)