FlyoDoc_2011 Pisa 2011 by GmP --- 011
Public Member Functions | Protected Attributes

DevOtOt Class Reference

#include <devotot.h>

Inheritance diagram for DevOtOt:
DevOt DevRt Device

List of all members.

Public Member Functions

virtual int Posizione ()
virtual double CamInter ()
virtual double CamBuco ()
virtual void Prgeom ()

Protected Attributes

gvet Dins
gvet Dind
gvet P_Cin
gvet Dinrs
gvet Dinrd
gvet P_Crot
gvet V_rot

Detailed Description

Author:
gmp

Definition at line 18 of file devotot.h.


Member Function Documentation

double DevOtOt::CamInter ( ) [virtual]

poi verifico se colpisce le pareti del buco .....

Reimplemented from DevOt.

Definition at line 72 of file devotot.cpp.

{
//uso quella di DevRt per calcolare il cammino
// interno senza il buco...
  double tratto=DevOt::CamInter();
  double nv,t;
  camm=-1.;
// calcolo il cammino positivo verso le otto+2  superfici del buco. Per dist>0
// scelgo il cammino maggiore

  if((nv=V_dev[0])>0.0 && Dins[0]>0.0)  // piani x
      {t=Dins[0]/nv;  if(t>camm)camm=t;}
  else if(nv<0.0 && Dind[0]>0.0)
      {t=-Dind[0]/nv; if(t>camm)camm=t;}
  if((nv=V_dev[1])>0.0 && Dins[1]>0.0)  // piani y
      {t=Dins[1]/nv;  if(t>camm)camm=t;}
  else if(nv<0.0 && Dind[1]>0.0)
      {t=-Dind[1]/nv; if(t>camm)camm=t;}   
  if((nv=V_dev[2])>0.0 && Dins[2]>0.0)  // piani z
      {t=Dins[2]/nv;  if(t>camm)camm=t;}
  else if(nv<0.0 && Dind[2]>0.0)
      {t=-Dind[2]/nv; if(t>camm)camm=t;}

// roto di 45 gradi per controllare il moto rispetto ai piani inclinati...
     V_rot.setvn(Firot*(V_dev[0]+V_dev[1]),Firot*(V_dev[1]-V_dev[0]), V_dev[2]);

   if((nv=V_rot[0])>0.0 && Dinrs[0]>0.0)  // piani x
      {t=Dinrs[0]/nv;  if(t>camm)camm=t;}
  else if(nv<0.0 && Dinrd[0]>0.0)
      {t=-Dinrd[0]/nv; if(t>camm)camm=t;}
  if((nv=V_rot[1])>0.0 && Dinrs[1]>0.0)  // piani y
      {t=Dinrs[1]/nv;  if(t>camm)camm=t;}
  else if(nv<0.0 && Dind[1]>0.0)
      {t=-Dinrd[1]/nv; if(t>camm)camm=t;}
// test su zeta non serve
 
// quindi confronto camm con tratto e accetto il cammino piu' breve......
  if(camm<0.0) {camm=tratto; return camm;}
  if(camm>0.0 && tratto<camm) camm=tratto;
  return camm;
}

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables