//---------------------------------------------------------------------------- // EgalTech 2025-2025 //---------------------------------------------------------------------------- // File : EgkTrimming.h Data : 15.09.25 Versione : 2.7j1 // Contenuto : Calcolo di una superficie di Bezier Ruled definita da un sottoinsieme // di facce di una superficie TriMesh // // // // Modifiche : 15.09.25 RE Creazione modulo. // // //---------------------------------------------------------------------------- #pragma once #include "EGkSelection.h" #include "EGkCurveLine.h" #include "/EgtDev/Include/EGkSurfBezier.h" #include "/EgtDev/Include/EGkSurfTriMesh.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 typedef std::vector ISURFPOMATRIX ; typedef std::vector ICRVCOMPOPOMATRIX ; enum RegolarizeType { STD = 0, // standard, con modifiche dirette ai punti di controllo RMF = 1}; // ricostruendo le curve usando il rotation minimizing frame //----------------------------------------------------------------------------- EGK_EXPORT bool GetTrimmingStmAdjTria( const ISurfTriMesh* pStm, int nStartTria, const Point3d& ptStartTria, double dAngTol, double dSize, double dSizeTol, ISurfTriMesh* pStmAdjTria) ; EGK_EXPORT bool GetTrimmingAdjSurfs( const CISURFPVECTOR& vSurf, const CISURFPVECTOR& vOtherSurf, double dLinTol, double dAngTol, double dFaceAngTol, INTVECTOR& vIndOtherSurf) ; EGK_EXPORT bool GetTrimmingRawEdges( const CISURFPVECTOR& vSurf, const SELVECTOR& vSurfFace, double dLinTol, double dAngTol, ICRVCOMPOPOVECTOR& vBezierEdges) ; EGK_EXPORT bool GetTrimmingBezierEdges( ICRVCOMPOPOVECTOR& vCompoRawEdges, double dLinTol, double dAngTol, ICRVCOMPOPOVECTOR& vCompoEdges) ; EGK_EXPORT bool GetTrimmingFinalBorders( ICRVCOMPOPOVECTOR& vCompoBezierEdges, double dLinTol, double dAngTol, BIPNTVECTOR& vBreakingPts, double dThick, double dThickTol) ; EGK_EXPORT bool GetTrimmingFinalBorders( CISURFPVECTOR& vpSurf, const SELVECTOR& vSurfFaces, double dSurfLinTol, double dSurfAngTol, double dLinTol, double dAngTol, double dThick, ICRVCOMPOPOVECTOR& vCompoBezierEdges) ; EGK_EXPORT ISurfBezier* GetTrimmingRuledBezier( const CISURFPVECTOR& vSurf, const ICurve* pCrvEdge1, const ICurve* pCrvEdge2, double dLinTol, const BIPNTVECTOR& vSyncPoints) ; EGK_EXPORT bool GetTrimmingSurfBzSyncPoints( const ICurve* pCrvEdge1, const ICurve* pCrvEdge2, double dLinTol, BIPNTVECTOR& vSyncPoints) ; EGK_EXPORT bool GetTrimmingSyncInterpolation( const ICurve* pCrvEdge1, const ICurve* pCrvEdge2, const ICurve* pSync1, const ICurve* pSync2, double dLinTol, double dAngTol, BIPNTVECTOR& vSyncPoints) ; EGK_EXPORT bool GetTrimmingHoleBorders( const CISURFPVECTOR& vpSurf, const Point3d& ptRef, double dSurfLinTol, double dSurfAngTol, double dEdgeLinTol, double dEdgeAngTol, double dEdgeThick, ICRVCOMPOPOVECTOR& vHoleBorders) ; EGK_EXPORT ISurfBezier* RegolarizeBordersLocally( const ISurfBezier* pSurfBz, const BIPOINT& bpIsoStart, const BIPOINT& bpIsoEnd, double dTol, int nType = RegolarizeType::STD) ;