From db7d4391e42d1af64599a2bbdc79c5d688ce24da Mon Sep 17 00:00:00 2001 From: Eduardo DAVILA Date: Thu, 19 Jan 2017 16:42:29 +0100 Subject: [PATCH] #3057 bbGEditor Feature New Normal - optimizing of vtk actors management (input output port) faster refresh --- .../bbsKernelEditorGraphic/GBoxModel.h | 1 + .../vtkGBlackBoxView.cxx | 151 ++++------------- .../bbsVtkGUIEditorGraphic/vtkGBlackBoxView.h | 11 -- .../bbsVtkGUIEditorGraphic/vtkGBoxView.cxx | 159 ++++++++++++++---- .../bbsVtkGUIEditorGraphic/vtkGBoxView.h | 10 ++ .../vtkGComplexBoxPortView.cxx | 91 +++++----- .../bbsVtkGUIEditorGraphic/vtkGObjectView.cxx | 2 +- .../bbsVtkGUIEditorGraphic/vtkGObjectView.h | 4 +- 8 files changed, 206 insertions(+), 223 deletions(-) diff --git a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GBoxModel.h b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GBoxModel.h index 970d7a5..63d2ed5 100644 --- a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GBoxModel.h +++ b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GBoxModel.h @@ -129,6 +129,7 @@ namespace bbtk //Private Attributes + //Private Methods protected: diff --git a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGBlackBoxView.cxx b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGBlackBoxView.cxx index c9d9e70..4549df8 100644 --- a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGBlackBoxView.cxx +++ b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGBlackBoxView.cxx @@ -133,42 +133,10 @@ namespace bbtk updatePorts(); -// update position for one Actor that represents all InputPorts - GPortModel *portModel; - GBoxModel *boxModel =(GBoxModel*)_model; - 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( ) ; - - - // update position for one Actor that represents all OutputPorts - _borderPolyMapper->Modified(); +// _borderPolyMapper->Modified(); _fillPolyMapper->Modified(); //----------- @@ -183,10 +151,10 @@ namespace bbtk //------------ _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); @@ -200,27 +168,23 @@ 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); - - 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(); +// _pd->SetPoints( _pts ); +// _pd->SetLines( lines ); +// _borderPolyMapper->SetInput(_pd); +// _borderObjectActor->SetMapper(_borderPolyMapper); +// _borderPolyMapper->Modified(); ///************************* FILL ************************* @@ -243,54 +207,8 @@ namespace bbtk ///************************* FILL ************************* -//EED2017 - ///************************* 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) ************************* -// GBoxModel* boxModel =(GBoxModel*)_model; - 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) ************************* + + createVtkInputOutputPorts(); @@ -317,14 +235,10 @@ namespace bbtk void vtkGBlackBoxView::addVtkActors()//virtual { - _baseView->GetRenderer()->AddActor(_borderObjectActor); - vtkGObjectView::addVtkActors(); +// _baseView->GetRenderer()->AddActor(_borderObjectActor); + vtkGBoxView::addVtkActors(); _baseView->GetRenderer()->AddActor(_boxTextActor); - _baseView->GetRenderer()->AddActor(_TrianglesInputsActor); - _baseView->GetRenderer()->AddActor(_TrianglesOutputsActor); - - } //========================================================================= @@ -332,10 +246,8 @@ namespace bbtk void vtkGBlackBoxView::removeVtkActors()//virtual { _baseView->GetRenderer()->RemoveActor(_boxTextActor); - _baseView->GetRenderer()->RemoveActor(_borderObjectActor); - _baseView->GetRenderer()->RemoveActor(_TrianglesInputsActor); - _baseView->GetRenderer()->RemoveActor(_TrianglesOutputsActor); - vtkGObjectView::removeVtkActors(); +// _baseView->GetRenderer()->RemoveActor(_borderObjectActor); + vtkGBoxView::removeVtkActors(); } //========================================================================= @@ -358,38 +270,37 @@ 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); _boxTextActor->GetTextProperty()->SetColor(BOXTEXT_NH_R,BOXTEXT_NH_G,BOXTEXT_NH_B); GBlackBoxModel *bbmodel = (GBlackBoxModel*)_model; if(bbmodel->isExecutable()) { - _borderObjectActor->GetProperty()->SetColor(BOXBORDER_NH_R,0.9,BOXBORDER_HIGHLIGHTED_B); +// _borderObjectActor->GetProperty()->SetColor(BOXBORDER_NH_R,0.9,BOXBORDER_HIGHLIGHTED_B); _fillObjectActor->GetProperty()->SetColor(BOXFILL_NH_R,0.9,BOXFILL_HIGHLIGHTED_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); _boxTextActor->GetTextProperty()->SetColor(BOXTEXT_HIGHLIGHTED_R,BOXTEXT_HIGHLIGHTED_G,BOXTEXT_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); _boxTextActor->GetTextProperty()->SetColor(BOXTEXT_DRAG_R,BOXTEXT_DRAG_G,BOXTEXT_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); _boxTextActor->GetTextProperty()->SetColor(BOXTEXT_SELECTED_R,BOXTEXT_SELECTED_G,BOXTEXT_SELECTED_B); } diff --git a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGBlackBoxView.h b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGBlackBoxView.h index 5005261..4bd437d 100644 --- a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGBlackBoxView.h +++ b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGBlackBoxView.h @@ -113,17 +113,6 @@ namespace bbtk //Private Attributes vtkTextActor3D *_boxTextActor; - // Input Triangles - vtkPoints *_TrianglesInputsPts; - vtkPolyDataMapper *_TrianglesInputsPolyMapper; - vtkActor *_TrianglesInputsActor; - - // Output Triangles - vtkPoints *_TrianglesOutputsPts; - vtkPolyDataMapper *_TrianglesOutputsPolyMapper; - vtkActor *_TrianglesOutputsActor; - - //Private Methods void updatePositionTextActor(double xInic, double yInic, double zInic); 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( ) ; + + + } //========================================================================= diff --git a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGBoxView.h b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGBoxView.h index 3eaa509..8a5cf7a 100644 --- a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGBoxView.h +++ b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGBoxView.h @@ -113,6 +113,15 @@ namespace bbtk //Private Attributes + // Input Triangles + vtkPoints *_TrianglesInputsPts; + vtkPolyDataMapper *_TrianglesInputsPolyMapper; + vtkActor *_TrianglesInputsActor; + // Output Triangles + vtkPoints *_TrianglesOutputsPts; + vtkPolyDataMapper *_TrianglesOutputsPolyMapper; + vtkActor *_TrianglesOutputsActor; + //Private Methods protected: @@ -123,6 +132,7 @@ namespace bbtk virtual void addVtkActors(); virtual void removeVtkActors(); virtual void createVtkObjects(); + void createVtkInputOutputPorts(); virtual void update(int idController,int command); virtual void updateColors(); diff --git a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGComplexBoxPortView.cxx b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGComplexBoxPortView.cxx index d240428..88ce615 100644 --- a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGComplexBoxPortView.cxx +++ b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGComplexBoxPortView.cxx @@ -67,37 +67,34 @@ namespace bbtk { //========================================================================= - vtkGComplexBoxPortView::vtkGComplexBoxPortView( ) { + vtkGComplexBoxPortView::vtkGComplexBoxPortView( ) + { } //========================================================================= - vtkGComplexBoxPortView::~vtkGComplexBoxPortView( ) { + vtkGComplexBoxPortView::~vtkGComplexBoxPortView( ) + { } //========================================================================= - void vtkGComplexBoxPortView::update( int idController , int command ) { + void vtkGComplexBoxPortView::update( int idController , int command ) + { updateColors( ) ; - double xInic , yInic , zInic , xFin , yFin , zFin ; _model->getInicPoint( xInic , yInic , zInic ) ; _model->getFinalPoint( xFin , yFin , zFin ) ; - // RaC In the actual version, zInic=zFin=GPOSITION_Z - _pts->SetPoint( 0 , xInic , yInic , zInic ) ; _pts->SetPoint( 1 , xInic , yFin , zInic ) ; _pts->SetPoint( 2 , xFin , yFin , zFin ) ; _pts->SetPoint( 3 , xFin , yInic , zFin ) ; - updatePorts( ) ; - - _borderPolyMapper->Modified( ) ; +// _borderPolyMapper->Modified( ) ; _fillPolyMapper->Modified( ) ; //----------- - //----------- setRefreshWaiting( ) ; } @@ -108,10 +105,10 @@ namespace bbtk { //------------ _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,70 +122,62 @@ 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 ************************* - vtkCellArray *strip = vtkCellArray::New( ) ; vtkPolyData *pdFill = vtkPolyData::New( ) ; _fillPolyMapper = vtkPolyDataMapper::New( ) ; _fillObjectActor = vtkActor::New( ) ; - // RaC In the actual version, zInic=zFin=GPOSITION_Z - strip->InsertNextCell( 5 ) ; strip->InsertCellPoint( 0 ) ; strip->InsertCellPoint( 1 ) ; strip->InsertCellPoint( 2 ) ; strip->InsertCellPoint( 0 ) ; strip->InsertCellPoint( 3 ) ; - pdFill->SetPoints( _pts ) ; pdFill->SetStrips( strip ) ; - _fillPolyMapper->SetInput( pdFill ) ; _fillObjectActor->SetMapper( _fillPolyMapper ) ; _fillPolyMapper->Modified( ) ; - ///************************* FILL ************************* + createVtkInputOutputPorts(); + } //========================================================================= void vtkGComplexBoxPortView::addVtkActors( )//virtual { - _baseView->GetRenderer( )->AddActor( _borderObjectActor ) ; - vtkGObjectView::addVtkActors( ) ; +// _baseView->GetRenderer( )->AddActor( _borderObjectActor ) ; + vtkGBoxView::addVtkActors( ) ; } //========================================================================= void vtkGComplexBoxPortView::removeVtkActors( )//virtual { - _baseView->GetRenderer( )->RemoveActor( _borderObjectActor ) ; - vtkGObjectView::removeVtkActors( ) ; +// _baseView->GetRenderer( )->RemoveActor( _borderObjectActor ) ; + vtkGBoxView::removeVtkActors( ) ; } //========================================================================= @@ -196,31 +185,29 @@ namespace bbtk { void vtkGComplexBoxPortView::updateColors( ) { _fillObjectActor->GetProperty( )->SetAmbient( 0.6 ) ; - if ( _state == NOTHING_HAPPENS ) { - _borderObjectActor->GetProperty( )->SetLineWidth( 1 ) ; - - + if ( _state == NOTHING_HAPPENS ) + { +// _borderObjectActor->GetProperty( )->SetLineWidth( 1 ) ; GComplexBoxPortModel *portModel = ( GComplexBoxPortModel* ) _model ; if ( portModel->getComplexPortType( ) == GCOMPLEXINPUTPORT ) { _fillObjectActor->GetProperty( )->SetColor( COMPLEXINPUTPORTFILL_NH_R , COMPLEXINPUTPORTFILL_NH_G , COMPLEXINPUTPORTFILL_NH_B ) ; - _borderObjectActor->GetProperty( )->SetColor( COMPLEXINPUTPORTBORDER_NH_R , COMPLEXINPUTPORTBORDER_NH_G , COMPLEXINPUTPORTBORDER_NH_B ) ; +// _borderObjectActor->GetProperty( )->SetColor( COMPLEXINPUTPORTBORDER_NH_R , COMPLEXINPUTPORTBORDER_NH_G , COMPLEXINPUTPORTBORDER_NH_B ) ; } else if ( portModel->getComplexPortType( ) == GCOMPLEXOUTPUTPORT ) { _fillObjectActor->GetProperty( )->SetColor( COMPLEXOUTPUTPORTFILL_NH_R , COMPLEXOUTPUTPORTFILL_NH_G , COMPLEXOUTPUTPORTFILL_NH_B ) ; - _borderObjectActor->GetProperty( )->SetColor( COMPLEXOUTPUTPORTBORDER_NH_R , COMPLEXOUTPUTPORTBORDER_NH_G , COMPLEXOUTPUTPORTBORDER_NH_B ) ; +// _borderObjectActor->GetProperty( )->SetColor( COMPLEXOUTPUTPORTBORDER_NH_R , COMPLEXOUTPUTPORTBORDER_NH_G , COMPLEXOUTPUTPORTBORDER_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 ) ; } } diff --git a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGObjectView.cxx b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGObjectView.cxx index abd696c..90d1ba4 100644 --- a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGObjectView.cxx +++ b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGObjectView.cxx @@ -70,7 +70,7 @@ namespace bbtk vtkGObjectView::vtkGObjectView() { _baseView = NULL; - _borderObjectActor = NULL; +// _borderObjectActor = NULL; _fillObjectActor = NULL; _isStartDragging = false; diff --git a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGObjectView.h b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGObjectView.h index 5022143..13a12ab 100644 --- a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGObjectView.h +++ b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGObjectView.h @@ -146,10 +146,10 @@ namespace bbtk wxVtkBaseView * _baseView; GObjectModel * _model; - vtkActor * _borderObjectActor; +// vtkActor * _borderObjectActor; vtkActor * _fillObjectActor; vtkPolyDataMapper * _fillPolyMapper; - vtkPolyDataMapper * _borderPolyMapper; +// vtkPolyDataMapper * _borderPolyMapper; vtkPoints *_pts; -- 2.47.1