From 98bcfa22309f1898ccfa5a2325a46ab060bad569 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Fri, 16 Feb 2024 08:41:32 +0100 Subject: [PATCH] Include : - aggiornamento prototipi. --- EGkCDeBoxClosedSurfTm.h | 9 ++++++++- EGkCDeClosedSurfTmClosedSurfTm.h | 10 ++++++---- EGkCDeConeFrustumClosedSurfTm.h | 15 +++++++++------ EGkCDeConvexTorusClosedSurfTm.h | 9 ++++++--- EGkCDeCylClosedSurfTm.h | 9 ++++++++- EGkCDeRectPrismoidClosedSurfTm.h | 6 +++++- EGkCDeSpheClosedSurfTm.h | 6 +++++- EGkVolZmap.h | 22 +++++++++++----------- 8 files changed, 58 insertions(+), 28 deletions(-) diff --git a/EGkCDeBoxClosedSurfTm.h b/EGkCDeBoxClosedSurfTm.h index 5778093..733bd01 100644 --- a/EGkCDeBoxClosedSurfTm.h +++ b/EGkCDeBoxClosedSurfTm.h @@ -24,4 +24,11 @@ #endif //---------------------------------------------------------------------------- -EGK_EXPORT bool CDeBoxClosedSurfTm( const Frame3d& frBox, const Vector3d& vtDiag, double dSafeDist, const ISurfTriMesh& Stm) ; +// Il sistema di riferimento è allineato con il box e ha origine in un suo vertice. +// La distanza di sicurezza ha effetto solo se maggiore di EPS_SMALL. +// Il sistema di riferimento del box è riferito a quello della superficie. +// La funzione restituisce : +// - true in caso di collisione o inconsistenza dei parametri di input +// - false in caso di assenza di collisione. +//---------------------------------------------------------------------------- +EGK_EXPORT bool CDeBoxClosedSurfTm( const Frame3d& frBox, const Vector3d& vtDiag, const ISurfTriMesh& Stm, double dSafeDist) ; diff --git a/EGkCDeClosedSurfTmClosedSurfTm.h b/EGkCDeClosedSurfTmClosedSurfTm.h index f84a1fe..142bdec 100644 --- a/EGkCDeClosedSurfTmClosedSurfTm.h +++ b/EGkCDeClosedSurfTmClosedSurfTm.h @@ -1,7 +1,7 @@ //---------------------------------------------------------------------------- -// EgalTech 2020-2023 +// EgalTech 2020-2024 //---------------------------------------------------------------------------- -// File : EGkCDeClosedSurfTmClosedSurfTm.h Data : 14.06.23 Versione : 2.5f3 +// File : EGkCDeClosedSurfTmClosedSurfTm.h Data : 15.02.24 Versione : 2.6b2 // Contenuto : Dichiarazione funzione verifica collisione tra // SurfTm e SurfTm. // @@ -23,8 +23,10 @@ #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. +// La funzione restituisce : +// - true in caso di collisione o inconsistenza dei parametri di input +// - false in caso di assenza di collisione. +//---------------------------------------------------------------------------- EGK_EXPORT bool CDeClosedSurfTmClosedSurfTm( const ISurfTriMesh& SurfA, const ISurfTriMesh& SurfB, double dSafeDist) ; diff --git a/EGkCDeConeFrustumClosedSurfTm.h b/EGkCDeConeFrustumClosedSurfTm.h index 735c2bd..1e8666f 100644 --- a/EGkCDeConeFrustumClosedSurfTm.h +++ b/EGkCDeConeFrustumClosedSurfTm.h @@ -1,7 +1,7 @@ //---------------------------------------------------------------------------- -// EgalTech 2020-2020 +// EgalTech 2020-2024 //---------------------------------------------------------------------------- -// File : EGkCDeConeFrustumClosedSurfTm.h Data : 09.11.20 Versione : +// File : EGkCDeConeFrustumClosedSurfTm.h Data : 15.02.24 Versione : 2.6b2 // Contenuto : Dichiarazione funzione verifica collisione tra // Cone e Closed SurfTriMesh. // @@ -23,8 +23,11 @@ #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. -// Il sistema di riferimento del cono deve essere immerso in quello della superficie. +// Il sistema 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 EPS_SMALL. +// Il sistema di riferimento del cono è riferito a quello della superficie. +// La funzione restituisce : +// - true in caso di collisione o inconsistenza dei parametri di input +// - false in caso di assenza di collisione. EGK_EXPORT bool CDeConeFrustumClosedSurfTm( const Frame3d& frCone, double dBaseRad, double dTopRad, double dHeight, - double dSafeDist, const ISurfTriMesh& Stm) ; \ No newline at end of file + const ISurfTriMesh& Stm, double dSafeDist) ; \ No newline at end of file diff --git a/EGkCDeConvexTorusClosedSurfTm.h b/EGkCDeConvexTorusClosedSurfTm.h index 8d35834..764bd21 100644 --- a/EGkCDeConvexTorusClosedSurfTm.h +++ b/EGkCDeConvexTorusClosedSurfTm.h @@ -24,9 +24,12 @@ #endif //---------------------------------------------------------------------------- -// Il toro convesso è il disco limitato dalla sola parte esterna del toro. +// Il toro convesso è il disco solido 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. +// La funzione restituisce : +// - true in caso di collisione o inconsistenza dei parametri di input +// - false in caso di assenza di collisione. +//---------------------------------------------------------------------------- EGK_EXPORT bool CDeConvexTorusClosedSurfTm( const Frame3d& frTorus, double dRad1, double dRad2, - double dSafeDist, const ISurfTriMesh& tmSurf) ; + const ISurfTriMesh& tmSurf, double dSafeDist) ; diff --git a/EGkCDeCylClosedSurfTm.h b/EGkCDeCylClosedSurfTm.h index 189e1ae..4fd6fc4 100644 --- a/EGkCDeCylClosedSurfTm.h +++ b/EGkCDeCylClosedSurfTm.h @@ -23,4 +23,11 @@ #endif //---------------------------------------------------------------------------- -EGK_EXPORT bool CDeCylClosedSurfTm( const Frame3d& frCyl, double dR, double dH, double dSafeDist, const ISurfTriMesh& Stm) ; +// Il sistema di riferimento deve avere l'asse di simmetria del cilindro come asse Z e origine nel centro della base. +// La distanza di sicurezza ha effetto solo se maggiore di EPS_SMALL, altrimenti è ignorata ed è ininfluente. +// Il sistema di riferimento del cilindro è riferito a quello della superficie. +// La funzione restituisce : +// - true in caso di collisione o inconsistenza dei parametri di input +// - false in caso di assenza di collisione. +//---------------------------------------------------------------------------- +EGK_EXPORT bool CDeCylClosedSurfTm( const Frame3d& frCyl, double dR, double dH, const ISurfTriMesh& Stm, double dSafeDist) ; diff --git a/EGkCDeRectPrismoidClosedSurfTm.h b/EGkCDeRectPrismoidClosedSurfTm.h index 5ad830a..4514a25 100644 --- a/EGkCDeRectPrismoidClosedSurfTm.h +++ b/EGkCDeRectPrismoidClosedSurfTm.h @@ -26,6 +26,10 @@ // Il sistema di riferimento deve avere l'origine nel centro della Base, asse X lungo // un segmento della stessa e asse Z ortogonale alle basi e diretto verso la base Top. // Il sistema di riferimento della piramide deve essere immerso in quello della superficie. +// La funzione restituisce : +// - true in caso di collisione o inconsistenza dei parametri di input +// - false in caso di assenza di collisione. +//---------------------------------------------------------------------------- EGK_EXPORT bool CDeRectPrismoidClosedSurfTm( const Frame3d& frPrismoid, double dLenghtBaseX, double dLenghtBaseY, double dLenghtTopX, double dLenghtTopY, double dHeight, - double dSafeDist, const ISurfTriMesh& Stm) ; \ No newline at end of file + const ISurfTriMesh& Stm, double dSafeDist) ; \ No newline at end of file diff --git a/EGkCDeSpheClosedSurfTm.h b/EGkCDeSpheClosedSurfTm.h index abbb59a..5565721 100644 --- a/EGkCDeSpheClosedSurfTm.h +++ b/EGkCDeSpheClosedSurfTm.h @@ -23,4 +23,8 @@ #endif //---------------------------------------------------------------------------- -EGK_EXPORT bool CDeSpheClosedSurfTm( const Point3d& ptCen, double dR, double dSafeDist, const ISurfTriMesh& Stm) ; +// La funzione restituisce : +// - true in caso di collisione o inconsistenza dei parametri di input +// - false in caso di assenza di collisione. +//---------------------------------------------------------------------------- +EGK_EXPORT bool CDeSpheClosedSurfTm( const Point3d& ptCen, double dR, const ISurfTriMesh& Stm, double dSafeDist) ; diff --git a/EGkVolZmap.h b/EGkVolZmap.h index f0186e4..0a81696 100644 --- a/EGkVolZmap.h +++ b/EGkVolZmap.h @@ -91,17 +91,17 @@ class __declspec( novtable) IVolZmap : public IGeoObj virtual bool GetDepth( const Point3d& ptP, const Vector3d& vtDir, double& dInLength, double& dOutLength, bool bExact) const = 0 ; virtual bool GetLineIntersection( const Point3d& ptP, const Vector3d& vtD, ILZIVECTOR& vIntersInfo) const = 0 ; virtual bool GetPlaneIntersection( const Plane3d& plPlane, ICURVEPOVECTOR& vpLoop) const = 0 ; - 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 dR, double dH, double dSafeDist, bool bPrecise = false) const = 0 ; - virtual bool AvoidConeFrustum( const Frame3d& frCone, double dRadBot, double dRadTop, double dHeight, - double dSafeDist, bool bPrecise = false) const = 0 ; - virtual bool AvoidRectPrismoid( const Frame3d& frPrismoid, double dLenghtBaseX, double dLenghtBaseY, - double dLenghtTopX, double dLenghtTopY, double dHeight, - double dSafeDist, bool bPrecise = false) const = 0 ; - virtual bool AvoidTorus( const Frame3d& frTorus, 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 CDeBox( const Frame3d& frBox, const Vector3d& vtDiag, double dSafeDist, bool bPrecise = false) const = 0 ; + virtual bool CDeSphere( const Point3d& ptCenter, double dRad, double dSafeDist, bool bPrecise = false) const = 0 ; + virtual bool CDeCylinder( const Frame3d& frCyl, double dR, double dH, double dSafeDist, bool bPrecise = false) const = 0 ; + virtual bool CDeConeFrustum( const Frame3d& frCone, double dRadBot, double dRadTop, double dHeight, + double dSafeDist, bool bPrecise = false) const = 0 ; + virtual bool CDeRectPrismoid( const Frame3d& frPrismoid, double dLenghtBaseX, double dLenghtBaseY, + double dLenghtTopX, double dLenghtTopY, double dHeight, + double dSafeDist, bool bPrecise = false) const = 0 ; + virtual bool CDeTorus( const Frame3d& frTorus, double dRadMax, double dRadMin, + double dSafeDist, bool bPrecise = false) const = 0 ; + virtual bool CDeSurfTm( 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 ;