1 #ifndef manualContourModel_h
2 #define manualContourModel_h
4 #include "vtkRenderWindow.h"
6 #include "vtkRenderer.h"
7 #include "vtkRenderWindowInteractor.h" //extremely important with VC++ don't remove !
8 #include "vtkCommand.h"
9 #include "vtkPolyData.h"
10 #include "vtkCellArray.h"
11 #include "vtkPolyDataMapper.h"
12 #include "vtkInteractorObserver.h"
13 #include "vtkInteractorStyleImage.h"
14 #include <vtkKochanekSpline.h>
16 #include <vtkCellPicker.h>
19 #include <vtkCamera.h>
20 #include <vtkPolyLine.h>
21 #include <vtkDataSetMapper.h>
22 #include <vtkUnstructuredGrid.h>
24 #include "wxVTKRenderWindowInteractor.h"
30 #include "wxVtkBaseView.h"
32 #include "manualPoint.h"
35 // ----------------------------------------------------------------------------
36 // ----------------------------------------------------------------------------
37 // ----------------------------------------------------------------------------
40 class creaMaracasVisu_EXPORT manualContourModel
44 virtual ~manualContourModel();
46 virtual manualContourModel * Clone();
47 void CopyAttributesTo( manualContourModel *cloneObject );
48 virtual void Open(FILE *ff); // virtual
49 virtual void OpenAndTransformSpacing(FILE *ff, double imgSpac[3], double roiSpac[3]);
50 virtual void OpenAndTransformDimension(FILE *ff, int imgDim[3], int roiDim[3]);
51 virtual void Save(FILE *ff); // virtual
52 virtual int GetTypeModel(); // virtual
54 int AddPoint(double x,double y,double z);
55 int InsertPoint(double x,double y,double z);
56 //JSTG 25-04-08 -------------------------------------------------------
57 void InsertPoint_id(int id, double x,double y,double z);
58 //---------------------------------------------------------------------
59 void AddManualPoint( manualPoint* theManualPoint );
61 void DeletePoint(int i);
62 void DeleteAllPoints();
64 void MovePoint(int i,double dx,double dy,double dz);
65 void MoveLstPoints(double dx,double dy,double dz);
66 void MoveAllPoints(double dx,double dy,double dz);
68 int GetIdPoint(double x, double y, double z, int i_range,int type);
69 manualPoint* GetManualPoint(int id);
70 int GetSizeLstPoints();
71 int GetNumberOfPointsSpline();
72 void SetNumberOfPointsSpline(int size);
74 virtual void UpdateSpline();
75 void SetCloseContour(bool closeContour);
76 bool IfCloseContour();
77 //JSTG 25-02-08 -----------------------------------------------------------------
78 //void GetSplinePoint(double t, double &x, double &y, double &z); //Method Original
79 //void GetSplineiPoint(int i, double &x, double &y, double &z); //Method Original
80 //-------------------------------------------------------------------------------
84 void GetNearestPointAndNormal(double *p, double *rp, double *rn);
86 // JSTG 25-02-08 -----------------------------------------------------------------
87 virtual void GetSpline_i_Point(int i, double *x, double *y, double *z);
88 void GetSpline_t_Point(double t, double *x, double *y, double *z);
89 //--------------------------------------------------------------------------------
91 virtual std::vector<manualContourModel*> ExploseModel( );
94 int _sizePointsContour;
95 std::vector<manualPoint*> _lstPoints;
97 vtkKochanekSpline *_cntSplineX;
98 vtkKochanekSpline *_cntSplineY;
99 vtkKochanekSpline *_cntSplineZ;
101 //JSTG 25-02-08 ----------------------------------------
103 //------------------------------------------------------
108 #endif // manualContourModel_h