diff --git a/interface/src/avatar/AvatarActionHold.cpp b/interface/src/avatar/AvatarActionHold.cpp index e468911daf..98ff687eb3 100644 --- a/interface/src/avatar/AvatarActionHold.cpp +++ b/interface/src/avatar/AvatarActionHold.cpp @@ -323,7 +323,7 @@ bool AvatarActionHold::updateArguments(QVariantMap arguments) { bool ignoreIK; bool needUpdate = false; - bool somethingChanged = ObjectAction::updateArguments(arguments); + bool somethingChanged = ObjectDynamic::updateArguments(arguments); withReadLock([&]{ bool ok = true; relativePosition = EntityDynamicInterface::extractVec3Argument("hold", arguments, "relativePosition", ok, false); @@ -410,7 +410,7 @@ bool AvatarActionHold::updateArguments(QVariantMap arguments) { } QVariantMap AvatarActionHold::getArguments() { - QVariantMap arguments = ObjectAction::getArguments(); + QVariantMap arguments = ObjectDynamic::getArguments(); withReadLock([&]{ arguments["holderID"] = _holderID; arguments["relativePosition"] = glmToQMap(_relativePosition); diff --git a/libraries/physics/src/ObjectActionOffset.cpp b/libraries/physics/src/ObjectActionOffset.cpp index c011a2db4d..c1fb397e19 100644 --- a/libraries/physics/src/ObjectActionOffset.cpp +++ b/libraries/physics/src/ObjectActionOffset.cpp @@ -88,7 +88,7 @@ bool ObjectActionOffset::updateArguments(QVariantMap arguments) { float linearDistance; bool needUpdate = false; - bool somethingChanged = ObjectAction::updateArguments(arguments); + bool somethingChanged = ObjectDynamic::updateArguments(arguments); withReadLock([&]{ bool ok = true; @@ -143,7 +143,7 @@ bool ObjectActionOffset::updateArguments(QVariantMap arguments) { } QVariantMap ObjectActionOffset::getArguments() { - QVariantMap arguments = ObjectAction::getArguments(); + QVariantMap arguments = ObjectDynamic::getArguments(); withReadLock([&] { arguments["pointToOffsetFrom"] = glmToQMap(_pointToOffsetFrom); arguments["linearTimeScale"] = _linearTimeScale; diff --git a/libraries/physics/src/ObjectActionSpring.cpp b/libraries/physics/src/ObjectActionSpring.cpp index ac92384101..2faa681c1d 100644 --- a/libraries/physics/src/ObjectActionSpring.cpp +++ b/libraries/physics/src/ObjectActionSpring.cpp @@ -190,7 +190,7 @@ bool ObjectActionSpring::updateArguments(QVariantMap arguments) { float angularTimeScale; bool needUpdate = false; - bool somethingChanged = ObjectAction::updateArguments(arguments); + bool somethingChanged = ObjectDynamic::updateArguments(arguments); withReadLock([&]{ // targets are required, spring-constants are optional bool ok = true; @@ -248,7 +248,7 @@ bool ObjectActionSpring::updateArguments(QVariantMap arguments) { } QVariantMap ObjectActionSpring::getArguments() { - QVariantMap arguments = ObjectAction::getArguments(); + QVariantMap arguments = ObjectDynamic::getArguments(); withReadLock([&] { arguments["linearTimeScale"] = _linearTimeScale; arguments["targetPosition"] = glmToQMap(_desiredPositionalTarget); diff --git a/libraries/physics/src/ObjectActionTravelOriented.cpp b/libraries/physics/src/ObjectActionTravelOriented.cpp index f2b841c9da..8ab24511d7 100644 --- a/libraries/physics/src/ObjectActionTravelOriented.cpp +++ b/libraries/physics/src/ObjectActionTravelOriented.cpp @@ -106,7 +106,7 @@ bool ObjectActionTravelOriented::updateArguments(QVariantMap arguments) { float angularTimeScale; bool needUpdate = false; - bool somethingChanged = ObjectAction::updateArguments(arguments); + bool somethingChanged = ObjectDynamic::updateArguments(arguments); withReadLock([&]{ bool ok = true; forward = EntityDynamicInterface::extractVec3Argument("travel oriented action", arguments, "forward", ok, true); @@ -147,7 +147,7 @@ bool ObjectActionTravelOriented::updateArguments(QVariantMap arguments) { } QVariantMap ObjectActionTravelOriented::getArguments() { - QVariantMap arguments = ObjectAction::getArguments(); + QVariantMap arguments = ObjectDynamic::getArguments(); withReadLock([&] { arguments["forward"] = glmToQMap(_forward); arguments["angularTimeScale"] = _angularTimeScale; diff --git a/libraries/physics/src/ObjectConstraintHinge.cpp b/libraries/physics/src/ObjectConstraintHinge.cpp index d151ffeb6f..7ecce9bc49 100644 --- a/libraries/physics/src/ObjectConstraintHinge.cpp +++ b/libraries/physics/src/ObjectConstraintHinge.cpp @@ -42,6 +42,7 @@ btTypedConstraint* ObjectConstraintHinge::getConstraint() { btRigidBody* rigidBodyA = getRigidBody(); if (!rigidBodyA) { + qCDebug(physics) << "ObjectConstraintHinge::getConstraint -- no rigidBodyA"; return nullptr; } @@ -49,8 +50,14 @@ btTypedConstraint* ObjectConstraintHinge::getConstraint() { btTransform rigidBodyAFrame(glmToBullet(_rbARotation), glmToBullet(_rbATranslation)); - _constraint = new btHingeConstraint(*rigidBodyA, rigidBodyAFrame, useReferenceFrameA); - return _constraint; + btHingeConstraint* constraint = new btHingeConstraint(*rigidBodyA, rigidBodyAFrame, useReferenceFrameA); + _constraint = constraint; + // constraint->setAngularOnly(true); + + btVector3 axisInA = glmToBullet(glm::vec3(0.0f, 1.0f, 0.0f)); + constraint->setAxis(axisInA); + + return constraint; } @@ -61,15 +68,14 @@ bool ObjectConstraintHinge::updateArguments(QVariantMap arguments) { bool needUpdate = false; bool somethingChanged = ObjectConstraint::updateArguments(arguments); withReadLock([&]{ - // targets are required, hinge-constants are optional bool ok = true; - rbATranslation = EntityDynamicInterface::extractVec3Argument("hinge constraint", arguments, "targetPosition", ok, false); + rbATranslation = EntityDynamicInterface::extractVec3Argument("hinge constraint", arguments, "aTranslation", ok, false); if (!ok) { rbATranslation = _rbATranslation; } ok = true; - rbARotation = EntityDynamicInterface::extractQuatArgument("hinge constraint", arguments, "targetRotation", ok, false); + rbARotation = EntityDynamicInterface::extractQuatArgument("hinge constraint", arguments, "aRotation", ok, false); if (!ok) { rbARotation = _rbARotation; } @@ -94,7 +100,7 @@ bool ObjectConstraintHinge::updateArguments(QVariantMap arguments) { ownerEntity->setDynamicDataNeedsTransmit(true); } }); - activateBody(); + // activateBody(); } return true; @@ -103,8 +109,8 @@ bool ObjectConstraintHinge::updateArguments(QVariantMap arguments) { QVariantMap ObjectConstraintHinge::getArguments() { QVariantMap arguments = ObjectConstraint::getArguments(); withReadLock([&] { - arguments["targetPosition"] = glmToQMap(_rbATranslation); - arguments["targetRotation"] = glmToQMap(_rbARotation); + arguments["aTranslation"] = glmToQMap(_rbATranslation); + arguments["aRotation"] = glmToQMap(_rbARotation); }); return arguments; }