X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FEditorGraphicBBS%2FbbsVtkGUIEditorGraphic%2FvtkGPortView.cxx;h=5cd33e0c081f08b1be0d49c45a5918bf49e22f0b;hb=e4d5a319ef249bde6c4f4ddfee66f6258558bf91;hp=d6bef81568860aae7bc07f4d537605b32eec53f7;hpb=8fa663b7b47e797e6e23722d1fef41c40419a6d6;p=bbtkGEditor.git diff --git a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGPortView.cxx b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGPortView.cxx index d6bef81..5cd33e0 100644 --- a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGPortView.cxx +++ b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGPortView.cxx @@ -8,121 +8,152 @@ 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() - { - } + vtkGPortView::vtkGPortView( ) { + } - //========================================================================= - void vtkGPortView::update(int command) - { - if(_model->getState()==HIGHLIGHTED) - { - _objectActor->GetProperty()->SetColor(0.8,0.2,0.5); - } - else - { - _objectActor->GetProperty()->SetColor(0.3,0.2,0.2); - } + //========================================================================= - double xInic, yInic,zInic,xFin, yFin,zFin; + vtkGPortView::~vtkGPortView( ) { + } - _model->getInicPoint(xInic,yInic,zInic); - _model->getFinalPoint(xFin, yFin,zFin); + //========================================================================= - // RaC In the actual version, zInic=zFin=900 + void vtkGPortView::update( int idController , int command ) { - _pts->SetPoint(0, xInic, yInic, zInic ); - _pts->SetPoint(1, xInic, yFin, zInic ); - _pts->SetPoint(2, xFin, yFin, zFin ); - _pts->SetPoint(3, xFin, yInic, zFin ); + updateColors( ) ; - _baseView->GetRenderer()->Render(); - _baseView->GetRenWin()->Render(); + 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 - void vtkGPortView::createVtkObjects() //virtual - { - _pts = vtkPoints::New(); - vtkCellArray *lines = vtkCellArray::New(); - vtkPolyData *_pd = vtkPolyData::New(); - vtkPolyDataMapper* _bboxMapper=vtkPolyDataMapper::New(); - _objectActor=vtkActor::New(); - - _pts->SetNumberOfPoints(4); + double mid = ( xInic + xFin ) / 2 ; - double xInic, yInic,zInic,xFin, yFin,zFin; + _pts->SetPoint( 0 , xInic , yInic , zInic ) ; + _pts->SetPoint( 1 , mid , yFin , zInic ) ; + _pts->SetPoint( 2 , xFin , yInic , zFin ) ; - _model->getInicPoint(xInic,yInic,zInic); - _model->getFinalPoint(xFin, yFin,zFin); + _fillPolyMapper->Modified( ) ; - // RaC In the actual version, zInic=zFin=900 - _pts->SetPoint(0, xInic, yInic, zInic ); - _pts->SetPoint(1, xInic, yFin, zInic ); - _pts->SetPoint(2, xFin, yFin, zFin ); - _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 ); + //----------- + setRefreshWaiting( ) ; + } - _bboxMapper->SetInput(_pd); - _objectActor->SetMapper(_bboxMapper); + //========================================================================= - _objectActor->GetProperty()->SetColor(BOXCONTOUR_NH_R,BOXCONTOUR_NH_G,BOXCONTOUR_NH_B); + void vtkGPortView::createVtkObjects( ) //virtual + { + _pts = vtkPoints::New( ) ; + _pts->SetNumberOfPoints( 3 ) ; - } + 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 -} // EO namespace bbtk + 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->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 ) ; + } + } + } + + //========================================================================= + + +} // EO namespace bbtk // EOF