FlyoDoc_2011 Pisa 2011 by GmP --- 011
|
#include <devcln.h>
Public Member Functions | |
virtual int | Posizione () |
virtual double | CamEster () |
virtual double | CamInter () |
virtual void | Prgeom () |
Protected Attributes | |
gvet | Douts |
gvet | Doutd |
double | rout |
double | routq |
double | drq |
double | vxyq |
double DevCln::CamInter | ( | ) | [virtual] |
qui rivedrei ... deve sempre essere t>0!!!!
Reimplemented from Device.
Reimplemented in DevSector.
Definition at line 113 of file devcln.cpp.
{ double b,c,dltq,t,nv; camm=1.0e+10; // calcolo il cammino verso le superfici esterne // quella cilindrica e le basi del cilindro. // scelgo il cammino positivo minore... // calcolo il cammino positivo verso la superfice del cilindro interno. // le soluzioni sono sempre di segno opposto. if ( vxyq>0.0 ) { b=V_dev.x*X_dev.x+V_dev.y*X_dev.y; c=drq-routq; // nota sempre negativo internamente al cilindro. if ( ( dltq=b*b-vxyq*c ) >=0.0 ) { t= ( -b + sqrt ( dltq ) ) /vxyq; // Scelgo la soluzione positiva if ( t>=0.0 ) camm=t; } } // controllo anche la zeta.... if ( ( nv=V_dev.z ) >0.0 ) // piani z {t=-Doutd.z/nv; if ( t<camm ) camm=t; } else if ( nv<0.0 ) {t=Douts.z/nv; if ( t<camm ) camm=t; } return camm; }