diff --git a/EGkIntersLineBox.h b/EGkIntersLineBox.h new file mode 100644 index 0000000..3b75e01 --- /dev/null +++ b/EGkIntersLineBox.h @@ -0,0 +1,40 @@ +//---------------------------------------------------------------------------- +// EgalTech 2020-2020 +//---------------------------------------------------------------------------- +// File : EGkIntersLineBox.h Data : 07.05.20 Versione : 2.2e1 +// Contenuto : Dichiarazione della classe intersezione linea/box. +// +// +// +// Modifiche : 07.05.20 DS Creazione modulo. +// +// +//---------------------------------------------------------------------------- + +#pragma once + +#include "/EgtDev/Include/EGkBBox3d.h" +#include "/EgtDev/Include/EgtNumCollection.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 IntersLineBox( const Point3d& ptL1, const Point3d& ptL2, const BBox3d& b3Box, + INTDBLVECTOR& vInters, bool bFinite = true) ; +EGK_EXPORT bool IntersLineBox( const Point3d& ptL, const Vector3d& vtL, double dLen, const BBox3d& b3Box, + INTDBLVECTOR& vInters, bool bFinite = true) ; + +//----------------------------------------------------------------------------- +// Tipo di intersezione linea-box +enum IntLineBoxType { ILBT_NONE = 0, // non è intersezione + ILBT_IN = 1, // ingresso nel box + ILBT_OUT = 2, // uscita dal box + ILBT_TG_INI = 3, // ingresso tangente in una faccia del box + ILBT_TG_FIN = 4, // uscita tangente da una faccia del box + ILBT_TOUCH = 5} ; // contatto su uno spigolo o su un vertice del box diff --git a/EGkIntersPlaneBox.h b/EGkIntersPlaneBox.h new file mode 100644 index 0000000..a087025 --- /dev/null +++ b/EGkIntersPlaneBox.h @@ -0,0 +1,29 @@ +//---------------------------------------------------------------------------- +// EgalTech 2020-2020 +//---------------------------------------------------------------------------- +// File : EGkIntersPlaneBox.h Data : 08.05.20 Versione : 2.2e1 +// Contenuto : Dichiarazione della classe intersezione piano/box. +// +// +// +// Modifiche : 08.05.20 DS Creazione modulo. +// +// +//---------------------------------------------------------------------------- + +#pragma once + +#include "/EgtDev/Include/EGkBBox3d.h" +#include "/EgtDev/Include/EGkGeoCollection.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 IntersPlaneBox( const Point3d& ptOn, const Vector3d& vtN, const BBox3d& b3Box, + PNTVECTOR& vPnt, BIPNTVECTOR& vBpt, TRIA3DVECTOR& vTria) ;