diff --git a/libraries/physics/src/ObjectActionTractor.cpp b/libraries/physics/src/ObjectActionTractor.cpp index 629d8baefe..ec34023926 100644 --- a/libraries/physics/src/ObjectActionTractor.cpp +++ b/libraries/physics/src/ObjectActionTractor.cpp @@ -128,15 +128,13 @@ bool ObjectActionTractor::prepareForTractorUpdate(btScalar deltaTimeStep) { position /= linearTractorCount; if (_positionalTargetSet) { _lastPositionTarget = _positionalTarget; - } else { - _lastPositionTarget = position; - } - _positionalTarget = position; - if (deltaTimeStep > EPSILON) { - // blend the new velocity with the old (low-pass filter) - glm::vec3 newVelocity = (1.0f / deltaTimeStep) * (position - _lastPositionTarget); - const float blend = 0.25f; - _linearVelocityTarget = (1.0f - blend) * _linearVelocityTarget + blend * newVelocity; + _positionalTarget = position; + if (deltaTimeStep > EPSILON) { + // blend the new velocity with the old (low-pass filter) + glm::vec3 newVelocity = (1.0f / deltaTimeStep) * (_positionalTarget - _lastPositionTarget); + const float blend = 0.25f; + _linearVelocityTarget = (1.0f - blend) * _linearVelocityTarget + blend * newVelocity; + } } _positionalTargetSet = true; _active = true;