CustusX  20.03-rc1
An IGT application
cxAirwaysFromCenterline.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 
12 #ifndef CXAIRWAYSFROMCENTERLINE_H
13 #define CXAIRWAYSFROMCENTERLINE_H
14 
15 #include "cxMesh.h"
16 #include <QDomElement>
17 #include "org_custusx_filter_airwaysfromcenterline_Export.h"
18 
19 namespace cx
20 {
21 
22 typedef std::vector< Eigen::Matrix4d > M4Vector;
23 typedef boost::shared_ptr<class RouteToTarget> RouteToTargetPtr;
24 typedef boost::shared_ptr<class BranchList> BranchListPtr;
25 typedef boost::shared_ptr<class Branch> BranchPtr;
26 
27 
28 class org_custusx_filter_airwaysfromcenterline_EXPORT AirwaysFromCenterline
29 {
30 public:
32  virtual ~AirwaysFromCenterline();
33  Eigen::MatrixXd getCenterlinePositions(vtkPolyDataPtr centerline_r);
34  void processCenterline(vtkPolyDataPtr centerline_r);
35  vtkPolyDataPtr generateTubes();
36  vtkImageDataPtr initializeAirwaysVolume();
37  vtkImageDataPtr addSpheresAlongCenterlines(vtkImageDataPtr airwaysVolumePtr);
38  vtkImageDataPtr addSphereToImage(vtkImageDataPtr airwaysVolumePtr, double position[3], double radius);
39  vtkPolyDataPtr addVTKPoints(std::vector< Eigen::Vector3d > positions);
40  vtkPolyDataPtr getVTKPoints();
41 
42 private:
43  Eigen::MatrixXd mCLpoints;
44  BranchListPtr mBranchListPtr;
45  double mOrigin[3];
46  Vector3D mSpacing;
47  double mBounds[6];
48  Eigen::Array3i mDim;
49  double mAirwaysVolumeBoundaryExtention;
50  double mAirwaysVolumeBoundaryExtentionTracheaStart;
51  double mAirwaysVolumeSpacing;
52 
53 };
54 
55 typedef boost::shared_ptr<AirwaysFromCenterline> AirwaysFromCenterlinePtr;
56 
57 } /* namespace cx */
58 
59 #endif // CXAIRWAYSFROMCENTERLINE_H
boost::shared_ptr< AirwaysFromCenterline > AirwaysFromCenterlinePtr
boost::shared_ptr< class RouteToTarget > RouteToTargetPtr
Definition: cxAccusurf.h:12
boost::shared_ptr< class BranchList > BranchListPtr
boost::shared_ptr< class Branch > BranchPtr
vtkSmartPointer< vtkPolyData > vtkPolyDataPtr
Eigen::Vector3d Vector3D
Vector3D is a representation of a point or vector in 3D.
Definition: cxVector3D.h:42
std::vector< Eigen::Matrix4d > M4Vector
vtkSmartPointer< class vtkImageData > vtkImageDataPtr
Namespace for all CustusX production code.