From 3ca2db72e9c51354915d9a57170dee47d7291c1f Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Fri, 16 Feb 2024 08:47:33 +0100 Subject: [PATCH] EgtMachKernel 2.6b3 : - adattamenti per modifiche a funzioni di Collision Detection. --- EgtMachKernel.rc | Bin 11774 -> 11774 bytes Operation.cpp | 4 ++-- Simulator.cpp | 18 +++++++++--------- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/EgtMachKernel.rc b/EgtMachKernel.rc index e6d808f32b4e5a9ae0da2cba593609e7503fab83..a9e602d31380dd8712a71f6fa8c0d3d122f0f311 100644 GIT binary patch delta 97 zcmewt{V#gMFE&Qw&A-`fnHh~IKa|wnoW?bQ1uSxrY4Qod0+^@}R1`^_2jk{d(jGv4 NK<#LXK~l;gTmUD-Bai?9 delta 97 zcmewt{V#gMFE&QQ&A-`fnHdcyKa|wnoW?bQ1uSxrY4Qod0+^@}R1`^_2jk{d(jGv4 NK<#LXK~l;gTmU3rBY*$^ diff --git a/Operation.cpp b/Operation.cpp index 8454740..df53403 100644 --- a/Operation.cpp +++ b/Operation.cpp @@ -3891,7 +3891,7 @@ Operation::TestCollisionAvoid( const DBLVECTOR& vAxStart, const DBLVECTOR& vAxEn // traslo il riferimento per avere il cilindro centrato sull'asse Y in positivo frHsol.Translate( frHsol.VersZ() * ptMin.z) ; // verifica di collisione tra cilindro e solido - if ( pStm == nullptr || CDeCylClosedSurfTm( frHsol, max( vtDiag.x, vtDiag.y) / 2, vtDiag.z, dSafeDist, *pStm)) { + if ( pStm == nullptr || CDeCylClosedSurfTm( frHsol, max( vtDiag.x, vtDiag.y) / 2, vtDiag.z, *pStm, dSafeDist)) { bCollide = true ; break ; } @@ -3901,7 +3901,7 @@ Operation::TestCollisionAvoid( const DBLVECTOR& vAxStart, const DBLVECTOR& vAxEn // traslo il riferimento per avere il box nel primo ottante frHsol.Translate( frHsol.VersX() * ptMin.x + frHsol.VersY() * ptMin.y + frHsol.VersZ() * ptMin.z) ; // verifica di collisione tra box e solido - if ( pStm == nullptr || CDeBoxClosedSurfTm( frHsol, vtDiag, dSafeDist, *pStm)) { + if ( pStm == nullptr || CDeBoxClosedSurfTm( frHsol, vtDiag, *pStm, dSafeDist)) { bCollide = true ; break ; } diff --git a/Simulator.cpp b/Simulator.cpp index 0e5d872..8800c31 100644 --- a/Simulator.cpp +++ b/Simulator.cpp @@ -1425,27 +1425,27 @@ Simulator::ExecCollisionCheck( int& nCdInd, int& nObjInd, int nMoveType) if ( m_CollObj[j].nType == MCH_SIM_COB_BOX) { Vector3d vtDiag( m_CollObj[j].dPar1, m_CollObj[j].dPar2, m_CollObj[j].dPar3) ; if ( pVZM != nullptr) - bOk = pVZM->AvoidBox( frObj, vtDiag, m_dSafeDist) ; + bOk = ! pVZM->CDeBox( frObj, vtDiag, m_dSafeDist) ; else - bOk = ! CDeBoxClosedSurfTm( frObj, vtDiag, m_dSafeDist, *pSTM) ; + bOk = ! CDeBoxClosedSurfTm( frObj, vtDiag, *pSTM, m_dSafeDist) ; } else if ( m_CollObj[j].nType == MCH_SIM_COB_CYL) { if ( pVZM != nullptr) - bOk = pVZM->AvoidCylinder( frObj, m_CollObj[j].dPar1, m_CollObj[j].dPar2, m_dSafeDist) ; + bOk = ! pVZM->CDeCylinder( frObj, m_CollObj[j].dPar1, m_CollObj[j].dPar2, m_dSafeDist) ; else - bOk = ! CDeCylClosedSurfTm( frObj, m_CollObj[j].dPar1, m_CollObj[j].dPar2, m_dSafeDist, *pSTM) ; + bOk = ! CDeCylClosedSurfTm( frObj, m_CollObj[j].dPar1, m_CollObj[j].dPar2, *pSTM, m_dSafeDist) ; } else if ( m_CollObj[j].nType == MCH_SIM_COB_SPHE) { if ( pVZM != nullptr) - bOk = pVZM->AvoidSphere( frObj.Orig(), m_CollObj[j].dPar1, m_dSafeDist) ; + bOk = ! pVZM->CDeSphere( frObj.Orig(), m_CollObj[j].dPar1, m_dSafeDist) ; else - bOk = ! CDeSpheClosedSurfTm( frObj.Orig(), m_CollObj[j].dPar1, m_dSafeDist, *pSTM) ; + bOk = ! CDeSpheClosedSurfTm( frObj.Orig(), m_CollObj[j].dPar1, *pSTM, m_dSafeDist) ; } else if ( m_CollObj[j].nType == MCH_SIM_COB_CONE) { if ( pVZM != nullptr) - bOk = pVZM->AvoidConeFrustum( frObj, m_CollObj[j].dPar1, m_CollObj[j].dPar2, m_CollObj[j].dPar3, m_dSafeDist) ; + bOk = ! pVZM->CDeConeFrustum( frObj, m_CollObj[j].dPar1, m_CollObj[j].dPar2, m_CollObj[j].dPar3, m_dSafeDist) ; else - bOk = ! CDeConeFrustumClosedSurfTm( frObj, m_CollObj[j].dPar1, m_CollObj[j].dPar2, m_CollObj[j].dPar3, m_dSafeDist, *pSTM) ; + bOk = ! CDeConeFrustumClosedSurfTm( frObj, m_CollObj[j].dPar1, m_CollObj[j].dPar2, m_CollObj[j].dPar3, *pSTM, m_dSafeDist) ; } } // altrimenti poliedro @@ -1454,7 +1454,7 @@ Simulator::ExecCollisionCheck( int& nCdInd, int& nObjInd, int nMoveType) const ISurfTriMesh* pStmLoc = GetSurfTriMesh( SurfLoc) ; if ( pStmLoc != nullptr) { if ( pVZM != nullptr) - bOk = pVZM->AvoidSurfTm( *pStmLoc, m_dSafeDist) ; + bOk = ! pVZM->CDeSurfTm( *pStmLoc, m_dSafeDist) ; else bOk = ! CDeClosedSurfTmClosedSurfTm( *pStmLoc, *pSTM, m_dSafeDist) ; }