From 0196edd4d2e0cde2de5c8138d5f69df2cea9fce4 Mon Sep 17 00:00:00 2001 From: erwin coumans Date: Fri, 26 Mar 2021 09:11:59 -0700 Subject: [PATCH] update single aabb, during resetJointState/resetBasePositionAndOrientation, to allow raycast/collision queries. --- examples/SharedMemory/PhysicsServerCommandProcessor.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/examples/SharedMemory/PhysicsServerCommandProcessor.cpp b/examples/SharedMemory/PhysicsServerCommandProcessor.cpp index 0cb66f157..9cb5c3455 100644 --- a/examples/SharedMemory/PhysicsServerCommandProcessor.cpp +++ b/examples/SharedMemory/PhysicsServerCommandProcessor.cpp @@ -10785,6 +10785,12 @@ bool PhysicsServerCommandProcessor::processInitPoseCommand(const struct SharedMe scratch_m.resize(nLinks + 1); mb->updateCollisionObjectWorldTransforms(scratch_q, scratch_m); + + m_data->m_dynamicsWorld->updateSingleAabb(mb->getBaseCollider()); + for (int i=0;igetNumLinks();i++) + { + m_data->m_dynamicsWorld->updateSingleAabb(mb->getLinkCollider(i)); + } } if (body && body->m_rigidBody) @@ -10809,6 +10815,7 @@ bool PhysicsServerCommandProcessor::processInitPoseCommand(const struct SharedMe body->m_rigidBody->getWorldTransform().setRotation(baseOrn); body->m_rigidBody->setAngularVelocity(baseAngVel); } + m_data->m_dynamicsWorld->updateSingleAabb(body->m_rigidBody); } #ifndef SKIP_SOFT_BODY_MULTI_BODY_DYNAMICS_WORLD if (body && body->m_softBody) @@ -10835,6 +10842,7 @@ bool PhysicsServerCommandProcessor::processInitPoseCommand(const struct SharedMe } body->m_softBody->transformTo(tr); } + m_data->m_dynamicsWorld->updateSingleAabb(body->m_softBody); } #endif syncPhysicsToGraphics2();