try harder to ensure that a held object is active in bullet

This commit is contained in:
Seth Alves 2016-01-06 14:12:58 -08:00
parent a3ceb3a298
commit b873d92469
3 changed files with 9 additions and 4 deletions

View file

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

View file

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

View file

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