#ifndef manualContourModel_h #define manualContourModel_h #include "vtkRenderWindow.h" #include "vtkRenderer.h" #include "vtkRenderWindowInteractor.h" //extremely important with VC++ don't remove ! #include "vtkCommand.h" #include "vtkPolyData.h" #include "vtkCellArray.h" #include "vtkPolyDataMapper.h" #include "vtkInteractorObserver.h" #include "vtkInteractorStyleImage.h" #include #include #include #include #include #include #include "wxVTKRenderWindowInteractor.h" //-- #include #include "wxVtkBaseView.h" #include "marTypes.h" #include "manualPoint.h" #include "manualBaseModel.h" // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- class creaMaracasVisu_EXPORT manualContourModel : public manualBaseModel { public: manualContourModel(); virtual ~manualContourModel(); virtual manualContourModel * Clone(); void CopyAttributesTo( manualContourModel *cloneObject ); void Open(FILE *ff); // virtual virtual void Save(FILE *ff); // virtual virtual int GetTypeModel(); // virtual virtual int AddPoint(double x,double y,double z); virtual int InsertPoint(double x,double y,double z); //JSTG 25-04-08 ------------------------------------------------------- virtual void InsertPoint_id(int id, double x,double y,double z); //--------------------------------------------------------------------- virtual void AddManualPoint( manualPoint* theManualPoint ); virtual void Transform_Ax_Plus_B (double Ax, double Bx, double Ay, double By); virtual void DeletePoint(int i); virtual void DeleteAllPoints(); virtual void MovePoint(int i,double dx,double dy,double dz); virtual void MoveLstPoints(double dx,double dy,double dz); virtual void MoveAllPoints(double dx,double dy,double dz); virtual int GetIdPoint(double x, double y, double z, int i_range,int type); virtual manualPoint* GetManualPoint(int id); virtual int GetSizeLstPoints(); int GetNumberOfPointsSpline(); virtual void SetNumberOfPointsSpline(int size); virtual void UpdateSpline(); void SetCloseContour(bool closeContour); bool IfCloseContour(); //JSTG 25-02-08 ----------------------------------------------------------------- //void GetSplinePoint(double t, double &x, double &y, double &z); //Method Original //void GetSplineiPoint(int i, double &x, double &y, double &z); //Method Original //------------------------------------------------------------------------------- virtual double GetPathSize(); virtual double GetPathArea(); void GetNearestPointAndNormal(double *p, double *rp, double *rn); // JSTG 25-02-08 ----------------------------------------------------------------- virtual void GetSpline_i_Point(int i, double *x, double *y, double *z); void GetSpline_t_Point(double t, double *x, double *y, double *z); //-------------------------------------------------------------------------------- virtual std::vector ExploseModel( ); // CMRU 17-08-09 ----------------------------------------------------------------- /* * Assigns the parameter value to the label * @param newLabel New label of the contour */ void SetLabel(std::string newLabel); /* * Assigns the parameter value to the real size * @param newRealSize New real size in milimeters of the contour */ void SetRealSize(double newRealSize); /** * Returns the label of the contour */ std::string GetLabel(); /** * Returns the real size in milimeters of the contour */ double GetRealSize(); /* * Saves the label and the real size of the contour * @param ff File where the information is stored */ void SaveData(FILE *ff); /* * Reads and interprets the information of the label and the real size * @param ff File where the information is readed */ void OpenData(FILE *ff); //-------------------------------------------------------------------------------- //public: //int _sizePointsContour; //std::vector _lstPoints; bool _closeContour; vtkKochanekSpline *_cntSplineX; vtkKochanekSpline *_cntSplineY; vtkKochanekSpline *_cntSplineZ; //JSTG 25-02-08 ---------------------------------------- double _delta_JSTG; //------------------------------------------------------ //CMRU 17-08-09 ----------------------------------------------------------------- /** * Represents the real size in milimeters of the contour */ double _realSize; /** * Represents the label associated with the contour */ std::string _label; //-------------------------------------------------------------------------------- }; #endif // manualContourModel_h