Avoid changing semantics of mjsPlugin.name across XML sections.
The `extension` section used to discard the plugin name and write the instance name in `plugin.name`, while all of the other sections wrote the instance name in `plugin.instance_name` and optionally the plugin name in `plugin.name` (via the function `OnePlugin`). Now all plugin names are in `plugin.plugin_name` and the instance is written in `plugin.name`, so that it is possible to lookup a plugin via its unique instance name. PiperOrigin-RevId: 683183804 Change-Id: I179ef5d221143b720db24d745b09e327bf1449ef
This commit is contained in:
committed by
Copybara-Service
parent
5bfc7da7de
commit
66faba9aa5
@@ -457,7 +457,7 @@ def generate_add() -> None:
|
||||
throw pybind11::value_error("plugin.name should be a string.");
|
||||
}
|
||||
try {
|
||||
plugin.instance_name = input->instance_name;
|
||||
plugin.plugin_name = input->plugin_name;
|
||||
} catch (const py::cast_error &e) {
|
||||
throw pybind11::value_error("plugin.instance_name should be a string.");
|
||||
}
|
||||
|
||||
@@ -205,14 +205,14 @@ class SpecsTest(absltest.TestCase):
|
||||
|
||||
# Add plugin.
|
||||
plugin = spec.add_plugin(
|
||||
name='name',
|
||||
instance_name='instance',
|
||||
name='instance_name',
|
||||
plugin_name='mujoco.plugin',
|
||||
plugin_slot=7,
|
||||
active=True,
|
||||
info='info',
|
||||
)
|
||||
self.assertEqual(plugin.name, 'name')
|
||||
self.assertEqual(plugin.instance_name, 'instance')
|
||||
self.assertEqual(plugin.name, 'instance_name')
|
||||
self.assertEqual(plugin.plugin_name, 'mujoco.plugin')
|
||||
self.assertEqual(plugin.plugin_slot, 7)
|
||||
self.assertEqual(plugin.active, True)
|
||||
self.assertEqual(plugin.info, 'info')
|
||||
@@ -227,8 +227,8 @@ class SpecsTest(absltest.TestCase):
|
||||
|
||||
# Add a body with a plugin.
|
||||
body_with_plugin = spec.worldbody.add_body(plugin=plugin)
|
||||
self.assertEqual(body_with_plugin.plugin.name, 'name')
|
||||
self.assertEqual(body_with_plugin.plugin.instance_name, 'instance')
|
||||
self.assertEqual(body_with_plugin.plugin.name, 'instance_name')
|
||||
self.assertEqual(body_with_plugin.plugin.plugin_name, 'mujoco.plugin')
|
||||
self.assertEqual(body_with_plugin.plugin.plugin_slot, 7)
|
||||
self.assertEqual(body_with_plugin.plugin.active, True)
|
||||
self.assertEqual(body_with_plugin.plugin.info, 'info')
|
||||
@@ -731,7 +731,7 @@ class SpecsTest(absltest.TestCase):
|
||||
self.assertIsNotNone(spec.worldbody)
|
||||
|
||||
body = spec.worldbody.add_body()
|
||||
body.plugin.name = 'mujoco.elasticity.cable'
|
||||
body.plugin.plugin_name = 'mujoco.elasticity.cable'
|
||||
body.plugin.id = spec.add_plugin()
|
||||
body.plugin.active = True
|
||||
self.assertEqual(body.plugin.id, 0)
|
||||
|
||||
Reference in New Issue
Block a user