Add optional kwarg inputs to mjSpec Python bindings for mjsBody add constructors.

PiperOrigin-RevId: 675141078
Change-Id: I8d735ae7d0a018ce7cd1aca56c899d1455586015
This commit is contained in:
Taylor Howell
2024-09-16 07:31:46 -07:00
committed by Copybara-Service
parent 2ffa0fe942
commit b0c7101f1c
3 changed files with 244 additions and 43 deletions
-42
View File
@@ -556,13 +556,6 @@ PYBIND11_MODULE(_specs, m) {
// ============================= MJSBODY =====================================
mjsBody.def_property_readonly(
"id", [](raw::MjsBody& self) -> int { return mjs_getId(self.element); });
mjsBody.def(
"add_body",
[](raw::MjsBody& self, raw::MjsDefault* default_) -> raw::MjsBody* {
return mjs_addBody(&self, default_);
},
py::arg_v("default", nullptr),
py::return_value_policy::reference_internal);
mjsBody.def(
"add_frame",
[](raw::MjsBody& self, raw::MjsFrame* parentframe_) -> raw::MjsFrame* {
@@ -570,47 +563,12 @@ PYBIND11_MODULE(_specs, m) {
},
py::arg_v("default", nullptr),
py::return_value_policy::reference_internal);
mjsBody.def(
"add_geom",
[](raw::MjsBody& self, raw::MjsDefault* default_) -> raw::MjsGeom* {
return mjs_addGeom(&self, default_);
},
py::arg_v("default", nullptr),
py::return_value_policy::reference_internal);
mjsBody.def(
"add_joint",
[](raw::MjsBody& self, raw::MjsDefault* default_) -> raw::MjsJoint* {
return mjs_addJoint(&self, default_);
},
py::arg_v("default", nullptr),
py::return_value_policy::reference_internal);
mjsBody.def(
"add_freejoint",
[](raw::MjsBody& self) -> raw::MjsJoint* {
return mjs_addFreeJoint(&self);
},
py::return_value_policy::reference_internal);
mjsBody.def(
"add_light",
[](raw::MjsBody& self, raw::MjsDefault* default_) -> raw::MjsLight* {
return mjs_addLight(&self, default_);
},
py::arg_v("default", nullptr),
py::return_value_policy::reference_internal);
mjsBody.def(
"add_site",
[](raw::MjsBody& self, raw::MjsDefault* default_) -> raw::MjsSite* {
return mjs_addSite(&self, default_);
},
py::arg_v("default", nullptr),
py::return_value_policy::reference_internal);
mjsBody.def(
"add_camera",
[](raw::MjsBody& self, raw::MjsDefault* default_) -> raw::MjsCamera* {
return mjs_addCamera(&self, default_);
},
py::arg_v("default", nullptr),
py::return_value_policy::reference_internal);
mjsBody.def("set_frame",
[](raw::MjsBody& self, raw::MjsFrame& frame) -> void {
mjs_setFrame(self.element, &frame);