Add mjtState enum and related mj_stateSize, mj_getState and mj_setState functions.
PiperOrigin-RevId: 539667943 Change-Id: I14c34be8ce4c287e529380257b5c5bffc3ab45ce
This commit is contained in:
committed by
Copybara-Service
parent
84c33e53df
commit
f67e359532
@@ -269,6 +269,25 @@ PYBIND11_MODULE(_functions, pymodule) {
|
||||
});
|
||||
|
||||
// Support
|
||||
Def<traits::mj_stateSize>(pymodule);
|
||||
Def<traits::mj_getState>(
|
||||
pymodule,
|
||||
[](const raw::MjModel* m, const raw::MjData* d,
|
||||
Eigen::Ref<EigenVectorX> state, unsigned int spec) {
|
||||
if (state.size() != mj_stateSize(m, spec)) {
|
||||
throw py::type_error("state size should equal mj_stateSize(m, spec)");
|
||||
}
|
||||
return InterceptMjErrors(::mj_getState)(m, d, state.data(), spec);
|
||||
});
|
||||
Def<traits::mj_setState>(
|
||||
pymodule,
|
||||
[](const raw::MjModel* m, raw::MjData* d,
|
||||
const Eigen::Ref<EigenVectorX> state, unsigned int spec) {
|
||||
if (state.size() != mj_stateSize(m, spec)) {
|
||||
throw py::type_error("state size should equal mj_stateSize(m, spec)");
|
||||
}
|
||||
return InterceptMjErrors(::mj_setState)(m, d, state.data(), spec);
|
||||
});
|
||||
Def<traits::mj_addContact>(pymodule);
|
||||
Def<traits::mj_isPyramidal>(pymodule);
|
||||
Def<traits::mj_isSparse>(pymodule);
|
||||
|
||||
Reference in New Issue
Block a user