diff --git a/interface/src/avatar/AvatarActionHold.cpp b/interface/src/avatar/AvatarActionHold.cpp index 4dda14e194..12c792e631 100644 --- a/interface/src/avatar/AvatarActionHold.cpp +++ b/interface/src/avatar/AvatarActionHold.cpp @@ -90,7 +90,7 @@ void AvatarActionHold::prepareForPhysicsSimulation() { // _palmRotationFromRigidBody = avatarRotationInverse * palmRotation; }); - activateBody(); + activateBody(true); } std::shared_ptr AvatarActionHold::getTarget(glm::quat& rotation, glm::vec3& position) { diff --git a/libraries/physics/src/ObjectAction.cpp b/libraries/physics/src/ObjectAction.cpp index e8e1188dc9..95af7b32fe 100644 --- a/libraries/physics/src/ObjectAction.cpp +++ b/libraries/physics/src/ObjectAction.cpp @@ -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; } } diff --git a/libraries/physics/src/ObjectAction.h b/libraries/physics/src/ObjectAction.h index 4ca13f2fbf..efab75b802 100644 --- a/libraries/physics/src/ObjectAction.h +++ b/libraries/physics/src/ObjectAction.h @@ -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;