]> Creatis software - bbtkGEditor.git/commitdiff
#3057 bbGEditor Feature New Normal - optimizing of vtk actors management (input...
authorEduardo DAVILA <davila@localhost.localdomain>
Thu, 19 Jan 2017 15:42:29 +0000 (16:42 +0100)
committerEduardo DAVILA <davila@localhost.localdomain>
Thu, 19 Jan 2017 15:42:29 +0000 (16:42 +0100)
lib/EditorGraphicBBS/bbsKernelEditorGraphic/GBoxModel.h
lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGBlackBoxView.cxx
lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGBlackBoxView.h
lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGBoxView.cxx
lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGBoxView.h
lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGComplexBoxPortView.cxx
lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGObjectView.cxx
lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGObjectView.h

index 970d7a548ea1c6d18274d53a9bb7b8227b360a18..63d2ed50833154d7f00a1bd0bb105130936ce5f7 100644 (file)
@@ -129,6 +129,7 @@ namespace bbtk
 
                //Private Attributes
 
+
                //Private Methods
 
        protected:
index c9d9e70297b929fcc956196bbddf910b63367128..4549df8ce9160387a7bd42e3d34cc4b459de332f 100644 (file)
@@ -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;i<numberOfTriangles;i++)
-               {
-                       portModel= boxModel->getInputPort(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;i<numberOfTriangles;i++)
-               {
-                       portModel= boxModel->getOutputPort(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 ; i<numberOfTriangles; i++)
-               {
-                               stripTrianglesInputs->InsertNextCell( 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 ; i<numberOfTriangles; i++)
-               {
-                               stripTrianglesOutputs->InsertNextCell( 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);
                }
index 5005261e22d4c540615e368e91fb8b7e6e435b0d..4bd437d523b48a050c53e66b4bcd9268d0474318 100644 (file)
@@ -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);
 
index b60742e1f4ff459a654d75371eebdeacce7274fc..9e5c0d64d53f79ce05436b29444ae40c9d95cdc6 100644 (file)
@@ -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 ; i<numberOfTriangles; i++)
+               {
+                               stripTrianglesInputs->InsertNextCell( 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 ; i<numberOfTriangles; i++)
+               {
+                               stripTrianglesOutputs->InsertNextCell( 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;i<numberOfTriangles;i++)
+               {
+                       portModel= boxModel->getInputPort(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;i<numberOfTriangles;i++)
+               {
+                       portModel= boxModel->getOutputPort(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( ) ;
+
+
+
        }
 
        //=========================================================================
index 3eaa509d431c25d3cdac1a2e993f9142c615deb2..8a5cf7abcf3145e28119a057a6f50522e8fc0f30 100644 (file)
@@ -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();
index d240428b8a1f5558583e0d52c2e2b9119de23cb2..88ce615e2ce216d4f03b063aff179ea6651c6498 100644 (file)
@@ -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 ) ;
         }
     }
index abd696c59ca0a53e4fa940251d19a50a50fb53a7..90d1ba4ecbad1dd50aca892e268d22e43bd4b00f 100644 (file)
@@ -70,7 +70,7 @@ namespace bbtk
        vtkGObjectView::vtkGObjectView()
        {
                _baseView                       = NULL;
-               _borderObjectActor      = NULL;
+//             _borderObjectActor      = NULL;
                _fillObjectActor        = NULL;
                _isStartDragging        = false;
                
index 50221435891afed5790f081e9eba8f68f6f0529a..13a12aba5b50a36820bb8ce69952b2d8f5612c92 100644 (file)
@@ -146,10 +146,10 @@ namespace bbtk
                
                wxVtkBaseView           * _baseView;
                GObjectModel            * _model;
-               vtkActor                        * _borderObjectActor;
+//             vtkActor                        * _borderObjectActor;
                vtkActor                        * _fillObjectActor;
                vtkPolyDataMapper       * _fillPolyMapper;
-               vtkPolyDataMapper       * _borderPolyMapper;
+//             vtkPolyDataMapper       * _borderPolyMapper;
 
                vtkPoints                       *_pts;