Skip deprecated mju_rotVecMat and mju_rotVecMatT in Python bindings.
PiperOrigin-RevId: 647275284 Change-Id: I371236182b22eb399041959901085bb82af3f670
This commit is contained in:
committed by
Copybara-Service
parent
13fce3e5b0
commit
62e2842116
+15
-12
@@ -12,12 +12,17 @@ General
|
|||||||
|
|
||||||
1. Removed deprecated ``mj_makeEmptyFileVFS`` and ``mj_findFileVFS`` functions.
|
1. Removed deprecated ``mj_makeEmptyFileVFS`` and ``mj_findFileVFS`` functions.
|
||||||
|
|
||||||
**Migration:** Use ``mj_addBufferVFS`` to copy a buffer into a VFS file directly.
|
**Migration:** Use:ref:`mj_addBufferVFS` to copy a buffer into a VFS file directly.
|
||||||
|
|
||||||
2. Calls to ``mj_defaultVFS`` may allocate memory inside VFS, and the corresponding
|
2. Calls to:ref:`mj_defaultVFS` may allocate memory inside VFS, and the corresponding
|
||||||
``mj_deleteVFS`` must be called to deallocate any internal allocated memory.
|
:ref:`mj_deleteVFS` must be called to deallocate any internal allocated memory.
|
||||||
|
|
||||||
3. Added a new API for :doc:`procedural model manipulation<programming/modeledit>`. Fixes :github:issue:`364`.
|
3. Deprecated :ref:`mju_rotVecMat` and :ref:`mju_rotVecMatT` in favor of :ref:`mju_mulMatVec3` and
|
||||||
|
:ref:`mju_mulMatTVec3`. These function names and argument order are more consistent with the rest of the API.
|
||||||
|
The older functions have been removed from the Python bindings and will be removed from the C API in the next
|
||||||
|
release.
|
||||||
|
|
||||||
|
4. Added a new API for :doc:`procedural model manipulation<programming/modeledit>`. Fixes :github:issue:`364`.
|
||||||
Still missing:
|
Still missing:
|
||||||
|
|
||||||
- Detailed documentation.
|
- Detailed documentation.
|
||||||
@@ -27,14 +32,12 @@ General
|
|||||||
:align: right
|
:align: right
|
||||||
:width: 240px
|
:width: 240px
|
||||||
|
|
||||||
4. Added support for orthographic cameras. This is available for both fixed cameras and the free camera, using the
|
5. Added support for orthographic cameras. This is available for both fixed cameras and the free camera, using the
|
||||||
:ref:`camera/orthographic<body-camera-orthographic>` and :ref:`global/orthographic<visual-global-orthographic>`
|
:ref:`camera/orthographic<body-camera-orthographic>` and :ref:`global/orthographic<visual-global-orthographic>`
|
||||||
attributes, respectively.
|
attributes, respectively.
|
||||||
5. Added :ref:`maxhullvert<asset-mesh-maxhullvert>`, the maximum number of vertices in a mesh's convex hull.
|
6. Added :ref:`maxhullvert<asset-mesh-maxhullvert>`, the maximum number of vertices in a mesh's convex hull.
|
||||||
6. Added :ref:`mj_setKeyframe` for saving the current state into a model keyframe.
|
7. Added :ref:`mj_setKeyframe` for saving the current state into a model keyframe.
|
||||||
7. Added support for ``ball`` joints in the URDF parser ("spherical" in URDF).
|
8. Added support for ``ball`` joints in the URDF parser ("spherical" in URDF).
|
||||||
8. Deprecated :ref:`mju_rotVecMat` and :ref:`mju_rotVecMatT` in favor of :ref:`mju_mulMatVec3` and
|
|
||||||
:ref:`mju_mulMatTVec3`. These functions names and argument ordering are more consistent with the rest of the API.
|
|
||||||
9. Replaced ``mjUSEDOUBLE`` which was previously hard-coded in
|
9. Replaced ``mjUSEDOUBLE`` which was previously hard-coded in
|
||||||
`mjtnum.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjtnum.h>`__
|
`mjtnum.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjtnum.h>`__
|
||||||
with the build-time flag ``mjUSESINGLE``. If this symbol is not defined, MuJoCo will use double-precision floating
|
with the build-time flag ``mjUSESINGLE``. If this symbol is not defined, MuJoCo will use double-precision floating
|
||||||
@@ -231,10 +234,10 @@ General
|
|||||||
:at:`ctrlrange` or :at:`actrange` (respectively), according to the range of the transmission
|
:at:`ctrlrange` or :at:`actrange` (respectively), according to the range of the transmission
|
||||||
target (joint or tendon). See :ref:`position/inheritrange<actuator-position-inheritrange>` for
|
target (joint or tendon). See :ref:`position/inheritrange<actuator-position-inheritrange>` for
|
||||||
details.
|
details.
|
||||||
2. Deprecated :ref:`mj_makeEmptyFileVFS` in favor of :ref:`mj_addBufferVFS`. :ref:`mjVFS` now computes checksums of
|
2. Deprecated ``mj_makeEmptyFileVFS`` in favor of :ref:`mj_addBufferVFS`. :ref:`mjVFS` now computes checksums of
|
||||||
its internal file buffers. :ref:`mj_addBufferVFS` allocates an empty buffer with a given name in an mjVFS and
|
its internal file buffers. :ref:`mj_addBufferVFS` allocates an empty buffer with a given name in an mjVFS and
|
||||||
copies the data buffer into it, combining and replacing the deprecated two-step process of calling
|
copies the data buffer into it, combining and replacing the deprecated two-step process of calling
|
||||||
:ref:`mj_makeEmptyFileVFS` followed by a direct copy into the given mjVFS internal file buffer.
|
``mj_makeEmptyFileVFS`` followed by a direct copy into the given mjVFS internal file buffer.
|
||||||
3. Added :ref:`mj_angmomMat` which computes the ``3 x nv`` angular momentum matrix :math:`H(q)`, providing the linear
|
3. Added :ref:`mj_angmomMat` which computes the ``3 x nv`` angular momentum matrix :math:`H(q)`, providing the linear
|
||||||
mapping from generalized velocities to subtree angular momentum :math:`h = H \dot q`. Contribution by
|
mapping from generalized velocities to subtree angular momentum :math:`h = H \dot q`. Contribution by
|
||||||
:github:user:`v-r-a`.
|
:github:user:`v-r-a`.
|
||||||
|
|||||||
@@ -17,7 +17,6 @@
|
|||||||
#include <array>
|
#include <array>
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <sstream>
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <optional>
|
#include <optional>
|
||||||
|
|
||||||
@@ -29,6 +28,7 @@
|
|||||||
#include "functions.h"
|
#include "functions.h"
|
||||||
#include "private.h"
|
#include "private.h"
|
||||||
#include "raw.h"
|
#include "raw.h"
|
||||||
|
#include "structs.h"
|
||||||
#include <pybind11/eigen.h>
|
#include <pybind11/eigen.h>
|
||||||
#include <pybind11/pybind11.h>
|
#include <pybind11/pybind11.h>
|
||||||
#include <pybind11/stl.h>
|
#include <pybind11/stl.h>
|
||||||
@@ -108,9 +108,10 @@ PYBIND11_MODULE(_functions, pymodule) {
|
|||||||
// Skipped: mj_copyModel (have MjModel.__copy__, memory managed by MjModel)
|
// Skipped: mj_copyModel (have MjModel.__copy__, memory managed by MjModel)
|
||||||
pymodule.def(
|
pymodule.def(
|
||||||
"mj_saveModel",
|
"mj_saveModel",
|
||||||
[](const MjModelWrapper& m, const std::optional<std::string>& filename = std::nullopt,
|
[](const MjModelWrapper& m,
|
||||||
std::optional<
|
const std::optional<std::string>& filename = std::nullopt,
|
||||||
Eigen::Ref<Eigen::Vector<std::uint8_t, Eigen::Dynamic>>> buffer = std::nullopt) {
|
std::optional<Eigen::Ref<Eigen::Vector<std::uint8_t, Eigen::Dynamic>>>
|
||||||
|
buffer = std::nullopt) {
|
||||||
void* buffer_ptr = nullptr;
|
void* buffer_ptr = nullptr;
|
||||||
int buffer_sz = 0;
|
int buffer_sz = 0;
|
||||||
if (buffer.has_value()) {
|
if (buffer.has_value()) {
|
||||||
@@ -122,8 +123,7 @@ PYBIND11_MODULE(_functions, pymodule) {
|
|||||||
buffer_ptr, buffer_sz);
|
buffer_ptr, buffer_sz);
|
||||||
},
|
},
|
||||||
py::arg("m"), py::arg_v("filename", std::nullopt),
|
py::arg("m"), py::arg_v("filename", std::nullopt),
|
||||||
py::arg_v("buffer", std::nullopt),
|
py::arg_v("buffer", std::nullopt), py::doc(traits::mj_saveModel::doc),
|
||||||
py::doc(traits::mj_saveModel::doc),
|
|
||||||
py::call_guard<py::gil_scoped_release>());
|
py::call_guard<py::gil_scoped_release>());
|
||||||
// Skipped: mj_loadModel (have MjModel.from_binary_path)
|
// Skipped: mj_loadModel (have MjModel.from_binary_path)
|
||||||
// Skipped: mj_deleteModel (have MjModel.__del__)
|
// Skipped: mj_deleteModel (have MjModel.__del__)
|
||||||
@@ -700,8 +700,8 @@ PYBIND11_MODULE(_functions, pymodule) {
|
|||||||
Def<traits::mju_dist3>(pymodule);
|
Def<traits::mju_dist3>(pymodule);
|
||||||
Def<traits::mju_mulMatVec3>(pymodule);
|
Def<traits::mju_mulMatVec3>(pymodule);
|
||||||
Def<traits::mju_mulMatTVec3>(pymodule);
|
Def<traits::mju_mulMatTVec3>(pymodule);
|
||||||
Def<traits::mju_rotVecMat>(pymodule);
|
// skipped: mju_rotVecMat
|
||||||
Def<traits::mju_rotVecMatT>(pymodule);
|
// skipped: mju_rotVecMatT
|
||||||
Def<traits::mju_cross>(pymodule);
|
Def<traits::mju_cross>(pymodule);
|
||||||
Def<traits::mju_zero4>(pymodule);
|
Def<traits::mju_zero4>(pymodule);
|
||||||
Def<traits::mju_unit4>(pymodule);
|
Def<traits::mju_unit4>(pymodule);
|
||||||
|
|||||||
@@ -806,8 +806,8 @@ int mjc_BoxBox(const mjModel* M, const mjData* D, mjContact* con, int g1, int g2
|
|||||||
if (q2) {
|
if (q2) {
|
||||||
mju_mulMatMatT3(r, rotmore, rot);
|
mju_mulMatMatT3(r, rotmore, rot);
|
||||||
|
|
||||||
// mju_rotVecMat(p,pos12,rotmore);
|
// mju_mulMatVec3(p,rotmore,pos12);
|
||||||
// mju_rotVecMat(tmp1,size2,rotmore);
|
// mju_mulMatVec3(tmp1,rotmore,size2);
|
||||||
|
|
||||||
rotaxis(p, pos12);
|
rotaxis(p, pos12);
|
||||||
rotaxis(tmp1, size2);
|
rotaxis(tmp1, size2);
|
||||||
@@ -818,8 +818,8 @@ int mjc_BoxBox(const mjModel* M, const mjData* D, mjContact* con, int g1, int g2
|
|||||||
|
|
||||||
rotmatx(r, rot);
|
rotmatx(r, rot);
|
||||||
|
|
||||||
// mju_rotVecMat(p,pos21,rotmore);
|
// mju_mulMatVec3(p,rotmore,pos21);
|
||||||
// mju_rotVecMat(tmp1,size1,rotmore);
|
// mju_mulMatVec3(tmp1,rotmore,size1);
|
||||||
|
|
||||||
rotaxis(p, pos21);
|
rotaxis(p, pos21);
|
||||||
rotaxis(tmp1, size1);
|
rotaxis(tmp1, size1);
|
||||||
@@ -1074,8 +1074,8 @@ edgeedge:
|
|||||||
f2 = -1;
|
f2 = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// mju_rotVecMat(p,pos21,rotmore);
|
// mju_mulMatVec3(p,rotmore,pos21);
|
||||||
// mju_rotVecMat(rnorm,clnorm,rotmore);
|
// mju_mulMatVec3(rnorm,rotmore,clnorm);
|
||||||
rotaxis(p, pos21);
|
rotaxis(p, pos21);
|
||||||
rotaxis(rnorm, clnorm);
|
rotaxis(rnorm, clnorm);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user