Files
EgtInterface/LUA_Scene.cpp
T
Dario Sassi 50b2d271ac EgtInterface 1.5i5 :
- aggiunto interprete Lua
- portate in interfaccia API molte funzioni di base.
2014-10-07 07:04:28 +00:00

211 lines
6.4 KiB
C++

//----------------------------------------------------------------------------
// 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 ;
}