Handle the implicit auto value for limits now written by the compiler to the xml

This commit is contained in:
Balint-H
2024-03-14 12:38:56 +00:00
parent 069708a599
commit c2bef232b6
3 changed files with 27 additions and 15 deletions
@@ -165,14 +165,7 @@ namespace Mujoco {
ImpFriction.FromMjcf(mjcf, "solimpfriction");
FrictionLoss = mjcf.GetFloatAttribute("frictionloss", 0.0f);
bool defaultLimited = false;
if ((mjcf.OwnerDocument.GetElementsByTagName("compiler")[0]?["compiler"])
?.GetBoolAttribute("autolimits", true) ??
true) {
defaultLimited = mjcf.HasAttribute("range");
}
Limited = mjcf.GetBoolAttribute("limited", defaultLimited);
Limited = mjcf.GetLimitedAttribute("limited", mjcf.HasAttribute("range"));
Margin = mjcf.GetFloatAttribute("margin", defaultValue: 0.0f);
}
}
+4 -7
View File
@@ -82,13 +82,10 @@ public class MjActuator : MjComponent {
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) ??
false;
CtrlLimited = mjcf.GetBoolAttribute("ctrllimited",
defaultValue: autolimits ? CtrlRange != Vector2.zero : false);
ForceLimited = mjcf.GetBoolAttribute("forcelimited",
defaultValue: autolimits ? ForceRange != Vector2.zero : false);
CtrlLimited = mjcf.GetLimitedAttribute("ctrllimited",
rangeDefined: mjcf.HasAttribute("ctrlrange"));
ForceLimited = mjcf.GetLimitedAttribute("forcelimited",
rangeDefined: mjcf.HasAttribute("forcerange"));
}
}