Skip to content

Commit

Permalink
Merge pull request #1330 from Balint-H:fix/unity-joint-limits
Browse files Browse the repository at this point in the history
PiperOrigin-RevId: 598603093
Change-Id: I441631e33e812988694f8eed48c719c6bab86148
  • Loading branch information
copybara-github committed Jan 15, 2024
2 parents 1e2e0b3 + 66a0cd3 commit c77f984
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 3 deletions.
10 changes: 9 additions & 1 deletion unity/Runtime/Components/Joints/MjJointSettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,15 @@ public void FromMjcf(XmlElement mjcf) {
RefFriction.FromMjcf(mjcf, "solreffriction");
ImpFriction.FromMjcf(mjcf, "solimpfriction");
FrictionLoss = mjcf.GetFloatAttribute("frictionloss", 0.0f);
Limited = mjcf.GetBoolAttribute("limited", false);

bool defaultLimited = false;
if ((mjcf.OwnerDocument.GetElementsByTagName("compiler") [0]["compiler"])
?.GetBoolAttribute("autolimits", true) ??
true) {
defaultLimited = mjcf.HasAttribute("range");
}

Limited = mjcf.GetBoolAttribute("limited", defaultLimited);
Margin = mjcf.GetFloatAttribute("margin", defaultValue: 0.0f);
}
}
Expand Down
10 changes: 8 additions & 2 deletions unity/Runtime/Components/MjActuator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -77,12 +77,18 @@ public void ToMjcf(XmlElement mjcf) {
}

public void FromMjcf(XmlElement mjcf) {
CtrlLimited = mjcf.GetBoolAttribute("ctrllimited", defaultValue: false);
ForceLimited = mjcf.GetBoolAttribute("forcelimited", defaultValue: false);
CtrlRange = mjcf.GetVector2Attribute("ctrlrange", defaultValue: Vector2.zero);
ForceRange = mjcf.GetVector2Attribute("forcerange", defaultValue: Vector2.zero);
LengthRange = mjcf.GetVector2Attribute("lengthrange", defaultValue: Vector2.zero);
Gear = mjcf.GetFloatArrayAttribute("gear", defaultValue: new float[] { 1.0f }).ToList();

bool autolimits = (mjcf.OwnerDocument.GetElementsByTagName("compiler")[0]["compiler"])
?.GetBoolAttribute("autolimits", true) ??
true;
CtrlLimited = mjcf.GetBoolAttribute("ctrllimited",
defaultValue: autolimits ? CtrlRange != Vector2.zero : false);
ForceLimited = mjcf.GetBoolAttribute("forcelimited",
defaultValue: autolimits ? ForceRange != Vector2.zero : false);
}
}

Expand Down

0 comments on commit c77f984

Please sign in to comment.