From ea0a0be9eda3f112f38911b3fad83af49122dab3 Mon Sep 17 00:00:00 2001 From: DarioS Date: Tue, 23 Aug 2022 11:23:08 +0200 Subject: [PATCH 1/3] EgtExecutor : - aggiunta funzione Exe e Lua CurveMedialAxis. --- EXE_GdbModifyCurve.cpp | 34 ++++++++++++++++++++++++++++++++++ LUA_GdbModifyCurve.cpp | 18 ++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/EXE_GdbModifyCurve.cpp b/EXE_GdbModifyCurve.cpp index a7669cb..b997fb3 100644 --- a/EXE_GdbModifyCurve.cpp +++ b/EXE_GdbModifyCurve.cpp @@ -29,6 +29,7 @@ #include "/EgtDev/Include/EGkCurveLocal.h" #include "/EgtDev/Include/EGkCurveAux.h" #include "/EgtDev/Include/EGkOffsetCurve.h" +#include "/EgtDev/Include/EGkMedialAxis.h" #include "/EgtDev/Include/EGkChainCurves.h" #include "/EgtDev/Include/EGkSurfFlatRegion.h" #include "/EgtDev/Include/EGkExtTExt.h" @@ -145,6 +146,39 @@ ExeOffsetCurveAdv( int nId, double dDist, int nType, int* pnCount) return nFirstId ; } +//---------------------------------------------------------------------------- +int +ExeCurveMedialAxis( int nId) +{ + IGeomDB* pGeomDB = GetCurrGeomDB() ; + VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL) + // recupero la curva + const ICurve* pCurve = GetCurve( pGeomDB->GetGeoObj( nId)) ; + // eseguo il calcolo + PolyLine PL ; + if ( ! CurveSimpleMedialAxis( pCurve, PL)) + return GDB_ID_NULL ; + // creo la curva + PtrOwner pCompo( CreateCurveComposite()) ; + if ( IsNull( pCompo) || ! pCompo->FromPolyLine( PL)) + return GDB_ID_NULL ; + // la inserisco nel DB geometrico + int nNewId = pGeomDB->InsertGeoObj( GDB_ID_NULL, nId, GDB_AFTER, Release( pCompo)) ; + // copio gli attributi + pGeomDB->CopyAttributes( nId, nNewId) ; + // notifico la modifica + if ( nNewId != GDB_ID_NULL) + ExeSetModified() ; + // se richiesto, salvo il comando Lua equivalente + if ( IsCmdLog()) { + string sLua ; + sLua = "EgtCurveMedialAxis(" + ToString( nId) + ")" + + " -- Id=" + ToString( nNewId) ; + LOG_INFO( GetCmdLogger(), sLua.c_str()) ; + } + return nNewId ; +} + //------------------------------------------------------------------------------- bool ExeApproxCurve( int nId, int nApprType, double dLinTol) diff --git a/LUA_GdbModifyCurve.cpp b/LUA_GdbModifyCurve.cpp index 36778d4..de26271 100644 --- a/LUA_GdbModifyCurve.cpp +++ b/LUA_GdbModifyCurve.cpp @@ -81,6 +81,23 @@ LuaOffsetCurveAdv( lua_State* L) return 2 ; } +//------------------------------------------------------------------------------- +static int +LuaCurveMedialAxis( lua_State* L) +{ + // 1 parametro : Id + int nId ; + LuaCheckParam( L, 1, nId) + LuaClearStack( L) ; + // calcolo del Medial Axis della curva + int nNewId = ExeCurveMedialAxis( nId) ; + if ( nNewId != GDB_ID_NULL) + LuaSetParam( L, nNewId) ; + else + LuaSetParam( L) ; + return 1 ; +} + //------------------------------------------------------------------------------- static int LuaApproxCurve( lua_State* L) @@ -901,6 +918,7 @@ LuaInstallGdbModifyCurve( LuaMgr& luaMgr) bOk = bOk && luaMgr.RegisterFunction( "EgtInvertCurve", LuaInvertCurve) ; bOk = bOk && luaMgr.RegisterFunction( "EgtOffsetCurve", LuaOffsetCurve) ; bOk = bOk && luaMgr.RegisterFunction( "EgtOffsetCurveAdv", LuaOffsetCurveAdv) ; + bOk = bOk && luaMgr.RegisterFunction( "EgtCurveMedialAxis", LuaCurveMedialAxis) ; bOk = bOk && luaMgr.RegisterFunction( "EgtApproxCurve", LuaApproxCurve) ; bOk = bOk && luaMgr.RegisterFunction( "EgtProjectCurveOnPlane", LuaProjectCurveOnPlane) ; bOk = bOk && luaMgr.RegisterFunction( "EgtChangeClosedCurveStart", LuaChangeClosedCurveStart) ; From d81116c11816db081c9525028f8b5c9222f3f916 Mon Sep 17 00:00:00 2001 From: DarioS Date: Thu, 25 Aug 2022 21:02:31 +0200 Subject: [PATCH 2/3] EgtExecutor 2.4h3 : - aggiunta funzione Lua EgtMsg. --- EgtExecutor.rc | Bin 18890 -> 18890 bytes LUA_General.cpp | 15 +++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/EgtExecutor.rc b/EgtExecutor.rc index f3a1091d29a7155fbb042003fc865bfa2e93fc99..64a987ca0bf0e62e2c0118b692b95e377b79b5bc 100644 GIT binary patch delta 81 zcmX>#neo(Q#tpyN7>zgoW^-i*QjT29S-`yGOp`YVRxuh+cH~Ol+$UrM5#neo(Q#tpyN7>zdnW^-i*QjT29S-`yGOp`YVRxuh)cH~Ol+$UrM5m>XaK diff --git a/LUA_General.cpp b/LUA_General.cpp index 154706f..7d69e59 100644 --- a/LUA_General.cpp +++ b/LUA_General.cpp @@ -949,6 +949,20 @@ LuaGetLanguage( lua_State* L) return 1 ; } +//------------------------------------------------------------------------------- +static int +LuaGetMsg( lua_State* L) +{ + // 1 parametro : nMsg + int nMsg ; + LuaCheckParam( L, 1, nMsg) + LuaClearStack( L) ; + // recupero il nome della lingua corrente + string sMsg = ExeGetMsg( nMsg) ; + LuaSetParam( L, sMsg) ; + return 1 ; +} + //------------------------------------------------------------------------------- static int LuaWinExec( lua_State* L) @@ -1202,6 +1216,7 @@ LuaInstallGeneral( LuaMgr& luaMgr) bOk = bOk && luaMgr.RegisterFunction( "EgtGetVersion", LuaGetVersion) ; bOk = bOk && luaMgr.RegisterFunction( "EgtIs64bit", LuaIs64bit) ; bOk = bOk && luaMgr.RegisterFunction( "EgtGetLanguage", LuaGetLanguage) ; + bOk = bOk && luaMgr.RegisterFunction( "EgtMsg", LuaGetMsg) ; bOk = bOk && luaMgr.RegisterFunction( "EgtDialogBox", LuaDialogBox) ; bOk = bOk && luaMgr.RegisterFunction( "EgtWinExec", LuaWinExec) ; From 2f7a8a8f9c8083d4c4152b96dc7114f9aeebf990 Mon Sep 17 00:00:00 2001 From: DarioS Date: Mon, 29 Aug 2022 07:18:01 +0200 Subject: [PATCH 3/3] EgtExecutor 2.4h4 : - aggiunta funzione ExeLuaExistsFunction. --- EXE_Lua.cpp | 8 ++++++++ EgtExecutor.rc | Bin 18890 -> 18890 bytes LUA_Base.h | 8 +++++--- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/EXE_Lua.cpp b/EXE_Lua.cpp index 711cc9d..73d3d15 100644 --- a/EXE_Lua.cpp +++ b/EXE_Lua.cpp @@ -202,6 +202,14 @@ ExeLuaResetGlobVar( const string& sVar) return LuaResetGlobVar( sVar) ; } +//----------------------------------------------------------------------------- +bool +ExeLuaExistsFunction( const string& sFun) +{ + // verifica esistenza funzione + return LuaExistsFunction( sFun) ; +} + //----------------------------------------------------------------------------- bool ExeLuaCallFunction( const string& sFun) diff --git a/EgtExecutor.rc b/EgtExecutor.rc index 64a987ca0bf0e62e2c0118b692b95e377b79b5bc..4f73b14d38f2d95246c4ddd96bbda5a5248183b7 100644 GIT binary patch delta 81 zcmX>#neo(Q#tpyN7)>_+W^-i*QjT29S-`yGOp`YVRxz4PcH~Ol+$UrM5#neo(Q#tpyN7>zgoW^-i*QjT29S-`yGOp`YVRxuh+cH~Ol+$UrM5 bool LuaCallFunction( const std::string& sFunName, int nRets, const Args&... params) { return LuaGetLuaMgr().CallFunction( sFunName, nRets, params...) ; }