Add find functions for joints, lights, and cameras to mjSpec bindings.
PiperOrigin-RevId: 717578768 Change-Id: I2087ccbb9cf8b3b8ec03e9eb2edb0707d4a4cac1
This commit is contained in:
committed by
Copybara-Service
parent
600f4acb52
commit
699a6765e3
@@ -408,6 +408,27 @@ PYBIND11_MODULE(_specs, m) {
|
|||||||
return mjs_asGeom(mjs_findElement(self.ptr, mjOBJ_GEOM, name.c_str()));
|
return mjs_asGeom(mjs_findElement(self.ptr, mjOBJ_GEOM, name.c_str()));
|
||||||
},
|
},
|
||||||
py::return_value_policy::reference_internal);
|
py::return_value_policy::reference_internal);
|
||||||
|
mjSpec.def(
|
||||||
|
"find_joint",
|
||||||
|
[](MjSpec& self, std::string& name) -> raw::MjsJoint* {
|
||||||
|
return mjs_asJoint(
|
||||||
|
mjs_findElement(self.ptr, mjOBJ_JOINT, name.c_str()));
|
||||||
|
},
|
||||||
|
py::return_value_policy::reference_internal);
|
||||||
|
mjSpec.def(
|
||||||
|
"find_light",
|
||||||
|
[](MjSpec& self, std::string& name) -> raw::MjsLight* {
|
||||||
|
return mjs_asLight(
|
||||||
|
mjs_findElement(self.ptr, mjOBJ_LIGHT, name.c_str()));
|
||||||
|
},
|
||||||
|
py::return_value_policy::reference_internal);
|
||||||
|
mjSpec.def(
|
||||||
|
"find_camera",
|
||||||
|
[](MjSpec& self, std::string& name) -> raw::MjsCamera* {
|
||||||
|
return mjs_asCamera(
|
||||||
|
mjs_findElement(self.ptr, mjOBJ_CAMERA, name.c_str()));
|
||||||
|
},
|
||||||
|
py::return_value_policy::reference_internal);
|
||||||
mjSpec.def("compile", [mjmodel_from_spec_ptr](MjSpec& self) -> py::object {
|
mjSpec.def("compile", [mjmodel_from_spec_ptr](MjSpec& self) -> py::object {
|
||||||
if (self.assets.empty()) {
|
if (self.assets.empty()) {
|
||||||
return mjmodel_from_spec_ptr(reinterpret_cast<uintptr_t>(self.ptr));
|
return mjmodel_from_spec_ptr(reinterpret_cast<uintptr_t>(self.ptr));
|
||||||
|
|||||||
Reference in New Issue
Block a user