Rename mjpPlugin.capabilities -> mjpPlugin.capabilityflags
PiperOrigin-RevId: 495080532 Change-Id: I81743472b816a331890a7cb05bfb7a89ebf07ff9
This commit is contained in:
committed by
Copybara-Service
parent
5c021d042b
commit
30b4309af9
@@ -1155,13 +1155,13 @@ typedef enum mjtPluginCapabilityBit_ {
|
|||||||
mjPLUGIN_CONTROL = 1<<3,
|
mjPLUGIN_CONTROL = 1<<3,
|
||||||
} mjtPluginCapabilityBit;
|
} mjtPluginCapabilityBit;
|
||||||
struct mjpPlugin_ {
|
struct mjpPlugin_ {
|
||||||
const char* name; // globally unique name identifying the plugin
|
const char* name; // globally unique name identifying the plugin
|
||||||
|
|
||||||
int nattribute; // number of configuration attributes
|
int nattribute; // number of configuration attributes
|
||||||
const char* const* attributes; // name of configuration attributes
|
const char* const* attributes; // name of configuration attributes
|
||||||
|
|
||||||
int capabilities; // bitfield of mjtPluginCapabilityBit specifying optional plugin capabilities
|
int capabilityflags; // bitfield of mjtPluginCapabilityBit specifying plugin capabilities
|
||||||
int needstage; // an mjtStage enum value specifying the sensor computation stage
|
int needstage; // an mjtStage enum value specifying the sensor computation stage
|
||||||
|
|
||||||
// number of mjtNums needed to store the state of a plugin instance (required)
|
// number of mjtNums needed to store the state of a plugin instance (required)
|
||||||
int (*nstate)(const mjModel* m, int instance);
|
int (*nstate)(const mjModel* m, int instance);
|
||||||
|
|||||||
@@ -28,13 +28,13 @@ typedef enum mjtPluginCapabilityBit_ {
|
|||||||
} mjtPluginCapabilityBit;
|
} mjtPluginCapabilityBit;
|
||||||
|
|
||||||
struct mjpPlugin_ {
|
struct mjpPlugin_ {
|
||||||
const char* name; // globally unique name identifying the plugin
|
const char* name; // globally unique name identifying the plugin
|
||||||
|
|
||||||
int nattribute; // number of configuration attributes
|
int nattribute; // number of configuration attributes
|
||||||
const char* const* attributes; // name of configuration attributes
|
const char* const* attributes; // name of configuration attributes
|
||||||
|
|
||||||
int capabilities; // bitfield of mjtPluginCapabilityBit specifying optional plugin capabilities
|
int capabilityflags; // bitfield of mjtPluginCapabilityBit specifying plugin capabilities
|
||||||
int needstage; // an mjtStage enum value specifying the sensor computation stage
|
int needstage; // an mjtStage enum value specifying the sensor computation stage
|
||||||
|
|
||||||
// number of mjtNums needed to store the state of a plugin instance (required)
|
// number of mjtNums needed to store the state of a plugin instance (required)
|
||||||
int (*nstate)(const mjModel* m, int instance);
|
int (*nstate)(const mjModel* m, int instance);
|
||||||
|
|||||||
@@ -277,7 +277,7 @@ void Cable::RegisterPlugin() {
|
|||||||
mjp_defaultPlugin(&plugin);
|
mjp_defaultPlugin(&plugin);
|
||||||
|
|
||||||
plugin.name = "mujoco.elasticity.cable";
|
plugin.name = "mujoco.elasticity.cable";
|
||||||
plugin.capabilities |= mjPLUGIN_PASSIVE;
|
plugin.capabilityflags |= mjPLUGIN_PASSIVE;
|
||||||
|
|
||||||
const char* attributes[] = {"twist", "bend", "flat", "vmax"};
|
const char* attributes[] = {"twist", "bend", "flat", "vmax"};
|
||||||
plugin.nattribute = sizeof(attributes) / sizeof(attributes[0]);
|
plugin.nattribute = sizeof(attributes) / sizeof(attributes[0]);
|
||||||
|
|||||||
@@ -355,7 +355,7 @@ void Solid::RegisterPlugin() {
|
|||||||
mjp_defaultPlugin(&plugin);
|
mjp_defaultPlugin(&plugin);
|
||||||
|
|
||||||
plugin.name = "mujoco.elasticity.solid";
|
plugin.name = "mujoco.elasticity.solid";
|
||||||
plugin.capabilities |= mjPLUGIN_PASSIVE;
|
plugin.capabilityflags |= mjPLUGIN_PASSIVE;
|
||||||
|
|
||||||
const char* attributes[] = {"nx", "ny", "nz", "young", "poisson", "damping"};
|
const char* attributes[] = {"nx", "ny", "nz", "young", "poisson", "damping"};
|
||||||
plugin.nattribute = sizeof(attributes) / sizeof(attributes[0]);
|
plugin.nattribute = sizeof(attributes) / sizeof(attributes[0]);
|
||||||
|
|||||||
@@ -1454,7 +1454,7 @@ void mj_passive(const mjModel* m, mjData* d) {
|
|||||||
if (!plugin) {
|
if (!plugin) {
|
||||||
mju_error_i("invalid plugin slot: %d", slot);
|
mju_error_i("invalid plugin slot: %d", slot);
|
||||||
}
|
}
|
||||||
if (plugin->capabilities & mjPLUGIN_PASSIVE) {
|
if (plugin->capabilityflags & mjPLUGIN_PASSIVE) {
|
||||||
if (!plugin->compute) {
|
if (!plugin->compute) {
|
||||||
mju_error_i("`compute` is a null function pointer for plugin at slot %d", slot);
|
mju_error_i("`compute` is a null function pointer for plugin at slot %d", slot);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -279,7 +279,7 @@ void mj_fwdActuation(const mjModel* m, mjData* d) {
|
|||||||
if (!plugin) {
|
if (!plugin) {
|
||||||
mju_error_i("invalid plugin slot: %d", slot);
|
mju_error_i("invalid plugin slot: %d", slot);
|
||||||
}
|
}
|
||||||
if (plugin->capabilities & mjPLUGIN_ACTUATOR) {
|
if (plugin->capabilityflags & mjPLUGIN_ACTUATOR) {
|
||||||
if (!plugin->compute) {
|
if (!plugin->compute) {
|
||||||
mju_error_i("`compute` is a null function pointer for plugin at slot %d", slot);
|
mju_error_i("`compute` is a null function pointer for plugin at slot %d", slot);
|
||||||
}
|
}
|
||||||
@@ -790,7 +790,7 @@ void mj_forwardSkip(const mjModel* m, mjData* d, int skipstage, int skipsensor)
|
|||||||
if (!plugin) {
|
if (!plugin) {
|
||||||
mju_error_i("invalid plugin slot: %d", slot);
|
mju_error_i("invalid plugin slot: %d", slot);
|
||||||
}
|
}
|
||||||
if (plugin->capabilities & mjPLUGIN_CONTROL) {
|
if (plugin->capabilityflags & mjPLUGIN_CONTROL) {
|
||||||
if (!plugin->compute) {
|
if (!plugin->compute) {
|
||||||
mju_error_i("`compute` is a null function pointer for plugin at slot %d", slot);
|
mju_error_i("`compute` is a null function pointer for plugin at slot %d", slot);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -357,7 +357,7 @@ void mj_sensorPos(const mjModel* m, mjData* d) {
|
|||||||
if (!plugin) {
|
if (!plugin) {
|
||||||
mju_error_i("invalid plugin slot: %d", slot);
|
mju_error_i("invalid plugin slot: %d", slot);
|
||||||
}
|
}
|
||||||
if ((plugin->capabilities & mjPLUGIN_SENSOR) &&
|
if ((plugin->capabilityflags & mjPLUGIN_SENSOR) &&
|
||||||
(plugin->needstage==mjSTAGE_POS || plugin->needstage==mjSTAGE_NONE)) {
|
(plugin->needstage==mjSTAGE_POS || plugin->needstage==mjSTAGE_NONE)) {
|
||||||
if (!plugin->compute) {
|
if (!plugin->compute) {
|
||||||
mju_error_i("`compute` is a null function pointer for plugin at slot %d", slot);
|
mju_error_i("`compute` is a null function pointer for plugin at slot %d", slot);
|
||||||
@@ -538,7 +538,7 @@ void mj_sensorVel(const mjModel* m, mjData* d) {
|
|||||||
if (!plugin) {
|
if (!plugin) {
|
||||||
mju_error_i("invalid plugin slot: %d", slot);
|
mju_error_i("invalid plugin slot: %d", slot);
|
||||||
}
|
}
|
||||||
if ((plugin->capabilities & mjPLUGIN_SENSOR) && plugin->needstage==mjSTAGE_VEL) {
|
if ((plugin->capabilityflags & mjPLUGIN_SENSOR) && plugin->needstage==mjSTAGE_VEL) {
|
||||||
if (!plugin->compute) {
|
if (!plugin->compute) {
|
||||||
mju_error_i("`compute` is null for plugin at slot %d", slot);
|
mju_error_i("`compute` is null for plugin at slot %d", slot);
|
||||||
}
|
}
|
||||||
@@ -747,7 +747,7 @@ void mj_sensorAcc(const mjModel* m, mjData* d) {
|
|||||||
if (!plugin) {
|
if (!plugin) {
|
||||||
mju_error_i("invalid plugin slot: %d", slot);
|
mju_error_i("invalid plugin slot: %d", slot);
|
||||||
}
|
}
|
||||||
if ((plugin->capabilities & mjPLUGIN_SENSOR) && plugin->needstage==mjSTAGE_ACC) {
|
if ((plugin->capabilityflags & mjPLUGIN_SENSOR) && plugin->needstage==mjSTAGE_ACC) {
|
||||||
if (!plugin->compute) {
|
if (!plugin->compute) {
|
||||||
mju_error_i("`compute` is null for plugin at slot %d", slot);
|
mju_error_i("`compute` is null for plugin at slot %d", slot);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2633,7 +2633,7 @@ void mjCModel::TryCompile(mjModel*& m, mjData*& d, const mjVFS* vfs) {
|
|||||||
m->plugin_stateadr[i] = stateadr;
|
m->plugin_stateadr[i] = stateadr;
|
||||||
m->plugin_statenum[i] = nstate;
|
m->plugin_statenum[i] = nstate;
|
||||||
stateadr += nstate;
|
stateadr += nstate;
|
||||||
if (plugin->capabilities & mjPLUGIN_SENSOR) {
|
if (plugin->capabilityflags & mjPLUGIN_SENSOR) {
|
||||||
for (int sensor_id : plugin_to_sensors[i]) {
|
for (int sensor_id : plugin_to_sensors[i]) {
|
||||||
if (!plugin->nsensordata) {
|
if (!plugin->nsensordata) {
|
||||||
mju_error_i("`nsensordata` is null for plugin at slot %d", m->plugin[i]);
|
mju_error_i("`nsensordata` is null for plugin at slot %d", m->plugin[i]);
|
||||||
|
|||||||
@@ -819,7 +819,7 @@ void mjCBody::Compile(void) {
|
|||||||
|
|
||||||
model->ResolvePlugin(this, plugin_name, plugin_instance_name, &plugin_instance);
|
model->ResolvePlugin(this, plugin_name, plugin_instance_name, &plugin_instance);
|
||||||
const mjpPlugin* plugin = mjp_getPluginAtSlot(plugin_instance->plugin_slot);
|
const mjpPlugin* plugin = mjp_getPluginAtSlot(plugin_instance->plugin_slot);
|
||||||
if (!(plugin->capabilities & mjPLUGIN_PASSIVE)) {
|
if (!(plugin->capabilityflags & mjPLUGIN_PASSIVE)) {
|
||||||
throw mjCError(this, "plugin '%s' does not support passive forces", plugin->name);
|
throw mjCError(this, "plugin '%s' does not support passive forces", plugin->name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3618,7 +3618,7 @@ void mjCActuator::Compile(void) {
|
|||||||
|
|
||||||
model->ResolvePlugin(this, plugin_name, plugin_instance_name, &plugin_instance);
|
model->ResolvePlugin(this, plugin_name, plugin_instance_name, &plugin_instance);
|
||||||
const mjpPlugin* plugin = mjp_getPluginAtSlot(plugin_instance->plugin_slot);
|
const mjpPlugin* plugin = mjp_getPluginAtSlot(plugin_instance->plugin_slot);
|
||||||
if (!(plugin->capabilities & mjPLUGIN_ACTUATOR)) {
|
if (!(plugin->capabilityflags & mjPLUGIN_ACTUATOR)) {
|
||||||
throw mjCError(this, "plugin '%s' does not support actuators", plugin->name);
|
throw mjCError(this, "plugin '%s' does not support actuators", plugin->name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4006,7 +4006,7 @@ void mjCSensor::Compile(void) {
|
|||||||
{
|
{
|
||||||
model->ResolvePlugin(this, plugin_name, plugin_instance_name, &plugin_instance);
|
model->ResolvePlugin(this, plugin_name, plugin_instance_name, &plugin_instance);
|
||||||
const mjpPlugin* plugin = mjp_getPluginAtSlot(plugin_instance->plugin_slot);
|
const mjpPlugin* plugin = mjp_getPluginAtSlot(plugin_instance->plugin_slot);
|
||||||
if (!(plugin->capabilities & mjPLUGIN_SENSOR)) {
|
if (!(plugin->capabilityflags & mjPLUGIN_SENSOR)) {
|
||||||
throw mjCError(this, "plugin '%s' does not support sensors", plugin->name);
|
throw mjCError(this, "plugin '%s' does not support sensors", plugin->name);
|
||||||
}
|
}
|
||||||
needstage = static_cast<mjtStage>(plugin->needstage);
|
needstage = static_cast<mjtStage>(plugin->needstage);
|
||||||
|
|||||||
@@ -206,7 +206,7 @@ int RegisterSensorPlugin() {
|
|||||||
plugin.nattribute = sizeof(attributes) / sizeof(*attributes);
|
plugin.nattribute = sizeof(attributes) / sizeof(*attributes);
|
||||||
plugin.attributes = attributes;
|
plugin.attributes = attributes;
|
||||||
|
|
||||||
plugin.capabilities |= mjPLUGIN_SENSOR;
|
plugin.capabilityflags |= mjPLUGIN_SENSOR;
|
||||||
|
|
||||||
plugin.nstate = +[](const mjModel* m, int instance) { return 3; };
|
plugin.nstate = +[](const mjModel* m, int instance) { return 3; };
|
||||||
plugin.nsensordata =
|
plugin.nsensordata =
|
||||||
@@ -251,7 +251,7 @@ int RegisterActuatorPlugin() {
|
|||||||
plugin.nattribute = sizeof(attributes) / sizeof(*attributes);
|
plugin.nattribute = sizeof(attributes) / sizeof(*attributes);
|
||||||
plugin.attributes = attributes;
|
plugin.attributes = attributes;
|
||||||
|
|
||||||
plugin.capabilities |= mjPLUGIN_ACTUATOR;
|
plugin.capabilityflags |= mjPLUGIN_ACTUATOR;
|
||||||
|
|
||||||
plugin.nstate = +[](const mjModel* m, int instance) { return 3; };
|
plugin.nstate = +[](const mjModel* m, int instance) { return 3; };
|
||||||
|
|
||||||
@@ -294,7 +294,7 @@ int RegisterPassivePlugin() {
|
|||||||
plugin.nattribute = sizeof(attributes) / sizeof(*attributes);
|
plugin.nattribute = sizeof(attributes) / sizeof(*attributes);
|
||||||
plugin.attributes = attributes;
|
plugin.attributes = attributes;
|
||||||
|
|
||||||
plugin.capabilities |= mjPLUGIN_PASSIVE;
|
plugin.capabilityflags |= mjPLUGIN_PASSIVE;
|
||||||
|
|
||||||
plugin.nstate = +[](const mjModel* m, int instance) { return 0; };
|
plugin.nstate = +[](const mjModel* m, int instance) { return 0; };
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user