1 #ifndef __Propagation_h_INCLUDED__
2 #define __Propagation_h_INCLUDED__
4 #include "vtkImageData.h"
11 #include "../manualContour.h"
20 void set_vec ( double val );
21 void set_var ( double val );
22 double get_vec ( int id );
25 void copyVector ( std::vector<Vector>*vec1, std::vector<Vector>*vec2 );
26 void printVector ( std::vector<Vector>*vec1 );
27 void set_x ( double val );
28 void set_y ( double val );
29 void set_z ( double val );
30 void set_plane ( int val );
31 double get_x ( int id );
33 double get_y ( int id );
35 double get_z ( int id );
39 std::vector<double> getVec();
44 std::vector<double> _vec;
45 std::vector<double> _vecX;
46 std::vector<double> _vecY;
47 std::vector<double> _vecZ;
50 class MARACASVISULIB_EXPORTS PropContour
57 vtkImageData* method_RBF ( double rad, std::vector<double>*CoordX, std::vector<double>*CoordY,
58 std::vector<double>*CoordZ );
59 vtkImageData* method_RBF_3D ( double rad, std::vector<double>*CoordX, std::vector<double>*CoordY,
60 std::vector<double>*CoordZ );
61 vtkImageData* method_RBF_3D_ThinPlate ( double rad, std::vector<double>*CoordX, std::vector<double>*CoordY,
62 std::vector<double>*CoordZ );
65 int VectorDirection ( std::vector<double>*InX, std::vector<double>*InY, std::vector<double>*InZ );
66 void VectorOrder ( int dir, int posinic, std::vector<double>*InX, std::vector<double>*InY, std::vector<double>*InZ);
67 void ReadKeyContour ( FILE* fd );
68 void ResetKeyContours ( );
69 void SetKeyContours ( std::vector<double>*InX, std::vector<double>*InY, std::vector<double>*InZ );
70 vtkImageData* CalculeSplinePropagation ( );
71 void GetKeyContours ( std::vector<double>*KeyX, std::vector<double>*KeyY, std::vector<double>*KeyZ, std::vector<int>*KeyS );
72 void GetPropagatedContours ( std::vector<Vector>*planevec );
73 void GetIdContour ( int id, std::vector<double>*vecX, std::vector<double>*vecY, std::vector<double>*vecZ );
74 void SetInterpNumber ( int val );
75 int FindIdWithZ ( double z );
80 double RBF_WendLand ( double norm, double m_rad );
81 double RBF_ThinPlate ( double norm );
82 double RBF_ThinPlate_3D ( double norm );
85 void PreparePointsForSpline ( std::vector<double>*InX, std::vector<double>*InY, std::vector<double>*InZ, std::vector<int>*Sizes );
86 vtkImageData* method_Spline ( std::vector<double>*InX, std::vector<double>*InY, std::vector<double>*InZ, std::vector<int>*Sizes );
87 void ResetPlaneVector();
92 vtkImageData *imagedataValue;
93 manualContourModel *_mContourModel;
95 std::vector<double> _KeyContourX;
96 std::vector<double> _KeyContourY;
97 std::vector<double> _KeyContourZ;
98 std::vector<int> _KeyContourSizes;
100 std::vector<Vector> _planevector;
102 #endif // __Propagation_h_INCLUDED__