From d2f7b89b04a37124717bf5b05cdae7c8d5821c30 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Wed, 15 Jan 2025 15:21:37 +0100 Subject: [PATCH] Include : - unificata proiezione di curve su superfici trimesh e bezier. --- ...jectCurveSurfTm.h => EGkProjectCurveSurf.h | 23 +++++++----- EGkProjectCurveSurfBez.h | 37 ------------------- EXeExecutor.h | 12 ++---- 3 files changed, 18 insertions(+), 54 deletions(-) rename EGkProjectCurveSurfTm.h => EGkProjectCurveSurf.h (58%) delete mode 100644 EGkProjectCurveSurfBez.h diff --git a/EGkProjectCurveSurfTm.h b/EGkProjectCurveSurf.h similarity index 58% rename from EGkProjectCurveSurfTm.h rename to EGkProjectCurveSurf.h index 368e65d..eabe957 100644 --- a/EGkProjectCurveSurfTm.h +++ b/EGkProjectCurveSurf.h @@ -15,7 +15,7 @@ #include "/EgtDev/Include/EGkGeoPoint3d.h" #include "/EgtDev/Include/EGkCurve.h" -#include "/EgtDev/Include/EGkSurfTriMesh.h" +#include "/EgtDev/Include/EGkSurf.h" //----------------------- Macro per import/export ---------------------------- #undef EGK_EXPORT @@ -43,11 +43,16 @@ typedef std::vector PNT5AXVECTOR ; // vettore di Punti 5assi //---------------------------------------------------------------------------- // Proiezione di una curva su una superficie TriMesh lungo la direzione data. -EGK_EXPORT bool ProjectCurveOnSurfTm( const ICurve& crCrv, const ISurfTriMesh& tmSurf, const Vector3d& vtDir, - double dLinTol, double dMaxSegmLen, PNT5AXVECTOR& vPt5ax) ; -EGK_EXPORT bool ProjectCurveOnSurfTm( const ICurve& crCrv, const ISurfTriMesh& tmSurf, const IGeoPoint3d& gpRef, - double dLinTol, double dMaxSegmLen, PNT5AXVECTOR& vPt5ax) ; -EGK_EXPORT bool ProjectCurveOnSurfTm( const ICurve& crCrv, const ISurfTriMesh& tmSurf, const ICurve& crRef, - double dLinTol, double dMaxSegmLen, PNT5AXVECTOR& vPt5ax) ; -EGK_EXPORT bool ProjectCurveOnSurfTm( const ICurve& crCrv, const ISurfTriMesh& tmSurf, const ISurfTriMesh& tmRef, - double dLinTol, double dMaxSegmLen, PNT5AXVECTOR& vPt5ax) ; +EGK_EXPORT bool ProjectCurveOnSurf( const ICurve& crCrv, const ISurf& sfSurf, const Vector3d& vtDir, + double dLinTol, double dMaxSegmLen, PNT5AXVECTOR& vPt5ax) ; +// Proiezione di una curva su una superficie TriMesh in direzione del punto +EGK_EXPORT bool ProjectCurveOnSurf( const ICurve& crCrv, const ISurf& sfSurf, const IGeoPoint3d& gpRef, + double dLinTol, double dMaxSegmLen, PNT5AXVECTOR& vPt5ax) ; +// Proiezione di una curva su una superficie TriMesh in direzione della curva +EGK_EXPORT bool ProjectCurveOnSurf( const ICurve& crCrv, const ISurf& sfSurf, const ICurve& crRef, + double dLinTol, double dMaxSegmLen, PNT5AXVECTOR& vPt5ax) ; +// Proiezione di una curva su una superficie TriMesh in direzione della superficie +EGK_EXPORT bool ProjectCurveOnSurf( const ICurve& crCrv, const ISurf& sfSurf, const ISurf& sfRef, + double dLinTol, double dMaxSegmLen, PNT5AXVECTOR& vPt5ax) ; +// Eliminazione punti proiettati in eccesso +EGK_EXPORT bool RemovePointsInExcess( PNT5AXVECTOR& vMyPt5ax, double dLinTol, double dMaxSegmLen, bool bTestDir = true) ; diff --git a/EGkProjectCurveSurfBez.h b/EGkProjectCurveSurfBez.h deleted file mode 100644 index 67556fd..0000000 --- a/EGkProjectCurveSurfBez.h +++ /dev/null @@ -1,37 +0,0 @@ -//---------------------------------------------------------------------------- -// EgalTech 2024-2024 -//---------------------------------------------------------------------------- -// File : EGkProjectCurveSurfTm.h Data : 07.05.24 Versione : 2.6e3 -// Contenuto : Dichiarazione funzioni proiezione curve su superficie Bezier. -// -// -// -// Modifiche : 07.05.24 DB Creazione modulo. -// -// -//---------------------------------------------------------------------------- - -#pragma once - -#include "/EgtDev/Include/EGkGeoPoint3d.h" -#include "/EgtDev/Include/EGkCurve.h" -#include "/EgtDev/Include/EGkSurfBezier.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 - -//---------------------------------------------------------------------------- -// Proiezione di una curva su una superficie TriMesh lungo la direzione data. -EGK_EXPORT bool ProjectCurveOnSurfBez( const ICurve& crCrv, const ISurfBezier& surfBez, const Vector3d& vtDir, - double dLinTol, double dMaxSegmLen, PNT5AXVECTOR& vPt5ax) ; -EGK_EXPORT bool ProjectCurveOnSurfBez( const ICurve& crCrv, const ISurfBezier& surfBez, const IGeoPoint3d& gpRef, - double dLinTol, double dMaxSegmLen, PNT5AXVECTOR& vPt5ax) ; -EGK_EXPORT bool ProjectCurveOnSurfBez( const ICurve& crCrv, const ISurfBezier& surfBez, const ICurve& crRef, - double dLinTol, double dMaxSegmLen, PNT5AXVECTOR& vPt5ax) ; -EGK_EXPORT bool ProjectCurveOnSurfBez( const ICurve& crCrv, const ISurfBezier& surfBez, const ISurfTriMesh& tmRef, - double dLinTol, double dMaxSegmLen, PNT5AXVECTOR& vPt5ax) ; diff --git a/EXeExecutor.h b/EXeExecutor.h index e377ac1..d1b8ca6 100644 --- a/EXeExecutor.h +++ b/EXeExecutor.h @@ -629,14 +629,10 @@ EXE_EXPORT bool ExeCurveCompoSetTempProp( int nId, int nCrv, int nProp, int nPro EXE_EXPORT bool ExeCurveCompoSetTempParam( int nId, int nCrv, double dParam, int nParamInd = 0) ; EXE_EXPORT bool ExeChainCurvesInGroup( int nGroupId, const Point3d& ptNear, int nRefType) ; EXE_EXPORT bool ExeReorderCurvesInGroup( int nGroupId, const Point3d& ptNear, int nRefType) ; -EXE_EXPORT bool ExeProjectCurveOnSurfTm( int nCurveId, int nSurfTmId, const Vector3d& vtDir, int nDestGrpId, - double dLinTol, double dMaxSegmLen, int nRefType) ; -EXE_EXPORT bool ExeProjectCurveOnSurfTmExt( int nCurveId, int nSurfTmId, int nGuideId, int nDestGrpId, - double dLinTol, double dMaxSegmLen, bool bDirFromGuide) ; -EXE_EXPORT bool ExeProjectCurveOnSurfBz( int nCurveId, int nSurfBzId, const Vector3d& vtDir, int nDestGrpId, - double dLinTol, double dMaxSegmLen, int nRefType) ; -EXE_EXPORT bool ExeProjectCurveOnSurfBzExt( int nCurveId, int nSurfBzId, int nGuideId, int nDestGrpId, - double dLinTol, double dMaxSegmLen, bool bDirFromGuide) ; +EXE_EXPORT bool ExeProjectCurveOnSurf( int nCurveId, int nSurfTmId, const Vector3d& vtProj, int nDestGrpId, + double dLinTol, double dMaxSegmLen, bool bDirFromProj, int nRefType) ; +EXE_EXPORT bool ExeProjectCurveOnSurfExt( int nCurveId, int nSurfTmId, int nGuideId, int nDestGrpId, + double dLinTol, double dMaxSegmLen, bool bDirFromGuide) ; EXE_EXPORT int ExeCurveGetVoronoi( const INTVECTOR& vIds, int nDestGrpId, int nBound, int* pnCount) ; EXE_EXPORT int ExeCurveGetMedialAxis( const INTVECTOR& vIds, int nDestGrpId, int nSide, int* pnCount) ; EXE_EXPORT int ExeCurveGetFatCurve( int nId, int nDestGrpId, double dRad, bool bSquareEnds, bool bSquareMids, int* pnCount) ;