X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FEditorGraphicBBS%2FbbsVtkGUIEditorGraphic%2FvtkGPortView.cxx;h=b0ef338bd65eda4de2ab9c4294462e530adc1cc0;hb=db7d4391e42d1af64599a2bbdc79c5d688ce24da;hp=d02ecc1dca947cb963bf9ca46ff3765c1cd7ac66;hpb=cef73d418644dcb545c7731df11c54146fe82174;p=bbtkGEditor.git diff --git a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGPortView.cxx b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGPortView.cxx index d02ecc1..b0ef338 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,105 +34,147 @@ 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( ) ; + } + + //========================================================================= + + void vtkGPortView::createVtkObjects( ) //virtual + { + + 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 ; + + //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 ) ; + + _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( ) ; + + // RaC In the actual version, zInic=zFin=GPOSITION_Z + + strip->InsertNextCell( 3 ) ; + strip->InsertCellPoint( 0 ) ; + strip->InsertCellPoint( 1 ) ; + strip->InsertCellPoint( 2 ) ; + + pdFill->SetPoints( _pts ) ; + pdFill->SetStrips( strip ) ; + + _fillPolyMapper->SetInput( pdFill ) ; + _fillObjectActor->SetMapper( _fillPolyMapper ) ; + _fillPolyMapper->Modified( ) ; + + ///************************* FILL ************************* + + updateColors( ) ; + + + } + + //========================================================================= + + void vtkGPortView::updateColors( ) { + _fillObjectActor->GetProperty( )->SetColor( 0.45 , 0.45 , 0.45 ) ; + + if ( _state == POSSIBLE_CONNECTION ) { + _fillObjectActor->GetProperty( )->SetColor( 1 , 1 , 0 ) ; + } else if ( _state == SELECTED_POSSIBLE_CONNECTION ) { + _fillObjectActor->GetProperty( )->SetColor( 0 , 1 , 0 ) ; + } else if ( _state == HIGHLIGHTED ) { + _fillObjectActor->GetProperty( )->SetColor( 0 , 0 , 1 ) ; + } else { + GPortModel* portm = ( GPortModel* ) _model ; + if ( portm->isConnected( ) ) { + _fillObjectActor->GetProperty( )->SetColor( 0.15 , 0.15 , 0.15 ) ; + } else if ( portm->isValueSet( ) ) { + _fillObjectActor->GetProperty( )->SetColor( 0.55 , 0.25 , 0.25 ) ; + } else { + _fillObjectActor->GetProperty( )->SetColor( 0.45 , 0.45 , 0.45 ) ; + } + } + } + + //========================================================================= - //========================================================================= - vtkGPortView::vtkGPortView() - { - } - - //========================================================================= - vtkGPortView::~vtkGPortView() - { - } - - //========================================================================= - void vtkGPortView::update() - { - //paint(); - if(_model->getState()==HIGHLIGHTED) - { - _objectActor->GetProperty()->SetColor(0.0,0.2,0.5); - } - else - { - _objectActor->GetProperty()->SetColor(0.3,0.2,0.2); - } - _baseView->GetRenderer()->Render(); - } - - //========================================================================= - - void vtkGPortView::createVtkObjects() //virtual - { - vtkPoints *_pts = vtkPoints::New(); - vtkCellArray *lines = vtkCellArray::New(); - vtkPolyData *_pd = vtkPolyData::New(); - vtkPolyDataMapper* _bboxMapper=vtkPolyDataMapper::New(); - _objectActor=vtkActor::New(); - - _pts->SetNumberOfPoints(4); - - double xInic, yInic,zInic,xFin, yFin,zFin; - _model->getInicPoint(xInic,yInic,zInic); - _model->getFinalPoint(xFin, yFin,zFin); - - _pts->SetPoint(0, xInic, yInic, 0 ); - _pts->SetPoint(1, xInic, yFin, 0 ); - _pts->SetPoint(2, xFin, yFin, 0 ); - _pts->SetPoint(3, xFin, yInic, 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 ); - - _bboxMapper->SetInput(_pd); - _objectActor->SetMapper(_bboxMapper); - - _objectActor->GetProperty()->SetColor(0.8,0.0,0.0); - - } - - //========================================================================= - - -} // EO namespace bbtk +} // EO namespace bbtk // EOF