From 2b4d894ab3b706d6ec7e07eebfede0c1038f3d88 Mon Sep 17 00:00:00 2001 From: Eric Levin Date: Fri, 17 Apr 2015 08:17:58 -0700 Subject: [PATCH] moved the type computation inside the while loop so it is correctly computed each iteration --- libraries/physics/src/PhysicsEngine.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libraries/physics/src/PhysicsEngine.cpp b/libraries/physics/src/PhysicsEngine.cpp index 68a71c59c3..e43fffb20a 100644 --- a/libraries/physics/src/PhysicsEngine.cpp +++ b/libraries/physics/src/PhysicsEngine.cpp @@ -400,8 +400,7 @@ void PhysicsEngine::computeCollisionEvents() { // scan known contacts and trigger events ContactMap::iterator contactItr = _contactMap.begin(); - // TODO: enable scripts to filter based on contact event type - ContactEventType type = contactItr->second.computeType(_numContactFrames); + while (contactItr != _contactMap.end()) { ObjectMotionState* A = static_cast(contactItr->first._a); ObjectMotionState* B = static_cast(contactItr->first._b); @@ -409,6 +408,8 @@ void PhysicsEngine::computeCollisionEvents() { // TODO: make triggering these events clean and efficient. The code at this context shouldn't // have to figure out what kind of object (entity, avatar, etc) these are in order to properly // emit a collision event. + // TODO: enable scripts to filter based on contact event type + ContactEventType type = contactItr->second.computeType(_numContactFrames); if(type != CONTACT_EVENT_TYPE_CONTINUE || _numSubsteps % CONTINUE_EVENT_FILTER_FREQUENCY == 0){ if (A && A->getType() == MOTION_STATE_TYPE_ENTITY) { EntityItemID idA = static_cast(A)->getEntity()->getEntityItemID();