//---------------------------------------------------------------------------- // EgalTech 2014-2014 //---------------------------------------------------------------------------- // File : LUA_Scene.cpp Data : 29.09.14 Versione : 1.5i5 // Contenuto : Funzioni di visualizzazione per LUA. // // // // Modifiche : 29.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 LuaSetBackground( lua_State* L) { // 3 parametri : colore top, colore bottom, flag ridisegna Color colTop ; LuaCheckParam( L, 1, colTop) Color colBot ; LuaCheckParam( L, 2, colBot) bool bRedraw ; LuaCheckParam( L, 3, bRedraw) LuaClearStack( L) ; // imposto lo sfondo bool bOk = ( EgtSetBackground( LuaGetGseContext(), colTop.GetIntRed(), colTop.GetIntGreen(), colTop.GetIntBlue(), colBot.GetIntRed(), colBot.GetIntGreen(), colBot.GetIntBlue(), bRedraw) != FALSE) ; // restituisco il risultato LuaSetReturn( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaDraw( lua_State* L) { // nessun parametro LuaClearStack( L) ; // eseguo ridisegno bool bOk = ( EgtDraw( LuaGetGseContext()) != FALSE) ; // restituisco il risultato LuaSetReturn( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaSetShowMode( lua_State* L) { // 2 parametri : ShowMode ("WF","HL","SH"), flag ridisegna string sShowMode ; LuaCheckParam( L, 1, sShowMode) int nShowMode = SM_SHADING ; ToUpper( sShowMode) ; if ( sShowMode == "WF") nShowMode = SM_WIREFRAME ; else if ( sShowMode == "HL") nShowMode = SM_HIDDENLINE ; bool bRedraw ; LuaCheckParam( L, 2, bRedraw) LuaClearStack( L) ; // imposto il modo di visualizzazione bool bOk = ( EgtSetShowMode( LuaGetGseContext(), nShowMode, bRedraw) != FALSE) ; // restituisco il risultato LuaSetReturn( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaSetShowCurveDirection( lua_State* L) { // 2 parametri : flag ShowCrvDir, flag ridisegna bool bShowCrvDir ; LuaCheckParam( L, 1, bShowCrvDir) bool bRedraw ; LuaCheckParam( L, 2, bRedraw) LuaClearStack( L) ; // imposto visualizzazione direzione curve bool bOk = ( EgtSetShowCurveDirection( LuaGetGseContext(), bShowCrvDir, bRedraw) != FALSE) ; // restituisco il risultato LuaSetReturn( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaZoom( lua_State* L) { // 2 parametri : ZoomType ("ALL","IN","OUT"), flag ridisegna string sZoomType ; LuaCheckParam( L, 1, sZoomType) int nZoomType = 1 ; ToUpper( sZoomType) ; if ( sZoomType == "IN") nZoomType = 2 ; else if ( sZoomType == "OUT") nZoomType = 3 ; bool bRedraw ; LuaCheckParam( L, 2, bRedraw) LuaClearStack( L) ; // imposto zoom bool bOk = ( EgtZoom( LuaGetGseContext(), nZoomType, bRedraw) != FALSE) ; // restituisco il risultato LuaSetReturn( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaSetView( lua_State* L) { // 2 parametri : ViewDir ("T","F","R","B","L","BO","SWI","SEI","NEI","NWI"), flag ridisegna string sViewDir ; LuaCheckParam( L, 1, sViewDir) int nViewDir = CT_TOP ; ToUpper( sViewDir) ; if ( sViewDir == "F") nViewDir = CT_FRONT ; else if ( sViewDir == "R") nViewDir = CT_RIGHT ; else if ( sViewDir == "B") nViewDir = CT_BACK ; else if ( sViewDir == "L") nViewDir = CT_LEFT ; else if ( sViewDir == "SWI") nViewDir = CT_ISO_SW ; else if ( sViewDir == "SEI") nViewDir = CT_ISO_SE ; else if ( sViewDir == "NEI") nViewDir = CT_ISO_NE ; else if ( sViewDir == "NWI") nViewDir = CT_ISO_NW ; bool bRedraw ; LuaCheckParam( L, 2, bRedraw) LuaClearStack( L) ; // imposto direzione di vista bool bOk = ( EgtSetView( LuaGetGseContext(), nViewDir, bRedraw) != FALSE) ; // restituisco il risultato LuaSetReturn( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaSetGenericView( lua_State* L) { // 3 parametri : dAngVertDeg, dAngHorizDeg, flag ridisegna double dAngVertDeg ; LuaCheckParam( L, 1, dAngVertDeg) double dAngHorizDeg ; LuaCheckParam( L, 2, dAngHorizDeg) bool bRedraw ; LuaCheckParam( L, 3, bRedraw) LuaClearStack( L) ; // imposto direzione di vista bool bOk = ( EgtSetGenericView( LuaGetGseContext(), dAngVertDeg, dAngHorizDeg, bRedraw) != FALSE) ; // restituisco il risultato LuaSetReturn( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaSetViewCenter( lua_State* L) { // 2 parametri : ptCen, flag ridisegna Point3d ptCen ; LuaCheckParam( L, 1, ptCen) bool bRedraw ; LuaCheckParam( L, 2, bRedraw) LuaClearStack( L) ; // imposto centro di vista bool bOk = ( EgtSetViewCenter( LuaGetGseContext(), ptCen.v, bRedraw) != FALSE) ; // restituisco il risultato LuaSetReturn( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- bool LuaInstallScene( lua_State* L) { try { lua_register( L, "EgtSetBackground", LuaSetBackground) ; lua_register( L, "EgtDraw", LuaDraw) ; lua_register( L, "EgtSetShowMode", LuaSetShowMode) ; lua_register( L, "EgtSetShowCurveDirection", LuaSetShowCurveDirection) ; lua_register( L, "EgtZoom", LuaZoom) ; lua_register( L, "EgtSetView", LuaSetView) ; lua_register( L, "EgtSetGenericView", LuaSetGenericView) ; lua_register( L, "EgtSetViewCenter", LuaSetViewCenter) ; } catch ( ...) { return false ; } return true ; }