#ifndef __Propagation_h_INCLUDED__ #define __Propagation_h_INCLUDED__ #include "vtkImageData.h" /* EED 03/07/2008 #include "itkMatrix.h" */ #include "marTypes.h" #include "manualContour.h" #include "time.h" #include class Vector { public: Vector (); ~Vector (); void set_vec ( double val ); void set_var ( double val ); double get_vec ( int id ); double get_var ( ); int getsize_vec ( ); void copyVector ( std::vector*vec1, std::vector*vec2 ); void printVector ( std::vector*vec1 ); void set_x ( double val ); void set_y ( double val ); void set_z ( double val ); void set_plane ( int val ); double get_x ( int id ); int getsize_x ( ); double get_y ( int id ); int getsize_y ( ); double get_z ( int id ); int getsize_z ( ); int get_plane ( ); void resetVec ( ); std::vector getVec(); private: double _var; int _plane; std::vector _vec; std::vector _vecX; std::vector _vecY; std::vector _vecZ; }; class creaMaracasVisu_EXPORT PropContour { public: PropContour(); ~PropContour(); /* EED 03/07/2008 vtkImageData* method_RBF ( double rad, std::vector*CoordX, std::vector*CoordY, std::vector*CoordZ ); vtkImageData* method_RBF_3D ( double rad, std::vector*CoordX, std::vector*CoordY, std::vector*CoordZ ); vtkImageData* method_RBF_3D_ThinPlate ( double rad, std::vector*CoordX, std::vector*CoordY, std::vector*CoordZ ); */ int VectorDirection ( std::vector*InX, std::vector*InY, std::vector*InZ ); void VectorOrder ( int dir, int posinic, std::vector*InX, std::vector*InY, std::vector*InZ); void ReadKeyContour ( FILE* fd ); void ResetKeyContours ( ); void SetKeyContours ( std::vector*InX, std::vector*InY, std::vector*InZ ); vtkImageData* CalculeSplinePropagation ( ); void GetKeyContours ( std::vector*KeyX, std::vector*KeyY, std::vector*KeyZ, std::vector*KeyS ); void GetPropagatedContours ( std::vector*planevec ); void GetIdContour ( int id, std::vector*vecX, std::vector*vecY, std::vector*vecZ ); void SetInterpNumber ( int val ); int FindIdWithZ ( double z ); private: /* EED 03/07/2008 double RBF_WendLand ( double norm, double m_rad ); double RBF_ThinPlate ( double norm ); double RBF_ThinPlate_3D ( double norm ); */ void PreparePointsForSpline ( std::vector*InX, std::vector*InY, std::vector*InZ, std::vector*Sizes ); vtkImageData* method_Spline ( std::vector*InX, std::vector*InY, std::vector*InZ, std::vector*Sizes ); void ResetPlaneVector(); int _interpnumber; int _dimImage[3]; vtkImageData *imagedataValue; manualContourModel *_mContourModel; std::vector _KeyContourX; std::vector _KeyContourY; std::vector _KeyContourZ; std::vector _KeyContourSizes; std::vector _planevector; }; #endif // __Propagation_h_INCLUDED__