ddade325c4
- standardizzate le funzione Collision Detection sia per trimesh sia per Zmap (ex Avoid...) - nelle funzioni Cde ora se arrivano geometrie errate si ritorna collisione (maggior sicurezza).
38 lines
1.3 KiB
C++
38 lines
1.3 KiB
C++
//----------------------------------------------------------------------------
|
|
// EgalTech 2020-2020
|
|
//----------------------------------------------------------------------------
|
|
// File : CDeSpheTria.cpp Data : 09.01.20 Versione : 2.2a2
|
|
// Contenuto : Implementazione della verifica di collisione tra
|
|
// Sphere e Triangle3d.
|
|
//
|
|
//
|
|
// Modifiche :09.01.20 DS Creazione modulo.
|
|
//
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
//--------------------------- Include ----------------------------------------
|
|
#include "stdafx.h"
|
|
#include "CDeSpheTria.h"
|
|
#include "/EgtDev/Include/EGkDistPointTria.h"
|
|
|
|
using namespace std ;
|
|
|
|
//----------------------------------------------------------------------------
|
|
bool
|
|
CDeSimpleSpheTria( const Point3d& ptCen, double dR, const Triangle3d& trTria)
|
|
{
|
|
// Determino la minima distanza tra centro della sfera e triangolo
|
|
double dSqDist ;
|
|
if ( ! DistPointTriangle( ptCen, trTria).GetSqDist( dSqDist))
|
|
return false ;
|
|
return ( dSqDist < dR * dR) ;
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
bool
|
|
CDeSpheTria( const Point3d& ptCen, double dR, const Triangle3d& trTria, double dSafeDist)
|
|
{
|
|
return CDeSimpleSpheTria( ptCen, dR + max( 0., dSafeDist), trTria) ;
|
|
}
|