EgtExecutor 1.6g4 :

- aggiunta EraseEmptyParts a EXE e LUA
- possibilità di registrare i SetGlobVar per LUA.
This commit is contained in:
Dario Sassi
2015-07-15 13:40:20 +00:00
parent c5fdfea88c
commit fece5ea9fb
4 changed files with 91 additions and 5 deletions
+40
View File
@@ -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)
+36 -4
View File
@@ -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 ;
}
//-----------------------------------------------------------------------------
BIN
View File
Binary file not shown.
+15 -1
View File
@@ -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) ;