Files
Mujoco_WASM/python/mujoco/introspect/enums.py
T
Yuval Tassa 072e963fa0 Add SO3 transmission and native orientation actuator.
https://youtu.be/17XpwnqyCXs

New transmission type mjTRN_SO3: a relative orientation, targeting a ball
joint or a site+refsite pair. It is the first transmission with more than
one force output: its length is the norm of the expmap vector of the
relative rotation and its moment axes are the 3 rows of the
relative rotational Jacobian, without projecting onto per-actuator gears.

New force law mjGAIN_SO3/mjBIAS_SO3: a geodesic PD servo, force =
kp * log(q_current^-1 * q_target) - kv * velocity, exact for arbitrary axis
combinations with a unique equilibrium at every commanded orientation.
Error, moment rows and velocity all live in the child frame (joint or
site): the right-difference error is the gradient of the geodesic
potential in that frame. The parent-frame (left) error is not: driving
child-frame torques with it pumps energy at large angles, settling into
steady-spinning limit cycles (the SO3LargeAngleConvergence test). The
integrator variant stores the 3D orientation setpoint in act (actnum = 3,
re-anchored to a bounded representative at integration time). Exposed in
MJCF as <orientation joint=|site=+refsite= kp kv|dampratio>, or via
<general gaintype="so3" biastype="so3">.

The setpoint input has two charts: an expmap target (3 controls, default)
or a quaternion target (4 controls) -- <orientation input="quat">, the
first actuator with different input and output widths. The signature is
recorded in a new per-actuator field actuator_ctrlspec (mjtCtrlChart),
whose meaning is scoped by the gain type the way gain/bias parameters are;
ctrlnum is derived from it at compile time and remains the layout
authority. An explicit field rather than width inference or a prm slot:
width-as-chart cannot express same-width signatures (upcoming servo input
subsets), and prm slots are the input_mode pattern this stack retires.
The force law normalizes the commanded quaternion, making it scale- and
antipodally-invariant. The all-zero ctrl still maps to the identity via
mju_normalize4, but it is a degenerate point (a nudge of any component
commands a half-turn), so quat inputs reset to the identity quaternion:
new mj_resetCtrl sets neutral ctrl values (zero, except qw = 1), called
by mj_resetData and the viewers' Clear All. The quat chart is
restricted to dyntype 'none': integrating a quaternion setpoint linearly
is not meaningful on the manifold. New mjsActuator.ctrlspec field carries
the signature through the spec and XML round-trip.

Actuator sensors (actuatorpos/vel/frc) now report one value per force
output; dim = 3 on an SO3 actuator.

As the first actuator with nu != nactuator, this commit also makes the
viewers multi-input aware: the control sliders in simulate and studio,
which indexed per-actuator arrays by control index (out of bounds on
this model class), are generated per control and labeled with the
actuator name plus an input suffix ("orient/qw"), via the new
introspection helper mj_actuatorInputName -- the single source of truth
for input names, extended by each new multi-input type (quaternion
components are w-first: qw, qx, qy, qz). Slider ranges now honor a
defined ctrlrange even when ctrllimited is false: range is the UI hint,
limited is the clamp -- wrapped and expmap setpoints are unbounded but
still want finite sliders, while quat components are truly bounded.

The rotational demo model is orientation.xml under
test/engine/testdata/actuation/, upgraded to a three-way contrast:
per-axis wrapped servos vs an expmap-commanded vs a quat-commanded
orientation actuator, on identical checker-textured boxes. It is loaded
by the mixed-axis contrast and input-name tests, and doubles as the
viewer test model (slider groups of 3 independent, 3 grouped, 4 grouped).

PiperOrigin-RevId: 951607063
Change-Id: If235dba8e2f2ca72672e7c62531a27e967c6a373
2026-07-21 11:36:13 -07:00

1114 lines
32 KiB
Python

