]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModel.h
v1.0.3 BUG 1404
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / manualContour / manualContourModel.h
index 4cb8cb995f7d48ca960b47ffeb339ed5f370024f..16514a42ebe5397f2369b92254b44c47c2d0f9c8 100644 (file)
@@ -30,6 +30,7 @@
 #include "wxVtkBaseView.h"
 #include "marTypes.h"
 #include "manualPoint.h"
+#include "manualBaseModel.h"
 
 
 // ----------------------------------------------------------------------------
@@ -37,7 +38,7 @@
 // ----------------------------------------------------------------------------
 
 
-class creaMaracasVisu_EXPORT manualContourModel
+class creaMaracasVisu_EXPORT manualContourModel : public manualBaseModel
 {
 public:
        manualContourModel();
@@ -45,30 +46,30 @@ public:
 
        virtual manualContourModel * Clone();
        void CopyAttributesTo( manualContourModel *cloneObject );
-       virtual void Open(FILE *ff);    // virtual
+       void Open(FILE *ff);    // virtual
        virtual void Save(FILE *ff);    // virtual
        virtual int GetTypeModel();                     // virtual 
 
-       int                             AddPoint(double x,double y,double z);
-       int                             InsertPoint(double x,double y,double z);
+       virtual int                             AddPoint(double x,double y,double z);
+       virtual int                             InsertPoint(double x,double y,double z);
 //JSTG 25-04-08 -------------------------------------------------------
-       void                    InsertPoint_id(int id, double x,double y,double z);
+       virtual void                    InsertPoint_id(int id, double x,double y,double z);
 //---------------------------------------------------------------------
-       void                    AddManualPoint( manualPoint* theManualPoint );
-       void                    Transform_Ax_Plus_B (double Ax, double Bx, double Ay, double By);
+       virtual void                    AddManualPoint( manualPoint* theManualPoint );
+       virtual void                    Transform_Ax_Plus_B (double Ax, double Bx, double Ay, double By);
 
-       void                    DeletePoint(int i);
-       void                    DeleteAllPoints();
+       virtual void                    DeletePoint(int i);
+       virtual void                    DeleteAllPoints();
 
-       void                    MovePoint(int i,double dx,double dy,double dz);
-       void                    MoveLstPoints(double dx,double dy,double dz);
-       void                    MoveAllPoints(double dx,double dy,double dz);
+       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);
 
-       int                             GetIdPoint(double x, double y, double z, int i_range,int type);
-       manualPoint*    GetManualPoint(int id);
-       int                             GetSizeLstPoints();
+       virtual int                             GetIdPoint(double x, double y, double z, int i_range,int type);
+       virtual manualPoint*    GetManualPoint(int id);
+       virtual int                             GetSizeLstPoints();
        int                             GetNumberOfPointsSpline();
-       void                    SetNumberOfPointsSpline(int size);
+       virtual void                    SetNumberOfPointsSpline(int size);
 
        virtual void    UpdateSpline();
        void                    SetCloseContour(bool closeContour);
@@ -77,8 +78,8 @@ public:
        //void                  GetSplinePoint(double t, double &x, double &y, double &z);      //Method Original
        //void                  GetSplineiPoint(int i, double &x, double &y, double &z);        //Method Original
 //-------------------------------------------------------------------------------
-       double                  GetPathSize();
-       double                  GetPathArea();
+       virtual double                  GetPathSize();
+       virtual double                  GetPathArea();
 
        void                    GetNearestPointAndNormal(double *p, double *rp,  double *rn);
        
@@ -87,11 +88,48 @@ public:
        void                    GetSpline_t_Point(double t, double *x, double *y, double *z);
 //--------------------------------------------------------------------------------
 
-       virtual std::vector<manualContourModel*> ExploseModel(  );
+       virtual std::vector<manualBaseModel*> ExploseModel(  );
 
-private:
-       int                                                     _sizePointsContour;
-       std::vector<manualPoint*>       _lstPoints;
+// 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<manualPoint*>     _lstPoints;
        bool                                            _closeContour;
     vtkKochanekSpline                  *_cntSplineX;
     vtkKochanekSpline                  *_cntSplineY;
@@ -101,6 +139,18 @@ private:
        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;
+//--------------------------------------------------------------------------------
+
 };