diff --git a/EGkSurfBzRuledFromStmFaces.h b/EGkSurfBzRuledFromStmFaces.h new file mode 100644 index 0000000..d593b6c --- /dev/null +++ b/EGkSurfBzRuledFromStmFaces.h @@ -0,0 +1,37 @@ +//---------------------------------------------------------------------------- +// EgalTech 2025-2025 +//---------------------------------------------------------------------------- +// File : EGkSurfBzRuledFromStmFaces.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 + +//----------------------------------------------------------------------------- +EGK_EXPORT bool GetBezierEdgeCurvesFromSurfs( const CISURFPVECTOR& vSurf, const SELVECTOR& vSurfFace, + double dLinTol, double dAngTol, const BIPNTVECTOR& vBreakingPts, + ICRVCOMPOPOVECTOR& vBezierEdges) ; +EGK_EXPORT bool GetSyncPointsFromBezierCurves( const ICurveComposite* pEdge0, const ICurveComposite* pEdge1, + ICRVLINEPOVECTOR& vLines) ; +EGK_EXPORT bool GetAdjStmFacesInTol( const ISurfTriMesh* pStm, const INTVECTOR& vFaceRef, double dAngTol, + INTVECTOR& vOtherFaces, double dCurvature) ; diff --git a/EGkTrimming.h b/EGkTrimming.h new file mode 100644 index 0000000..ab4c53b --- /dev/null +++ b/EGkTrimming.h @@ -0,0 +1,56 @@ +//---------------------------------------------------------------------------- +// 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 ; + +//----------------------------------------------------------------------------- +EGK_EXPORT bool GetTrimmingStmAdjTria( const ISurfTriMesh* pStm, const INTVECTOR& vTria, const PNTVECTOR& vPts, + double dAngTol, double dSize, double dSizeTol, INTVECTOR& vOtherTria) ; +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 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, + const INTVECTOR& vIndPriority, const INTVECTOR& vIndVisible) ; +EGK_EXPORT bool GetTrimmingSurfBzSyncPoints( const ICurve* pCrvEdge1, const ICurve* pCrvEdge2, + double dLinTol, BIPNTVECTOR& vSyncPoints) ; +EGK_EXPORT bool GetTrimmingAutoEntities( const CISURFPVECTOR& vSurf, double dShapeLinTol, double dShapeAngTol, + double dLinTol, double dEdgeLinTol, double dAngTol, double dAngFaceTol, + const STRVECTOR& vsShapes, ISURFPOMATRIX& matSelSurfMatrix, + ICRVCOMPOPOMATRIX& matCompoBorders, ISURFBEZPOVECTOR& vSurfBz) ; diff --git a/EXeExecutor.h b/EXeExecutor.h index 0b6a83a..8cd4c4f 100644 --- a/EXeExecutor.h +++ b/EXeExecutor.h @@ -1498,3 +1498,26 @@ EXE_EXPORT bool ExeRedisAsyncGetMessage( int nIdConnection, const std::string& s // Base64 EXE_EXPORT bool ExeBase64Encode( const std::string& sFile, std::string& sB64Dest) ; EXE_EXPORT bool ExeBase64Decode( const std::string& sB64Sou, const std::string& sFile) ; + +// Trimming +EXE_EXPORT bool ExeTrimmingGetSurfTmFaceAdj( int nSurfId, const INTVECTOR& vTria, const PNTVECTOR& vPts, + double dAngTol, double dSize, double dSizeTol, INTVECTOR& vOtherFaces) ; +EXE_EXPORT int ExeTrimmingGetSurfTmFromStmFaces( int nParentId, int nSurfId, const INTVECTOR& vFaces) ; +EXE_EXPORT bool ExeTrimmingGetAdjSurfs( const INTVECTOR& vSurfId, const INTVECTOR& vOtherSurfId, double dLinTol, + double dAngTol, double dAngFaceTol, INTVECTOR& vResId) ; +EXE_EXPORT bool ExeTrimmingGetBorders( int nParentId, const SELVECTOR& vIds, double dLinTol, double dAngTol, + int& nFirstId, int& nCount) ; +EXE_EXPORT bool ExeTrimmingGetBordersByNormals( int nParentId, const SELVECTOR& vIds, double dLinTol, + double dAngTol, double dThick, Point3d& ptNear, int& nFirstId, int& nCount) ; +EXE_EXPORT bool ExeTrimmingGetFinalBorders( int nParentId, const INTVECTOR& vCrvBezierId, double dLinTol, double dAngTol, + const PNTVECTOR& vBreakingPts, double dThick, double dThickTol, + int& nFirstId, int& nCount) ; +EXE_EXPORT int ExeTrimmingGetRuledBezier( int nParentId, const INTVECTOR& vIds, int nEdge1Id, int nEdge2Id, double dLinTol, + const INTVECTOR& vnLineIds) ; +EXE_EXPORT bool ExeTrimmingGetSurfBzSyncPoints( int nParentId, int nEdge1Id, int nEdge2Id, double dLinTol, + int& nFirstId, int& nCount) ; +EXE_EXPORT bool ExeTrimmingSkimSyncPoints( int nEdge1Id, int nEdge2Id, const INTVECTOR& vnLineId, double dLinTol, + double dAngTol, int nMaxInvLine) ; +EXE_EXPORT bool ExeTrimmingAutoSearch( int nParentId, int nSurfLayerId, double dShapeLinTol, double dShapeAngTol, + double dLinTol, double dEdgeLinTol, double dAngTol, double dAngFaceTol, + const STRVECTOR& vsShapes) ;