//---------------------------------------------------------------------------- // EgalTech 2014-2014 //---------------------------------------------------------------------------- // File : LUA_General.cpp Data : 27.09.14 Versione : 1.5i5 // Contenuto : Funzioni generali per LUA. // // // // Modifiche : 27.09.14 DS Creazione modulo. // // //---------------------------------------------------------------------------- //--------------------------- Include ---------------------------------------- #include "stdafx.h" #include "LUA.h" #include "API.h" #include "/EgtDev/Include/EInAPI.h" #include "/EgtDev/Include/EgnStringUtils.h" #include "/EgtDev/Extern/Lua/Include/lua.hpp" using namespace std ; //------------------------------------------------------------------------------- static int LuaSetDefaultMaterial( lua_State* L) { // un solo parametro, il colore Color colDef ; if ( ! LuaGetParam( L, 1, colDef)) return luaL_error( L, "Invalide first parameter") ; LuaClearStack( L) ; // imposto il colore di default int vCol[4] ; colDef.GetInt( vCol) ; bool bOk = ( EgtSetDefaultMaterial( vCol) != FALSE) ; // restituisco il risultato LuaSetReturn( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaSetGridFrame( lua_State* L) { // 1 parametro : Frame Frame3d frFrame ; LuaCheckParam( L, 1, frFrame) ; LuaClearStack( L) ; // imposto il riferimento della Griglia (o CPlane) bool bOk = ( EgtSetGridFrame( frFrame)) ; // restituisco il risultato LuaSetReturn( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaGetGridFrame( lua_State* L) { // 1 o nessun parametro : [nRefId] int nRefId = GDB_ID_ROOT ; if ( lua_gettop( L) >= 1) LuaCheckParam( L, 1, nRefId) LuaClearStack( L) ; // recupero il riferimento della griglia Frame3d frFrame ; EgtGetGridFrame( nRefId, frFrame) ; // restituisco il risultato LuaSetReturn( L, frFrame) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaGetGridVersZ( lua_State* L) { // 1 o nessun parametro : [nRefId] int nRefId = GDB_ID_ROOT ; if ( lua_gettop( L) >= 1) LuaCheckParam( L, 1, nRefId) LuaClearStack( L) ; // recupero il versore Z della griglia e lo restituisco Vector3d vtVersZ ; if ( EgtGetGridVersZ( nRefId, vtVersZ)) LuaSetReturn( L, vtVersZ) ; else LuaSetReturn( L) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaNewFile( lua_State* L) { // nessun parametro LuaClearStack( L) ; // nuovo progetto bool bOk = ( EgtNewFile() != FALSE) ; // restituisco il risultato LuaSetReturn( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaOpenFile( lua_State* L) { // 1 parametro : path del file da aprire string sFilePath ; LuaCheckParam( L, 1, sFilePath) LuaClearStack( L) ; // apro il file bool bOk = EgtOpenFile( sFilePath) ; // restituisco il risultato LuaSetReturn( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaImportFile( lua_State* L) { // 1 parametro : path del file da importare string sFilePath ; LuaCheckParam( L, 1, sFilePath) LuaClearStack( L) ; // apro il file bool bOk = EgtImportFile( sFilePath) ; // restituisco il risultato LuaSetReturn( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaSaveFile( lua_State* L) { // 1 o 2 parametri : path del file [, flag("T","B","CT")] string sFilePath ; LuaCheckParam( L, 1, sFilePath) int nFlag = GDB_SV_CMPTXT ; if ( lua_gettop( L) >= 2) { string sFlag ; LuaCheckParam( L, 2, sFlag) ; ToUpper( sFlag) ; if ( sFlag == "T") nFlag = GDB_SV_TXT ; else if ( sFlag == "B") nFlag = GDB_SV_BIN ; } LuaClearStack( L) ; // salvo il file bool bOk = EgtSaveFile( sFilePath, nFlag) ; // restituisco il risultato LuaSetReturn( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- bool LuaInstallGeomDB( lua_State* L) { try { lua_register( L, "EgtSetDefaultMaterial", LuaSetDefaultMaterial) ; lua_register( L, "EgtSetGridFrame", LuaSetGridFrame) ; lua_register( L, "EgtGetGridFrame", LuaGetGridFrame) ; lua_register( L, "EgtGetGridVersZ", LuaGetGridVersZ) ; lua_register( L, "EgtNewFile", LuaNewFile) ; lua_register( L, "EgtOpenFile", LuaOpenFile) ; lua_register( L, "EgtImportFile", LuaImportFile) ; lua_register( L, "EgtSaveFile", LuaSaveFile) ; } catch ( ...) { return false ; } return true ; }