]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModel.h
#2976 creaMaracasVisu Feature New Normal - ManualContourModel_Box
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / manualContour / manualContourModel.h
index 28493954eadb982e93ae7aa41966c5cd161be363..ca053fdbce90c6ff38b98824c8f8599fb3ac82ad 100644 (file)
@@ -1,3 +1,28 @@
+/*# ---------------------------------------------------------------------
+#
+# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
+#                        pour la Sant�)
+# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
+# Previous Authors : Laurent Guigues, Jean-Pierre Roux
+# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
+#
+#  This software is governed by the CeCILL-B license under French law and
+#  abiding by the rules of distribution of free software. You can  use,
+#  modify and/ or redistribute the software under the terms of the CeCILL-B
+#  license as circulated by CEA, CNRS and INRIA at the following URL
+#  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+#  or in the file LICENSE.txt.
+#
+#  As a counterpart to the access to the source code and  rights to copy,
+#  modify and redistribute granted by the license, users are provided only
+#  with a limited warranty  and the software's author,  the holder of the
+#  economic rights,  and the successive licensors  have only  limited
+#  liability.
+#
+#  The fact that you are presently reading this means that you have had
+#  knowledge of the CeCILL-B license and that you accept its terms.
+# ------------------------------------------------------------------------ */
+
 #ifndef manualContourModel_h
 #define manualContourModel_h
 
@@ -30,6 +55,7 @@
 #include "wxVtkBaseView.h"
 #include "marTypes.h"
 #include "manualPoint.h"
+#include "manualBaseModel.h"
 
 
 // ----------------------------------------------------------------------------
@@ -37,7 +63,7 @@
 // ----------------------------------------------------------------------------
 
 
-class creaMaracasVisu_EXPORT manualContourModel
+class creaMaracasVisu_EXPORT manualContourModel : public manualBaseModel
 {
 public:
        manualContourModel();
@@ -45,54 +71,90 @@ public:
 
        virtual manualContourModel * Clone();
        void CopyAttributesTo( manualContourModel *cloneObject );
-       virtual void Open(FILE *ff);    // virtual
-       virtual void OpenAndTransformSpacing(FILE *ff, double imgSpac[3], double roiSpac[3]);
-       virtual void OpenAndTransformDimension(FILE *ff, int imgDim[3], int roiDim[3]);
+       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 );
+       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();
-       int                             GetNumberOfPointsSpline();
-       void                    SetNumberOfPointsSpline(int size);
+       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();
+       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
 //-------------------------------------------------------------------------------
-       double                  GetPathSize();
-       double                  GetPathArea();
+       virtual double                  GetPathSize();
+       virtual double                  GetPathArea();
 
-       void                    GetNearestPointAndNormal(double *p, double *rp,  double *rn);
+       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 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<manualContourModel*> ExploseModel(  );
+       virtual std::vector<manualBaseModel*> 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);
+//--------------------------------------------------------------------------------
 
-private:
-       int                                                     _sizePointsContour;
-       std::vector<manualPoint*>       _lstPoints;
+//public:
+       //int                                                   _sizePointsContour;
+       //std::vector<manualPoint*>     _lstPoints;
        bool                                            _closeContour;
     vtkKochanekSpline                  *_cntSplineX;
     vtkKochanekSpline                  *_cntSplineY;
@@ -102,6 +164,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;
+//--------------------------------------------------------------------------------
+
 };