Add spec find_sensor, find_actuator functions.
PiperOrigin-RevId: 703054696 Change-Id: Ie384f1a31de3ecd9b22b7f4be43234d452e7bb88
This commit is contained in:
committed by
Copybara-Service
parent
f882f4b065
commit
a729acb4fa
@@ -350,6 +350,20 @@ PYBIND11_MODULE(_specs, m) {
|
||||
return mjs_asSite(mjs_findElement(self.ptr, mjOBJ_SITE, name.c_str()));
|
||||
},
|
||||
py::return_value_policy::reference_internal);
|
||||
mjSpec.def(
|
||||
"find_actuator",
|
||||
[](MjSpec& self, std::string& name) -> raw::MjsActuator* {
|
||||
return mjs_asActuator(
|
||||
mjs_findElement(self.ptr, mjOBJ_ACTUATOR, name.c_str()));
|
||||
},
|
||||
py::return_value_policy::reference_internal);
|
||||
mjSpec.def(
|
||||
"find_sensor",
|
||||
[](MjSpec& self, std::string& name) -> raw::MjsSensor* {
|
||||
return mjs_asSensor(
|
||||
mjs_findElement(self.ptr, mjOBJ_SENSOR, name.c_str()));
|
||||
},
|
||||
py::return_value_policy::reference_internal);
|
||||
mjSpec.def(
|
||||
"find_default",
|
||||
[](MjSpec& self, std::string& classname) -> const raw::MjsDefault* {
|
||||
|
||||
@@ -584,13 +584,29 @@ class SpecsTest(absltest.TestCase):
|
||||
sensor1 = spec.add_sensor()
|
||||
sensor2 = spec.add_sensor()
|
||||
sensor3 = spec.add_sensor()
|
||||
actuator1 = spec.add_actuator()
|
||||
actuator2 = spec.add_actuator()
|
||||
actuator3 = spec.add_actuator()
|
||||
sensor1.name = 'sensor1'
|
||||
sensor2.name = 'sensor2'
|
||||
sensor3.name = 'sensor3'
|
||||
actuator1.name = 'actuator1'
|
||||
actuator2.name = 'actuator2'
|
||||
actuator3.name = 'actuator3'
|
||||
self.assertLen(spec.sensors, 3)
|
||||
self.assertLen(spec.actuators, 3)
|
||||
self.assertEqual(spec.sensors[0].name, 'sensor1')
|
||||
self.assertEqual(spec.sensors[1].name, 'sensor2')
|
||||
self.assertEqual(spec.sensors[2].name, 'sensor3')
|
||||
self.assertEqual(spec.actuators[0].name, 'actuator1')
|
||||
self.assertEqual(spec.actuators[1].name, 'actuator2')
|
||||
self.assertEqual(spec.actuators[2].name, 'actuator3')
|
||||
self.assertEqual(spec.find_sensor('sensor1'), sensor1)
|
||||
self.assertEqual(spec.find_sensor('sensor2'), sensor2)
|
||||
self.assertEqual(spec.find_sensor('sensor3'), sensor3)
|
||||
self.assertEqual(spec.find_actuator('actuator1'), actuator1)
|
||||
self.assertEqual(spec.find_actuator('actuator2'), actuator2)
|
||||
self.assertEqual(spec.find_actuator('actuator3'), actuator3)
|
||||
|
||||
def test_body_list(self):
|
||||
main_xml = """
|
||||
|
||||
Reference in New Issue
Block a user