0a63a4c9a2
- modifiche per verifica collisione con TriMesh chiuse - aggiunta gestione Capsule.
53 lines
2.4 KiB
C
53 lines
2.4 KiB
C
//----------------------------------------------------------------------------
|
|
// 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) ;
|