From fece5ea9fb43b443c4728871c1d6d3bc388e157d Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Wed, 15 Jul 2015 13:40:20 +0000 Subject: [PATCH] =?UTF-8?q?EgtExecutor=201.6g4=20:=20-=20aggiunta=20EraseE?= =?UTF-8?q?mptyParts=20a=20EXE=20e=20LUA=20-=20possibilit=C3=A0=20di=20reg?= =?UTF-8?q?istrare=20i=20SetGlobVar=20per=20LUA.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- EXE_GdbPartLayers.cpp | 40 ++++++++++++++++++++++++++++++++++++++++ EXE_Lua.cpp | 40 ++++++++++++++++++++++++++++++++++++---- EgtExecutor.rc | Bin 11686 -> 11686 bytes LUA_GdbPartLayers.cpp | 16 +++++++++++++++- 4 files changed, 91 insertions(+), 5 deletions(-) diff --git a/EXE_GdbPartLayers.cpp b/EXE_GdbPartLayers.cpp index 4308df6..a9c465d 100644 --- a/EXE_GdbPartLayers.cpp +++ b/EXE_GdbPartLayers.cpp @@ -252,6 +252,46 @@ ExeGetNextLayer( int nId, bool bOnlyVisible) return ExeVerifyOrNext( pGeomDB, nLayerId, bOnlyVisible) ; } +//------------------------------------------------------------------------------- +bool +ExeEraseEmptyParts( void) +{ + IGeomDB* pGeomDB = GetCurrGeomDB() ; + VERIFY_GEOMDB( pGeomDB, false) + // recupero il primo pezzo + int nPartId = ExeVerifyOrNext( pGeomDB, pGeomDB->GetFirstGroupInGroup( GDB_ID_ROOT), false) ; + // ciclo sui pezzi + while ( nPartId != GDB_ID_NULL) { + // verifico se il pezzo non contiene alcuna entità geometrica + bool bFound = false ; + // ciclo sui layer dei pezzi + int nLayerId = ExeVerifyOrNext( pGeomDB, pGeomDB->GetFirstGroupInGroup( nPartId), false) ; + while ( nLayerId != GDB_ID_NULL) { + // verifico se il layer contiene qualcosa + if ( pGeomDB->GetGroupObjs( nLayerId) > 0) { + bFound = true ; + break ; + } + // passo al layer successivo + nLayerId = ExeVerifyOrNext( pGeomDB, pGeomDB->GetNextGroup( nLayerId), false) ; + } + // salvo Id pezzo corrente + int nOldId = nPartId ; + // passo al pezzo successivo + nPartId = ExeVerifyOrNext( pGeomDB, pGeomDB->GetNextGroup( nPartId), false) ; + // se corrente da cancelare, procedo + if ( ! bFound) + pGeomDB->Erase( nOldId) ; + } + // se richiesto, salvo il comando Lua equivalente + if ( IsCmdLog()) { + string sLua = "EgtEraseEmptyParts()" + " -- Ok=" + ToString( true) ; + LOG_INFO( GetCmdLogger(), sLua.c_str()) ; + } + return true ; +} + //----------------------------------------------------------------------------- bool ExeSelectPartObjs( int nPartId) diff --git a/EXE_Lua.cpp b/EXE_Lua.cpp index e06ca96..da0aeaf 100644 --- a/EXE_Lua.cpp +++ b/EXE_Lua.cpp @@ -26,7 +26,15 @@ bool ExeLuaSetGlobBoolVar( const string& sVar, bool bVal) { // assegno il valore della variabile - return LuaSetGlobVar( sVar, bVal) ; + bool bOk = LuaSetGlobVar( sVar, bVal) ; + // se richiesto, salvo il comando Lua + if ( IsCmdLog()) { + string sLua = sVar + "=" + ( bVal ? "true" : "false") + + " -- Ok=" + ToString( bOk) ; + LOG_INFO( GetCmdLogger(), sLua.c_str()) ; + } + // restituisco il risultato + return bOk ; } //----------------------------------------------------------------------------- @@ -34,7 +42,15 @@ bool ExeLuaSetGlobIntVar( const string& sVar, int nVal) { // assegno il valore della variabile - return LuaSetGlobVar( sVar, nVal) ; + bool bOk = LuaSetGlobVar( sVar, nVal) ; + // se richiesto, salvo il comando Lua + if ( IsCmdLog()) { + string sLua = sVar + "=" + ToString( nVal) + + " -- Ok=" + ToString( bOk) ; + LOG_INFO( GetCmdLogger(), sLua.c_str()) ; + } + // restituisco il risultato + return bOk ; } //----------------------------------------------------------------------------- @@ -42,7 +58,15 @@ bool ExeLuaSetGlobNumVar( const string& sVar, double dVal) { // assegno il valore della variabile - return LuaSetGlobVar( sVar, dVal) ; + bool bOk = LuaSetGlobVar( sVar, dVal) ; + // se richiesto, salvo il comando Lua + if ( IsCmdLog()) { + string sLua = sVar + "=" + ToString( dVal) + + " -- Ok=" + ToString( bOk) ; + LOG_INFO( GetCmdLogger(), sLua.c_str()) ; + } + // restituisco il risultato + return bOk ; } //----------------------------------------------------------------------------- @@ -50,7 +74,15 @@ bool ExeLuaSetGlobStringVar( const string& sVar, const string& sVal) { // assegno il valore della variabile - return LuaSetGlobVar( sVar, sVal) ; + bool bOk = LuaSetGlobVar( sVar, sVal) ; + // se richiesto, salvo il comando Lua + if ( IsCmdLog()) { + string sLua = sVar + "='" + sVal + "'" + + " -- Ok=" + ToString( bOk) ; + LOG_INFO( GetCmdLogger(), sLua.c_str()) ; + } + // restituisco il risultato + return bOk ; } //----------------------------------------------------------------------------- diff --git a/EgtExecutor.rc b/EgtExecutor.rc index 66bed8380433e8a3b917c7bcce85b0608195094d..c91b0e5c08d32cd12ee84d8b5460689a3d370fae 100644 GIT binary patch delta 79 zcmZ1$y)1geFE&P#&A-`PnSqoe*K!sx?>N)s4T4pSCX*exk~jAW*?>e(i-FY$N+HxV MD8kglDS2=M0AF|-b^rhX delta 79 zcmZ1$y)1geFE&Qw&A-`PnSqoe*K!sx?>N)s4T4pS#*-bnk~jAW*?>e(i-FY$N+HxV MD8kglDS2=M0A4H_ZU6uP diff --git a/LUA_GdbPartLayers.cpp b/LUA_GdbPartLayers.cpp index 6fb0960..1af37a3 100644 --- a/LUA_GdbPartLayers.cpp +++ b/LUA_GdbPartLayers.cpp @@ -199,6 +199,19 @@ LuaGetNextLayer( lua_State* L) return 1 ; } +//------------------------------------------------------------------------------- +static int +LuaEraseEmptyParts( lua_State* L) +{ + // nessun parametro + LuaClearStack( L) ; + // cancello i pezzi vuoti + bool bOk = ExeEraseEmptyParts() ; + // restituisco il risultato + LuaSetParam( L, bOk) ; + return 1 ; +} + //------------------------------------------------------------------------------- static int LuaSelectPartObjs( lua_State* L) @@ -281,9 +294,9 @@ bool LuaInstallGdbPartLayer( LuaMgr& luaMgr) { bool bOk = ( &luaMgr != nullptr) ; - bOk = bOk && luaMgr.RegisterFunction( "EgtGetCurrPart", LuaGetCurrPart) ; bOk = bOk && luaMgr.RegisterFunction( "EgtIsPart", LuaIsPart) ; bOk = bOk && luaMgr.RegisterFunction( "EgtIsLayer", LuaIsLayer) ; + bOk = bOk && luaMgr.RegisterFunction( "EgtGetCurrPart", LuaGetCurrPart) ; bOk = bOk && luaMgr.RegisterFunction( "EgtGetCurrLayer", LuaGetCurrLayer) ; bOk = bOk && luaMgr.RegisterFunction( "EgtSetCurrPartLayer", LuaSetCurrPartLayer) ; bOk = bOk && luaMgr.RegisterFunction( "EgtResetCurrPartLayer", LuaResetCurrPartLayer) ; @@ -292,6 +305,7 @@ LuaInstallGdbPartLayer( LuaMgr& luaMgr) bOk = bOk && luaMgr.RegisterFunction( "EgtGetNextPart", LuaGetNextPart) ; bOk = bOk && luaMgr.RegisterFunction( "EgtGetFirstLayer", LuaGetFirstLayer) ; bOk = bOk && luaMgr.RegisterFunction( "EgtGetNextLayer", LuaGetNextLayer) ; + bOk = bOk && luaMgr.RegisterFunction( "EgtEraseEmptyParts", LuaEraseEmptyParts) ; bOk = bOk && luaMgr.RegisterFunction( "EgtSelectPartObjs", LuaSelectPartObjs) ; bOk = bOk && luaMgr.RegisterFunction( "EgtDeselectPartObjs", LuaDeselectPartObjs) ; bOk = bOk && luaMgr.RegisterFunction( "EgtSelectLayerObjs", LuaSelectLayerObjs) ;