Add mjSpec bindings.

Co-authored-by: Saran Tunyasuvunakool <stunya@google.com>
PiperOrigin-RevId: 648444641
Change-Id: I08ee1d3f4fae1efbc7934ba94702b1c06d8cb92a
This commit is contained in:
Alessio Quaglino
2024-07-01 12:04:52 -07:00
committed by Copybara-Service
parent f2c3be470f
commit 9106f40e2b
19 changed files with 1588 additions and 10 deletions
+49
View File
@@ -581,6 +581,55 @@ mjsElement* mjs_nextChild(mjsBody* body, mjsElement* child) {
// return body given mjsElement
mjsBody* mjs_asBody(mjsElement* element) {
return element->elemtype == mjOBJ_BODY ? &(static_cast<mjCBody*>(element)->spec) : nullptr;
}
// return geom given mjsElement
mjsGeom* mjs_asGeom(mjsElement* element) {
return element->elemtype == mjOBJ_GEOM ? &(static_cast<mjCGeom*>(element)->spec) : nullptr;
}
// return joint given mjsElement
mjsJoint* mjs_asJoint(mjsElement* element) {
return element->elemtype == mjOBJ_JOINT ? &(static_cast<mjCJoint*>(element)->spec) : nullptr;
}
// Return site given mjsElement
mjsSite* mjs_asSite(mjsElement* element) {
return element->elemtype == mjOBJ_SITE ? &(static_cast<mjCSite*>(element)->spec) : nullptr;
}
// return camera given mjsElement
mjsCamera* mjs_asCamera(mjsElement* element) {
return element->elemtype == mjOBJ_CAMERA ? &(static_cast<mjCCamera*>(element)->spec) : nullptr;
}
// return light given mjsElement
mjsLight* mjs_asLight(mjsElement* element) {
return element->elemtype == mjOBJ_LIGHT ? &(static_cast<mjCLight*>(element)->spec) : nullptr;
}
// return frame given mjsElement
mjsFrame* mjs_asFrame(mjsElement* element) {
return element->elemtype == mjOBJ_FRAME ? &(static_cast<mjCFrame*>(element)->spec) : nullptr;
}
// set string
void mjs_setString(mjString* dest, const char* text) {
std::string* str = static_cast<std::string*>(dest);