]> Creatis software - bbtkGEditor.git/blobdiff - lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGPortView.cxx
#3084 bbGEditor Bug New Normal - Color refresh for inputs and outputs
[bbtkGEditor.git] / lib / EditorGraphicBBS / bbsVtkGUIEditorGraphic / vtkGPortView.cxx
index 5cd33e0c081f08b1be0d49c45a5918bf49e22f0b..cd2332fb16a170b9ad4c62a376631b516e75d772 100644 (file)
@@ -1,3 +1,29 @@
+/*
+# ---------------------------------------------------------------------
+#
+# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image 
+#                        pour la Santé)
+# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
+#
+#  This software is governed by the CeCILL-B license under French law and 
+#  abiding by the rules of distribution of free software. You can  use, 
+#  modify and/ or redistribute the software under the terms of the CeCILL-B 
+#  license as circulated by CEA, CNRS and INRIA at the following URL 
+#  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html 
+#  or in the file LICENSE.txt.
+#
+#  As a counterpart to the access to the source code and  rights to copy,
+#  modify and redistribute granted by the license, users are provided only
+#  with a limited warranty  and the software's author,  the holder of the
+#  economic rights,  and the successive licensors  have only  limited
+#  liability. 
+#
+#  The fact that you are presently reading this means that you have had
+#  knowledge of the CeCILL-B license and that you accept its terms.
+# ------------------------------------------------------------------------  
+*/
+
+
 /*=========================================================================                                                                               
 Program:   bbtk
 Module:    $RCSfile$
@@ -51,25 +77,19 @@ namespace bbtk {
 
     //=========================================================================
 
-    void vtkGPortView::update( int idController , int command ) {
-
+    void vtkGPortView::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
-
         double mid = ( xInic + xFin ) / 2 ;
-
         _pts->SetPoint( 0 , xInic , yInic , zInic ) ;
         _pts->SetPoint( 1 , mid , yFin , zInic ) ;
         _pts->SetPoint( 2 , xFin , yInic , zFin ) ;
-
         _fillPolyMapper->Modified( ) ;
-
         //-----------
         setRefreshWaiting( ) ;
     }
@@ -78,8 +98,6 @@ namespace bbtk {
 
     void vtkGPortView::createVtkObjects( ) //virtual
     {
-        _pts = vtkPoints::New( ) ;
-        _pts->SetNumberOfPoints( 3 ) ;
 
         double xInic , yInic , zInic , xFin , yFin , zFin ;
 
@@ -94,17 +112,21 @@ namespace bbtk {
         //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 ) ;
+        _pts = vtkPoints::New( ) ;
+        _pts->SetNumberOfPoints( 3 ) ;
+
+//EED 2017-03-02
+//        _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( ) ;
+        vtkCellArray   *strip          = vtkCellArray::New( ) ;
+        vtkPolyData    *pdFill         = vtkPolyData::New( ) ;
+                       _fillPolyMapper         = vtkPolyDataMapper::New( ) ;
+                       _fillObjectActor        = vtkActor::New( ) ;
 
         // RaC In the actual version, zInic=zFin=GPOSITION_Z
 
@@ -129,29 +151,37 @@ namespace bbtk {
 
     //=========================================================================
 
-    void vtkGPortView::updateColors( ) {
-        _fillObjectActor->GetProperty( )->SetColor( 0.45 , 0.45 , 0.45 ) ;
+    void vtkGPortView::updateColors( ) 
+       {
+//EED2017-04-08
+               float rgb[3];
+               getColors(rgb);
+        _fillObjectActor->GetProperty( )->SetColor( rgb[0] , rgb[1] , rgb[2] ) ;
+    }
+
+    //=========================================================================
+//EED2017-04-08
+       void vtkGPortView::getColors(float* rgb)
+       {
+               rgb[0]=0.45; rgb[1]=0.45; rgb[2]=0.45;
 
         if ( _state == POSSIBLE_CONNECTION ) {
-            _fillObjectActor->GetProperty( )->SetColor( 1 , 1 , 0 ) ;
+                       rgb[0]=1; rgb[1]=1; rgb[2]=0;
         } else if ( _state == SELECTED_POSSIBLE_CONNECTION ) {
-            _fillObjectActor->GetProperty( )->SetColor( 0 , 1 , 0 ) ;
+                       rgb[0]=0; rgb[1]=1; rgb[2]=0;
         } else if ( _state == HIGHLIGHTED ) {
-            _fillObjectActor->GetProperty( )->SetColor( 0 , 0 , 1 ) ;
+                       rgb[0]=0; rgb[1]=0; rgb[2]=1;
         } else {
             GPortModel* portm = ( GPortModel* ) _model ;
             if ( portm->isConnected( ) ) {
-                _fillObjectActor->GetProperty( )->SetColor( 0.15 , 0.15 , 0.15 ) ;
+                               rgb[0]=0.15; rgb[1]=0.15; rgb[2]=0.15;
             } else if ( portm->isValueSet( ) ) {
-                _fillObjectActor->GetProperty( )->SetColor( 0.55 , 0.25 , 0.25 ) ;
+                               rgb[0]=0.55; rgb[1]=0.25; rgb[2]=0.25;
             } else {
-                _fillObjectActor->GetProperty( )->SetColor( 0.45 , 0.45 , 0.45 ) ;
-            }
-        }
-    }
-
-    //=========================================================================
-
+                               rgb[0]=0.45; rgb[1]=0.45; rgb[2]=0.45;
+            } // if portm
+        } // if  _state
+       }
 
 } // EO namespace bbtk