From 30200ef7eb03799410a396ed7ba9b1dfeca0257c Mon Sep 17 00:00:00 2001 From: Andrew Meadows Date: Mon, 5 Jan 2015 09:17:46 -0800 Subject: [PATCH] add damping to ObjectMotionState --- libraries/physics/src/ObjectMotionState.cpp | 10 ++++++++++ libraries/physics/src/ObjectMotionState.h | 4 ++++ 2 files changed, 14 insertions(+) diff --git a/libraries/physics/src/ObjectMotionState.cpp b/libraries/physics/src/ObjectMotionState.cpp index ded2291229..4abe52a861 100644 --- a/libraries/physics/src/ObjectMotionState.cpp +++ b/libraries/physics/src/ObjectMotionState.cpp @@ -48,6 +48,8 @@ ObjectMotionState::ObjectMotionState() : _volume(DEFAULT_VOLUME), _friction(DEFAULT_FRICTION), _restitution(DEFAULT_RESTITUTION), + _linearDamping(0.0f), + _angularDamping(0.0f), _wasInWorld(false), _motionType(MOTION_TYPE_STATIC), _body(NULL), @@ -79,6 +81,14 @@ void ObjectMotionState::setRestitution(float restitution) { _restitution = btMax(btMin(fabsf(restitution), 1.0f), 0.0f); } +void ObjectMotionState::setLinearDamping(float damping) { + _linearDamping = btMax(btMin(fabsf(damping), 1.0f), 0.0f); +} + +void ObjectMotionState::setAngularDamping(float damping) { + _angularDamping = btMax(btMin(fabsf(damping), 1.0f), 0.0f); +} + void ObjectMotionState::setVolume(float volume) { _volume = btMax(btMin(fabsf(volume), MAX_VOLUME), MIN_VOLUME); } diff --git a/libraries/physics/src/ObjectMotionState.h b/libraries/physics/src/ObjectMotionState.h index ea9dcad0fc..24a00609cf 100644 --- a/libraries/physics/src/ObjectMotionState.h +++ b/libraries/physics/src/ObjectMotionState.h @@ -66,6 +66,8 @@ public: void setDensity(float density); void setFriction(float friction); void setRestitution(float restitution); + void setLinearDamping(float damping); + void setAngularDamping(float damping); void setVolume(float volume); float getMass() const { return _volume * _density; } @@ -93,6 +95,8 @@ protected: float _volume; float _friction; float _restitution; + float _linearDamping; + float _angularDamping; bool _wasInWorld; MotionType _motionType;