X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FEditorGraphicBBS%2FbbsVtkGUIEditorGraphic%2FvtkGBoxView.cxx;fp=lib%2FEditorGraphicBBS%2FbbsVtkGUIEditorGraphic%2FvtkGBoxView.cxx;h=9e5c0d64d53f79ce05436b29444ae40c9d95cdc6;hb=db7d4391e42d1af64599a2bbdc79c5d688ce24da;hp=b60742e1f4ff459a654d75371eebdeacce7274fc;hpb=8e6a8a638f2b03db8e34234b6e02d71cda913f9d;p=bbtkGEditor.git diff --git a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGBoxView.cxx b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGBoxView.cxx index b60742e..9e5c0d6 100644 --- a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGBoxView.cxx +++ b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGBoxView.cxx @@ -93,7 +93,7 @@ namespace bbtk updatePorts(); - _borderPolyMapper->Modified(); +// _borderPolyMapper->Modified(); _fillPolyMapper->Modified(); //----------- @@ -101,17 +101,71 @@ namespace bbtk setRefreshWaiting(); } + + + //========================================================================= +//EED2017 + void vtkGBoxView::createVtkInputOutputPorts() + { + ///************************* Inputs Fill (triangles) ************************* + GBoxModel* boxModel =(GBoxModel*)_model; + int numberOfTriangles = boxModel->getNumInputPorts(); + _TrianglesInputsPts = vtkPoints::New(); + _TrianglesInputsPts->SetNumberOfPoints( 3*numberOfTriangles ); + vtkCellArray *stripTrianglesInputs = vtkCellArray::New(); + vtkPolyData *pdTrianglesInputs = vtkPolyData::New(); + _TrianglesInputsPolyMapper = vtkPolyDataMapper::New(); + _TrianglesInputsActor = vtkActor::New(); + // RaC In the actual version, zInic=zFin=GPOSITION_Z + for (int i=0 ; iInsertNextCell( 3 ); + stripTrianglesInputs->InsertCellPoint(i*3+0); + stripTrianglesInputs->InsertCellPoint(i*3+1); + stripTrianglesInputs->InsertCellPoint(i*3+2); + } + pdTrianglesInputs->SetPoints( _TrianglesInputsPts ); + pdTrianglesInputs->SetStrips( stripTrianglesInputs ); + _TrianglesInputsPolyMapper->SetInput( pdTrianglesInputs ); + _TrianglesInputsActor->SetMapper(_TrianglesInputsPolyMapper); + _TrianglesInputsPolyMapper->Modified(); + ///************************* Inputs Fill (triangles) ************************* + + ///************************* Outputs Fill (triangles) ************************* + numberOfTriangles = boxModel->getNumOutputPorts(); + _TrianglesOutputsPts = vtkPoints::New(); + _TrianglesOutputsPts->SetNumberOfPoints( 3*numberOfTriangles ); + vtkCellArray *stripTrianglesOutputs = vtkCellArray::New(); + vtkPolyData *pdTrianglesOutputs = vtkPolyData::New(); + _TrianglesOutputsPolyMapper = vtkPolyDataMapper::New(); + _TrianglesOutputsActor = vtkActor::New(); + // RaC In the actual version, zInic=zFin=GPOSITION_Z + for (int i=0 ; iInsertNextCell( 3 ); + stripTrianglesOutputs->InsertCellPoint(i*3+0); + stripTrianglesOutputs->InsertCellPoint(i*3+1); + stripTrianglesOutputs->InsertCellPoint(i*3+2); + } + pdTrianglesOutputs->SetPoints( _TrianglesOutputsPts ); + pdTrianglesOutputs->SetStrips( stripTrianglesOutputs ); + _TrianglesOutputsPolyMapper->SetInput( pdTrianglesOutputs ); + _TrianglesOutputsActor->SetMapper(_TrianglesOutputsPolyMapper); + _TrianglesOutputsPolyMapper->Modified(); + ///************************* Inputs Fill (triangles) ************************* + } + + //========================================================================= void vtkGBoxView::createVtkObjects() //virtual { - //------------ _pts = vtkPoints::New(); - vtkCellArray *lines = vtkCellArray::New(); - vtkPolyData *_pd = vtkPolyData::New(); - _borderPolyMapper = vtkPolyDataMapper::New(); - _borderObjectActor = vtkActor::New(); +// vtkCellArray *lines = vtkCellArray::New(); +// vtkPolyData *_pd = vtkPolyData::New(); +// _borderPolyMapper = vtkPolyDataMapper::New(); +// _borderObjectActor = vtkActor::New(); _pts->SetNumberOfPoints(4); @@ -125,27 +179,22 @@ namespace bbtk //EED _pts->SetPoint(1, xInic, yFin, zInic ); //EED _pts->SetPoint(2, xFin, yFin, zFin ); //EED _pts->SetPoint(3, xFin, yInic, zFin ); - _pts->SetPoint(0, -1000, -1000, -1000 ); _pts->SetPoint(1, xInic, yFin, zInic ); _pts->SetPoint(2, 1000, 1000, 1000 ); _pts->SetPoint(3, xFin, yInic, zFin ); - - - - lines->InsertNextCell(5); - lines->InsertCellPoint(0); - lines->InsertCellPoint(1); - lines->InsertCellPoint(2); - lines->InsertCellPoint(3); - lines->InsertCellPoint(0); - - _pd->SetPoints( _pts ); - _pd->SetLines( lines ); - - _borderPolyMapper->SetInput(_pd); - _borderObjectActor->SetMapper(_borderPolyMapper); - _borderPolyMapper->Modified(); + +// lines->InsertNextCell(5); +// lines->InsertCellPoint(0); +// lines->InsertCellPoint(1); +// lines->InsertCellPoint(2); +// lines->InsertCellPoint(3); +// lines->InsertCellPoint(0); +// _pd->SetPoints( _pts ); +// _pd->SetLines( lines ); +// _borderPolyMapper->SetInput(_pd); +// _borderObjectActor->SetMapper(_borderPolyMapper); +// _borderPolyMapper->Modified(); ///************************* FILL ************************* @@ -172,22 +221,25 @@ namespace bbtk _fillPolyMapper->Modified(); ///************************* FILL ************************* - } //========================================================================= void vtkGBoxView::addVtkActors()//virtual { - _baseView->GetRenderer()->AddActor(_borderObjectActor); +// _baseView->GetRenderer()->AddActor(_borderObjectActor); vtkGObjectView::addVtkActors(); + _baseView->GetRenderer()->AddActor(_TrianglesInputsActor); + _baseView->GetRenderer()->AddActor(_TrianglesOutputsActor); } //========================================================================= void vtkGBoxView::removeVtkActors()//virtual { - _baseView->GetRenderer()->RemoveActor(_borderObjectActor); +// _baseView->GetRenderer()->RemoveActor(_borderObjectActor); + _baseView->GetRenderer()->RemoveActor(_TrianglesInputsActor); + _baseView->GetRenderer()->RemoveActor(_TrianglesOutputsActor); vtkGObjectView::removeVtkActors(); } @@ -199,28 +251,27 @@ namespace bbtk if(_state==NOTHING_HAPPENS) { - _borderObjectActor->GetProperty()->SetLineWidth(1); - _borderObjectActor->GetProperty()->SetColor(BOXBORDER_NH_R,BOXBORDER_NH_G,BOXBORDER_NH_B); +// _borderObjectActor->GetProperty()->SetLineWidth(1); +// _borderObjectActor->GetProperty()->SetColor(BOXBORDER_NH_R,BOXBORDER_NH_G,BOXBORDER_NH_B); _fillObjectActor->GetProperty()->SetColor(BOXFILL_NH_R,BOXFILL_NH_G,BOXFILL_NH_B); } else if(_state==HIGHLIGHTED) { - _borderObjectActor->GetProperty()->SetLineWidth(2); - - _borderObjectActor->GetProperty()->SetColor(BOXBORDER_HIGHLIGHTED_R,BOXBORDER_HIGHLIGHTED_G,BOXBORDER_HIGHLIGHTED_B); +// _borderObjectActor->GetProperty()->SetLineWidth(2); +// _borderObjectActor->GetProperty()->SetColor(BOXBORDER_HIGHLIGHTED_R,BOXBORDER_HIGHLIGHTED_G,BOXBORDER_HIGHLIGHTED_B); _fillObjectActor->GetProperty()->SetColor(BOXFILL_HIGHLIGHTED_R,BOXFILL_HIGHLIGHTED_G,BOXFILL_HIGHLIGHTED_B); } else if(_state==DRAG) { - _borderObjectActor->GetProperty()->SetLineWidth(1.2); - _borderObjectActor->GetProperty()->SetColor(BOXBORDER_DRAG_R,BOXBORDER_DRAG_G,BOXBORDER_DRAG_B); +// _borderObjectActor->GetProperty()->SetLineWidth(1.2); +// _borderObjectActor->GetProperty()->SetColor(BOXBORDER_DRAG_R,BOXBORDER_DRAG_G,BOXBORDER_DRAG_B); _fillObjectActor->GetProperty()->SetColor(BOXFILL_DRAG_R,BOXFILL_DRAG_G,BOXFILL_DRAG_B); } else if(_state==SELECTED) { - _borderObjectActor->GetProperty()->SetLineWidth(2); - _borderObjectActor->GetProperty()->SetColor(BOXBORDER_SELECTED_R,BOXBORDER_SELECTED_G,BOXBORDER_SELECTED_B); +// _borderObjectActor->GetProperty()->SetLineWidth(2); +// _borderObjectActor->GetProperty()->SetColor(BOXBORDER_SELECTED_R,BOXBORDER_SELECTED_G,BOXBORDER_SELECTED_B); _fillObjectActor->GetProperty()->SetColor(BOXFILL_SELECTED_R,BOXFILL_SELECTED_G,BOXFILL_SELECTED_B); } } @@ -229,8 +280,42 @@ namespace bbtk void vtkGBoxView::updatePorts() { - GBoxModel* bmod =(GBoxModel*)_model; - bmod->updatePorts(); + double xInic, yInic,zInic,xFin, yFin,zFin; + + GBoxModel* boxModel =(GBoxModel*)_model; + boxModel->updatePorts(); + +// update position for one Actor that represents all InputPorts + GPortModel *portModel; + int numberOfTriangles = boxModel->getNumInputPorts(); + for (int i=0;igetInputPort(i); + portModel->getInicPoint( xInic , yInic , zInic ) ; + portModel->getFinalPoint( xFin , yFin , zFin ) ; + // RaC In the actual version, zInic=zFin=GPOSITION_Z + _TrianglesInputsPts->SetPoint(i*3+0, xInic , yInic , zInic ); + _TrianglesInputsPts->SetPoint(i*3+1, ( xInic + xFin ) / 2 , yFin , zInic ); + _TrianglesInputsPts->SetPoint(i*3+2, xFin , yInic , zFin ); + } + _TrianglesInputsPolyMapper->Modified( ) ; + +// update position for one Actor that represents all OutputPorts + numberOfTriangles = boxModel->getNumOutputPorts(); + for (int i=0;igetOutputPort(i); + portModel->getInicPoint( xInic , yInic , zInic ) ; + portModel->getFinalPoint( xFin , yFin , zFin ) ; + // RaC In the actual version, zInic=zFin=GPOSITION_Z + _TrianglesOutputsPts->SetPoint(i*3+0, xInic , yInic , zInic ); + _TrianglesOutputsPts->SetPoint(i*3+1, ( xInic + xFin ) / 2 , yFin , zInic ); + _TrianglesOutputsPts->SetPoint(i*3+2, xFin , yInic , zFin ); + } + _TrianglesOutputsPolyMapper->Modified( ) ; + + + } //=========================================================================