//---------------------------------------------------------------------------- // EgalTech 2020-2022 //---------------------------------------------------------------------------- // File : EGkIntersLineBox.h Data : 08.01.22 Versione : 2.4a3 // Contenuto : Dichiarazione delle funzioni 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 ILBT_INSIDE = 6, // contenimento nel box ILBT_TG_INSIDE = 7} ; // contenimento su faccia del box