+ //=========================================================================
+ void vtkGBlackBoxView::update_X_Fin()
+ {
+ double xInic, yInic,zInic,xFin, yFin,zFin;
+ _model->getInicPoint(xInic,yInic,zInic);
+ double *bounds = _boxTextActor->GetBounds();
+ _model->getFinalPoint(xFin, yFin,zFin);
+
+ double xFin1,xFin2,xFin3;
+ // position referens from box name
+ xFin1 = xInic+(bounds[1]-bounds[0])/2 + 20;
+ xFin2=xFin1;
+ xFin3=xFin1;
+ // position referens from input ports
+ GBoxModel* gbm=(GBoxModel*)_model;
+ if ( gbm->getNumInputPorts()>0 )
+ {
+ GPortModel* gpm = gbm->getInputPort( gbm->getNumInputPorts()-1 );
+ double xpFin, ypFin, zpFin;
+ gpm->getFinalPoint(xpFin, ypFin, zpFin);
+ xFin2 = xpFin+1;
+ }
+ // position referens from output ports
+ if ( gbm->getNumOutputPorts()>0 )
+ {
+ GPortModel* gpm = gbm->getOutputPort( gbm->getNumOutputPorts()-1 );
+ double xpFin, ypFin, zpFin;
+ gpm->getFinalPoint(xpFin, ypFin, zpFin);
+ xFin3 = xpFin+2;
+ }
+ xFin=xFin1;
+ if (xFin2>xFin) xFin=xFin2;
+ if (xFin3>xFin) xFin=xFin3;
+ _model->setFinalPoint( xFin , yFin , zFin );
+ }
+