X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=inline;f=lib%2FEditorGraphicBBS%2FbbsVtkGUIEditorGraphic%2FvtkGPortView.cxx;h=cd2332fb16a170b9ad4c62a376631b516e75d772;hb=f08102d8cf97a93b5fbff395a9fd667eaa26b269;hp=b4f631dcd2abdffc8abbfb69494f1d4afc223582;hpb=4339183c287d12a0b68265ec017cb51e6b24e89a;p=bbtkGEditor.git diff --git a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGPortView.cxx b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGPortView.cxx index b4f631d..cd2332f 100644 --- a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGPortView.cxx +++ b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGPortView.cxx @@ -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$ @@ -8,131 +34,156 @@ Version: $Revision$ /* --------------------------------------------------------------------- -* Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale) -* Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux -* -* 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. -* ------------------------------------------------------------------------ */ + * Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale) + * Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux + * + * 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. + * ------------------------------------------------------------------------ */ /** -* \file -* \brief Class bbtk::vtkGPortView -*/ + * \file + * \brief Class bbtk::vtkGPortView + */ #include "vtkGPortView.h" -namespace bbtk +namespace bbtk { + + + //========================================================================= + + vtkGPortView::vtkGPortView( ) { + } + + //========================================================================= + + vtkGPortView::~vtkGPortView( ) { + } + + //========================================================================= + + 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( ) ; + } - //========================================================================= - vtkGPortView::vtkGPortView() - { - } + //========================================================================= - //========================================================================= - vtkGPortView::~vtkGPortView() - { - } + void vtkGPortView::createVtkObjects( ) //virtual + { - //========================================================================= - void vtkGPortView::update(int idController,int command) - { - updateColors(); - - double xInic, yInic,zInic,xFin, yFin,zFin; + double xInic , yInic , zInic , xFin , yFin , zFin ; - _model->getInicPoint(xInic,yInic,zInic); - _model->getFinalPoint(xFin, yFin,zFin); + _model->getInicPoint( xInic , yInic , zInic ) ; + _model->getFinalPoint( xFin , yFin , zFin ) ; - // RaC In the actual version, zInic=zFin=900 + // RaC In the actual version, zInic=zFin=GPOSITION_Z - double mid = (xInic+xFin)/2; + double mid = ( xInic + xFin ) / 2 ; - _pts->SetPoint(0, xInic, yInic, zInic ); - _pts->SetPoint(1, mid, yFin, zInic ); - _pts->SetPoint(2, xFin, yInic, zFin ); - - setRefreshWaiting(); - } + //EED _pts->SetPoint(0, xInic, yInic, zInic ); + //EED _pts->SetPoint(1, mid, yFin, zInic ); + //EED _pts->SetPoint(2, xFin, yInic, zFin ); - //========================================================================= + _pts = vtkPoints::New( ) ; + _pts->SetNumberOfPoints( 3 ) ; - void vtkGPortView::createVtkObjects() //virtual - { - _pts = vtkPoints::New(); - vtkCellArray *lines = vtkCellArray::New(); - vtkPolyData *_pd = vtkPolyData::New(); - vtkPolyDataMapper* _bboxMapper=vtkPolyDataMapper::New(); - _objectActor=vtkActor::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 ) ; - double xInic, yInic,zInic,xFin, yFin,zFin; - _model->getInicPoint(xInic,yInic,zInic); - _model->getFinalPoint(xFin, yFin,zFin); + ///************************* FILL ************************* - // RaC In the actual version, zInic=zFin=900 + vtkCellArray *strip = vtkCellArray::New( ) ; + vtkPolyData *pdFill = vtkPolyData::New( ) ; + _fillPolyMapper = vtkPolyDataMapper::New( ) ; + _fillObjectActor = vtkActor::New( ) ; - double mid = (xInic+xFin)/2; + // RaC In the actual version, zInic=zFin=GPOSITION_Z - _pts->SetPoint(0, xInic, yInic, zInic ); - _pts->SetPoint(1, mid, yFin, zInic ); - _pts->SetPoint(2, xFin, yInic, zFin ); - - lines->InsertNextCell(4); - lines->InsertCellPoint(0); - lines->InsertCellPoint(1); - lines->InsertCellPoint(2); - lines->InsertCellPoint(0); - - _pd->SetPoints( _pts ); - _pd->SetLines( lines ); + strip->InsertNextCell( 3 ) ; + strip->InsertCellPoint( 0 ) ; + strip->InsertCellPoint( 1 ) ; + strip->InsertCellPoint( 2 ) ; - _bboxMapper->SetInput(_pd); - _objectActor->SetMapper(_bboxMapper); + pdFill->SetPoints( _pts ) ; + pdFill->SetStrips( strip ) ; - updateColors(); + _fillPolyMapper->SetInput( pdFill ) ; + _fillObjectActor->SetMapper( _fillPolyMapper ) ; + _fillPolyMapper->Modified( ) ; + ///************************* FILL ************************* - } + updateColors( ) ; - //========================================================================= - void vtkGPortView::updateColors() - { - _objectActor->GetProperty()->SetColor(BOXCONTOUR_NH_R,BOXCONTOUR_NH_G,BOXCONTOUR_NH_B); - - if(_state==HIGHLIGHTED) - { - _objectActor->GetProperty()->SetColor(0.8,0.2,0.5); - } - else - { - _objectActor->GetProperty()->SetColor(0.3,0.2,0.2); - } - } + } - //========================================================================= + //========================================================================= + 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 ) { + rgb[0]=1; rgb[1]=1; rgb[2]=0; + } else if ( _state == SELECTED_POSSIBLE_CONNECTION ) { + rgb[0]=0; rgb[1]=1; rgb[2]=0; + } else if ( _state == HIGHLIGHTED ) { + rgb[0]=0; rgb[1]=0; rgb[2]=1; + } else { + GPortModel* portm = ( GPortModel* ) _model ; + if ( portm->isConnected( ) ) { + rgb[0]=0.15; rgb[1]=0.15; rgb[2]=0.15; + } else if ( portm->isValueSet( ) ) { + rgb[0]=0.55; rgb[1]=0.25; rgb[2]=0.25; + } else { + rgb[0]=0.45; rgb[1]=0.45; rgb[2]=0.45; + } // if portm + } // if _state + } -} // EO namespace bbtk +} // EO namespace bbtk // EOF