//---------------------------------------------------------------------------- // EgalTech 2023-2023 //---------------------------------------------------------------------------- // File : IntersLineCyl.h Data : 16.05.23 Versione : 2.5e3 // Contenuto : Dichiarazione funzioni base per intersezione linea/cilindro. // // // // Modifiche : 16.05.23 DS Creazione modulo. // // //---------------------------------------------------------------------------- #pragma once #include "/EgtDev/Include/EGkPoint3d.h" //---------------------------------------------------------------------------- // Linea e cilindro sono nel medesimo riferimento. // Il cilindro è centrato sull'asse Z e appoggiato sul piano XY. // Con intersezione viene restituito true e i parametri in dU1 e dU2. //---------------------------------------------------------------------------- bool IntersLineCyl( const Point3d& ptL, const Vector3d& vtL, double dRad, double dHeight, double& dU1, double& dU2) ; //---------------------------------------------------------------------------- inline bool TestIntersLineCyl( const Point3d& ptL, const Vector3d& vtL, double dRad, double dHeight) { double dU1, dU2 ; return IntersLineCyl( ptL, vtL, dRad, dHeight, dU1, dU2) ; } //---------------------------------------------------------------------------- // Linea e cilindro sono nel medesimo riferimento. // Il cilindro è definito con centro della base, asse raggio e altezza. // In caso di intersezione viene restituito true e i parametri in dU1 e dU2. //---------------------------------------------------------------------------- bool IntersLineCyl( const Point3d& ptL, const Vector3d& vtL, const Point3d& ptCyl, const Vector3d& vtCyl, double dRad, double dHeight, double& dU1, double& dU2) ; //---------------------------------------------------------------------------- // Linea e cilindro sono nel medesimo riferimento. // Il cilindro è definito con centri delle due basi, e raggio. // In caso di intersezione viene restituito true e i parametri in dU1 e dU2. //---------------------------------------------------------------------------- bool IntersLineCyl( const Point3d& ptL, const Vector3d& vtL, const Point3d& ptCyl1, const Point3d& ptCyl2, double dRad, double& dU1, double& dU2) ;