Use OnePlugin for parsing Composite and Flexcomp plugins.

PiperOrigin-RevId: 608265172
Change-Id: I053441a9e534d81c4847ad60fe4a3f7dce87350c
This commit is contained in:
Alessio Quaglino
2024-02-19 02:01:13 -08:00
committed by Copybara-Service
parent 55e2c76c01
commit b77dfc683a
9 changed files with 76 additions and 58 deletions
+18 -13
View File
@@ -71,7 +71,12 @@ mjCFlexcomp::mjCFlexcomp(void) {
mjuu_setvec(quat, 1, 0, 0, 0);
rigid = false;
centered = false;
plugin_instance = nullptr;
mjm_defaultPlugin(plugin);
plugin_name = "";
plugin_instance_name = "";
plugin.name = (mjString)&plugin_name;
plugin.instance_name = (mjString)&plugin_instance_name;
}
@@ -404,12 +409,12 @@ bool mjCFlexcomp::Make(mjCModel* model, mjmBody* body, char* error, int error_sz
mjm_appendString(pf->vertbody, mjm_getString(body->name));
// add plugin
if (plugin_instance) {
mjmPlugin* plugin = &body->plugin;
plugin->active = true;
plugin->instance = (mjElement)plugin_instance;
mjm_setString(plugin->name, plugin_name.c_str());
mjm_setString(plugin->instance_name, plugin_instance_name.c_str());
if (plugin.active) {
mjmPlugin* pplugin = &body->plugin;
pplugin->active = true;
pplugin->instance = (mjElement)plugin.instance;
mjm_setString(pplugin->name, mjm_getString(plugin.name));
mjm_setString(pplugin->instance_name, plugin_instance_name.c_str());
}
}
@@ -468,12 +473,12 @@ bool mjCFlexcomp::Make(mjCModel* model, mjmBody* body, char* error, int error_sz
}
// add plugin
if (plugin_instance) {
mjmPlugin* plugin = &pb->plugin;
plugin->active = true;
plugin->instance = (mjElement)plugin_instance;
mjm_setString(plugin->name, plugin_name.c_str());
mjm_setString(plugin->instance_name, plugin_instance_name.c_str());
if (plugin.active) {
mjmPlugin* pplugin = &pb->plugin;
pplugin->active = true;
pplugin->instance = (mjElement)plugin.instance;
mjm_setString(pplugin->name, mjm_getString(plugin.name));
mjm_setString(pplugin->instance_name, plugin_instance_name.c_str());
}
}
}