]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBaseContour.cpp
2345 creaMaracasVisu Feature Test Phase Normal Ruler01XY
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / manualContour / manualViewBaseContour.cpp
index e7e0bea99c93935d46a54d0ed684d997f52a815d..4a3daf76285f937bec47a54b3999b5184599562f 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.
+# ------------------------------------------------------------------------ */
+
 #include "manualViewBaseContour.h"
 
 
@@ -60,6 +85,7 @@ int manualViewBaseContour::GetType() // virtual
 //int manualViewCircle::GetType()                      3;
 //int manualViewStar::GetType()                                4;
 //int manualViewLine::GetType()                                6;
+//int manualViewPoints::GetType()                      7;
 
 
        return 0;
@@ -83,8 +109,8 @@ void manualViewBaseContour :: AddCompleteContourActor(  bool ifControlPoints )
         /*vtkRenderer * theRenderer = */  _wxvtkbaseview->GetRenderer();  // JPRx ??
         //Adding the spline
         AddSplineActor();
-
         AddTextActor();
+
         //Adding each control point
         if( ifControlPoints )
                AddControlPoints();
@@ -185,12 +211,18 @@ void manualViewBaseContour::AddControlPoints()
 // ----------------------------------------------------------------------------
 void manualViewBaseContour::AddTextActor()
 {
-       _wxvtkbaseview->GetRenderer()->AddActor2D( _textActor );
+       if(_show_text)
+       {
+               _wxvtkbaseview->GetRenderer()->AddActor2D( _textActor );
+       }
 }
 // ----------------------------------------------------------------------------
 void manualViewBaseContour::RemoveTextActor()
 {
-       _wxvtkbaseview->GetRenderer()->RemoveActor2D( _textActor );
+       if(_show_text)
+       {
+               _wxvtkbaseview->GetRenderer()->RemoveActor2D( _textActor );
+       }
 }
 // ----------------------------------------------------------------------------
 void manualViewBaseContour::DeleteVtkObjects()
@@ -230,33 +262,33 @@ double manualViewBaseContour::GetWidthLine()
 // ----------------------------------------------------------------------------
 void manualViewBaseContour::ConstructVTKObjects()
 {
+
+
 //JSTG 29-02-08 -----------------------------------------------
        //int i , nps = _sizePointsContour;
        int i;
        int nps = _manContModel->GetNumberOfPointsSpline();
 //-------------------------------------------------------------
+
        DeleteVtkObjects();
        _pts = vtkPoints::New();
        _pts->SetNumberOfPoints(nps);
-
        for (i=0 ; i<nps ; i++){
                _pts->SetPoint(i,       0       , 0     , 0 );
        }
        // This is for the boundaring inicialisation
 
 //EED 29Mars2009       
-       _pts->SetPoint(0,       0       , 0     , -1000 );
-       _pts->SetPoint(1,       0       , 0     ,  1000 );
-//     _pts->SetPoint(0,       -1000   , -1000 , -1000 );
-//     _pts->SetPoint(1,       1000    , 1000  , 1000  );
-
+       //_pts->SetPoint(0,     0       , 0     , -1000 );
+       //_pts->SetPoint(1,     0       , 0     ,  1000 );
+       _pts->SetPoint(0,       -1000   , -1000 , -1000 );
+       _pts->SetPoint(1,       1000    , 1000  , 1000  );
 
        vtkCellArray *lines = vtkCellArray::New();
        lines->InsertNextCell( nps /* +1 */ );
        for ( i=0 ; i<nps+1 ; i++ ){
                lines->InsertCellPoint(i % nps );
        }
-
        _pd = vtkPolyData::New();
        _pd->SetPoints( _pts );
        _pd->SetLines( lines );
@@ -275,6 +307,11 @@ void manualViewBaseContour::ConstructVTKObjects()
 
        _pd->ComputeBounds();
 
+       InitTextActor();
+}
+
+void manualViewBaseContour::InitTextActor()
+{
        //      Text
        _textActor = vtkTextActor::New();
 //     _textActor->SetDisplayPosition(200, 200);
@@ -290,6 +327,7 @@ void manualViewBaseContour::ConstructVTKObjects()
        tprop->SetFontFamilyToArial();
        tprop->SetColor(0, 0, 1);
 }
+
 // ----------------------------------------------------------------------------
 void manualViewBaseContour::CreateNewContour()
 {
@@ -495,11 +533,11 @@ bool manualViewBaseContour::SelectPosibleContour(int x, int y, int z)
        bool result=false;
        SetPosibleSelected(result);
     int id = GetIdPoint(x,y,z);
-               
+       
        if( !GetEditable() && !_selected && id!= -1)
        {
                result=true;
-               SetPosibleSelected(result);
+               _posibleSelected=true;          
        }
        else
        {
@@ -520,8 +558,6 @@ bool manualViewBaseContour::SelectPosibleContour(int x, int y, int z)
                                SetPosibleSelected(result);
                        }
                }
-
-
        }
        return result;
 }
@@ -548,7 +584,7 @@ void manualViewBaseContour::UnSelectAllPoints(){
        Refresh();
 }
 // ----------------------------------------------------------------------------
-void manualViewBaseContour::SetModel(manualContourModel *manContModel){
+void manualViewBaseContour::SetModel(manualBaseModel *manContModel){
        _manContModel=manContModel;
 }
 // ----------------------------------------------------------------------------
@@ -883,7 +919,7 @@ void manualViewBaseContour::SetVisible(bool ok)
 void manualViewBaseContour::SetShowText(bool ok)
 {
        _show_text = ok;
-       if (_show_text==false)
+       if (_show_text==false && _textActor!=NULL)
        {
                _textActor->SetInput("00");
        }