Merge pull request #6783 from sethalves/fix-h0ld-action

try harder to ensure that a held object is active in bullet
This commit is contained in:
Andrew Meadows 2016-01-07 10:53:55 -08:00
commit 8ae1e750ab
3 changed files with 7 additions and 4 deletions

View file

@ -90,7 +90,7 @@ void AvatarActionHold::prepareForPhysicsSimulation() {
// _palmRotationFromRigidBody = avatarRotationInverse * palmRotation; // _palmRotationFromRigidBody = avatarRotationInverse * palmRotation;
}); });
activateBody(); activateBody(true);
} }
std::shared_ptr<Avatar> AvatarActionHold::getTarget(glm::quat& rotation, glm::vec3& position) { std::shared_ptr<Avatar> AvatarActionHold::getTarget(glm::quat& rotation, glm::vec3& position) {

View file

@ -237,10 +237,13 @@ void ObjectAction::setAngularVelocity(glm::vec3 angularVelocity) {
rigidBody->activate(); rigidBody->activate();
} }
void ObjectAction::activateBody() { void ObjectAction::activateBody(bool forceActivation) {
auto rigidBody = getRigidBody(); auto rigidBody = getRigidBody();
if (rigidBody) { if (rigidBody) {
rigidBody->activate(); rigidBody->activate(forceActivation);
assert(rigidBody->isActive());
} else {
qDebug() << "ObjectAction::activateBody -- no rigid body" << (void*)rigidBody;
} }
} }

View file

@ -62,7 +62,7 @@ protected:
virtual void setLinearVelocity(glm::vec3 linearVelocity) override; virtual void setLinearVelocity(glm::vec3 linearVelocity) override;
virtual glm::vec3 getAngularVelocity() override; virtual glm::vec3 getAngularVelocity() override;
virtual void setAngularVelocity(glm::vec3 angularVelocity) override; virtual void setAngularVelocity(glm::vec3 angularVelocity) override;
virtual void activateBody(); virtual void activateBody(bool forceActivation = false);
virtual void forceBodyNonStatic(); virtual void forceBodyNonStatic();
EntityItemWeakPointer _ownerEntity; EntityItemWeakPointer _ownerEntity;