Version 2.1.2: Python bindings, OBJ assets support, bugfixes.

PiperOrigin-RevId: 434731612
Change-Id: I0cfda3e7a3d1c72036764986efc252ffa1b8c6b0
This commit is contained in:
Saran Tunyasuvunakool
2022-03-15 14:04:44 +00:00
parent 175d25cd9f
commit 3577e2cf8b
304 changed files with 23906 additions and 1013 deletions
@@ -0,0 +1,60 @@
// Copyright 2019 DeepMind Technologies Limited
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
using System;
using System.Collections;
using System.Collections.Generic;
using System.Xml;
using NUnit.Framework;
using UnityEngine;
namespace Mujoco {
[TestFixture]
public class MjFixedTendonTests {
private MjHingeJoint _joint1;
private MjHingeJoint _joint2;
private MjFixedTendon _tendon;
private XmlDocument _doc;
[SetUp]
public void SetUp() {
_joint1 = new GameObject("joint1").AddComponent<MjHingeJoint>();
_joint2 = new GameObject("joint2").AddComponent<MjHingeJoint>();
_tendon = new GameObject("tendon").AddComponent<MjFixedTendon>();
_doc = new XmlDocument();
}
[TearDown]
public void TearDown() {
UnityEngine.Object.DestroyImmediate(_tendon.gameObject);
UnityEngine.Object.DestroyImmediate(_joint1.gameObject);
UnityEngine.Object.DestroyImmediate(_joint2.gameObject);
UnityEngine.Object.DestroyImmediate(MjScene.Instance);
}
[Test]
public void ParseAllSettings() {
_doc.LoadXml("<fixed range='3 4'>" + "<joint joint='joint1' coef='1'/>" +
"<joint joint='joint2' coef='2'/>" + "</fixed>");
_tendon.ParseMjcf(_doc.GetElementsByTagName("fixed")[0] as XmlElement);
Assert.That(_tendon.RangeLower, Is.EqualTo(3));
Assert.That(_tendon.RangeUpper, Is.EqualTo(4));
Assert.That(_tendon.JointList.Count, Is.EqualTo(2));
Assert.That(_tendon.JointList[0].Joint, Is.EqualTo(_joint1));
Assert.That(_tendon.JointList[0].Coefficient, Is.EqualTo(1.0f));
Assert.That(_tendon.JointList[1].Joint, Is.EqualTo(_joint2));
Assert.That(_tendon.JointList[1].Coefficient, Is.EqualTo(2.0f));
}
}
}
@@ -0,0 +1,13 @@
fileFormatVersion: 2
guid: 839d86acac1494dba9a7617f96ba27df
timeCreated: 1550658312
licenseType: Pro
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,56 @@
// Copyright 2019 DeepMind Technologies Limited
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
using System;
using System.Collections;
using System.Collections.Generic;
using System.Xml;
using NUnit.Framework;
using UnityEngine;
namespace Mujoco {
[TestFixture]
public class MjSpatialTendonTests {
private MjSite _site1;
private MjSite _site2;
private MjSpatialTendon _tendon;
private XmlDocument _doc;
[SetUp]
public void SetUp() {
_site1 = new GameObject("site1").AddComponent<MjSite>();
_site2 = new GameObject("site2").AddComponent<MjSite>();
_tendon = new GameObject("tendon").AddComponent<MjSpatialTendon>();
_doc = new XmlDocument();
}
[TearDown]
public void TearDown() {
UnityEngine.Object.DestroyImmediate(_tendon.gameObject);
UnityEngine.Object.DestroyImmediate(_site1.gameObject);
UnityEngine.Object.DestroyImmediate(_site2.gameObject);
UnityEngine.Object.DestroyImmediate(MjScene.Instance);
}
[Test]
public void ParseAllSettings() {
_doc.LoadXml("<spatial>" + "<site site='site1'/>" +
"<site site='site2'/>" + "</spatial>");
_tendon.ParseMjcf(_doc.GetElementsByTagName("spatial")[0] as XmlElement);
Assert.That(_tendon.ViapointsList.Count, Is.EqualTo(2));
Assert.That(_tendon.ViapointsList[0].Site, Is.EqualTo(_site1));
Assert.That(_tendon.ViapointsList[1].Site, Is.EqualTo(_site2));
}
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: e8324e6aceb78a067801d2bc304e4a27
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: