EgtMachKernel :

- aggiunte funzioni lua EmtRemoveCollisionObj e EmtGetCollisionObj per meglio gestire gli oggetti di collisione di tipo testa da postproc.
This commit is contained in:
Dario Sassi
2026-02-25 15:19:28 +01:00
parent 8a289d07b8
commit 9351b9b2d8
9 changed files with 163 additions and 4 deletions
+31 -1
View File
@@ -2343,7 +2343,8 @@ SimulatorSP::OnResetMachine( void)
//----------------------------------------------------------------------------
bool
SimulatorSP::AddCollisionObj( int nInd, bool bToolOn, int nFrameId, int nType, const Vector3d& vtMove, double dPar1, double dPar2, double dPar3)
SimulatorSP::AddCollisionObj( int nInd, bool bToolOn, int nFrameId, int nType,
const Vector3d& vtMove, double dPar1, double dPar2, double dPar3)
{
// verifiche sui parametri
if ( nInd <= 0 || nFrameId <= GDB_ID_NULL)
@@ -2374,6 +2375,35 @@ SimulatorSP::AddCollisionObj( int nInd, bool bToolOn, int nFrameId, int nType, c
}
// aggiungo al vettore
m_CollObj.emplace_back( nInd, bToolOn, nFrameId, nType, vtMove, dPar1, dPar2, dPar3) ;
return true ;
}
//----------------------------------------------------------------------------
bool
SimulatorSP::RemoveCollisionObj( int nFrameId)
{
erase_if( m_CollObj, [nFrameId]( CollObj Item) { return ( Item.nFrameId == nFrameId) ; }) ;
return true ;
}
//----------------------------------------------------------------------------
bool
SimulatorSP::GetCollisionObj( int nPos, int& nInd, bool& bToolOn, int& nFrameId, int& nType,
Vector3d& vtMove, double& dPar1, double& dPar2, double& dPar3)
{
// posizione nel vettore non valida
if ( nPos < 0 || nPos >= ssize( m_CollObj))
return false ;
// assegno i dati
nInd = m_CollObj[nPos].nInd ;
bToolOn = m_CollObj[nPos].bToolOn ;
nFrameId = m_CollObj[nPos].nFrameId ;
nType = m_CollObj[nPos].nType ;
vtMove = m_CollObj[nPos].vtMove ;
dPar1 = m_CollObj[nPos].dPar1 ;
dPar2 = m_CollObj[nPos].dPar2 ;
dPar3 = m_CollObj[nPos].dPar3 ;
return true ;
}