From fa7dc81a0feb8662f526b06aa6f5fc138fa0e926 Mon Sep 17 00:00:00 2001 From: Riccardo Elitropi Date: Fri, 15 Mar 2024 10:28:30 +0100 Subject: [PATCH 1/5] Include : - modifiche prototipi funzioni per creazioni superfici swept. --- EGkStmFromCurves.h | 2 +- EXeExecutor.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/EGkStmFromCurves.h b/EGkStmFromCurves.h index 92c662a..c11adfe 100644 --- a/EGkStmFromCurves.h +++ b/EGkStmFromCurves.h @@ -40,7 +40,7 @@ EGK_EXPORT ISurfTriMesh* GetSurfTriMeshByScrewing( const ICurve* pCurve, const P double dAngRotDeg, double dMove, bool bCapEnds, double dLinTol = 10 * EPS_SMALL) ; EGK_EXPORT ISurfTriMesh* GetSurfTriMeshRectSwept( double dDimH, double dDimV, double dBevelH, double dBevelV, const ICurve* pGuide, int nCapType, double dLinTol = 10 * EPS_SMALL) ; -EGK_EXPORT ISurfTriMesh* GetSurfTriMeshSwept( const ICurve* pSect, const ICurve* pGuide, bool bCapEnds, double dLinTol = 10 * EPS_SMALL) ; +EGK_EXPORT ISurfTriMesh* GetSurfTriMeshSwept( const ICurve* pSect, const ICurve* pGuide, bool bCapEnds, double dLinTol = 10 * EPS_SMALL, Vector3d* vtStatic = nullptr) ; EGK_EXPORT ISurfTriMesh* GetSurfTriMeshTransSwept( const ICurve* pSect, const ICurve* pGuide, bool bCapEnds, double dLinTol = 10 * EPS_SMALL) ; EGK_EXPORT ISurfTriMesh* GetSurfTriMeshRuled( const Point3d& ptP, const ICurve* pCurve, double dLinTol = 10 * EPS_SMALL) ; EGK_EXPORT ISurfTriMesh* GetSurfTriMeshRuled( const ICurve* pCurve1, const ICurve* pCurve2, int nType, double dLinTol = 10 * EPS_SMALL) ; diff --git a/EXeExecutor.h b/EXeExecutor.h index 34a1238..aae5452 100644 --- a/EXeExecutor.h +++ b/EXeExecutor.h @@ -354,7 +354,7 @@ EXE_EXPORT int ExeCreateSurfTmByScrewing( int nParentId, int nCrvId, double dAngRotDeg, double dMove, bool bCapEnds, double dLinTol, int nRefType) ; EXE_EXPORT int ExeCreateSurfTmRectSwept( int nParentId, double dDimH, double dDimV, double dBevelH, double dBevelV, int nGuideId, int nCapType, double dLinTol) ; -EXE_EXPORT int ExeCreateSurfTmSwept( int nParentId, int nSectId, int nGuideId, bool bCapEnds, double dLinTol) ; +EXE_EXPORT int ExeCreateSurfTmSwept( int nParentId, int nSectId, int nGuideId, bool bCapEnds, double dLinTol, Vector3d* vtStatic) ; EXE_EXPORT int ExeCreateSurfTmTransSwept( int nParentId, int nSectId, int nGuideId, bool bCapEnds, double dLinTol) ; EXE_EXPORT int ExeCreateSurfTmRuled( int nParentId, int nPtOrCrvId1, int nPtOrCrvId2, int nType, double dLinTol) ; EXE_EXPORT int ExeCreateSurfTmByTriangles( int nParentId, const INTVECTOR& vIds, bool bErase) ; From 736131c93778dbcad82dfd3c6bae7aad13441947 Mon Sep 17 00:00:00 2001 From: Riccardo Elitropi Date: Fri, 15 Mar 2024 13:18:01 +0100 Subject: [PATCH 2/5] Include : - modifica prototipi. --- EGkStmFromCurves.h | 2 ++ EXeExecutor.h | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/EGkStmFromCurves.h b/EGkStmFromCurves.h index c11adfe..2ad4d49 100644 --- a/EGkStmFromCurves.h +++ b/EGkStmFromCurves.h @@ -14,6 +14,7 @@ #pragma once #include "/EgtDev/Include/EGkCurve.h" +#include "/EgtDev/Include/EGkSurfFlatRegion.h" #include "/EgtDev/Include/EGkSurfTriMesh.h" //----------------------- Macro per import/export ---------------------------- @@ -41,6 +42,7 @@ EGK_EXPORT ISurfTriMesh* GetSurfTriMeshByScrewing( const ICurve* pCurve, const P EGK_EXPORT ISurfTriMesh* GetSurfTriMeshRectSwept( double dDimH, double dDimV, double dBevelH, double dBevelV, const ICurve* pGuide, int nCapType, double dLinTol = 10 * EPS_SMALL) ; EGK_EXPORT ISurfTriMesh* GetSurfTriMeshSwept( const ICurve* pSect, const ICurve* pGuide, bool bCapEnds, double dLinTol = 10 * EPS_SMALL, Vector3d* vtStatic = nullptr) ; +EGK_EXPORT ISurfTriMesh* GetSurfTriMeshSwept( const ISurfFlatRegion* pSfrSect, const ICurve* pGuide, bool bCapEnds, double dLinTol = 10 * EPS_SMALL, Vector3d* vtStatic = nullptr) ; EGK_EXPORT ISurfTriMesh* GetSurfTriMeshTransSwept( const ICurve* pSect, const ICurve* pGuide, bool bCapEnds, double dLinTol = 10 * EPS_SMALL) ; EGK_EXPORT ISurfTriMesh* GetSurfTriMeshRuled( const Point3d& ptP, const ICurve* pCurve, double dLinTol = 10 * EPS_SMALL) ; EGK_EXPORT ISurfTriMesh* GetSurfTriMeshRuled( const ICurve* pCurve1, const ICurve* pCurve2, int nType, double dLinTol = 10 * EPS_SMALL) ; diff --git a/EXeExecutor.h b/EXeExecutor.h index aae5452..c94a32c 100644 --- a/EXeExecutor.h +++ b/EXeExecutor.h @@ -354,7 +354,7 @@ EXE_EXPORT int ExeCreateSurfTmByScrewing( int nParentId, int nCrvId, double dAngRotDeg, double dMove, bool bCapEnds, double dLinTol, int nRefType) ; EXE_EXPORT int ExeCreateSurfTmRectSwept( int nParentId, double dDimH, double dDimV, double dBevelH, double dBevelV, int nGuideId, int nCapType, double dLinTol) ; -EXE_EXPORT int ExeCreateSurfTmSwept( int nParentId, int nSectId, int nGuideId, bool bCapEnds, double dLinTol, Vector3d* vtStatic) ; +EXE_EXPORT int ExeCreateSurfTmSwept( int nParentId, int nSectId, int nGuideId, bool bCapEnds, double dLinTol, Vector3d* vtStatic = nullptr) ; EXE_EXPORT int ExeCreateSurfTmTransSwept( int nParentId, int nSectId, int nGuideId, bool bCapEnds, double dLinTol) ; EXE_EXPORT int ExeCreateSurfTmRuled( int nParentId, int nPtOrCrvId1, int nPtOrCrvId2, int nType, double dLinTol) ; EXE_EXPORT int ExeCreateSurfTmByTriangles( int nParentId, const INTVECTOR& vIds, bool bErase) ; From a0244abf468797732883025c2e0699da3d50bca7 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Fri, 5 Apr 2024 16:50:05 +0200 Subject: [PATCH 3/5] Include : - aggiornamento prototipi - aggiunti prototipi per RotationMinimazingFrame e RotationXplaneFrame. --- EGkGeoCollection.h | 7 +++++ EGkRotationMinimizingFrame.h | 50 +++++++++++++++++++++++++++++++++++ EGkRotationXplaneFrame.h | 51 ++++++++++++++++++++++++++++++++++++ EGkStmFromCurves.h | 10 ++++--- EInAPI.h | 7 ++--- EXeExecutor.h | 3 ++- 6 files changed, 120 insertions(+), 8 deletions(-) create mode 100644 EGkRotationMinimizingFrame.h create mode 100644 EGkRotationXplaneFrame.h diff --git a/EGkGeoCollection.h b/EGkGeoCollection.h index 0e5c428..075e681 100644 --- a/EGkGeoCollection.h +++ b/EGkGeoCollection.h @@ -15,6 +15,7 @@ #include "/EgtDev/Include/EGkPoint3d.h" #include "/EgtDev/Include/EGkBBox3d.h" +#include "/EgtDev/Include/EGkFrame3d.h" #include "/EgtDev/Include/EGkCurvePointDiffGeom.h" #include "/EgtDev/Include/EgtNumCollection.h" @@ -52,6 +53,12 @@ typedef std::list CPDGLIST ; // lista di CrvPointDiffGe typedef std::vector VCT3DVECTOR ; // vettore di vettori 3d typedef std::list VCT3DLIST ; // lista di vettori 3d +//---------------------------------------------------------------------------- +// Raccolte di Frame3d +typedef std::vector FRAME3DVECTOR ; // vettore di riferimenti 3d +typedef std::list FRAME3DLIST ; // lista di riferimenti 3d +typedef std::vector> FRAME3DIVECTOR ; // vettore di riferimenti 3d e Id + //---------------------------------------------------------------------------- // Raccolte di BBox3d typedef std::vector BOXVECTOR ; // vettore di bounding box 3d diff --git a/EGkRotationMinimizingFrame.h b/EGkRotationMinimizingFrame.h new file mode 100644 index 0000000..5159ddd --- /dev/null +++ b/EGkRotationMinimizingFrame.h @@ -0,0 +1,50 @@ +//---------------------------------------------------------------------------- +// EgalTech 2024-2024 +//---------------------------------------------------------------------------- +// File : EGkRotationMinimizingFrame.h Data : 05.04.24 Versione : 2.6d1 +// Contenuto : Dichiarazione della classe RotationMinimizingFrame. +// +// +// +// Modifiche : 05.04.24 RE Creazione modulo. + +// +//---------------------------------------------------------------------------- + +#pragma once + +#include "/EgtDev/Include/EGkCurve.h" +#include "/EgtDev/Include/EGkGeoCollection.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 + +//---------------------------------------------------------------------------- +class EGK_EXPORT RotationMinimizingFrame +{ + public : + RotationMinimizingFrame( void) + : m_pCrv( nullptr), m_Frame0() {} + ~RotationMinimizingFrame( void) + { Clear() ; } + bool Set( const ICurve* pCrv, const Frame3d& fr_Start) ; + + public : + bool GetFramesByStep( double dStep, bool bUniform, FRAME3DVECTOR& vRMFrames) ; + bool GetFramesBySplit( int nIntervals, FRAME3DVECTOR& vRMFrames) ; + bool GetFramesByTolerance( double dTol, FRAME3DVECTOR& vRMFrames) ; + + private : + bool Clear( void) ; + bool IsValid( void) ; + bool GetFrameAtParam( const Frame3d& frAct, const double dParNext, Frame3d& frNext) ; + + private : + ICurve* m_pCrv ; // curva per il calcolo del rotation Xplane frame + Frame3d m_Frame0 ; // frame iniziale della curva +} ; diff --git a/EGkRotationXplaneFrame.h b/EGkRotationXplaneFrame.h new file mode 100644 index 0000000..309f629 --- /dev/null +++ b/EGkRotationXplaneFrame.h @@ -0,0 +1,51 @@ +//---------------------------------------------------------------------------- +// EgalTech 2024-2024 +//---------------------------------------------------------------------------- +// File : EGkRotationXplaneFrame.h Data : 05.04.24 Versione : 2.6d1 +// Contenuto : Dichiarazione della classe RotationXplaneFrame. +// +// +// +// Modifiche : 05.04.24 DS Creazione modulo. + +// +//---------------------------------------------------------------------------- + +#pragma once + +#include "/EgtDev/Include/EGkCurve.h" +#include "/EgtDev/Include/EGkGeoCollection.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 + +//---------------------------------------------------------------------------- +class EGK_EXPORT RotationXplaneFrame +{ + public : + RotationXplaneFrame( void) + : m_pCrv( nullptr), m_vtNorm(), m_vtNearX() {} + ~RotationXplaneFrame( void) + { Clear() ; } + bool Set( const ICurve* pCrv, const Vector3d& vtNorm, const Vector3d& vtNearX = V_NULL) ; + + public : + bool GetFramesByStep( double dStep, bool bUniform, FRAME3DVECTOR& vRXFrames) ; + bool GetFramesBySplit( int nIntervals, FRAME3DVECTOR& vRXFrames) ; + bool GetFramesByTolerance( double dTol, FRAME3DVECTOR& vRXFrames) ; + + private : + bool Clear( void) ; + bool IsValid( void) ; + bool GetFrameAtParam( const Frame3d& frAct, const double dParNext, Frame3d& frNext) ; + + private : + ICurve* m_pCrv ; // curva per il calcolo del rotation Xplane frame + Vector3d m_vtNorm ; // vettore normale al piano in cui deve sempre giacere l'asse X + Vector3d m_vtNearX ; // vettore a cui deve essere il pił vicino possibile la direzione X iniziale +} ; diff --git a/EGkStmFromCurves.h b/EGkStmFromCurves.h index 2ad4d49..70d9c99 100644 --- a/EGkStmFromCurves.h +++ b/EGkStmFromCurves.h @@ -1,8 +1,8 @@ //---------------------------------------------------------------------------- // EgalTech 2015-2024 //---------------------------------------------------------------------------- -// File : EGkStmFromCurves.h Data : 27.02.24 Versione : 2.6b4 -// Contenuto : Dichiarazione della classe StmFromTriangleSoup. +// File : EGkStmFromCurves.h Data : 27.02.24 Versione : 2.6d1 +// Contenuto : Prototipi funzioni di creazione TriMesh a partire da curve. // // // @@ -41,8 +41,10 @@ EGK_EXPORT ISurfTriMesh* GetSurfTriMeshByScrewing( const ICurve* pCurve, const P double dAngRotDeg, double dMove, bool bCapEnds, double dLinTol = 10 * EPS_SMALL) ; EGK_EXPORT ISurfTriMesh* GetSurfTriMeshRectSwept( double dDimH, double dDimV, double dBevelH, double dBevelV, const ICurve* pGuide, int nCapType, double dLinTol = 10 * EPS_SMALL) ; -EGK_EXPORT ISurfTriMesh* GetSurfTriMeshSwept( const ICurve* pSect, const ICurve* pGuide, bool bCapEnds, double dLinTol = 10 * EPS_SMALL, Vector3d* vtStatic = nullptr) ; -EGK_EXPORT ISurfTriMesh* GetSurfTriMeshSwept( const ISurfFlatRegion* pSfrSect, const ICurve* pGuide, bool bCapEnds, double dLinTol = 10 * EPS_SMALL, Vector3d* vtStatic = nullptr) ; +EGK_EXPORT ISurfTriMesh* GetSurfTriMeshSwept( const ICurve* pSect, const ICurve* pGuide, const Vector3d& vtAx, + bool bCapEnds, double dLinTol = 10 * EPS_SMALL) ; +EGK_EXPORT ISurfTriMesh* GetSurfTriMeshSwept( const ISurfFlatRegion* pSfrSect, const ICurve* pGuide, const Vector3d& vtAx, + bool bCapEnds, double dLinTol = 10 * EPS_SMALL) ; EGK_EXPORT ISurfTriMesh* GetSurfTriMeshTransSwept( const ICurve* pSect, const ICurve* pGuide, bool bCapEnds, double dLinTol = 10 * EPS_SMALL) ; EGK_EXPORT ISurfTriMesh* GetSurfTriMeshRuled( const Point3d& ptP, const ICurve* pCurve, double dLinTol = 10 * EPS_SMALL) ; EGK_EXPORT ISurfTriMesh* GetSurfTriMeshRuled( const ICurve* pCurve1, const ICurve* pCurve2, int nType, double dLinTol = 10 * EPS_SMALL) ; diff --git a/EInAPI.h b/EInAPI.h index d6340b8..e1e4345 100644 --- a/EInAPI.h +++ b/EInAPI.h @@ -315,9 +315,10 @@ EIN_EXPORT int __stdcall EgtCreateSurfTmByRevolve( int nParentId, int nCrvId, const double ptAx[3], const double vtAx[3], BOOL bCapEnds, double dLinTol, int nRefType) ; EIN_EXPORT int __stdcall EgtCreateSurfTmByScrewing( int nParentId, int nCrvId, - const double ptAx[3], const double vtAx[3], - double dAngRotDeg, double dMove, BOOL bCapEnds, double dLinTol, int nRefType) ; -EIN_EXPORT int __stdcall EgtCreateSurfTmSwept( int nParentId, int nSectId, int nGuideId, BOOL bCapEnds, double dLinTol) ; + const double ptAx[3], const double vtAx[3], + double dAngRotDeg, double dMove, BOOL bCapEnds, double dLinTol, int nRefType) ; +EIN_EXPORT int __stdcall EgtCreateSurfTmSwept( int nParentId, int nSectId, int nGuideId, const double vtAx[3], + BOOL bCapEnds, double dLinTol, int nRefType) ; EIN_EXPORT int __stdcall EgtCreateSurfTmRuled( int nParentId, int nPntOrCrvId1, int nCrvId2, int nType, double dLinTol) ; EIN_EXPORT int __stdcall EgtCreateSurfTmByTriangles( int nParentId, int nNumId, const int nIds[], BOOL bErase) ; EIN_EXPORT int __stdcall EgtCreateSurfTmBySewing( int nParentId, int nNumId, const int nIds[], BOOL bErase) ; diff --git a/EXeExecutor.h b/EXeExecutor.h index 3445df7..cc88e0c 100644 --- a/EXeExecutor.h +++ b/EXeExecutor.h @@ -357,7 +357,8 @@ EXE_EXPORT int ExeCreateSurfTmByScrewing( int nParentId, int nCrvId, double dAngRotDeg, double dMove, bool bCapEnds, double dLinTol, int nRefType) ; EXE_EXPORT int ExeCreateSurfTmRectSwept( int nParentId, double dDimH, double dDimV, double dBevelH, double dBevelV, int nGuideId, int nCapType, double dLinTol) ; -EXE_EXPORT int ExeCreateSurfTmSwept( int nParentId, int nSectId, int nGuideId, bool bCapEnds, double dLinTol, Vector3d* vtStatic = nullptr) ; +EXE_EXPORT int ExeCreateSurfTmSwept( int nParentId, int nSectId, int nGuideId, const Vector3d& vtAx, + bool bCapEnds, double dLinTol, int nRefType) ; EXE_EXPORT int ExeCreateSurfTmTransSwept( int nParentId, int nSectId, int nGuideId, bool bCapEnds, double dLinTol) ; EXE_EXPORT int ExeCreateSurfTmRuled( int nParentId, int nPtOrCrvId1, int nPtOrCrvId2, int nType, double dLinTol) ; EXE_EXPORT int ExeCreateSurfTmByTriangles( int nParentId, const INTVECTOR& vIds, bool bErase) ; From 3466eb44dd58fe6802c45c683872187586c04dc7 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Mon, 8 Apr 2024 09:42:26 +0200 Subject: [PATCH 4/5] Include : - aggiornamento prototipi. --- EGkProjectCurveSurfTm.h | 9 +++++++-- EXeExecutor.h | 2 ++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/EGkProjectCurveSurfTm.h b/EGkProjectCurveSurfTm.h index 2d2320b..cbf8319 100644 --- a/EGkProjectCurveSurfTm.h +++ b/EGkProjectCurveSurfTm.h @@ -29,11 +29,14 @@ struct Point5ax { Point3d ptP ; Vector3d vtDir ; + Vector3d vtDir2 ; double dPar ; int nFlag ; - Point5ax( void) : ptP(), vtDir(), dPar(), nFlag() {} ; + Point5ax( void) : ptP(), vtDir(), vtDir2(), dPar(), nFlag() {} ; Point5ax( const Point3d& ptBase, const Vector3d& vtTool, double dU, int nData) - : ptP( ptBase), vtDir( vtTool), dPar( dU), nFlag( nData) {} ; + : ptP( ptBase), vtDir( vtTool), vtDir2(), dPar( dU), nFlag( nData) {} ; + Point5ax( const Point3d& ptBase, const Vector3d& vtTool, const Vector3d& vtTool2, double dU, int nData) + : ptP( ptBase), vtDir( vtTool), vtDir2( vtTool2), dPar( dU), nFlag( nData) {} ; } ; typedef std::vector PNT5AXVECTOR ; // vettore di Punti 5assi @@ -41,3 +44,5 @@ 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 ICurve& crRef, + double dLinTol, double dMaxSegmLen, PNT5AXVECTOR& vPt5ax) ; diff --git a/EXeExecutor.h b/EXeExecutor.h index cc88e0c..8c60832 100644 --- a/EXeExecutor.h +++ b/EXeExecutor.h @@ -601,6 +601,8 @@ EXE_EXPORT bool ExeChainCurvesInGroup( int nGroupId, const Point3d& ptNear, int 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 int ExeCurveGetVoronoi( int nId, int nDestGrpId, int nBound, int* pnCount) ; EXE_EXPORT int ExeCurveGetMedialAxis( int nId, int nDestGrpId, int nSide, int* pnCount) ; EXE_EXPORT int ExeCurveGetFatCurve( int nId, int nDestGrpId, double dRad, bool bSquareEnds, bool bSquareMids, int* pnCount) ; From ac2da7f310f4cbdf056c6cbb9b01179aebac8179 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Tue, 9 Apr 2024 14:52:08 +0200 Subject: [PATCH 5/5] Include : - aggiunta costante KEY_ERR_NETKEY_NOTFOUND = 9 - aggiornamento prototipi. --- EGkProjectCurveSurfTm.h | 5 +++++ EGkSurfLocal.h | 23 +++++++++++++++++++++-- EInAPI.h | 1 + EXeExecutor.h | 1 + SELkKeyProc.h | 1 + SELkLockId.h | 2 ++ 6 files changed, 31 insertions(+), 2 deletions(-) diff --git a/EGkProjectCurveSurfTm.h b/EGkProjectCurveSurfTm.h index cbf8319..368e65d 100644 --- a/EGkProjectCurveSurfTm.h +++ b/EGkProjectCurveSurfTm.h @@ -13,6 +13,7 @@ #pragma once +#include "/EgtDev/Include/EGkGeoPoint3d.h" #include "/EgtDev/Include/EGkCurve.h" #include "/EgtDev/Include/EGkSurfTriMesh.h" @@ -44,5 +45,9 @@ 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) ; diff --git a/EGkSurfLocal.h b/EGkSurfLocal.h index 163f45c..42a76d5 100644 --- a/EGkSurfLocal.h +++ b/EGkSurfLocal.h @@ -1,7 +1,7 @@ //---------------------------------------------------------------------------- -// EgalTech 2017-2017 +// EgalTech 2017-2024 //---------------------------------------------------------------------------- -// File : EGkSurfLocal.h Data : 29.03.17 Versione : 1.8c3 +// File : EGkSurfLocal.h Data : 08.04.24 Versione : 2.6d2 // Contenuto : Classe gestione superfici nel locale desiderato. // // @@ -45,6 +45,25 @@ class SurfLocal m_pCopy->LocToLoc( frSrf, frLoc) ; m_pSrf = m_pCopy ; } + SurfLocal( const ISurf* pSurf, const Frame3d& frSrf, const Frame3d& frLoc) + : m_pSrf( nullptr), m_pCopy( nullptr) + { // verifica dei parametri + if ( pSurf == nullptr || &frSrf == nullptr || &frLoc == nullptr) + return ; + // assegno la superficie originale + m_pSrf = pSurf ; + // se i riferimenti coincidono non devo fare altro + if ( AreSameFrame( frSrf, frLoc)) + return ; + // copio la superficie e la porto in locale + m_pCopy = m_pSrf->Clone() ; + if ( m_pCopy == nullptr) { + m_pSrf = nullptr ; + return ; + } + m_pCopy->LocToLoc( frSrf, frLoc) ; + m_pSrf = m_pCopy ; + } SurfLocal( const SurfLocal& Other) : m_pSrf( nullptr), m_pCopy( nullptr) { // se non devo clonare diff --git a/EInAPI.h b/EInAPI.h index e1e4345..6e0441f 100644 --- a/EInAPI.h +++ b/EInAPI.h @@ -59,6 +59,7 @@ EIN_EXPORT BOOL __stdcall EgtGetKeyOptions( int nProd, int nVer, int nLev, unsig EIN_EXPORT BOOL __stdcall EgtGetKeyLeftDays( int* pnLeftDays) ; EIN_EXPORT BOOL __stdcall EgtGetKeyAssLeftDays( int* pnAssLeftDays) ; EIN_EXPORT BOOL __stdcall EgtGetKeyOptLeftDays( int* pnOptLeftDays) ; +EIN_EXPORT BOOL __stdcall EgtGetNetHwKey( void) ; EIN_EXPORT BOOL __stdcall EgtGetOsInfo( wchar_t*& wsOs) ; EIN_EXPORT BOOL __stdcall EgtGetCpuInfo( wchar_t*& wsCpu) ; EIN_EXPORT BOOL __stdcall EgtGetMemoryInfo( wchar_t*& wsMem) ; diff --git a/EXeExecutor.h b/EXeExecutor.h index 8c60832..2bf02af 100644 --- a/EXeExecutor.h +++ b/EXeExecutor.h @@ -64,6 +64,7 @@ EXE_EXPORT bool ExeGetKeyOptions( int nProd, int nVer, int nLev, unsigned int& n EXE_EXPORT bool ExeGetKeyLeftDays( int& nLeftDays) ; EXE_EXPORT bool ExeGetKeyAssLeftDays( int& nAssLeftDays) ; EXE_EXPORT bool ExeGetKeyOptLeftDays( int& nOptLeftDays) ; +EXE_EXPORT bool ExeGetNetHwKey( void) ; EXE_EXPORT bool ExeGetOsInfo( std::string& sOs) ; EXE_EXPORT bool ExeGetCpuInfo( std::string& sCpu) ; EXE_EXPORT bool ExeGetMemoryInfo( std::string& sMem) ; diff --git a/SELkKeyProc.h b/SELkKeyProc.h index 673d6ac..84b5de9 100644 --- a/SELkKeyProc.h +++ b/SELkKeyProc.h @@ -44,3 +44,4 @@ const int KEY_ERR_VER = 5 ; const int KEY_ERR_LEV = 6 ; const int KEY_ERR_WRONG_TIME = 7 ; const int KEY_ERR_TIME = 8 ; +const int KEY_ERR_NETKEY_NOTFOUND = 9 ; diff --git a/SELkLockId.h b/SELkLockId.h index f7a6b09..b8c2c0e 100644 --- a/SELkLockId.h +++ b/SELkLockId.h @@ -23,6 +23,8 @@ bool SetLockType( int nType) ; bool SetNetHwKey( bool bNetHwKey, int nUserId, const std::string& sAddrPort) ; // Libero chiave di rete (da eseguire al termine del programma) bool CloseNetHwKey( void) ; +// Chiave di rete non trovata (il dispositivo non risponde) +bool NotFoundNetHwKey( void) ; // Recupero l'identificativo in chiaro della protezione bool GetLockId( std::string& sLockId) ; // Recupero l'identificativo cifrato della protezione