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 BranchListPtr removePositionsForLocalRegistration(Eigen::MatrixXd trackingPositions,
double maxDistance);
49 vtkPolyDataPtr createVtkPolyDataFromBranches(
bool fullyConnected =
false,
bool straightBranches =
false)
const;
52 std::pair<Eigen::MatrixXd,Eigen::MatrixXd > org_custusx_registration_method_bronchoscopy_EXPORT
findConnectedPointsInCT(
int startIndex , Eigen::MatrixXd positionsNotUsed);
53 Eigen::MatrixXd
sortMatrix(
int rowNumber, Eigen::MatrixXd matrix);
54 Eigen::MatrixXd org_custusx_registration_method_bronchoscopy_EXPORT
eraseCol(
int removeIndex, Eigen::MatrixXd positions);
55 std::pair<Eigen::MatrixXd::Index, double> org_custusx_registration_method_bronchoscopy_EXPORT
dsearch(Eigen::Vector3d p, Eigen::MatrixXd positions);
56 std::pair<std::vector<Eigen::MatrixXd::Index>, Eigen::VectorXd > org_custusx_registration_method_bronchoscopy_EXPORT
dsearchn(Eigen::MatrixXd p1, Eigen::MatrixXd p2);
57 std::vector<Eigen::Vector3d> org_custusx_registration_method_bronchoscopy_EXPORT
smoothBranch(
BranchPtr branchPtr,
int startIndex, Eigen::MatrixXd startPosition);
std::vector< Eigen::Vector3d > smoothBranch(BranchPtr branchPtr, int startIndex, Eigen::MatrixXd startPosition)
std::pair< Eigen::MatrixXd, Eigen::MatrixXd > findConnectedPointsInCT(int startIndex, Eigen::MatrixXd positionsNotUsed)
Eigen::MatrixXd eraseCol(int removeIndex, Eigen::MatrixXd positions)
double bendingDirectionToBronchoscopeRotation(Vector3D bendingDirection, Vector3D parentBranchOrientation, double parentRotation)
boost::shared_ptr< class BranchList > BranchListPtr
boost::shared_ptr< class Branch > BranchPtr
Vector3D calculateBronchoscopeBendingDirection(Vector3D A, Vector3D B)
vtkSmartPointer< vtkPolyData > vtkPolyDataPtr
Eigen::Vector3d Vector3D
Vector3D is a representation of a point or vector in 3D.
Eigen::MatrixXd sortMatrix(int rowNumber, Eigen::MatrixXd matrix)
std::pair< std::vector< Eigen::MatrixXd::Index >, Eigen::VectorXd > dsearchn(Eigen::MatrixXd p1, Eigen::MatrixXd p2)
std::vector< Eigen::Matrix4d > M4Vector
std::pair< Eigen::MatrixXd::Index, double > dsearch(Eigen::Vector3d p, Eigen::MatrixXd positions)
Namespace for all CustusX production code.