EgtMachKernel :

- aggiunta la gestione delle collisioni tra oggetti e grezzi dinamici in simulazione.
This commit is contained in:
Dario Sassi
2019-08-06 09:32:37 +00:00
parent 36c161d03a
commit 5816a62373
7 changed files with 190 additions and 39 deletions
+31 -1
View File
@@ -112,6 +112,8 @@ Machine::LuaInit( const string& sMachineName)
m_LuaMgr.RegisterFunction( "EmtSetLastError", Machine::LuaEmtSetLastError) ;
// registro la funzione per aggiungere informazioni di warning
m_LuaMgr.RegisterFunction( "EmtSetWarning", Machine::LuaEmtSetWarning) ;
// registro la funzione per aggiungere un oggetto da verificare per la collisione in simulazione
m_LuaMgr.RegisterFunction( "EmtAddCollisionObj", Machine::LuaEmtAddCollisionObj) ;
return true ;
}
@@ -1015,6 +1017,34 @@ Machine::LuaEmtSetWarning( lua_State* L)
// assegno i dati
bool bOk = ( m_pMchLua->m_pMchMgr != nullptr && m_pMchLua->m_pMchMgr->SetWarning( nWarnId, sWarnDesc)) ;
// assegno risultato
LuaSetParam( L, true) ;
LuaSetParam( L, bOk) ;
return 1 ;
}
//----------------------------------------------------------------------------
int
Machine::LuaEmtAddCollisionObj( lua_State* L)
{
// 6 parametri : nInd, nFrameId, nType, dPar1, dPar2, dPar3
int nInd ;
LuaCheckParam( L, 1, nInd)
int nFrameId ;
LuaCheckParam( L, 2, nFrameId)
int nType ;
LuaCheckParam( L, 3, nType)
double dPar1 ;
LuaCheckParam( L, 4, dPar1)
double dPar2 ;
LuaCheckParam( L, 5, dPar2)
double dPar3 ;
LuaCheckParam( L, 6, dPar3)
LuaClearStack( L) ;
// verifico ci sia una macchina attiva
if ( m_pMchLua == nullptr)
return luaL_error( L, " Unknown Machine") ;
// assegno i dati
bool bOk = ( m_pMchLua->m_pMchMgr != nullptr && m_pMchLua->m_pMchMgr->SimAddCollisionObj( nInd, nFrameId, nType, dPar1, dPar2, dPar3)) ;
// assegno risultato
LuaSetParam( L, bOk) ;
return 1 ;
}