X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FmanualContour%2FmanualViewBaseContour.cpp;h=d06b6db735d39b365f4694d0ae0ee340391d6a3f;hb=65c158dc171f8d3114ee3544b2a94a1f41880df0;hp=e9a859629f84b7ca7f8f6162112058f2dc37440b;hpb=414da1a291ff4c9d9a946536d3d219e4b5f9e6c2;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBaseContour.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBaseContour.cpp index e9a8596..d06b6db 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBaseContour.cpp +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBaseContour.cpp @@ -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 ; iSetPoint(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 ; iInsertCellPoint(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"); }