Parse UsdPhysicsJoint enabled attr to set equality->active
This commit is contained in:
@@ -1829,6 +1829,12 @@ void ParseUsdPhysicsCollider(mjSpec* spec,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ParseJointEnabled(mjsEquality* eq, const pxr::UsdPhysicsJoint& joint) {
|
||||||
|
bool jointEnabled = true;
|
||||||
|
joint.GetJointEnabledAttr().Get(&jointEnabled);
|
||||||
|
eq->active = jointEnabled ? 1 : 0;
|
||||||
|
}
|
||||||
|
|
||||||
void ParseMjcEqualityAPISolverParams(
|
void ParseMjcEqualityAPISolverParams(
|
||||||
mjsEquality* eq, const pxr::MjcPhysicsEqualityAPI& equality_api,
|
mjsEquality* eq, const pxr::MjcPhysicsEqualityAPI& equality_api,
|
||||||
const pxr::UsdPrim& prim) {
|
const pxr::UsdPrim& prim) {
|
||||||
@@ -1897,6 +1903,9 @@ void ParseConstraint(mjSpec* spec, const pxr::UsdPrim& prim, mjsBody* body,
|
|||||||
eq_joint_api.GetCoef3Attr().Get(&eq->data[3]);
|
eq_joint_api.GetCoef3Attr().Get(&eq->data[3]);
|
||||||
eq_joint_api.GetCoef4Attr().Get(&eq->data[4]);
|
eq_joint_api.GetCoef4Attr().Get(&eq->data[4]);
|
||||||
|
|
||||||
|
pxr::UsdPhysicsJoint joint(prim);
|
||||||
|
ParseJointEnabled(eq, joint);
|
||||||
|
|
||||||
ParseMjcEqualityAPISolverParams(eq, equality_api, prim);
|
ParseMjcEqualityAPISolverParams(eq, equality_api, prim);
|
||||||
} else if (prim.IsA<pxr::UsdPhysicsFixedJoint>() ||
|
} else if (prim.IsA<pxr::UsdPhysicsFixedJoint>() ||
|
||||||
prim.IsA<pxr::UsdPhysicsSphericalJoint>()) {
|
prim.IsA<pxr::UsdPhysicsSphericalJoint>()) {
|
||||||
@@ -2060,6 +2069,8 @@ void ParseConstraint(mjSpec* spec, const pxr::UsdPrim& prim, mjsBody* body,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ParseJointEnabled(eq, joint);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user