EgtExecutor :
- aggiunta funzione ExeGetNameInGroup, semplificata di conseguenza LuaGetNameInGroup - piccole migliorie a exe/lua GetInfoInGroup.
This commit is contained in:
+19
-1
@@ -219,12 +219,30 @@ ExeGetPrevName( int nId, const string& sName)
|
||||
return pGeomDB->GetPrevName( nId, sName) ;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
bool
|
||||
ExeGetNameInGroup( int nGroupId, const string& sName, INTVECTOR& vIds)
|
||||
{
|
||||
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
||||
VERIFY_GEOMDB( pGeomDB, false)
|
||||
if ( ! pGeomDB->ExistsObj( nGroupId))
|
||||
return false ;
|
||||
// recupero gli oggetti con il nome desiderato
|
||||
vIds.clear() ;
|
||||
int nId = pGeomDB->GetFirstNameInGroup( nGroupId, sName) ;
|
||||
while ( nId != GDB_ID_NULL) {
|
||||
vIds.push_back( nId) ;
|
||||
nId = pGeomDB->GetNextName( nId, sName) ;
|
||||
}
|
||||
return true ;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
bool
|
||||
ExeGetInfoInGroup( int nGroupId, const string& sKey, INTVECTOR& vIds)
|
||||
{
|
||||
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
||||
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
|
||||
VERIFY_GEOMDB( pGeomDB, false)
|
||||
if ( ! pGeomDB->ExistsObj( nGroupId))
|
||||
return false ;
|
||||
// recupero gli oggetti con l'info desiderata
|
||||
|
||||
+23
-27
@@ -208,31 +208,6 @@ LuaGetPrev( lua_State* L)
|
||||
return 1 ;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
static int
|
||||
LuaGetNameInGroup( lua_State* L)
|
||||
{
|
||||
// 2 parametri : GroupId, sName
|
||||
int nGroupId = GDB_ID_NULL ;
|
||||
LuaGetParam( L, 1, nGroupId) ;
|
||||
string sName ;
|
||||
LuaGetParam( L, 2, sName) ;
|
||||
LuaClearStack( L) ;
|
||||
// recupero tutti gli oggetti del gruppo con il nome o suo inizio desiderato
|
||||
INTVECTOR vId ;
|
||||
int nId = ExeGetFirstNameInGroup( nGroupId, sName) ;
|
||||
while ( nId != GDB_ID_NULL) {
|
||||
vId.push_back ( nId) ;
|
||||
nId = ExeGetNextName( nId, sName) ;
|
||||
}
|
||||
// restituisco il risultato
|
||||
if ( ! vId.empty())
|
||||
LuaSetParam( L, vId) ;
|
||||
else
|
||||
LuaSetParam( L) ;
|
||||
return 1 ;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
static int
|
||||
LuaGetFirstNameInGroup( lua_State* L)
|
||||
@@ -313,6 +288,27 @@ LuaGetPrevName( lua_State* L)
|
||||
return 1 ;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
static int
|
||||
LuaGetNameInGroup( lua_State* L)
|
||||
{
|
||||
// 2 parametri : GroupId, sName
|
||||
int nGroupId = GDB_ID_NULL ;
|
||||
LuaGetParam( L, 1, nGroupId) ;
|
||||
string sName ;
|
||||
LuaGetParam( L, 2, sName) ;
|
||||
LuaClearStack( L) ;
|
||||
// recupero tutti gli oggetti del gruppo con il nome o suo inizio desiderato
|
||||
INTVECTOR vIds ;
|
||||
bool bOk = ExeGetNameInGroup( nGroupId, sName, vIds) ;
|
||||
// restituisco il risultato
|
||||
if ( bOk)
|
||||
LuaSetParam( L, vIds) ;
|
||||
else
|
||||
LuaSetParam( L) ;
|
||||
return 1 ;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
static int
|
||||
LuaGetInfoInGroup( lua_State* L)
|
||||
@@ -327,7 +323,7 @@ LuaGetInfoInGroup( lua_State* L)
|
||||
INTVECTOR vIds ;
|
||||
bool bOk = ExeGetInfoInGroup( nGroupId, sKey, vIds) ;
|
||||
// restituisco il risultato
|
||||
if ( bOk && ! vIds.empty())
|
||||
if ( bOk)
|
||||
LuaSetParam( L, vIds) ;
|
||||
else
|
||||
LuaSetParam( L) ;
|
||||
@@ -653,11 +649,11 @@ LuaInstallGdbObjects( LuaMgr& luaMgr)
|
||||
bOk = bOk && luaMgr.RegisterFunction( "EgtGetNext", LuaGetNext) ;
|
||||
bOk = bOk && luaMgr.RegisterFunction( "EgtGetLastInGroup", LuaGetLastInGroup) ;
|
||||
bOk = bOk && luaMgr.RegisterFunction( "EgtGetPrev", LuaGetPrev) ;
|
||||
bOk = bOk && luaMgr.RegisterFunction( "EgtGetNameInGroup", LuaGetNameInGroup) ;
|
||||
bOk = bOk && luaMgr.RegisterFunction( "EgtGetFirstNameInGroup", LuaGetFirstNameInGroup) ;
|
||||
bOk = bOk && luaMgr.RegisterFunction( "EgtGetNextName", LuaGetNextName) ;
|
||||
bOk = bOk && luaMgr.RegisterFunction( "EgtGetLastNameInGroup", LuaGetLastNameInGroup) ;
|
||||
bOk = bOk && luaMgr.RegisterFunction( "EgtGetPrevName", LuaGetPrevName) ;
|
||||
bOk = bOk && luaMgr.RegisterFunction( "EgtGetNameInGroup", LuaGetNameInGroup) ;
|
||||
bOk = bOk && luaMgr.RegisterFunction( "EgtGetInfoInGroup", LuaGetInfoInGroup) ;
|
||||
bOk = bOk && luaMgr.RegisterFunction( "EgtGetFirstGroupInGroup", LuaGetFirstGroupInGroup) ;
|
||||
bOk = bOk && luaMgr.RegisterFunction( "EgtGetNextGroup", LuaGetNextGroup) ;
|
||||
|
||||
Reference in New Issue
Block a user