From 9073e1ade35d69807b9c203bd6ccbaaa572872df Mon Sep 17 00:00:00 2001 From: Andrew Meadows Date: Fri, 14 Sep 2018 10:37:17 -0700 Subject: [PATCH 1/2] don't zero kinematic velocity at end of sim ownership --- libraries/physics/src/EntityMotionState.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libraries/physics/src/EntityMotionState.cpp b/libraries/physics/src/EntityMotionState.cpp index 2c130274bc..5478221607 100644 --- a/libraries/physics/src/EntityMotionState.cpp +++ b/libraries/physics/src/EntityMotionState.cpp @@ -446,8 +446,9 @@ bool EntityMotionState::shouldSendUpdate(uint32_t simulationStep) { void EntityMotionState::updateSendVelocities() { if (!_body->isActive()) { - // make sure all derivatives are zero - clearObjectVelocities(); + if (!_body->isKinematicObject()) { + clearObjectVelocities(); + } // we pretend we sent the inactive update for this object _numInactiveUpdates = 1; } else { From 9390687e2dd8a541b32c3964ade73f663c0bfd58 Mon Sep 17 00:00:00 2001 From: Andrew Meadows Date: Fri, 14 Sep 2018 10:37:55 -0700 Subject: [PATCH 2/2] remove redundant EntityMotionState::updateSendVelocities() call --- libraries/physics/src/PhysicalEntitySimulation.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/libraries/physics/src/PhysicalEntitySimulation.cpp b/libraries/physics/src/PhysicalEntitySimulation.cpp index 5666e75aa1..2004f8953d 100644 --- a/libraries/physics/src/PhysicalEntitySimulation.cpp +++ b/libraries/physics/src/PhysicalEntitySimulation.cpp @@ -138,7 +138,6 @@ void PhysicalEntitySimulation::changeEntityInternal(EntityItemPointer entity) { btRigidBody* body = motionState->getRigidBody(); if (body) { body->forceActivationState(ISLAND_SLEEPING); - motionState->updateSendVelocities(); // has side-effect of zeroing entity velocities for inactive body } // send packet to remove ownership