07072b370f
- aggiornamenti vari.
45 lines
1.9 KiB
C++
45 lines
1.9 KiB
C++
//----------------------------------------------------------------------------
|
|
// 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<IntLinStmInfo> 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) ;
|