From d77ecb3f064678cc9227cdb8e0f5fccad97569fc Mon Sep 17 00:00:00 2001 From: Yuval Tassa Date: Sun, 24 Aug 2025 12:37:02 -0700 Subject: [PATCH] Move `mjtConstraintState` from `mjmodel.h` to `mjdata.h`. This is the correct location, this enum is only used in `mjData`, not `mjModel`. PiperOrigin-RevId: 798860951 Change-Id: I48b9a2afc831bd9a6966cc9586429fd03605bdd2 --- doc/APIreference/APItypes.rst | 19 ++++++++++--------- doc/includes/references.h | 14 +++++++------- include/mujoco/mjdata.h | 9 +++++++++ include/mujoco/mjmodel.h | 9 --------- python/mujoco/introspect/enums.py | 24 ++++++++++++------------ unity/Runtime/Bindings/MjBindings.cs | 14 +++++++------- 6 files changed, 45 insertions(+), 44 deletions(-) diff --git a/doc/APIreference/APItypes.rst b/doc/APIreference/APItypes.rst index b6df3f7a..59523a4c 100644 --- a/doc/APIreference/APItypes.rst +++ b/doc/APIreference/APItypes.rst @@ -338,15 +338,6 @@ of active constraints is constructed at each simulation time step. .. mujoco-include:: mjtConstraint -.. _mjtConstraintState: - -mjtConstraintState -~~~~~~~~~~~~~~~~~~ - -These values are used by the solver internally to keep track of the constraint states. - -.. mujoco-include:: mjtConstraintState - .. _mjtSensor: @@ -440,6 +431,16 @@ State component elements as integer bitflags and several convenient combinations .. mujoco-include:: mjtState +.. _mjtConstraintState: + +mjtConstraintState +~~~~~~~~~~~~~~~~~~ + +These values are used by the solver internally to keep track of the constraint states. + +.. mujoco-include:: mjtConstraintState + + .. _mjtWarning: mjtWarning diff --git a/doc/includes/references.h b/doc/includes/references.h index 3ba9c150..a0c9d7c3 100644 --- a/doc/includes/references.h +++ b/doc/includes/references.h @@ -41,6 +41,13 @@ typedef enum mjtState_ { // state elements mjSTATE_USERDATA, mjSTATE_INTEGRATION = mjSTATE_FULLPHYSICS | mjSTATE_USER | mjSTATE_WARMSTART } mjtState; +typedef enum mjtConstraintState_ { // constraint state + mjCNSTRSTATE_SATISFIED = 0, // constraint satisfied, zero cost (limit, contact) + mjCNSTRSTATE_QUADRATIC, // quadratic cost (equality, friction, limit, contact) + mjCNSTRSTATE_LINEARNEG, // linear cost, negative side (friction) + mjCNSTRSTATE_LINEARPOS, // linear cost, positive side (friction) + mjCNSTRSTATE_CONE // squared distance to cone cost (elliptic contact) +} mjtConstraintState; typedef enum mjtWarning_ { // warning types mjWARN_INERTIA = 0, // (near) singular inertia matrix mjWARN_CONTACTFULL, // too many contacts in contact list @@ -642,13 +649,6 @@ typedef enum mjtConstraint_ { // type of constraint mjCNSTR_CONTACT_PYRAMIDAL, // frictional contact, pyramidal friction cone mjCNSTR_CONTACT_ELLIPTIC // frictional contact, elliptic friction cone } mjtConstraint; -typedef enum mjtConstraintState_ { // constraint state - mjCNSTRSTATE_SATISFIED = 0, // constraint satisfied, zero cost (limit, contact) - mjCNSTRSTATE_QUADRATIC, // quadratic cost (equality, friction, limit, contact) - mjCNSTRSTATE_LINEARNEG, // linear cost, negative side (friction) - mjCNSTRSTATE_LINEARPOS, // linear cost, positive side (friction) - mjCNSTRSTATE_CONE // squared distance to cone cost (elliptic contact) -} mjtConstraintState; typedef enum mjtSensor_ { // type of sensor // common robotic sensors, attached to a site mjSENS_TOUCH = 0, // scalar contact normal forces summed over sensor zone diff --git a/include/mujoco/mjdata.h b/include/mujoco/mjdata.h index f1ad77c7..8b2e085f 100644 --- a/include/mujoco/mjdata.h +++ b/include/mujoco/mjdata.h @@ -51,6 +51,15 @@ typedef enum mjtState_ { // state elements } mjtState; +typedef enum mjtConstraintState_ { // constraint state + mjCNSTRSTATE_SATISFIED = 0, // constraint satisfied, zero cost (limit, contact) + mjCNSTRSTATE_QUADRATIC, // quadratic cost (equality, friction, limit, contact) + mjCNSTRSTATE_LINEARNEG, // linear cost, negative side (friction) + mjCNSTRSTATE_LINEARPOS, // linear cost, positive side (friction) + mjCNSTRSTATE_CONE // squared distance to cone cost (elliptic contact) +} mjtConstraintState; + + typedef enum mjtWarning_ { // warning types mjWARN_INERTIA = 0, // (near) singular inertia matrix mjWARN_CONTACTFULL, // too many contacts in contact list diff --git a/include/mujoco/mjmodel.h b/include/mujoco/mjmodel.h index 99c9347d..18915b6f 100644 --- a/include/mujoco/mjmodel.h +++ b/include/mujoco/mjmodel.h @@ -303,15 +303,6 @@ typedef enum mjtConstraint_ { // type of constraint } mjtConstraint; -typedef enum mjtConstraintState_ { // constraint state - mjCNSTRSTATE_SATISFIED = 0, // constraint satisfied, zero cost (limit, contact) - mjCNSTRSTATE_QUADRATIC, // quadratic cost (equality, friction, limit, contact) - mjCNSTRSTATE_LINEARNEG, // linear cost, negative side (friction) - mjCNSTRSTATE_LINEARPOS, // linear cost, positive side (friction) - mjCNSTRSTATE_CONE // squared distance to cone cost (elliptic contact) -} mjtConstraintState; - - typedef enum mjtSensor_ { // type of sensor // common robotic sensors, attached to a site mjSENS_TOUCH = 0, // scalar contact normal forces summed over sensor zone diff --git a/python/mujoco/introspect/enums.py b/python/mujoco/introspect/enums.py index def37a49..3508fe30 100644 --- a/python/mujoco/introspect/enums.py +++ b/python/mujoco/introspect/enums.py @@ -327,18 +327,6 @@ ENUMS: Mapping[str, EnumDecl] = dict([ ('mjCNSTR_CONTACT_ELLIPTIC', 7), ]), )), - ('mjtConstraintState', - EnumDecl( - name='mjtConstraintState', - declname='enum mjtConstraintState_', - values=dict([ - ('mjCNSTRSTATE_SATISFIED', 0), - ('mjCNSTRSTATE_QUADRATIC', 1), - ('mjCNSTRSTATE_LINEARNEG', 2), - ('mjCNSTRSTATE_LINEARPOS', 3), - ('mjCNSTRSTATE_CONE', 4), - ]), - )), ('mjtSensor', EnumDecl( name='mjtSensor', @@ -513,6 +501,18 @@ ENUMS: Mapping[str, EnumDecl] = dict([ ('mjSTATE_INTEGRATION', 8191), ]), )), + ('mjtConstraintState', + EnumDecl( + name='mjtConstraintState', + declname='enum mjtConstraintState_', + values=dict([ + ('mjCNSTRSTATE_SATISFIED', 0), + ('mjCNSTRSTATE_QUADRATIC', 1), + ('mjCNSTRSTATE_LINEARNEG', 2), + ('mjCNSTRSTATE_LINEARPOS', 3), + ('mjCNSTRSTATE_CONE', 4), + ]), + )), ('mjtWarning', EnumDecl( name='mjtWarning', diff --git a/unity/Runtime/Bindings/MjBindings.cs b/unity/Runtime/Bindings/MjBindings.cs index 8bb01d64..bb872565 100644 --- a/unity/Runtime/Bindings/MjBindings.cs +++ b/unity/Runtime/Bindings/MjBindings.cs @@ -115,6 +115,13 @@ public const int mjVERSION_HEADER = 336; // ------------------------------------Enums------------------------------------ +public enum mjtConstraintState : int{ + mjCNSTRSTATE_SATISFIED = 0, + mjCNSTRSTATE_QUADRATIC = 1, + mjCNSTRSTATE_LINEARNEG = 2, + mjCNSTRSTATE_LINEARPOS = 3, + mjCNSTRSTATE_CONE = 4, +} public enum mjtWarning : int{ mjWARN_INERTIA = 0, mjWARN_CONTACTFULL = 1, @@ -344,13 +351,6 @@ public enum mjtConstraint : int{ mjCNSTR_CONTACT_PYRAMIDAL = 6, mjCNSTR_CONTACT_ELLIPTIC = 7, } -public enum mjtConstraintState : int{ - mjCNSTRSTATE_SATISFIED = 0, - mjCNSTRSTATE_QUADRATIC = 1, - mjCNSTRSTATE_LINEARNEG = 2, - mjCNSTRSTATE_LINEARPOS = 3, - mjCNSTRSTATE_CONE = 4, -} public enum mjtSensor : int{ mjSENS_TOUCH = 0, mjSENS_ACCELEROMETER = 1,