Add anchor support for connect constraint components.
Fixes #647 PiperOrigin-RevId: 495587232 Change-Id: I528a69dabbc1ac9a12f9ab7c16716e3d69c635e2
This commit is contained in:
committed by
Copybara-Service
parent
bc02c2455e
commit
e95b0c0eaf
@@ -22,14 +22,17 @@ namespace Mujoco {
|
|||||||
public class MjConnect : MjBaseConstraint {
|
public class MjConnect : MjBaseConstraint {
|
||||||
public MjBaseBody Body1;
|
public MjBaseBody Body1;
|
||||||
public MjBaseBody Body2;
|
public MjBaseBody Body2;
|
||||||
|
public Transform Anchor;
|
||||||
protected override string _constraintName => "connect";
|
protected override string _constraintName => "connect";
|
||||||
|
|
||||||
protected override void FromMjcf(XmlElement mjcf) {
|
protected override void FromMjcf(XmlElement mjcf) {
|
||||||
Body1 = mjcf.GetObjectReferenceAttribute<MjBaseBody>("body1");
|
Body1 = mjcf.GetObjectReferenceAttribute<MjBaseBody>("body1");
|
||||||
Body2 = mjcf.GetObjectReferenceAttribute<MjBaseBody>("body2");
|
Body2 = mjcf.GetObjectReferenceAttribute<MjBaseBody>("body2");
|
||||||
if (mjcf.GetStringAttribute("anchor") != null) {
|
var anchorPos = MjEngineTool.UnityVector3(
|
||||||
Debug.Log($"anchor in connect {name} ignored. Set Transforms in the editor.");
|
mjcf.GetVector3Attribute("anchor", defaultValue: Vector3.zero));
|
||||||
}
|
Anchor = new GameObject("connect_anchor").transform;
|
||||||
|
Anchor.parent = Body1.transform;
|
||||||
|
Anchor.localPosition = anchorPos;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Generate implementation specific XML element.
|
// Generate implementation specific XML element.
|
||||||
@@ -39,6 +42,8 @@ namespace Mujoco {
|
|||||||
}
|
}
|
||||||
mjcf.SetAttribute("body1", Body1.MujocoName);
|
mjcf.SetAttribute("body1", Body1.MujocoName);
|
||||||
mjcf.SetAttribute("body2", Body2.MujocoName);
|
mjcf.SetAttribute("body2", Body2.MujocoName);
|
||||||
|
mjcf.SetAttribute("anchor",
|
||||||
|
MjEngineTool.Vector3ToMjcf(MjEngineTool.MjVector3(Anchor.localPosition)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnValidate() {
|
public void OnValidate() {
|
||||||
|
|||||||
Reference in New Issue
Block a user