]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBaseContour.h
#3058 creaMaracasVisu Feature New Normal - optimizing of manualContourView of a...
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / manualContour / manualViewBaseContour.h
index 799f424729f8053d3b86ece892ab36914f1d9ca3..1120152be15da3656d7f4ad19ecc2c2d666279c8 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 manualViewBaseContour_h
 #define manualViewBaseContour_h
 
 
 
 class creaMaracasVisu_EXPORT manualViewBaseContour{
+
+//---------------------------------------------------
+// PUBLIC METHODS & ATTS
+//---------------------------------------------------
+
 public:
        manualViewBaseContour();
        virtual ~manualViewBaseContour();
@@ -59,7 +89,7 @@ public:
        virtual void Open(FILE *pFile);
 
        void    AddPoint();
-       void    AddPoint( manualViewPoint * manualViewPoint );
+       virtual void    AddPoint( manualViewPoint * manualViewPoint );
        void    InsertPoint(int id);
        void    DeleteContour();
        void    DeletePoint(int x, int y,int z);
@@ -95,12 +125,12 @@ public:
        void    UnSelectLstPoints();
        void    UnSelectAllPoints();
 
-       void    SetModel(manualContourModel *manContModel);
+       void    SetModel(manualBaseModel *manContModel);
        void    SetWxVtkBaseView(wxVtkBaseView *wxvtkbaseview);
 
        virtual void    Refresh();
        int             GetNumberOfPoints();                                            // ??? 
-       //int           GetNumberOfPointsSpline();                              //JSTG 25-02-08 In ContourModel is the same method 
+       //int   GetNumberOfPointsSpline();                                      //JSTG 25-02-08 In ContourModel is the same method 
        //void  SetNumberOfPointsSpline(int size);                      //JSTG 25-02-08 In ContourModel is the same method 
 
        void    CreateNewContour();
@@ -111,8 +141,8 @@ public:
        virtual bool    ifTouchContour(int x,int y, int z);
        void    UpdateColorActor();
 
-       void    SetRange(int range);
-       int             GetRange();
+       void    SetRange(double range);
+       double  GetRange();
        void    SetZ(int z);
        int             GetZ();
 
@@ -145,10 +175,11 @@ public:
        void    RemoveCompleteContourActor();
        virtual void    AddSplineActor();
        virtual void    RemoveSplineActor();
-       void    AddControlPoints();
-       void    RemoveControlPoints();  
+       virtual void    AddControlPoints();
+       virtual void    RemoveControlPoints();  
        void    AddTextActor();
        void    RemoveTextActor();
+       void InitTextActor();
 
        virtual manualViewBaseContour * Clone();
                        void                                    CopyAttributesTo( manualViewBaseContour *cloneObject );
@@ -158,48 +189,81 @@ public:
 
        virtual void                    ConstructVTKObjects();
 
+       void SetCellArray(bool type);
+//---------------------------------------------------
+// PRIVATE METHODS & ATTS
+//---------------------------------------------------
+
 private:
-       int                                                             _range;
-
-       wxVtkBaseView                                   *_wxvtkbaseview;
-       bool                                                    _selected;
-       bool                                                    *_editable;
-       bool                                                    _posibleSelected;
-       bool                                                    _viewControlPoints;
-
-
-       vtkPolyData                                             *_pd;
-       vtkActor                                                *_contourVtkActor;
-       vtkPolyDataMapper                               *_bboxMapper;
-
-       double                                                  _coulorEdit_r;
-       double                                                  _coulorEdit_g;
-       double                                                  _coulorEdit_b;
-       double                                                  _coulorNormal_r;
-       double                                                  _coulorNormal_g;
-       double                                                  _coulorNormal_b;
-       double                                                  _coulorSelection_r;
-       double                                                  _coulorSelection_g;
-       double                                                  _coulorSelection_b;
-       double                                                  _widthline;
+
+       vtkPolyData                                                     *_pd;
+       vtkCellArray                                            *_splineCell;
+       vtkCellArray                                            *_lineCell;
+       vtkActor                                                        *_contourVtkActor;
+       vtkPolyDataMapper                                       *_bboxMapper;
 
        void                    DeleteVtkObjects();
-       virtual void    RefreshText();
+       
 
+//---------------------------------------------------
+// PROTECTED METHODS & ATTS
+//---------------------------------------------------
 
 protected:
 
+       double                                                          _range;
+
+       double                                                          _coulorEdit_r;
+       double                                                          _coulorEdit_g;
+       double                                                          _coulorEdit_b;
+       double                                                          _coulorNormal_r;
+       double                                                          _coulorNormal_g;
+       double                                                          _coulorNormal_b;
+       double                                                          _coulorSelection_r;
+       double                                                          _coulorSelection_g;
+       double                                                          _coulorSelection_b;
+       double                                                          _widthline;
+
+       //
+       // Reference to VTKBaseView
+       //
+       wxVtkBaseView                                           *_wxvtkbaseview;
+
+       //
+       // Is the contour selected
+       //
+       bool                                                            _selected;
+       bool                                                            *_editable;
+       bool                                                            _posibleSelected;
+       bool                                                            _viewControlPoints;
+
        // text
-       bool                                                    _show_text;
-       int                                                             _id_viewPoint_for_text;
-       vtkTextActor                                    *_textActor;
-       manualContourModel                              *_manContModel;
-       vtkPoints                                               *_pts;
+       bool                                                            _show_text;
+       int                                                                     _id_viewPoint_for_text;
+       vtkTextActor                                            *_textActor;
+       vtkTextActor                                            *_textActor2;
+
+       //
+       // Contour model
+       //
+       manualBaseModel                                         *_manContModel;
+
+       vtkPoints                                                       *_pts;
 // JSTG 25-02-08 --------------------------------------------
-       int                                                             _sizePointsContour;
+       int                                                                     _sizePointsContour;
 //-----------------------------------------------------------
-       std::vector<manualViewPoint*>   _lstViewPoints;
-       double                                                  _spc[3];
+
+       //
+       // Control points list
+       //
+       std::vector<manualViewPoint*>           _lstViewPoints;
+
+       //
+       // Spacing
+       //
+       double                                                          _spc[3];
+
+       virtual void    RefreshText();
 
 };