]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBaseContour.cpp
Feature #1606 Add a new entry to ColorLayerImageView to select the fitting mode betwe...
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / manualContour / manualViewBaseContour.cpp
index e9a859629f84b7ca7f8f6162112058f2dc37440b..d06b6db735d39b365f4694d0ae0ee340391d6a3f 100644 (file)
@@ -60,6 +60,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 +84,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 +186,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 +237,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 +282,11 @@ void manualViewBaseContour::ConstructVTKObjects()
 
        _pd->ComputeBounds();
 
+       InitTextActor();
+}
+
+void manualViewBaseContour::InitTextActor()
+{
        //      Text
        _textActor = vtkTextActor::New();
 //     _textActor->SetDisplayPosition(200, 200);
@@ -290,6 +302,7 @@ void manualViewBaseContour::ConstructVTKObjects()
        tprop->SetFontFamilyToArial();
        tprop->SetColor(0, 0, 1);
 }
+
 // ----------------------------------------------------------------------------
 void manualViewBaseContour::CreateNewContour()
 {
@@ -495,10 +508,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
        {
@@ -519,8 +533,6 @@ bool manualViewBaseContour::SelectPosibleContour(int x, int y, int z)
                                SetPosibleSelected(result);
                        }
                }
-
-
        }
        return result;
 }
@@ -547,7 +559,7 @@ void manualViewBaseContour::UnSelectAllPoints(){
        Refresh();
 }
 // ----------------------------------------------------------------------------
-void manualViewBaseContour::SetModel(manualContourModel *manContModel){
+void manualViewBaseContour::SetModel(manualBaseModel *manContModel){
        _manContModel=manContModel;
 }
 // ----------------------------------------------------------------------------
@@ -615,6 +627,7 @@ void manualViewBaseContour::Refresh() // virtual
        if (vri==NULL)
        {
                _wxvtkbaseview->GetRenWin()->Render();
+               printf("EED %p How to optimize manualViewBaseContour::Refresh() \n",this);
        }
 
 }
@@ -691,7 +704,7 @@ int manualViewBaseContour::GetIdPoint(int x, int y, int z) // virtual
                double xx = x;
                double yy = y;
                double zz = z;
-               TransfromeCoordViewWorld(xx,yy,zz);
+               TransfromCoordViewWorld(xx,yy,zz);
                ii=_manContModel->GetIdPoint(xx,yy,zz,_range,-1);
        }
        return ii;
@@ -721,9 +734,9 @@ int manualViewBaseContour::GetNumberOfPoints()
 }*/
 //----------------------------------------------------------------------------
 // virtual
-void manualViewBaseContour::TransfromeCoordViewWorld(double &X, double &Y, double &Z, int type)  // Virtual
+void manualViewBaseContour::TransfromCoordViewWorld(double &X, double &Y, double &Z, int type)  // Virtual
 {
-       _wxvtkbaseview->TransfromeCoordScreenToWorld(X, Y, Z, type);
+       _wxvtkbaseview->TransFromCoordScreenToWorld(X, Y, Z,false, type);
 
 
 //EED 27 sep 2007
@@ -733,12 +746,12 @@ void manualViewBaseContour::TransfromeCoordViewWorld(double &X, double &Y, doubl
 
 }
 // ----------------------------------------------------------------------------
-void manualViewBaseContour::SetRange(int range)
+void manualViewBaseContour::SetRange(double range)
 {
        _range=range;
 }
 // ----------------------------------------------------------------------------
-int    manualViewBaseContour::GetRange()
+double manualViewBaseContour::GetRange()
 {
        return _range;
 }
@@ -881,7 +894,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");
        }