//---------------------------------------------------------------------------- // EgalTech 2015-2015 //---------------------------------------------------------------------------- // File : LUA_GdbObjSelection.cpp Data : 08.01.15 Versione : 1.6a1 // Contenuto : Funzioni di selezione oggetti del DB geometrico per LUA. // // // // Modifiche : 08.01.15 DS Creazione modulo. // // //---------------------------------------------------------------------------- //--------------------------- Include ---------------------------------------- #include "stdafx.h" #include "LUA.h" #include "/EgtDev/Include/EXeExecutor.h" #include "/EgtDev/Include/EGkGdbConst.h" #include "/EgtDev/Include/EGkLuaAux.h" using namespace std ; //------------------------------------------------------------------------------- static int LuaSetObjFilterForSelect( lua_State* L) { // 5 parametri : bZerodim, bCurve, bSurf, bVolume, bExtra bool bZerodim ; LuaCheckParam( L, 1, bZerodim) bool bCurve ; LuaCheckParam( L, 2, bCurve) bool bSurf ; LuaCheckParam( L, 3, bSurf) bool bVolume ; LuaCheckParam( L, 4, bVolume) bool bExtra ; LuaCheckParam( L, 5, bExtra) LuaClearStack( L) ; // eseguo la selezione bool bOk = ExeSetObjFilterForSelect( bZerodim, bCurve, bSurf, bVolume, bExtra) ; // restituisco il risultato LuaSetParam( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaSelectObj( lua_State* L) { // 1 parametro : Id int nId ; LuaCheckParam( L, 1, nId) LuaClearStack( L) ; // eseguo la selezione bool bOk = ExeSelectObj( nId) ; // restituisco il risultato LuaSetParam( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaDeselectObj( lua_State* L) { // 1 parametro : Id int nId ; LuaCheckParam( L, 1, nId) LuaClearStack( L) ; // eseguo la selezione bool bOk = ExeDeselectObj( nId) ; // restituisco il risultato LuaSetParam( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaSelectAll( lua_State* L) { // 1 parametro : bOnlyIfVisible bool bOnlyIfVisible ; LuaCheckParam( L, 1, bOnlyIfVisible) LuaClearStack( L) ; // eseguo la selezione bool bOk = ExeSelectAll( bOnlyIfVisible) ; // restituisco il risultato LuaSetParam( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaDeselectAll( lua_State* L) { // nessun parametro LuaClearStack( L) ; // eseguo la selezione bool bOk = ExeDeselectAll() ; // restituisco il risultato LuaSetParam( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaSelectGroupObjs( lua_State* L) { // 1 parametro : GroupId int GroupId ; LuaCheckParam( L, 1, GroupId) LuaClearStack( L) ; // eseguo la selezione bool bOk = ExeSelectGroupObjs( GroupId) ; // restituisco il risultato LuaSetParam( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaDeselectGroupObjs( lua_State* L) { // 1 parametro : GroupId int GroupId ; LuaCheckParam( L, 1, GroupId) LuaClearStack( L) ; // eseguo la deselezione bool bOk = ExeDeselectGroupObjs( GroupId) ; // restituisco il risultato LuaSetParam( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaIsSelectedObj( lua_State* L) { // 1 parametro : Id int nId ; LuaCheckParam( L, 1, nId) LuaClearStack( L) ; // eseguo la selezione bool bOk = ExeIsSelectedObj( nId) ; // restituisco il risultato LuaSetParam( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaGetSelectedObjCount( lua_State* L) { // nessun parametro LuaClearStack( L) ; // eseguo la selezione int nNbr = ExeGetSelectedObjCount() ; // restituisco il risultato LuaSetParam( L, nNbr) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaGetFirstSelectedObj( lua_State* L) { // nessun parametro LuaClearStack( L) ; // recupero il primo oggetto selezionato int nId = ExeGetFirstSelectedObj() ; // restituisco il risultato if ( nId != GDB_ID_NULL) LuaSetParam( L, nId) ; else LuaSetParam( L) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaGetNextSelectedObj( lua_State* L) { // nessun parametro LuaClearStack( L) ; // recupero il successivo oggetto selezionato int nId = ExeGetNextSelectedObj() ; // restituisco il risultato if ( nId != GDB_ID_NULL) LuaSetParam( L, nId) ; else LuaSetParam( L) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaGetLastSelectedObj( lua_State* L) { // nessun parametro LuaClearStack( L) ; // recupero l'ultimo oggetto selezionato int nId = ExeGetLastSelectedObj() ; // restituisco il risultato if ( nId != GDB_ID_NULL) LuaSetParam( L, nId) ; else LuaSetParam( L) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaGetPrevSelectedObj( lua_State* L) { // nessun parametro LuaClearStack( L) ; // recupero il precedente oggetto selezionato int nId = ExeGetPrevSelectedObj() ; // restituisco il risultato if ( nId != GDB_ID_NULL) LuaSetParam( L, nId) ; else LuaSetParam( L) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaGetLastSelInfo( lua_State* L) { // nessun parametro LuaClearStack( L) ; // recupero le informazioni di selezione sull'ultimo oggetto selezionato int nLastId ; int nLastSub ; Point3d ptLastSel ; bool bOk = ExeGetLastSelInfo( nLastId, nLastSub, ptLastSel) ; // restituisco il risultato if ( bOk) { LuaSetParam( L, nLastId) ; LuaSetParam( L, nLastSub) ; LuaSetParam( L, ptLastSel) ; } else { LuaSetParam( L) ; LuaSetParam( L) ; LuaSetParam( L) ; } return 3 ; } //------------------------------------------------------------------------------- static int LuaGetPrevSelInfo( lua_State* L) { // nessun parametro LuaClearStack( L) ; // recupero le informazioni di selezione sul penultimo oggetto selezionato int nPrevId ; int nPrevSub ; Point3d ptPrevSel ; bool bOk = ExeGetPrevSelInfo( nPrevId, nPrevSub, ptPrevSel) ; // restituisco il risultato if ( bOk) { LuaSetParam( L, nPrevId) ; LuaSetParam( L, nPrevSub) ; LuaSetParam( L, ptPrevSel) ; } else { LuaSetParam( L) ; LuaSetParam( L) ; LuaSetParam( L) ; } return 3 ; } //------------------------------------------------------------------------------- bool LuaInstallGdbObjSelection( LuaMgr& luaMgr) { bool bOk = ( &luaMgr != nullptr) ; bOk = bOk && luaMgr.RegisterFunction( "EgtSetObjFilterForSelect", LuaSetObjFilterForSelect) ; bOk = bOk && luaMgr.RegisterFunction( "EgtSelectObj", LuaSelectObj) ; bOk = bOk && luaMgr.RegisterFunction( "EgtDeselectObj", LuaDeselectObj) ; bOk = bOk && luaMgr.RegisterFunction( "EgtSelectAll", LuaSelectAll) ; bOk = bOk && luaMgr.RegisterFunction( "EgtDeselectAll", LuaDeselectAll) ; bOk = bOk && luaMgr.RegisterFunction( "EgtSelectGroupObjs", LuaSelectGroupObjs) ; bOk = bOk && luaMgr.RegisterFunction( "EgtDeselectGroupObjs", LuaDeselectGroupObjs) ; bOk = bOk && luaMgr.RegisterFunction( "EgtIsSelectedObj", LuaIsSelectedObj) ; bOk = bOk && luaMgr.RegisterFunction( "EgtGetSelectedObjCount", LuaGetSelectedObjCount) ; bOk = bOk && luaMgr.RegisterFunction( "EgtGetFirstSelectedObj", LuaGetFirstSelectedObj) ; bOk = bOk && luaMgr.RegisterFunction( "EgtGetNextSelectedObj", LuaGetNextSelectedObj) ; bOk = bOk && luaMgr.RegisterFunction( "EgtGetLastSelectedObj", LuaGetLastSelectedObj) ; bOk = bOk && luaMgr.RegisterFunction( "EgtGetPrevSelectedObj", LuaGetPrevSelectedObj) ; bOk = bOk && luaMgr.RegisterFunction( "EgtGetLastSelInfo", LuaGetLastSelInfo) ; bOk = bOk && luaMgr.RegisterFunction( "EgtGetPrevSelInfo", LuaGetPrevSelInfo) ; return bOk ; }