Include :
- aggiornamento prototipi - a BBox3d aggiunto metodo Overlaps per box con orientamento diverso.
This commit is contained in:
+41
-7
@@ -1,14 +1,14 @@
|
||||
//----------------------------------------------------------------------------
|
||||
// EgalTech 2013-2022
|
||||
// EgalTech 2013-2023
|
||||
//----------------------------------------------------------------------------
|
||||
// File : EGkBBox3d.h Data : 17.08.22 Versione : 2.4h1
|
||||
// File : EGkBBox3d.h Data : 12.05.23 Versione : 2.5e3
|
||||
// Contenuto : Dichiarazione della classe axis aligned bounding box BBox3d.
|
||||
//
|
||||
//
|
||||
//
|
||||
// Modifiche : 14.01.13 DS Creazione modulo.
|
||||
// 17.08.22 DS Aggiunte GetDimX, GetDimY, GetDimZ.
|
||||
//
|
||||
// 12.05.23 DS Aggiunta Overlaps con Box su riferimento.
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
@@ -90,10 +90,11 @@ class EGK_EXPORT BBox3d
|
||||
bool EnclosesXY( const Point3d& ptP) const ;
|
||||
bool Encloses( const BBox3d& b3Box) const ;
|
||||
bool EnclosesXY( const BBox3d& b3Box) const ;
|
||||
bool Overlaps( const BBox3d& b3B) const ;
|
||||
bool OverlapsXY( const BBox3d& b3B) const ;
|
||||
bool FindIntersection( const BBox3d& b3B, BBox3d& b3Int) const ;
|
||||
bool FindIntersectionXY( const BBox3d& b3B, BBox3d& b3Int) const ;
|
||||
bool Overlaps( const BBox3d& b3Box) const ;
|
||||
bool OverlapsXY( const BBox3d& b3Box) const ;
|
||||
bool Overlaps( const Frame3d& frBox, const BBox3d& b3Box) const ;
|
||||
bool FindIntersection( const BBox3d& b3Box, BBox3d& b3Int) const ;
|
||||
bool FindIntersectionXY( const BBox3d& b3Box, BBox3d& b3Int) const ;
|
||||
double SqDistFromPoint( const Point3d& ptP) const ;
|
||||
double SqDistFromPointXY( const Point3d& ptP) const ;
|
||||
double DistFromPoint( const Point3d& ptP) const
|
||||
@@ -126,3 +127,36 @@ class EGK_EXPORT BBox3d
|
||||
Point3d m_ptMin ;
|
||||
Point3d m_ptMax ;
|
||||
} ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
//! Restituisce una copia in locale del box passato
|
||||
//----------------------------------------------------------------------------
|
||||
inline const BBox3d
|
||||
GetToLoc( const BBox3d& b3Box, const Frame3d& frRef)
|
||||
{
|
||||
BBox3d b3New = b3Box ;
|
||||
b3New.ToLoc( frRef) ;
|
||||
return b3New ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
//! Restituisce una copia in globale del box passato
|
||||
//----------------------------------------------------------------------------
|
||||
inline const BBox3d
|
||||
GetToGlob( const BBox3d& b3Box, const Frame3d& frRef)
|
||||
{
|
||||
BBox3d b3New = b3Box ;
|
||||
b3New.ToGlob( frRef) ;
|
||||
return b3New ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
//! Restituisce una copia dal primo al secondo riferimento del box passato
|
||||
//----------------------------------------------------------------------------
|
||||
inline const BBox3d
|
||||
GetLocToLoc( const BBox3d& b3Box, const Frame3d& frOri, const Frame3d& frDest)
|
||||
{
|
||||
BBox3d b3New = b3Box ;
|
||||
b3New.LocToLoc( frOri, frDest) ;
|
||||
return b3New ;
|
||||
}
|
||||
|
||||
@@ -28,5 +28,5 @@
|
||||
// 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,
|
||||
EGK_EXPORT bool CDeConvexTorusClosedSurfTm( const Frame3d& frTorus, double dRad1, double dRad2,
|
||||
double dSafeDist, const ISurfTriMesh& tmSurf) ;
|
||||
|
||||
+41
-8
@@ -98,22 +98,55 @@ const Frame3d GLOB_FRM ;
|
||||
// Prodotto di due frame (porta il primo dal secondo nel globale)
|
||||
//----------------------------------------------------------------------------
|
||||
inline const Frame3d
|
||||
operator*( const Frame3d& frRef1, const Frame3d& frRef2)
|
||||
operator*( const Frame3d& frRef, const Frame3d& frOri)
|
||||
{
|
||||
Frame3d frRefR = frRef1 ;
|
||||
frRefR.ToGlob( frRef2) ;
|
||||
return frRefR ;
|
||||
Frame3d frNew = frRef ;
|
||||
frNew.ToGlob( frOri) ;
|
||||
return frNew ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Divisione di due frame (porta il primo dal globale nel secondo)
|
||||
//----------------------------------------------------------------------------
|
||||
inline const Frame3d
|
||||
operator/( const Frame3d& frRef1, const Frame3d& frRef2)
|
||||
operator/( const Frame3d& frRef, const Frame3d& frDest)
|
||||
{
|
||||
Frame3d frRefR = frRef1 ;
|
||||
frRefR.ToLoc( frRef2) ;
|
||||
return frRefR ;
|
||||
Frame3d frNew = frRef ;
|
||||
frNew.ToLoc( frDest) ;
|
||||
return frNew ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
//! Restituisce una copia in locale del frame passato
|
||||
//----------------------------------------------------------------------------
|
||||
inline const Frame3d
|
||||
GetToLoc ( const Frame3d& frRef, const Frame3d& frDest)
|
||||
{
|
||||
Frame3d frNew = frRef ;
|
||||
frNew.ToLoc( frDest) ;
|
||||
return frNew ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
//! Restituisce una copia in globale del frame passato
|
||||
//----------------------------------------------------------------------------
|
||||
inline const Frame3d
|
||||
GetToGlob( const Frame3d& frRef, const Frame3d& frOri)
|
||||
{
|
||||
Frame3d frNew = frRef ;
|
||||
frNew.ToGlob( frOri) ;
|
||||
return frNew ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
//! Restituisce una copia dal primo al secondo riferimento del frame passato
|
||||
//----------------------------------------------------------------------------
|
||||
inline const Frame3d
|
||||
GetLocToLoc( const Frame3d& frRef, const Frame3d& frOri, const Frame3d& frDest)
|
||||
{
|
||||
Frame3d frNew = frRef ;
|
||||
frNew.LocToLoc( frOri, frDest) ;
|
||||
return frNew ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user