1 /*=========================================================================
7 =========================================================================*/
9 /* ---------------------------------------------------------------------
11 * Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale)
12 * Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux
14 * This software is governed by the CeCILL-B license under French law and
15 * abiding by the rules of distribution of free software. You can use,
16 * modify and/ or redistribute the software under the terms of the CeCILL-B
17 * license as circulated by CEA, CNRS and INRIA at the following URL
18 * http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
19 * or in the file LICENSE.txt.
21 * As a counterpart to the access to the source code and rights to copy,
22 * modify and redistribute granted by the license, users are provided only
23 * with a limited warranty and the software's author, the holder of the
24 * economic rights, and the successive licensors have only limited
27 * The fact that you are presently reading this means that you have had
28 * knowledge of the CeCILL-B license and that you accept its terms.
29 * ------------------------------------------------------------------------ */
33 * \brief Class bbtk::vtkGPortView
37 #include "vtkGPortView.h"
42 //=========================================================================
44 vtkGPortView::vtkGPortView( ) {
47 //=========================================================================
49 vtkGPortView::~vtkGPortView( ) {
52 //=========================================================================
54 void vtkGPortView::update( int idController , int command ) {
58 double xInic , yInic , zInic , xFin , yFin , zFin ;
60 _model->getInicPoint( xInic , yInic , zInic ) ;
61 _model->getFinalPoint( xFin , yFin , zFin ) ;
63 // RaC In the actual version, zInic=zFin=900
65 double mid = ( xInic + xFin ) / 2 ;
67 _pts->SetPoint( 0 , xInic , yInic , zInic ) ;
68 _pts->SetPoint( 1 , mid , yFin , zInic ) ;
69 _pts->SetPoint( 2 , xFin , yInic , zFin ) ;
71 _fillPolyMapper->Modified( ) ;
74 setRefreshWaiting( ) ;
77 //=========================================================================
79 void vtkGPortView::createVtkObjects( ) //virtual
81 _pts = vtkPoints::New( ) ;
82 _pts->SetNumberOfPoints( 3 ) ;
84 double xInic , yInic , zInic , xFin , yFin , zFin ;
86 _model->getInicPoint( xInic , yInic , zInic ) ;
87 _model->getFinalPoint( xFin , yFin , zFin ) ;
89 // RaC In the actual version, zInic=zFin=900
91 double mid = ( xInic + xFin ) / 2 ;
93 //EED _pts->SetPoint(0, xInic, yInic, zInic );
94 //EED _pts->SetPoint(1, mid, yFin, zInic );
95 //EED _pts->SetPoint(2, xFin, yInic, zFin );
97 _pts->SetPoint( 0 , -1000 , -1000 , -1000 ) ;
98 _pts->SetPoint( 1 , mid , yFin , zInic ) ;
99 _pts->SetPoint( 2 , 1000 , 1000 , 1000 ) ;
102 ///************************* FILL *************************
104 vtkCellArray *strip = vtkCellArray::New( ) ;
105 vtkPolyData *pdFill = vtkPolyData::New( ) ;
106 _fillPolyMapper = vtkPolyDataMapper::New( ) ;
107 _fillObjectActor = vtkActor::New( ) ;
109 // RaC In the actual version, zInic=zFin=900
111 strip->InsertNextCell( 3 ) ;
112 strip->InsertCellPoint( 0 ) ;
113 strip->InsertCellPoint( 1 ) ;
114 strip->InsertCellPoint( 2 ) ;
116 pdFill->SetPoints( _pts ) ;
117 pdFill->SetStrips( strip ) ;
119 _fillPolyMapper->SetInput( pdFill ) ;
120 _fillObjectActor->SetMapper( _fillPolyMapper ) ;
121 _fillPolyMapper->Modified( ) ;
123 ///************************* FILL *************************
130 //=========================================================================
132 void vtkGPortView::updateColors( ) {
133 _fillObjectActor->GetProperty( )->SetColor( 0.45 , 0.45 , 0.45 ) ;
135 if ( _state == POSSIBLE_CONNECTION ) {
136 _fillObjectActor->GetProperty( )->SetColor( 1 , 1 , 0 ) ;
137 } else if ( _state == SELECTED_POSSIBLE_CONNECTION ) {
138 _fillObjectActor->GetProperty( )->SetColor( 0 , 1 , 0 ) ;
139 } else if ( _state == HIGHLIGHTED ) {
140 _fillObjectActor->GetProperty( )->SetColor( 0 , 0 , 1 ) ;
142 GPortModel* portm = ( GPortModel* ) _model ;
143 if ( portm->isConnected( ) ) {
144 _fillObjectActor->GetProperty( )->SetColor( 0.15 , 0.15 , 0.15 ) ;
145 } else if ( portm->isValueSet( ) ) {
146 _fillObjectActor->GetProperty( )->SetColor( 0.55 , 0.25 , 0.25 ) ;
148 _fillObjectActor->GetProperty( )->SetColor( 0.45 , 0.45 , 0.45 ) ;
153 //=========================================================================
156 } // EO namespace bbtk