NorMIT-nav  18.04
An IGT application
AngleCorrection.h
Go to the documentation of this file.
1 #ifndef ANGLE_CORRECTION_IMPL_H
2 #define ANGLE_CORRECTION_IMPL_H
3 
4 #include "spline3d.hpp"
5 
6 
7 typedef vector<Spline3D<double> > vectorSpline3dDouble;
9 
10 
11 
13 {
14 public:
17  void setInput(vtkSmartPointer<vtkPolyData> vpd_centerline, const char* image_prefix , double Vnyq, double cutoff, int nConvolutions, double uncertainty_limit=0.0, double minArrowDist= 1.0);
18  void setInput(const char* centerline,const char* image_prefix, double Vnyq, double cutoff,int nConvolutions, double uncertainty_limit=0.0, double minArrowDist= 1.0);
19  bool calculate();
20  vtkSmartPointer<vtkPolyData> getOutput();
22  void writeDirectionToVtkFile(const char* filename);
23  int getIntersections(){return mIntersections;}
24  int getBloodVessels(){return mBloodVessels-mBloodVesselsRemoved;}
25  int getNumOfStepsRan(){return mNumOfStepsRan;}
26 
27 private:
28  void setInput(vtkSmartPointer<vtkPolyData> vpd_centerline, vector<MetaImage<inData_t> >* velData, double Vnyq, double cutoff, int nConvolutions, double uncertainty_limit=0.0, double minArrowDist= 1.0);
29  void angle_correction_impl(vtkSmartPointer<vtkPolyData> vpd_centerline, vector<MetaImage<inData_t> >* images , double Vnyq, double cutoff, int nConvolutions);
30  vtkSmartPointer<vtkPolyData> computeVtkPolyData( vectorSpline3dDoublePtr splines, double uncertainty_limit, double minArrowDist);
31  bool EqualVtkPolyData( vtkSmartPointer<vtkPolyData> leftHandSide, vtkSmartPointer<vtkPolyData> rightHandSide);
32 
33  vtkSmartPointer<vtkPolyData> mClData;
34  vector<MetaImage<inData_t> > * mVelDataPtr;
35  std::string mVelImagePrefix;
36  double mVnyq;
37  double mCutoff;
38  int mnConvolutions;
39  double mUncertainty_limit;
40  double mMinArrowDist;
41 
42  vtkSmartPointer<vtkPolyData> mOutput;
43 
44  vectorSpline3dDoublePtr mClSplinesPtr;
45  bool mUpdate1;
46  bool mUpdate2;
47  bool mValidInput;
48 
49  int mIntersections;
50  int mBloodVessels;
51  int mNumOfStepsRan;
52  int mBloodVesselsRemoved;
53 
54 };
55 #endif /* ANGLE_CORRECTION_IMPL_H */
void setInput(vtkSmartPointer< vtkPolyData > vpd_centerline, const char *image_prefix, double Vnyq, double cutoff, int nConvolutions, double uncertainty_limit=0.0, double minArrowDist=1.0)
vector< Spline3D< double > > vectorSpline3dDouble
void writeDirectionToVtkFile(const char *filename)
vtkSmartPointer< vtkPolyData > getOutput()
vectorSpline3dDouble getClSpline()
vectorSpline3dDouble * vectorSpline3dDoublePtr