X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FEditorGraphicBBS%2FbbsVtkGUIEditorGraphic%2FvtkGComplexBoxPortView.cxx;h=d9fd4572fe89b7dd927a990dce3c265245434e7a;hb=0dfaa8eefbfad1092161af92ba548f1172ed6652;hp=35dc1a8bc592320d9c4c31baf9b6dd59ab671ca6;hpb=f4dd416d1d3a91b9d684f55a14d78c6b54f2725a;p=bbtkGEditor.git diff --git a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGComplexBoxPortView.cxx b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGComplexBoxPortView.cxx index 35dc1a8..d9fd457 100644 --- a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGComplexBoxPortView.cxx +++ b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGComplexBoxPortView.cxx @@ -8,213 +8,201 @@ 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::vtkGComplexBoxPortView -*/ + * \file + * \brief Class bbtk::vtkGComplexBoxPortView + */ #include "vtkGComplexBoxPortView.h" -namespace bbtk -{ - - - //========================================================================= - vtkGComplexBoxPortView::vtkGComplexBoxPortView() - { - } - - //========================================================================= - vtkGComplexBoxPortView::~vtkGComplexBoxPortView() - { - } - - //========================================================================= - void vtkGComplexBoxPortView::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=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 ); - - updatePorts(); - - _borderPolyMapper->Modified(); - _fillPolyMapper->Modified(); - //----------- - - //----------- - setRefreshWaiting(); - } - - //========================================================================= - - void vtkGComplexBoxPortView::createVtkObjects() //virtual - { - - //------------ - _pts = vtkPoints::New(); - vtkCellArray *lines = vtkCellArray::New(); - vtkPolyData *_pd = vtkPolyData::New(); - _borderPolyMapper=vtkPolyDataMapper::New(); - _borderObjectActor=vtkActor::New(); - - _pts->SetNumberOfPoints(4); - - double xInic, yInic,zInic,xFin, yFin,zFin; - _model->getInicPoint(xInic,yInic,zInic); - _model->getFinalPoint(xFin, yFin,zFin); - - // RaC In the actual version, zInic=zFin=900 - -//EED _pts->SetPoint(0, xInic, yInic, zInic ); -//EED _pts->SetPoint(1, xInic, yFin, zInic ); -//EED _pts->SetPoint(2, xFin, yFin, zFin ); -//EED _pts->SetPoint(3, xFin, yInic, zFin ); - - - _pts->SetPoint(0, -1000, -1000, -1000 ); - _pts->SetPoint(1, xInic, yFin, zInic ); - _pts->SetPoint(2, 1000, 1000, 1000 ); - _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 ); - - _borderPolyMapper->SetInput(_pd); - _borderObjectActor->SetMapper(_borderPolyMapper); - _borderPolyMapper->Modified(); - - - ///************************* FILL ************************* - - vtkCellArray *strip = vtkCellArray::New(); - vtkPolyData *pdFill = vtkPolyData::New(); - _fillPolyMapper=vtkPolyDataMapper::New(); - _fillObjectActor=vtkActor::New(); - - // RaC In the actual version, zInic=zFin=900 - - strip->InsertNextCell(5); - strip->InsertCellPoint(0); - strip->InsertCellPoint(1); - strip->InsertCellPoint(2); - strip->InsertCellPoint(0); - strip->InsertCellPoint(3); - - pdFill->SetPoints( _pts ); - pdFill->SetStrips( strip ); - - _fillPolyMapper->SetInput(pdFill); - _fillObjectActor->SetMapper(_fillPolyMapper); - _fillPolyMapper->Modified(); - - ///************************* FILL ************************* - - } - - //========================================================================= - - void vtkGComplexBoxPortView::addVtkActors()//virtual - { - _baseView->GetRenderer()->AddActor(_borderObjectActor); - vtkGObjectView::addVtkActors(); - } - - //========================================================================= - - void vtkGComplexBoxPortView::removeVtkActors()//virtual - { - _baseView->GetRenderer()->RemoveActor(_borderObjectActor); - vtkGObjectView::removeVtkActors(); - } - - //========================================================================= - - void vtkGComplexBoxPortView::updateColors() - { - _fillObjectActor->GetProperty()->SetAmbient(0.6); - - if(_state==NOTHING_HAPPENS) - { - _borderObjectActor->GetProperty()->SetLineWidth(1); - - - GComplexBoxPortModel *portModel = (GComplexBoxPortModel*)_model; - if(portModel->getComplexPortType() == GCOMPLEXINPUTPORT) - { - _fillObjectActor->GetProperty()->SetColor(COMPLEXINPUTPORTFILL_NH_R,COMPLEXINPUTPORTFILL_NH_G,COMPLEXINPUTPORTFILL_NH_B); - _borderObjectActor->GetProperty()->SetColor(COMPLEXINPUTPORTBORDER_NH_R,COMPLEXINPUTPORTBORDER_NH_G,COMPLEXINPUTPORTBORDER_NH_B); - } - else if (portModel->getComplexPortType() == GCOMPLEXOUTPUTPORT) - { - _fillObjectActor->GetProperty()->SetColor(COMPLEXOUTPUTPORTFILL_NH_R,COMPLEXOUTPUTPORTFILL_NH_G,COMPLEXOUTPUTPORTFILL_NH_B); - _borderObjectActor->GetProperty()->SetColor(COMPLEXOUTPUTPORTBORDER_NH_R,COMPLEXOUTPUTPORTBORDER_NH_G,COMPLEXOUTPUTPORTBORDER_NH_B); - } - - } - else if(_state==HIGHLIGHTED) - { - _borderObjectActor->GetProperty()->SetLineWidth(2); - - _borderObjectActor->GetProperty()->SetColor(BOXBORDER_HIGHLIGHTED_R,BOXBORDER_HIGHLIGHTED_G,BOXBORDER_HIGHLIGHTED_B); - _fillObjectActor->GetProperty()->SetColor(BOXFILL_HIGHLIGHTED_R,BOXFILL_HIGHLIGHTED_G,BOXFILL_HIGHLIGHTED_B); - } - else if(_state==DRAG) - { - _borderObjectActor->GetProperty()->SetLineWidth(1.2); - _borderObjectActor->GetProperty()->SetColor(BOXBORDER_DRAG_R,BOXBORDER_DRAG_G,BOXBORDER_DRAG_B); - _fillObjectActor->GetProperty()->SetColor(BOXFILL_DRAG_R,BOXFILL_DRAG_G,BOXFILL_DRAG_B); - } - else if(_state==SELECTED) - { - _borderObjectActor->GetProperty()->SetLineWidth(2); - _borderObjectActor->GetProperty()->SetColor(BOXBORDER_SELECTED_R,BOXBORDER_SELECTED_G,BOXBORDER_SELECTED_B); - _fillObjectActor->GetProperty()->SetColor(BOXFILL_SELECTED_R,BOXFILL_SELECTED_G,BOXFILL_SELECTED_B); - } - } - - //========================================================================= - - -} // EO namespace bbtk +namespace bbtk { + + + //========================================================================= + + vtkGComplexBoxPortView::vtkGComplexBoxPortView( ) { + } + + //========================================================================= + + vtkGComplexBoxPortView::~vtkGComplexBoxPortView( ) { + } + + //========================================================================= + + void vtkGComplexBoxPortView::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=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 ) ; + + updatePorts( ) ; + + _borderPolyMapper->Modified( ) ; + _fillPolyMapper->Modified( ) ; + //----------- + + //----------- + setRefreshWaiting( ) ; + } + + //========================================================================= + + void vtkGComplexBoxPortView::createVtkObjects( ) //virtual + { + + //------------ + _pts = vtkPoints::New( ) ; + vtkCellArray *lines = vtkCellArray::New( ) ; + vtkPolyData *_pd = vtkPolyData::New( ) ; + _borderPolyMapper = vtkPolyDataMapper::New( ) ; + _borderObjectActor = vtkActor::New( ) ; + + _pts->SetNumberOfPoints( 4 ) ; + + double xInic , yInic , zInic , xFin , yFin , zFin ; + _model->getInicPoint( xInic , yInic , zInic ) ; + _model->getFinalPoint( xFin , yFin , zFin ) ; + + // RaC In the actual version, zInic=zFin=900 + + //EED _pts->SetPoint(0, xInic, yInic, zInic ); + //EED _pts->SetPoint(1, xInic, yFin, zInic ); + //EED _pts->SetPoint(2, xFin, yFin, zFin ); + //EED _pts->SetPoint(3, xFin, yInic, zFin ); + + + _pts->SetPoint( 0 , -1000 , -1000 , -1000 ) ; + _pts->SetPoint( 1 , xInic , yFin , zInic ) ; + _pts->SetPoint( 2 , 1000 , 1000 , 1000 ) ; + _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 ) ; + + _borderPolyMapper->SetInput( _pd ) ; + _borderObjectActor->SetMapper( _borderPolyMapper ) ; + _borderPolyMapper->Modified( ) ; + + + ///************************* FILL ************************* + + vtkCellArray *strip = vtkCellArray::New( ) ; + vtkPolyData *pdFill = vtkPolyData::New( ) ; + _fillPolyMapper = vtkPolyDataMapper::New( ) ; + _fillObjectActor = vtkActor::New( ) ; + + // RaC In the actual version, zInic=zFin=900 + + strip->InsertNextCell( 5 ) ; + strip->InsertCellPoint( 0 ) ; + strip->InsertCellPoint( 1 ) ; + strip->InsertCellPoint( 2 ) ; + strip->InsertCellPoint( 0 ) ; + strip->InsertCellPoint( 3 ) ; + + pdFill->SetPoints( _pts ) ; + pdFill->SetStrips( strip ) ; + + _fillPolyMapper->SetInput( pdFill ) ; + _fillObjectActor->SetMapper( _fillPolyMapper ) ; + _fillPolyMapper->Modified( ) ; + + ///************************* FILL ************************* + + } + + //========================================================================= + + void vtkGComplexBoxPortView::addVtkActors( )//virtual + { + _baseView->GetRenderer( )->AddActor( _borderObjectActor ) ; + vtkGObjectView::addVtkActors( ) ; + } + + //========================================================================= + + void vtkGComplexBoxPortView::removeVtkActors( )//virtual + { + _baseView->GetRenderer( )->RemoveActor( _borderObjectActor ) ; + vtkGObjectView::removeVtkActors( ) ; + } + + //========================================================================= + + void vtkGComplexBoxPortView::updateColors( ) { + _fillObjectActor->GetProperty( )->SetAmbient( 0.6 ) ; + + if ( _state == NOTHING_HAPPENS ) { + _borderObjectActor->GetProperty( )->SetLineWidth( 1 ) ; + + + GComplexBoxPortModel *portModel = ( GComplexBoxPortModel* ) _model ; + if ( portModel->getComplexPortType( ) == GCOMPLEXINPUTPORT ) { + _fillObjectActor->GetProperty( )->SetColor( COMPLEXINPUTPORTFILL_NH_R , COMPLEXINPUTPORTFILL_NH_G , COMPLEXINPUTPORTFILL_NH_B ) ; + _borderObjectActor->GetProperty( )->SetColor( COMPLEXINPUTPORTBORDER_NH_R , COMPLEXINPUTPORTBORDER_NH_G , COMPLEXINPUTPORTBORDER_NH_B ) ; + } else if ( portModel->getComplexPortType( ) == GCOMPLEXOUTPUTPORT ) { + _fillObjectActor->GetProperty( )->SetColor( COMPLEXOUTPUTPORTFILL_NH_R , COMPLEXOUTPUTPORTFILL_NH_G , COMPLEXOUTPUTPORTFILL_NH_B ) ; + _borderObjectActor->GetProperty( )->SetColor( COMPLEXOUTPUTPORTBORDER_NH_R , COMPLEXOUTPUTPORTBORDER_NH_G , COMPLEXOUTPUTPORTBORDER_NH_B ) ; + } + + } else if ( _state == HIGHLIGHTED ) { + _borderObjectActor->GetProperty( )->SetLineWidth( 2 ) ; + + _borderObjectActor->GetProperty( )->SetColor( BOXBORDER_HIGHLIGHTED_R , BOXBORDER_HIGHLIGHTED_G , BOXBORDER_HIGHLIGHTED_B ) ; + _fillObjectActor->GetProperty( )->SetColor( BOXFILL_HIGHLIGHTED_R , BOXFILL_HIGHLIGHTED_G , BOXFILL_HIGHLIGHTED_B ) ; + } else if ( _state == DRAG ) { + _borderObjectActor->GetProperty( )->SetLineWidth( 1.2 ) ; + _borderObjectActor->GetProperty( )->SetColor( BOXBORDER_DRAG_R , BOXBORDER_DRAG_G , BOXBORDER_DRAG_B ) ; + _fillObjectActor->GetProperty( )->SetColor( BOXFILL_DRAG_R , BOXFILL_DRAG_G , BOXFILL_DRAG_B ) ; + } else if ( _state == SELECTED ) { + _borderObjectActor->GetProperty( )->SetLineWidth( 2 ) ; + _borderObjectActor->GetProperty( )->SetColor( BOXBORDER_SELECTED_R , BOXBORDER_SELECTED_G , BOXBORDER_SELECTED_B ) ; + _fillObjectActor->GetProperty( )->SetColor( BOXFILL_SELECTED_R , BOXFILL_SELECTED_G , BOXFILL_SELECTED_B ) ; + } + } + + //========================================================================= + + +} // EO namespace bbtk // EOF