//---------------------------------------------------------------------------- // EgalTech 2023-2026 //---------------------------------------------------------------------------- // File : EGkProjectCurveSurfTm.h Data : 14.04.26 Versione : 3.1d3 // Contenuto : Dichiarazione funzioni proiezione curve su superficie Trimesh. // // // // Modifiche : 31.08.23 DS Creazione modulo. // // //---------------------------------------------------------------------------- #pragma once #include "/EgtDev/Include/EGkGeoPoint3d.h" #include "/EgtDev/Include/EGkCurve.h" #include "/EgtDev/Include/EGkSurf.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 //---------------------------------------------------------------------------- // Definizione di Punto 5assi e sue raccolte struct Point5ax { Point3d ptP ; Vector3d vtDir1 ; Vector3d vtDir2 ; Vector3d vtDirU ; Vector3d vtDirV ; double dPar ; int nFlag ; Point5ax( void) : ptP(), vtDir1(), vtDir2(), vtDirU(), vtDirV(), dPar(), nFlag() {} ; Point5ax( const Point3d& ptBase, const Vector3d& vtTool, double dU, int nData) : ptP( ptBase), vtDir1( vtTool), vtDir2(), vtDirU(), vtDirV(), dPar( dU), nFlag( nData) {} ; Point5ax( const Point3d& ptBase, const Vector3d& vtTool, const Vector3d& vtTool2, double dU, int nData) : ptP( ptBase), vtDir1( vtTool), vtDir2( vtTool2), vtDirU(), vtDirV(), dPar( dU), nFlag( nData) {} ; Point5ax( const Point3d& ptBase, const Vector3d& vtTool, const Vector3d& vtTool2, const Vector3d& vtDU, const Vector3d& vtDV, double dU, int nData) : ptP( ptBase), vtDir1( vtTool), vtDir2( vtTool2), vtDirU( vtDU), vtDirV( vtDV), dPar( dU), nFlag( nData) {} ; } ; typedef std::vector PNT5AXVECTOR ; // vettore di Punti 5assi //---------------------------------------------------------------------------- // Proiezione di una curva su una o più superfici a distanza minima EGK_EXPORT bool ProjectCurveOnSurf( const ICurve& crCrv, const CISURFPVECTOR& vpSurf, double dLinTol, double dMaxSegmLen, bool bSharpEdges, PNT5AXVECTOR& vPt5ax) ; // Proiezione di una curva su una o più superfici lungo la direzione data (da o verso) EGK_EXPORT bool ProjectCurveOnSurf( const ICurve& crCrv, const CISURFPVECTOR& vpSurf, const Vector3d& vtDir, double dLinTol, double dMaxSegmLen, bool bSharpEdges, bool bFromVsTo, PNT5AXVECTOR& vPt5ax) ; // Proiezione di una curva su una o più superfici in direzione del punto (da o verso) EGK_EXPORT bool ProjectCurveOnSurf( const ICurve& crCrv, const CISURFPVECTOR& vpSurf, const IGeoPoint3d& gpRef, double dLinTol, double dMaxSegmLen, bool bSharpEdges, bool bFromVsTo, PNT5AXVECTOR& vPt5ax) ; // Proiezione di una curva su una o più superfici in direzione della curva (da o verso) EGK_EXPORT bool ProjectCurveOnSurf( const ICurve& crCrv, const CISURFPVECTOR& vpSurf, const ICurve& crRef, double dLinTol, double dMaxSegmLen, bool bSharpEdges, bool bFromVsTo, PNT5AXVECTOR& vPt5ax) ; // Proiezione di una curva su una o più superfici in direzione della superficie (da o verso) EGK_EXPORT bool ProjectCurveOnSurf( const ICurve& crCrv, const CISURFPVECTOR& vpSurf, const ISurf& sfRef, double dLinTol, double dMaxSegmLen, bool bSharpEdges, bool bFromVsTo, PNT5AXVECTOR& vPt5ax) ;