From 8010aad7be546e6b6a82d4e81b73990ea9f782bf Mon Sep 17 00:00:00 2001 From: Alessio Quaglino Date: Mon, 27 Nov 2023 02:24:06 -0800 Subject: [PATCH] Add `flex_elemlayer` to `mjvSceneState`. Fixes #1193 and #1219. PiperOrigin-RevId: 585581657 Change-Id: Iec4da74437544184c19765a2feee1cca4c368d34 --- doc/changelog.rst | 1 + doc/includes/references.h | 1 + include/mujoco/mjvisualize.h | 1 + include/mujoco/mjxmacro.h | 2 +- introspect/structs.py | 7 +++++++ unity/Runtime/Bindings/MjBindings.cs | 1 + 6 files changed, 12 insertions(+), 1 deletion(-) diff --git a/doc/changelog.rst b/doc/changelog.rst index 3f649e2a..8a190164 100644 --- a/doc/changelog.rst +++ b/doc/changelog.rst @@ -28,6 +28,7 @@ Bug fixes ^^^^^^^^^ - Fix bug in Cartesian actuation with movable refsite, as when using body-centric Cartesian actuators on a quadruped. Before this fix such actuators could lead to non-conservation of momentum. +- Fix bug that prevented using flex with the :ref:`passive viewer`. Version 3.0.1 (November 15, 2023) --------------------------------- diff --git a/doc/includes/references.h b/doc/includes/references.h index 371167ba..51412f28 100644 --- a/doc/includes/references.h +++ b/doc/includes/references.h @@ -2235,6 +2235,7 @@ struct mjvSceneState_ { int* flex_vertadr; int* flex_vertnum; int* flex_elem; + int* flex_elemlayer; int* flex_elemadr; int* flex_elemnum; int* flex_elemdataadr; diff --git a/include/mujoco/mjvisualize.h b/include/mujoco/mjvisualize.h index 37eef03e..e4114af8 100644 --- a/include/mujoco/mjvisualize.h +++ b/include/mujoco/mjvisualize.h @@ -507,6 +507,7 @@ struct mjvSceneState_ { int* flex_vertadr; int* flex_vertnum; int* flex_elem; + int* flex_elemlayer; int* flex_elemadr; int* flex_elemnum; int* flex_elemdataadr; diff --git a/include/mujoco/mjxmacro.h b/include/mujoco/mjxmacro.h index e8879aeb..be5a2b53 100644 --- a/include/mujoco/mjxmacro.h +++ b/include/mujoco/mjxmacro.h @@ -334,7 +334,7 @@ X ( int, flex_vertbodyid, nflexvert, 1 ) \ X ( int, flex_edge, nflexedge, 2 ) \ XMJV( int, flex_elem, nflexelemdata, 1 ) \ - X ( int, flex_elemlayer, nflexelem, 1 ) \ + XMJV( int, flex_elemlayer, nflexelem, 1 ) \ XMJV( int, flex_shell, nflexshelldata,1 ) \ X ( int, flex_evpair, nflexevpair, 2 ) \ X ( mjtNum, flex_vert, nflexvert, 3 ) \ diff --git a/introspect/structs.py b/introspect/structs.py index fd1f085c..088a9c2c 100644 --- a/introspect/structs.py +++ b/introspect/structs.py @@ -6741,6 +6741,13 @@ STRUCTS: Mapping[str, StructDecl] = dict([ ), doc='', ), + StructFieldDecl( + name='flex_elemlayer', + type=PointerType( + inner_type=ValueType(name='int'), + ), + doc='', + ), StructFieldDecl( name='flex_elemadr', type=PointerType( diff --git a/unity/Runtime/Bindings/MjBindings.cs b/unity/Runtime/Bindings/MjBindings.cs index 74d15c7c..c44f2ef8 100644 --- a/unity/Runtime/Bindings/MjBindings.cs +++ b/unity/Runtime/Bindings/MjBindings.cs @@ -6152,6 +6152,7 @@ public unsafe struct model { public int* flex_vertadr; public int* flex_vertnum; public int* flex_elem; + public int* flex_elemlayer; public int* flex_elemadr; public int* flex_elemnum; public int* flex_elemdataadr;