CustusX  20.03-rc1
An IGT application
cxBronchoscopyRegistration.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 #ifndef BRONCHOSCOPYREGISTRATION_H_
12 #define BRONCHOSCOPYREGISTRATION_H_
13 
14 #include "org_custusx_registration_method_bronchoscopy_Export.h"
15 #include "cxBranchList.h"
16 #include <vector>
17 #include "vtkForwardDeclarations.h"
18 
19 typedef std::vector< Eigen::Matrix4d > M4Vector;
20 
21 
22 namespace cx
23 {
24 
25 typedef std::map<double, Transform3D> TimedTransformMap;
26 typedef boost::shared_ptr<class BranchList> BranchListPtr;
27 
28 class org_custusx_registration_method_bronchoscopy_EXPORT BronchoscopyRegistration
29 {
30  BranchListPtr mBranchListPtr;
31  bool mCenterlineProcessed;
32 
33 public:
35  vtkPolyDataPtr processCenterline(vtkPolyDataPtr centerline, Transform3D rMd, int numberOfGenerations = 0);
36  BranchListPtr processCenterlineImage2Image(vtkPolyDataPtr centerline, int numberOfGenerations = 0);
37  Eigen::Matrix4d runBronchoscopyRegistration(TimedTransformMap trackingData_prMt, Transform3D old_rMpr, double maxDistanceForLocalRegistration);
38  Eigen::Matrix4d runBronchoscopyRegistrationImage2Image(vtkPolyDataPtr centerlineFixed, vtkPolyDataPtr centerlineMoving);
39  bool isCenterlineProcessed();
40  virtual ~BronchoscopyRegistration();
41 };
42 
44 Eigen::Matrix4d registrationAlgorithm(BranchListPtr branches, M4Vector Tnavigation);
45 Eigen::Matrix4d registrationAlgorithmImage2Image(BranchListPtr branchesFixed, BranchListPtr branchesMoving);
46 std::vector<Eigen::MatrixXd::Index> dsearch2n(Eigen::MatrixXd pos1, Eigen::MatrixXd pos2, Eigen::MatrixXd ori1, Eigen::MatrixXd ori2);
47 vtkPointsPtr convertTovtkPoints(Eigen::MatrixXd positions);
48 Eigen::Matrix4d performLandmarkRegistration(vtkPointsPtr source, vtkPointsPtr target, bool* ok);
49 std::pair<Eigen::MatrixXd , Eigen::MatrixXd> RemoveInvalidData(Eigen::MatrixXd positionData, Eigen::MatrixXd orientationData);
51 org_custusx_registration_method_bronchoscopy_EXPORT Eigen::MatrixXd makeTransformedMatrix(vtkPolyDataPtr linesPolyData, Transform3D rMd = Transform3D::Identity());
52 
53 }//namespace cx
54 
55 #endif /* BRONCHOSCOPYREGISTRATION_H_ */
Transform3D Transform3D
Transform3D is a representation of an affine 3D transform.
boost::shared_ptr< class BranchList > BranchListPtr
vtkSmartPointer< vtkPoints > vtkPointsPtr
std::pair< Eigen::MatrixXd, Eigen::MatrixXd > RemoveInvalidData(Eigen::MatrixXd positionData, Eigen::MatrixXd orientationData)
vtkPointsPtr convertTovtkPoints(Eigen::MatrixXd positions)
Eigen::Matrix4d registrationAlgorithmImage2Image(BranchListPtr branchesFixed, BranchListPtr branchesMoving)
std::vector< Eigen::MatrixXd::Index > dsearch2n(Eigen::MatrixXd pos1, Eigen::MatrixXd pos2, Eigen::MatrixXd ori1, Eigen::MatrixXd ori2)
M4Vector excludeClosePositions(M4Vector Tnavigation)
vtkSmartPointer< vtkPolyData > vtkPolyDataPtr
Eigen::Matrix4d performLandmarkRegistration(vtkPointsPtr source, vtkPointsPtr target)
std::vector< Eigen::Matrix4d > M4Vector
std::vector< Eigen::Matrix4d > M4Vector
Eigen::MatrixXd makeTransformedMatrix(vtkPolyDataPtr linesPolyData, Transform3D rMd)
makeTransformedMatrix This method takes an vtkpolydata as input, runs it through a transform and retu...
Eigen::Matrix4d registrationAlgorithm(BranchListPtr branches, M4Vector Tnavigation, Transform3D old_rMpr)
std::map< double, Transform3D > TimedTransformMap
Namespace for all CustusX production code.