2f7a8a8f9c
- aggiunta funzione ExeLuaExistsFunction.
307 lines
9.1 KiB
C++
307 lines
9.1 KiB
C++
//----------------------------------------------------------------------------
|
|
// EgalTech 2014-2015
|
|
//----------------------------------------------------------------------------
|
|
// File : EXE_LUA.cpp Data : 05.05.15 Versione : 1.6e1
|
|
// Contenuto : Funzioni esecuzione LUA per EXE.
|
|
//
|
|
//
|
|
//
|
|
// Modifiche : 28.09.14 DS Creazione modulo.
|
|
//
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
//--------------------------- Include ----------------------------------------
|
|
#include "stdafx.h"
|
|
#include "EXE.h"
|
|
#include "LUA_Base.h"
|
|
#include "AuxTools.h"
|
|
#include "/EgtDev/Include/EXeExecutor.h"
|
|
#include "/EgtDev/Include/EXeCmdLogOff.h"
|
|
#include "/EgtDev/Include/EGkLuaAux.h"
|
|
#include "/EgtDev/Include/EGkStringUtils3d.h"
|
|
#include "/EgtDev/Include/EgtStringConverter.h"
|
|
|
|
using namespace std ;
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeLuaCreateGlobTable( const string& sVar)
|
|
{
|
|
// creazione della tavola
|
|
return LuaCreateGlobTable( sVar) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeLuaSetGlobBoolVar( const string& sVar, bool bVal)
|
|
{
|
|
// assegno il valore della variabile
|
|
bool bOk = LuaSetGlobVar( sVar, bVal) ;
|
|
// se richiesto, salvo il comando Lua
|
|
if ( IsCmdLog()) {
|
|
string sLua = sVar + "=" + ( bVal ? "true" : "false") +
|
|
" -- Ok=" + ToString( bOk) ;
|
|
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
|
|
}
|
|
// restituisco il risultato
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeLuaSetGlobIntVar( const string& sVar, int nVal)
|
|
{
|
|
// assegno il valore della variabile
|
|
bool bOk = LuaSetGlobVar( sVar, nVal) ;
|
|
// se richiesto, salvo il comando Lua
|
|
if ( IsCmdLog()) {
|
|
string sLua = sVar + "=" + ToString( nVal) +
|
|
" -- Ok=" + ToString( bOk) ;
|
|
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
|
|
}
|
|
// restituisco il risultato
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeLuaSetGlobNumVar( const string& sVar, double dVal)
|
|
{
|
|
// assegno il valore della variabile
|
|
bool bOk = LuaSetGlobVar( sVar, dVal) ;
|
|
// se richiesto, salvo il comando Lua
|
|
if ( IsCmdLog()) {
|
|
string sLua = sVar + "=" + ToString( dVal) +
|
|
" -- Ok=" + ToString( bOk) ;
|
|
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
|
|
}
|
|
// restituisco il risultato
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeLuaSetGlobStringVar( const string& sVar, const string& sVal)
|
|
{
|
|
// assegno il valore della variabile
|
|
bool bOk = LuaSetGlobVar( sVar, sVal) ;
|
|
// se richiesto, salvo il comando Lua
|
|
if ( IsCmdLog()) {
|
|
string sLua = sVar + "='" + sVal + "'" +
|
|
" -- Ok=" + ToString( bOk) ;
|
|
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
|
|
}
|
|
// restituisco il risultato
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeLuaSetGlobVectorVar( const string& sVar, const Vector3d& vtVal)
|
|
{
|
|
// assegno il valore della variabile
|
|
bool bOk = LuaSetGlobVar( sVar, vtVal) ;
|
|
// se richiesto, salvo il comando Lua
|
|
if ( IsCmdLog()) {
|
|
string sLua = sVar + "='" + ToString( vtVal) + "'" +
|
|
" -- Ok=" + ToString( bOk) ;
|
|
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
|
|
}
|
|
// restituisco il risultato
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeLuaSetGlobPointVar( const string& sVar, const Point3d& ptVal)
|
|
{
|
|
// assegno il valore della variabile
|
|
bool bOk = LuaSetGlobVar( sVar, ptVal) ;
|
|
// se richiesto, salvo il comando Lua
|
|
if ( IsCmdLog()) {
|
|
string sLua = sVar + "='" + ToString( ptVal) + "'" +
|
|
" -- Ok=" + ToString( bOk) ;
|
|
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
|
|
}
|
|
// restituisco il risultato
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeLuaGetGlobBoolVar( const string& sVar, bool* pbVal)
|
|
{
|
|
// verifico parametro di ritorno
|
|
if ( pbVal == nullptr)
|
|
return false ;
|
|
// recupero il valore della variabile
|
|
return LuaGetGlobVar( sVar, *pbVal) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeLuaGetGlobIntVar( const string& sVar, int* pnVal)
|
|
{
|
|
// verifico parametro di ritorno
|
|
if ( pnVal == nullptr)
|
|
return false ;
|
|
// recupero il valore della variabile
|
|
return LuaGetGlobVar( sVar, *pnVal) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeLuaGetGlobNumVar( const string& sVar, double* pdVal)
|
|
{
|
|
// verifico parametro di ritorno
|
|
if ( pdVal == nullptr)
|
|
return false ;
|
|
// recupero il valore della variabile
|
|
return LuaGetGlobVar( sVar, *pdVal) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeLuaGetGlobStringVar( const string& sVar, string& sVal)
|
|
{
|
|
// verifico parametro di ritorno
|
|
if ( &sVal == nullptr)
|
|
return false ;
|
|
// recupero il valore della variabile
|
|
return LuaGetGlobVar( sVar, sVal) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeLuaGetGlobVectorVar( const string& sVar, Vector3d& vtVal)
|
|
{
|
|
// verifico parametro di ritorno
|
|
if ( &vtVal == nullptr)
|
|
return false ;
|
|
// recupero il valore della variabile
|
|
return LuaGetGlobVar( sVar, vtVal) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeLuaGetGlobPointVar( const string& sVar, Point3d& ptVal)
|
|
{
|
|
// verifico parametro di ritorno
|
|
if ( &ptVal == nullptr)
|
|
return false ;
|
|
// recupero il valore della variabile
|
|
return LuaGetGlobVar( sVar, ptVal) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeLuaResetGlobVar( const string& sVar)
|
|
{
|
|
// eseguo il reset della variabile
|
|
return LuaResetGlobVar( sVar) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeLuaExistsFunction( const string& sFun)
|
|
{
|
|
// verifica esistenza funzione
|
|
return LuaExistsFunction( sFun) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeLuaCallFunction( const string& sFun)
|
|
{
|
|
// chiamata di funzione senza parametri e senza valori di ritorno
|
|
return LuaCallFunction( sFun, 0) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeLuaEvalNumExpr( const string& sExpr, double* pdVal)
|
|
{
|
|
// verifico parametro di ritorno
|
|
if ( pdVal == nullptr)
|
|
return false ;
|
|
// valuto l'espressione
|
|
return LuaEvalExpr( sExpr, *pdVal) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeLuaEvalStringExpr( const string& sExpr, string& sVal)
|
|
{
|
|
// verifico parametro di ritorno
|
|
if ( &sVal == nullptr)
|
|
return false ;
|
|
// valuto l'espressione
|
|
return LuaEvalExpr( sExpr, sVal) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeLuaExecLine( const string& sLine)
|
|
{
|
|
// disabilito log dei comandi e salvo stato precedente
|
|
bool bPrevCmdLog = SetCmdLog( false) ;
|
|
// eseguo il comando
|
|
bool bOk = LuaExecLine( sLine) ;
|
|
// ripristino lo stato originale del log dei comandi
|
|
SetCmdLog( bPrevCmdLog) ;
|
|
// se richiesto, salvo il comando Lua
|
|
if ( IsCmdLog()) {
|
|
string sLua = sLine +
|
|
" -- Ok=" + ToString( bOk) ;
|
|
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
|
|
}
|
|
// restituisco il risultato
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeLuaExecFile( const string& sFilePath)
|
|
{
|
|
// emetto info
|
|
string sInfo = "Exec File = " + sFilePath ;
|
|
LOG_INFO( GetLogger(), sInfo.c_str())
|
|
// disabilito il log dei comandi
|
|
CmdLogOff cmdLogOff ;
|
|
// esecuzione script
|
|
bool bOk = LuaExecFile( sFilePath) ;
|
|
// ripristino lo stato originale del log dei comandi
|
|
cmdLogOff.Reset() ;
|
|
// se richiesto, salvo il comando Lua
|
|
if ( IsCmdLog()) {
|
|
string sLua = "dofile('" + StringToLuaString( sFilePath) + "')" +
|
|
" -- Ok=" + ToString( bOk) ;
|
|
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
|
|
}
|
|
// restituisco il risultato
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeLuaRequire( const string& sFilePath)
|
|
{
|
|
// emetto info
|
|
string sInfo = "Require Library = " + sFilePath ;
|
|
LOG_INFO( GetLogger(), sInfo.c_str())
|
|
// eseguo il comando
|
|
return LuaRequire( sFilePath) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeLuaGetLastError( string& sError)
|
|
{
|
|
// verifico parametro di ritorno
|
|
if ( &sError == nullptr)
|
|
return false ;
|
|
sError = LuaGetLastError() ;
|
|
return true ;
|
|
}
|