Include :

- eliminati prototipi collisioni con triangoli
- aggiornati altri prototipi.
This commit is contained in:
Dario Sassi
2020-12-21 07:19:18 +00:00
parent bdac82ee73
commit c4642fb6f2
11 changed files with 114 additions and 151 deletions
-27
View File
@@ -1,27 +0,0 @@
//----------------------------------------------------------------------------
// EgalTech 2016-2020
//----------------------------------------------------------------------------
// File : EGkCDeBoxTria.h Data : 09.01.20 Versione : 2.2a2
// Contenuto : Dichiarazione funzione verifica collisione tra
// BoundingBox e Triangle3d.
//
// Modifiche : 05.10.16 DS Creazione modulo.
// 09.01.20 DS Cambiati parametri.
//
//----------------------------------------------------------------------------
#pragma once
#include "/EgtDev/Include/EGkBBox3d.h"
#include "/EgtDev/Include/EGkTriangle3d.h"
//----------------------- Macro per import/export ----------------------------
#undef EGK_EXPORT
#if defined( I_AM_EGK) // da definirsi solo nella DLL
#define EGK_EXPORT __declspec( dllexport)
#else
#define EGK_EXPORT __declspec( dllimport)
#endif
//----------------------------------------------------------------------------
EGK_EXPORT bool CDeBoxTria( const Frame3d& frBox, const Vector3d& vtDiag, double dSafeDist, const Triangle3d& trTria) ;
+30
View File
@@ -0,0 +1,30 @@
//----------------------------------------------------------------------------
// EgalTech 2020-2020
//----------------------------------------------------------------------------
// File : EGkCDeSurfTmSurfTm.h Data : 13.11.20 Versione :
// Contenuto : Dichiarazione funzione verifica collisione tra
// SurfTm e SurfTm.
//
// Modifiche : 13.11.20 LM Creazione modulo.
//
//
//----------------------------------------------------------------------------
#pragma once
#include "EgtDev/Include/EGkSurfTriMesh.h"
//----------------------- Macro per import/export ----------------------------
#undef EGK_EXPORT
#if defined( I_AM_EGK) // da definirsi solo nella DLL
#define EGK_EXPORT __declspec( dllexport)
#else
#define EGK_EXPORT __declspec( dllimport)
#endif
//----------------------------------------------------------------------------
// La funzione restituisce true in caso di collisone, false in caso di assenza
// di collisione o inconsistenza dei parametri di input.
// Le due superfici devono essere espresse nel medesimo sistema di riferimento.
// La distanza di sicurezza ha effetto solo se maggiore di EPS_SMALL.
EGK_EXPORT bool CDeClosedSurfTmClosedSurfTm( const SurfTriMesh& SurfA, const SurfTriMesh& SurfB, double dSafeDist) ;
@@ -1,30 +1,30 @@
//----------------------------------------------------------------------------
// EgalTech 2020-2020
//----------------------------------------------------------------------------
// File : CDeConTria.cpp Data : 28.10.20 Versione : 2.2k1
// Contenuto : Dichiarazione della verifica di collisione tra
// Cone e Triangle3d.
// File : EGkCDeConeClosedSurfTm.h Data : 09.11.20 Versione :
// Contenuto : Dichiarazione funzione verifica collisione tra
// Cone e Closed SurfTriMesh.
//
//
// Modifiche : 28.10.20 LM Creazione modulo.
// Modifiche : 09.11.20 LM Creazione modulo.
//
//
//----------------------------------------------------------------------------
#pragma once
#include "EgtDev/Include/EGkFrame3d.h"
#include "EgtDev/Include/EGkTriangle3d.h"
#include "/EgtDev/Include/EGkSurfTriMesh.h"
//----------------------- Macro per import/export ----------------------------
#undef EGK_EXPORT
#if defined( I_AM_EGK) // da definirsi solo nella DLL
#define EGK_EXPORT __declspec( dllexport)
#define EGK_EXPORT __declspec( dllexport)
#else
#define EGK_EXPORT __declspec( dllimport)
#define EGK_EXPORT __declspec( dllimport)
#endif
//----------------------------------------------------------------------------
// Il sisitema di riferimento deve avere l'asse di simmetria del cono come asse Z e origine nel centro della base.
// La distanza di sicurezza ha effetto solo se maggiore di epsilon, altrimenti è ignorata ed è ininfluente.
EGK_EXPORT bool CDeConeTria( const Frame3d& frCone, double dBaseRad, double dTopRad, double dHeight, double dSafeDist, const Triangle3d& trTria) ;
// Il sistema di riferimento del cono deve essere immerso in quello della superficie.
EGK_EXPORT bool CDeConeFrustumClosedSurfTm( const Frame3d& frCone, double dBaseRad, double dTopRad, double dHeight,
double dSafeDist, const ISurfTriMesh& Stm) ;
+32
View File
@@ -0,0 +1,32 @@
//----------------------------------------------------------------------------
// EgalTech 2020-2020
//----------------------------------------------------------------------------
// File : EGkCDeConvexTorusTria.h Data : 18.11.20 Versione :
// Contenuto : Dichiarazione funzione verifica collisione tra
// toro convesso e SurfTriMesh.
//
// Modifiche : 18.11.20 LM Creazione modulo.
//
//
//----------------------------------------------------------------------------
#pragma once
#include "EgtDev/Include/EGkFrame3d.h"
#include "EgtDev/Include/EGkSurfTriMesh.h"
//----------------------- Macro per import/export ----------------------------
#undef EGK_EXPORT
#if defined( I_AM_EGK) // da definirsi solo nella DLL
#define EGK_EXPORT __declspec( dllexport)
#else
#define EGK_EXPORT __declspec( dllimport)
#endif
//----------------------------------------------------------------------------
// Il toro convesso è il disco limitato dalla sola parte esterna del toro.
// Raggio principale R1, raggio secondario R2.
// Il toro è posto nel piano XY del suo riferimento, centrato sull'origine.
// La funzione restituisce true in caso di collisione.
EGK_EXPORT bool CDeConvexTorusClosedSurfTm( const Frame3d& frTorusFrame, double dRad1, double dRad2,
double dSafeDist, const ISurfTriMesh& tmSurf) ;
-26
View File
@@ -1,26 +0,0 @@
//----------------------------------------------------------------------------
// EgalTech 2020-2020
//----------------------------------------------------------------------------
// File : EGkCDeCylTria.h Data : 09.01.20 Versione : 2.2a2
// Contenuto : Dichiarazione funzione verifica collisione tra
// Cylinder e Triangle3d.
//
// Modifiche : 09.01.20 DS Creazione modulo.
//
//
//----------------------------------------------------------------------------
#pragma once
#include "/EgtDev/Include/EGkTriangle3d.h"
//----------------------- Macro per import/export ----------------------------
#undef EGK_EXPORT
#if defined( I_AM_EGK) // da definirsi solo nella DLL
#define EGK_EXPORT __declspec( dllexport)
#else
#define EGK_EXPORT __declspec( dllimport)
#endif
//----------------------------------------------------------------------------
EGK_EXPORT bool CDeCylTria( const Frame3d& frCyl, double dH, double dR, double dSafeDist, const Triangle3d& trTria) ;
+31
View File
@@ -0,0 +1,31 @@
//----------------------------------------------------------------------------
// EgalTech 2020-2020
//----------------------------------------------------------------------------
// File : EGkCDePyramidClosedSurfTm.h Data : 09.11.20 Versione :
// Contenuto : Dichiarazione funzione verifica collisione tra
// piramide e Closed SurfTriMesh.
//
// Modifiche : 09.11.20 LM Creazione modulo.
//
//
//----------------------------------------------------------------------------
#pragma once
#include "/EgtDev/Include/EGkSurfTriMesh.h"
//----------------------- Macro per import/export ----------------------------
#undef EGK_EXPORT
#if defined( I_AM_EGK) // da definirsi solo nella DLL
#define EGK_EXPORT __declspec( dllexport)
#else
#define EGK_EXPORT __declspec( dllimport)
#endif
//----------------------------------------------------------------------------
// Il sisitema di riferimento deve avere l'origine nel centro della base Base, asse X lungo
// un segmento della stessa e asse Z ortogonale alle basi e diretta verso la base Top.
// Il sistema di riferimento della piramide deve essere immerso in quello della superficie.
EGK_EXPORT bool CDeGenPyramidTria( const Frame3d& frPyrFrame, double dLenghtBaseX, double dLenghtBaseY,
double dLenghtTopX, double dLenghtTopY, double dHeight,
double dSafeDist, const ISurfTriMesh& Stm) ;
-31
View File
@@ -1,31 +0,0 @@
// ----------------------------------------------------------------------------
// EgalTech 2020-2020
//----------------------------------------------------------------------------
// File : CDePyramidTria.cpp Data : 29.10.20 Versione :
// Contenuto : Dichiarazion della verifica di collisione tra
// Pyramid e Triangle3d.
//
//
// Modifiche :29.10.20 LM Creazione modulo.
//
//
//----------------------------------------------------------------------------
#pragma once
#include "EgtDev/Include/EGkFrame3d.h"
#include "EgtDev/Include/EGkTriangle3d.h"
//----------------------- Macro per import/export ----------------------------
#undef EGK_EXPORT
#if defined( I_AM_EGK) // da definirsi solo nella DLL
#define EGK_EXPORT __declspec( dllexport)
#else
#define EGK_EXPORT __declspec( dllimport)
#endif
//----------------------------------------------------------------------------
// Il sisitema di riferimento deve avere l'origine nel centro della base Base, asse X lungo
// un segmento della stessa e asse Z ortogonale alle basi e diretta verso la base Top.
EGK_EXPORT bool CDePyramidTria( const Frame3d& frPyrFrame, double dLenghtBaseX, double dLenghtBaseY, double dLenghtTopX, double dLenghtTopY,
double dHeight, double dSafeDist, const Triangle3d& trTria) ;
-26
View File
@@ -1,26 +0,0 @@
//----------------------------------------------------------------------------
// EgalTech 2020-2020
//----------------------------------------------------------------------------
// File : EGkCDeSpheTria.h Data : 09.01.20 Versione : 2.2a2
// Contenuto : Dichiarazione funzione verifica collisione tra
// Sphere e Triangle3d.
//
// Modifiche : 09.01.20 DS Creazione modulo.
//
//
//----------------------------------------------------------------------------
#pragma once
#include "/EgtDev/Include/EGkTriangle3d.h"
//----------------------- Macro per import/export ----------------------------
#undef EGK_EXPORT
#if defined( I_AM_EGK) // da definirsi solo nella DLL
#define EGK_EXPORT __declspec( dllexport)
#else
#define EGK_EXPORT __declspec( dllimport)
#endif
//----------------------------------------------------------------------------
EGK_EXPORT bool CDeSpheTria( const Point3d& ptCen, double dR, double dSafeDist, const Triangle3d& trTria) ;
-27
View File
@@ -1,27 +0,0 @@
//----------------------------------------------------------------------------
// EgalTech 2020-2020
//----------------------------------------------------------------------------
// File : CDeTriaTria.cpp Data : 05.11.20 Versione : 2.2k1
// Contenuto : Dichiarazione della verifica di collisione tra due Triangle3d.
//
//
//
// Modifiche : 05.11.20 LM Creazione modulo.
//
//
//----------------------------------------------------------------------------
#pragma once
#include "EgtDev/Include/EGkTriangle3d.h"
//----------------------- Macro per import/export ----------------------------
#undef EGK_EXPORT
#if defined( I_AM_EGK) // da definirsi solo nella DLL
#define EGK_EXPORT __declspec( dllexport)
#else
#define EGK_EXPORT __declspec( dllimport)
#endif
//----------------------------------------------------------------------------
EGK_EXPORT bool CDeTriaTria( const Triangle3d& trTriaA, const Triangle3d& trTriaB) ;
+3
View File
@@ -39,6 +39,8 @@ class DistPointSurfTm
{ return IsEpsilon( EPS_ZERO) ; }
EGK_EXPORT bool GetMinDistPoint( Point3d& ptMinDistPoint) ;
EGK_EXPORT bool GetMinDistTriaIndex( int& nMinDistTriaIndex) ;
EGK_EXPORT bool IsPointInside( void)
{ return m_bIsInside ; }
private :
void Calculate( const Point3d& ptP, const ISurfTriMesh& tmSurf) ;
@@ -47,4 +49,5 @@ class DistPointSurfTm
double m_dDist ;
Point3d m_ptMinDistPoint ;
int m_nMinDistTriaIndex ;
bool m_bIsInside ;
} ;
+8 -4
View File
@@ -83,10 +83,14 @@ class __declspec( novtable) IVolZmap : public IGeoObj
virtual bool AvoidBox( const Frame3d& frBox, const Vector3d& vtDiag, double dSafeDist, bool bPrecise = false) const = 0 ;
virtual bool AvoidSphere( const Point3d& ptCenter, double dRad, double dSafeDist, bool bPrecise = false) const = 0 ;
virtual bool AvoidCylinder( const Frame3d& frCyl, double dH, double dR, double dSafeDist, bool bPrecise = false) const = 0 ;
virtual bool AvoidTruncatedCone( const Point3d& ptBase, const Vector3d vtSymmetyAx,
double dRadTop, double dRadBot, double dHeight, double dSafeDist, bool bPrecise = false) const = 0 ;
virtual bool AvoidTruncatedPyramid( const Point3d& ptBase, const Vector3d& vtAxZ, const Vector3d& vtAxX,
double dSegTop, double dSegBot, double dHeight, double dSafeDist, bool bPrecise = false) const = 0 ;
virtual bool AvoidTruncatedCone( const Frame3d& frConeFrame, double dRadTop, double dRadBot, double dHeight,
double dSafeDist, bool bPrecise = false) const = 0 ;
virtual bool AvoidTruncatedPyramid( const Frame3d& frGenPyrFrame, double dLenghtBaseX, double dLenghtBaseY,
double dLenghtTopX, double dLenghtTopY, double dHeight,
double dSafeDist, bool bPrecise = false) const = 0 ;
virtual bool AvoidTorus( const Frame3d& frTorusFrame, double dRadMax, double dRadMin,
double dSafeDist, bool bPrecise = false) const = 0 ;
virtual bool AvoidSurfTm( const ISurfTriMesh& tmSurf, double dSafeDist, bool bPrecise = false) const = 0 ;
virtual bool Cut( const Plane3d& plPlane) = 0 ;
virtual bool Compact( void) = 0 ;
virtual int GetPartCount( void) const = 0 ;