# 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),
             ('mjNDISABLE', 19),
         ]),
     )),
    ('mjtEnableBit',
     EnumDecl(
         name='mjtEnableBit',
         declname='enum mjtEnableBit_',
         values=dict([
             ('mjENBL_OVERRIDE', 1),
             ('mjENBL_ENERGY', 2),
             ('mjENBL_FWDINV', 4),
             ('mjENBL_INVDISCRETE', 8),
             ('mjENBL_MULTICCD', 16),
             ('mjENBL_SLEEP', 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_DISTANCE', 6),
         ]),
     )),
    ('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_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_USER', 5),
         ]),
     )),
    ('mjtGain',
     EnumDecl(
         name='mjtGain',
         declname='enum mjtGain_',
         values=dict([
             ('mjGAIN_FIXED', 0),
             ('mjGAIN_AFFINE', 1),
             ('mjGAIN_MUSCLE', 2),
             ('mjGAIN_USER', 3),
         ]),
     )),
    ('mjtBias',
     EnumDecl(
         name='mjtBias',
         declname='enum mjtBias_',
         values=dict([
             ('mjBIAS_NONE', 0),
             ('mjBIAS_AFFINE', 1),
             ('mjBIAS_MUSCLE', 2),
             ('mjBIAS_USER', 3),
         ]),
     )),
    ('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),
         ]),
     )),
    ('mjtTaskStatus',
     EnumDecl(
         name='mjtTaskStatus',
         declname='enum mjtTaskStatus_',
         values=dict([
             ('mjTASK_NEW', 0),
             ('mjTASK_QUEUED', 1),
             ('mjTASK_COMPLETED', 2),
         ]),
     )),
    ('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_VGEOMFULL', 3),
             ('mjWARN_BADQPOS', 4),
             ('mjWARN_BADQVEL', 5),
             ('mjWARN_BADQACC', 6),
             ('mjWARN_BADCTRL', 7),
             ('mjNWARNING', 8),
         ]),
     )),
    ('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),
         ]),
     )),
    ('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),
         ]),
     )),
    ('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),
         ]),
     )),
    ('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),
         ]),
     )),
    ('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),
         ]),
     )),
])
