1 #ifndef CXROUTETOTARGET_H 2 #define CXROUTETOTARGET_H 4 #include "org_custusx_filter_routetotarget_Export.h" 13 typedef std::vector< Eigen::Matrix4d >
M4Vector;
16 typedef boost::shared_ptr<class Branch>
BranchPtr;
25 Eigen::MatrixXd getCenterlinePositions(
vtkPolyDataPtr centerline_r);
26 void processCenterline(
MeshPtr mesh);
27 void findClosestPointInBranches(
Vector3D targetCoordinate_r);
28 void findRoutePositions();
29 void searchBranchUp(BranchPtr searchBranchPtr,
int startIndex);
32 vtkPolyDataPtr addVTKPoints(std::vector< Eigen::Vector3d > positions);
33 std::vector< Eigen::Vector3d > getBranchPositions(BranchPtr branchPtr,
int startIndex);
35 double calculateRouteLength(std::vector< Eigen::Vector3d > route);
36 void makeMarianaCenterlineFile(QString filename);
37 QJsonArray makeMarianaCenterlineJSON();
41 Eigen::MatrixXd mCLpoints;
42 BranchListPtr mBranchListPtr;
43 BranchPtr mProjectedBranchPtr;
46 std::vector< Eigen::Vector3d > mRoutePositions;
47 std::vector< Eigen::Vector3d > mExtendedRoutePositions;
48 std::vector< int > mBranchingIndex;
49 std::vector<BranchPtr> mSearchBranchPtrVector;
50 std::vector<int> mSearchIndexVector;
51 std::vector<Eigen::Vector3d> smoothBranch(BranchPtr branchPtr,
int startIndex, Eigen::MatrixXd startPosition);
55 double findDistance(Eigen::MatrixXd p1, Eigen::MatrixXd p2);
59 #endif // CXROUTETOTARGET_H boost::shared_ptr< class RouteToTarget > RouteToTargetPtr
double findDistanceToLine(Eigen::MatrixXd point, Eigen::MatrixXd line)
boost::shared_ptr< class VisServices > VisServicesPtr
boost::shared_ptr< class BranchList > BranchListPtr
boost::shared_ptr< class Branch > BranchPtr
double findDistance(Eigen::MatrixXd p1, Eigen::MatrixXd p2)
vtkSmartPointer< vtkPolyData > vtkPolyDataPtr
Eigen::Vector3d Vector3D
Vector3D is a representation of a point or vector in 3D.
std::vector< Eigen::Matrix4d > M4Vector
boost::shared_ptr< class Mesh > MeshPtr
Namespace for all CustusX production code.
boost::shared_ptr< class PointMetric > PointMetricPtr