Files
Mujoco_WASM/python/mujoco/introspect/structs.py
T
Yuval Tassa 4787c8094c Add geom surfacevel: zero-dof conveyors, treadmills and turntables.
https://www.youtube.com/watch?v=PdSdrqhSiZA

The new geom attribute surfacevel (6 numbers: linear and angular velocity in the geom's local frame, angular about the geom frame origin) specifies the velocity of the geom's surface material relative to the geom frame. The relative surface velocity of the two geoms is added to the tangential contact rows of efc_vel in mj_referenceConstraint, so friction drives touching bodies toward the motion of the surface: objects on a conveyor are transported at belt speed, turntables impart omega x r with torsional spin-up for condim >= 4, and surface velocities compose with each other and with body motion. The component along the contact normal is projected out: probe experiments showed that velocity-space emission chatters mass-independently and ingestion merely deepens penetration; normal-direction effects belong to force-space features.

surfacevel is interpreted in the geom frame as authored: for mesh geoms, whose compiled frame absorbs the mesh centering and principal-axes transform, the compiler re-expresses the authored value in the compiled frame.

No special interaction with sleeping: objects being transported do not fall asleep because they are moving; objects at rest on an active surface may sleep like any other resting object.

Includes showcase models (model/surfacevel/): a luggage carousel whose ring is a spinning square-profile supertorus fed by a cascade of belts with matched spinning end rollers, bags dropping in and circulating indefinitely; and a treadmill with a passive humanoid.

PiperOrigin-RevId: 948647785
Change-Id: I0c6559a91cc7ece1237eb8ac2e51986e7342d962
2026-07-15 17:58:17 -07:00

12415 lines
432 KiB
Python

# Copyright 2023 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 structs.
DO NOT EDIT. THIS FILE IS AUTOMATICALLY GENERATED.
"""
from typing import Mapping
from .ast_nodes import AnonymousStructDecl
from .ast_nodes import AnonymousUnionDecl
from .ast_nodes import ArrayType
from .ast_nodes import PointerType
from .ast_nodes import StructDecl
from .ast_nodes import StructFieldDecl
from .ast_nodes import ValueType
STRUCTS: Mapping[str, StructDecl] = dict([
('mjLogMessage',
StructDecl(
name='mjLogMessage',
declname='struct mjLogMessage_',
fields=(
StructFieldDecl(
name='level',
type=ValueType(name='int'),
doc='mjtLogLevel',
),
StructFieldDecl(
name='topic',
type=ValueType(name='int'),
doc='mjtLogTopic (0 for error/warning/user)',
),
StructFieldDecl(
name='subject',
type=ArrayType(
inner_type=ValueType(name='char'),
extents=(1024,),
),
doc='message subject (one-liner, printf-formatted)',
),
StructFieldDecl(
name='body',
type=PointerType(
inner_type=ValueType(name='char', is_const=True),
),
doc='message body (multi-line detail, or NULL)',
),
StructFieldDecl(
name='func',
type=PointerType(
inner_type=ValueType(name='char', is_const=True),
),
doc='__func__ or NULL',
),
StructFieldDecl(
name='file',
type=PointerType(
inner_type=ValueType(name='char', is_const=True),
),
doc='__FILE__ or NULL',
),
StructFieldDecl(
name='line',
type=ValueType(name='int'),
doc='__LINE__ or 0',
),
StructFieldDecl(
name='timestamp',
type=ValueType(name='mjtBool'),
doc='prepend timestamp to output',
),
),
)),
('mjLogConfig',
StructDecl(
name='mjLogConfig',
declname='struct mjLogConfig_',
fields=(
StructFieldDecl(
name='logto_console',
type=ValueType(name='mjtBool'),
doc='print to console (default: true)',
),
StructFieldDecl(
name='logto_file',
type=ValueType(name='mjtBool'),
doc='print to log file (default: true)',
),
StructFieldDecl(
name='logfile',
type=ArrayType(
inner_type=ValueType(name='char'),
extents=(1024,),
),
doc='log file path (default: "MUJOCO_LOG.TXT")',
),
StructFieldDecl(
name='topics',
type=ValueType(name='int'),
doc='enabled info topic bitmask (default: 0)',
),
),
)),
('mjLROpt',
StructDecl(
name='mjLROpt',
declname='struct mjLROpt_',
fields=(
StructFieldDecl(
name='mode',
type=ValueType(name='int'),
doc='which actuators to process (mjtLRMode)',
),
StructFieldDecl(
name='useexisting',
type=ValueType(name='int'),
doc='use existing length range if available',
),
StructFieldDecl(
name='uselimit',
type=ValueType(name='int'),
doc='use joint and tendon limits if available',
),
StructFieldDecl(
name='accel',
type=ValueType(name='mjtNum'),
doc='target acceleration used to compute force',
),
StructFieldDecl(
name='maxforce',
type=ValueType(name='mjtNum'),
doc='maximum force; 0: no limit',
),
StructFieldDecl(
name='timeconst',
type=ValueType(name='mjtNum'),
doc='time constant for velocity reduction; min 0.01',
),
StructFieldDecl(
name='timestep',
type=ValueType(name='mjtNum'),
doc='simulation timestep; 0: use mjOption.timestep',
),
StructFieldDecl(
name='inttotal',
type=ValueType(name='mjtNum'),
doc='total simulation time interval',
),
StructFieldDecl(
name='interval',
type=ValueType(name='mjtNum'),
doc='evaluation time interval (at the end)',
),
StructFieldDecl(
name='tolrange',
type=ValueType(name='mjtNum'),
doc='convergence tolerance (relative to range)',
),
),
)),
('mjCache',
StructDecl(
name='mjCache',
declname='struct mjCache_',
fields=(
StructFieldDecl(
name='impl_',
type=PointerType(
inner_type=ValueType(name='void'),
),
doc='internal pointer to cache',
),
),
)),
('mjVFS',
StructDecl(
name='mjVFS',
declname='struct mjVFS_',
fields=(
StructFieldDecl(
name='impl_',
type=PointerType(
inner_type=ValueType(name='void'),
),
doc='internal pointer to VFS memory',
),
),
)),
('mjOption',
StructDecl(
name='mjOption',
declname='struct mjOption_',
fields=(
StructFieldDecl(
name='timestep',
type=ValueType(name='mjtNum'),
doc='timestep',
),
StructFieldDecl(
name='impratio',
type=ValueType(name='mjtNum'),
doc='ratio of friction-to-normal contact impedance',
),
StructFieldDecl(
name='tolerance',
type=ValueType(name='mjtNum'),
doc='main solver tolerance',
),
StructFieldDecl(
name='ls_tolerance',
type=ValueType(name='mjtNum'),
doc='CG/Newton linesearch tolerance',
),
StructFieldDecl(
name='noslip_tolerance',
type=ValueType(name='mjtNum'),
doc='noslip solver tolerance',
),
StructFieldDecl(
name='ccd_tolerance',
type=ValueType(name='mjtNum'),
doc='convex collision solver tolerance',
),
StructFieldDecl(
name='sleep_tolerance',
type=ValueType(name='mjtNum'),
doc='sleep velocity tolerance',
),
StructFieldDecl(
name='gravity',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(3,),
),
doc='gravitational acceleration',
),
StructFieldDecl(
name='wind',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(3,),
),
doc='wind (for lift, drag and viscosity)',
),
StructFieldDecl(
name='magnetic',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(3,),
),
doc='global magnetic flux',
),
StructFieldDecl(
name='density',
type=ValueType(name='mjtNum'),
doc='density of medium',
),
StructFieldDecl(
name='viscosity',
type=ValueType(name='mjtNum'),
doc='viscosity of medium',
),
StructFieldDecl(
name='o_margin',
type=ValueType(name='mjtNum'),
doc='margin',
),
StructFieldDecl(
name='o_solref',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(2,),
),
doc='solref',
),
StructFieldDecl(
name='o_solimp',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(5,),
),
doc='solimp',
),
StructFieldDecl(
name='o_friction',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(5,),
),
doc='friction',
),
StructFieldDecl(
name='integrator',
type=ValueType(name='int'),
doc='integration mode (mjtIntegrator)',
),
StructFieldDecl(
name='cone',
type=ValueType(name='int'),
doc='type of friction cone (mjtCone)',
),
StructFieldDecl(
name='jacobian',
type=ValueType(name='int'),
doc='type of Jacobian (mjtJacobian)',
),
StructFieldDecl(
name='solver',
type=ValueType(name='int'),
doc='solver algorithm (mjtSolver)',
),
StructFieldDecl(
name='iterations',
type=ValueType(name='int'),
doc='maximum number of main solver iterations',
),
StructFieldDecl(
name='ls_iterations',
type=ValueType(name='int'),
doc='maximum number of CG/Newton linesearch iterations',
),
StructFieldDecl(
name='noslip_iterations',
type=ValueType(name='int'),
doc='maximum number of noslip solver iterations',
),
StructFieldDecl(
name='ccd_iterations',
type=ValueType(name='int'),
doc='maximum number of convex collision solver iterations',
),
StructFieldDecl(
name='disableflags',
type=ValueType(name='int'),
doc='bit flags for disabling standard features',
),
StructFieldDecl(
name='enableflags',
type=ValueType(name='int'),
doc='bit flags for enabling optional features',
),
StructFieldDecl(
name='disableactuator',
type=ValueType(name='int'),
doc='bit flags for disabling actuators by group id',
),
StructFieldDecl(
name='sdf_initpoints',
type=ValueType(name='int'),
doc='number of starting points for gradient descent',
),
StructFieldDecl(
name='sdf_iterations',
type=ValueType(name='int'),
doc='max number of iterations for gradient descent',
),
),
)),
('mjVisual',
StructDecl(
name='mjVisual',
declname='struct mjVisual_',
fields=(
StructFieldDecl(
name='global',
type=AnonymousStructDecl(
fields=(
StructFieldDecl(
name='cameraid',
type=ValueType(name='int'),
doc='initial camera id (-1: free)',
),
StructFieldDecl(
name='orthographic',
type=ValueType(name='int'),
doc='is the free camera orthographic (0: no, 1: yes)', # pylint: disable=line-too-long
),
StructFieldDecl(
name='fovy',
type=ValueType(name='float'),
doc='y field-of-view of free camera (orthographic ? length : degree)', # pylint: disable=line-too-long
),
StructFieldDecl(
name='ipd',
type=ValueType(name='float'),
doc='inter-pupilary distance for free camera',
),
StructFieldDecl(
name='azimuth',
type=ValueType(name='float'),
doc='initial azimuth of free camera (degrees)',
),
StructFieldDecl(
name='elevation',
type=ValueType(name='float'),
doc='initial elevation of free camera (degrees)',
),
StructFieldDecl(
name='linewidth',
type=ValueType(name='float'),
doc='line width for wireframe and ray rendering',
),
StructFieldDecl(
name='glow',
type=ValueType(name='float'),
doc='glow coefficient for selected body',
),
StructFieldDecl(
name='realtime',
type=ValueType(name='float'),
doc='initial real-time factor (1: real time)',
),
StructFieldDecl(
name='offwidth',
type=ValueType(name='int'),
doc='width of offscreen buffer',
),
StructFieldDecl(
name='offheight',
type=ValueType(name='int'),
doc='height of offscreen buffer',
),
StructFieldDecl(
name='ellipsoidinertia',
type=ValueType(name='int'),
doc='geom for inertia visualization (0: box, 1: ellipsoid)', # pylint: disable=line-too-long
),
StructFieldDecl(
name='bvactive',
type=ValueType(name='int'),
doc='visualize active bounding volumes (0: no, 1: yes)', # pylint: disable=line-too-long
),
),
),
doc='',
),
StructFieldDecl(
name='quality',
type=AnonymousStructDecl(
fields=(
StructFieldDecl(
name='shadowsize',
type=ValueType(name='int'),
doc='size of shadowmap texture',
),
StructFieldDecl(
name='offsamples',
type=ValueType(name='int'),
doc='number of multisamples for offscreen rendering', # pylint: disable=line-too-long
),
StructFieldDecl(
name='numslices',
type=ValueType(name='int'),
doc='number of slices for builtin geom drawing',
),
StructFieldDecl(
name='numstacks',
type=ValueType(name='int'),
doc='number of stacks for builtin geom drawing',
),
StructFieldDecl(
name='numquads',
type=ValueType(name='int'),
doc='number of quads for box rendering',
),
),
),
doc='',
),
StructFieldDecl(
name='headlight',
type=AnonymousStructDecl(
fields=(
StructFieldDecl(
name='ambient',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='ambient rgb (alpha=1)',
),
StructFieldDecl(
name='diffuse',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='diffuse rgb (alpha=1)',
),
StructFieldDecl(
name='specular',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='specular rgb (alpha=1)',
),
StructFieldDecl(
name='active',
type=ValueType(name='int'),
doc='is headlight active',
),
),
),
doc='',
),
StructFieldDecl(
name='map',
type=AnonymousStructDecl(
fields=(
StructFieldDecl(
name='stiffness',
type=ValueType(name='float'),
doc='mouse perturbation stiffness (space->force)',
),
StructFieldDecl(
name='stiffnessrot',
type=ValueType(name='float'),
doc='mouse perturbation stiffness (space->torque)',
),
StructFieldDecl(
name='force',
type=ValueType(name='float'),
doc='from force units to space units',
),
StructFieldDecl(
name='torque',
type=ValueType(name='float'),
doc='from torque units to space units',
),
StructFieldDecl(
name='alpha',
type=ValueType(name='float'),
doc='scale geom alphas when transparency is enabled', # pylint: disable=line-too-long
),
StructFieldDecl(
name='fogstart',
type=ValueType(name='float'),
doc='OpenGL fog starts at fogstart * mjModel.stat.extent', # pylint: disable=line-too-long
),
StructFieldDecl(
name='fogend',
type=ValueType(name='float'),
doc='OpenGL fog ends at fogend * mjModel.stat.extent', # pylint: disable=line-too-long
),
StructFieldDecl(
name='znear',
type=ValueType(name='float'),
doc='near clipping plane = znear * mjModel.stat.extent', # pylint: disable=line-too-long
),
StructFieldDecl(
name='zfar',
type=ValueType(name='float'),
doc='far clipping plane = zfar * mjModel.stat.extent', # pylint: disable=line-too-long
),
StructFieldDecl(
name='haze',
type=ValueType(name='float'),
doc='haze ratio',
),
StructFieldDecl(
name='shadowclip',
type=ValueType(name='float'),
doc='directional light: shadowclip * mjModel.stat.extent', # pylint: disable=line-too-long
),
StructFieldDecl(
name='shadowscale',
type=ValueType(name='float'),
doc='spot light: shadowscale * light.cutoff',
),
StructFieldDecl(
name='actuatortendon',
type=ValueType(name='float'),
doc='scale tendon width',
),
),
),
doc='',
),
StructFieldDecl(
name='scale',
type=AnonymousStructDecl(
fields=(
StructFieldDecl(
name='forcewidth',
type=ValueType(name='float'),
doc='width of force arrow',
),
StructFieldDecl(
name='contactwidth',
type=ValueType(name='float'),
doc='contact width',
),
StructFieldDecl(
name='contactheight',
type=ValueType(name='float'),
doc='contact height',
),
StructFieldDecl(
name='connect',
type=ValueType(name='float'),
doc='autoconnect capsule width',
),
StructFieldDecl(
name='com',
type=ValueType(name='float'),
doc='com radius',
),
StructFieldDecl(
name='camera',
type=ValueType(name='float'),
doc='camera object',
),
StructFieldDecl(
name='light',
type=ValueType(name='float'),
doc='light object',
),
StructFieldDecl(
name='selectpoint',
type=ValueType(name='float'),
doc='selection point',
),
StructFieldDecl(
name='jointlength',
type=ValueType(name='float'),
doc='joint length',
),
StructFieldDecl(
name='jointwidth',
type=ValueType(name='float'),
doc='joint width',
),
StructFieldDecl(
name='actuatorlength',
type=ValueType(name='float'),
doc='actuator length',
),
StructFieldDecl(
name='actuatorwidth',
type=ValueType(name='float'),
doc='actuator width',
),
StructFieldDecl(
name='framelength',
type=ValueType(name='float'),
doc='bodyframe axis length',
),
StructFieldDecl(
name='framewidth',
type=ValueType(name='float'),
doc='bodyframe axis width',
),
StructFieldDecl(
name='constraint',
type=ValueType(name='float'),
doc='constraint width',
),
StructFieldDecl(
name='slidercrank',
type=ValueType(name='float'),
doc='slidercrank width',
),
StructFieldDecl(
name='frustum',
type=ValueType(name='float'),
doc='frustum zfar plane',
),
),
),
doc='',
),
StructFieldDecl(
name='rgba',
type=AnonymousStructDecl(
fields=(
StructFieldDecl(
name='fog',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='fog',
),
StructFieldDecl(
name='haze',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='haze',
),
StructFieldDecl(
name='force',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='external force',
),
StructFieldDecl(
name='inertia',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='inertia box',
),
StructFieldDecl(
name='joint',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='joint',
),
StructFieldDecl(
name='actuator',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='actuator, neutral',
),
StructFieldDecl(
name='actuatornegative',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='actuator, negative limit',
),
StructFieldDecl(
name='actuatorpositive',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='actuator, positive limit',
),
StructFieldDecl(
name='com',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='center of mass',
),
StructFieldDecl(
name='camera',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='camera object',
),
StructFieldDecl(
name='light',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='light object',
),
StructFieldDecl(
name='selectpoint',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='selection point',
),
StructFieldDecl(
name='connect',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='auto connect',
),
StructFieldDecl(
name='contactpoint',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='contact point',
),
StructFieldDecl(
name='contactforce',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='contact force',
),
StructFieldDecl(
name='contactfriction',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='contact friction force',
),
StructFieldDecl(
name='contacttorque',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='contact torque',
),
StructFieldDecl(
name='contactgap',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='contact point in gap',
),
StructFieldDecl(
name='rangefinder',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='rangefinder ray',
),
StructFieldDecl(
name='constraint',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='constraint',
),
StructFieldDecl(
name='slidercrank',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='slidercrank',
),
StructFieldDecl(
name='crankbroken',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='used when crank must be stretched/broken',
),
StructFieldDecl(
name='frustum',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='camera frustum',
),
StructFieldDecl(
name='bv',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='bounding volume',
),
StructFieldDecl(
name='bvactive',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='active bounding volume',
),
),
),
doc='',
),
),
)),
('mjStatistic',
StructDecl(
name='mjStatistic',
declname='struct mjStatistic_',
fields=(
StructFieldDecl(
name='meaninertia',
type=ValueType(name='mjtNum'),
doc='mean diagonal inertia',
),
StructFieldDecl(
name='meanmass',
type=ValueType(name='mjtNum'),
doc='mean body mass',
),
StructFieldDecl(
name='meansize',
type=ValueType(name='mjtNum'),
doc='mean body size',
),
StructFieldDecl(
name='extent',
type=ValueType(name='mjtNum'),
doc='spatial extent',
),
StructFieldDecl(
name='center',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(3,),
),
doc='center of model',
),
),
)),
('mjModel',
StructDecl(
name='mjModel',
declname='struct mjModel_',
fields=(
StructFieldDecl(
name='nq',
type=ValueType(name='mjtSize'),
doc='number of generalized coordinates = dim(qpos)',
),
StructFieldDecl(
name='nv',
type=ValueType(name='mjtSize'),
doc='number of degrees of freedom = dim(qvel)',
),
StructFieldDecl(
name='nu',
type=ValueType(name='mjtSize'),
doc='number of scalar controls = dim(ctrl)',
),
StructFieldDecl(
name='nactuator',
type=ValueType(name='mjtSize'),
doc='number of actuators',
),
StructFieldDecl(
name='nout',
type=ValueType(name='mjtSize'),
doc='number of force outputs, derived from transmission type',
),
StructFieldDecl(
name='na',
type=ValueType(name='mjtSize'),
doc='number of activation states = dim(act)',
),
StructFieldDecl(
name='nbody',
type=ValueType(name='mjtSize'),
doc='number of bodies',
),
StructFieldDecl(
name='nbvh',
type=ValueType(name='mjtSize'),
doc='number of total bounding volumes in all bodies',
),
StructFieldDecl(
name='nbvhstatic',
type=ValueType(name='mjtSize'),
doc='number of static bounding volumes (aabb stored in mjModel)', # pylint: disable=line-too-long
),
StructFieldDecl(
name='nbvhdynamic',
type=ValueType(name='mjtSize'),
doc='number of dynamic bounding volumes (aabb stored in mjData)', # pylint: disable=line-too-long
),
StructFieldDecl(
name='noct',
type=ValueType(name='mjtSize'),
doc='number of total octree cells in all meshes',
),
StructFieldDecl(
name='njnt',
type=ValueType(name='mjtSize'),
doc='number of joints',
),
StructFieldDecl(
name='ntree',
type=ValueType(name='mjtSize'),
doc='number of kinematic trees under world body',
),
StructFieldDecl(
name='nM',
type=ValueType(name='mjtSize'),
doc='number of non-zeros in sparse inertia matrix',
),
StructFieldDecl(
name='nB',
type=ValueType(name='mjtSize'),
doc='number of non-zeros in sparse body-dof matrix',
),
StructFieldDecl(
name='nC',
type=ValueType(name='mjtSize'),
doc='number of non-zeros in sparse reduced dof-dof matrix',
),
StructFieldDecl(
name='nD',
type=ValueType(name='mjtSize'),
doc='number of non-zeros in sparse dof-dof matrix',
),
StructFieldDecl(
name='ngeom',
type=ValueType(name='mjtSize'),
doc='number of geoms',
),
StructFieldDecl(
name='nsite',
type=ValueType(name='mjtSize'),
doc='number of sites',
),
StructFieldDecl(
name='ncam',
type=ValueType(name='mjtSize'),
doc='number of cameras',
),
StructFieldDecl(
name='nlight',
type=ValueType(name='mjtSize'),
doc='number of lights',
),
StructFieldDecl(
name='nflex',
type=ValueType(name='mjtSize'),
doc='number of flexes',
),
StructFieldDecl(
name='nflexnode',
type=ValueType(name='mjtSize'),
doc='number of dofs in all flexes',
),
StructFieldDecl(
name='nflexvert',
type=ValueType(name='mjtSize'),
doc='number of vertices in all flexes',
),
StructFieldDecl(
name='nflexedge',
type=ValueType(name='mjtSize'),
doc='number of edges in all flexes',
),
StructFieldDecl(
name='nflexelem',
type=ValueType(name='mjtSize'),
doc='number of elements in all flexes',
),
StructFieldDecl(
name='nflexelemdata',
type=ValueType(name='mjtSize'),
doc='number of element vertex ids in all flexes',
),
StructFieldDecl(
name='nflexstiffness',
type=ValueType(name='mjtSize'),
doc='number of stiffness parameters in all flexes',
),
StructFieldDecl(
name='nflexbending',
type=ValueType(name='mjtSize'),
doc='number of bending parameters in all flexes',
),
StructFieldDecl(
name='nefm0dof',
type=ValueType(name='mjtSize'),
doc='number of dofs covered by the constant metric factor',
),
StructFieldDecl(
name='nefm0L',
type=ValueType(name='mjtSize'),
doc='number of non-zeros in the constant metric factor',
),
StructFieldDecl(
name='nflexelemedge',
type=ValueType(name='mjtSize'),
doc='number of element edge ids in all flexes',
),
StructFieldDecl(
name='nflexshelldata',
type=ValueType(name='mjtSize'),
doc='number of shell fragment vertex ids in all flexes',
),
StructFieldDecl(
name='nflexevpair',
type=ValueType(name='mjtSize'),
doc='number of element-vertex pairs in all flexes',
),
StructFieldDecl(
name='nflextexcoord',
type=ValueType(name='mjtSize'),
doc='number of vertices with texture coordinates',
),
StructFieldDecl(
name='nJfe',
type=ValueType(name='mjtSize'),
doc='number of non-zeros in sparse flexedge Jacobian matrix',
),
StructFieldDecl(
name='nJfv',
type=ValueType(name='mjtSize'),
doc='number of non-zeros in sparse flexvert Jacobian matrix',
),
StructFieldDecl(
name='nmesh',
type=ValueType(name='mjtSize'),
doc='number of meshes',
),
StructFieldDecl(
name='nmeshvert',
type=ValueType(name='mjtSize'),
doc='number of vertices in all meshes',
),
StructFieldDecl(
name='nmeshnormal',
type=ValueType(name='mjtSize'),
doc='number of normals in all meshes',
),
StructFieldDecl(
name='nmeshtexcoord',
type=ValueType(name='mjtSize'),
doc='number of texcoords in all meshes',
),
StructFieldDecl(
name='nmeshface',
type=ValueType(name='mjtSize'),
doc='number of triangular faces in all meshes',
),
StructFieldDecl(
name='nmeshgraph',
type=ValueType(name='mjtSize'),
doc='number of ints in mesh auxiliary data',
),
StructFieldDecl(
name='nmeshpoly',
type=ValueType(name='mjtSize'),
doc='number of polygons in all meshes',
),
StructFieldDecl(
name='nmeshpolyvert',
type=ValueType(name='mjtSize'),
doc='number of vertices in all polygons',
),
StructFieldDecl(
name='nmeshpolymap',
type=ValueType(name='mjtSize'),
doc='number of polygons in vertex map',
),
StructFieldDecl(
name='nskin',
type=ValueType(name='mjtSize'),
doc='number of skins',
),
StructFieldDecl(
name='nskinvert',
type=ValueType(name='mjtSize'),
doc='number of vertices in all skins',
),
StructFieldDecl(
name='nskintexvert',
type=ValueType(name='mjtSize'),
doc='number of vertices with texcoords in all skins',
),
StructFieldDecl(
name='nskinface',
type=ValueType(name='mjtSize'),
doc='number of triangular faces in all skins',
),
StructFieldDecl(
name='nskinbone',
type=ValueType(name='mjtSize'),
doc='number of bones in all skins',
),
StructFieldDecl(
name='nskinbonevert',
type=ValueType(name='mjtSize'),
doc='number of vertices in all skin bones',
),
StructFieldDecl(
name='nhfield',
type=ValueType(name='mjtSize'),
doc='number of heightfields',
),
StructFieldDecl(
name='nhfielddata',
type=ValueType(name='mjtSize'),
doc='number of data points in all heightfields',
),
StructFieldDecl(
name='ntex',
type=ValueType(name='mjtSize'),
doc='number of textures',
),
StructFieldDecl(
name='ntexdata',
type=ValueType(name='mjtSize'),
doc='number of bytes in texture rgb data',
),
StructFieldDecl(
name='nmat',
type=ValueType(name='mjtSize'),
doc='number of materials',
),
StructFieldDecl(
name='npair',
type=ValueType(name='mjtSize'),
doc='number of predefined geom pairs',
),
StructFieldDecl(
name='nexclude',
type=ValueType(name='mjtSize'),
doc='number of excluded geom pairs',
),
StructFieldDecl(
name='neq',
type=ValueType(name='mjtSize'),
doc='number of equality constraints',
),
StructFieldDecl(
name='ntendon',
type=ValueType(name='mjtSize'),
doc='number of tendons',
),
StructFieldDecl(
name='nJten',
type=ValueType(name='mjtSize'),
doc='number of non-zeros in sparse ten_J matrix',
),
StructFieldDecl(
name='nwrap',
type=ValueType(name='mjtSize'),
doc='number of wrap objects in all tendon paths',
),
StructFieldDecl(
name='nsensor',
type=ValueType(name='mjtSize'),
doc='number of sensors',
),
StructFieldDecl(
name='nnumeric',
type=ValueType(name='mjtSize'),
doc='number of numeric custom fields',
),
StructFieldDecl(
name='nnumericdata',
type=ValueType(name='mjtSize'),
doc='number of mjtNums in all numeric fields',
),
StructFieldDecl(
name='ntext',
type=ValueType(name='mjtSize'),
doc='number of text custom fields',
),
StructFieldDecl(
name='ntextdata',
type=ValueType(name='mjtSize'),
doc='number of mjtBytes in all text fields',
),
StructFieldDecl(
name='ntuple',
type=ValueType(name='mjtSize'),
doc='number of tuple custom fields',
),
StructFieldDecl(
name='ntupledata',
type=ValueType(name='mjtSize'),
doc='number of objects in all tuple fields',
),
StructFieldDecl(
name='nkey',
type=ValueType(name='mjtSize'),
doc='number of keyframes',
),
StructFieldDecl(
name='nmocap',
type=ValueType(name='mjtSize'),
doc='number of mocap bodies',
),
StructFieldDecl(
name='nplugin',
type=ValueType(name='mjtSize'),
doc='number of plugin instances',
),
StructFieldDecl(
name='npluginattr',
type=ValueType(name='mjtSize'),
doc='number of chars in all plugin config attributes',
),
StructFieldDecl(
name='nuser_body',
type=ValueType(name='mjtSize'),
doc='number of mjtNums in body_user',
),
StructFieldDecl(
name='nuser_jnt',
type=ValueType(name='mjtSize'),
doc='number of mjtNums in jnt_user',
),
StructFieldDecl(
name='nuser_geom',
type=ValueType(name='mjtSize'),
doc='number of mjtNums in geom_user',
),
StructFieldDecl(
name='nuser_site',
type=ValueType(name='mjtSize'),
doc='number of mjtNums in site_user',
),
StructFieldDecl(
name='nuser_cam',
type=ValueType(name='mjtSize'),
doc='number of mjtNums in cam_user',
),
StructFieldDecl(
name='nuser_tendon',
type=ValueType(name='mjtSize'),
doc='number of mjtNums in tendon_user',
),
StructFieldDecl(
name='nuser_actuator',
type=ValueType(name='mjtSize'),
doc='number of mjtNums in actuator_user',
),
StructFieldDecl(
name='nuser_sensor',
type=ValueType(name='mjtSize'),
doc='number of mjtNums in sensor_user',
),
StructFieldDecl(
name='nnames',
type=ValueType(name='mjtSize'),
doc='number of chars in all names',
),
StructFieldDecl(
name='npaths',
type=ValueType(name='mjtSize'),
doc='number of chars in all paths',
),
StructFieldDecl(
name='nnames_map',
type=ValueType(name='mjtSize'),
doc='number of slots in the names hash map',
),
StructFieldDecl(
name='nJmom',
type=ValueType(name='mjtSize'),
doc='number of non-zeros in sparse actuator_moment matrix',
),
StructFieldDecl(
name='ngravcomp',
type=ValueType(name='mjtSize'),
doc='number of bodies with nonzero gravcomp',
),
StructFieldDecl(
name='nsurfacevel',
type=ValueType(name='mjtSize'),
doc='number of geoms with nonzero surfacevel',
),
StructFieldDecl(
name='nemax',
type=ValueType(name='mjtSize'),
doc='number of potential equality-constraint rows',
),
StructFieldDecl(
name='njmax',
type=ValueType(name='mjtSize'),
doc='number of available rows in constraint Jacobian (legacy)',
),
StructFieldDecl(
name='nconmax',
type=ValueType(name='mjtSize'),
doc='number of potential contacts in contact list (legacy)',
),
StructFieldDecl(
name='npolygonmax',
type=ValueType(name='mjtSize'),
doc='maximum number of vertices in a mesh polygon',
),
StructFieldDecl(
name='nmeshdegmax',
type=ValueType(name='mjtSize'),
doc='maximum number of edges adjacent to a mesh vertex',
),
StructFieldDecl(
name='nuserdata',
type=ValueType(name='mjtSize'),
doc='number of mjtNums reserved for the user',
),
StructFieldDecl(
name='nsensordata',
type=ValueType(name='mjtSize'),
doc='number of mjtNums in sensor data vector',
),
StructFieldDecl(
name='npluginstate',
type=ValueType(name='mjtSize'),
doc='number of mjtNums in plugin state vector',
),
StructFieldDecl(
name='nhistory',
type=ValueType(name='mjtSize'),
doc='number of mjtNums in history buffer',
),
StructFieldDecl(
name='narena',
type=ValueType(name='mjtSize'),
doc='number of bytes in the mjData arena (inclusive of stack)',
),
StructFieldDecl(
name='nbuffer',
type=ValueType(name='mjtSize'),
doc='number of bytes in buffer',
),
StructFieldDecl(
name='opt',
type=ValueType(name='mjOption'),
doc='physics options',
),
StructFieldDecl(
name='vis',
type=ValueType(name='mjVisual'),
doc='visualization options',
),
StructFieldDecl(
name='stat',
type=ValueType(name='mjStatistic'),
doc='model statistics',
),
StructFieldDecl(
name='buffer',
type=PointerType(
inner_type=ValueType(name='void'),
),
doc='main buffer; all pointers point in it (nbuffer)',
),
StructFieldDecl(
name='qpos0',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='qpos values at default pose',
array_extent=('nq',),
),
StructFieldDecl(
name='qpos_spring',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='reference pose for springs',
array_extent=('nq',),
),
StructFieldDecl(
name='body_parentid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc="id of body's parent",
array_extent=('nbody',),
),
StructFieldDecl(
name='body_rootid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='ancestor that is direct child of world',
array_extent=('nbody',),
),
StructFieldDecl(
name='body_weldid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='top ancestor with no dofs to this body',
array_extent=('nbody',),
),
StructFieldDecl(
name='body_mocapid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='id of mocap data; -1: none',
array_extent=('nbody',),
),
StructFieldDecl(
name='body_jntnum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of joints for this body',
array_extent=('nbody',),
),
StructFieldDecl(
name='body_jntadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='start addr of joints; -1: no joints',
array_extent=('nbody',),
),
StructFieldDecl(
name='body_dofnum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of motion degrees of freedom',
array_extent=('nbody',),
),
StructFieldDecl(
name='body_dofadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='start addr of dofs; -1: no dofs',
array_extent=('nbody',),
),
StructFieldDecl(
name='body_treeid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc="id of body's kinematic tree; -1: static",
array_extent=('nbody',),
),
StructFieldDecl(
name='body_geomnum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of geoms',
array_extent=('nbody',),
),
StructFieldDecl(
name='body_geomadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='start addr of geoms; -1: no geoms',
array_extent=('nbody',),
),
StructFieldDecl(
name='body_simple',
type=PointerType(
inner_type=ValueType(name='mjtByte'),
),
doc='1: diag M; 2: diag M, sliders only',
array_extent=('nbody',),
),
StructFieldDecl(
name='body_sameframe',
type=PointerType(
inner_type=ValueType(name='mjtByte'),
),
doc='same frame as inertia (mjtSameframe)',
array_extent=('nbody',),
),
StructFieldDecl(
name='body_pos',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='position offset rel. to parent body',
array_extent=('nbody', 3),
),
StructFieldDecl(
name='body_quat',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='orientation offset rel. to parent body',
array_extent=('nbody', 4),
),
StructFieldDecl(
name='body_ipos',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='local position of center of mass',
array_extent=('nbody', 3),
),
StructFieldDecl(
name='body_iquat',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='local orientation of inertia ellipsoid',
array_extent=('nbody', 4),
),
StructFieldDecl(
name='body_mass',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='mass',
array_extent=('nbody',),
),
StructFieldDecl(
name='body_subtreemass',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='mass of subtree starting at this body',
array_extent=('nbody',),
),
StructFieldDecl(
name='body_inertia',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='diagonal inertia in ipos/iquat frame',
array_extent=('nbody', 3),
),
StructFieldDecl(
name='body_invweight0',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='mean inv inert in qpos0 (trn, rot)',
array_extent=('nbody', 2),
),
StructFieldDecl(
name='body_gravcomp',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='antigravity force, units of body weight',
array_extent=('nbody',),
),
StructFieldDecl(
name='body_margin',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='MAX over all geom margins+gaps',
array_extent=('nbody',),
),
StructFieldDecl(
name='body_user',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='user data',
array_extent=('nbody', 'nuser_body'),
),
StructFieldDecl(
name='body_plugin',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='plugin instance id; -1: not in use',
array_extent=('nbody',),
),
StructFieldDecl(
name='body_contype',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='OR over all geom contypes',
array_extent=('nbody',),
),
StructFieldDecl(
name='body_conaffinity',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='OR over all geom conaffinities',
array_extent=('nbody',),
),
StructFieldDecl(
name='body_bvhadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='address of bvh root',
array_extent=('nbody',),
),
StructFieldDecl(
name='body_bvhnum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of bounding volumes',
array_extent=('nbody',),
),
StructFieldDecl(
name='bvh_depth',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='depth in the bounding volume hierarchy',
array_extent=('nbvh',),
),
StructFieldDecl(
name='bvh_child',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='left and right children in tree',
array_extent=('nbvh', 2),
),
StructFieldDecl(
name='bvh_nodeid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='geom or elem id of node; -1: non-leaf',
array_extent=('nbvh',),
),
StructFieldDecl(
name='bvh_aabb',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='local bounding box (center, size)',
array_extent=('nbvhstatic', 6),
),
StructFieldDecl(
name='oct_depth',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='depth in the octree',
array_extent=('noct',),
),
StructFieldDecl(
name='oct_child',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='children of octree node',
array_extent=('noct', 8),
),
StructFieldDecl(
name='oct_aabb',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='octree node bounding box (center, size)',
array_extent=('noct', 6),
),
StructFieldDecl(
name='oct_coeff',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='octree interpolation coefficients',
array_extent=('noct', 8),
),
StructFieldDecl(
name='jnt_type',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='type of joint (mjtJoint)',
array_extent=('njnt',),
),
StructFieldDecl(
name='jnt_qposadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc="start addr in 'qpos' for joint's data",
array_extent=('njnt',),
),
StructFieldDecl(
name='jnt_dofadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc="start addr in 'qvel' for joint's data",
array_extent=('njnt',),
),
StructFieldDecl(
name='jnt_bodyid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc="id of joint's body",
array_extent=('njnt',),
),
StructFieldDecl(
name='jnt_actuatorid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='actuator contributing damping / armature',
array_extent=('njnt',),
),
StructFieldDecl(
name='jnt_group',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='group for visibility',
array_extent=('njnt',),
),
StructFieldDecl(
name='jnt_limited',
type=PointerType(
inner_type=ValueType(name='mjtBool'),
),
doc='does joint have limits',
array_extent=('njnt',),
),
StructFieldDecl(
name='jnt_actfrclimited',
type=PointerType(
inner_type=ValueType(name='mjtBool'),
),
doc='does joint have actuator force limits',
array_extent=('njnt',),
),
StructFieldDecl(
name='jnt_actgravcomp',
type=PointerType(
inner_type=ValueType(name='mjtBool'),
),
doc='is gravcomp force applied via actuators',
array_extent=('njnt',),
),
StructFieldDecl(
name='jnt_solref',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='constraint solver reference: limit',
array_extent=('njnt', 'mjNREF'),
),
StructFieldDecl(
name='jnt_solimp',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='constraint solver impedance: limit',
array_extent=('njnt', 'mjNIMP'),
),
StructFieldDecl(
name='jnt_pos',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='local anchor position',
array_extent=('njnt', 3),
),
StructFieldDecl(
name='jnt_axis',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='local joint axis',
array_extent=('njnt', 3),
),
StructFieldDecl(
name='jnt_stiffness',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='linear stiffness coefficient',
array_extent=('njnt',),
),
StructFieldDecl(
name='jnt_stiffnesspoly',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='high-order stiffness coefficients',
array_extent=('njnt', 'mjNPOLY'),
),
StructFieldDecl(
name='jnt_range',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='joint limits',
array_extent=('njnt', 2),
),
StructFieldDecl(
name='jnt_actfrcrange',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='range of total actuator force',
array_extent=('njnt', 2),
),
StructFieldDecl(
name='jnt_margin',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='min distance for limit detection',
array_extent=('njnt',),
),
StructFieldDecl(
name='jnt_user',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='user data',
array_extent=('njnt', 'nuser_jnt'),
),
StructFieldDecl(
name='dof_bodyid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc="id of dof's body",
array_extent=('nv',),
),
StructFieldDecl(
name='dof_jntid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc="id of dof's joint",
array_extent=('nv',),
),
StructFieldDecl(
name='dof_parentid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc="id of dof's parent; -1: none",
array_extent=('nv',),
),
StructFieldDecl(
name='dof_treeid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc="id of dof's kinematic tree",
array_extent=('nv',),
),
StructFieldDecl(
name='dof_Madr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='dof address in M-diagonal',
array_extent=('nv',),
),
StructFieldDecl(
name='dof_simplenum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of consecutive simple dofs',
array_extent=('nv',),
),
StructFieldDecl(
name='dof_solref',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='constraint solver reference:frictionloss',
array_extent=('nv', 'mjNREF'),
),
StructFieldDecl(
name='dof_solimp',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='constraint solver impedance:frictionloss',
array_extent=('nv', 'mjNIMP'),
),
StructFieldDecl(
name='dof_frictionloss',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='dof friction loss',
array_extent=('nv',),
),
StructFieldDecl(
name='dof_armature',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='dof armature inertia/mass',
array_extent=('nv',),
),
StructFieldDecl(
name='dof_damping',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='linear damping coefficient',
array_extent=('nv',),
),
StructFieldDecl(
name='dof_dampingpoly',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='high-order damping coefficients',
array_extent=('nv', 'mjNPOLY'),
),
StructFieldDecl(
name='dof_invweight0',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='diag. inverse inertia in qpos0',
array_extent=('nv',),
),
StructFieldDecl(
name='dof_M0',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='diag. inertia in qpos0',
array_extent=('nv',),
),
StructFieldDecl(
name='dof_length',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='linear: 1; angular: approx. length scale',
array_extent=('nv',),
),
StructFieldDecl(
name='tree_bodyadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='start addr of bodies',
array_extent=('ntree',),
),
StructFieldDecl(
name='tree_bodynum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of bodies in tree',
array_extent=('ntree',),
),
StructFieldDecl(
name='tree_dofadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='start addr of dofs',
array_extent=('ntree',),
),
StructFieldDecl(
name='tree_dofnum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of dofs in tree',
array_extent=('ntree',),
),
StructFieldDecl(
name='tree_sleep_policy',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='sleep policy (mjtSleepPolicy)',
array_extent=('ntree',),
),
StructFieldDecl(
name='geom_type',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='geometric type (mjtGeom)',
array_extent=('ngeom',),
),
StructFieldDecl(
name='geom_contype',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='geom contact type',
array_extent=('ngeom',),
),
StructFieldDecl(
name='geom_conaffinity',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='geom contact affinity',
array_extent=('ngeom',),
),
StructFieldDecl(
name='geom_condim',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='contact dimensionality (1, 3, 4, 6)',
array_extent=('ngeom',),
),
StructFieldDecl(
name='geom_bodyid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc="id of geom's body",
array_extent=('ngeom',),
),
StructFieldDecl(
name='geom_dataid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc="id of geom's mesh/hfield; -1: none",
array_extent=('ngeom',),
),
StructFieldDecl(
name='geom_matid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='material id for rendering; -1: none',
array_extent=('ngeom',),
),
StructFieldDecl(
name='geom_group',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='group for visibility',
array_extent=('ngeom',),
),
StructFieldDecl(
name='geom_priority',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='geom contact priority',
array_extent=('ngeom',),
),
StructFieldDecl(
name='geom_plugin',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='plugin instance id; -1: not in use',
array_extent=('ngeom',),
),
StructFieldDecl(
name='geom_sameframe',
type=PointerType(
inner_type=ValueType(name='mjtByte'),
),
doc='same frame as body (mjtSameframe)',
array_extent=('ngeom',),
),
StructFieldDecl(
name='geom_solmix',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='mixing coef for solref/imp in geom pair',
array_extent=('ngeom',),
),
StructFieldDecl(
name='geom_solref',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='constraint solver reference: contact',
array_extent=('ngeom', 'mjNREF'),
),
StructFieldDecl(
name='geom_solimp',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='constraint solver impedance: contact',
array_extent=('ngeom', 'mjNIMP'),
),
StructFieldDecl(
name='geom_size',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='geom-specific size parameters',
array_extent=('ngeom', 3),
),
StructFieldDecl(
name='geom_aabb',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='bounding box, (center, size)',
array_extent=('ngeom', 6),
),
StructFieldDecl(
name='geom_rbound',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='radius of bounding sphere',
array_extent=('ngeom',),
),
StructFieldDecl(
name='geom_pos',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='local position offset rel. to body',
array_extent=('ngeom', 3),
),
StructFieldDecl(
name='geom_quat',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='local orientation offset rel. to body',
array_extent=('ngeom', 4),
),
StructFieldDecl(
name='geom_friction',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='friction for (slide, spin, roll)',
array_extent=('ngeom', 3),
),
StructFieldDecl(
name='geom_margin',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='geometric inflation for contact',
array_extent=('ngeom',),
),
StructFieldDecl(
name='geom_gap',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='additional contact detection buffer',
array_extent=('ngeom',),
),
StructFieldDecl(
name='geom_surfacevel',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='surface velocity in local frame: lin,ang',
array_extent=('ngeom', 6),
),
StructFieldDecl(
name='geom_fluid',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='fluid interaction parameters',
array_extent=('ngeom', 'mjNFLUID'),
),
StructFieldDecl(
name='geom_user',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='user data',
array_extent=('ngeom', 'nuser_geom'),
),
StructFieldDecl(
name='geom_rgba',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='rgba when material is omitted',
array_extent=('ngeom', 4),
),
StructFieldDecl(
name='site_type',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='geom type for rendering (mjtGeom)',
array_extent=('nsite',),
),
StructFieldDecl(
name='site_bodyid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc="id of site's body",
array_extent=('nsite',),
),
StructFieldDecl(
name='site_matid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='material id for rendering; -1: none',
array_extent=('nsite',),
),
StructFieldDecl(
name='site_group',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='group for visibility',
array_extent=('nsite',),
),
StructFieldDecl(
name='site_sameframe',
type=PointerType(
inner_type=ValueType(name='mjtByte'),
),
doc='same frame as body (mjtSameframe)',
array_extent=('nsite',),
),
StructFieldDecl(
name='site_size',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='geom size for rendering',
array_extent=('nsite', 3),
),
StructFieldDecl(
name='site_pos',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='local position offset rel. to body',
array_extent=('nsite', 3),
),
StructFieldDecl(
name='site_quat',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='local orientation offset rel. to body',
array_extent=('nsite', 4),
),
StructFieldDecl(
name='site_user',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='user data',
array_extent=('nsite', 'nuser_site'),
),
StructFieldDecl(
name='site_rgba',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='rgba when material is omitted',
array_extent=('nsite', 4),
),
StructFieldDecl(
name='cam_mode',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='camera tracking mode (mjtCamLight)',
array_extent=('ncam',),
),
StructFieldDecl(
name='cam_bodyid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc="id of camera's body",
array_extent=('ncam',),
),
StructFieldDecl(
name='cam_targetbodyid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='id of targeted body; -1: none',
array_extent=('ncam',),
),
StructFieldDecl(
name='cam_pos',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='position rel. to body frame',
array_extent=('ncam', 3),
),
StructFieldDecl(
name='cam_quat',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='orientation rel. to body frame',
array_extent=('ncam', 4),
),
StructFieldDecl(
name='cam_poscom0',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='global position rel. to sub-com in qpos0',
array_extent=('ncam', 3),
),
StructFieldDecl(
name='cam_pos0',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='global position rel. to body in qpos0',
array_extent=('ncam', 3),
),
StructFieldDecl(
name='cam_mat0',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='global orientation in qpos0',
array_extent=('ncam', 9),
),
StructFieldDecl(
name='cam_projection',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='projection type (mjtProjection)',
array_extent=('ncam',),
),
StructFieldDecl(
name='cam_fovy',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='y field-of-view (ortho ? len : deg)',
array_extent=('ncam',),
),
StructFieldDecl(
name='cam_ipd',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='inter-pupilary distance',
array_extent=('ncam',),
),
StructFieldDecl(
name='cam_resolution',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='resolution: pixels [width, height]',
array_extent=('ncam', 2),
),
StructFieldDecl(
name='cam_output',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='output types (mjtCamOut bit flags)',
array_extent=('ncam',),
),
StructFieldDecl(
name='cam_sensorsize',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='sensor size: length [width, height]',
array_extent=('ncam', 2),
),
StructFieldDecl(
name='cam_intrinsic',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='[focal length; principal point]',
array_extent=('ncam', 4),
),
StructFieldDecl(
name='cam_user',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='user data',
array_extent=('ncam', 'nuser_cam'),
),
StructFieldDecl(
name='light_mode',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='light tracking mode (mjtCamLight)',
array_extent=('nlight',),
),
StructFieldDecl(
name='light_bodyid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc="id of light's body",
array_extent=('nlight',),
),
StructFieldDecl(
name='light_targetbodyid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='id of targeted body; -1: none',
array_extent=('nlight',),
),
StructFieldDecl(
name='light_type',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='spot, directional, etc. (mjtLightType)',
array_extent=('nlight',),
),
StructFieldDecl(
name='light_texid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='texture id for image lights',
array_extent=('nlight',),
),
StructFieldDecl(
name='light_castshadow',
type=PointerType(
inner_type=ValueType(name='mjtBool'),
),
doc='does light cast shadows',
array_extent=('nlight',),
),
StructFieldDecl(
name='light_bulbradius',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='light radius for soft shadows',
array_extent=('nlight',),
),
StructFieldDecl(
name='light_intensity',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='intensity, in candela',
array_extent=('nlight',),
),
StructFieldDecl(
name='light_range',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='range of effectiveness',
array_extent=('nlight',),
),
StructFieldDecl(
name='light_active',
type=PointerType(
inner_type=ValueType(name='mjtBool'),
),
doc='is light on',
array_extent=('nlight',),
),
StructFieldDecl(
name='light_pos',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='position rel. to body frame',
array_extent=('nlight', 3),
),
StructFieldDecl(
name='light_dir',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='direction rel. to body frame',
array_extent=('nlight', 3),
),
StructFieldDecl(
name='light_poscom0',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='global position rel. to sub-com in qpos0',
array_extent=('nlight', 3),
),
StructFieldDecl(
name='light_pos0',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='global position rel. to body in qpos0',
array_extent=('nlight', 3),
),
StructFieldDecl(
name='light_dir0',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='global direction in qpos0',
array_extent=('nlight', 3),
),
StructFieldDecl(
name='light_attenuation',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='OpenGL attenuation (quadratic model)',
array_extent=('nlight', 3),
),
StructFieldDecl(
name='light_cutoff',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='OpenGL cutoff',
array_extent=('nlight',),
),
StructFieldDecl(
name='light_exponent',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='OpenGL exponent',
array_extent=('nlight',),
),
StructFieldDecl(
name='light_ambient',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='ambient rgb (alpha=1)',
array_extent=('nlight', 3),
),
StructFieldDecl(
name='light_diffuse',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='diffuse rgb (alpha=1)',
array_extent=('nlight', 3),
),
StructFieldDecl(
name='light_specular',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='specular rgb (alpha=1)',
array_extent=('nlight', 3),
),
StructFieldDecl(
name='flex_contype',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='flex contact type',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_conaffinity',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='flex contact affinity',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_condim',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='contact dimensionality (1, 3, 4, 6)',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_priority',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='flex contact priority',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_solmix',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='mix coef for solref/imp in contact pair',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_solref',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='constraint solver reference: contact',
array_extent=('nflex', 'mjNREF'),
),
StructFieldDecl(
name='flex_solimp',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='constraint solver impedance: contact',
array_extent=('nflex', 'mjNIMP'),
),
StructFieldDecl(
name='flex_friction',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='friction for (slide, spin, roll)',
array_extent=('nflex', 3),
),
StructFieldDecl(
name='flex_margin',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='geometric inflation for contact',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_gap',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='additional contact detection buffer',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_internal',
type=PointerType(
inner_type=ValueType(name='mjtBool'),
),
doc='internal flex collision enabled',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_selfcollide',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='self collision mode (mjtFlexSelf)',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_activelayers',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of active element layers, 3D only',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_passive',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='passive collisions enabled',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_dim',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='1: lines, 2: triangles, 3: tetrahedra',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_matid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='material id for rendering',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_group',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='group for visibility',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_interp',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='interpolation (0: vertex, 1: nodes)',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_cellnum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='finite cell num per dimension',
array_extent=('nflex', 3),
),
StructFieldDecl(
name='flex_nodeadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='first node address',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_nodenum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of nodes',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_vertadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='first vertex address',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_vertnum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of vertices',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_edgeadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='first edge address',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_edgenum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of edges',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_elemadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='first element address',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_elemnum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of elements',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_elemdataadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='first element vertex id address',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_stiffnessadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='stiffness matrix address',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_elemedgeadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='first element edge id address',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_bendingadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='first bending data address',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_shellnum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of shells',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_shelldataadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='first shell data address',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_evpairadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='first evpair address',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_evpairnum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of evpairs',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_texcoordadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='address in flex_texcoord; -1: none',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_nodebodyid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='node body ids',
array_extent=('nflexnode',),
),
StructFieldDecl(
name='flex_vertbodyid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='vertex body ids',
array_extent=('nflexvert',),
),
StructFieldDecl(
name='flex_vertedgeadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='first edge address',
array_extent=('nflexvert',),
),
StructFieldDecl(
name='flex_vertedgenum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of edges',
array_extent=('nflexvert',),
),
StructFieldDecl(
name='flex_vertedge',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='edge indices',
array_extent=('nflexedge', 2),
),
StructFieldDecl(
name='flex_edge',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='edge vertex ids (2 per edge)',
array_extent=('nflexedge', 2),
),
StructFieldDecl(
name='flex_edgeflap',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='adjacent vertex ids (dim=2 only)',
array_extent=('nflexedge', 2),
),
StructFieldDecl(
name='flex_elem',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='element vertex ids (dim+1 per elem)',
array_extent=('nflexelemdata',),
),
StructFieldDecl(
name='flex_elemtexcoord',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='element texture coordinates (dim+1)',
array_extent=('nflexelemdata',),
),
StructFieldDecl(
name='flex_elemedge',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='element edge ids',
array_extent=('nflexelemedge',),
),
StructFieldDecl(
name='flex_elemlayer',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='element distance from surface, 3D only',
array_extent=('nflexelem',),
),
StructFieldDecl(
name='flex_shell',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='shell fragment vertex ids (dim per frag)',
array_extent=('nflexshelldata',),
),
StructFieldDecl(
name='flex_evpair',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='(element, vertex) collision pairs',
array_extent=('nflexevpair', 2),
),
StructFieldDecl(
name='flex_vert',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='vertex positions in local body frames',
array_extent=('nflexvert', 3),
),
StructFieldDecl(
name='flex_vert0',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='vertex positions in qpos0 on [0, 1]^d',
array_extent=('nflexvert', 3),
),
StructFieldDecl(
name='flex_vertmetric',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='inverse of reference shape matrix',
array_extent=('nflexvert', 4),
),
StructFieldDecl(
name='flex_node',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='node positions in local body frames',
array_extent=('nflexnode', 3),
),
StructFieldDecl(
name='flex_node0',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='Cartesian node positions in qpos0',
array_extent=('nflexnode', 3),
),
StructFieldDecl(
name='flexedge_length0',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='edge lengths in qpos0',
array_extent=('nflexedge',),
),
StructFieldDecl(
name='flexedge_invweight0',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='edge inv. weight in qpos0',
array_extent=('nflexedge',),
),
StructFieldDecl(
name='flex_radius',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='radius around primitive element',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_size',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='vertex bounding box half sizes in qpos0',
array_extent=('nflex', 3),
),
StructFieldDecl(
name='flex_stiffness',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='finite element stiffness matrix',
array_extent=('nflexstiffness',),
),
StructFieldDecl(
name='flex_bending',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='bending stiffness',
array_extent=('nflexbending',),
),
StructFieldDecl(
name='efm0_dofid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='constant metric factor row->dof address',
array_extent=('nefm0dof',),
),
StructFieldDecl(
name='efm0_L_rownnz',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='constant metric factor row nonzeros',
array_extent=('nefm0dof',),
),
StructFieldDecl(
name='efm0_L_rowadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='constant metric factor row addresses',
array_extent=('nefm0dof',),
),
StructFieldDecl(
name='efm0_L_colind',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='constant metric factor column indices',
array_extent=('nefm0L',),
),
StructFieldDecl(
name='efm0_L',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='factor of M + (dt^2+dt*d)*K_bend',
array_extent=('nefm0L',),
),
StructFieldDecl(
name='flex_damping',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc="Rayleigh's damping coefficient",
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_edgestiffness',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='edge stiffness',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_edgedamping',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='edge damping',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_edgeequality',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='0:none, 1:edges, 2:vertices, 3:strain',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_rigid',
type=PointerType(
inner_type=ValueType(name='mjtBool'),
),
doc='are all vertices in the same body',
array_extent=('nflex',),
),
StructFieldDecl(
name='flexedge_rigid',
type=PointerType(
inner_type=ValueType(name='mjtBool'),
),
doc='are both edge vertices in same body',
array_extent=('nflexedge',),
),
StructFieldDecl(
name='flex_centered',
type=PointerType(
inner_type=ValueType(name='mjtBool'),
),
doc='are all vertex coordinates (0,0,0)',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_flatskin',
type=PointerType(
inner_type=ValueType(name='mjtBool'),
),
doc='render flex skin with flat shading',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_bvhadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='address of bvh root; -1: no bvh',
array_extent=('nflex',),
),
StructFieldDecl(
name='flex_bvhnum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of bounding volumes',
array_extent=('nflex',),
),
StructFieldDecl(
name='flexedge_J_rownnz',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of non-zeros in Jacobian row',
array_extent=('nflexedge',),
),
StructFieldDecl(
name='flexedge_J_rowadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='row start address in colind array',
array_extent=('nflexedge',),
),
StructFieldDecl(
name='flexedge_J_colind',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='column indices in sparse Jacobian',
array_extent=('nJfe',),
),
StructFieldDecl(
name='flexvert_J_rownnz',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of non-zeros in Jacobian row',
array_extent=('nflexvert', 2),
),
StructFieldDecl(
name='flexvert_J_rowadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='row start address in colind array',
array_extent=('nflexvert', 2),
),
StructFieldDecl(
name='flexvert_J_colind',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='column indices in sparse Jacobian',
array_extent=('nJfv', 2),
),
StructFieldDecl(
name='flex_rgba',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='rgba when material is omitted',
array_extent=('nflex', 4),
),
StructFieldDecl(
name='flex_texcoord',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='vertex texture coordinates',
array_extent=('nflextexcoord', 2),
),
StructFieldDecl(
name='mesh_vertadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='first vertex address',
array_extent=('nmesh',),
),
StructFieldDecl(
name='mesh_vertnum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of vertices',
array_extent=('nmesh',),
),
StructFieldDecl(
name='mesh_faceadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='first face address',
array_extent=('nmesh',),
),
StructFieldDecl(
name='mesh_facenum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of faces',
array_extent=('nmesh',),
),
StructFieldDecl(
name='mesh_bvhadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='address of bvh root',
array_extent=('nmesh',),
),
StructFieldDecl(
name='mesh_bvhnum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of bvh',
array_extent=('nmesh',),
),
StructFieldDecl(
name='mesh_octadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='address of octree root',
array_extent=('nmesh',),
),
StructFieldDecl(
name='mesh_octnum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of octree nodes',
array_extent=('nmesh',),
),
StructFieldDecl(
name='mesh_normaladr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='first normal address',
array_extent=('nmesh',),
),
StructFieldDecl(
name='mesh_normalnum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of normals',
array_extent=('nmesh',),
),
StructFieldDecl(
name='mesh_texcoordadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='texcoord data address; -1: no texcoord',
array_extent=('nmesh',),
),
StructFieldDecl(
name='mesh_texcoordnum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of texcoord',
array_extent=('nmesh',),
),
StructFieldDecl(
name='mesh_graphadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='graph data address; -1: no graph',
array_extent=('nmesh',),
),
StructFieldDecl(
name='mesh_vert',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='vertex positions for all meshes',
array_extent=('nmeshvert', 3),
),
StructFieldDecl(
name='mesh_normal',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='normals for all meshes',
array_extent=('nmeshnormal', 3),
),
StructFieldDecl(
name='mesh_texcoord',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='vertex texcoords for all meshes',
array_extent=('nmeshtexcoord', 2),
),
StructFieldDecl(
name='mesh_face',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='vertex face data',
array_extent=('nmeshface', 3),
),
StructFieldDecl(
name='mesh_facenormal',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='normal face data',
array_extent=('nmeshface', 3),
),
StructFieldDecl(
name='mesh_facetexcoord',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='texture face data',
array_extent=('nmeshface', 3),
),
StructFieldDecl(
name='mesh_graph',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='convex graph data',
array_extent=('nmeshgraph',),
),
StructFieldDecl(
name='mesh_scale',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='scaling applied to asset vertices',
array_extent=('nmesh', 3),
),
StructFieldDecl(
name='mesh_pos',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='translation applied to asset vertices',
array_extent=('nmesh', 3),
),
StructFieldDecl(
name='mesh_quat',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='rotation applied to asset vertices',
array_extent=('nmesh', 4),
),
StructFieldDecl(
name='mesh_pathadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='address of asset path for mesh; -1: none',
array_extent=('nmesh',),
),
StructFieldDecl(
name='mesh_polynum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of polygons per mesh',
array_extent=('nmesh',),
),
StructFieldDecl(
name='mesh_polyadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='first polygon address per mesh',
array_extent=('nmesh',),
),
StructFieldDecl(
name='mesh_polynormal',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='all polygon normals',
array_extent=('nmeshpoly', 3),
),
StructFieldDecl(
name='mesh_polyvertadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='polygon vertex start address',
array_extent=('nmeshpoly',),
),
StructFieldDecl(
name='mesh_polyvertnum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of vertices per polygon',
array_extent=('nmeshpoly',),
),
StructFieldDecl(
name='mesh_polyvert',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='all polygon vertices',
array_extent=('nmeshpolyvert',),
),
StructFieldDecl(
name='mesh_polymapadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='first polygon address per vertex',
array_extent=('nmeshvert',),
),
StructFieldDecl(
name='mesh_polymapnum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of polygons per vertex',
array_extent=('nmeshvert',),
),
StructFieldDecl(
name='mesh_polymap',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='vertex to polygon map',
array_extent=('nmeshpolymap',),
),
StructFieldDecl(
name='skin_matid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='skin material id; -1: none',
array_extent=('nskin',),
),
StructFieldDecl(
name='skin_group',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='group for visibility',
array_extent=('nskin',),
),
StructFieldDecl(
name='skin_rgba',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='skin rgba',
array_extent=('nskin', 4),
),
StructFieldDecl(
name='skin_inflate',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='inflate skin in normal direction',
array_extent=('nskin',),
),
StructFieldDecl(
name='skin_vertadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='first vertex address',
array_extent=('nskin',),
),
StructFieldDecl(
name='skin_vertnum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of vertices',
array_extent=('nskin',),
),
StructFieldDecl(
name='skin_texcoordadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='texcoord data address; -1: no texcoord',
array_extent=('nskin',),
),
StructFieldDecl(
name='skin_faceadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='first face address',
array_extent=('nskin',),
),
StructFieldDecl(
name='skin_facenum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of faces',
array_extent=('nskin',),
),
StructFieldDecl(
name='skin_boneadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='first bone in skin',
array_extent=('nskin',),
),
StructFieldDecl(
name='skin_bonenum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of bones in skin',
array_extent=('nskin',),
),
StructFieldDecl(
name='skin_vert',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='vertex positions for all skin meshes',
array_extent=('nskinvert', 3),
),
StructFieldDecl(
name='skin_texcoord',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='vertex texcoords for all skin meshes',
array_extent=('nskintexvert', 2),
),
StructFieldDecl(
name='skin_face',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='triangle faces for all skin meshes',
array_extent=('nskinface', 3),
),
StructFieldDecl(
name='skin_bonevertadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='first vertex in each bone',
array_extent=('nskinbone',),
),
StructFieldDecl(
name='skin_bonevertnum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of vertices in each bone',
array_extent=('nskinbone',),
),
StructFieldDecl(
name='skin_bonebindpos',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='bind pos of each bone',
array_extent=('nskinbone', 3),
),
StructFieldDecl(
name='skin_bonebindquat',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='bind quat of each bone',
array_extent=('nskinbone', 4),
),
StructFieldDecl(
name='skin_bonebodyid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='body id of each bone',
array_extent=('nskinbone',),
),
StructFieldDecl(
name='skin_bonevertid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='mesh ids of vertices in each bone',
array_extent=('nskinbonevert',),
),
StructFieldDecl(
name='skin_bonevertweight',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='weights of vertices in each bone',
array_extent=('nskinbonevert',),
),
StructFieldDecl(
name='skin_pathadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='address of asset path for skin; -1: none',
array_extent=('nskin',),
),
StructFieldDecl(
name='hfield_size',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='(x, y, z_top, z_bottom)',
array_extent=('nhfield', 4),
),
StructFieldDecl(
name='hfield_nrow',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of rows in grid',
array_extent=('nhfield',),
),
StructFieldDecl(
name='hfield_ncol',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of columns in grid',
array_extent=('nhfield',),
),
StructFieldDecl(
name='hfield_adr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='address in hfield_data',
array_extent=('nhfield',),
),
StructFieldDecl(
name='hfield_data',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='elevation data',
array_extent=('nhfielddata',),
),
StructFieldDecl(
name='hfield_pathadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='address of hfield asset path; -1: none',
array_extent=('nhfield',),
),
StructFieldDecl(
name='tex_type',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='texture type (mjtTexture)',
array_extent=('ntex',),
),
StructFieldDecl(
name='tex_colorspace',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='texture colorspace (mjtColorSpace)',
array_extent=('ntex',),
),
StructFieldDecl(
name='tex_height',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of rows in texture image',
array_extent=('ntex',),
),
StructFieldDecl(
name='tex_width',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of columns in texture image',
array_extent=('ntex',),
),
StructFieldDecl(
name='tex_nchannel',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of channels in texture image',
array_extent=('ntex',),
),
StructFieldDecl(
name='tex_adr',
type=PointerType(
inner_type=ValueType(name='mjtSize'),
),
doc='start address in tex_data',
array_extent=('ntex',),
),
StructFieldDecl(
name='tex_data',
type=PointerType(
inner_type=ValueType(name='mjtByte'),
),
doc='pixel values',
array_extent=('ntexdata',),
),
StructFieldDecl(
name='tex_pathadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='address of texture asset path; -1: none',
array_extent=('ntex',),
),
StructFieldDecl(
name='mat_texid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='indices of textures; -1: none',
array_extent=('nmat', 'mjNTEXROLE'),
),
StructFieldDecl(
name='mat_texuniform',
type=PointerType(
inner_type=ValueType(name='mjtBool'),
),
doc='make texture cube uniform',
array_extent=('nmat',),
),
StructFieldDecl(
name='mat_texrepeat',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='texture repetition for 2d mapping',
array_extent=('nmat', 2),
),
StructFieldDecl(
name='mat_emission',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='emission (x rgb)',
array_extent=('nmat',),
),
StructFieldDecl(
name='mat_specular',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='specular (x white)',
array_extent=('nmat',),
),
StructFieldDecl(
name='mat_shininess',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='shininess coef',
array_extent=('nmat',),
),
StructFieldDecl(
name='mat_reflectance',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='reflectance (0: disable)',
array_extent=('nmat',),
),
StructFieldDecl(
name='mat_metallic',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='metallic coef',
array_extent=('nmat',),
),
StructFieldDecl(
name='mat_roughness',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='roughness coef',
array_extent=('nmat',),
),
StructFieldDecl(
name='mat_rgba',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='rgba',
array_extent=('nmat', 4),
),
StructFieldDecl(
name='pair_dim',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='contact dimensionality',
array_extent=('npair',),
),
StructFieldDecl(
name='pair_geom1',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='id of geom1',
array_extent=('npair',),
),
StructFieldDecl(
name='pair_geom2',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='id of geom2',
array_extent=('npair',),
),
StructFieldDecl(
name='pair_signature',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='body1 << 16 + body2',
array_extent=('npair',),
),
StructFieldDecl(
name='pair_solref',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='solver reference: contact normal',
array_extent=('npair', 'mjNREF'),
),
StructFieldDecl(
name='pair_solreffriction',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='solver reference: contact friction',
array_extent=('npair', 'mjNREF'),
),
StructFieldDecl(
name='pair_solimp',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='solver impedance: contact',
array_extent=('npair', 'mjNIMP'),
),
StructFieldDecl(
name='pair_margin',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='geometric inflation for contact',
array_extent=('npair',),
),
StructFieldDecl(
name='pair_gap',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='additional contact detection buffer',
array_extent=('npair',),
),
StructFieldDecl(
name='pair_friction',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='tangent1, 2, spin, roll1, 2',
array_extent=('npair', 5),
),
StructFieldDecl(
name='exclude_signature',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='body1 << 16 + body2',
array_extent=('nexclude',),
),
StructFieldDecl(
name='eq_type',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='constraint type (mjtEq)',
array_extent=('neq',),
),
StructFieldDecl(
name='eq_obj1id',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='id of object 1',
array_extent=('neq',),
),
StructFieldDecl(
name='eq_obj2id',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='id of object 2',
array_extent=('neq',),
),
StructFieldDecl(
name='eq_objtype',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='type of both objects (mjtObj)',
array_extent=('neq',),
),
StructFieldDecl(
name='eq_active0',
type=PointerType(
inner_type=ValueType(name='mjtBool'),
),
doc='initial enable/disable constraint state',
array_extent=('neq',),
),
StructFieldDecl(
name='eq_solref',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='constraint solver reference',
array_extent=('neq', 'mjNREF'),
),
StructFieldDecl(
name='eq_solimp',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='constraint solver impedance',
array_extent=('neq', 'mjNIMP'),
),
StructFieldDecl(
name='eq_data',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='numeric data for constraint',
array_extent=('neq', 'mjNEQDATA'),
),
StructFieldDecl(
name='tendon_adr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc="address of first object in tendon's path",
array_extent=('ntendon',),
),
StructFieldDecl(
name='tendon_num',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc="number of objects in tendon's path",
array_extent=('ntendon',),
),
StructFieldDecl(
name='tendon_matid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='material id for rendering',
array_extent=('ntendon',),
),
StructFieldDecl(
name='tendon_actuatorid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='actuator contributing damping / armature',
array_extent=('ntendon',),
),
StructFieldDecl(
name='tendon_group',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='group for visibility',
array_extent=('ntendon',),
),
StructFieldDecl(
name='tendon_treenum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc="number of trees along tendon's path",
array_extent=('ntendon',),
),
StructFieldDecl(
name='tendon_treeid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc="first two trees along tendon's path",
array_extent=('ntendon', 2),
),
StructFieldDecl(
name='ten_J_rownnz',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of non-zeros in Jacobian row',
array_extent=('ntendon',),
),
StructFieldDecl(
name='ten_J_rowadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='row start address in colind array',
array_extent=('ntendon',),
),
StructFieldDecl(
name='ten_J_colind',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='column indices in sparse Jacobian',
array_extent=('nJten',),
),
StructFieldDecl(
name='tendon_limited',
type=PointerType(
inner_type=ValueType(name='mjtBool'),
),
doc='does tendon have length limits',
array_extent=('ntendon',),
),
StructFieldDecl(
name='tendon_actfrclimited',
type=PointerType(
inner_type=ValueType(name='mjtBool'),
),
doc='does tendon have actuator force limits',
array_extent=('ntendon',),
),
StructFieldDecl(
name='tendon_width',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='width for rendering',
array_extent=('ntendon',),
),
StructFieldDecl(
name='tendon_solref_lim',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='constraint solver reference: limit',
array_extent=('ntendon', 'mjNREF'),
),
StructFieldDecl(
name='tendon_solimp_lim',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='constraint solver impedance: limit',
array_extent=('ntendon', 'mjNIMP'),
),
StructFieldDecl(
name='tendon_solref_fri',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='constraint solver reference: friction',
array_extent=('ntendon', 'mjNREF'),
),
StructFieldDecl(
name='tendon_solimp_fri',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='constraint solver impedance: friction',
array_extent=('ntendon', 'mjNIMP'),
),
StructFieldDecl(
name='tendon_range',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='tendon length limits',
array_extent=('ntendon', 2),
),
StructFieldDecl(
name='tendon_actfrcrange',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='range of total actuator force',
array_extent=('ntendon', 2),
),
StructFieldDecl(
name='tendon_margin',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='min distance for limit detection',
array_extent=('ntendon',),
),
StructFieldDecl(
name='tendon_stiffness',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='linear stiffness coefficient',
array_extent=('ntendon',),
),
StructFieldDecl(
name='tendon_stiffnesspoly',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='high-order stiffness coefficients',
array_extent=('ntendon', 'mjNPOLY'),
),
StructFieldDecl(
name='tendon_damping',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='linear damping coefficient',
array_extent=('ntendon',),
),
StructFieldDecl(
name='tendon_dampingpoly',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='high-order damping coefficients',
array_extent=('ntendon', 'mjNPOLY'),
),
StructFieldDecl(
name='tendon_armature',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='inertia associated with tendon velocity',
array_extent=('ntendon',),
),
StructFieldDecl(
name='tendon_frictionloss',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='loss due to friction',
array_extent=('ntendon',),
),
StructFieldDecl(
name='tendon_lengthspring',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='spring resting length range',
array_extent=('ntendon', 2),
),
StructFieldDecl(
name='tendon_length0',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='tendon length in qpos0',
array_extent=('ntendon',),
),
StructFieldDecl(
name='tendon_invweight0',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='inv. weight in qpos0',
array_extent=('ntendon',),
),
StructFieldDecl(
name='tendon_user',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='user data',
array_extent=('ntendon', 'nuser_tendon'),
),
StructFieldDecl(
name='tendon_rgba',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='rgba when material is omitted',
array_extent=('ntendon', 4),
),
StructFieldDecl(
name='wrap_type',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='wrap object type (mjtWrap)',
array_extent=('nwrap',),
),
StructFieldDecl(
name='wrap_objid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='object id: geom, site, joint',
array_extent=('nwrap',),
),
StructFieldDecl(
name='wrap_prm',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='divisor, joint coef, or site id',
array_extent=('nwrap',),
),
StructFieldDecl(
name='actuator_trntype',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='transmission type (mjtTrn)',
array_extent=('nactuator',),
),
StructFieldDecl(
name='actuator_dyntype',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='dynamics type (mjtDyn)',
array_extent=('nactuator',),
),
StructFieldDecl(
name='actuator_gaintype',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='gain type (mjtGain)',
array_extent=('nactuator',),
),
StructFieldDecl(
name='actuator_biastype',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='bias type (mjtBias)',
array_extent=('nactuator',),
),
StructFieldDecl(
name='actuator_ctrladr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='address of first control',
array_extent=('nactuator',),
),
StructFieldDecl(
name='actuator_ctrlnum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of controls',
array_extent=('nactuator',),
),
StructFieldDecl(
name='actuator_outadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='address of first force output',
array_extent=('nactuator',),
),
StructFieldDecl(
name='actuator_outnum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of force outputs, from trntype',
array_extent=('nactuator',),
),
StructFieldDecl(
name='actuator_actadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='first activation address; -1: stateless',
array_extent=('nactuator',),
),
StructFieldDecl(
name='actuator_actnum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of activation variables',
array_extent=('nactuator',),
),
StructFieldDecl(
name='actuator_trnid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='transmission id: joint, tendon, site',
array_extent=('nactuator', 2),
),
StructFieldDecl(
name='actuator_cranklength',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='crank length for slider-crank',
array_extent=('nactuator',),
),
StructFieldDecl(
name='actuator_dynprm',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='dynamics parameters',
array_extent=('nactuator', 'mjNDYN'),
),
StructFieldDecl(
name='actuator_gainprm',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='gain parameters',
array_extent=('nactuator', 'mjNGAIN'),
),
StructFieldDecl(
name='actuator_biasprm',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='bias parameters',
array_extent=('nactuator', 'mjNBIAS'),
),
StructFieldDecl(
name='actuator_actlimited',
type=PointerType(
inner_type=ValueType(name='mjtBool'),
),
doc='is activation limited',
array_extent=('nactuator',),
),
StructFieldDecl(
name='actuator_actrange',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='range of activations',
array_extent=('nactuator', 2),
),
StructFieldDecl(
name='actuator_actearly',
type=PointerType(
inner_type=ValueType(name='mjtBool'),
),
doc='step activation before force',
array_extent=('nactuator',),
),
StructFieldDecl(
name='actuator_history',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='history buffer: [nsample, interp]',
array_extent=('nactuator', 2),
),
StructFieldDecl(
name='actuator_historyadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='address in history buffer; -1: none',
array_extent=('nactuator',),
),
StructFieldDecl(
name='actuator_delay',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='delay time; 0: no delay',
array_extent=('nactuator',),
),
StructFieldDecl(
name='actuator_damping',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='linear damping coefficient',
array_extent=('nactuator',),
),
StructFieldDecl(
name='actuator_dampingpoly',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='high-order damping coefficients',
array_extent=('nactuator', 'mjNPOLY'),
),
StructFieldDecl(
name='actuator_armature',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='armature added to target (joint, tendon)',
array_extent=('nactuator',),
),
StructFieldDecl(
name='actuator_group',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='group for visibility',
array_extent=('nactuator',),
),
StructFieldDecl(
name='actuator_user',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='user data',
array_extent=('nactuator', 'nuser_actuator'),
),
StructFieldDecl(
name='actuator_plugin',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='plugin instance id; -1: not a plugin',
array_extent=('nactuator',),
),
StructFieldDecl(
name='actuator_ctrllimited',
type=PointerType(
inner_type=ValueType(name='mjtBool'),
),
doc='is control limited',
array_extent=('nu',),
),
StructFieldDecl(
name='actuator_ctrlrange',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='range of controls',
array_extent=('nu', 2),
),
StructFieldDecl(
name='actuator_gear',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='scale length and transmitted force',
array_extent=('nout', 6),
),
StructFieldDecl(
name='actuator_forcelimited',
type=PointerType(
inner_type=ValueType(name='mjtBool'),
),
doc='is force limited',
array_extent=('nout',),
),
StructFieldDecl(
name='actuator_forcerange',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='range of forces',
array_extent=('nout', 2),
),
StructFieldDecl(
name='actuator_acc0',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='acceleration from unit force in qpos0',
array_extent=('nout',),
),
StructFieldDecl(
name='actuator_length0',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='actuator length in qpos0',
array_extent=('nout',),
),
StructFieldDecl(
name='actuator_lengthrange',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='feasible actuator length range',
array_extent=('nout', 2),
),
StructFieldDecl(
name='sensor_type',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='sensor type (mjtSensor)',
array_extent=('nsensor',),
),
StructFieldDecl(
name='sensor_datatype',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='numeric data type (mjtDataType)',
array_extent=('nsensor',),
),
StructFieldDecl(
name='sensor_needstage',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='required compute stage (mjtStage)',
array_extent=('nsensor',),
),
StructFieldDecl(
name='sensor_objtype',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='type of sensorized object (mjtObj)',
array_extent=('nsensor',),
),
StructFieldDecl(
name='sensor_objid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='id of sensorized object',
array_extent=('nsensor',),
),
StructFieldDecl(
name='sensor_reftype',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='type of reference frame (mjtObj)',
array_extent=('nsensor',),
),
StructFieldDecl(
name='sensor_refid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='id of reference frame; -1: global frame',
array_extent=('nsensor',),
),
StructFieldDecl(
name='sensor_intprm',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='sensor parameters',
array_extent=('nsensor', 'mjNSENS'),
),
StructFieldDecl(
name='sensor_dim',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of scalar outputs',
array_extent=('nsensor',),
),
StructFieldDecl(
name='sensor_adr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='address in sensor array',
array_extent=('nsensor',),
),
StructFieldDecl(
name='sensor_cutoff',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='cutoff for real and positive; 0: ignore',
array_extent=('nsensor',),
),
StructFieldDecl(
name='sensor_noise',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='noise standard deviation',
array_extent=('nsensor',),
),
StructFieldDecl(
name='sensor_history',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='history buffer: [nsample, interp]',
array_extent=('nsensor', 2),
),
StructFieldDecl(
name='sensor_historyadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='address in history buffer; -1: none',
array_extent=('nsensor',),
),
StructFieldDecl(
name='sensor_delay',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='delay time in seconds; 0: no delay',
array_extent=('nsensor',),
),
StructFieldDecl(
name='sensor_interval',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='interval: [period, phase] in seconds',
array_extent=('nsensor', 2),
),
StructFieldDecl(
name='sensor_user',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='user data',
array_extent=('nsensor', 'nuser_sensor'),
),
StructFieldDecl(
name='sensor_plugin',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='plugin instance id; -1: not a plugin',
array_extent=('nsensor',),
),
StructFieldDecl(
name='plugin',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='globally registered plugin slot number',
array_extent=('nplugin',),
),
StructFieldDecl(
name='plugin_stateadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='address in the plugin state array',
array_extent=('nplugin',),
),
StructFieldDecl(
name='plugin_statenum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of states in the plugin instance',
array_extent=('nplugin',),
),
StructFieldDecl(
name='plugin_attr',
type=PointerType(
inner_type=ValueType(name='char'),
),
doc='config attributes of plugin instances',
array_extent=('npluginattr',),
),
StructFieldDecl(
name='plugin_attradr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc="address to each instance's config attrib",
array_extent=('nplugin',),
),
StructFieldDecl(
name='numeric_adr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='address of field in numeric_data',
array_extent=('nnumeric',),
),
StructFieldDecl(
name='numeric_size',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='size of numeric field',
array_extent=('nnumeric',),
),
StructFieldDecl(
name='numeric_data',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='array of all numeric fields',
array_extent=('nnumericdata',),
),
StructFieldDecl(
name='text_adr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='address of text in text_data',
array_extent=('ntext',),
),
StructFieldDecl(
name='text_size',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='size of text field (strlen+1)',
array_extent=('ntext',),
),
StructFieldDecl(
name='text_data',
type=PointerType(
inner_type=ValueType(name='char'),
),
doc='array of all text fields (0-terminated)',
array_extent=('ntextdata',),
),
StructFieldDecl(
name='tuple_adr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='address of text in text_data',
array_extent=('ntuple',),
),
StructFieldDecl(
name='tuple_size',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of objects in tuple',
array_extent=('ntuple',),
),
StructFieldDecl(
name='tuple_objtype',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='array of object types in all tuples',
array_extent=('ntupledata',),
),
StructFieldDecl(
name='tuple_objid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='array of object ids in all tuples',
array_extent=('ntupledata',),
),
StructFieldDecl(
name='tuple_objprm',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='array of object params in all tuples',
array_extent=('ntupledata',),
),
StructFieldDecl(
name='key_time',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='key time',
array_extent=('nkey',),
),
StructFieldDecl(
name='key_qpos',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='key position',
array_extent=('nkey', 'nq'),
),
StructFieldDecl(
name='key_qvel',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='key velocity',
array_extent=('nkey', 'nv'),
),
StructFieldDecl(
name='key_act',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='key activation',
array_extent=('nkey', 'na'),
),
StructFieldDecl(
name='key_mpos',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='key mocap position',
array_extent=('nkey', 'nmocap*3'),
),
StructFieldDecl(
name='key_mquat',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='key mocap quaternion',
array_extent=('nkey', 'nmocap*4'),
),
StructFieldDecl(
name='key_ctrl',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='key control',
array_extent=('nkey', 'nu'),
),
StructFieldDecl(
name='name_bodyadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='body name pointers',
array_extent=('nbody',),
),
StructFieldDecl(
name='name_jntadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='joint name pointers',
array_extent=('njnt',),
),
StructFieldDecl(
name='name_geomadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='geom name pointers',
array_extent=('ngeom',),
),
StructFieldDecl(
name='name_siteadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='site name pointers',
array_extent=('nsite',),
),
StructFieldDecl(
name='name_camadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='camera name pointers',
array_extent=('ncam',),
),
StructFieldDecl(
name='name_lightadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='light name pointers',
array_extent=('nlight',),
),
StructFieldDecl(
name='name_flexadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='flex name pointers',
array_extent=('nflex',),
),
StructFieldDecl(
name='name_meshadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='mesh name pointers',
array_extent=('nmesh',),
),
StructFieldDecl(
name='name_skinadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='skin name pointers',
array_extent=('nskin',),
),
StructFieldDecl(
name='name_hfieldadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='hfield name pointers',
array_extent=('nhfield',),
),
StructFieldDecl(
name='name_texadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='texture name pointers',
array_extent=('ntex',),
),
StructFieldDecl(
name='name_matadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='material name pointers',
array_extent=('nmat',),
),
StructFieldDecl(
name='name_pairadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='geom pair name pointers',
array_extent=('npair',),
),
StructFieldDecl(
name='name_excludeadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='exclude name pointers',
array_extent=('nexclude',),
),
StructFieldDecl(
name='name_eqadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='equality constraint name pointers',
array_extent=('neq',),
),
StructFieldDecl(
name='name_tendonadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='tendon name pointers',
array_extent=('ntendon',),
),
StructFieldDecl(
name='name_actuatoradr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='actuator name pointers',
array_extent=('nactuator',),
),
StructFieldDecl(
name='name_sensoradr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='sensor name pointers',
array_extent=('nsensor',),
),
StructFieldDecl(
name='name_numericadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='numeric name pointers',
array_extent=('nnumeric',),
),
StructFieldDecl(
name='name_textadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='text name pointers',
array_extent=('ntext',),
),
StructFieldDecl(
name='name_tupleadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='tuple name pointers',
array_extent=('ntuple',),
),
StructFieldDecl(
name='name_keyadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='keyframe name pointers',
array_extent=('nkey',),
),
StructFieldDecl(
name='name_pluginadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='plugin instance name pointers',
array_extent=('nplugin',),
),
StructFieldDecl(
name='names',
type=PointerType(
inner_type=ValueType(name='char'),
),
doc='names of all objects, 0-terminated',
array_extent=('nnames',),
),
StructFieldDecl(
name='names_map',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='internal hash map of names',
array_extent=('nnames_map',),
),
StructFieldDecl(
name='paths',
type=PointerType(
inner_type=ValueType(name='char'),
),
doc='paths to assets, 0-terminated',
array_extent=('npaths',),
),
StructFieldDecl(
name='B_rownnz',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='body-dof: non-zeros in each row',
array_extent=('nbody',),
),
StructFieldDecl(
name='B_rowadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='body-dof: row addresses',
array_extent=('nbody',),
),
StructFieldDecl(
name='B_colind',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='body-dof: column indices',
array_extent=('nB',),
),
StructFieldDecl(
name='M_rownnz',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='reduced inertia: non-zeros in each row',
array_extent=('nv',),
),
StructFieldDecl(
name='M_rowadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='reduced inertia: row addresses',
array_extent=('nv',),
),
StructFieldDecl(
name='M_colind',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='reduced inertia: column indices',
array_extent=('nC',),
),
StructFieldDecl(
name='mapM2M',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='index mapping from qM to M',
array_extent=('nC',),
),
StructFieldDecl(
name='D_rownnz',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='full inertia: non-zeros in each row',
array_extent=('nv',),
),
StructFieldDecl(
name='D_rowadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='full inertia: row addresses',
array_extent=('nv',),
),
StructFieldDecl(
name='D_diag',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='full inertia: index of diagonal element',
array_extent=('nv',),
),
StructFieldDecl(
name='D_colind',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='full inertia: column indices',
array_extent=('nD',),
),
StructFieldDecl(
name='mapM2D',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='index mapping from M to D',
array_extent=('nD',),
),
StructFieldDecl(
name='mapD2M',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='index mapping from D to M',
array_extent=('nC',),
),
StructFieldDecl(
name='signature',
type=ValueType(name='uint64_t'),
doc='also held by the mjSpec that compiled this model',
),
),
)),
('mjPreContact',
StructDecl(
name='mjPreContact',
declname='struct mjPreContact_',
fields=(
StructFieldDecl(
name='dist',
type=ValueType(name='mjtNum'),
doc='',
),
StructFieldDecl(
name='pos',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(3,),
),
doc='',
),
StructFieldDecl(
name='normal',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(3,),
),
doc='contact normal of the collision',
),
StructFieldDecl(
name='tangent',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(3,),
),
doc='first tangent direction',
),
),
)),
('mjContact',
StructDecl(
name='mjContact',
declname='struct mjContact_',
fields=(
StructFieldDecl(
name='dist',
type=ValueType(name='mjtNum'),
doc='distance between nearest points; neg: penetration',
),
StructFieldDecl(
name='pos',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(3,),
),
doc='position of contact point: midpoint between geoms',
),
StructFieldDecl(
name='frame',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(9,),
),
doc='normal is in [0-2], points from geom[0] to geom[1]',
),
StructFieldDecl(
name='includemargin',
type=ValueType(name='mjtNum'),
doc='margin for force generation',
),
StructFieldDecl(
name='friction',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(5,),
),
doc='tangent1, 2, spin, roll1, 2',
),
StructFieldDecl(
name='solref',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(2,),
),
doc='constraint solver reference, normal direction',
),
StructFieldDecl(
name='solreffriction',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(2,),
),
doc='constraint solver reference, friction directions',
),
StructFieldDecl(
name='solimp',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(5,),
),
doc='constraint solver impedance',
),
StructFieldDecl(
name='mu',
type=ValueType(name='mjtNum'),
doc='friction of regularized cone, set by mj_makeConstraint',
),
StructFieldDecl(
name='H',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(36,),
),
doc='cone Hessian, set by mj_constraintUpdate',
),
StructFieldDecl(
name='dim',
type=ValueType(name='int'),
doc='contact space dimensionality: 1, 3, 4 or 6',
),
StructFieldDecl(
name='geom1',
type=ValueType(name='int'),
doc='id of geom 1; deprecated, use geom[0]',
),
StructFieldDecl(
name='geom2',
type=ValueType(name='int'),
doc='id of geom 2; deprecated, use geom[1]',
),
StructFieldDecl(
name='geom',
type=ArrayType(
inner_type=ValueType(name='int'),
extents=(2,),
),
doc='geom ids; -1 for flex',
),
StructFieldDecl(
name='flex',
type=ArrayType(
inner_type=ValueType(name='int'),
extents=(2,),
),
doc='flex ids; -1 for geom',
),
StructFieldDecl(
name='elem',
type=ArrayType(
inner_type=ValueType(name='int'),
extents=(2,),
),
doc='element ids; -1 for geom or flex vertex',
),
StructFieldDecl(
name='vert',
type=ArrayType(
inner_type=ValueType(name='int'),
extents=(2,),
),
doc='vertex ids; -1 for geom or flex element',
),
StructFieldDecl(
name='exclude',
type=ValueType(name='int'),
doc='0: include, 1: in gap, 2: fused, 3: no dofs, 4: passive',
),
StructFieldDecl(
name='efc_address',
type=ValueType(name='int'),
doc='address in efc; -1: not included',
),
),
)),
('mjWarningStat',
StructDecl(
name='mjWarningStat',
declname='struct mjWarningStat_',
fields=(
StructFieldDecl(
name='lastinfo',
type=ValueType(name='int'),
doc='info from last warning',
),
StructFieldDecl(
name='number',
type=ValueType(name='int'),
doc='how many times was warning raised',
),
),
)),
('mjTimerStat',
StructDecl(
name='mjTimerStat',
declname='struct mjTimerStat_',
fields=(
StructFieldDecl(
name='duration',
type=ValueType(name='mjtNum'),
doc='cumulative duration',
),
StructFieldDecl(
name='number',
type=ValueType(name='int'),
doc='how many times was timer called',
),
),
)),
('mjSolverStat',
StructDecl(
name='mjSolverStat',
declname='struct mjSolverStat_',
fields=(
StructFieldDecl(
name='improvement',
type=ValueType(name='mjtNum'),
doc='cost reduction, scaled by 1/trace(M(qpos0))',
),
StructFieldDecl(
name='gradient',
type=ValueType(name='mjtNum'),
doc='gradient norm (primal only, scaled)',
),
StructFieldDecl(
name='lineslope',
type=ValueType(name='mjtNum'),
doc='slope in linesearch',
),
StructFieldDecl(
name='nactive',
type=ValueType(name='int'),
doc='number of active constraints',
),
StructFieldDecl(
name='nchange',
type=ValueType(name='int'),
doc='number of constraint state changes',
),
StructFieldDecl(
name='neval',
type=ValueType(name='int'),
doc='number of cost evaluations in line search',
),
StructFieldDecl(
name='nupdate',
type=ValueType(name='int'),
doc='number of Cholesky updates in line search',
),
),
)),
('mjData',
StructDecl(
name='mjData',
declname='struct mjData_',
fields=(
StructFieldDecl(
name='narena',
type=ValueType(name='mjtSize'),
doc='size of the arena in bytes (inclusive of the stack)',
),
StructFieldDecl(
name='nbuffer',
type=ValueType(name='mjtSize'),
doc='size of main buffer in bytes',
),
StructFieldDecl(
name='nplugin',
type=ValueType(name='int'),
doc='number of plugin instances',
),
StructFieldDecl(
name='pstack',
type=ValueType(name='size_t'),
doc='first available byte in stack (mutable)',
),
StructFieldDecl(
name='pbase',
type=ValueType(name='size_t'),
doc='value of pstack when mj_markStack was last called (mutable)', # pylint: disable=line-too-long
),
StructFieldDecl(
name='parena',
type=ValueType(name='size_t'),
doc='first available byte in arena',
),
StructFieldDecl(
name='threadpool',
type=ValueType(name='uintptr_t'),
doc='thread pool pointer',
),
StructFieldDecl(
name='threadlock',
type=ValueType(name='mjtBool'),
doc='disable stack freeing during threaded execution',
),
StructFieldDecl(
name='maxuse_stack',
type=ValueType(name='mjtSize'),
doc='maximum stack allocation in bytes (mutable)',
),
StructFieldDecl(
name='maxuse_arena',
type=ValueType(name='mjtSize'),
doc='maximum arena allocation in bytes',
),
StructFieldDecl(
name='maxuse_con',
type=ValueType(name='int'),
doc='maximum number of contacts',
),
StructFieldDecl(
name='maxuse_efc',
type=ValueType(name='int'),
doc='maximum number of scalar constraints',
),
StructFieldDecl(
name='solver',
type=ArrayType(
inner_type=ValueType(name='mjSolverStat'),
extents=(4000,),
),
doc='solver statistics per island, per iteration',
),
StructFieldDecl(
name='solver_niter',
type=ArrayType(
inner_type=ValueType(name='int'),
extents=(20,),
),
doc='number of solver iterations, per island',
),
StructFieldDecl(
name='solver_nnz',
type=ArrayType(
inner_type=ValueType(name='int'),
extents=(20,),
),
doc='number of nonzeros in solver matrix, per island',
),
StructFieldDecl(
name='solver_fwdinv',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(2,),
),
doc='forward-inverse comparison: qfrc, efc',
),
StructFieldDecl(
name='warning',
type=ArrayType(
inner_type=ValueType(name='mjWarningStat'),
extents=(7,),
),
doc='warning statistics (mutable)',
),
StructFieldDecl(
name='timer',
type=ArrayType(
inner_type=ValueType(name='mjTimerStat'),
extents=(15,),
),
doc='timer statistics',
),
StructFieldDecl(
name='ncon',
type=ValueType(name='int'),
doc='number of detected contacts',
),
StructFieldDecl(
name='ne',
type=ValueType(name='int'),
doc='number of equality constraints',
),
StructFieldDecl(
name='nf',
type=ValueType(name='int'),
doc='number of friction constraints',
),
StructFieldDecl(
name='nl',
type=ValueType(name='int'),
doc='number of limit constraints',
),
StructFieldDecl(
name='nefc',
type=ValueType(name='int'),
doc='number of constraints',
),
StructFieldDecl(
name='nJ',
type=ValueType(name='int'),
doc='number of non-zeros in constraint Jacobian',
),
StructFieldDecl(
name='efm_active',
type=ValueType(name='int'),
doc='implicit effective metric M+K: 0 inactive, 1 active, 2 active + preconditioner exact', # pylint: disable=line-too-long
),
StructFieldDecl(
name='nefmK',
type=ValueType(name='int'),
doc='number of non-zeros in effective-stiffness CSR',
),
StructFieldDecl(
name='nefmdof',
type=ValueType(name='int'),
doc='number of rows in effective-metric factor',
),
StructFieldDecl(
name='nefmL',
type=ValueType(name='int'),
doc='number of non-zeros in the effective-metric factor',
),
StructFieldDecl(
name='nY',
type=ValueType(name='int'),
doc='number of non-zeros in constraint inverse inertia square root', # pylint: disable=line-too-long
),
StructFieldDecl(
name='nA',
type=ValueType(name='int'),
doc='number of non-zeros in constraint inverse inertia matrix',
),
StructFieldDecl(
name='nisland',
type=ValueType(name='int'),
doc='number of detected constraint islands',
),
StructFieldDecl(
name='nidof',
type=ValueType(name='int'),
doc='number of dofs in all islands',
),
StructFieldDecl(
name='ntree_awake',
type=ValueType(name='int'),
doc='number of awake trees',
),
StructFieldDecl(
name='nbody_awake',
type=ValueType(name='int'),
doc='number of awake dynamic and static bodies',
),
StructFieldDecl(
name='nparent_awake',
type=ValueType(name='int'),
doc='number of bodies with awake parents',
),
StructFieldDecl(
name='nv_awake',
type=ValueType(name='int'),
doc='number of awake dofs',
),
StructFieldDecl(
name='flg_energypos',
type=ValueType(name='mjtBool'),
doc='has mj_energyPos been called',
),
StructFieldDecl(
name='flg_energyvel',
type=ValueType(name='mjtBool'),
doc='has mj_energyVel been called',
),
StructFieldDecl(
name='flg_subtreevel',
type=ValueType(name='mjtBool'),
doc='has mj_subtreeVel been called',
),
StructFieldDecl(
name='flg_rnepost',
type=ValueType(name='mjtBool'),
doc='has mj_rnePostConstraint been called',
),
StructFieldDecl(
name='time',
type=ValueType(name='mjtNum'),
doc='simulation time',
),
StructFieldDecl(
name='energy',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(2,),
),
doc='potential, kinetic energy',
),
StructFieldDecl(
name='buffer',
type=PointerType(
inner_type=ValueType(name='void'),
),
doc='main buffer; all pointers point in it (nbuffer bytes)', # pylint: disable=line-too-long
),
StructFieldDecl(
name='arena',
type=PointerType(
inner_type=ValueType(name='void'),
),
doc='arena+stack buffer (narena bytes)', # pylint: disable=line-too-long
),
StructFieldDecl(
name='qpos',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='position',
array_extent=('nq',),
),
StructFieldDecl(
name='qvel',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='velocity',
array_extent=('nv',),
),
StructFieldDecl(
name='act',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='actuator activation',
array_extent=('na',),
),
StructFieldDecl(
name='history',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='history buffer',
array_extent=('nhistory',),
),
StructFieldDecl(
name='qacc_warmstart',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='acceleration used for warmstart',
array_extent=('nv',),
),
StructFieldDecl(
name='plugin_state',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='plugin state',
array_extent=('npluginstate',),
),
StructFieldDecl(
name='ctrl',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='control',
array_extent=('nu',),
),
StructFieldDecl(
name='qfrc_applied',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='applied generalized force',
array_extent=('nv',),
),
StructFieldDecl(
name='xfrc_applied',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='applied Cartesian force/torque',
array_extent=('nbody', 6),
),
StructFieldDecl(
name='eq_active',
type=PointerType(
inner_type=ValueType(name='mjtBool'),
),
doc='enable/disable constraints',
array_extent=('neq',),
),
StructFieldDecl(
name='mocap_pos',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='positions of mocap bodies',
array_extent=('nmocap', 3),
),
StructFieldDecl(
name='mocap_quat',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='orientations of mocap bodies',
array_extent=('nmocap', 4),
),
StructFieldDecl(
name='qacc',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='acceleration',
array_extent=('nv',),
),
StructFieldDecl(
name='act_dot',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='time-derivative of actuator activation',
array_extent=('na',),
),
StructFieldDecl(
name='userdata',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='user data, not touched by engine',
array_extent=('nuserdata',),
),
StructFieldDecl(
name='sensordata',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='sensor data array',
array_extent=('nsensordata',),
),
StructFieldDecl(
name='tree_asleep',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='<0: awake; >=0: index cycle of sleeping trees',
array_extent=('ntree',),
),
StructFieldDecl(
name='plugin',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='copy of m->plugin, required for deletion',
array_extent=('nplugin',),
),
StructFieldDecl(
name='plugin_data',
type=PointerType(
inner_type=ValueType(name='uintptr_t'),
),
doc='pointer to plugin-managed data structure',
array_extent=('nplugin',),
),
StructFieldDecl(
name='xpos',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='Cartesian position of body frame',
array_extent=('nbody', 3),
),
StructFieldDecl(
name='xquat',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='Cartesian orientation of body frame',
array_extent=('nbody', 4),
),
StructFieldDecl(
name='xmat',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='Cartesian orientation of body frame',
array_extent=('nbody', 9),
),
StructFieldDecl(
name='xipos',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='Cartesian position of body com',
array_extent=('nbody', 3),
),
StructFieldDecl(
name='ximat',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='Cartesian orientation of body inertia',
array_extent=('nbody', 9),
),
StructFieldDecl(
name='xanchor',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='Cartesian position of joint anchor',
array_extent=('njnt', 3),
),
StructFieldDecl(
name='xaxis',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='Cartesian joint axis',
array_extent=('njnt', 3),
),
StructFieldDecl(
name='geom_xpos',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='Cartesian geom position',
array_extent=('ngeom', 3),
),
StructFieldDecl(
name='geom_xmat',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='Cartesian geom orientation',
array_extent=('ngeom', 9),
),
StructFieldDecl(
name='site_xpos',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='Cartesian site position',
array_extent=('nsite', 3),
),
StructFieldDecl(
name='site_xmat',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='Cartesian site orientation',
array_extent=('nsite', 9),
),
StructFieldDecl(
name='cam_xpos',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='Cartesian camera position',
array_extent=('ncam', 3),
),
StructFieldDecl(
name='cam_xmat',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='Cartesian camera orientation',
array_extent=('ncam', 9),
),
StructFieldDecl(
name='light_xpos',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='Cartesian light position',
array_extent=('nlight', 3),
),
StructFieldDecl(
name='light_xdir',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='Cartesian light direction',
array_extent=('nlight', 3),
),
StructFieldDecl(
name='subtree_com',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='center of mass of each subtree',
array_extent=('nbody', 3),
),
StructFieldDecl(
name='cdof',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='com-based motion axis of each dof (rot:lin)',
array_extent=('nv', 6),
),
StructFieldDecl(
name='cinert',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='com-based body inertia and mass',
array_extent=('nbody', 10),
),
StructFieldDecl(
name='flexvert_xpos',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='Cartesian flex vertex positions',
array_extent=('nflexvert', 3),
),
StructFieldDecl(
name='flexelem_aabb',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='flex element bounding boxes (center, size)',
array_extent=('nflexelem', 6),
),
StructFieldDecl(
name='flexelem_krot',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='corotated element stiffness (implicit only)',
array_extent=('nflexstiffness',),
),
StructFieldDecl(
name='flexedge_J',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='flex edge Jacobian',
array_extent=('nJfe',),
),
StructFieldDecl(
name='flexedge_length',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='flex edge lengths',
array_extent=('nflexedge',),
),
StructFieldDecl(
name='flexvert_J',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='flex vertex Jacobian',
array_extent=('nJfv', 2),
),
StructFieldDecl(
name='flexvert_length',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='flex vertex lengths',
array_extent=('nflexvert', 2),
),
StructFieldDecl(
name='bvh_aabb_dyn',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='global bounding box (center, size)',
array_extent=('nbvhdynamic', 6),
),
StructFieldDecl(
name='ten_wrapadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc="start address of tendon's path",
array_extent=('ntendon',),
),
StructFieldDecl(
name='ten_wrapnum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of wrap points in path',
array_extent=('ntendon',),
),
StructFieldDecl(
name='ten_J',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='tendon Jacobian',
array_extent=('nJten',),
),
StructFieldDecl(
name='ten_length',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='tendon lengths',
array_extent=('ntendon',),
),
StructFieldDecl(
name='wrap_obj',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='geom id; -1: site; -2: pulley',
array_extent=('nwrap', 2),
),
StructFieldDecl(
name='wrap_xpos',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='Cartesian 3D points in all paths',
array_extent=('nwrap', 6),
),
StructFieldDecl(
name='actuator_length',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='actuator lengths, one per force output',
array_extent=('nout',),
),
StructFieldDecl(
name='moment_rownnz',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of non-zeros in actuator_moment row',
array_extent=('nout',),
),
StructFieldDecl(
name='moment_rowadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='row start address in colind array',
array_extent=('nout',),
),
StructFieldDecl(
name='moment_colind',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='column indices in sparse Jacobian',
array_extent=('nJmom',),
),
StructFieldDecl(
name='actuator_moment',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='actuator moments',
array_extent=('nJmom',),
),
StructFieldDecl(
name='crb',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='com-based composite inertia and mass',
array_extent=('nbody', 10),
),
StructFieldDecl(
name='M',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='inertia (sparse)',
array_extent=('nC',),
),
StructFieldDecl(
name='qLD',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc="L'*D*L factorization of M (sparse)",
array_extent=('nC',),
),
StructFieldDecl(
name='qLDiagInv',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='1/diag(D)',
array_extent=('nv',),
),
StructFieldDecl(
name='bvh_active',
type=PointerType(
inner_type=ValueType(name='mjtBool'),
),
doc='was bounding volume checked for collision',
array_extent=('nbvh',),
),
StructFieldDecl(
name='tree_awake',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='is tree awake; 0: asleep; 1: awake',
array_extent=('ntree',),
),
StructFieldDecl(
name='body_awake',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='body sleep state (mjtSleepState)',
array_extent=('nbody',),
),
StructFieldDecl(
name='body_awake_ind',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='indices of awake and static bodies',
array_extent=('nbody',),
),
StructFieldDecl(
name='parent_awake_ind',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='indices of bodies with awake or static parents',
array_extent=('nbody',),
),
StructFieldDecl(
name='dof_awake_ind',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='indices of awake dofs',
array_extent=('nv',),
),
StructFieldDecl(
name='flexedge_velocity',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='flex edge velocities',
array_extent=('nflexedge',),
),
StructFieldDecl(
name='ten_velocity',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='tendon velocities',
array_extent=('ntendon',),
),
StructFieldDecl(
name='actuator_velocity',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='actuator velocities, one per force output',
array_extent=('nout',),
),
StructFieldDecl(
name='cvel',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='com-based velocity (rot:lin)',
array_extent=('nbody', 6),
),
StructFieldDecl(
name='cdof_dot',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='time-derivative of cdof (rot:lin)',
array_extent=('nv', 6),
),
StructFieldDecl(
name='qfrc_bias',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='C(qpos,qvel)',
array_extent=('nv',),
),
StructFieldDecl(
name='qfrc_spring',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='passive spring force',
array_extent=('nv',),
),
StructFieldDecl(
name='qfrc_damper',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='passive damper force',
array_extent=('nv',),
),
StructFieldDecl(
name='qfrc_gravcomp',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='passive gravity compensation force',
array_extent=('nv',),
),
StructFieldDecl(
name='qfrc_fluid',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='passive fluid force',
array_extent=('nv',),
),
StructFieldDecl(
name='qfrc_passive',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='total passive force',
array_extent=('nv',),
),
StructFieldDecl(
name='subtree_linvel',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='linear velocity of subtree com',
array_extent=('nbody', 3),
),
StructFieldDecl(
name='subtree_angmom',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='angular momentum about subtree com',
array_extent=('nbody', 3),
),
StructFieldDecl(
name='qH',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc="L'*D*L factorization of modified M",
array_extent=('nC',),
),
StructFieldDecl(
name='qHDiagInv',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='1/diag(D) of modified M',
array_extent=('nv',),
),
StructFieldDecl(
name='qDeriv',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='d (passive + actuator - bias) / d qvel',
array_extent=('nD',),
),
StructFieldDecl(
name='qLU',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='sparse LU of (M - dt*qDeriv)',
array_extent=('nD',),
),
StructFieldDecl(
name='actuator_force',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='actuator force in actuation space',
array_extent=('nout',),
),
StructFieldDecl(
name='qfrc_actuator',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='actuator force in joint space',
array_extent=('nv',),
),
StructFieldDecl(
name='qfrc_smooth',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='net unconstrained force',
array_extent=('nv',),
),
StructFieldDecl(
name='qacc_smooth',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='unconstrained acceleration',
array_extent=('nv',),
),
StructFieldDecl(
name='qfrc_constraint',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='constraint force',
array_extent=('nv',),
),
StructFieldDecl(
name='qfrc_inverse',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc="net external force; should equal: qfrc_applied + J'*xfrc_applied + qfrc_actuator", # pylint: disable=line-too-long
array_extent=('nv',),
),
StructFieldDecl(
name='cacc',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='com-based acceleration',
array_extent=('nbody', 6),
),
StructFieldDecl(
name='cfrc_int',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='com-based interaction force with parent',
array_extent=('nbody', 6),
),
StructFieldDecl(
name='cfrc_ext',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='com-based external force on body',
array_extent=('nbody', 6),
),
StructFieldDecl(
name='contact',
type=PointerType(
inner_type=ValueType(name='mjContact'),
),
doc='array of all detected contacts',
array_extent=('ncon',),
),
StructFieldDecl(
name='efc_type',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='constraint type (mjtConstraint)',
array_extent=('nefc',),
),
StructFieldDecl(
name='efc_id',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='id of object of specified type',
array_extent=('nefc',),
),
StructFieldDecl(
name='efc_J_rownnz',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of non-zeros in constraint Jacobian row',
array_extent=('nefc',),
),
StructFieldDecl(
name='efc_J_rowadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='row start address in colind array',
array_extent=('nefc',),
),
StructFieldDecl(
name='efc_J_rowsuper',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of subsequent rows in supernode',
array_extent=('nefc',),
),
StructFieldDecl(
name='efc_J_colind',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='column indices in constraint Jacobian',
array_extent=('nJ',),
),
StructFieldDecl(
name='efc_J',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='constraint Jacobian',
array_extent=('nJ',),
),
StructFieldDecl(
name='efc_pos',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='constraint position (equality, contact)',
array_extent=('nefc',),
),
StructFieldDecl(
name='efc_margin',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='inclusion margin (contact)',
array_extent=('nefc',),
),
StructFieldDecl(
name='efc_frictionloss',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='frictionloss (friction)',
array_extent=('nefc',),
),
StructFieldDecl(
name='efc_diagA',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='diagonal of A matrix, approximate or exact',
array_extent=('nefc',),
),
StructFieldDecl(
name='efc_KBIP',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc="stiffness, damping, impedance, imp'",
array_extent=('nefc', 4),
),
StructFieldDecl(
name='efc_D',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='constraint mass',
array_extent=('nefc',),
),
StructFieldDecl(
name='efc_R',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='inverse constraint mass',
array_extent=('nefc',),
),
StructFieldDecl(
name='tendon_efcadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='first efc address involving tendon; -1: none',
array_extent=('ntendon',),
),
StructFieldDecl(
name='tree_island',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='island id of this tree; -1: none',
array_extent=('ntree',),
),
StructFieldDecl(
name='island_ntree',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of trees in this island',
array_extent=('nisland',),
),
StructFieldDecl(
name='island_itreeadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='island start address in itree vector',
array_extent=('nisland',),
),
StructFieldDecl(
name='map_itree2tree',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='map from itree to tree',
array_extent=('ntree',),
),
StructFieldDecl(
name='dof_island',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='island id of this dof; -1: none',
array_extent=('nv',),
),
StructFieldDecl(
name='island_nv',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of dofs in this island',
array_extent=('nisland',),
),
StructFieldDecl(
name='island_idofadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='island start address in idof vector',
array_extent=('nisland',),
),
StructFieldDecl(
name='island_dofadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='island start address in dof vector',
array_extent=('nisland',),
),
StructFieldDecl(
name='map_dof2idof',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='map from dof to idof',
array_extent=('nv',),
),
StructFieldDecl(
name='map_idof2dof',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='map from idof to dof; >= nidof: unconstrained',
array_extent=('nv',),
),
StructFieldDecl(
name='ifrc_smooth',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='net unconstrained force',
array_extent=('nidof',),
),
StructFieldDecl(
name='iacc_smooth',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='unconstrained acceleration',
array_extent=('nidof',),
),
StructFieldDecl(
name='iacc',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='acceleration',
array_extent=('nidof',),
),
StructFieldDecl(
name='efc_island',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='island id of this constraint',
array_extent=('nefc',),
),
StructFieldDecl(
name='island_ne',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of equality constraints in island',
array_extent=('nisland',),
),
StructFieldDecl(
name='island_nf',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of friction constraints in island',
array_extent=('nisland',),
),
StructFieldDecl(
name='island_nefc',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of constraints in island',
array_extent=('nisland',),
),
StructFieldDecl(
name='island_iefcadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='start address in iefc vector',
array_extent=('nisland',),
),
StructFieldDecl(
name='map_efc2iefc',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='map from efc to iefc',
array_extent=('nefc',),
),
StructFieldDecl(
name='map_iefc2efc',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='map from iefc to efc',
array_extent=('nefc',),
),
StructFieldDecl(
name='iefc_type',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='constraint type (mjtConstraint)',
array_extent=('nefc',),
),
StructFieldDecl(
name='iefc_id',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='id of object of specified type',
array_extent=('nefc',),
),
StructFieldDecl(
name='iefc_frictionloss',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='frictionloss (friction)',
array_extent=('nefc',),
),
StructFieldDecl(
name='iefc_D',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='constraint mass',
array_extent=('nefc',),
),
StructFieldDecl(
name='iefc_R',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='inverse constraint mass',
array_extent=('nefc',),
),
StructFieldDecl(
name='efc_Y_rownnz',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of non-zeros in Y row',
array_extent=('nefc',),
),
StructFieldDecl(
name='efc_Y_rowadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='row start address in Y colind array',
array_extent=('nefc',),
),
StructFieldDecl(
name='efc_Y_colind',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='column indices in sparse Y',
array_extent=('nY',),
),
StructFieldDecl(
name='efc_Y',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='whitened Jacobian Y = J*M^(-1/2)',
array_extent=('nY',),
),
StructFieldDecl(
name='efc_AR_rownnz',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of non-zeros in AR',
array_extent=('nefc',),
),
StructFieldDecl(
name='efc_AR_rowadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='row start address in AR colind array',
array_extent=('nefc',),
),
StructFieldDecl(
name='efc_AR_colind',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='column indices in sparse AR',
array_extent=('nA',),
),
StructFieldDecl(
name='efc_AR',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc="J*inv(M)*J' + R",
array_extent=('nA',),
),
StructFieldDecl(
name='efc_vel',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='velocity in constraint space: J*qvel',
array_extent=('nefc',),
),
StructFieldDecl(
name='efc_aref',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='reference pseudo-acceleration',
array_extent=('nefc',),
),
StructFieldDecl(
name='efm_c',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='smooth-force shift h*K*qvel',
array_extent=('nv',),
),
StructFieldDecl(
name='efm_K_rownnz',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='effective-stiffness CSR row nonzeros',
array_extent=('nv',),
),
StructFieldDecl(
name='efm_K_rowadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='effective-stiffness CSR row addresses',
array_extent=('nv',),
),
StructFieldDecl(
name='efm_K_colind',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='effective-stiffness CSR column indices',
array_extent=('nefmK',),
),
StructFieldDecl(
name='efm_K_val',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='effective-stiffness CSR values',
array_extent=('nefmK',),
),
StructFieldDecl(
name='efm_dofid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='factor row -> dof address',
array_extent=('nefmdof',),
),
StructFieldDecl(
name='efm_L_rownnz',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='factor row nonzeros',
array_extent=('nefmdof',),
),
StructFieldDecl(
name='efm_L_rowadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='factor row addresses',
array_extent=('nefmdof',),
),
StructFieldDecl(
name='efm_L_colind',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='factor column indices',
array_extent=('nefmL',),
),
StructFieldDecl(
name='efm_L',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='Cholesky factor of diag(M)+K, covered dofs',
array_extent=('nefmL',),
),
StructFieldDecl(
name='efc_b',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='linear cost term: J*qacc_smooth - aref',
array_extent=('nefc',),
),
StructFieldDecl(
name='iefc_aref',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='reference pseudo-acceleration',
array_extent=('nefc',),
),
StructFieldDecl(
name='iefc_state',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='constraint state (mjtConstraintState)',
array_extent=('nefc',),
),
StructFieldDecl(
name='iefc_force',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='constraint force in constraint space',
array_extent=('nefc',),
),
StructFieldDecl(
name='efc_state',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='constraint state (mjtConstraintState)',
array_extent=('nefc',),
),
StructFieldDecl(
name='efc_force',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='constraint force in constraint space',
array_extent=('nefc',),
),
StructFieldDecl(
name='ifrc_constraint',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='constraint force',
array_extent=('nidof',),
),
StructFieldDecl(
name='signature',
type=ValueType(name='uint64_t'),
doc='also held by the mjSpec that compiled the model',
),
),
)),
('mjsElement',
StructDecl(
name='mjsElement',
declname='struct mjsElement_',
fields=(
StructFieldDecl(
name='elemtype',
type=ValueType(name='mjtObj'),
doc='element type',
),
StructFieldDecl(
name='signature',
type=ValueType(name='uint64_t'),
doc='compilation signature',
),
),
)),
('mjsCompiler',
StructDecl(
name='mjsCompiler',
declname='struct mjsCompiler_',
fields=(
StructFieldDecl(
name='autolimits',
type=ValueType(name='mjtBool'),
doc='infer "limited" attribute based on range',
),
StructFieldDecl(
name='boundmass',
type=ValueType(name='double'),
doc='enforce minimum body mass',
),
StructFieldDecl(
name='boundinertia',
type=ValueType(name='double'),
doc='enforce minimum body diagonal inertia',
),
StructFieldDecl(
name='settotalmass',
type=ValueType(name='double'),
doc='rescale masses and inertias; <=0: ignore',
),
StructFieldDecl(
name='balanceinertia',
type=ValueType(name='mjtBool'),
doc='automatically impose A + B >= C rule',
),
StructFieldDecl(
name='fitaabb',
type=ValueType(name='mjtBool'),
doc='meshfit to aabb instead of inertia box',
),
StructFieldDecl(
name='degree',
type=ValueType(name='mjtBool'),
doc='angles in radians or degrees',
),
StructFieldDecl(
name='eulerseq',
type=ArrayType(
inner_type=ValueType(name='char'),
extents=(3,),
),
doc='sequence for euler rotations',
),
StructFieldDecl(
name='discardvisual',
type=ValueType(name='mjtBool'),
doc='discard visual geoms in parser',
),
StructFieldDecl(
name='usethread',
type=ValueType(name='mjtBool'),
doc='use multiple threads to speed up compiler',
),
StructFieldDecl(
name='fusestatic',
type=ValueType(name='mjtBool'),
doc='fuse static bodies with parent',
),
StructFieldDecl(
name='inertiafromgeom',
type=ValueType(name='mjtInertiaFromGeom'),
doc='use geom inertias',
),
StructFieldDecl(
name='inertiagrouprange',
type=ArrayType(
inner_type=ValueType(name='int'),
extents=(2,),
),
doc='range of geom groups used to compute inertia',
),
StructFieldDecl(
name='saveinertial',
type=ValueType(name='mjtBool'),
doc='save explicit inertial clause for all bodies to XML',
),
StructFieldDecl(
name='alignfree',
type=ValueType(name='mjtBool'),
doc='align free joints with inertial frame',
),
StructFieldDecl(
name='conflict',
type=ValueType(name='mjtConflict'),
doc='conflict resolution for attach',
),
StructFieldDecl(
name='LRopt',
type=ValueType(name='mjLROpt'),
doc='options for lengthrange computation',
),
StructFieldDecl(
name='meshdir',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='mesh and hfield directory',
),
StructFieldDecl(
name='texturedir',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='texture directory',
),
StructFieldDecl(
name='authored',
type=ValueType(name='uint64_t'),
doc='bitmask of authored compiler fields',
),
),
)),
('mjsAuthored',
StructDecl(
name='mjsAuthored',
declname='struct mjsAuthored_',
fields=(
StructFieldDecl(
name='option',
type=ValueType(name='uint64_t'),
doc='authored mjOption fields',
),
StructFieldDecl(
name='disableflags',
type=ValueType(name='int'),
doc='individual authored disable flags',
),
StructFieldDecl(
name='enableflags',
type=ValueType(name='int'),
doc='individual authored enable flags',
),
StructFieldDecl(
name='disableactuator',
type=ValueType(name='int'),
doc='individual authored actuator groups',
),
StructFieldDecl(
name='visual_global',
type=ValueType(name='uint64_t'),
doc='authored visual.global fields',
),
StructFieldDecl(
name='visual_quality',
type=ValueType(name='uint64_t'),
doc='authored visual.quality fields',
),
StructFieldDecl(
name='visual_headlight',
type=ValueType(name='uint64_t'),
doc='authored visual.headlight fields',
),
StructFieldDecl(
name='visual_map',
type=ValueType(name='uint64_t'),
doc='authored visual.map fields',
),
StructFieldDecl(
name='visual_scale',
type=ValueType(name='uint64_t'),
doc='authored visual.scale fields',
),
StructFieldDecl(
name='visual_rgba',
type=ValueType(name='uint64_t'),
doc='authored visual.rgba fields',
),
),
)),
('mjSpec',
StructDecl(
name='mjSpec',
declname='struct mjSpec_',
fields=(
StructFieldDecl(
name='element',
type=PointerType(
inner_type=ValueType(name='mjsElement'),
),
doc='element type',
),
StructFieldDecl(
name='modelname',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='model name',
),
StructFieldDecl(
name='compiler',
type=ValueType(name='mjsCompiler'),
doc='compiler options',
),
StructFieldDecl(
name='strippath',
type=ValueType(name='mjtBool'),
doc='automatically strip paths from mesh files',
),
StructFieldDecl(
name='option',
type=ValueType(name='mjOption'),
doc='physics options',
),
StructFieldDecl(
name='visual',
type=ValueType(name='mjVisual'),
doc='visual options',
),
StructFieldDecl(
name='stat',
type=ValueType(name='mjStatistic'),
doc='statistics override (if defined)',
),
StructFieldDecl(
name='memory',
type=ValueType(name='mjtSize'),
doc='number of bytes in arena+stack memory',
),
StructFieldDecl(
name='nemax',
type=ValueType(name='int'),
doc='max number of equality constraints',
),
StructFieldDecl(
name='nuserdata',
type=ValueType(name='int'),
doc='number of mjtNums in userdata',
),
StructFieldDecl(
name='nuser_body',
type=ValueType(name='int'),
doc='number of mjtNums in body_user',
),
StructFieldDecl(
name='nuser_jnt',
type=ValueType(name='int'),
doc='number of mjtNums in jnt_user',
),
StructFieldDecl(
name='nuser_geom',
type=ValueType(name='int'),
doc='number of mjtNums in geom_user',
),
StructFieldDecl(
name='nuser_site',
type=ValueType(name='int'),
doc='number of mjtNums in site_user',
),
StructFieldDecl(
name='nuser_cam',
type=ValueType(name='int'),
doc='number of mjtNums in cam_user',
),
StructFieldDecl(
name='nuser_tendon',
type=ValueType(name='int'),
doc='number of mjtNums in tendon_user',
),
StructFieldDecl(
name='nuser_actuator',
type=ValueType(name='int'),
doc='number of mjtNums in actuator_user',
),
StructFieldDecl(
name='nuser_sensor',
type=ValueType(name='int'),
doc='number of mjtNums in sensor_user',
),
StructFieldDecl(
name='nkey',
type=ValueType(name='int'),
doc='number of keyframes',
),
StructFieldDecl(
name='njmax',
type=ValueType(name='int'),
doc='(deprecated) max number of constraints',
),
StructFieldDecl(
name='nconmax',
type=ValueType(name='int'),
doc='(deprecated) max number of detected contacts',
),
StructFieldDecl(
name='nstack',
type=ValueType(name='mjtSize'),
doc='(deprecated) number of mjtNums in mjData stack',
),
StructFieldDecl(
name='comment',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='comment at top of XML',
),
StructFieldDecl(
name='modelfiledir',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='path to model file',
),
StructFieldDecl(
name='hasImplicitPluginElem',
type=ValueType(name='mjtBool'),
doc='already encountered an implicit plugin sensor/actuator',
),
StructFieldDecl(
name='authored',
type=ValueType(name='mjsAuthored'),
doc='authored tracking bitmasks for mjModel structs',
),
),
)),
('mjsOrientation',
StructDecl(
name='mjsOrientation',
declname='struct mjsOrientation_',
fields=(
StructFieldDecl(
name='type',
type=ValueType(name='mjtOrientation'),
doc='active orientation specifier',
),
StructFieldDecl(
name='axisangle',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(4,),
),
doc='axis and angle',
),
StructFieldDecl(
name='xyaxes',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(6,),
),
doc='x and y axes',
),
StructFieldDecl(
name='zaxis',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(3,),
),
doc='z axis (minimal rotation)',
),
StructFieldDecl(
name='euler',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(3,),
),
doc='Euler angles',
),
),
)),
('mjsPlugin',
StructDecl(
name='mjsPlugin',
declname='struct mjsPlugin_',
fields=(
StructFieldDecl(
name='element',
type=PointerType(
inner_type=ValueType(name='mjsElement'),
),
doc='element type',
),
StructFieldDecl(
name='name',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='instance name',
),
StructFieldDecl(
name='plugin_name',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='plugin name',
),
StructFieldDecl(
name='active',
type=ValueType(name='mjtBool'),
doc='is the plugin active',
),
StructFieldDecl(
name='info',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='message appended to compiler errors',
),
),
)),
('mjsBody',
StructDecl(
name='mjsBody',
declname='struct mjsBody_',
fields=(
StructFieldDecl(
name='element',
type=PointerType(
inner_type=ValueType(name='mjsElement'),
),
doc='element type',
),
StructFieldDecl(
name='childclass',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='childclass name',
),
StructFieldDecl(
name='pos',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(3,),
),
doc='frame position',
),
StructFieldDecl(
name='quat',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(4,),
),
doc='frame orientation',
),
StructFieldDecl(
name='alt',
type=ValueType(name='mjsOrientation'),
doc='frame alternative orientation',
),
StructFieldDecl(
name='mass',
type=ValueType(name='double'),
doc='mass',
),
StructFieldDecl(
name='ipos',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(3,),
),
doc='inertial frame position',
),
StructFieldDecl(
name='iquat',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(4,),
),
doc='inertial frame orientation',
),
StructFieldDecl(
name='inertia',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(3,),
),
doc='diagonal inertia (in i-frame)',
),
StructFieldDecl(
name='ialt',
type=ValueType(name='mjsOrientation'),
doc='inertial frame alternative orientation',
),
StructFieldDecl(
name='fullinertia',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(6,),
),
doc='non-axis-aligned inertia matrix',
),
StructFieldDecl(
name='mocap',
type=ValueType(name='mjtBool'),
doc='is this a mocap body',
),
StructFieldDecl(
name='gravcomp',
type=ValueType(name='double'),
doc='gravity compensation',
),
StructFieldDecl(
name='sleep',
type=ValueType(name='mjtSleepPolicy'),
doc='sleep policy',
),
StructFieldDecl(
name='simple',
type=ValueType(name='mjtByte'),
doc='simple body optimization (0: false, 1: auto)',
),
StructFieldDecl(
name='userdata',
type=PointerType(
inner_type=ValueType(name='mjDoubleVec'),
),
doc='user data',
),
StructFieldDecl(
name='explicitinertial',
type=ValueType(name='mjtBool'),
doc='whether to save the body with explicit inertial clause',
),
StructFieldDecl(
name='plugin',
type=ValueType(name='mjsPlugin'),
doc='passive force plugin',
),
StructFieldDecl(
name='info',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='message appended to compiler errors',
),
),
)),
('mjsFrame',
StructDecl(
name='mjsFrame',
declname='struct mjsFrame_',
fields=(
StructFieldDecl(
name='element',
type=PointerType(
inner_type=ValueType(name='mjsElement'),
),
doc='element type',
),
StructFieldDecl(
name='childclass',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='childclass name',
),
StructFieldDecl(
name='pos',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(3,),
),
doc='position',
),
StructFieldDecl(
name='quat',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(4,),
),
doc='orientation',
),
StructFieldDecl(
name='alt',
type=ValueType(name='mjsOrientation'),
doc='alternative orientation',
),
StructFieldDecl(
name='info',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='message appended to compiler errors',
),
),
)),
('mjsJoint',
StructDecl(
name='mjsJoint',
declname='struct mjsJoint_',
fields=(
StructFieldDecl(
name='element',
type=PointerType(
inner_type=ValueType(name='mjsElement'),
),
doc='element type',
),
StructFieldDecl(
name='type',
type=ValueType(name='mjtJoint'),
doc='joint type',
),
StructFieldDecl(
name='pos',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(3,),
),
doc='anchor position',
),
StructFieldDecl(
name='axis',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(3,),
),
doc='joint axis',
),
StructFieldDecl(
name='ref',
type=ValueType(name='double'),
doc='value at reference configuration: qpos0',
),
StructFieldDecl(
name='align',
type=ValueType(name='mjtAlignFree'),
doc='align free joint with body com',
),
StructFieldDecl(
name='stiffness',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(3,),
),
doc='stiffness coefficients',
),
StructFieldDecl(
name='springref',
type=ValueType(name='double'),
doc='spring reference value: qpos_spring',
),
StructFieldDecl(
name='springdamper',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(2,),
),
doc='timeconst, dampratio',
),
StructFieldDecl(
name='limited',
type=ValueType(name='mjtLimited'),
doc='does joint have limits',
),
StructFieldDecl(
name='range',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(2,),
),
doc='joint limits',
),
StructFieldDecl(
name='margin',
type=ValueType(name='double'),
doc='margin value for joint limit detection',
),
StructFieldDecl(
name='solref_limit',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(2,),
),
doc='solver reference: joint limits',
),
StructFieldDecl(
name='solimp_limit',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(5,),
),
doc='solver impedance: joint limits',
),
StructFieldDecl(
name='actfrclimited',
type=ValueType(name='mjtLimited'),
doc='are actuator forces on joint limited',
),
StructFieldDecl(
name='actfrcrange',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(2,),
),
doc='actuator force limits',
),
StructFieldDecl(
name='armature',
type=ValueType(name='double'),
doc='armature inertia (mass for slider)',
),
StructFieldDecl(
name='damping',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(3,),
),
doc='damping coefficients',
),
StructFieldDecl(
name='frictionloss',
type=ValueType(name='double'),
doc='friction loss',
),
StructFieldDecl(
name='solref_friction',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(2,),
),
doc='solver reference: dof friction',
),
StructFieldDecl(
name='solimp_friction',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(5,),
),
doc='solver impedance: dof friction',
),
StructFieldDecl(
name='group',
type=ValueType(name='int'),
doc='group',
),
StructFieldDecl(
name='actgravcomp',
type=ValueType(name='mjtBool'),
doc='is gravcomp force applied via actuators',
),
StructFieldDecl(
name='userdata',
type=PointerType(
inner_type=ValueType(name='mjDoubleVec'),
),
doc='user data',
),
StructFieldDecl(
name='info',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='message appended to compiler errors',
),
),
)),
('mjsGeom',
StructDecl(
name='mjsGeom',
declname='struct mjsGeom_',
fields=(
StructFieldDecl(
name='element',
type=PointerType(
inner_type=ValueType(name='mjsElement'),
),
doc='element type',
),
StructFieldDecl(
name='type',
type=ValueType(name='mjtGeom'),
doc='geom type',
),
StructFieldDecl(
name='pos',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(3,),
),
doc='position',
),
StructFieldDecl(
name='quat',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(4,),
),
doc='orientation',
),
StructFieldDecl(
name='alt',
type=ValueType(name='mjsOrientation'),
doc='alternative orientation',
),
StructFieldDecl(
name='fromto',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(6,),
),
doc='alternative for capsule, cylinder, box, ellipsoid',
),
StructFieldDecl(
name='size',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(3,),
),
doc='type-specific size',
),
StructFieldDecl(
name='contype',
type=ValueType(name='int'),
doc='contact type',
),
StructFieldDecl(
name='conaffinity',
type=ValueType(name='int'),
doc='contact affinity',
),
StructFieldDecl(
name='condim',
type=ValueType(name='int'),
doc='contact dimensionality',
),
StructFieldDecl(
name='priority',
type=ValueType(name='int'),
doc='contact priority',
),
StructFieldDecl(
name='friction',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(3,),
),
doc='one-sided friction coefficients: slide, roll, spin',
),
StructFieldDecl(
name='solmix',
type=ValueType(name='double'),
doc='solver mixing for contact pairs',
),
StructFieldDecl(
name='solref',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(2,),
),
doc='solver reference',
),
StructFieldDecl(
name='solimp',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(5,),
),
doc='solver impedance',
),
StructFieldDecl(
name='margin',
type=ValueType(name='double'),
doc='margin for contact detection',
),
StructFieldDecl(
name='gap',
type=ValueType(name='double'),
doc='additional contact detection buffer',
),
StructFieldDecl(
name='surfacevel',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(6,),
),
doc='surface velocity in local frame: linear, angular',
),
StructFieldDecl(
name='mass',
type=ValueType(name='double'),
doc='used to compute density',
),
StructFieldDecl(
name='density',
type=ValueType(name='double'),
doc='used to compute mass and inertia from volume or surface',
),
StructFieldDecl(
name='typeinertia',
type=ValueType(name='mjtGeomInertia'),
doc='selects between surface and volume inertia',
),
StructFieldDecl(
name='fluid_ellipsoid',
type=ValueType(name='mjtNum'),
doc='whether ellipsoid-fluid model is active',
),
StructFieldDecl(
name='fluid_coefs',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(5,),
),
doc='ellipsoid-fluid interaction coefs',
),
StructFieldDecl(
name='material',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='name of material',
),
StructFieldDecl(
name='rgba',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='rgba when material is omitted',
),
StructFieldDecl(
name='group',
type=ValueType(name='int'),
doc='group',
),
StructFieldDecl(
name='hfieldname',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='heightfield attached to geom',
),
StructFieldDecl(
name='meshname',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='mesh attached to geom',
),
StructFieldDecl(
name='fitscale',
type=ValueType(name='double'),
doc='scale mesh uniformly',
),
StructFieldDecl(
name='userdata',
type=PointerType(
inner_type=ValueType(name='mjDoubleVec'),
),
doc='user data',
),
StructFieldDecl(
name='plugin',
type=ValueType(name='mjsPlugin'),
doc='sdf plugin',
),
StructFieldDecl(
name='info',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='message appended to compiler errors',
),
),
)),
('mjsSite',
StructDecl(
name='mjsSite',
declname='struct mjsSite_',
fields=(
StructFieldDecl(
name='element',
type=PointerType(
inner_type=ValueType(name='mjsElement'),
),
doc='element type',
),
StructFieldDecl(
name='pos',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(3,),
),
doc='position',
),
StructFieldDecl(
name='quat',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(4,),
),
doc='orientation',
),
StructFieldDecl(
name='alt',
type=ValueType(name='mjsOrientation'),
doc='alternative orientation',
),
StructFieldDecl(
name='fromto',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(6,),
),
doc='alternative for capsule, cylinder, box, ellipsoid',
),
StructFieldDecl(
name='size',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(3,),
),
doc='geom size',
),
StructFieldDecl(
name='type',
type=ValueType(name='mjtGeom'),
doc='geom type',
),
StructFieldDecl(
name='material',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='name of material',
),
StructFieldDecl(
name='group',
type=ValueType(name='int'),
doc='group',
),
StructFieldDecl(
name='rgba',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='rgba when material is omitted',
),
StructFieldDecl(
name='userdata',
type=PointerType(
inner_type=ValueType(name='mjDoubleVec'),
),
doc='user data',
),
StructFieldDecl(
name='info',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='message appended to compiler errors',
),
),
)),
('mjsCamera',
StructDecl(
name='mjsCamera',
declname='struct mjsCamera_',
fields=(
StructFieldDecl(
name='element',
type=PointerType(
inner_type=ValueType(name='mjsElement'),
),
doc='element type',
),
StructFieldDecl(
name='pos',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(3,),
),
doc='position',
),
StructFieldDecl(
name='quat',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(4,),
),
doc='orientation',
),
StructFieldDecl(
name='alt',
type=ValueType(name='mjsOrientation'),
doc='alternative orientation',
),
StructFieldDecl(
name='mode',
type=ValueType(name='mjtCamLight'),
doc='tracking mode',
),
StructFieldDecl(
name='targetbody',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='target body for tracking/targeting',
),
StructFieldDecl(
name='proj',
type=ValueType(name='mjtProjection'),
doc='camera projection type',
),
StructFieldDecl(
name='resolution',
type=ArrayType(
inner_type=ValueType(name='int'),
extents=(2,),
),
doc='resolution (pixel)',
),
StructFieldDecl(
name='output',
type=ValueType(name='int'),
doc='bit flags for output type',
),
StructFieldDecl(
name='fovy',
type=ValueType(name='double'),
doc='y-field of view',
),
StructFieldDecl(
name='ipd',
type=ValueType(name='double'),
doc='inter-pupillary distance',
),
StructFieldDecl(
name='intrinsic',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='camera intrinsics (length)',
),
StructFieldDecl(
name='sensor_size',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(2,),
),
doc='sensor size (length)',
),
StructFieldDecl(
name='focal_length',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(2,),
),
doc='focal length (length)',
),
StructFieldDecl(
name='focal_pixel',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(2,),
),
doc='focal length (pixel)',
),
StructFieldDecl(
name='principal_length',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(2,),
),
doc='principal point (length)',
),
StructFieldDecl(
name='principal_pixel',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(2,),
),
doc='principal point (pixel)',
),
StructFieldDecl(
name='userdata',
type=PointerType(
inner_type=ValueType(name='mjDoubleVec'),
),
doc='user data',
),
StructFieldDecl(
name='info',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='message appended to compiler errors',
),
),
)),
('mjsLight',
StructDecl(
name='mjsLight',
declname='struct mjsLight_',
fields=(
StructFieldDecl(
name='element',
type=PointerType(
inner_type=ValueType(name='mjsElement'),
),
doc='element type',
),
StructFieldDecl(
name='pos',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(3,),
),
doc='position',
),
StructFieldDecl(
name='dir',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(3,),
),
doc='direction',
),
StructFieldDecl(
name='mode',
type=ValueType(name='mjtCamLight'),
doc='tracking mode',
),
StructFieldDecl(
name='targetbody',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='target body for targeting',
),
StructFieldDecl(
name='active',
type=ValueType(name='mjtBool'),
doc='is light active',
),
StructFieldDecl(
name='type',
type=ValueType(name='mjtLightType'),
doc='type of light',
),
StructFieldDecl(
name='texture',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='texture name for image lights',
),
StructFieldDecl(
name='castshadow',
type=ValueType(name='mjtBool'),
doc='does light cast shadows',
),
StructFieldDecl(
name='bulbradius',
type=ValueType(name='float'),
doc='bulb radius, for soft shadows',
),
StructFieldDecl(
name='intensity',
type=ValueType(name='float'),
doc='intensity, in candelas',
),
StructFieldDecl(
name='range',
type=ValueType(name='float'),
doc='range of effectiveness',
),
StructFieldDecl(
name='attenuation',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='OpenGL attenuation (quadratic model)',
),
StructFieldDecl(
name='cutoff',
type=ValueType(name='float'),
doc='OpenGL cutoff',
),
StructFieldDecl(
name='exponent',
type=ValueType(name='float'),
doc='OpenGL exponent',
),
StructFieldDecl(
name='ambient',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='ambient color',
),
StructFieldDecl(
name='diffuse',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='diffuse color',
),
StructFieldDecl(
name='specular',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='specular color',
),
StructFieldDecl(
name='info',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='message appended to compiler errors',
),
),
)),
('mjsFlex',
StructDecl(
name='mjsFlex',
declname='struct mjsFlex_',
fields=(
StructFieldDecl(
name='element',
type=PointerType(
inner_type=ValueType(name='mjsElement'),
),
doc='element type',
),
StructFieldDecl(
name='contype',
type=ValueType(name='int'),
doc='contact type',
),
StructFieldDecl(
name='conaffinity',
type=ValueType(name='int'),
doc='contact affinity',
),
StructFieldDecl(
name='condim',
type=ValueType(name='int'),
doc='contact dimensionality',
),
StructFieldDecl(
name='priority',
type=ValueType(name='int'),
doc='contact priority',
),
StructFieldDecl(
name='friction',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(3,),
),
doc='one-sided friction coefficients: slide, roll, spin',
),
StructFieldDecl(
name='solmix',
type=ValueType(name='double'),
doc='solver mixing for contact pairs',
),
StructFieldDecl(
name='solref',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(2,),
),
doc='solver reference',
),
StructFieldDecl(
name='solimp',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(5,),
),
doc='solver impedance',
),
StructFieldDecl(
name='margin',
type=ValueType(name='double'),
doc='margin for contact detection',
),
StructFieldDecl(
name='gap',
type=ValueType(name='double'),
doc='additional contact detection buffer',
),
StructFieldDecl(
name='dim',
type=ValueType(name='int'),
doc='element dimensionality',
),
StructFieldDecl(
name='radius',
type=ValueType(name='double'),
doc='radius around primitive element',
),
StructFieldDecl(
name='size',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(3,),
),
doc='vertex bounding box half sizes in qpos0',
),
StructFieldDecl(
name='internal',
type=ValueType(name='mjtBool'),
doc='enable internal collisions',
),
StructFieldDecl(
name='flatskin',
type=ValueType(name='mjtBool'),
doc='render flex skin with flat shading',
),
StructFieldDecl(
name='selfcollide',
type=ValueType(name='mjtFlexSelf'),
doc='mode for flex self collision',
),
StructFieldDecl(
name='passive',
type=ValueType(name='int'),
doc='mode for passive collisions',
),
StructFieldDecl(
name='activelayers',
type=ValueType(name='int'),
doc='number of active element layers in 3D',
),
StructFieldDecl(
name='group',
type=ValueType(name='int'),
doc='group for visualization',
),
StructFieldDecl(
name='edgestiffness',
type=ValueType(name='double'),
doc='edge stiffness',
),
StructFieldDecl(
name='edgedamping',
type=ValueType(name='double'),
doc='edge damping',
),
StructFieldDecl(
name='rgba',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='rgba when material is omitted',
),
StructFieldDecl(
name='material',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='name of material used for rendering',
),
StructFieldDecl(
name='young',
type=ValueType(name='double'),
doc="Young's modulus",
),
StructFieldDecl(
name='poisson',
type=ValueType(name='double'),
doc="Poisson's ratio",
),
StructFieldDecl(
name='damping',
type=ValueType(name='double'),
doc="Rayleigh's damping",
),
StructFieldDecl(
name='thickness',
type=ValueType(name='double'),
doc='thickness (2D only)',
),
StructFieldDecl(
name='elastic2d',
type=ValueType(name='int'),
doc='2D passive forces; 0: none, 1: bending, 2: stretching, 3: both', # pylint: disable=line-too-long
),
StructFieldDecl(
name='cellcount',
type=ArrayType(
inner_type=ValueType(name='int'),
extents=(3,),
),
doc='grid cell count for finite cell method',
),
StructFieldDecl(
name='order',
type=ValueType(name='int'),
doc='interpolation order (1: trilinear, 2: quadratic)',
),
StructFieldDecl(
name='nodebody',
type=PointerType(
inner_type=ValueType(name='mjStringVec'),
),
doc='node body names',
),
StructFieldDecl(
name='vertbody',
type=PointerType(
inner_type=ValueType(name='mjStringVec'),
),
doc='vertex body names',
),
StructFieldDecl(
name='node',
type=PointerType(
inner_type=ValueType(name='mjDoubleVec'),
),
doc='node positions',
),
StructFieldDecl(
name='vert',
type=PointerType(
inner_type=ValueType(name='mjDoubleVec'),
),
doc='vertex positions',
),
StructFieldDecl(
name='elem',
type=PointerType(
inner_type=ValueType(name='mjIntVec'),
),
doc='element vertex ids',
),
StructFieldDecl(
name='texcoord',
type=PointerType(
inner_type=ValueType(name='mjFloatVec'),
),
doc='vertex texture coordinates',
),
StructFieldDecl(
name='elemtexcoord',
type=PointerType(
inner_type=ValueType(name='mjIntVec'),
),
doc='element texture coordinates',
),
StructFieldDecl(
name='info',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='message appended to compiler errors',
),
),
)),
('mjsMesh',
StructDecl(
name='mjsMesh',
declname='struct mjsMesh_',
fields=(
StructFieldDecl(
name='element',
type=PointerType(
inner_type=ValueType(name='mjsElement'),
),
doc='element type',
),
StructFieldDecl(
name='content_type',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='content type of file',
),
StructFieldDecl(
name='file',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='mesh file',
),
StructFieldDecl(
name='refpos',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(3,),
),
doc='reference position',
),
StructFieldDecl(
name='refquat',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(4,),
),
doc='reference orientation',
),
StructFieldDecl(
name='scale',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(3,),
),
doc='rescale mesh',
),
StructFieldDecl(
name='inertia',
type=ValueType(name='mjtMeshInertia'),
doc='inertia type (convex, legacy, exact, shell)',
),
StructFieldDecl(
name='smoothnormal',
type=ValueType(name='mjtBool'),
doc='do not exclude large-angle faces from normals',
),
StructFieldDecl(
name='needsdf',
type=ValueType(name='mjtBool'),
doc='compute sdf from mesh',
),
StructFieldDecl(
name='maxhullvert',
type=ValueType(name='int'),
doc='maximum vertex count for the convex hull',
),
StructFieldDecl(
name='uservert',
type=PointerType(
inner_type=ValueType(name='mjFloatVec'),
),
doc='user vertex data',
),
StructFieldDecl(
name='usernormal',
type=PointerType(
inner_type=ValueType(name='mjFloatVec'),
),
doc='user normal data',
),
StructFieldDecl(
name='usertexcoord',
type=PointerType(
inner_type=ValueType(name='mjFloatVec'),
),
doc='user texcoord data',
),
StructFieldDecl(
name='userface',
type=PointerType(
inner_type=ValueType(name='mjIntVec'),
),
doc='user vertex indices',
),
StructFieldDecl(
name='userfacenormal',
type=PointerType(
inner_type=ValueType(name='mjIntVec'),
),
doc='user face normal indices',
),
StructFieldDecl(
name='userfacetexcoord',
type=PointerType(
inner_type=ValueType(name='mjIntVec'),
),
doc='user texcoord indices',
),
StructFieldDecl(
name='plugin',
type=ValueType(name='mjsPlugin'),
doc='sdf plugin',
),
StructFieldDecl(
name='material',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='name of material',
),
StructFieldDecl(
name='octree_maxdepth',
type=ValueType(name='int'),
doc='max octree depth',
),
StructFieldDecl(
name='info',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='message appended to compiler errors',
),
),
)),
('mjsHField',
StructDecl(
name='mjsHField',
declname='struct mjsHField_',
fields=(
StructFieldDecl(
name='element',
type=PointerType(
inner_type=ValueType(name='mjsElement'),
),
doc='element type',
),
StructFieldDecl(
name='content_type',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='content type of file',
),
StructFieldDecl(
name='file',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='file: (nrow, ncol, [elevation data])',
),
StructFieldDecl(
name='size',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(4,),
),
doc='hfield size (ignore referencing geom size)',
),
StructFieldDecl(
name='nrow',
type=ValueType(name='int'),
doc='number of rows',
),
StructFieldDecl(
name='ncol',
type=ValueType(name='int'),
doc='number of columns',
),
StructFieldDecl(
name='userdata',
type=PointerType(
inner_type=ValueType(name='mjFloatVec'),
),
doc='user-provided elevation data',
),
StructFieldDecl(
name='info',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='message appended to compiler errors',
),
),
)),
('mjsSkin',
StructDecl(
name='mjsSkin',
declname='struct mjsSkin_',
fields=(
StructFieldDecl(
name='element',
type=PointerType(
inner_type=ValueType(name='mjsElement'),
),
doc='element type',
),
StructFieldDecl(
name='file',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='skin file',
),
StructFieldDecl(
name='material',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='name of material used for rendering',
),
StructFieldDecl(
name='rgba',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='rgba when material is omitted',
),
StructFieldDecl(
name='inflate',
type=ValueType(name='float'),
doc='inflate in normal direction',
),
StructFieldDecl(
name='group',
type=ValueType(name='int'),
doc='group for visualization',
),
StructFieldDecl(
name='vert',
type=PointerType(
inner_type=ValueType(name='mjFloatVec'),
),
doc='vertex positions',
),
StructFieldDecl(
name='texcoord',
type=PointerType(
inner_type=ValueType(name='mjFloatVec'),
),
doc='texture coordinates',
),
StructFieldDecl(
name='face',
type=PointerType(
inner_type=ValueType(name='mjIntVec'),
),
doc='faces',
),
StructFieldDecl(
name='bodyname',
type=PointerType(
inner_type=ValueType(name='mjStringVec'),
),
doc='body names',
),
StructFieldDecl(
name='bindpos',
type=PointerType(
inner_type=ValueType(name='mjFloatVec'),
),
doc='bind pos',
),
StructFieldDecl(
name='bindquat',
type=PointerType(
inner_type=ValueType(name='mjFloatVec'),
),
doc='bind quat',
),
StructFieldDecl(
name='vertid',
type=PointerType(
inner_type=ValueType(name='mjIntVecVec'),
),
doc='vertex ids',
),
StructFieldDecl(
name='vertweight',
type=PointerType(
inner_type=ValueType(name='mjFloatVecVec'),
),
doc='vertex weights',
),
StructFieldDecl(
name='info',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='message appended to compiler errors',
),
),
)),
('mjsTexture',
StructDecl(
name='mjsTexture',
declname='struct mjsTexture_',
fields=(
StructFieldDecl(
name='element',
type=PointerType(
inner_type=ValueType(name='mjsElement'),
),
doc='element type',
),
StructFieldDecl(
name='type',
type=ValueType(name='mjtTexture'),
doc='texture type',
),
StructFieldDecl(
name='colorspace',
type=ValueType(name='mjtColorSpace'),
doc='colorspace',
),
StructFieldDecl(
name='builtin',
type=ValueType(name='mjtBuiltin'),
doc='builtin type',
),
StructFieldDecl(
name='mark',
type=ValueType(name='mjtMark'),
doc='mark type',
),
StructFieldDecl(
name='rgb1',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(3,),
),
doc='first color for builtin',
),
StructFieldDecl(
name='rgb2',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(3,),
),
doc='second color for builtin',
),
StructFieldDecl(
name='markrgb',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(3,),
),
doc='mark color',
),
StructFieldDecl(
name='random',
type=ValueType(name='double'),
doc='probability of random dots',
),
StructFieldDecl(
name='height',
type=ValueType(name='int'),
doc='height in pixels (square for cube and skybox)',
),
StructFieldDecl(
name='width',
type=ValueType(name='int'),
doc='width in pixels',
),
StructFieldDecl(
name='nchannel',
type=ValueType(name='int'),
doc='number of channels',
),
StructFieldDecl(
name='content_type',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='content type of file',
),
StructFieldDecl(
name='file',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='png file to load; use for all sides of cube',
),
StructFieldDecl(
name='gridsize',
type=ArrayType(
inner_type=ValueType(name='int'),
extents=(2,),
),
doc='size of grid for composite file; (1,1)-repeat',
),
StructFieldDecl(
name='gridlayout',
type=ArrayType(
inner_type=ValueType(name='char'),
extents=(12,),
),
doc='row-major: L,R,F,B,U,D for faces; . for unused',
),
StructFieldDecl(
name='cubefiles',
type=PointerType(
inner_type=ValueType(name='mjStringVec'),
),
doc='different file for each side of the cube',
),
StructFieldDecl(
name='data',
type=PointerType(
inner_type=ValueType(name='mjByteVec'),
),
doc='texture data',
),
StructFieldDecl(
name='hflip',
type=ValueType(name='mjtBool'),
doc='horizontal flip',
),
StructFieldDecl(
name='vflip',
type=ValueType(name='mjtBool'),
doc='vertical flip',
),
StructFieldDecl(
name='info',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='message appended to compiler errors',
),
),
)),
('mjsMaterial',
StructDecl(
name='mjsMaterial',
declname='struct mjsMaterial_',
fields=(
StructFieldDecl(
name='element',
type=PointerType(
inner_type=ValueType(name='mjsElement'),
),
doc='element type',
),
StructFieldDecl(
name='textures',
type=PointerType(
inner_type=ValueType(name='mjStringVec'),
),
doc='names of textures (empty: none)',
),
StructFieldDecl(
name='texuniform',
type=ValueType(name='mjtBool'),
doc='make texture cube uniform',
),
StructFieldDecl(
name='texrepeat',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(2,),
),
doc='texture repetition for 2D mapping',
),
StructFieldDecl(
name='emission',
type=ValueType(name='float'),
doc='emission',
),
StructFieldDecl(
name='specular',
type=ValueType(name='float'),
doc='specular',
),
StructFieldDecl(
name='shininess',
type=ValueType(name='float'),
doc='shininess',
),
StructFieldDecl(
name='reflectance',
type=ValueType(name='float'),
doc='reflectance',
),
StructFieldDecl(
name='metallic',
type=ValueType(name='float'),
doc='metallic',
),
StructFieldDecl(
name='roughness',
type=ValueType(name='float'),
doc='roughness',
),
StructFieldDecl(
name='rgba',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='rgba',
),
StructFieldDecl(
name='info',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='message appended to compiler errors',
),
),
)),
('mjsPair',
StructDecl(
name='mjsPair',
declname='struct mjsPair_',
fields=(
StructFieldDecl(
name='element',
type=PointerType(
inner_type=ValueType(name='mjsElement'),
),
doc='element type',
),
StructFieldDecl(
name='geomname1',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='name of geom 1',
),
StructFieldDecl(
name='geomname2',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='name of geom 2',
),
StructFieldDecl(
name='condim',
type=ValueType(name='int'),
doc='contact dimensionality',
),
StructFieldDecl(
name='solref',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(2,),
),
doc='solver reference, normal direction',
),
StructFieldDecl(
name='solreffriction',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(2,),
),
doc='solver reference, frictional directions',
),
StructFieldDecl(
name='solimp',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(5,),
),
doc='solver impedance',
),
StructFieldDecl(
name='margin',
type=ValueType(name='double'),
doc='margin for contact detection',
),
StructFieldDecl(
name='gap',
type=ValueType(name='double'),
doc='additional contact detection buffer',
),
StructFieldDecl(
name='friction',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(5,),
),
doc='full contact friction',
),
StructFieldDecl(
name='info',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='message appended to errors',
),
),
)),
('mjsExclude',
StructDecl(
name='mjsExclude',
declname='struct mjsExclude_',
fields=(
StructFieldDecl(
name='element',
type=PointerType(
inner_type=ValueType(name='mjsElement'),
),
doc='element type',
),
StructFieldDecl(
name='bodyname1',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='name of geom 1',
),
StructFieldDecl(
name='bodyname2',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='name of geom 2',
),
StructFieldDecl(
name='info',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='message appended to errors',
),
),
)),
('mjsEquality',
StructDecl(
name='mjsEquality',
declname='struct mjsEquality_',
fields=(
StructFieldDecl(
name='element',
type=PointerType(
inner_type=ValueType(name='mjsElement'),
),
doc='element type',
),
StructFieldDecl(
name='type',
type=ValueType(name='mjtEq'),
doc='constraint type',
),
StructFieldDecl(
name='data',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(11,),
),
doc='type-dependent data',
),
StructFieldDecl(
name='active',
type=ValueType(name='mjtBool'),
doc='is equality initially active',
),
StructFieldDecl(
name='name1',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='name of object 1',
),
StructFieldDecl(
name='name2',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='name of object 2',
),
StructFieldDecl(
name='objtype',
type=ValueType(name='mjtObj'),
doc='type of both objects',
),
StructFieldDecl(
name='solref',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(2,),
),
doc='solver reference',
),
StructFieldDecl(
name='solimp',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(5,),
),
doc='solver impedance',
),
StructFieldDecl(
name='info',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='message appended to errors',
),
),
)),
('mjsTendon',
StructDecl(
name='mjsTendon',
declname='struct mjsTendon_',
fields=(
StructFieldDecl(
name='element',
type=PointerType(
inner_type=ValueType(name='mjsElement'),
),
doc='element type',
),
StructFieldDecl(
name='stiffness',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(3,),
),
doc='stiffness coefficients',
),
StructFieldDecl(
name='springlength',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(2,),
),
doc='spring resting length; {-1, -1}: use qpos_spring',
),
StructFieldDecl(
name='damping',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(3,),
),
doc='damping coefficients',
),
StructFieldDecl(
name='frictionloss',
type=ValueType(name='double'),
doc='friction loss',
),
StructFieldDecl(
name='solref_friction',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(2,),
),
doc='solver reference: tendon friction',
),
StructFieldDecl(
name='solimp_friction',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(5,),
),
doc='solver impedance: tendon friction',
),
StructFieldDecl(
name='armature',
type=ValueType(name='double'),
doc='inertia associated with tendon velocity',
),
StructFieldDecl(
name='limited',
type=ValueType(name='mjtLimited'),
doc='does tendon have limits',
),
StructFieldDecl(
name='actfrclimited',
type=ValueType(name='mjtLimited'),
doc='does tendon have actuator force limits',
),
StructFieldDecl(
name='range',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(2,),
),
doc='length limits',
),
StructFieldDecl(
name='actfrcrange',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(2,),
),
doc='actuator force limits',
),
StructFieldDecl(
name='margin',
type=ValueType(name='double'),
doc='margin value for tendon limit detection',
),
StructFieldDecl(
name='solref_limit',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(2,),
),
doc='solver reference: tendon limits',
),
StructFieldDecl(
name='solimp_limit',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(5,),
),
doc='solver impedance: tendon limits',
),
StructFieldDecl(
name='material',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='name of material for rendering',
),
StructFieldDecl(
name='width',
type=ValueType(name='double'),
doc='width for rendering',
),
StructFieldDecl(
name='rgba',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='rgba when material is omitted',
),
StructFieldDecl(
name='group',
type=ValueType(name='int'),
doc='group',
),
StructFieldDecl(
name='userdata',
type=PointerType(
inner_type=ValueType(name='mjDoubleVec'),
),
doc='user data',
),
StructFieldDecl(
name='info',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='message appended to errors',
),
),
)),
('mjsWrap',
StructDecl(
name='mjsWrap',
declname='struct mjsWrap_',
fields=(
StructFieldDecl(
name='element',
type=PointerType(
inner_type=ValueType(name='mjsElement'),
),
doc='element type',
),
StructFieldDecl(
name='type',
type=ValueType(name='mjtWrap'),
doc='wrap type',
),
StructFieldDecl(
name='info',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='message appended to errors',
),
),
)),
('mjsActuator',
StructDecl(
name='mjsActuator',
declname='struct mjsActuator_',
fields=(
StructFieldDecl(
name='element',
type=PointerType(
inner_type=ValueType(name='mjsElement'),
),
doc='element type',
),
StructFieldDecl(
name='gaintype',
type=ValueType(name='mjtGain'),
doc='gain type',
),
StructFieldDecl(
name='gainprm',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(10,),
),
doc='gain parameters',
),
StructFieldDecl(
name='biastype',
type=ValueType(name='mjtBias'),
doc='bias type',
),
StructFieldDecl(
name='biasprm',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(10,),
),
doc='bias parameters',
),
StructFieldDecl(
name='dyntype',
type=ValueType(name='mjtDyn'),
doc='dynamics type',
),
StructFieldDecl(
name='dynprm',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(10,),
),
doc='dynamics parameters',
),
StructFieldDecl(
name='actdim',
type=ValueType(name='int'),
doc='number of activation variables',
),
StructFieldDecl(
name='actearly',
type=ValueType(name='mjtBool'),
doc='apply next activations to qfrc',
),
StructFieldDecl(
name='trntype',
type=ValueType(name='mjtTrn'),
doc='transmission type',
),
StructFieldDecl(
name='gear',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(6,),
),
doc='length and transmitted force scaling',
),
StructFieldDecl(
name='target',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='name of transmission target',
),
StructFieldDecl(
name='refsite',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='reference site, for site transmission',
),
StructFieldDecl(
name='slidersite',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='site defining cylinder, for slider-crank',
),
StructFieldDecl(
name='cranklength',
type=ValueType(name='double'),
doc='crank length, for slider-crank',
),
StructFieldDecl(
name='lengthrange',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(2,),
),
doc='transmission length range',
),
StructFieldDecl(
name='inheritrange',
type=ValueType(name='double'),
doc='automatic range setting for position and intvelocity',
),
StructFieldDecl(
name='damping',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(3,),
),
doc='damping coefficients',
),
StructFieldDecl(
name='armature',
type=ValueType(name='double'),
doc='armature inertia',
),
StructFieldDecl(
name='ctrllimited',
type=ValueType(name='mjtLimited'),
doc='are control limits defined',
),
StructFieldDecl(
name='ctrlrange',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(2,),
),
doc='control range',
),
StructFieldDecl(
name='forcelimited',
type=ValueType(name='mjtLimited'),
doc='are force limits defined',
),
StructFieldDecl(
name='forcerange',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(2,),
),
doc='force range',
),
StructFieldDecl(
name='actlimited',
type=ValueType(name='mjtLimited'),
doc='are activation limits defined',
),
StructFieldDecl(
name='actrange',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(2,),
),
doc='activation range',
),
StructFieldDecl(
name='group',
type=ValueType(name='int'),
doc='group',
),
StructFieldDecl(
name='nsample',
type=ValueType(name='int'),
doc='number of samples in history buffer',
),
StructFieldDecl(
name='interp',
type=ValueType(name='int'),
doc='interpolation order (0=ZOH, 1=linear, 2=cubic)',
),
StructFieldDecl(
name='delay',
type=ValueType(name='double'),
doc='delay time in seconds; 0: no delay',
),
StructFieldDecl(
name='userdata',
type=PointerType(
inner_type=ValueType(name='mjDoubleVec'),
),
doc='user data',
),
StructFieldDecl(
name='plugin',
type=ValueType(name='mjsPlugin'),
doc='actuator plugin',
),
StructFieldDecl(
name='info',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='message appended to compiler errors',
),
),
)),
('mjsSensor',
StructDecl(
name='mjsSensor',
declname='struct mjsSensor_',
fields=(
StructFieldDecl(
name='element',
type=PointerType(
inner_type=ValueType(name='mjsElement'),
),
doc='element type',
),
StructFieldDecl(
name='type',
type=ValueType(name='mjtSensor'),
doc='type of sensor',
),
StructFieldDecl(
name='objtype',
type=ValueType(name='mjtObj'),
doc='type of sensorized object',
),
StructFieldDecl(
name='objname',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='name of sensorized object',
),
StructFieldDecl(
name='reftype',
type=ValueType(name='mjtObj'),
doc='type of referenced object',
),
StructFieldDecl(
name='refname',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='name of referenced object',
),
StructFieldDecl(
name='intprm',
type=ArrayType(
inner_type=ValueType(name='int'),
extents=(3,),
),
doc='integer parameters',
),
StructFieldDecl(
name='datatype',
type=ValueType(name='mjtDataType'),
doc='data type for sensor measurement',
),
StructFieldDecl(
name='needstage',
type=ValueType(name='mjtStage'),
doc='compute stage needed to simulate sensor',
),
StructFieldDecl(
name='dim',
type=ValueType(name='int'),
doc='number of scalar outputs',
),
StructFieldDecl(
name='cutoff',
type=ValueType(name='double'),
doc='cutoff for real and positive datatypes',
),
StructFieldDecl(
name='noise',
type=ValueType(name='double'),
doc='noise stdev',
),
StructFieldDecl(
name='nsample',
type=ValueType(name='int'),
doc='number of samples in history buffer',
),
StructFieldDecl(
name='interp',
type=ValueType(name='int'),
doc='interpolation order (0=ZOH, 1=linear, 2=cubic)',
),
StructFieldDecl(
name='delay',
type=ValueType(name='double'),
doc='delay time in seconds',
),
StructFieldDecl(
name='interval',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(2,),
),
doc='[period, time_prev] in seconds',
),
StructFieldDecl(
name='userdata',
type=PointerType(
inner_type=ValueType(name='mjDoubleVec'),
),
doc='user data',
),
StructFieldDecl(
name='plugin',
type=ValueType(name='mjsPlugin'),
doc='sensor plugin',
),
StructFieldDecl(
name='info',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='message appended to compiler errors',
),
),
)),
('mjsNumeric',
StructDecl(
name='mjsNumeric',
declname='struct mjsNumeric_',
fields=(
StructFieldDecl(
name='element',
type=PointerType(
inner_type=ValueType(name='mjsElement'),
),
doc='element type',
),
StructFieldDecl(
name='data',
type=PointerType(
inner_type=ValueType(name='mjDoubleVec'),
),
doc='initialization data',
),
StructFieldDecl(
name='size',
type=ValueType(name='int'),
doc='array size, can be bigger than data size',
),
StructFieldDecl(
name='info',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='message appended to compiler errors',
),
),
)),
('mjsText',
StructDecl(
name='mjsText',
declname='struct mjsText_',
fields=(
StructFieldDecl(
name='element',
type=PointerType(
inner_type=ValueType(name='mjsElement'),
),
doc='element type',
),
StructFieldDecl(
name='data',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='text string',
),
StructFieldDecl(
name='info',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='message appended to compiler errors',
),
),
)),
('mjsTuple',
StructDecl(
name='mjsTuple',
declname='struct mjsTuple_',
fields=(
StructFieldDecl(
name='element',
type=PointerType(
inner_type=ValueType(name='mjsElement'),
),
doc='element type',
),
StructFieldDecl(
name='objtype',
type=PointerType(
inner_type=ValueType(name='mjIntVec'),
),
doc='object types',
),
StructFieldDecl(
name='objname',
type=PointerType(
inner_type=ValueType(name='mjStringVec'),
),
doc='object names',
),
StructFieldDecl(
name='objprm',
type=PointerType(
inner_type=ValueType(name='mjDoubleVec'),
),
doc='object parameters',
),
StructFieldDecl(
name='info',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='message appended to compiler errors',
),
),
)),
('mjsKey',
StructDecl(
name='mjsKey',
declname='struct mjsKey_',
fields=(
StructFieldDecl(
name='element',
type=PointerType(
inner_type=ValueType(name='mjsElement'),
),
doc='element type',
),
StructFieldDecl(
name='time',
type=ValueType(name='double'),
doc='time',
),
StructFieldDecl(
name='qpos',
type=PointerType(
inner_type=ValueType(name='mjDoubleVec'),
),
doc='qpos',
),
StructFieldDecl(
name='qvel',
type=PointerType(
inner_type=ValueType(name='mjDoubleVec'),
),
doc='qvel',
),
StructFieldDecl(
name='act',
type=PointerType(
inner_type=ValueType(name='mjDoubleVec'),
),
doc='act',
),
StructFieldDecl(
name='mpos',
type=PointerType(
inner_type=ValueType(name='mjDoubleVec'),
),
doc='mocap pos',
),
StructFieldDecl(
name='mquat',
type=PointerType(
inner_type=ValueType(name='mjDoubleVec'),
),
doc='mocap quat',
),
StructFieldDecl(
name='ctrl',
type=PointerType(
inner_type=ValueType(name='mjDoubleVec'),
),
doc='ctrl',
),
StructFieldDecl(
name='info',
type=PointerType(
inner_type=ValueType(name='mjString'),
),
doc='message appended to compiler errors',
),
),
)),
('mjsDefault',
StructDecl(
name='mjsDefault',
declname='struct mjsDefault_',
fields=(
StructFieldDecl(
name='element',
type=PointerType(
inner_type=ValueType(name='mjsElement'),
),
doc='element type',
),
StructFieldDecl(
name='joint',
type=PointerType(
inner_type=ValueType(name='mjsJoint'),
),
doc='joint defaults',
),
StructFieldDecl(
name='geom',
type=PointerType(
inner_type=ValueType(name='mjsGeom'),
),
doc='geom defaults',
),
StructFieldDecl(
name='site',
type=PointerType(
inner_type=ValueType(name='mjsSite'),
),
doc='site defaults',
),
StructFieldDecl(
name='camera',
type=PointerType(
inner_type=ValueType(name='mjsCamera'),
),
doc='camera defaults',
),
StructFieldDecl(
name='light',
type=PointerType(
inner_type=ValueType(name='mjsLight'),
),
doc='light defaults',
),
StructFieldDecl(
name='flex',
type=PointerType(
inner_type=ValueType(name='mjsFlex'),
),
doc='flex defaults',
),
StructFieldDecl(
name='mesh',
type=PointerType(
inner_type=ValueType(name='mjsMesh'),
),
doc='mesh defaults',
),
StructFieldDecl(
name='material',
type=PointerType(
inner_type=ValueType(name='mjsMaterial'),
),
doc='material defaults',
),
StructFieldDecl(
name='pair',
type=PointerType(
inner_type=ValueType(name='mjsPair'),
),
doc='pair defaults',
),
StructFieldDecl(
name='equality',
type=PointerType(
inner_type=ValueType(name='mjsEquality'),
),
doc='equality defaults',
),
StructFieldDecl(
name='tendon',
type=PointerType(
inner_type=ValueType(name='mjsTendon'),
),
doc='tendon defaults',
),
StructFieldDecl(
name='actuator',
type=PointerType(
inner_type=ValueType(name='mjsActuator'),
),
doc='actuator defaults',
),
),
)),
('mjvPerturb',
StructDecl(
name='mjvPerturb',
declname='struct mjvPerturb_',
fields=(
StructFieldDecl(
name='select',
type=ValueType(name='int'),
doc='selected body id; non-positive: none',
),
StructFieldDecl(
name='flexselect',
type=ValueType(name='int'),
doc='selected flex id; negative: none',
),
StructFieldDecl(
name='skinselect',
type=ValueType(name='int'),
doc='selected skin id; negative: none',
),
StructFieldDecl(
name='active',
type=ValueType(name='int'),
doc='perturbation bitmask (mjtPertBit)',
),
StructFieldDecl(
name='active2',
type=ValueType(name='int'),
doc='secondary perturbation bitmask (mjtPertBit)',
),
StructFieldDecl(
name='refpos',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(3,),
),
doc='reference position for selected object',
),
StructFieldDecl(
name='refquat',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(4,),
),
doc='reference orientation for selected object',
),
StructFieldDecl(
name='refselpos',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(3,),
),
doc='reference position for selection point',
),
StructFieldDecl(
name='localpos',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(3,),
),
doc='selection point in object coordinates',
),
StructFieldDecl(
name='localmass',
type=ValueType(name='mjtNum'),
doc='spatial inertia at selection point',
),
StructFieldDecl(
name='scale',
type=ValueType(name='mjtNum'),
doc='relative mouse motion-to-space scaling (set by initPerturb)', # pylint: disable=line-too-long
),
),
)),
('mjvCamera',
StructDecl(
name='mjvCamera',
declname='struct mjvCamera_',
fields=(
StructFieldDecl(
name='type',
type=ValueType(name='int'),
doc='camera type (mjtCamera)',
),
StructFieldDecl(
name='fixedcamid',
type=ValueType(name='int'),
doc='fixed camera id',
),
StructFieldDecl(
name='trackbodyid',
type=ValueType(name='int'),
doc='body id to track',
),
StructFieldDecl(
name='lookat',
type=ArrayType(
inner_type=ValueType(name='mjtNum'),
extents=(3,),
),
doc='lookat point',
),
StructFieldDecl(
name='distance',
type=ValueType(name='mjtNum'),
doc='distance to lookat point or tracked body',
),
StructFieldDecl(
name='azimuth',
type=ValueType(name='mjtNum'),
doc='camera azimuth (deg)',
),
StructFieldDecl(
name='elevation',
type=ValueType(name='mjtNum'),
doc='camera elevation (deg)',
),
StructFieldDecl(
name='orthographic',
type=ValueType(name='int'),
doc='0: perspective; 1: orthographic',
),
),
)),
('mjvGLCamera',
StructDecl(
name='mjvGLCamera',
declname='struct mjvGLCamera_',
fields=(
StructFieldDecl(
name='pos',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='position',
),
StructFieldDecl(
name='forward',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='forward direction',
),
StructFieldDecl(
name='up',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='up direction',
),
StructFieldDecl(
name='frustum_center',
type=ValueType(name='float'),
doc='hor. center (left,right set to match aspect)',
),
StructFieldDecl(
name='frustum_width',
type=ValueType(name='float'),
doc='width (not used for rendering)',
),
StructFieldDecl(
name='frustum_bottom',
type=ValueType(name='float'),
doc='bottom',
),
StructFieldDecl(
name='frustum_top',
type=ValueType(name='float'),
doc='top',
),
StructFieldDecl(
name='frustum_near',
type=ValueType(name='float'),
doc='near',
),
StructFieldDecl(
name='frustum_far',
type=ValueType(name='float'),
doc='far',
),
StructFieldDecl(
name='orthographic',
type=ValueType(name='int'),
doc='0: perspective; 1: orthographic',
),
),
)),
('mjvGeom',
StructDecl(
name='mjvGeom',
declname='struct mjvGeom_',
fields=(
StructFieldDecl(
name='type',
type=ValueType(name='int'),
doc='geom type (mjtGeom)',
),
StructFieldDecl(
name='dataid',
type=ValueType(name='int'),
doc='mesh, hfield or plane id; -1: none; mesh: 2*id or 2*id+1 (hull)', # pylint: disable=line-too-long
),
StructFieldDecl(
name='objtype',
type=ValueType(name='int'),
doc='mujoco object type; mjOBJ_UNKNOWN for decor',
),
StructFieldDecl(
name='objid',
type=ValueType(name='int'),
doc='mujoco object id; -1 for decor',
),
StructFieldDecl(
name='category',
type=ValueType(name='int'),
doc='visual category',
),
StructFieldDecl(
name='matid',
type=ValueType(name='int'),
doc='material id; -1: no textured material',
),
StructFieldDecl(
name='texcoord',
type=ValueType(name='int'),
doc='mesh or flex geom has texture coordinates',
),
StructFieldDecl(
name='segid',
type=ValueType(name='int'),
doc='segmentation id; -1: not shown',
),
StructFieldDecl(
name='size',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='size parameters',
),
StructFieldDecl(
name='pos',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='Cartesian position',
),
StructFieldDecl(
name='mat',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(9,),
),
doc='Cartesian orientation',
),
StructFieldDecl(
name='rgba',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='color and transparency',
),
StructFieldDecl(
name='emission',
type=ValueType(name='float'),
doc='emission coef',
),
StructFieldDecl(
name='specular',
type=ValueType(name='float'),
doc='specular coef',
),
StructFieldDecl(
name='shininess',
type=ValueType(name='float'),
doc='shininess coef',
),
StructFieldDecl(
name='reflectance',
type=ValueType(name='float'),
doc='reflectance coef',
),
StructFieldDecl(
name='label',
type=ArrayType(
inner_type=ValueType(name='char'),
extents=(100,),
),
doc='text label',
),
StructFieldDecl(
name='camdist',
type=ValueType(name='float'),
doc='distance to camera (used by sorter)',
),
StructFieldDecl(
name='modelrbound',
type=ValueType(name='float'),
doc='geom rbound from model, 0 if not model geom',
),
StructFieldDecl(
name='transparent',
type=ValueType(name='mjtByte'),
doc='treat geom as transparent',
),
),
)),
('mjvLight',
StructDecl(
name='mjvLight',
declname='struct mjvLight_',
fields=(
StructFieldDecl(
name='id',
type=ValueType(name='int'),
doc='light id, -1 for headlight',
),
StructFieldDecl(
name='pos',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='position rel. to body frame',
),
StructFieldDecl(
name='dir',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='direction rel. to body frame',
),
StructFieldDecl(
name='type',
type=ValueType(name='int'),
doc='type (mjtLightType)',
),
StructFieldDecl(
name='texid',
type=ValueType(name='int'),
doc='texture id for image lights',
),
StructFieldDecl(
name='attenuation',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='OpenGL attenuation (quadratic model)',
),
StructFieldDecl(
name='cutoff',
type=ValueType(name='float'),
doc='OpenGL cutoff',
),
StructFieldDecl(
name='exponent',
type=ValueType(name='float'),
doc='OpenGL exponent',
),
StructFieldDecl(
name='ambient',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='ambient rgb (alpha=1)',
),
StructFieldDecl(
name='diffuse',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='diffuse rgb (alpha=1)',
),
StructFieldDecl(
name='specular',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='specular rgb (alpha=1)',
),
StructFieldDecl(
name='headlight',
type=ValueType(name='mjtByte'),
doc='headlight',
),
StructFieldDecl(
name='castshadow',
type=ValueType(name='mjtByte'),
doc='does light cast shadows',
),
StructFieldDecl(
name='bulbradius',
type=ValueType(name='float'),
doc='bulb radius for soft shadows',
),
StructFieldDecl(
name='intensity',
type=ValueType(name='float'),
doc='intensity, in candelas',
),
StructFieldDecl(
name='range',
type=ValueType(name='float'),
doc='range of effectiveness',
),
),
)),
('mjvOption',
StructDecl(
name='mjvOption',
declname='struct mjvOption_',
fields=(
StructFieldDecl(
name='label',
type=ValueType(name='int'),
doc='what objects to label (mjtLabel)',
),
StructFieldDecl(
name='frame',
type=ValueType(name='int'),
doc='which frame to show (mjtFrame)',
),
StructFieldDecl(
name='geomgroup',
type=ArrayType(
inner_type=ValueType(name='mjtByte'),
extents=(6,),
),
doc='geom visualization by group',
),
StructFieldDecl(
name='sitegroup',
type=ArrayType(
inner_type=ValueType(name='mjtByte'),
extents=(6,),
),
doc='site visualization by group',
),
StructFieldDecl(
name='jointgroup',
type=ArrayType(
inner_type=ValueType(name='mjtByte'),
extents=(6,),
),
doc='joint visualization by group',
),
StructFieldDecl(
name='tendongroup',
type=ArrayType(
inner_type=ValueType(name='mjtByte'),
extents=(6,),
),
doc='tendon visualization by group',
),
StructFieldDecl(
name='actuatorgroup',
type=ArrayType(
inner_type=ValueType(name='mjtByte'),
extents=(6,),
),
doc='actuator visualization by group',
),
StructFieldDecl(
name='flexgroup',
type=ArrayType(
inner_type=ValueType(name='mjtByte'),
extents=(6,),
),
doc='flex visualization by group',
),
StructFieldDecl(
name='skingroup',
type=ArrayType(
inner_type=ValueType(name='mjtByte'),
extents=(6,),
),
doc='skin visualization by group',
),
StructFieldDecl(
name='flags',
type=ArrayType(
inner_type=ValueType(name='mjtByte'),
extents=(31,),
),
doc='visualization flags (indexed by mjtVisFlag)',
),
StructFieldDecl(
name='bvh_depth',
type=ValueType(name='int'),
doc='depth of the bounding volume hierarchy to be visualized',
),
StructFieldDecl(
name='flex_layer',
type=ValueType(name='int'),
doc='element layer to be visualized for 3D flex',
),
),
)),
('mjvScene',
StructDecl(
name='mjvScene',
declname='struct mjvScene_',
fields=(
StructFieldDecl(
name='maxgeom',
type=ValueType(name='int'),
doc='size of allocated geom buffer',
),
StructFieldDecl(
name='ngeom',
type=ValueType(name='int'),
doc='number of geoms currently in buffer',
),
StructFieldDecl(
name='geoms',
type=PointerType(
inner_type=ValueType(name='mjvGeom'),
),
doc='buffer for geoms (ngeom)',
),
StructFieldDecl(
name='geomorder',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='buffer for ordering geoms by distance to camera (ngeom)',
),
StructFieldDecl(
name='nflex',
type=ValueType(name='int'),
doc='number of flexes',
),
StructFieldDecl(
name='flexedgeadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='address of flex edges (nflex)',
),
StructFieldDecl(
name='flexedgenum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of edges in flex (nflex)',
),
StructFieldDecl(
name='flexvertadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='address of flex vertices (nflex)',
),
StructFieldDecl(
name='flexvertnum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of vertices in flex (nflex)',
),
StructFieldDecl(
name='flexfaceadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='address of flex faces (nflex)',
),
StructFieldDecl(
name='flexfacenum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of flex faces allocated (nflex)',
),
StructFieldDecl(
name='flexfaceused',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of flex faces currently in use (nflex)',
),
StructFieldDecl(
name='flexedge',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='flex edge data (2*nflexedge)',
),
StructFieldDecl(
name='flexvert',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='flex vertices (3*nflexvert)',
),
StructFieldDecl(
name='flexface',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='flex faces vertices (9*sum(flexfacenum))',
),
StructFieldDecl(
name='flexnormal',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='flex face normals (9*sum(flexfacenum))',
),
StructFieldDecl(
name='flextexcoord',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='flex face texture coordinates (6*sum(flexfacenum))',
),
StructFieldDecl(
name='flexvertopt',
type=ValueType(name='mjtByte'),
doc='copy of mjVIS_FLEXVERT mjvOption flag',
),
StructFieldDecl(
name='flexedgeopt',
type=ValueType(name='mjtByte'),
doc='copy of mjVIS_FLEXEDGE mjvOption flag',
),
StructFieldDecl(
name='flexfaceopt',
type=ValueType(name='mjtByte'),
doc='copy of mjVIS_FLEXFACE mjvOption flag',
),
StructFieldDecl(
name='flexskinopt',
type=ValueType(name='mjtByte'),
doc='copy of mjVIS_FLEXSKIN mjvOption flag',
),
StructFieldDecl(
name='nskin',
type=ValueType(name='int'),
doc='number of skins',
),
StructFieldDecl(
name='skinfacenum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of faces in skin (nskin)',
),
StructFieldDecl(
name='skinvertadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='address of skin vertices (nskin)',
),
StructFieldDecl(
name='skinvertnum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of vertices in skin (nskin)',
),
StructFieldDecl(
name='skinvert',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='skin vertex data (3*nskinvert)',
),
StructFieldDecl(
name='skinnormal',
type=PointerType(
inner_type=ValueType(name='float'),
),
doc='skin normal data (3*nskinvert)',
),
StructFieldDecl(
name='nlight',
type=ValueType(name='int'),
doc='number of lights currently in buffer',
),
StructFieldDecl(
name='lights',
type=ArrayType(
inner_type=ValueType(name='mjvLight'),
extents=(100,),
),
doc='buffer for lights (nlight)',
),
StructFieldDecl(
name='camera',
type=ArrayType(
inner_type=ValueType(name='mjvGLCamera'),
extents=(2,),
),
doc='left and right camera',
),
StructFieldDecl(
name='enabletransform',
type=ValueType(name='mjtByte'),
doc='enable model transformation',
),
StructFieldDecl(
name='translate',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='model translation',
),
StructFieldDecl(
name='rotate',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='model quaternion rotation',
),
StructFieldDecl(
name='scale',
type=ValueType(name='float'),
doc='model scaling',
),
StructFieldDecl(
name='stereo',
type=ValueType(name='int'),
doc='stereoscopic rendering (mjtStereo)',
),
StructFieldDecl(
name='flags',
type=ArrayType(
inner_type=ValueType(name='mjtByte'),
extents=(11,),
),
doc='rendering flags (indexed by mjtRndFlag)',
),
StructFieldDecl(
name='framewidth',
type=ValueType(name='int'),
doc='frame pixel width; 0: disable framing',
),
StructFieldDecl(
name='framergb',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='frame color',
),
StructFieldDecl(
name='status',
type=ValueType(name='int'),
doc='0: ok, 1: geoms exhausted, warning issued',
),
),
)),
('mjvFigure',
StructDecl(
name='mjvFigure',
declname='struct mjvFigure_',
fields=(
StructFieldDecl(
name='flg_legend',
type=ValueType(name='int'),
doc='show legend',
),
StructFieldDecl(
name='flg_ticklabel',
type=ArrayType(
inner_type=ValueType(name='int'),
extents=(2,),
),
doc='show grid tick labels (x,y)',
),
StructFieldDecl(
name='flg_extend',
type=ValueType(name='int'),
doc='automatically extend axis ranges to fit data',
),
StructFieldDecl(
name='flg_barplot',
type=ValueType(name='int'),
doc='isolated line segments (i.e. GL_LINES)',
),
StructFieldDecl(
name='flg_selection',
type=ValueType(name='int'),
doc='vertical selection line',
),
StructFieldDecl(
name='flg_symmetric',
type=ValueType(name='int'),
doc='symmetric y-axis',
),
StructFieldDecl(
name='linewidth',
type=ValueType(name='float'),
doc='line width',
),
StructFieldDecl(
name='gridwidth',
type=ValueType(name='float'),
doc='grid line width',
),
StructFieldDecl(
name='gridsize',
type=ArrayType(
inner_type=ValueType(name='int'),
extents=(2,),
),
doc='number of grid points in (x,y)',
),
StructFieldDecl(
name='gridrgb',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='grid line rgb',
),
StructFieldDecl(
name='figurergba',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='figure color and alpha',
),
StructFieldDecl(
name='panergba',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='pane color and alpha',
),
StructFieldDecl(
name='legendrgba',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='legend color and alpha',
),
StructFieldDecl(
name='textrgb',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='text color',
),
StructFieldDecl(
name='linergb',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(100, 3),
),
doc='line colors',
),
StructFieldDecl(
name='range',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(2, 2),
),
doc='axis ranges; (min>=max) automatic',
),
StructFieldDecl(
name='xformat',
type=ArrayType(
inner_type=ValueType(name='char'),
extents=(20,),
),
doc='x-tick label format for sprintf',
),
StructFieldDecl(
name='yformat',
type=ArrayType(
inner_type=ValueType(name='char'),
extents=(20,),
),
doc='y-tick label format for sprintf',
),
StructFieldDecl(
name='minwidth',
type=ArrayType(
inner_type=ValueType(name='char'),
extents=(20,),
),
doc='string used to determine min y-tick width',
),
StructFieldDecl(
name='title',
type=ArrayType(
inner_type=ValueType(name='char'),
extents=(1000,),
),
doc='figure title; subplots separated with 2+ spaces',
),
StructFieldDecl(
name='xlabel',
type=ArrayType(
inner_type=ValueType(name='char'),
extents=(100,),
),
doc='x-axis label',
),
StructFieldDecl(
name='linename',
type=ArrayType(
inner_type=ValueType(name='char'),
extents=(100, 100),
),
doc='line names for legend',
),
StructFieldDecl(
name='legendoffset',
type=ValueType(name='int'),
doc='number of lines to offset legend',
),
StructFieldDecl(
name='subplot',
type=ValueType(name='int'),
doc='selected subplot (for title rendering)',
),
StructFieldDecl(
name='highlight',
type=ArrayType(
inner_type=ValueType(name='int'),
extents=(2,),
),
doc='if point is in legend rect, highlight line',
),
StructFieldDecl(
name='highlightid',
type=ValueType(name='int'),
doc='if id>=0 and no point, highlight id',
),
StructFieldDecl(
name='selection',
type=ValueType(name='float'),
doc='selection line x-value',
),
StructFieldDecl(
name='linepnt',
type=ArrayType(
inner_type=ValueType(name='int'),
extents=(100,),
),
doc='number of points in line; (0) disable',
),
StructFieldDecl(
name='linedata',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(100, 2002),
),
doc='line data (x,y)',
),
StructFieldDecl(
name='xaxispixel',
type=ArrayType(
inner_type=ValueType(name='int'),
extents=(2,),
),
doc='range of x-axis in pixels',
),
StructFieldDecl(
name='yaxispixel',
type=ArrayType(
inner_type=ValueType(name='int'),
extents=(2,),
),
doc='range of y-axis in pixels',
),
StructFieldDecl(
name='xaxisdata',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(2,),
),
doc='range of x-axis in data units',
),
StructFieldDecl(
name='yaxisdata',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(2,),
),
doc='range of y-axis in data units',
),
),
)),
('mjSDF',
StructDecl(
name='mjSDF',
declname='struct mjSDF_',
fields=(
StructFieldDecl(
name='plugin',
type=PointerType(
inner_type=PointerType(
inner_type=ValueType(name='mjpPlugin', is_const=True),
),
),
doc='',
),
StructFieldDecl(
name='id',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='',
),
StructFieldDecl(
name='type',
type=ValueType(name='mjtSDFType'),
doc='',
),
StructFieldDecl(
name='relpos',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='',
),
StructFieldDecl(
name='relmat',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='',
),
StructFieldDecl(
name='geomtype',
type=PointerType(
inner_type=ValueType(name='mjtGeom'),
),
doc='',
),
),
)),
('mjrRect',
StructDecl(
name='mjrRect',
declname='struct mjrRect_',
fields=(
StructFieldDecl(
name='left',
type=ValueType(name='int'),
doc='left (usually 0)',
),
StructFieldDecl(
name='bottom',
type=ValueType(name='int'),
doc='bottom (usually 0)',
),
StructFieldDecl(
name='width',
type=ValueType(name='int'),
doc='width (usually buffer width)',
),
StructFieldDecl(
name='height',
type=ValueType(name='int'),
doc='height (usually buffer height)',
),
),
)),
('mjrRendererInfo',
StructDecl(
name='mjrRendererInfo',
declname='struct mjrRendererInfo_',
fields=(
StructFieldDecl(
name='renderer',
type=PointerType(
inner_type=ValueType(name='char', is_const=True),
),
doc='renderer family: classic, filament, noop',
),
StructFieldDecl(
name='backend',
type=PointerType(
inner_type=ValueType(name='char', is_const=True),
),
doc='graphics backend: opengl, vulkan; empty if uninitialized',
),
),
)),
('mjrVertexAttribute',
StructDecl(
name='mjrVertexAttribute',
declname='struct mjrVertexAttribute_',
fields=(
StructFieldDecl(
name='bytes',
type=PointerType(
inner_type=ValueType(name='void', is_const=True),
),
doc='vertex data',
),
StructFieldDecl(
name='usage',
type=ValueType(name='int'),
doc='position, normal, etc [mjrVertexAttributeUsage]',
),
StructFieldDecl(
name='type',
type=ValueType(name='int'),
doc='float3, ubyte4, etc. [mjrVertexAttributeType]',
),
),
)),
('mjrContext',
StructDecl(
name='mjrContext',
declname='struct mjrContext_',
fields=(
StructFieldDecl(
name='lineWidth',
type=ValueType(name='float'),
doc='line width for wireframe rendering',
),
StructFieldDecl(
name='shadowClip',
type=ValueType(name='float'),
doc='clipping radius for directional lights',
),
StructFieldDecl(
name='shadowScale',
type=ValueType(name='float'),
doc='fraction of light cutoff for spot lights',
),
StructFieldDecl(
name='fogStart',
type=ValueType(name='float'),
doc='fog start = stat.extent * vis.map.fogstart',
),
StructFieldDecl(
name='fogEnd',
type=ValueType(name='float'),
doc='fog end = stat.extent * vis.map.fogend',
),
StructFieldDecl(
name='fogRGBA',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(4,),
),
doc='fog rgba',
),
StructFieldDecl(
name='shadowSize',
type=ValueType(name='int'),
doc='size of shadow map texture',
),
StructFieldDecl(
name='offWidth',
type=ValueType(name='int'),
doc='width of offscreen buffer',
),
StructFieldDecl(
name='offHeight',
type=ValueType(name='int'),
doc='height of offscreen buffer',
),
StructFieldDecl(
name='offSamples',
type=ValueType(name='int'),
doc='number of offscreen buffer multisamples',
),
StructFieldDecl(
name='fontScale',
type=ValueType(name='int'),
doc='font scale',
),
StructFieldDecl(
name='auxWidth',
type=ArrayType(
inner_type=ValueType(name='int'),
extents=(10,),
),
doc='auxiliary buffer width',
),
StructFieldDecl(
name='auxHeight',
type=ArrayType(
inner_type=ValueType(name='int'),
extents=(10,),
),
doc='auxiliary buffer height',
),
StructFieldDecl(
name='auxSamples',
type=ArrayType(
inner_type=ValueType(name='int'),
extents=(10,),
),
doc='auxiliary buffer multisamples',
),
StructFieldDecl(
name='offFBO',
type=ValueType(name='unsigned int'),
doc='offscreen framebuffer object',
),
StructFieldDecl(
name='offFBO_r',
type=ValueType(name='unsigned int'),
doc='offscreen framebuffer for resolving multisamples',
),
StructFieldDecl(
name='offColor',
type=ValueType(name='unsigned int'),
doc='offscreen color buffer',
),
StructFieldDecl(
name='offColor_r',
type=ValueType(name='unsigned int'),
doc='offscreen color buffer for resolving multisamples',
),
StructFieldDecl(
name='offDepthStencil',
type=ValueType(name='unsigned int'),
doc='offscreen depth and stencil buffer',
),
StructFieldDecl(
name='offDepthStencil_r',
type=ValueType(name='unsigned int'),
doc='offscreen depth and stencil buffer for multisamples',
),
StructFieldDecl(
name='shadowFBO',
type=ValueType(name='unsigned int'),
doc='shadow map framebuffer object',
),
StructFieldDecl(
name='shadowTex',
type=ValueType(name='unsigned int'),
doc='shadow map texture',
),
StructFieldDecl(
name='auxFBO',
type=ArrayType(
inner_type=ValueType(name='unsigned int'),
extents=(10,),
),
doc='auxiliary framebuffer object',
),
StructFieldDecl(
name='auxFBO_r',
type=ArrayType(
inner_type=ValueType(name='unsigned int'),
extents=(10,),
),
doc='auxiliary framebuffer object for resolving',
),
StructFieldDecl(
name='auxColor',
type=ArrayType(
inner_type=ValueType(name='unsigned int'),
extents=(10,),
),
doc='auxiliary color buffer',
),
StructFieldDecl(
name='auxColor_r',
type=ArrayType(
inner_type=ValueType(name='unsigned int'),
extents=(10,),
),
doc='auxiliary color buffer for resolving',
),
StructFieldDecl(
name='mat_texid',
type=ArrayType(
inner_type=ValueType(name='int'),
extents=(10000,),
),
doc='material texture ids (-1: no texture)',
),
StructFieldDecl(
name='mat_texuniform',
type=ArrayType(
inner_type=ValueType(name='int'),
extents=(1000,),
),
doc='uniform cube mapping',
),
StructFieldDecl(
name='mat_texrepeat',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(2000,),
),
doc='texture repetition for 2d mapping',
),
StructFieldDecl(
name='ntexture',
type=ValueType(name='int'),
doc='number of allocated textures',
),
StructFieldDecl(
name='textureType',
type=ArrayType(
inner_type=ValueType(name='int'),
extents=(1000,),
),
doc='type of texture (mjtTexture) (ntexture)',
),
StructFieldDecl(
name='texture',
type=ArrayType(
inner_type=ValueType(name='unsigned int'),
extents=(1000,),
),
doc='texture names',
),
StructFieldDecl(
name='basePlane',
type=ValueType(name='unsigned int'),
doc='all planes from model',
),
StructFieldDecl(
name='baseMesh',
type=ValueType(name='unsigned int'),
doc='all meshes from model',
),
StructFieldDecl(
name='baseHField',
type=ValueType(name='unsigned int'),
doc='all height fields from model',
),
StructFieldDecl(
name='baseBuiltin',
type=ValueType(name='unsigned int'),
doc='all builtin geoms, with quality from model',
),
StructFieldDecl(
name='baseFontNormal',
type=ValueType(name='unsigned int'),
doc='normal font',
),
StructFieldDecl(
name='baseFontShadow',
type=ValueType(name='unsigned int'),
doc='shadow font',
),
StructFieldDecl(
name='baseFontBig',
type=ValueType(name='unsigned int'),
doc='big font',
),
StructFieldDecl(
name='rangePlane',
type=ValueType(name='int'),
doc='all planes from model',
),
StructFieldDecl(
name='rangeMesh',
type=ValueType(name='int'),
doc='all meshes from model',
),
StructFieldDecl(
name='rangeHField',
type=ValueType(name='int'),
doc='all hfields from model',
),
StructFieldDecl(
name='rangeBuiltin',
type=ValueType(name='int'),
doc='all builtin geoms, with quality from model',
),
StructFieldDecl(
name='rangeFont',
type=ValueType(name='int'),
doc='all characters in font',
),
StructFieldDecl(
name='nskin',
type=ValueType(name='int'),
doc='number of skins',
),
StructFieldDecl(
name='skinvertVBO',
type=PointerType(
inner_type=ValueType(name='unsigned int'),
),
doc='skin vertex position VBOs (nskin)',
),
StructFieldDecl(
name='skinnormalVBO',
type=PointerType(
inner_type=ValueType(name='unsigned int'),
),
doc='skin vertex normal VBOs (nskin)',
),
StructFieldDecl(
name='skintexcoordVBO',
type=PointerType(
inner_type=ValueType(name='unsigned int'),
),
doc='skin vertex texture coordinate VBOs (nskin)',
),
StructFieldDecl(
name='skinfaceVBO',
type=PointerType(
inner_type=ValueType(name='unsigned int'),
),
doc='skin face index VBOs (nskin)',
),
StructFieldDecl(
name='charWidth',
type=ArrayType(
inner_type=ValueType(name='int'),
extents=(127,),
),
doc='character widths: normal and shadow',
),
StructFieldDecl(
name='charWidthBig',
type=ArrayType(
inner_type=ValueType(name='int'),
extents=(127,),
),
doc='character widths: big',
),
StructFieldDecl(
name='charHeight',
type=ValueType(name='int'),
doc='character heights: normal and shadow',
),
StructFieldDecl(
name='charHeightBig',
type=ValueType(name='int'),
doc='character heights: big',
),
StructFieldDecl(
name='glInitialized',
type=ValueType(name='int'),
doc='is OpenGL initialized',
),
StructFieldDecl(
name='windowAvailable',
type=ValueType(name='int'),
doc='is default/window framebuffer available',
),
StructFieldDecl(
name='windowSamples',
type=ValueType(name='int'),
doc='number of samples for default/window framebuffer',
),
StructFieldDecl(
name='windowStereo',
type=ValueType(name='int'),
doc='is stereo available for default/window framebuffer',
),
StructFieldDecl(
name='windowDoublebuffer',
type=ValueType(name='int'),
doc='is default/window framebuffer double buffered',
),
StructFieldDecl(
name='currentBuffer',
type=ValueType(name='int'),
doc='currently active framebuffer: mjFB_WINDOW or mjFB_OFFSCREEN', # pylint: disable=line-too-long
),
StructFieldDecl(
name='readPixelFormat',
type=ValueType(name='int'),
doc='default color pixel format for mjr_readPixels',
),
StructFieldDecl(
name='readDepthMap',
type=ValueType(name='int'),
doc='depth mapping: mjDEPTH_ZERONEAR or mjDEPTH_ZEROFAR',
),
),
)),
('mjuiState',
StructDecl(
name='mjuiState',
declname='struct mjuiState_',
fields=(
StructFieldDecl(
name='nrect',
type=ValueType(name='int'),
doc='number of rectangles used',
),
StructFieldDecl(
name='rect',
type=ArrayType(
inner_type=ValueType(name='mjrRect'),
extents=(25,),
),
doc='rectangles (index 0: entire window)',
),
StructFieldDecl(
name='userdata',
type=PointerType(
inner_type=ValueType(name='void'),
),
doc='pointer to user data (for callbacks)',
),
StructFieldDecl(
name='type',
type=ValueType(name='int'),
doc='(type mjtEvent)',
),
StructFieldDecl(
name='left',
type=ValueType(name='int'),
doc='is left button down',
),
StructFieldDecl(
name='right',
type=ValueType(name='int'),
doc='is right button down',
),
StructFieldDecl(
name='middle',
type=ValueType(name='int'),
doc='is middle button down',
),
StructFieldDecl(
name='doubleclick',
type=ValueType(name='int'),
doc='is last press a double click',
),
StructFieldDecl(
name='button',
type=ValueType(name='int'),
doc='which button was pressed (mjtButton)',
),
StructFieldDecl(
name='buttontime',
type=ValueType(name='double'),
doc='time of last button press',
),
StructFieldDecl(
name='x',
type=ValueType(name='double'),
doc='x position',
),
StructFieldDecl(
name='y',
type=ValueType(name='double'),
doc='y position',
),
StructFieldDecl(
name='dx',
type=ValueType(name='double'),
doc='x displacement',
),
StructFieldDecl(
name='dy',
type=ValueType(name='double'),
doc='y displacement',
),
StructFieldDecl(
name='sx',
type=ValueType(name='double'),
doc='x scroll',
),
StructFieldDecl(
name='sy',
type=ValueType(name='double'),
doc='y scroll',
),
StructFieldDecl(
name='control',
type=ValueType(name='int'),
doc='is control down',
),
StructFieldDecl(
name='shift',
type=ValueType(name='int'),
doc='is shift down',
),
StructFieldDecl(
name='alt',
type=ValueType(name='int'),
doc='is alt down',
),
StructFieldDecl(
name='key',
type=ValueType(name='int'),
doc='which key was pressed',
),
StructFieldDecl(
name='keytime',
type=ValueType(name='double'),
doc='time of last key press',
),
StructFieldDecl(
name='mouserect',
type=ValueType(name='int'),
doc='which rectangle contains mouse',
),
StructFieldDecl(
name='dragrect',
type=ValueType(name='int'),
doc='which rectangle is dragged with mouse',
),
StructFieldDecl(
name='dragbutton',
type=ValueType(name='int'),
doc='which button started drag (mjtButton)',
),
StructFieldDecl(
name='dropcount',
type=ValueType(name='int'),
doc='number of files dropped',
),
StructFieldDecl(
name='droppaths',
type=PointerType(
inner_type=PointerType(
inner_type=ValueType(name='char', is_const=True),
),
),
doc='paths to files dropped',
),
),
)),
('mjuiThemeSpacing',
StructDecl(
name='mjuiThemeSpacing',
declname='struct mjuiThemeSpacing_',
fields=(
StructFieldDecl(
name='total',
type=ValueType(name='int'),
doc='total width',
),
StructFieldDecl(
name='scroll',
type=ValueType(name='int'),
doc='scrollbar width',
),
StructFieldDecl(
name='label',
type=ValueType(name='int'),
doc='label width',
),
StructFieldDecl(
name='section',
type=ValueType(name='int'),
doc='section gap',
),
StructFieldDecl(
name='cornersect',
type=ValueType(name='int'),
doc='corner radius for section',
),
StructFieldDecl(
name='cornersep',
type=ValueType(name='int'),
doc='corner radius for separator',
),
StructFieldDecl(
name='itemside',
type=ValueType(name='int'),
doc='item side gap',
),
StructFieldDecl(
name='itemmid',
type=ValueType(name='int'),
doc='item middle gap',
),
StructFieldDecl(
name='itemver',
type=ValueType(name='int'),
doc='item vertical gap',
),
StructFieldDecl(
name='texthor',
type=ValueType(name='int'),
doc='text horizontal gap',
),
StructFieldDecl(
name='textver',
type=ValueType(name='int'),
doc='text vertical gap',
),
StructFieldDecl(
name='linescroll',
type=ValueType(name='int'),
doc='number of pixels to scroll',
),
StructFieldDecl(
name='samples',
type=ValueType(name='int'),
doc='number of multisamples',
),
),
)),
('mjuiThemeColor',
StructDecl(
name='mjuiThemeColor',
declname='struct mjuiThemeColor_',
fields=(
StructFieldDecl(
name='master',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='master background',
),
StructFieldDecl(
name='thumb',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='scrollbar thumb',
),
StructFieldDecl(
name='secttitle',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='section title',
),
StructFieldDecl(
name='secttitle2',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='section title: bottom color',
),
StructFieldDecl(
name='secttitleuncheck',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='section title with unchecked box',
),
StructFieldDecl(
name='secttitleuncheck2',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='section title with unchecked box: bottom color',
),
StructFieldDecl(
name='secttitlecheck',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='section title with checked box',
),
StructFieldDecl(
name='secttitlecheck2',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='section title with checked box: bottom color',
),
StructFieldDecl(
name='sectfont',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='section font',
),
StructFieldDecl(
name='sectsymbol',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='section symbol',
),
StructFieldDecl(
name='sectpane',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='section pane',
),
StructFieldDecl(
name='separator',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='separator title',
),
StructFieldDecl(
name='separator2',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='separator title: bottom color',
),
StructFieldDecl(
name='shortcut',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='shortcut background',
),
StructFieldDecl(
name='fontactive',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='font active',
),
StructFieldDecl(
name='fontinactive',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='font inactive',
),
StructFieldDecl(
name='decorinactive',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='decor inactive',
),
StructFieldDecl(
name='decorinactive2',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='inactive slider color 2',
),
StructFieldDecl(
name='button',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='button',
),
StructFieldDecl(
name='check',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='check',
),
StructFieldDecl(
name='radio',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='radio',
),
StructFieldDecl(
name='select',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='select',
),
StructFieldDecl(
name='select2',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='select pane',
),
StructFieldDecl(
name='slider',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='slider',
),
StructFieldDecl(
name='slider2',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='slider color 2',
),
StructFieldDecl(
name='edit',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='edit',
),
StructFieldDecl(
name='edit2',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='edit invalid',
),
StructFieldDecl(
name='cursor',
type=ArrayType(
inner_type=ValueType(name='float'),
extents=(3,),
),
doc='edit cursor',
),
),
)),
('mjuiItem',
StructDecl(
name='mjuiItem',
declname='struct mjuiItem_',
fields=(
StructFieldDecl(
name='type',
type=ValueType(name='int'),
doc='type (mjtItem)',
),
StructFieldDecl(
name='name',
type=ArrayType(
inner_type=ValueType(name='char'),
extents=(40,),
),
doc='name',
),
StructFieldDecl(
name='state',
type=ValueType(name='int'),
doc='0: disable, 1: enable, 2+: use predicate',
),
StructFieldDecl(
name='pdata',
type=PointerType(
inner_type=ValueType(name='void'),
),
doc='data pointer (type-specific)',
),
StructFieldDecl(
name='sectionid',
type=ValueType(name='int'),
doc='id of section containing item',
),
StructFieldDecl(
name='itemid',
type=ValueType(name='int'),
doc='id of item within section',
),
StructFieldDecl(
name='userid',
type=ValueType(name='int'),
doc='user-supplied id (for event handling)',
),
AnonymousUnionDecl(
fields=(
StructFieldDecl(
name='single',
type=ValueType(name='struct mjuiItemSingle_'),
doc='check and button',
),
StructFieldDecl(
name='multi',
type=ValueType(name='struct mjuiItemMulti_'),
doc='static, radio and select',
),
StructFieldDecl(
name='slider',
type=ValueType(name='struct mjuiItemSlider_'),
doc='slider',
),
StructFieldDecl(
name='edit',
type=ValueType(name='struct mjuiItemEdit_'),
doc='edit',
),
),
),
StructFieldDecl(
name='rect',
type=ValueType(name='mjrRect'),
doc='rectangle occupied by item',
),
StructFieldDecl(
name='skip',
type=ValueType(name='int'),
doc='item skipped due to closed separator',
),
),
)),
('mjuiSection',
StructDecl(
name='mjuiSection',
declname='struct mjuiSection_',
fields=(
StructFieldDecl(
name='name',
type=ArrayType(
inner_type=ValueType(name='char'),
extents=(40,),
),
doc='name',
),
StructFieldDecl(
name='state',
type=ValueType(name='int'),
doc='section state (mjtSection)',
),
StructFieldDecl(
name='modifier',
type=ValueType(name='int'),
doc='0: none, 1: control, 2: shift; 4: alt',
),
StructFieldDecl(
name='shortcut',
type=ValueType(name='int'),
doc='shortcut key; 0: undefined',
),
StructFieldDecl(
name='checkbox',
type=ValueType(name='int'),
doc='0: none, 1: unchecked, 2: checked',
),
StructFieldDecl(
name='nitem',
type=ValueType(name='int'),
doc='number of items in use',
),
StructFieldDecl(
name='item',
type=ArrayType(
inner_type=ValueType(name='mjuiItem'),
extents=(200,),
),
doc='preallocated array of items',
),
StructFieldDecl(
name='rtitle',
type=ValueType(name='mjrRect'),
doc='rectangle occupied by title',
),
StructFieldDecl(
name='rcontent',
type=ValueType(name='mjrRect'),
doc='rectangle occupied by content',
),
StructFieldDecl(
name='lastclick',
type=ValueType(name='int'),
doc='last mouse click over this section',
),
),
)),
('mjUI',
StructDecl(
name='mjUI',
declname='struct mjUI_',
fields=(
StructFieldDecl(
name='spacing',
type=ValueType(name='mjuiThemeSpacing'),
doc='UI theme spacing',
),
StructFieldDecl(
name='color',
type=ValueType(name='mjuiThemeColor'),
doc='UI theme color',
),
StructFieldDecl(
name='predicate',
type=ValueType(name='mjfItemEnable'),
doc='callback to set item state programmatically',
),
StructFieldDecl(
name='userdata',
type=PointerType(
inner_type=ValueType(name='void'),
),
doc='pointer to user data (passed to predicate)',
),
StructFieldDecl(
name='rectid',
type=ValueType(name='int'),
doc='index of this ui rectangle in mjuiState',
),
StructFieldDecl(
name='auxid',
type=ValueType(name='int'),
doc='aux buffer index of this ui',
),
StructFieldDecl(
name='radiocol',
type=ValueType(name='int'),
doc='number of radio columns (0 defaults to 2)',
),
StructFieldDecl(
name='width',
type=ValueType(name='int'),
doc='width',
),
StructFieldDecl(
name='height',
type=ValueType(name='int'),
doc='current height',
),
StructFieldDecl(
name='maxheight',
type=ValueType(name='int'),
doc='height when all sections open',
),
StructFieldDecl(
name='scroll',
type=ValueType(name='int'),
doc='scroll from top of UI',
),
StructFieldDecl(
name='mousesect',
type=ValueType(name='int'),
doc='0: none, -1: scroll, otherwise 1+section',
),
StructFieldDecl(
name='mouseitem',
type=ValueType(name='int'),
doc='item within section',
),
StructFieldDecl(
name='mousehelp',
type=ValueType(name='int'),
doc='help button down: print shortcuts',
),
StructFieldDecl(
name='mouseclicks',
type=ValueType(name='int'),
doc='number of mouse clicks over UI',
),
StructFieldDecl(
name='mousesectcheck',
type=ValueType(name='int'),
doc='0: none, otherwise 1+section',
),
StructFieldDecl(
name='editsect',
type=ValueType(name='int'),
doc='0: none, otherwise 1+section',
),
StructFieldDecl(
name='edititem',
type=ValueType(name='int'),
doc='item within section',
),
StructFieldDecl(
name='editcursor',
type=ValueType(name='int'),
doc='cursor position',
),
StructFieldDecl(
name='editscroll',
type=ValueType(name='int'),
doc='horizontal scroll',
),
StructFieldDecl(
name='edittext',
type=ArrayType(
inner_type=ValueType(name='char'),
extents=(300,),
),
doc='current text',
),
StructFieldDecl(
name='editchanged',
type=PointerType(
inner_type=ValueType(name='mjuiItem'),
),
doc='pointer to changed edit in last mjui_event',
),
StructFieldDecl(
name='nsect',
type=ValueType(name='int'),
doc='number of sections in use',
),
StructFieldDecl(
name='sect',
type=ArrayType(
inner_type=ValueType(name='mjuiSection'),
extents=(10,),
),
doc='preallocated array of sections',
),
),
)),
('mjuiDef',
StructDecl(
name='mjuiDef',
declname='struct mjuiDef_',
fields=(
StructFieldDecl(
name='type',
type=ValueType(name='int'),
doc='type (mjtItem); -1: section',
),
StructFieldDecl(
name='name',
type=ArrayType(
inner_type=ValueType(name='char'),
extents=(40,),
),
doc='name',
),
StructFieldDecl(
name='state',
type=ValueType(name='int'),
doc='state',
),
StructFieldDecl(
name='pdata',
type=PointerType(
inner_type=ValueType(name='void'),
),
doc='pointer to data',
),
StructFieldDecl(
name='other',
type=ArrayType(
inner_type=ValueType(name='char'),
extents=(300,),
),
doc='string with type-specific properties',
),
StructFieldDecl(
name='otherint',
type=ValueType(name='int'),
doc='int with type-specific properties',
),
),
)),
])