17 #include "org_custusx_registration_method_bronchoscopy_Export.h"
23 typedef std::vector< Eigen::Matrix4d >
M4Vector;
26 #define MAX_ROTATION_TO_TILT_DOWN_DEGREES 30 //Threshold between rotation direction of scope to tilt up or down in a bifurcation.
28 class org_custusx_registration_method_bronchoscopy_EXPORT
BranchList
30 std::vector<BranchPtr> mBranches;
36 void deleteAllBranches();
37 std::vector<BranchPtr> getBranches();
38 void findBranchesInCenterline(Eigen::MatrixXd positions_r,
bool sortByZindex =
true);
39 void selectGenerations(
int maxGeneration);
40 void findBronchoscopeRotation();
41 void calculateBronchoscopeRotation(
BranchPtr branch);
42 void smoothOrientations();
45 void interpolateBranchPositions(
double resolution);
46 void smoothBranchPositions(
int controlPointDistance);
47 void excludeClosePositionsInCTCenterline(
double minPointDistance);
48 void markLungLap(QString name,
Vector3D position);
49 void setLapName(
BranchPtr branch, QString name);
50 QString findClosestLungLap(
Vector3D position);
53 BranchListPtr removePositionsForLocalRegistration(Eigen::MatrixXd trackingPositions,
double maxDistance);
54 vtkPolyDataPtr createVtkPolyDataFromBranches(
bool fullyConnected =
false,
bool straightBranches =
false)
const;
57 std::pair<Eigen::MatrixXd,Eigen::MatrixXd > org_custusx_registration_method_bronchoscopy_EXPORT
findConnectedPointsInCT(
int startIndex , Eigen::MatrixXd positionsNotUsed);
58 Eigen::MatrixXd
sortMatrix(
int rowNumber, Eigen::MatrixXd matrix);
59 Eigen::MatrixXd org_custusx_registration_method_bronchoscopy_EXPORT
eraseCol(
int removeIndex, Eigen::MatrixXd positions);
60 std::pair<Eigen::MatrixXd::Index, double> org_custusx_registration_method_bronchoscopy_EXPORT
dsearch(Eigen::Vector3d p, Eigen::MatrixXd positions);
61 std::pair<std::vector<Eigen::MatrixXd::Index>, Eigen::VectorXd > org_custusx_registration_method_bronchoscopy_EXPORT
dsearchn(Eigen::MatrixXd p1, Eigen::MatrixXd p2);
62 std::vector<Eigen::Vector3d> org_custusx_registration_method_bronchoscopy_EXPORT
smoothBranch(
BranchPtr branchPtr,
int startIndex, Eigen::MatrixXd startPosition);