Replace name attribute with setters and getters in the C API of mjSpec.

PiperOrigin-RevId: 778816015
Change-Id: Ieffb7a5bce37e887ff009f9a02d2434435e79ca1
This commit is contained in:
Alessio Quaglino
2025-07-03 02:29:49 -07:00
committed by Copybara-Service
parent 1c5d47c94b
commit 594e17074a
22 changed files with 290 additions and 400 deletions
+23
View File
@@ -1341,6 +1341,19 @@ mjsPlugin* mjs_asPlugin(mjsElement* element) {
// set element name
void mjs_setName(mjsElement* element, const char* name) {
if (element->elemtype == mjOBJ_DEFAULT) {
mjCDef* def = static_cast<mjCDef*>(element);
def->name = std::string(name);
return;
}
mjCBase* baseC = static_cast<mjCBase*>(element);
baseC->name = std::string(name);
}
// copy buffer to destination buffer
void mjs_setBuffer(mjByteVec* dest, const void* array, int size) {
const std::byte* buffer = static_cast<const std::byte*>(array);
@@ -1430,6 +1443,16 @@ void mjs_setDouble(mjDoubleVec* dest, const double* array, int size) {
// get name
mjString* mjs_getName(mjsElement* element) {
if (element->elemtype == mjOBJ_DEFAULT) {
return &(static_cast<mjCDef*>(element)->name);
}
return &(static_cast<mjCBase*>(element)->name);
}
// get string
const char* mjs_getString(const mjString* source) {
return source->c_str();