X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FEditorGraphicBBS%2FbbsVtkGUIEditorGraphic%2FvtkGPortView.cxx;h=40e9478051cc50b9554afee148347d130c6375fb;hb=f6286f6851a4c0757cbacbee679d31bcc5a933bd;hp=adbe0caac36e9cfe2402ab37c80c1b18d7a8cbf3;hpb=5df5effdcd9f09c81c68fd63b1f0359593a823bd;p=bbtkGEditor.git diff --git a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGPortView.cxx b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGPortView.cxx index adbe0ca..40e9478 100644 --- a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGPortView.cxx +++ b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGPortView.cxx @@ -42,7 +42,7 @@ namespace bbtk //========================================================================= vtkGPortView::vtkGPortView() - { + { } //========================================================================= @@ -51,18 +51,10 @@ namespace bbtk } //========================================================================= - void vtkGPortView::update(int command) + void vtkGPortView::update(int idController,int command) { - _objectActor->GetProperty()->SetColor(0.8,0.2,0.5); - if(_model->getState()==HIGHLIGHTED) - { - _objectActor->GetProperty()->SetColor(0.8,0.2,0.5); - } - else - { - _objectActor->GetProperty()->SetColor(0.3,0.2,0.2); - } - + updateColors(); + double xInic, yInic,zInic,xFin, yFin,zFin; _model->getInicPoint(xInic,yInic,zInic); @@ -70,14 +62,16 @@ namespace bbtk // RaC In the actual version, zInic=zFin=900 - _pts->SetPoint(0, xInic, yInic, zInic ); - _pts->SetPoint(1, xInic, yFin, zInic ); - _pts->SetPoint(2, xFin, yFin, zFin ); - _pts->SetPoint(3, xFin, yInic, zFin ); + double mid = (xInic+xFin)/2; - //_baseView->GetRenderer()->Render(); - //_baseView->GetRenWin()->Render(); + _pts->SetPoint(0, xInic, yInic, zInic ); + _pts->SetPoint(1, mid, yFin, zInic ); + _pts->SetPoint(2, xFin, yInic, zFin ); + _fillPolyMapper->Modified(); + + //----------- + setRefreshWaiting(); } //========================================================================= @@ -85,12 +79,7 @@ namespace bbtk void vtkGPortView::createVtkObjects() //virtual { _pts = vtkPoints::New(); - vtkCellArray *lines = vtkCellArray::New(); - vtkPolyData *_pd = vtkPolyData::New(); - vtkPolyDataMapper* _bboxMapper=vtkPolyDataMapper::New(); - _objectActor=vtkActor::New(); - - _pts->SetNumberOfPoints(4); + _pts->SetNumberOfPoints(3); double xInic, yInic,zInic,xFin, yFin,zFin; @@ -98,26 +87,68 @@ namespace bbtk _model->getFinalPoint(xFin, yFin,zFin); // RaC In the actual version, zInic=zFin=900 - _pts->SetPoint(0, xInic, yInic, zInic ); - _pts->SetPoint(1, xInic, yFin, zInic ); - _pts->SetPoint(2, xFin, yFin, zFin ); - _pts->SetPoint(3, xFin, yInic, zFin ); - - lines->InsertNextCell(5); - lines->InsertCellPoint(0); - lines->InsertCellPoint(1); - lines->InsertCellPoint(2); - lines->InsertCellPoint(3); - lines->InsertCellPoint(0); + + double mid = (xInic+xFin)/2; + +//EED _pts->SetPoint(0, xInic, yInic, zInic ); +//EED _pts->SetPoint(1, mid, yFin, zInic ); +//EED _pts->SetPoint(2, xFin, yInic, zFin ); + + _pts->SetPoint(0, -1000, -1000, -1000 ); + _pts->SetPoint(1, mid, yFin, zInic ); + _pts->SetPoint(2, 1000, 1000, 1000 ); + + + ///************************* FILL ************************* + + vtkCellArray *strip = vtkCellArray::New(); + vtkPolyData *pdFill = vtkPolyData::New(); + _fillPolyMapper=vtkPolyDataMapper::New(); + _fillObjectActor=vtkActor::New(); + + // RaC In the actual version, zInic=zFin=900 + + strip->InsertNextCell(3); + strip->InsertCellPoint(0); + strip->InsertCellPoint(1); + strip->InsertCellPoint(2); - _pd->SetPoints( _pts ); - _pd->SetLines( lines ); + pdFill->SetPoints( _pts ); + pdFill->SetStrips( strip ); + + _fillPolyMapper->SetInput(pdFill); + _fillObjectActor->SetMapper(_fillPolyMapper); + _fillPolyMapper->Modified(); - _bboxMapper->SetInput(_pd); - _objectActor->SetMapper(_bboxMapper); + ///************************* FILL ************************* - _objectActor->GetProperty()->SetColor(BOXCONTOUR_NH_R,BOXCONTOUR_NH_G,BOXCONTOUR_NH_B); + updateColors(); + + } + + //========================================================================= + + void vtkGPortView::updateColors() + { + _fillObjectActor->GetProperty()->SetColor(0.45,0.45,0.45); + + if(_state==HIGHLIGHTED) + { + _fillObjectActor->GetProperty()->SetColor( 0 , 0 , 1 ); + } else { + GPortModel* portm = (GPortModel*)_model; + if(portm->isConnected()) + { + _fillObjectActor->GetProperty()->SetColor(0.15,0.15,0.15); + } + else if(portm->isValueSet()) + { + _fillObjectActor->GetProperty()->SetColor(0.55,0.25,0.25); + } else { + _fillObjectActor->GetProperty()->SetColor(0.45,0.45,0.45); + } + } } //=========================================================================