diff --git a/interface/src/raypick/ParabolaPick.cpp b/interface/src/raypick/ParabolaPick.cpp index e8986f7ce9..2b55bb9c94 100644 --- a/interface/src/raypick/ParabolaPick.cpp +++ b/interface/src/raypick/ParabolaPick.cpp @@ -19,7 +19,8 @@ ParabolaPick::ParabolaPick(const glm::vec3& position, const glm::vec3& direction Pick(PickParabola(position, speed * direction, accelerationAxis), filter, maxDistance, enabled), _rotateAccelerationWithAvatar(rotateAccelerationWithAvatar), _rotateAccelerationWithParent(rotateAccelerationWithParent), - _scaleWithParent(scaleWithParent) { + _scaleWithParent(scaleWithParent), + _speed(speed) { } PickParabola ParabolaPick::getMathematicalPick() const { @@ -39,7 +40,7 @@ PickParabola ParabolaPick::getMathematicalPick() const { velocity = currentParentTransform.transformDirection(velocity); } else { glm::vec3 transformedVelocity = currentParentTransform.transformDirection(velocity); - velocity = glm::normalize(transformedVelocity) * glm::distance(velocity, Vectors::ZERO); + velocity = glm::normalize(transformedVelocity) * _speed; } glm::vec3 acceleration = _mathPick.acceleration; if (_rotateAccelerationWithAvatar) { diff --git a/interface/src/raypick/ParabolaPick.h b/interface/src/raypick/ParabolaPick.h index 7089228d21..8cbbc79bf5 100644 --- a/interface/src/raypick/ParabolaPick.h +++ b/interface/src/raypick/ParabolaPick.h @@ -89,6 +89,8 @@ protected: bool _rotateAccelerationWithAvatar; bool _rotateAccelerationWithParent; bool _scaleWithParent; + // Cached magnitude of _mathPick.velocity + float _speed; }; #endif // hifi_ParabolaPick_h