# Copyright 2022 DeepMind Technologies Limited
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ==============================================================================
"""Provides information about MuJoCo API enums.
DO NOT EDIT. THIS FILE IS AUTOMATICALLY GENERATED.
"""
from typing import Mapping
from .ast_nodes import EnumDecl
ENUMS: Mapping[str, EnumDecl] = dict([
('mjtDisableBit',
EnumDecl(
name='mjtDisableBit',
declname='enum mjtDisableBit',
values=dict([
('mjDSBL_CONSTRAINT', 1),
('mjDSBL_EQUALITY', 2),
('mjDSBL_FRICTIONLOSS', 4),
('mjDSBL_LIMIT', 8),
('mjDSBL_CONTACT', 16),
('mjDSBL_SPRING', 32),
('mjDSBL_DAMPER', 64),
('mjDSBL_GRAVITY', 128),
('mjDSBL_CLAMPCTRL', 256),
('mjDSBL_WARMSTART', 512),
('mjDSBL_FILTERPARENT', 1024),
('mjDSBL_ACTUATION', 2048),
('mjDSBL_REFSAFE', 4096),
('mjDSBL_SENSOR', 8192),
('mjDSBL_MIDPHASE', 16384),
('mjDSBL_EULERDAMP', 32768),
('mjDSBL_AUTORESET', 65536),
('mjDSBL_NATIVECCD', 131072),
('mjDSBL_ISLAND', 262144),
('mjDSBL_MULTICCD', 524288),
('mjNDISABLE', 20),
]),
)),
('mjtEnableBit',
EnumDecl(
name='mjtEnableBit',
declname='enum mjtEnableBit',
values=dict([
('mjENBL_OVERRIDE', 1),
('mjENBL_ENERGY', 2),
('mjENBL_FWDINV', 4),
('mjENBL_INVDISCRETE', 8),
('mjENBL_SLEEP', 16),
('mjENBL_DIAGEXACT', 32),
('mjNENABLE', 6),
]),
)),
('mjtJoint',
EnumDecl(
name='mjtJoint',
declname='enum mjtJoint',
values=dict([
('mjJNT_FREE', 0),
('mjJNT_BALL', 1),
('mjJNT_SLIDE', 2),
('mjJNT_HINGE', 3),
]),
)),
('mjtGeom',
EnumDecl(
name='mjtGeom',
declname='enum mjtGeom',
values=dict([
('mjGEOM_PLANE', 0),
('mjGEOM_HFIELD', 1),
('mjGEOM_SPHERE', 2),
('mjGEOM_CAPSULE', 3),
('mjGEOM_ELLIPSOID', 4),
('mjGEOM_CYLINDER', 5),
('mjGEOM_BOX', 6),
('mjGEOM_MESH', 7),
('mjGEOM_SDF', 8),
('mjNGEOMTYPES', 9),
('mjGEOM_ARROW', 100),
('mjGEOM_ARROW1', 101),
('mjGEOM_ARROW2', 102),
('mjGEOM_LINE', 103),
('mjGEOM_LINEBOX', 104),
('mjGEOM_FLEX', 105),
('mjGEOM_SKIN', 106),
('mjGEOM_LABEL', 107),
('mjGEOM_TRIANGLE', 108),
('mjGEOM_NONE', 1001),
]),
)),
('mjtProjection',
EnumDecl(
name='mjtProjection',
declname='enum mjtProjection',
values=dict([
('mjPROJ_PERSPECTIVE', 0),
('mjPROJ_ORTHOGRAPHIC', 1),
]),
)),
('mjtCamLight',
EnumDecl(
name='mjtCamLight',
declname='enum mjtCamLight',
values=dict([
('mjCAMLIGHT_FIXED', 0),
('mjCAMLIGHT_TRACK', 1),
('mjCAMLIGHT_TRACKCOM', 2),
('mjCAMLIGHT_TARGETBODY', 3),
('mjCAMLIGHT_TARGETBODYCOM', 4),
]),
)),
('mjtLightType',
EnumDecl(
name='mjtLightType',
declname='enum mjtLightType',
values=dict([
('mjLIGHT_SPOT', 0),
('mjLIGHT_DIRECTIONAL', 1),
('mjLIGHT_POINT', 2),
('mjLIGHT_IMAGE', 3),
]),
)),
('mjtTexture',
EnumDecl(
name='mjtTexture',
declname='enum mjtTexture',
values=dict([
('mjTEXTURE_2D', 0),
('mjTEXTURE_CUBE', 1),
('mjTEXTURE_SKYBOX', 2),
]),
)),
('mjtTextureRole',
EnumDecl(
name='mjtTextureRole',
declname='enum mjtTextureRole',
values=dict([
('mjTEXROLE_USER', 0),
('mjTEXROLE_RGB', 1),
('mjTEXROLE_OCCLUSION', 2),
('mjTEXROLE_ROUGHNESS', 3),
('mjTEXROLE_METALLIC', 4),
('mjTEXROLE_NORMAL', 5),
('mjTEXROLE_OPACITY', 6),
('mjTEXROLE_EMISSIVE', 7),
('mjTEXROLE_RGBA', 8),
('mjTEXROLE_ORM', 9),
('mjNTEXROLE', 10),
]),
)),
('mjtColorSpace',
EnumDecl(
name='mjtColorSpace',
declname='enum mjtColorSpace',
values=dict([
('mjCOLORSPACE_AUTO', 0),
('mjCOLORSPACE_LINEAR', 1),
('mjCOLORSPACE_SRGB', 2),
]),
)),
('mjtIntegrator',
EnumDecl(
name='mjtIntegrator',
declname='enum mjtIntegrator',
values=dict([
('mjINT_EULER', 0),
('mjINT_RK4', 1),
('mjINT_IMPLICIT', 2),
('mjINT_IMPLICITFAST', 3),
]),
)),
('mjtCone',
EnumDecl(
name='mjtCone',
declname='enum mjtCone',
values=dict([
('mjCONE_PYRAMIDAL', 0),
('mjCONE_ELLIPTIC', 1),
]),
)),
('mjtJacobian',
EnumDecl(
name='mjtJacobian',
declname='enum mjtJacobian',
values=dict([
('mjJAC_DENSE', 0),
('mjJAC_SPARSE', 1),
('mjJAC_AUTO', 2),
]),
)),
('mjtSolver',
EnumDecl(
name='mjtSolver',
declname='enum mjtSolver',
values=dict([
('mjSOL_PGS', 0),
('mjSOL_CG', 1),
('mjSOL_NEWTON', 2),
]),
)),
('mjtEq',
EnumDecl(
name='mjtEq',
declname='enum mjtEq',
values=dict([
('mjEQ_CONNECT', 0),
('mjEQ_WELD', 1),
('mjEQ_JOINT', 2),
('mjEQ_TENDON', 3),
('mjEQ_FLEX', 4),
('mjEQ_FLEXVERT', 5),
('mjEQ_FLEXSTRAIN', 6),
('mjEQ_DISTANCE', 7),
]),
)),
('mjtWrap',
EnumDecl(
name='mjtWrap',
declname='enum mjtWrap',
values=dict([
('mjWRAP_NONE', 0),
('mjWRAP_JOINT', 1),
('mjWRAP_PULLEY', 2),
('mjWRAP_SITE', 3),
('mjWRAP_SPHERE', 4),
('mjWRAP_CYLINDER', 5),
]),
)),
('mjtTrn',
EnumDecl(
name='mjtTrn',
declname='enum mjtTrn',
values=dict([
('mjTRN_JOINT', 0),
('mjTRN_JOINTINPARENT', 1),
('mjTRN_SLIDERCRANK', 2),
('mjTRN_TENDON', 3),
('mjTRN_SITE', 4),
('mjTRN_BODY', 5),
('mjTRN_SO3', 6),
('mjTRN_UNDEFINED', 1000),
]),
)),
('mjtDyn',
EnumDecl(
name='mjtDyn',
declname='enum mjtDyn',
values=dict([
('mjDYN_NONE', 0),
('mjDYN_INTEGRATOR', 1),
('mjDYN_FILTER', 2),
('mjDYN_FILTEREXACT', 3),
('mjDYN_MUSCLE', 4),
('mjDYN_DCMOTOR', 5),
('mjDYN_USER', 6),
]),
)),
('mjtGain',
EnumDecl(
name='mjtGain',
declname='enum mjtGain',
values=dict([
('mjGAIN_FIXED', 0),
('mjGAIN_AFFINE', 1),
('mjGAIN_MUSCLE', 2),
('mjGAIN_DCMOTOR', 3),
('mjGAIN_SO3', 4),
('mjGAIN_USER', 5),
]),
)),
('mjtBias',
EnumDecl(
name='mjtBias',
declname='enum mjtBias',
values=dict([
('mjBIAS_NONE', 0),
('mjBIAS_AFFINE', 1),
('mjBIAS_MUSCLE', 2),
('mjBIAS_DCMOTOR', 3),
('mjBIAS_SO3', 4),
('mjBIAS_USER', 5),
]),
)),
('mjtCtrlChart',
EnumDecl(
name='mjtCtrlChart',
declname='enum mjtCtrlChart',
values=dict([
('mjCHART_EXPMAP', 1),
('mjCHART_QUAT', 2),
]),
)),
('mjtObj',
EnumDecl(
name='mjtObj',
declname='enum mjtObj',
values=dict([
('mjOBJ_UNKNOWN', 0),
('mjOBJ_BODY', 1),
('mjOBJ_XBODY', 2),
('mjOBJ_JOINT', 3),
('mjOBJ_DOF', 4),
('mjOBJ_GEOM', 5),
('mjOBJ_SITE', 6),
('mjOBJ_CAMERA', 7),
('mjOBJ_LIGHT', 8),
('mjOBJ_FLEX', 9),
('mjOBJ_MESH', 10),
('mjOBJ_SKIN', 11),
('mjOBJ_HFIELD', 12),
('mjOBJ_TEXTURE', 13),
('mjOBJ_MATERIAL', 14),
('mjOBJ_PAIR', 15),
('mjOBJ_EXCLUDE', 16),
('mjOBJ_EQUALITY', 17),
('mjOBJ_TENDON', 18),
('mjOBJ_ACTUATOR', 19),
('mjOBJ_SENSOR', 20),
('mjOBJ_NUMERIC', 21),
('mjOBJ_TEXT', 22),
('mjOBJ_TUPLE', 23),
('mjOBJ_KEY', 24),
('mjOBJ_PLUGIN', 25),
('mjNOBJECT', 26),
('mjOBJ_FRAME', 100),
('mjOBJ_DEFAULT', 101),
('mjOBJ_MODEL', 102),
]),
)),
('mjtSensor',
EnumDecl(
name='mjtSensor',
declname='enum mjtSensor',
values=dict([
('mjSENS_TOUCH', 0),
('mjSENS_ACCELEROMETER', 1),
('mjSENS_VELOCIMETER', 2),
('mjSENS_GYRO', 3),
('mjSENS_FORCE', 4),
('mjSENS_TORQUE', 5),
('mjSENS_MAGNETOMETER', 6),
('mjSENS_RANGEFINDER', 7),
('mjSENS_CAMPROJECTION', 8),
('mjSENS_JOINTPOS', 9),
('mjSENS_JOINTVEL', 10),
('mjSENS_TENDONPOS', 11),
('mjSENS_TENDONVEL', 12),
('mjSENS_ACTUATORPOS', 13),
('mjSENS_ACTUATORVEL', 14),
('mjSENS_ACTUATORFRC', 15),
('mjSENS_JOINTACTFRC', 16),
('mjSENS_TENDONACTFRC', 17),
('mjSENS_BALLQUAT', 18),
('mjSENS_BALLANGVEL', 19),
('mjSENS_JOINTLIMITPOS', 20),
('mjSENS_JOINTLIMITVEL', 21),
('mjSENS_JOINTLIMITFRC', 22),
('mjSENS_TENDONLIMITPOS', 23),
('mjSENS_TENDONLIMITVEL', 24),
('mjSENS_TENDONLIMITFRC', 25),
('mjSENS_FRAMEPOS', 26),
('mjSENS_FRAMEQUAT', 27),
('mjSENS_FRAMEXAXIS', 28),
('mjSENS_FRAMEYAXIS', 29),
('mjSENS_FRAMEZAXIS', 30),
('mjSENS_FRAMELINVEL', 31),
('mjSENS_FRAMEANGVEL', 32),
('mjSENS_FRAMELINACC', 33),
('mjSENS_FRAMEANGACC', 34),
('mjSENS_SUBTREECOM', 35),
('mjSENS_SUBTREELINVEL', 36),
('mjSENS_SUBTREEANGMOM', 37),
('mjSENS_INSIDESITE', 38),
('mjSENS_GEOMDIST', 39),
('mjSENS_GEOMNORMAL', 40),
('mjSENS_GEOMFROMTO', 41),
('mjSENS_CONTACT', 42),
('mjSENS_E_POTENTIAL', 43),
('mjSENS_E_KINETIC', 44),
('mjSENS_CLOCK', 45),
('mjSENS_TACTILE', 46),
('mjSENS_PLUGIN', 47),
('mjSENS_USER', 48),
]),
)),
('mjtStage',
EnumDecl(
name='mjtStage',
declname='enum mjtStage',
values=dict([
('mjSTAGE_NONE', 0),
('mjSTAGE_POS', 1),
('mjSTAGE_VEL', 2),
('mjSTAGE_ACC', 3),
]),
)),
('mjtDataType',
EnumDecl(
name='mjtDataType',
declname='enum mjtDataType',
values=dict([
('mjDATATYPE_REAL', 0),
('mjDATATYPE_POSITIVE', 1),
('mjDATATYPE_AXIS', 2),
('mjDATATYPE_QUATERNION', 3),
]),
)),
('mjtConDataField',
EnumDecl(
name='mjtConDataField',
declname='enum mjtConDataField',
values=dict([
('mjCONDATA_FOUND', 0),
('mjCONDATA_FORCE', 1),
('mjCONDATA_TORQUE', 2),
('mjCONDATA_DIST', 3),
('mjCONDATA_POS', 4),
('mjCONDATA_NORMAL', 5),
('mjCONDATA_TANGENT', 6),
('mjNCONDATA', 7),
]),
)),
('mjtRayDataField',
EnumDecl(
name='mjtRayDataField',
declname='enum mjtRayDataField',
values=dict([
('mjRAYDATA_DIST', 0),
('mjRAYDATA_DIR', 1),
('mjRAYDATA_ORIGIN', 2),
('mjRAYDATA_POINT', 3),
('mjRAYDATA_NORMAL', 4),
('mjRAYDATA_DEPTH', 5),
('mjNRAYDATA', 6),
]),
)),
('mjtCamOutBit',
EnumDecl(
name='mjtCamOutBit',
declname='enum mjtCamOutBit',
values=dict([
('mjCAMOUT_RGB', 1),
('mjCAMOUT_DEPTH', 2),
('mjCAMOUT_DIST', 4),
('mjCAMOUT_NORMAL', 8),
('mjCAMOUT_SEG', 16),
('mjNCAMOUT', 5),
]),
)),
('mjtSameFrame',
EnumDecl(
name='mjtSameFrame',
declname='enum mjtSameFrame',
values=dict([
('mjSAMEFRAME_NONE', 0),
('mjSAMEFRAME_BODY', 1),
('mjSAMEFRAME_INERTIA', 2),
('mjSAMEFRAME_BODYROT', 3),
('mjSAMEFRAME_INERTIAROT', 4),
]),
)),
('mjtSleepPolicy',
EnumDecl(
name='mjtSleepPolicy',
declname='enum mjtSleepPolicy',
values=dict([
('mjSLEEP_AUTO', 0),
('mjSLEEP_AUTO_NEVER', 1),
('mjSLEEP_AUTO_ALLOWED', 2),
('mjSLEEP_NEVER', 3),
('mjSLEEP_ALLOWED', 4),
('mjSLEEP_INIT', 5),
]),
)),
('mjtLRMode',
EnumDecl(
name='mjtLRMode',
declname='enum mjtLRMode',
values=dict([
('mjLRMODE_NONE', 0),
('mjLRMODE_MUSCLE', 1),
('mjLRMODE_MUSCLEUSER', 2),
('mjLRMODE_ALL', 3),
]),
)),
('mjtFlexSelf',
EnumDecl(
name='mjtFlexSelf',
declname='enum mjtFlexSelf',
values=dict([
('mjFLEXSELF_NONE', 0),
('mjFLEXSELF_NARROW', 1),
('mjFLEXSELF_BVH', 2),
('mjFLEXSELF_SAP', 3),
('mjFLEXSELF_AUTO', 4),
]),
)),
('mjtSDFType',
EnumDecl(
name='mjtSDFType',
declname='enum mjtSDFType',
values=dict([
('mjSDFTYPE_SINGLE', 0),
('mjSDFTYPE_INTERSECTION', 1),
('mjSDFTYPE_MIDSURFACE', 2),
('mjSDFTYPE_COLLISION', 3),
]),
)),
('mjtState',
EnumDecl(
name='mjtState',
declname='enum mjtState',
values=dict([
('mjSTATE_TIME', 1),
('mjSTATE_QPOS', 2),
('mjSTATE_QVEL', 4),
('mjSTATE_ACT', 8),
('mjSTATE_HISTORY', 16),
('mjSTATE_WARMSTART', 32),
('mjSTATE_CTRL', 64),
('mjSTATE_QFRC_APPLIED', 128),
('mjSTATE_XFRC_APPLIED', 256),
('mjSTATE_EQ_ACTIVE', 512),
('mjSTATE_MOCAP_POS', 1024),
('mjSTATE_MOCAP_QUAT', 2048),
('mjSTATE_USERDATA', 4096),
('mjSTATE_PLUGIN', 8192),
('mjNSTATE', 14),
('mjSTATE_PHYSICS', 30),
('mjSTATE_FULLPHYSICS', 8223),
('mjSTATE_USER', 8128),
('mjSTATE_INTEGRATION', 16383),
]),
)),
('mjtConstraint',
EnumDecl(
name='mjtConstraint',
declname='enum mjtConstraint',
values=dict([
('mjCNSTR_EQUALITY', 0),
('mjCNSTR_FRICTION_DOF', 1),
('mjCNSTR_FRICTION_TENDON', 2),
('mjCNSTR_LIMIT_JOINT', 3),
('mjCNSTR_LIMIT_TENDON', 4),
('mjCNSTR_CONTACT_FRICTIONLESS', 5),
('mjCNSTR_CONTACT_PYRAMIDAL', 6),
('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),
]),
)),
('mjtWarning',
EnumDecl(
name='mjtWarning',
declname='enum mjtWarning',
values=dict([
('mjWARN_INERTIA', 0),
('mjWARN_CONTACTFULL', 1),
('mjWARN_CNSTRFULL', 2),
('mjWARN_BADQPOS', 3),
('mjWARN_BADQVEL', 4),
('mjWARN_BADQACC', 5),
('mjWARN_BADCTRL', 6),
('mjNWARNING', 7),
]),
)),
('mjtTimer',
EnumDecl(
name='mjtTimer',
declname='enum mjtTimer',
values=dict([
('mjTIMER_STEP', 0),
('mjTIMER_FORWARD', 1),
('mjTIMER_INVERSE', 2),
('mjTIMER_POSITION', 3),
('mjTIMER_VELOCITY', 4),
('mjTIMER_ACTUATION', 5),
('mjTIMER_CONSTRAINT', 6),
('mjTIMER_ADVANCE', 7),
('mjTIMER_POS_KINEMATICS', 8),
('mjTIMER_POS_INERTIA', 9),
('mjTIMER_POS_COLLISION', 10),
('mjTIMER_POS_MAKE', 11),
('mjTIMER_POS_PROJECT', 12),
('mjTIMER_COL_BROAD', 13),
('mjTIMER_COL_NARROW', 14),
('mjNTIMER', 15),
]),
)),
('mjtSleepState',
EnumDecl(
name='mjtSleepState',
declname='enum mjtSleepState',
values=dict([
('mjS_STATIC', -1),
('mjS_ASLEEP', 0),
('mjS_AWAKE', 1),
]),
)),
('mjtLogLevel',
EnumDecl(
name='mjtLogLevel',
declname='enum mjtLogLevel',
values=dict([
('mjLOG_DEBUG', 0),
('mjLOG_INFO', 1),
('mjLOG_WARNING', 2),
('mjLOG_ERROR', 3),
]),
)),
('mjtLogTopic',
EnumDecl(
name='mjtLogTopic',
declname='enum mjtLogTopic',
values=dict([
('mjTOPIC_NONE', 0),
('mjTOPIC_TIME_STP', 1),
('mjTOPIC_TIME_CMP', 2),
('mjTOPIC_SLEEP', 3),
('mjNTOPIC', 3),
]),
)),
('mjtGeomInertia',
EnumDecl(
name='mjtGeomInertia',
declname='enum mjtGeomInertia',
values=dict([
('mjINERTIA_VOLUME', 0),
('mjINERTIA_SHELL', 1),
]),
)),
('mjtMeshInertia',
EnumDecl(
name='mjtMeshInertia',
declname='enum mjtMeshInertia',
values=dict([
('mjMESH_INERTIA_CONVEX', 0),
('mjMESH_INERTIA_EXACT', 1),
('mjMESH_INERTIA_LEGACY', 2),
('mjMESH_INERTIA_SHELL', 3),
]),
)),
('mjtMeshBuiltin',
EnumDecl(
name='mjtMeshBuiltin',
declname='enum mjtMeshBuiltin',
values=dict([
('mjMESH_BUILTIN_NONE', 0),
('mjMESH_BUILTIN_SPHERE', 1),
('mjMESH_BUILTIN_HEMISPHERE', 2),
('mjMESH_BUILTIN_CONE', 3),
('mjMESH_BUILTIN_SUPERSPHERE', 4),
('mjMESH_BUILTIN_SUPERTORUS', 5),
('mjMESH_BUILTIN_WEDGE', 6),
('mjMESH_BUILTIN_PLATE', 7),
]),
)),
('mjtBuiltin',
EnumDecl(
name='mjtBuiltin',
declname='enum mjtBuiltin',
values=dict([
('mjBUILTIN_NONE', 0),
('mjBUILTIN_GRADIENT', 1),
('mjBUILTIN_CHECKER', 2),
('mjBUILTIN_FLAT', 3),
]),
)),
('mjtMark',
EnumDecl(
name='mjtMark',
declname='enum mjtMark',
values=dict([
('mjMARK_NONE', 0),
('mjMARK_EDGE', 1),
('mjMARK_CROSS', 2),
('mjMARK_RANDOM', 3),
]),
)),
('mjtLimited',
EnumDecl(
name='mjtLimited',
declname='enum mjtLimited',
values=dict([
('mjLIMITED_FALSE', 0),
('mjLIMITED_TRUE', 1),
('mjLIMITED_AUTO', 2),
]),
)),
('mjtAlignFree',
EnumDecl(
name='mjtAlignFree',
declname='enum mjtAlignFree',
values=dict([
('mjALIGNFREE_FALSE', 0),
('mjALIGNFREE_TRUE', 1),
('mjALIGNFREE_AUTO', 2),
]),
)),
('mjtInertiaFromGeom',
EnumDecl(
name='mjtInertiaFromGeom',
declname='enum mjtInertiaFromGeom',
values=dict([
('mjINERTIAFROMGEOM_FALSE', 0),
('mjINERTIAFROMGEOM_TRUE', 1),
('mjINERTIAFROMGEOM_AUTO', 2),
]),
)),
('mjtOrientation',
EnumDecl(
name='mjtOrientation',
declname='enum mjtOrientation',
values=dict([
('mjORIENTATION_QUAT', 0),
('mjORIENTATION_AXISANGLE', 1),
('mjORIENTATION_XYAXES', 2),
('mjORIENTATION_ZAXIS', 3),
('mjORIENTATION_EULER', 4),
]),
)),
('mjtConflict',
EnumDecl(
name='mjtConflict',
declname='enum mjtConflict',
values=dict([
('mjCONFLICT_WARNING', 0),
('mjCONFLICT_MERGE', 1),
('mjCONFLICT_ERROR', 2),
]),
)),
('mjtCTimer',
EnumDecl(
name='mjtCTimer',
declname='enum mjtCTimer',
values=dict([
('mjCTIMER_TOTAL', 0),
('mjCTIMER_ASSETS', 1),
('mjCTIMER_TEXTURE', 2),
('mjCTIMER_MESH_LOAD', 3),
('mjCTIMER_MESH_HULL', 4),
('mjCTIMER_MESH_POLYGON', 5),
('mjCTIMER_MESH_INERTIA', 6),
('mjCTIMER_MESH_BVH', 7),
('mjCTIMER_MESH_OCTREE', 8),
('mjNCTIMER', 9),
]),
)),
('mjtCatBit',
EnumDecl(
name='mjtCatBit',
declname='enum mjtCatBit_',
values=dict([
('mjCAT_STATIC', 1),
('mjCAT_DYNAMIC', 2),
('mjCAT_DECOR', 4),
('mjCAT_ALL', 7),
]),
)),
('mjtMouse',
EnumDecl(
name='mjtMouse',
declname='enum mjtMouse_',
values=dict([
('mjMOUSE_NONE', 0),
('mjMOUSE_ROTATE_V', 1),
('mjMOUSE_ROTATE_H', 2),
('mjMOUSE_MOVE_V', 3),
('mjMOUSE_MOVE_H', 4),
('mjMOUSE_ZOOM', 5),
('mjMOUSE_MOVE_V_REL', 6),
('mjMOUSE_MOVE_H_REL', 7),
('mjMOUSE_TURN_V', 8),
('mjMOUSE_TURN_H', 9),
]),
)),
('mjtPertBit',
EnumDecl(
name='mjtPertBit',
declname='enum mjtPertBit_',
values=dict([
('mjPERT_TRANSLATE', 1),
('mjPERT_ROTATE', 2),
]),
)),
('mjtCamera',
EnumDecl(
name='mjtCamera',
declname='enum mjtCamera_',
values=dict([
('mjCAMERA_FREE', 0),
('mjCAMERA_TRACKING', 1),
('mjCAMERA_FIXED', 2),
('mjCAMERA_USER', 3),
]),
)),
('mjtLabel',
EnumDecl(
name='mjtLabel',
declname='enum mjtLabel_',
values=dict([
('mjLABEL_NONE', 0),
('mjLABEL_BODY', 1),
('mjLABEL_JOINT', 2),
('mjLABEL_GEOM', 3),
('mjLABEL_SITE', 4),
('mjLABEL_CAMERA', 5),
('mjLABEL_LIGHT', 6),
('mjLABEL_TENDON', 7),
('mjLABEL_ACTUATOR', 8),
('mjLABEL_CONSTRAINT', 9),
('mjLABEL_FLEX', 10),
('mjLABEL_SKIN', 11),
('mjLABEL_SELECTION', 12),
('mjLABEL_SELPNT', 13),
('mjLABEL_CONTACTPOINT', 14),
('mjLABEL_CONTACTFORCE', 15),
('mjLABEL_ISLAND', 16),
('mjNLABEL', 17),
]),
)),
('mjtFrame',
EnumDecl(
name='mjtFrame',
declname='enum mjtFrame_',
values=dict([
('mjFRAME_NONE', 0),
('mjFRAME_BODY', 1),
('mjFRAME_GEOM', 2),
('mjFRAME_SITE', 3),
('mjFRAME_CAMERA', 4),
('mjFRAME_LIGHT', 5),
('mjFRAME_CONTACT', 6),
('mjFRAME_WORLD', 7),
('mjNFRAME', 8),
]),
)),
('mjtVisFlag',
EnumDecl(
name='mjtVisFlag',
declname='enum mjtVisFlag_',
values=dict([
('mjVIS_CONVEXHULL', 0),
('mjVIS_TEXTURE', 1),
('mjVIS_JOINT', 2),
('mjVIS_CAMERA', 3),
('mjVIS_ACTUATOR', 4),
('mjVIS_ACTIVATION', 5),
('mjVIS_LIGHT', 6),
('mjVIS_TENDON', 7),
('mjVIS_RANGEFINDER', 8),
('mjVIS_CONSTRAINT', 9),
('mjVIS_INERTIA', 10),
('mjVIS_SCLINERTIA', 11),
('mjVIS_PERTFORCE', 12),
('mjVIS_PERTOBJ', 13),
('mjVIS_CONTACTPOINT', 14),
('mjVIS_ISLAND', 15),
('mjVIS_CONTACTFORCE', 16),
('mjVIS_CONTACTSPLIT', 17),
('mjVIS_TRANSPARENT', 18),
('mjVIS_AUTOCONNECT', 19),
('mjVIS_COM', 20),
('mjVIS_SELECT', 21),
('mjVIS_STATIC', 22),
('mjVIS_SKIN', 23),
('mjVIS_FLEXVERT', 24),
('mjVIS_FLEXEDGE', 25),
('mjVIS_FLEXFACE', 26),
('mjVIS_FLEXSKIN', 27),
('mjVIS_BODYBVH', 28),
('mjVIS_MESHBVH', 29),
('mjVIS_SDFITER', 30),
('mjNVISFLAG', 31),
]),
)),
('mjtRndFlag',
EnumDecl(
name='mjtRndFlag',
declname='enum mjtRndFlag_',
values=dict([
('mjRND_SHADOW', 0),
('mjRND_WIREFRAME', 1),
('mjRND_REFLECTION', 2),
('mjRND_ADDITIVE', 3),
('mjRND_SKYBOX', 4),
('mjRND_FOG', 5),
('mjRND_HAZE', 6),
('mjRND_DEPTH', 7),
('mjRND_SEGMENT', 8),
('mjRND_IDCOLOR', 9),
('mjRND_CULL_FACE', 10),
('mjNRNDFLAG', 11),
]),
)),
('mjtStereo',
EnumDecl(
name='mjtStereo',
declname='enum mjtStereo_',
values=dict([
('mjSTEREO_NONE', 0),
('mjSTEREO_QUADBUFFERED', 1),
('mjSTEREO_SIDEBYSIDE', 2),
]),
)),
('mjtPluginCapabilityBit',
EnumDecl(
name='mjtPluginCapabilityBit',
declname='enum mjtPluginCapabilityBit_',
values=dict([
('mjPLUGIN_ACTUATOR', 1),
('mjPLUGIN_SENSOR', 2),
('mjPLUGIN_PASSIVE', 4),
('mjPLUGIN_SDF', 8),
]),
)),
('mjtGridPos',
EnumDecl(
name='mjtGridPos',
declname='enum mjtGridPos_',
values=dict([
('mjGRID_TOPLEFT', 0),
('mjGRID_TOPRIGHT', 1),
('mjGRID_BOTTOMLEFT', 2),
('mjGRID_BOTTOMRIGHT', 3),
('mjGRID_TOP', 4),
('mjGRID_BOTTOM', 5),
('mjGRID_LEFT', 6),
('mjGRID_RIGHT', 7),
]),
)),
('mjtFramebuffer',
EnumDecl(
name='mjtFramebuffer',
declname='enum mjtFramebuffer_',
values=dict([
('mjFB_WINDOW', 0),
('mjFB_OFFSCREEN', 1),
]),
)),
('mjtDepthMap',
EnumDecl(
name='mjtDepthMap',
declname='enum mjtDepthMap_',
values=dict([
('mjDEPTH_ZERONEAR', 0),
('mjDEPTH_ZEROFAR', 1),
]),
)),
('mjtFontScale',
EnumDecl(
name='mjtFontScale',
declname='enum mjtFontScale_',
values=dict([
('mjFONTSCALE_50', 50),
('mjFONTSCALE_100', 100),
('mjFONTSCALE_150', 150),
('mjFONTSCALE_200', 200),
('mjFONTSCALE_250', 250),
('mjFONTSCALE_300', 300),
]),
)),
('mjtFont',
EnumDecl(
name='mjtFont',
declname='enum mjtFont_',
values=dict([
('mjFONT_NORMAL', 0),
('mjFONT_SHADOW', 1),
('mjFONT_BIG', 2),
]),
)),
('mjrPixelFormat',
EnumDecl(
name='mjrPixelFormat',
declname='enum mjrPixelFormat_',
values=dict([
('mjPIXEL_FORMAT_UNKNOWN', 0),
('mjPIXEL_FORMAT_R8', 1),
('mjPIXEL_FORMAT_RGB8', 2),
('mjPIXEL_FORMAT_RGBA8', 3),
('mjPIXEL_FORMAT_R32F', 4),
('mjPIXEL_FORMAT_DEPTH32F', 5),
('mjPIXEL_FORMAT_KTX', 6),
]),
)),
('mjrVertexAttributeUsage',
EnumDecl(
name='mjrVertexAttributeUsage',
declname='enum mjrVertexAttributeUsage_',
values=dict([
('mjVERTEX_ATTRIBUTE_USAGE_POSITION', 0),
('mjVERTEX_ATTRIBUTE_USAGE_NORMAL', 1),
('mjVERTEX_ATTRIBUTE_USAGE_TANGENTS', 2),
('mjVERTEX_ATTRIBUTE_USAGE_UV', 3),
('mjVERTEX_ATTRIBUTE_USAGE_COLOR', 4),
]),
)),
('mjrVertexAttributeType',
EnumDecl(
name='mjrVertexAttributeType',
declname='enum mjrVertexAttributeType_',
values=dict([
('mjVERTEX_ATTRIBUTE_TYPE_FLOAT2', 0),
('mjVERTEX_ATTRIBUTE_TYPE_FLOAT3', 1),
('mjVERTEX_ATTRIBUTE_TYPE_FLOAT4', 2),
('mjVERTEX_ATTRIBUTE_TYPE_UBYTE4', 3),
]),
)),
('mjrIndexType',
EnumDecl(
name='mjrIndexType',
declname='enum mjrIndexType_',
values=dict([
('mjINDEX_TYPE_U16', 0),
('mjINDEX_TYPE_U32', 1),
]),
)),
('mjrMeshPrimitiveType',
EnumDecl(
name='mjrMeshPrimitiveType',
declname='enum mjrMeshPrimitiveType_',
values=dict([
('mjMESH_PRIMITIVE_TYPE_TRIANGLES', 0),
('mjMESH_PRIMITIVE_TYPE_LINES', 1),
]),
)),
('mjtButton',
EnumDecl(
name='mjtButton',
declname='enum mjtButton',
values=dict([
('mjBUTTON_NONE', 0),
('mjBUTTON_LEFT', 1),
('mjBUTTON_RIGHT', 2),
('mjBUTTON_MIDDLE', 3),
]),
)),
('mjtEvent',
EnumDecl(
name='mjtEvent',
declname='enum mjtEvent',
values=dict([
('mjEVENT_NONE', 0),
('mjEVENT_MOVE', 1),
('mjEVENT_PRESS', 2),
('mjEVENT_RELEASE', 3),
('mjEVENT_SCROLL', 4),
('mjEVENT_KEY', 5),
('mjEVENT_RESIZE', 6),
('mjEVENT_REDRAW', 7),
('mjEVENT_FILESDROP', 8),
]),
)),
('mjtItem',
EnumDecl(
name='mjtItem',
declname='enum mjtItem',
values=dict([
('mjITEM_END', -2),
('mjITEM_SECTION', -1),
('mjITEM_SEPARATOR', 0),
('mjITEM_STATIC', 1),
('mjITEM_BUTTON', 2),
('mjITEM_CHECKINT', 3),
('mjITEM_CHECKBYTE', 4),
('mjITEM_RADIO', 5),
('mjITEM_RADIOLINE', 6),
('mjITEM_SELECT', 7),
('mjITEM_SLIDERINT', 8),
('mjITEM_SLIDERNUM', 9),
('mjITEM_EDITINT', 10),
('mjITEM_EDITNUM', 11),
('mjITEM_EDITFLOAT', 12),
('mjITEM_EDITTXT', 13),
('mjNITEM', 14),
]),
)),
('mjtSection',
EnumDecl(
name='mjtSection',
declname='enum mjtSection',
values=dict([
('mjSECT_CLOSED', 0),
('mjSECT_OPEN', 1),
('mjSECT_FIXED', 2),
]),
)),
])