X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FmanualContour%2FmanualViewBaseContour.cpp;h=58198eef1edbc9d72a39225f21f0233a5b166916;hb=15112ae15da4222831b0e8e7c9be87daf9e99a1c;hp=4a3daf76285f937bec47a54b3999b5184599562f;hpb=e4ef2b5df5aac431ff3b806f83b7dd5e55e89d86;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 4a3daf7..58198ee 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBaseContour.cpp +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBaseContour.cpp @@ -44,25 +44,20 @@ manualViewBaseContour::manualViewBaseContour() _contourVtkActor = NULL; _bboxMapper = NULL; _range = 1; - _sizePointsContour = 100; + _sizePointsContour = 500; _spc[0] = 1; _spc[1] = 1; _spc[2] = 1; - _coulorEdit_r = 1; _coulorEdit_g = 1; _coulorEdit_b = 0; - _coulorNormal_r = 1; _coulorNormal_g = 0; _coulorNormal_b = 1; - _coulorSelection_r = 0; _coulorSelection_g = 1; _coulorSelection_b = 0; - _widthline = 1; - } // ---------------------------------------------------------------------------- manualViewBaseContour::~manualViewBaseContour() @@ -113,13 +108,15 @@ void manualViewBaseContour :: AddCompleteContourActor( bool ifControlPoints ) //Adding each control point if( ifControlPoints ) + { AddControlPoints(); + } RefreshContour(); Refresh(); } // --------------------------------------------------------------------------- -void manualViewBaseContour :: RemoveCompleteContourActor() +void manualViewBaseContour::RemoveCompleteContourActor() { /*vtkRenderer * theRenderer =*/ _wxvtkbaseview->GetRenderer(); // JPRx ?? //Removing the spline @@ -214,6 +211,7 @@ void manualViewBaseContour::AddTextActor() if(_show_text) { _wxvtkbaseview->GetRenderer()->AddActor2D( _textActor ); + _wxvtkbaseview->GetRenderer()->AddActor2D( _textActor2 ); } } // ---------------------------------------------------------------------------- @@ -222,6 +220,7 @@ void manualViewBaseContour::RemoveTextActor() if(_show_text) { _wxvtkbaseview->GetRenderer()->RemoveActor2D( _textActor ); + _wxvtkbaseview->GetRenderer()->RemoveActor2D( _textActor2 ); } } // ---------------------------------------------------------------------------- @@ -273,7 +272,8 @@ void manualViewBaseContour::ConstructVTKObjects() DeleteVtkObjects(); _pts = vtkPoints::New(); _pts->SetNumberOfPoints(nps); - for (i=0 ; iSetPoint(i, 0 , 0 , 0 ); } // This is for the boundaring inicialisation @@ -281,25 +281,45 @@ void manualViewBaseContour::ConstructVTKObjects() //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 ); - vtkCellArray *lines = vtkCellArray::New(); - lines->InsertNextCell( nps /* +1 */ ); - for ( i=0 ; iInsertCellPoint(i % nps ); +//EED 2017-03-02 +// _pts->SetPoint(0, -1000 , -1000 , -1000 ); +// _pts->SetPoint(1, 1000 , 1000 , 1000 ); + + // This is the structure for the spline + _splineCell = vtkCellArray::New(); + _splineCell->InsertNextCell( nps /* +1 */ ); + for ( i=0 ; iInsertCellPoint(i % nps ); } + + // This is the structure for the spline justo to points (line) + // This will be use in the refresh part, in case the spline have only 2 points + _lineCell = vtkCellArray::New(); + _lineCell->InsertNextCell(2); + _lineCell->InsertCellPoint(0); + _lineCell->InsertCellPoint(1); + _pd = vtkPolyData::New(); _pd->SetPoints( _pts ); - _pd->SetLines( lines ); - lines->Delete(); //do not delete lines ?? + _pd->SetLines( _splineCell ); + // lines->Delete(); //do not delete lines ?? _contourVtkActor = vtkActor::New(); _bboxMapper = vtkPolyDataMapper::New(); _bboxMapper->ScalarVisibilityOff( ); + +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 _bboxMapper->SetInput(_pd); _bboxMapper->ImmediateModeRenderingOn(); +#else + _bboxMapper->SetInputData(_pd); +#endif + + _contourVtkActor->SetMapper(_bboxMapper); _contourVtkActor->GetProperty()->BackfaceCullingOff(); @@ -310,6 +330,18 @@ void manualViewBaseContour::ConstructVTKObjects() InitTextActor(); } +// ---------------------------------------------------------------------------- +void manualViewBaseContour::SetCellArray(bool type) +{ + if (type==true) + { + _pd->SetLines( _splineCell ); + } else { + _pd->SetLines( _lineCell ); + }// if type +} + +// ---------------------------------------------------------------------------- void manualViewBaseContour::InitTextActor() { // Text @@ -323,9 +355,26 @@ void manualViewBaseContour::InitTextActor() // _textActor->GetPositionCoordinate()->SetValue( 0.8 , 0.8 ); vtkTextProperty *tprop = _textActor->GetTextProperty(); - tprop->SetFontSize(14); + tprop->SetFontSize(12); tprop->SetFontFamilyToArial(); - tprop->SetColor(0, 0, 1); + tprop->SetColor(1, 1, 0); + + + // Text 2 + _textActor2 = vtkTextActor::New(); +// _textActor->SetDisplayPosition(200, 200); + _textActor2->SetInput("00"); + // Set coordinates to match the old vtkScaledTextActor default value +// _textActor2->GetPosition2Coordinate()->SetCoordinateSystemToNormalizedViewport(); +// _textActor2->GetPosition2Coordinate()->SetValue( 0.2 , 0.2 ); + _textActor2->GetPositionCoordinate()->SetCoordinateSystemToWorld (); +// _textActor2->GetPositionCoordinate()->SetValue( 0.8 , 0.8 ); + + vtkTextProperty *tprop2 = _textActor2->GetTextProperty(); + tprop2->SetFontSize(12); + tprop2->SetFontFamilyToArial(); + tprop2->SetColor(1, 1, 0); + } // ---------------------------------------------------------------------------- @@ -600,10 +649,11 @@ double* manualViewBaseContour::GetVectorPointsXManualContour(){ double pp[3]; int i,size = _sizePointsContour; double *vx = (double*)malloc(sizeof(double)*size); - for (i=0;iGetPoint(i,pp); vx[i]=pp[0]; - } + } // for i return vx; } // ---------------------------------------------------------------------------- @@ -612,10 +662,11 @@ double* manualViewBaseContour::GetVectorPointsYManualContour() double pp[3]; int i,size = _sizePointsContour; double *vy = (double*)malloc(sizeof(double)*size); - for (i=0;iGetPoint(i,pp); vy[i]=pp[1]; - } + } // for i return vy; } // ---------------------------------------------------------------------------- @@ -624,23 +675,26 @@ double* manualViewBaseContour::GetVectorPointsZManualContour() double pp[3]; int i,size = _sizePointsContour; double *vz = (double*)malloc(sizeof(double)*size); - for (i=0;iGetPoint(i,pp); vz[i]=pp[2]; - } + } // for i return vz; } // ---------------------------------------------------------------------------- void manualViewBaseContour::Refresh() // virtual { - if (_contourVtkActor!=NULL){ + if (_contourVtkActor!=NULL) + { RefreshContour(); } int i,size=_lstViewPoints.size(); - for (i=0;iUpdateColorActor(); - } + } // for i UpdateColorActor(); if (_show_text==true) @@ -660,7 +714,10 @@ void manualViewBaseContour::Refresh() // virtual void manualViewBaseContour::RefreshText() // virtual { if( _textActor!=NULL) + { _textActor -> SetInput("00"); + _textActor2 -> SetInput("00"); + } } // ---------------------------------------------------------------------------- void manualViewBaseContour::SetColorNormalContour(double r, double g, double b) @@ -913,6 +970,8 @@ void manualViewBaseContour::SetVisible(bool ok) _contourVtkActor->GetProperty()->SetOpacity( opacity ); _textActor->GetProperty()->SetOpacity( opacity ); _textActor->SetInput("00"); + _textActor2->GetProperty()->SetOpacity( opacity ); + _textActor2->SetInput("00"); } // ---------------------------------------------------------------------------- @@ -921,7 +980,8 @@ void manualViewBaseContour::SetShowText(bool ok) _show_text = ok; if (_show_text==false && _textActor!=NULL) { - _textActor->SetInput("00"); + _textActor->SetInput(""); + _textActor2->SetInput(""); } } // ----------------------------------------------------------------------------