]> Creatis software - bbtkGEditor.git/blobdiff - lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGBlackBoxView.cxx
Updated Version with the moving of the objects updated and the background doesn't...
[bbtkGEditor.git] / lib / EditorGraphicBBS / bbsVtkGUIEditorGraphic / vtkGBlackBoxView.cxx
index 65dbf1ae932fa757d2678ad53e9aee7f8dc524a4..0d56863b88862885877f021e6b74df342dda2c3d 100644 (file)
@@ -53,7 +53,6 @@ namespace bbtk
        //=========================================================================
        void vtkGBlackBoxView::update(int idController,int command)
        {
-
                updateColors();
                
                double xInic, yInic,zInic,xFin, yFin,zFin;
@@ -67,6 +66,13 @@ namespace bbtk
                _pts->SetPoint(2, xFin, yFin, zFin );
                _pts->SetPoint(3, xFin, yInic, zFin );
 
+
+               _ptsFill->SetPoint(0, xInic, yInic, zInic-0.01 );
+               _ptsFill->SetPoint(1, xInic, yFin, zInic-0.01 );
+               _ptsFill->SetPoint(2, xFin, yFin, zFin-0.01 );
+               _ptsFill->SetPoint(3, xFin, yInic, zFin-0.01 );
+
+
                //-----------
 
                updatePositionTextActors(xInic, yInic,zInic);
@@ -85,8 +91,8 @@ namespace bbtk
                vtkCellArray *lines = vtkCellArray::New();
                vtkPolyData *_pd = vtkPolyData::New();
                vtkPolyDataMapper* _bboxMapper=vtkPolyDataMapper::New();
-               _objectActor=vtkActor::New();
-               
+               _objectBorderActor=vtkActor::New();
+                               
                _pts->SetNumberOfPoints(4);
 
                double xInic, yInic,zInic,xFin, yFin,zFin;
@@ -111,9 +117,43 @@ namespace bbtk
                _pd->SetLines( lines );
 
                _bboxMapper->SetInput(_pd);
-               _objectActor->SetMapper(_bboxMapper);
+               _objectBorderActor->SetMapper(_bboxMapper);
+
+               _objectBorderActor->GetProperty()->SetColor(BOXCONTOUR_NH_R,BOXCONTOUR_NH_G,BOXCONTOUR_NH_B);
+
+               
+               ///************************* FILL *************************
+
+               _ptsFill = vtkPoints::New();
+               vtkCellArray *strip = vtkCellArray::New();
+               vtkPolyData *pdFill = vtkPolyData::New();
+               vtkPolyDataMapper* bboxMapperFill=vtkPolyDataMapper::New();
+               _fillBorderActor=vtkActor::New();
+
+               _ptsFill->SetNumberOfPoints(4);
+
+               // RaC In the actual version, zInic=zFin=900
+
+               _ptsFill->SetPoint(0, xInic, yInic, zInic-0.01 );
+               _ptsFill->SetPoint(1, xInic, yFin, zInic-0.01 );
+               _ptsFill->SetPoint(2, xFin, yFin, zFin-0.01 );
+               _ptsFill->SetPoint(3, xFin, yInic, zFin-0.01 );
+
+               strip->InsertNextCell(5);
+               strip->InsertCellPoint(0);
+               strip->InsertCellPoint(1);
+               strip->InsertCellPoint(2);
+               strip->InsertCellPoint(0);
+               strip->InsertCellPoint(3);
+                       
+               pdFill->SetPoints( _pts );
+               pdFill->SetStrips( strip );
+
+               bboxMapperFill->SetInput(pdFill);
+               _fillBorderActor->SetMapper(bboxMapperFill);
+               _fillBorderActor->GetProperty()->SetColor(BOXCONTOUR_NH_R,BOXCONTOUR_NH_G,BOXCONTOUR_NH_B);
 
-               _objectActor->GetProperty()->SetColor(BOXCONTOUR_NH_R,BOXCONTOUR_NH_G,BOXCONTOUR_NH_B);
+               ///************************* FILL *************************
 
                //------------
 
@@ -162,35 +202,36 @@ namespace bbtk
 
        void vtkGBlackBoxView::updateColors()
        {
-               _objectActor->GetProperty()->SetColor(BOXCONTOUR_NH_R,BOXCONTOUR_NH_G,BOXCONTOUR_NH_B);
+               _objectBorderActor->GetProperty()->SetColor(BOXCONTOUR_NH_R,BOXCONTOUR_NH_G,BOXCONTOUR_NH_B);
                _nameActor->GetTextProperty()->SetColor(BOXCONTOUR_NH_R,BOXCONTOUR_NH_G,BOXCONTOUR_NH_B);
                _typeActor->GetTextProperty()->SetColor(BOXCONTOUR_NH_R,BOXCONTOUR_NH_G,BOXCONTOUR_NH_B);
+               _fillBorderActor->GetProperty()->SetColor(1,.5,.3);
 
                if(_state==NOTHING_HAPPENS)
                {
-                       _objectActor->GetProperty()->SetLineWidth(1);
-                       _objectActor->GetProperty()->SetColor(BOXCONTOUR_NH_R,BOXCONTOUR_NH_G,BOXCONTOUR_NH_B);
+                       _objectBorderActor->GetProperty()->SetLineWidth(1);
+                       _objectBorderActor->GetProperty()->SetColor(BOXCONTOUR_NH_R,BOXCONTOUR_NH_G,BOXCONTOUR_NH_B);
                        _nameActor->GetTextProperty()->SetColor(BOXCONTOUR_NH_R,BOXCONTOUR_NH_G,BOXCONTOUR_NH_B);
                        _typeActor->GetTextProperty()->SetColor(BOXCONTOUR_NH_R,BOXCONTOUR_NH_G,BOXCONTOUR_NH_B);
                }
                else if(_state==HIGHLIGHTED)
                {
-                       _objectActor->GetProperty()->SetLineWidth(2);
-                       _objectActor->GetProperty()->SetColor(BOXCONTOUR_HIGHLIGHTED_R,BOXCONTOUR_HIGHLIGHTED_G,BOXCONTOUR_HIGHLIGHTED_B);
+                       _objectBorderActor->GetProperty()->SetLineWidth(2);
+                       _objectBorderActor->GetProperty()->SetColor(BOXCONTOUR_HIGHLIGHTED_R,BOXCONTOUR_HIGHLIGHTED_G,BOXCONTOUR_HIGHLIGHTED_B);
                        _nameActor->GetTextProperty()->SetColor(BOXCONTOUR_HIGHLIGHTED_R,BOXCONTOUR_HIGHLIGHTED_G,BOXCONTOUR_HIGHLIGHTED_B);
                        _typeActor->GetTextProperty()->SetColor(BOXCONTOUR_HIGHLIGHTED_R,BOXCONTOUR_HIGHLIGHTED_G,BOXCONTOUR_HIGHLIGHTED_B);
                }
                else if(_state==DRAG)
                {
-                       _objectActor->GetProperty()->SetLineWidth(1.2);
-                       _objectActor->GetProperty()->SetColor(BOXCONTOUR_DRAG_R,BOXCONTOUR_DRAG_G,BOXCONTOUR_DRAG_B);
+                       _objectBorderActor->GetProperty()->SetLineWidth(1.2);
+                       _objectBorderActor->GetProperty()->SetColor(BOXCONTOUR_DRAG_R,BOXCONTOUR_DRAG_G,BOXCONTOUR_DRAG_B);
                        _nameActor->GetTextProperty()->SetColor(BOXCONTOUR_DRAG_R,BOXCONTOUR_DRAG_G,BOXCONTOUR_DRAG_B);
                        _typeActor->GetTextProperty()->SetColor(BOXCONTOUR_DRAG_R,BOXCONTOUR_DRAG_G,BOXCONTOUR_DRAG_B);
                }
                else if(_state==SELECTED)
                {
-                       _objectActor->GetProperty()->SetLineWidth(2);
-                       _objectActor->GetProperty()->SetColor(BOXCONTOUR_SELECTED_R,BOXCONTOUR_SELECTED_G,BOXCONTOUR_SELECTED_B);
+                       _objectBorderActor->GetProperty()->SetLineWidth(2);
+                       _objectBorderActor->GetProperty()->SetColor(BOXCONTOUR_SELECTED_R,BOXCONTOUR_SELECTED_G,BOXCONTOUR_SELECTED_B);
                        _nameActor->GetTextProperty()->SetColor(BOXCONTOUR_SELECTED_R,BOXCONTOUR_SELECTED_G,BOXCONTOUR_SELECTED_B);
                        _typeActor->GetTextProperty()->SetColor(BOXCONTOUR_SELECTED_R,BOXCONTOUR_SELECTED_G,BOXCONTOUR_SELECTED_B);
                }