Add mjs_getOriginSpec to retrieve the original spec of an element.

The new function mjs_getOriginSpec returns the mjSpec that was used to define a given mjsElement. Unlike mjs_getSpec, this value remains constant even after the element has been attached to a different model.

PiperOrigin-RevId: 911930951
Change-Id: Ia9cd79d9dfabc513d6121eadcffc5d41075224c9
This commit is contained in:
Sam Haves
2026-05-07 06:32:54 -07:00
committed by Copybara-Service
parent 8b06fe4c16
commit ec50260e26
9 changed files with 90 additions and 0 deletions
+10
View File
@@ -1308,6 +1308,16 @@ mjSpec* mjs_getSpec(const mjsElement* element) {
// get spec that originally defined an element
// contrary to mjs_getSpec, this does not change after attachment
mjSpec* mjs_getOriginSpec(const mjsElement* element) {
const mjCModel* model = static_cast<const mjCBase*>(element)->model;
const mjsCompiler* compiler = static_cast<const mjCBase*>(element)->compiler;
return model->FindSpec(compiler);
}
mjsCompiler* mjs_getCompiler(const mjsElement* element) {
return static_cast<const mjCBase*>(element)->compiler;
}