CustusX  22.09
An IGT application
cxRouteToTargetFilterService.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 CXROUTETOTARGETFILTER_H
12 #define CXROUTETOTARGETFILTER_H
13 
14 #include "org_custusx_filter_routetotarget_Export.h"
15 
16 #include "cxPatientModelService.h"
17 #include "cxFilterImpl.h"
18 
19 class ctkPluginContext;
20 
21 namespace cx
22 {
23 
33 typedef boost::shared_ptr<class RouteToTarget> RouteToTargetPtr;
34 typedef boost::shared_ptr<class BranchList> BranchListPtr;
35 
36 class org_custusx_filter_routetotarget_EXPORT RouteToTargetFilter : public FilterImpl
37 {
38  Q_OBJECT
39  Q_INTERFACES(cx::Filter)
40 
41 public:
42  RouteToTargetFilter(VisServicesPtr services, bool createRouteInformationFile = false);
43  virtual ~RouteToTargetFilter() {}
44 
45  virtual QString getType() const;
46  virtual QString getName() const;
47  virtual QString getHelp() const;
48  static QString getNameSuffix();
49  static QString getNameSuffixExtension();
50  static QString getNameSuffixBloodVessel();
51  static QString getNameSuffixAirwayModel();
52  static QString getNameSuffixAirwayAndVesselRTT();
53 
54  std::vector< Eigen::Vector3d > getRoutePositions();
55  std::vector< double > getCameraRotation();
56 
57  virtual bool execute();
58  virtual bool postProcess();
59  virtual bool postProcessBloodVessels();
60  void setSmoothing(bool smoothing = true);
61 
62 protected:
63  virtual void createOptions();
64  virtual void createInputTypes();
65  virtual void createOutputTypes();
66 
67 private slots:
68 
69 private:
70  RouteToTargetPtr mRouteToTarget;
71  vtkPolyDataPtr mOutput;
72  vtkPolyDataPtr mExtendedRoute;
73  vtkPolyDataPtr mBloodVesselRoute;
74  vtkPolyDataPtr mAirwaysFromBloodVessel;
75  vtkPolyDataPtr mAirwayAndBloodVesselRoute;
76  BranchListPtr mBranchListPtr;
77  bool mGenerateFileWithRouteInformation;
78  bool mSmoothing;
79  BoolPropertyPtr getBloodVesselOption(QDomElement root);
80 };
81 typedef boost::shared_ptr<class RouteToTargetFilter> RouteToTargetFilterPtr;
82 
83 
84 } // namespace cx
85 
86 
87 
88 #endif // CXROUTETOTARGETFILTER_H
boost::shared_ptr< class RouteToTargetFilter > RouteToTargetFilterPtr
boost::shared_ptr< class RouteToTarget > RouteToTargetPtr
Definition: cxAccusurf.h:12
boost::shared_ptr< class VisServices > VisServicesPtr
Definition: cxMainWindow.h:40
boost::shared_ptr< class BranchList > BranchListPtr
vtkSmartPointer< vtkPolyData > vtkPolyDataPtr
boost::shared_ptr< class BoolProperty > BoolPropertyPtr
Namespace for all CustusX production code.