add damping to ObjectMotionState

This commit is contained in:
Andrew Meadows 2015-01-05 09:17:46 -08:00
parent 0d3e78fdb8
commit 30200ef7eb
2 changed files with 14 additions and 0 deletions

View file

@ -48,6 +48,8 @@ ObjectMotionState::ObjectMotionState() :
_volume(DEFAULT_VOLUME), _volume(DEFAULT_VOLUME),
_friction(DEFAULT_FRICTION), _friction(DEFAULT_FRICTION),
_restitution(DEFAULT_RESTITUTION), _restitution(DEFAULT_RESTITUTION),
_linearDamping(0.0f),
_angularDamping(0.0f),
_wasInWorld(false), _wasInWorld(false),
_motionType(MOTION_TYPE_STATIC), _motionType(MOTION_TYPE_STATIC),
_body(NULL), _body(NULL),
@ -79,6 +81,14 @@ void ObjectMotionState::setRestitution(float restitution) {
_restitution = btMax(btMin(fabsf(restitution), 1.0f), 0.0f); _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) { void ObjectMotionState::setVolume(float volume) {
_volume = btMax(btMin(fabsf(volume), MAX_VOLUME), MIN_VOLUME); _volume = btMax(btMin(fabsf(volume), MAX_VOLUME), MIN_VOLUME);
} }

View file

@ -66,6 +66,8 @@ public:
void setDensity(float density); void setDensity(float density);
void setFriction(float friction); void setFriction(float friction);
void setRestitution(float restitution); void setRestitution(float restitution);
void setLinearDamping(float damping);
void setAngularDamping(float damping);
void setVolume(float volume); void setVolume(float volume);
float getMass() const { return _volume * _density; } float getMass() const { return _volume * _density; }
@ -93,6 +95,8 @@ protected:
float _volume; float _volume;
float _friction; float _friction;
float _restitution; float _restitution;
float _linearDamping;
float _angularDamping;
bool _wasInWorld; bool _wasInWorld;
MotionType _motionType; MotionType _motionType;