Add convenient plugin assignment in Python bindings.
PiperOrigin-RevId: 861168536 Change-Id: I274fbf3460d475434f837ab58bf5e2b0988369fd
This commit is contained in:
committed by
Copybara-Service
parent
bdb553ff8a
commit
54ace777c1
@@ -93,16 +93,26 @@ def _value_binding_code(
|
||||
fulltype = fulltype.replace('mjOption', 'raw::MjOption')
|
||||
fulltype = fulltype.replace('mjVisual', 'raw::MjVisual')
|
||||
fulltype = fulltype.replace('mjStatistic', 'raw::MjStatistic')
|
||||
element = '.element' if fullvarname == 'plugin' else ''
|
||||
element = ''
|
||||
|
||||
if field.name == 'mjsPlugin':
|
||||
setter = f"""[]({rawclassname}& self, {fulltype} {varname}) {{
|
||||
if (self.{fullvarname}.name && {varname}.name) *self.{fullvarname}.name = *{varname}.name;
|
||||
if (self.{fullvarname}.plugin_name && {varname}.plugin_name) *self.{fullvarname}.plugin_name = *{varname}.plugin_name;
|
||||
self.{fullvarname}.active = {varname}.active;
|
||||
if (self.{fullvarname}.info && {varname}.info) *self.{fullvarname}.info = *{varname}.info;
|
||||
}}"""
|
||||
else:
|
||||
setter = f"""[]({rawclassname}& self, {fulltype} {varname}) {{
|
||||
self.{fullvarname}{element} = {varname}{element};
|
||||
}}"""
|
||||
|
||||
def_property_args = (
|
||||
f'"{varname}"',
|
||||
f"""[]({rawclassname}& self) -> {fulltype} {{
|
||||
return self.{fullvarname};
|
||||
}}""",
|
||||
f"""[]({rawclassname}& self, {fulltype} {varname}) {{
|
||||
self.{fullvarname}{element} = {varname}{element};
|
||||
}}""",
|
||||
setter,
|
||||
)
|
||||
|
||||
if field.name not in SCALAR_TYPES:
|
||||
|
||||
Reference in New Issue
Block a user