Refactor mj_fullM. This change is part of the deprecation of mjData.qM.

PiperOrigin-RevId: 925669464
Change-Id: I4889c66591bc1df4c31135a13776052aad491f7a
This commit is contained in:
Yuval Tassa
2026-06-02 17:22:15 -07:00
committed by Copybara-Service
parent 49211a05c5
commit 7b9b88060e
15 changed files with 49 additions and 63 deletions
+3 -6
View File
@@ -591,15 +591,12 @@ PYBIND11_MODULE(_functions, pymodule) {
Def<traits::mj_id2name>(pymodule);
Def<traits::mj_fullM>(
pymodule,
[](const raw::MjModel* m, Eigen::Ref<EigenArrayXX> dst,
Eigen::Ref<const EigenVectorX> M) {
if (M.size() != m->nM) {
throw py::type_error("M should be of size nM");
}
[](const raw::MjModel* m, const raw::MjData* d,
Eigen::Ref<EigenArrayXX> dst) {
if (dst.cols() != m->nv || dst.rows() != m->nv) {
throw py::type_error("dst should be of shape (nv, nv)");
}
return ::mj_fullM(m, dst.data(), M.data());
return ::mj_fullM(m, d, dst.data());
});
Def<traits::mj_mulM>(
pymodule,
+7 -7
View File
@@ -3478,20 +3478,20 @@ FUNCTIONS: Mapping[str, FunctionDecl] = dict([
inner_type=ValueType(name='mjModel', is_const=True),
),
),
FunctionParameterDecl(
name='d',
type=PointerType(
inner_type=ValueType(name='mjData', is_const=True),
),
),
FunctionParameterDecl(
name='dst',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
),
FunctionParameterDecl(
name='M',
type=PointerType(
inner_type=ValueType(name='mjtNum', is_const=True),
),
),
),
doc='Convert sparse inertia matrix M into full (i.e. dense) matrix.',
doc='Convert sparse inertia matrix into full (i.e. dense) matrix.',
)),
('mj_mulM',
FunctionDecl(