//---------------------------------------------------------------------------- // EgalTech 2015-2015 //---------------------------------------------------------------------------- // File : EGkIntersLineSurfTm.h Data : 18.02.15 Versione : 1.6b7 // Contenuto : Dichiarazione della classe intersezione linea/piano. // // // // Modifiche : 18.02.15 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 //----------------------------------------------------------------------------- //! dati di intersezione linea - superficie trimesh struct IntLinStmInfo { double dU ; //!< parametro sulla linea int nT ; //!< indice del triangolo della superficie trimesh Point3d ptI ; //!< punto di intersezione // costruttori IntLinStmInfo( void) : dU( 0), nT(0), ptI() {} IntLinStmInfo( double dUU, int nTT, const Point3d& ptP) : dU( dUU), nT( nTT), ptI( ptP) {} } ; //! vettore di IntLinStmInfo typedef std::vector ILSIVECTOR ; //----------------------------------------------------------------------------- // Per ora si considerano solo intersezioni semplici, ovvero che attraversano la superficie. //EGK_EXPORT int IntersLineSurfTm( const Point3d& ptL1, const Point3d& ptL2, const Triangle3d& trTria, // Point3d& ptInt) ; EGK_EXPORT bool IntersLineSurfTm( const Point3d& ptL, const Vector3d& vtL, double dLen, const ISurfTriMesh& Stm, ILSIVECTOR& vInfo) ;