diff --git a/doc/APIreference/APIfunctions.rst b/doc/APIreference/APIfunctions.rst
index 824221b6..e64a33ca 100644
--- a/doc/APIreference/APIfunctions.rst
+++ b/doc/APIreference/APIfunctions.rst
@@ -1,3 +1,8 @@
+.. raw:: html
+
+
+
+
.. _API:
=========
diff --git a/doc/APIreference/functions.rst b/doc/APIreference/functions.rst
index 4ef49615..4406e5c5 100644
--- a/doc/APIreference/functions.rst
+++ b/doc/APIreference/functions.rst
@@ -13,8 +13,8 @@ The model and all files referenced in it can be loaded from disk or from a VFS w
.. _mj_loadXML:
-mj_loadXML
-~~~~~~~~~~
+`mj_loadXML <#mj_loadXML>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_loadXML
@@ -24,8 +24,8 @@ If error is not NULL, it must have size error_sz.
.. _mj_parseXML:
-mj_parseXML
-~~~~~~~~~~~
+`mj_parseXML <#mj_parseXML>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_parseXML
@@ -33,8 +33,8 @@ Parse spec from XML file.
.. _mj_parseXMLString:
-mj_parseXMLString
-~~~~~~~~~~~~~~~~~
+`mj_parseXMLString <#mj_parseXMLString>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_parseXMLString
@@ -42,8 +42,8 @@ Parse spec from XML string.
.. _mj_compile:
-mj_compile
-~~~~~~~~~~
+`mj_compile <#mj_compile>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_compile
@@ -53,8 +53,8 @@ If compilation fails, :ref:`mj_compile` returns ``NULL``; the error can be read
.. _mj_recompile:
-mj_recompile
-~~~~~~~~~~~~
+`mj_recompile <#mj_recompile>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_recompile
@@ -70,8 +70,8 @@ instances will be deleted; as in :ref:`mj_compile`, the compilation error can be
.. _mj_saveLastXML:
-mj_saveLastXML
-~~~~~~~~~~~~~~
+`mj_saveLastXML <#mj_saveLastXML>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_saveLastXML
@@ -80,8 +80,8 @@ If error is not NULL, it must have size error_sz.
.. _mj_freeLastXML:
-mj_freeLastXML
-~~~~~~~~~~~~~~
+`mj_freeLastXML <#mj_freeLastXML>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_freeLastXML
@@ -89,8 +89,8 @@ Free last XML model if loaded. Called internally at each load.
.. _mj_saveXMLString:
-mj_saveXMLString
-~~~~~~~~~~~~~~~~
+`mj_saveXMLString <#mj_saveXMLString>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_saveXMLString
@@ -98,8 +98,8 @@ Save spec to XML string, return 1 on success, 0 otherwise. XML saving requires t
.. _mj_saveXML:
-mj_saveXML
-~~~~~~~~~~
+`mj_saveXML <#mj_saveXML>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_saveXML
@@ -136,8 +136,8 @@ depend on qpos. Calling the dynamics with skipstage = :ref:`mjSTAGE_POS`__
+~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_step
@@ -145,8 +145,8 @@ Advance simulation, use control callback to obtain external force and control.
.. _mj_step1:
-mj_step1
-~~~~~~~~
+`mj_step1 <#mj_step1>`__
+~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_step1
@@ -154,8 +154,8 @@ Advance simulation in two steps: before external force and control is set by use
.. _mj_step2:
-mj_step2
-~~~~~~~~
+`mj_step2 <#mj_step2>`__
+~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_step2
@@ -163,8 +163,8 @@ Advance simulation in two steps: after external force and control is set by user
.. _mj_forward:
-mj_forward
-~~~~~~~~~~
+`mj_forward <#mj_forward>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_forward
@@ -172,8 +172,8 @@ Forward dynamics: same as mj_step but do not integrate in time.
.. _mj_inverse:
-mj_inverse
-~~~~~~~~~~
+`mj_inverse <#mj_inverse>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_inverse
@@ -181,8 +181,8 @@ Inverse dynamics: qacc must be set before calling.
.. _mj_forwardSkip:
-mj_forwardSkip
-~~~~~~~~~~~~~~
+`mj_forwardSkip <#mj_forwardSkip>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_forwardSkip
@@ -190,8 +190,8 @@ Forward dynamics with skip; skipstage is mjtStage.
.. _mj_inverseSkip:
-mj_inverseSkip
-~~~~~~~~~~~~~~
+`mj_inverseSkip <#mj_inverseSkip>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_inverseSkip
@@ -208,8 +208,8 @@ computations, and are documented in more detail below.
.. _mj_stateSize:
-mj_stateSize
-~~~~~~~~~~~~
+`mj_stateSize <#mj_stateSize>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_stateSize
@@ -218,8 +218,8 @@ correspond to element fields of :ref:`mjtState`.
.. _mj_getState:
-mj_getState
-~~~~~~~~~~~
+`mj_getState <#mj_getState>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_getState
@@ -228,8 +228,8 @@ Copy concatenated state components specified by ``spec`` from ``d`` into ``state
.. _mj_setState:
-mj_setState
-~~~~~~~~~~~
+`mj_setState <#mj_setState>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_setState
@@ -238,8 +238,8 @@ Copy concatenated state components specified by ``spec`` from ``state`` into ``
.. _mj_setKeyframe:
-mj_setKeyframe
-~~~~~~~~~~~~~~
+`mj_setKeyframe <#mj_setKeyframe>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_setKeyframe
@@ -247,8 +247,8 @@ Copy current state to the k-th model keyframe.
.. _mj_addContact:
-mj_addContact
-~~~~~~~~~~~~~
+`mj_addContact <#mj_addContact>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_addContact
@@ -256,8 +256,8 @@ Add contact to d->contact list; return 0 if success; 1 if buffer full.
.. _mj_isPyramidal:
-mj_isPyramidal
-~~~~~~~~~~~~~~
+`mj_isPyramidal <#mj_isPyramidal>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_isPyramidal
@@ -265,8 +265,8 @@ Determine type of friction cone.
.. _mj_isSparse:
-mj_isSparse
-~~~~~~~~~~~
+`mj_isSparse <#mj_isSparse>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_isSparse
@@ -274,8 +274,8 @@ Determine type of constraint Jacobian.
.. _mj_isDual:
-mj_isDual
-~~~~~~~~~
+`mj_isDual <#mj_isDual>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_isDual
@@ -283,8 +283,8 @@ Determine type of solver (PGS is dual, CG and Newton are primal).
.. _mj_mulJacVec:
-mj_mulJacVec
-~~~~~~~~~~~~
+`mj_mulJacVec <#mj_mulJacVec>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_mulJacVec
@@ -293,8 +293,8 @@ sparse; the function is aware of this setting. Multiplication by J maps velociti
.. _mj_mulJacTVec:
-mj_mulJacTVec
-~~~~~~~~~~~~~
+`mj_mulJacTVec <#mj_mulJacTVec>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_mulJacTVec
@@ -303,8 +303,8 @@ space.
.. _mj_jac:
-mj_jac
-~~~~~~
+`mj_jac <#mj_jac>`__
+~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_jac
@@ -320,8 +320,8 @@ by :ref:`mj_comPos`.
.. _mj_jacBody:
-mj_jacBody
-~~~~~~~~~~
+`mj_jacBody <#mj_jacBody>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_jacBody
@@ -330,8 +330,8 @@ site. They are just shortcuts; the same can be achieved by calling mj_jac direct
.. _mj_jacBodyCom:
-mj_jacBodyCom
-~~~~~~~~~~~~~
+`mj_jacBodyCom <#mj_jacBodyCom>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_jacBodyCom
@@ -339,8 +339,8 @@ Compute body center-of-mass end-effector Jacobian.
.. _mj_jacSubtreeCom:
-mj_jacSubtreeCom
-~~~~~~~~~~~~~~~~
+`mj_jacSubtreeCom <#mj_jacSubtreeCom>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_jacSubtreeCom
@@ -348,8 +348,8 @@ Compute subtree center-of-mass end-effector Jacobian.
.. _mj_jacGeom:
-mj_jacGeom
-~~~~~~~~~~
+`mj_jacGeom <#mj_jacGeom>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_jacGeom
@@ -357,8 +357,8 @@ Compute geom end-effector Jacobian.
.. _mj_jacSite:
-mj_jacSite
-~~~~~~~~~~
+`mj_jacSite <#mj_jacSite>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_jacSite
@@ -366,8 +366,8 @@ Compute site end-effector Jacobian.
.. _mj_jacPointAxis:
-mj_jacPointAxis
-~~~~~~~~~~~~~~~
+`mj_jacPointAxis <#mj_jacPointAxis>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_jacPointAxis
@@ -375,8 +375,8 @@ Compute translation end-effector Jacobian of point, and rotation Jacobian of axi
.. _mj_jacDot:
-mj_jacDot
-~~~~~~~~~
+`mj_jacDot <#mj_jacDot>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_jacDot
@@ -387,8 +387,8 @@ consistent with the current generalized positions and velocities ``mjData.{qpos,
.. _mj_angmomMat:
-mj_angmomMat
-~~~~~~~~~~~~
+`mj_angmomMat <#mj_angmomMat>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_angmomMat
@@ -399,8 +399,8 @@ and :math:`\dot q` is the generalized velocity ``mjData.qvel``, then :math:`h =
.. _mj_name2id:
-mj_name2id
-~~~~~~~~~~
+`mj_name2id <#mj_name2id>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_name2id
@@ -408,8 +408,8 @@ Get id of object with the specified mjtObj type and name, returns -1 if id not f
.. _mj_id2name:
-mj_id2name
-~~~~~~~~~~
+`mj_id2name <#mj_id2name>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_id2name
@@ -417,8 +417,8 @@ Get name of object with the specified mjtObj type and id, returns NULL if name n
.. _mj_fullM:
-mj_fullM
-~~~~~~~~
+`mj_fullM <#mj_fullM>`__
+~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_fullM
@@ -426,8 +426,8 @@ Convert sparse inertia matrix M into full (i.e. dense) matrix.
.. _mj_mulM:
-mj_mulM
-~~~~~~~
+`mj_mulM <#mj_mulM>`__
+~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_mulM
@@ -438,8 +438,8 @@ sparsity.
.. _mj_mulM2:
-mj_mulM2
-~~~~~~~~
+`mj_mulM2 <#mj_mulM2>`__
+~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_mulM2
@@ -447,8 +447,8 @@ Multiply vector by (inertia matrix)^(1/2).
.. _mj_addM:
-mj_addM
-~~~~~~~
+`mj_addM <#mj_addM>`__
+~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_addM
@@ -457,8 +457,8 @@ Destination can be sparse uncompressed, or dense when all int* are NULL
.. _mj_applyFT:
-mj_applyFT
-~~~~~~~~~~
+`mj_applyFT <#mj_applyFT>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_applyFT
@@ -468,8 +468,8 @@ we want to add the result to a different vector.
.. _mj_objectVelocity:
-mj_objectVelocity
-~~~~~~~~~~~~~~~~~
+`mj_objectVelocity <#mj_objectVelocity>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_objectVelocity
@@ -477,8 +477,8 @@ Compute object 6D velocity (rot:lin) in object-centered frame, world/local orien
.. _mj_objectAcceleration:
-mj_objectAcceleration
-~~~~~~~~~~~~~~~~~~~~~
+`mj_objectAcceleration <#mj_objectAcceleration>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_objectAcceleration
@@ -488,8 +488,8 @@ mjData.cacc -- the total body acceleration, including contributions from the con
.. _mj_geomDistance:
-mj_geomDistance
-~~~~~~~~~~~~~~~
+`mj_geomDistance <#mj_geomDistance>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_geomDistance
@@ -510,8 +510,8 @@ found, the function will return ``distmax`` and ``fromto``, if given, will be se
.. _mj_contactForce:
-mj_contactForce
-~~~~~~~~~~~~~~~
+`mj_contactForce <#mj_contactForce>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_contactForce
@@ -519,8 +519,8 @@ Extract 6D force:torque given contact id, in the contact frame.
.. _mj_differentiatePos:
-mj_differentiatePos
-~~~~~~~~~~~~~~~~~~~
+`mj_differentiatePos <#mj_differentiatePos>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_differentiatePos
@@ -532,8 +532,8 @@ inputs have dimensionality nq.
.. _mj_integratePos:
-mj_integratePos
-~~~~~~~~~~~~~~~
+`mj_integratePos <#mj_integratePos>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_integratePos
@@ -542,8 +542,8 @@ format of qpos.
.. _mj_normalizeQuat:
-mj_normalizeQuat
-~~~~~~~~~~~~~~~~
+`mj_normalizeQuat <#mj_normalizeQuat>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_normalizeQuat
@@ -551,8 +551,8 @@ Normalize all quaternions in qpos-type vector.
.. _mj_local2Global:
-mj_local2Global
-~~~~~~~~~~~~~~~
+`mj_local2Global <#mj_local2Global>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_local2Global
@@ -560,8 +560,8 @@ Map from body local to global Cartesian coordinates, sameframe takes values from
.. _mj_getTotalmass:
-mj_getTotalmass
-~~~~~~~~~~~~~~~
+`mj_getTotalmass <#mj_getTotalmass>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_getTotalmass
@@ -569,8 +569,8 @@ Sum all body masses.
.. _mj_setTotalmass:
-mj_setTotalmass
-~~~~~~~~~~~~~~~
+`mj_setTotalmass <#mj_setTotalmass>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_setTotalmass
@@ -578,8 +578,8 @@ Scale body masses and inertias to achieve specified total mass.
.. _mj_getPluginConfig:
-mj_getPluginConfig
-~~~~~~~~~~~~~~~~~~
+`mj_getPluginConfig <#mj_getPluginConfig>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_getPluginConfig
@@ -588,8 +588,8 @@ NULL: invalid plugin instance ID or attribute name
.. _mj_loadPluginLibrary:
-mj_loadPluginLibrary
-~~~~~~~~~~~~~~~~~~~~
+`mj_loadPluginLibrary <#mj_loadPluginLibrary>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_loadPluginLibrary
@@ -597,8 +597,8 @@ Load a dynamic library. The dynamic library is assumed to register one or more p
.. _mj_loadAllPluginLibraries:
-mj_loadAllPluginLibraries
-~~~~~~~~~~~~~~~~~~~~~~~~~
+`mj_loadAllPluginLibraries <#mj_loadAllPluginLibraries>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_loadAllPluginLibraries
@@ -608,8 +608,8 @@ for each dynamic library encountered that registers plugins.
.. _mj_version:
-mj_version
-~~~~~~~~~~
+`mj_version <#mj_version>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_version
@@ -617,8 +617,8 @@ Return version number: 1.0.2 is encoded as 102.
.. _mj_versionString:
-mj_versionString
-~~~~~~~~~~~~~~~~
+`mj_versionString <#mj_versionString>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_versionString
@@ -634,8 +634,8 @@ These are components of the simulation pipeline, called internally from :ref:`mj
.. _mj_fwdPosition:
-mj_fwdPosition
-~~~~~~~~~~~~~~
+`mj_fwdPosition <#mj_fwdPosition>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_fwdPosition
@@ -643,8 +643,8 @@ Run position-dependent computations.
.. _mj_fwdVelocity:
-mj_fwdVelocity
-~~~~~~~~~~~~~~
+`mj_fwdVelocity <#mj_fwdVelocity>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_fwdVelocity
@@ -652,8 +652,8 @@ Run velocity-dependent computations.
.. _mj_fwdActuation:
-mj_fwdActuation
-~~~~~~~~~~~~~~~
+`mj_fwdActuation <#mj_fwdActuation>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_fwdActuation
@@ -661,8 +661,8 @@ Compute actuator force qfrc_actuator.
.. _mj_fwdAcceleration:
-mj_fwdAcceleration
-~~~~~~~~~~~~~~~~~~
+`mj_fwdAcceleration <#mj_fwdAcceleration>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_fwdAcceleration
@@ -670,8 +670,8 @@ Add up all non-constraint forces, compute qacc_smooth.
.. _mj_fwdConstraint:
-mj_fwdConstraint
-~~~~~~~~~~~~~~~~
+`mj_fwdConstraint <#mj_fwdConstraint>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_fwdConstraint
@@ -679,8 +679,8 @@ Run selected constraint solver.
.. _mj_Euler:
-mj_Euler
-~~~~~~~~
+`mj_Euler <#mj_Euler>`__
+~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_Euler
@@ -688,8 +688,8 @@ Euler integrator, semi-implicit in velocity.
.. _mj_RungeKutta:
-mj_RungeKutta
-~~~~~~~~~~~~~
+`mj_RungeKutta <#mj_RungeKutta>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_RungeKutta
@@ -697,8 +697,8 @@ Runge-Kutta explicit order-N integrator.
.. _mj_implicit:
-mj_implicit
-~~~~~~~~~~~
+`mj_implicit <#mj_implicit>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_implicit
@@ -708,8 +708,8 @@ Integrates the simulation state using an implicit-in-velocity integrator (either
.. _mj_invPosition:
-mj_invPosition
-~~~~~~~~~~~~~~
+`mj_invPosition <#mj_invPosition>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_invPosition
@@ -717,8 +717,8 @@ Run position-dependent computations in inverse dynamics.
.. _mj_invVelocity:
-mj_invVelocity
-~~~~~~~~~~~~~~
+`mj_invVelocity <#mj_invVelocity>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_invVelocity
@@ -726,8 +726,8 @@ Run velocity-dependent computations in inverse dynamics.
.. _mj_invConstraint:
-mj_invConstraint
-~~~~~~~~~~~~~~~~
+`mj_invConstraint <#mj_invConstraint>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_invConstraint
@@ -735,8 +735,8 @@ Apply the analytical formula for inverse constraint dynamics.
.. _mj_compareFwdInv:
-mj_compareFwdInv
-~~~~~~~~~~~~~~~~
+`mj_compareFwdInv <#mj_compareFwdInv>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_compareFwdInv
@@ -752,8 +752,8 @@ that the user will need to call them.
.. _mj_sensorPos:
-mj_sensorPos
-~~~~~~~~~~~~
+`mj_sensorPos <#mj_sensorPos>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_sensorPos
@@ -761,8 +761,8 @@ Evaluate position-dependent sensors.
.. _mj_sensorVel:
-mj_sensorVel
-~~~~~~~~~~~~
+`mj_sensorVel <#mj_sensorVel>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_sensorVel
@@ -770,8 +770,8 @@ Evaluate velocity-dependent sensors.
.. _mj_sensorAcc:
-mj_sensorAcc
-~~~~~~~~~~~~
+`mj_sensorAcc <#mj_sensorAcc>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_sensorAcc
@@ -779,8 +779,8 @@ Evaluate acceleration and force-dependent sensors.
.. _mj_energyPos:
-mj_energyPos
-~~~~~~~~~~~~
+`mj_energyPos <#mj_energyPos>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_energyPos
@@ -788,8 +788,8 @@ Evaluate position-dependent energy (potential).
.. _mj_energyVel:
-mj_energyVel
-~~~~~~~~~~~~
+`mj_energyVel <#mj_energyVel>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_energyVel
@@ -797,8 +797,8 @@ Evaluate velocity-dependent energy (kinetic).
.. _mj_checkPos:
-mj_checkPos
-~~~~~~~~~~~
+`mj_checkPos <#mj_checkPos>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_checkPos
@@ -806,8 +806,8 @@ Check qpos, reset if any element is too big or nan.
.. _mj_checkVel:
-mj_checkVel
-~~~~~~~~~~~
+`mj_checkVel <#mj_checkVel>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_checkVel
@@ -815,8 +815,8 @@ Check qvel, reset if any element is too big or nan.
.. _mj_checkAcc:
-mj_checkAcc
-~~~~~~~~~~~
+`mj_checkAcc <#mj_checkAcc>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_checkAcc
@@ -824,8 +824,8 @@ Check qacc, reset if any element is too big or nan.
.. _mj_kinematics:
-mj_kinematics
-~~~~~~~~~~~~~
+`mj_kinematics <#mj_kinematics>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_kinematics
@@ -833,8 +833,8 @@ Run forward kinematics.
.. _mj_comPos:
-mj_comPos
-~~~~~~~~~
+`mj_comPos <#mj_comPos>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_comPos
@@ -842,8 +842,8 @@ Map inertias and motion dofs to global frame centered at CoM.
.. _mj_camlight:
-mj_camlight
-~~~~~~~~~~~
+`mj_camlight <#mj_camlight>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_camlight
@@ -851,8 +851,8 @@ Compute camera and light positions and orientations.
.. _mj_flex:
-mj_flex
-~~~~~~~
+`mj_flex <#mj_flex>`__
+~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_flex
@@ -860,8 +860,8 @@ Compute flex-related quantities.
.. _mj_tendon:
-mj_tendon
-~~~~~~~~~
+`mj_tendon <#mj_tendon>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_tendon
@@ -869,8 +869,8 @@ Compute tendon lengths, velocities and moment arms.
.. _mj_transmission:
-mj_transmission
-~~~~~~~~~~~~~~~
+`mj_transmission <#mj_transmission>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_transmission
@@ -878,8 +878,8 @@ Compute actuator transmission lengths and moments.
.. _mj_crb:
-mj_crb
-~~~~~~
+`mj_crb <#mj_crb>`__
+~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_crb
@@ -887,8 +887,8 @@ Run composite rigid body inertia algorithm (CRB).
.. _mj_factorM:
-mj_factorM
-~~~~~~~~~~
+`mj_factorM <#mj_factorM>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_factorM
@@ -896,8 +896,8 @@ Compute sparse :math:`L^T D L` factorizaton of inertia matrix.
.. _mj_solveM:
-mj_solveM
-~~~~~~~~~
+`mj_solveM <#mj_solveM>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_solveM
@@ -905,8 +905,8 @@ Solve linear system :math:`M x = y` using factorization: :math:`x = (L^T D L)^{-
.. _mj_solveM2:
-mj_solveM2
-~~~~~~~~~~
+`mj_solveM2 <#mj_solveM2>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_solveM2
@@ -914,8 +914,8 @@ Half of linear solve: :math:`x = \sqrt{D^{-1}} (L^T)^{-1} y`
.. _mj_comVel:
-mj_comVel
-~~~~~~~~~
+`mj_comVel <#mj_comVel>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_comVel
@@ -923,8 +923,8 @@ Compute cvel, cdof_dot.
.. _mj_passive:
-mj_passive
-~~~~~~~~~~
+`mj_passive <#mj_passive>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_passive
@@ -932,8 +932,8 @@ Compute qfrc_passive from spring-dampers, gravity compensation and fluid forces.
.. _mj_subtreeVel:
-mj_subtreeVel
-~~~~~~~~~~~~~
+`mj_subtreeVel <#mj_subtreeVel>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_subtreeVel
@@ -944,8 +944,8 @@ It is also triggered for :ref:`user sensors` of :ref:`stage`__
+~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_rne
@@ -954,8 +954,8 @@ assumes :math:`\ddot q = 0`).
.. _mj_rnePostConstraint:
-mj_rnePostConstraint
-~~~~~~~~~~~~~~~~~~~~
+`mj_rnePostConstraint <#mj_rnePostConstraint>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_rnePostConstraint
@@ -977,8 +977,8 @@ the effect of spatial tendons, see :github:issue:`832`.
.. _mj_collision:
-mj_collision
-~~~~~~~~~~~~
+`mj_collision <#mj_collision>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_collision
@@ -986,8 +986,8 @@ Run collision detection.
.. _mj_makeConstraint:
-mj_makeConstraint
-~~~~~~~~~~~~~~~~~
+`mj_makeConstraint <#mj_makeConstraint>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_makeConstraint
@@ -995,8 +995,8 @@ Construct constraints.
.. _mj_island:
-mj_island
-~~~~~~~~~
+`mj_island <#mj_island>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_island
@@ -1004,8 +1004,8 @@ Find constraint islands.
.. _mj_projectConstraint:
-mj_projectConstraint
-~~~~~~~~~~~~~~~~~~~~
+`mj_projectConstraint <#mj_projectConstraint>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_projectConstraint
@@ -1013,8 +1013,8 @@ Compute inverse constraint inertia efc_AR.
.. _mj_referenceConstraint:
-mj_referenceConstraint
-~~~~~~~~~~~~~~~~~~~~~~
+`mj_referenceConstraint <#mj_referenceConstraint>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_referenceConstraint
@@ -1022,8 +1022,8 @@ Compute efc_vel, efc_aref.
.. _mj_constraintUpdate:
-mj_constraintUpdate
-~~~~~~~~~~~~~~~~~~~
+`mj_constraintUpdate <#mj_constraintUpdate>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_constraintUpdate
@@ -1047,8 +1047,8 @@ rays from a single point.
.. _mj_multiRay:
-mj_multiRay
-~~~~~~~~~~~
+`mj_multiRay <#mj_multiRay>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_multiRay
@@ -1057,8 +1057,8 @@ Similar semantics to mj_ray, but vec is an array of (nray x 3) directions.
.. _mj_ray:
-mj_ray
-~~~~~~
+`mj_ray <#mj_ray>`__
+~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_ray
@@ -1075,8 +1075,8 @@ bodyexclude=-1 can be used to indicate that all bodies are included.
.. _mj_rayHfield:
-mj_rayHfield
-~~~~~~~~~~~~
+`mj_rayHfield <#mj_rayHfield>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_rayHfield
@@ -1084,8 +1084,8 @@ Intersect ray with hfield, return nearest distance or -1 if no intersection.
.. _mj_rayMesh:
-mj_rayMesh
-~~~~~~~~~~
+`mj_rayMesh <#mj_rayMesh>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_rayMesh
@@ -1093,8 +1093,8 @@ Intersect ray with mesh, return nearest distance or -1 if no intersection.
.. _mju_rayGeom:
-mju_rayGeom
-~~~~~~~~~~~
+`mju_rayGeom <#mju_rayGeom>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_rayGeom
@@ -1102,8 +1102,8 @@ Intersect ray with pure geom, return nearest distance or -1 if no intersection.
.. _mju_rayFlex:
-mju_rayFlex
-~~~~~~~~~~~
+`mju_rayFlex <#mju_rayFlex>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_rayFlex
@@ -1112,8 +1112,8 @@ and also output nearest vertex id.
.. _mju_raySkin:
-mju_raySkin
-~~~~~~~~~~~
+`mju_raySkin <#mju_raySkin>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_raySkin
@@ -1129,8 +1129,8 @@ These functions can be used to print various quantities to the screen for debugg
.. _mj_printFormattedModel:
-mj_printFormattedModel
-~~~~~~~~~~~~~~~~~~~~~~
+`mj_printFormattedModel <#mj_printFormattedModel>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_printFormattedModel
@@ -1139,8 +1139,8 @@ float_format must be a valid printf-style format string for a single float value
.. _mj_printModel:
-mj_printModel
-~~~~~~~~~~~~~
+`mj_printModel <#mj_printModel>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_printModel
@@ -1148,8 +1148,8 @@ Print model to text file.
.. _mj_printFormattedData:
-mj_printFormattedData
-~~~~~~~~~~~~~~~~~~~~~
+`mj_printFormattedData <#mj_printFormattedData>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_printFormattedData
@@ -1158,8 +1158,8 @@ float_format must be a valid printf-style format string for a single float value
.. _mj_printData:
-mj_printData
-~~~~~~~~~~~~
+`mj_printData <#mj_printData>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_printData
@@ -1167,8 +1167,8 @@ Print data to text file.
.. _mju_printMat:
-mju_printMat
-~~~~~~~~~~~~
+`mju_printMat <#mju_printMat>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_printMat
@@ -1176,8 +1176,8 @@ Print matrix to screen.
.. _mju_printMatSparse:
-mju_printMatSparse
-~~~~~~~~~~~~~~~~~~
+`mju_printMatSparse <#mju_printMatSparse>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_printMatSparse
@@ -1185,8 +1185,8 @@ Print sparse matrix to screen.
.. _mj_printSchema:
-mj_printSchema
-~~~~~~~~~~~~~~
+`mj_printSchema <#mj_printSchema>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_printSchema
@@ -1209,8 +1209,8 @@ The VFS must first be allocated using :ref:`mj_defaultVFS` and must be freed wit
.. _mj_defaultVFS:
-mj_defaultVFS
-~~~~~~~~~~~~~
+`mj_defaultVFS <#mj_defaultVFS>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_defaultVFS
@@ -1218,8 +1218,8 @@ Initialize an empty VFS, :ref:`mj_deleteVFS` must be called to deallocate the VF
.. _mj_addFileVFS:
-mj_addFileVFS
-~~~~~~~~~~~~~
+`mj_addFileVFS <#mj_addFileVFS>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_addFileVFS
@@ -1228,8 +1228,8 @@ Add file to VFS. The directory argument is optional and can be NULL or empty. Re
.. _mj_addBufferVFS:
-mj_addBufferVFS
-~~~~~~~~~~~~~~~
+`mj_addBufferVFS <#mj_addBufferVFS>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_addBufferVFS
@@ -1237,8 +1237,8 @@ Add file to VFS from buffer, return 0: success, 2: repeated name, -1: failed to
.. _mj_deleteFileVFS:
-mj_deleteFileVFS
-~~~~~~~~~~~~~~~~
+`mj_deleteFileVFS <#mj_deleteFileVFS>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_deleteFileVFS
@@ -1246,8 +1246,8 @@ Delete file from VFS, return 0: success, -1: not found in VFS.
.. _mj_deleteVFS:
-mj_deleteVFS
-~~~~~~~~~~~~
+`mj_deleteVFS <#mj_deleteVFS>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_deleteVFS
@@ -1263,8 +1263,8 @@ in the code samples.
.. _mj_defaultLROpt:
-mj_defaultLROpt
-~~~~~~~~~~~~~~~
+`mj_defaultLROpt <#mj_defaultLROpt>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_defaultLROpt
@@ -1272,8 +1272,8 @@ Set default options for length range computation.
.. _mj_defaultSolRefImp:
-mj_defaultSolRefImp
-~~~~~~~~~~~~~~~~~~~
+`mj_defaultSolRefImp <#mj_defaultSolRefImp>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_defaultSolRefImp
@@ -1281,8 +1281,8 @@ Set solver parameters to default values.
.. _mj_defaultOption:
-mj_defaultOption
-~~~~~~~~~~~~~~~~
+`mj_defaultOption <#mj_defaultOption>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_defaultOption
@@ -1290,8 +1290,8 @@ Set physics options to default values.
.. _mj_defaultVisual:
-mj_defaultVisual
-~~~~~~~~~~~~~~~~
+`mj_defaultVisual <#mj_defaultVisual>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_defaultVisual
@@ -1299,8 +1299,8 @@ Set visual options to default values.
.. _mj_copyModel:
-mj_copyModel
-~~~~~~~~~~~~
+`mj_copyModel <#mj_copyModel>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_copyModel
@@ -1308,8 +1308,8 @@ Copy mjModel, allocate new if dest is NULL.
.. _mj_saveModel:
-mj_saveModel
-~~~~~~~~~~~~
+`mj_saveModel <#mj_saveModel>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_saveModel
@@ -1317,8 +1317,8 @@ Save model to binary MJB file or memory buffer; buffer has precedence when given
.. _mj_loadModel:
-mj_loadModel
-~~~~~~~~~~~~
+`mj_loadModel <#mj_loadModel>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_loadModel
@@ -1327,8 +1327,8 @@ If vfs is not NULL, look up file in vfs before reading from disk.
.. _mj_deleteModel:
-mj_deleteModel
-~~~~~~~~~~~~~~
+`mj_deleteModel <#mj_deleteModel>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_deleteModel
@@ -1336,8 +1336,8 @@ Free memory allocation in model.
.. _mj_sizeModel:
-mj_sizeModel
-~~~~~~~~~~~~
+`mj_sizeModel <#mj_sizeModel>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_sizeModel
@@ -1345,8 +1345,8 @@ Return size of buffer needed to hold model.
.. _mj_makeData:
-mj_makeData
-~~~~~~~~~~~
+`mj_makeData <#mj_makeData>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_makeData
@@ -1355,8 +1355,8 @@ If the model buffer is unallocated the initial configuration will not be set.
.. _mj_copyData:
-mj_copyData
-~~~~~~~~~~~
+`mj_copyData <#mj_copyData>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_copyData
@@ -1365,8 +1365,8 @@ m is only required to contain the size fields from MJMODEL_INTS.
.. _mj_resetData:
-mj_resetData
-~~~~~~~~~~~~
+`mj_resetData <#mj_resetData>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_resetData
@@ -1374,8 +1374,8 @@ Reset data to defaults.
.. _mj_resetDataDebug:
-mj_resetDataDebug
-~~~~~~~~~~~~~~~~~
+`mj_resetDataDebug <#mj_resetDataDebug>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_resetDataDebug
@@ -1383,8 +1383,8 @@ Reset data to defaults, fill everything else with debug_value.
.. _mj_resetDataKeyframe:
-mj_resetDataKeyframe
-~~~~~~~~~~~~~~~~~~~~
+`mj_resetDataKeyframe <#mj_resetDataKeyframe>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_resetDataKeyframe
@@ -1392,8 +1392,8 @@ Reset data. If 0 <= key < nkey, set fields from specified keyframe.
.. _mj_markStack:
-mj_markStack
-~~~~~~~~~~~~
+`mj_markStack <#mj_markStack>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_markStack
@@ -1401,8 +1401,8 @@ Mark a new frame on the mjData stack.
.. _mj_freeStack:
-mj_freeStack
-~~~~~~~~~~~~
+`mj_freeStack <#mj_freeStack>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_freeStack
@@ -1411,8 +1411,8 @@ to mj_markStack must no longer be used afterwards.
.. _mj_stackAllocByte:
-mj_stackAllocByte
-~~~~~~~~~~~~~~~~~
+`mj_stackAllocByte <#mj_stackAllocByte>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_stackAllocByte
@@ -1421,8 +1421,8 @@ Call mju_error on stack overflow.
.. _mj_stackAllocNum:
-mj_stackAllocNum
-~~~~~~~~~~~~~~~~
+`mj_stackAllocNum <#mj_stackAllocNum>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_stackAllocNum
@@ -1430,8 +1430,8 @@ Allocate array of mjtNums on mjData stack. Call mju_error on stack overflow.
.. _mj_stackAllocInt:
-mj_stackAllocInt
-~~~~~~~~~~~~~~~~
+`mj_stackAllocInt <#mj_stackAllocInt>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_stackAllocInt
@@ -1439,8 +1439,8 @@ Allocate array of ints on mjData stack. Call mju_error on stack overflow.
.. _mj_deleteData:
-mj_deleteData
-~~~~~~~~~~~~~
+`mj_deleteData <#mj_deleteData>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_deleteData
@@ -1448,8 +1448,8 @@ Free memory allocation in mjData.
.. _mj_resetCallbacks:
-mj_resetCallbacks
-~~~~~~~~~~~~~~~~~
+`mj_resetCallbacks <#mj_resetCallbacks>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_resetCallbacks
@@ -1457,8 +1457,8 @@ Reset all callbacks to NULL pointers (NULL is the default).
.. _mj_setConst:
-mj_setConst
-~~~~~~~~~~~
+`mj_setConst <#mj_setConst>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_setConst
@@ -1466,8 +1466,8 @@ Set constant fields of mjModel, corresponding to qpos0 configuration.
.. _mj_setLengthRange:
-mj_setLengthRange
-~~~~~~~~~~~~~~~~~
+`mj_setLengthRange <#mj_setLengthRange>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_setLengthRange
@@ -1475,8 +1475,8 @@ Set actuator_lengthrange for specified actuator; return 1 if ok, 0 if error.
.. _mj_makeSpec:
-mj_makeSpec
-~~~~~~~~~~~
+`mj_makeSpec <#mj_makeSpec>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_makeSpec
@@ -1484,8 +1484,8 @@ Create empty spec.
.. _mj_copySpec:
-mj_copySpec
-~~~~~~~~~~~
+`mj_copySpec <#mj_copySpec>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_copySpec
@@ -1493,8 +1493,8 @@ Copy spec.
.. _mj_deleteSpec:
-mj_deleteSpec
-~~~~~~~~~~~~~
+`mj_deleteSpec <#mj_deleteSpec>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_deleteSpec
@@ -1502,8 +1502,8 @@ Free memory allocation in mjSpec.
.. _mjs_activatePlugin:
-mjs_activatePlugin
-~~~~~~~~~~~~~~~~~~
+`mjs_activatePlugin <#mjs_activatePlugin>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_activatePlugin
@@ -1516,8 +1516,8 @@ Error and memory
.. _mju_error:
-mju_error
-~~~~~~~~~
+`mju_error <#mju_error>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_error
@@ -1525,8 +1525,8 @@ Main error function; does not return to caller.
.. _mju_error_i:
-mju_error_i
-~~~~~~~~~~~
+`mju_error_i <#mju_error_i>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_error_i
@@ -1534,8 +1534,8 @@ Deprecated: use mju_error.
.. _mju_error_s:
-mju_error_s
-~~~~~~~~~~~
+`mju_error_s <#mju_error_s>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_error_s
@@ -1543,8 +1543,8 @@ Deprecated: use mju_error.
.. _mju_warning:
-mju_warning
-~~~~~~~~~~~
+`mju_warning <#mju_warning>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_warning
@@ -1552,8 +1552,8 @@ Main warning function; returns to caller.
.. _mju_warning_i:
-mju_warning_i
-~~~~~~~~~~~~~
+`mju_warning_i <#mju_warning_i>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_warning_i
@@ -1561,8 +1561,8 @@ Deprecated: use mju_warning.
.. _mju_warning_s:
-mju_warning_s
-~~~~~~~~~~~~~
+`mju_warning_s <#mju_warning_s>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_warning_s
@@ -1570,8 +1570,8 @@ Deprecated: use mju_warning.
.. _mju_clearHandlers:
-mju_clearHandlers
-~~~~~~~~~~~~~~~~~
+`mju_clearHandlers <#mju_clearHandlers>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_clearHandlers
@@ -1579,8 +1579,8 @@ Clear user error and memory handlers.
.. _mju_malloc:
-mju_malloc
-~~~~~~~~~~
+`mju_malloc <#mju_malloc>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_malloc
@@ -1588,8 +1588,8 @@ Allocate memory; byte-align on 64; pad size to multiple of 64.
.. _mju_free:
-mju_free
-~~~~~~~~
+`mju_free <#mju_free>`__
+~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_free
@@ -1597,8 +1597,8 @@ Free memory, using free() by default.
.. _mj_warning:
-mj_warning
-~~~~~~~~~~
+`mj_warning <#mj_warning>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mj_warning
@@ -1606,8 +1606,8 @@ High-level warning function: count warnings in mjData, print only the first.
.. _mju_writeLog:
-mju_writeLog
-~~~~~~~~~~~~
+`mju_writeLog <#mju_writeLog>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_writeLog
@@ -1615,8 +1615,8 @@ Write [datetime, type: message] to MUJOCO_LOG.TXT.
.. _mjs_getError:
-mjs_getError
-~~~~~~~~~~~~
+`mjs_getError <#mjs_getError>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_getError
@@ -1624,8 +1624,8 @@ Get compiler error message from spec.
.. _mjs_isWarning:
-mjs_isWarning
-~~~~~~~~~~~~~
+`mjs_isWarning <#mjs_isWarning>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_isWarning
@@ -1638,8 +1638,8 @@ Miscellaneous
.. _mju_muscleGain:
-mju_muscleGain
-~~~~~~~~~~~~~~
+`mju_muscleGain <#mju_muscleGain>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_muscleGain
@@ -1647,8 +1647,8 @@ Muscle active force, prm = (range[2], force, scale, lmin, lmax, vmax, fpmax, fvm
.. _mju_muscleBias:
-mju_muscleBias
-~~~~~~~~~~~~~~
+`mju_muscleBias <#mju_muscleBias>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_muscleBias
@@ -1656,8 +1656,8 @@ Muscle passive force, prm = (range[2], force, scale, lmin, lmax, vmax, fpmax, fv
.. _mju_muscleDynamics:
-mju_muscleDynamics
-~~~~~~~~~~~~~~~~~~
+`mju_muscleDynamics <#mju_muscleDynamics>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_muscleDynamics
@@ -1665,8 +1665,8 @@ Muscle activation dynamics, prm = (tau_act, tau_deact, smoothing_width).
.. _mju_encodePyramid:
-mju_encodePyramid
-~~~~~~~~~~~~~~~~~
+`mju_encodePyramid <#mju_encodePyramid>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_encodePyramid
@@ -1674,8 +1674,8 @@ Convert contact force to pyramid representation.
.. _mju_decodePyramid:
-mju_decodePyramid
-~~~~~~~~~~~~~~~~~
+`mju_decodePyramid <#mju_decodePyramid>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_decodePyramid
@@ -1683,8 +1683,8 @@ Convert pyramid representation to contact force.
.. _mju_springDamper:
-mju_springDamper
-~~~~~~~~~~~~~~~~
+`mju_springDamper <#mju_springDamper>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_springDamper
@@ -1692,8 +1692,8 @@ Integrate spring-damper analytically, return pos(dt).
.. _mju_min:
-mju_min
-~~~~~~~
+`mju_min <#mju_min>`__
+~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_min
@@ -1701,8 +1701,8 @@ Return min(a,b) with single evaluation of a and b.
.. _mju_max:
-mju_max
-~~~~~~~
+`mju_max <#mju_max>`__
+~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_max
@@ -1710,8 +1710,8 @@ Return max(a,b) with single evaluation of a and b.
.. _mju_clip:
-mju_clip
-~~~~~~~~
+`mju_clip <#mju_clip>`__
+~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_clip
@@ -1719,8 +1719,8 @@ Clip x to the range [min, max].
.. _mju_sign:
-mju_sign
-~~~~~~~~
+`mju_sign <#mju_sign>`__
+~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_sign
@@ -1728,8 +1728,8 @@ Return sign of x: +1, -1 or 0.
.. _mju_round:
-mju_round
-~~~~~~~~~
+`mju_round <#mju_round>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_round
@@ -1737,8 +1737,8 @@ Round x to nearest integer.
.. _mju_type2Str:
-mju_type2Str
-~~~~~~~~~~~~
+`mju_type2Str <#mju_type2Str>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_type2Str
@@ -1746,8 +1746,8 @@ Convert type id (mjtObj) to type name.
.. _mju_str2Type:
-mju_str2Type
-~~~~~~~~~~~~
+`mju_str2Type <#mju_str2Type>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_str2Type
@@ -1755,8 +1755,8 @@ Convert type name to type id (mjtObj).
.. _mju_writeNumBytes:
-mju_writeNumBytes
-~~~~~~~~~~~~~~~~~
+`mju_writeNumBytes <#mju_writeNumBytes>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_writeNumBytes
@@ -1764,8 +1764,8 @@ Return human readable number of bytes using standard letter suffix.
.. _mju_warningText:
-mju_warningText
-~~~~~~~~~~~~~~~
+`mju_warningText <#mju_warningText>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_warningText
@@ -1773,8 +1773,8 @@ Construct a warning message given the warning type and info.
.. _mju_isBad:
-mju_isBad
-~~~~~~~~~
+`mju_isBad <#mju_isBad>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_isBad
@@ -1782,8 +1782,8 @@ Return 1 if nan or abs(x)>mjMAXVAL, 0 otherwise. Used by check functions.
.. _mju_isZero:
-mju_isZero
-~~~~~~~~~~
+`mju_isZero <#mju_isZero>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_isZero
@@ -1791,8 +1791,8 @@ Return 1 if all elements are 0.
.. _mju_standardNormal:
-mju_standardNormal
-~~~~~~~~~~~~~~~~~~
+`mju_standardNormal <#mju_standardNormal>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_standardNormal
@@ -1800,8 +1800,8 @@ Standard normal random number generator (optional second number).
.. _mju_f2n:
-mju_f2n
-~~~~~~~
+`mju_f2n <#mju_f2n>`__
+~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_f2n
@@ -1809,8 +1809,8 @@ Convert from float to mjtNum.
.. _mju_n2f:
-mju_n2f
-~~~~~~~
+`mju_n2f <#mju_n2f>`__
+~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_n2f
@@ -1818,8 +1818,8 @@ Convert from mjtNum to float.
.. _mju_d2n:
-mju_d2n
-~~~~~~~
+`mju_d2n <#mju_d2n>`__
+~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_d2n
@@ -1827,8 +1827,8 @@ Convert from double to mjtNum.
.. _mju_n2d:
-mju_n2d
-~~~~~~~
+`mju_n2d <#mju_n2d>`__
+~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_n2d
@@ -1836,8 +1836,8 @@ Convert from mjtNum to double.
.. _mju_insertionSort:
-mju_insertionSort
-~~~~~~~~~~~~~~~~~
+`mju_insertionSort <#mju_insertionSort>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_insertionSort
@@ -1845,8 +1845,8 @@ Insertion sort, resulting list is in increasing order.
.. _mju_insertionSortInt:
-mju_insertionSortInt
-~~~~~~~~~~~~~~~~~~~~
+`mju_insertionSortInt <#mju_insertionSortInt>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_insertionSortInt
@@ -1854,8 +1854,8 @@ Integer insertion sort, resulting list is in increasing order.
.. _mju_Halton:
-mju_Halton
-~~~~~~~~~~
+`mju_Halton <#mju_Halton>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_Halton
@@ -1863,8 +1863,8 @@ Generate Halton sequence.
.. _mju_strncpy:
-mju_strncpy
-~~~~~~~~~~~
+`mju_strncpy <#mju_strncpy>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_strncpy
@@ -1872,8 +1872,8 @@ Call strncpy, then set dst[n-1] = 0.
.. _mju_sigmoid:
-mju_sigmoid
-~~~~~~~~~~~
+`mju_sigmoid <#mju_sigmoid>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_sigmoid
@@ -1897,8 +1897,8 @@ illustrated in :ref:`simulate`.
.. _mjv_defaultCamera:
-mjv_defaultCamera
-~~~~~~~~~~~~~~~~~
+`mjv_defaultCamera <#mjv_defaultCamera>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_defaultCamera
@@ -1906,8 +1906,8 @@ Set default camera.
.. _mjv_defaultFreeCamera:
-mjv_defaultFreeCamera
-~~~~~~~~~~~~~~~~~~~~~
+`mjv_defaultFreeCamera <#mjv_defaultFreeCamera>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_defaultFreeCamera
@@ -1915,8 +1915,8 @@ Set default free camera.
.. _mjv_defaultPerturb:
-mjv_defaultPerturb
-~~~~~~~~~~~~~~~~~~
+`mjv_defaultPerturb <#mjv_defaultPerturb>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_defaultPerturb
@@ -1924,8 +1924,8 @@ Set default perturbation.
.. _mjv_room2model:
-mjv_room2model
-~~~~~~~~~~~~~~
+`mjv_room2model <#mjv_room2model>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_room2model
@@ -1933,8 +1933,8 @@ Transform pose from room to model space.
.. _mjv_model2room:
-mjv_model2room
-~~~~~~~~~~~~~~
+`mjv_model2room <#mjv_model2room>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_model2room
@@ -1942,8 +1942,8 @@ Transform pose from model to room space.
.. _mjv_cameraInModel:
-mjv_cameraInModel
-~~~~~~~~~~~~~~~~~
+`mjv_cameraInModel <#mjv_cameraInModel>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_cameraInModel
@@ -1951,8 +1951,8 @@ Get camera info in model space; average left and right OpenGL cameras.
.. _mjv_cameraInRoom:
-mjv_cameraInRoom
-~~~~~~~~~~~~~~~~
+`mjv_cameraInRoom <#mjv_cameraInRoom>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_cameraInRoom
@@ -1960,8 +1960,8 @@ Get camera info in room space; average left and right OpenGL cameras.
.. _mjv_frustumHeight:
-mjv_frustumHeight
-~~~~~~~~~~~~~~~~~
+`mjv_frustumHeight <#mjv_frustumHeight>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_frustumHeight
@@ -1969,8 +1969,8 @@ Get frustum height at unit distance from camera; average left and right OpenGL c
.. _mjv_alignToCamera:
-mjv_alignToCamera
-~~~~~~~~~~~~~~~~~
+`mjv_alignToCamera <#mjv_alignToCamera>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_alignToCamera
@@ -1978,8 +1978,8 @@ Rotate 3D vec in horizontal plane by angle between (0,1) and (forward_x,forward_
.. _mjv_moveCamera:
-mjv_moveCamera
-~~~~~~~~~~~~~~
+`mjv_moveCamera <#mjv_moveCamera>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_moveCamera
@@ -1987,8 +1987,8 @@ Move camera with mouse; action is mjtMouse.
.. _mjv_moveCameraFromState:
-mjv_moveCameraFromState
-~~~~~~~~~~~~~~~~~~~~~~~
+`mjv_moveCameraFromState <#mjv_moveCameraFromState>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_moveCameraFromState
@@ -1996,8 +1996,8 @@ Move camera with mouse given a scene state; action is mjtMouse.
.. _mjv_movePerturb:
-mjv_movePerturb
-~~~~~~~~~~~~~~~
+`mjv_movePerturb <#mjv_movePerturb>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_movePerturb
@@ -2005,8 +2005,8 @@ Move perturb object with mouse; action is mjtMouse.
.. _mjv_movePerturbFromState:
-mjv_movePerturbFromState
-~~~~~~~~~~~~~~~~~~~~~~~~
+`mjv_movePerturbFromState <#mjv_movePerturbFromState>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_movePerturbFromState
@@ -2014,8 +2014,8 @@ Move perturb object with mouse given a scene state; action is mjtMouse.
.. _mjv_moveModel:
-mjv_moveModel
-~~~~~~~~~~~~~
+`mjv_moveModel <#mjv_moveModel>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_moveModel
@@ -2023,8 +2023,8 @@ Move model with mouse; action is mjtMouse.
.. _mjv_initPerturb:
-mjv_initPerturb
-~~~~~~~~~~~~~~~
+`mjv_initPerturb <#mjv_initPerturb>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_initPerturb
@@ -2032,8 +2032,8 @@ Copy perturb pos,quat from selected body; set scale for perturbation.
.. _mjv_applyPerturbPose:
-mjv_applyPerturbPose
-~~~~~~~~~~~~~~~~~~~~
+`mjv_applyPerturbPose <#mjv_applyPerturbPose>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_applyPerturbPose
@@ -2042,8 +2042,8 @@ Write d->qpos only if flg_paused and subtree root for selected body has free joi
.. _mjv_applyPerturbForce:
-mjv_applyPerturbForce
-~~~~~~~~~~~~~~~~~~~~~
+`mjv_applyPerturbForce <#mjv_applyPerturbForce>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_applyPerturbForce
@@ -2051,8 +2051,8 @@ Set perturb force,torque in d->xfrc_applied, if selected body is dynamic.
.. _mjv_averageCamera:
-mjv_averageCamera
-~~~~~~~~~~~~~~~~~
+`mjv_averageCamera <#mjv_averageCamera>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_averageCamera
@@ -2060,8 +2060,8 @@ Return the average of two OpenGL cameras.
.. _mjv_select:
-mjv_select
-~~~~~~~~~~
+`mjv_select <#mjv_select>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_select
@@ -2082,8 +2082,8 @@ Unity or Unreal Engine. See :ref:`simulate` for illustration of how
.. _mjv_defaultOption:
-mjv_defaultOption
-~~~~~~~~~~~~~~~~~
+`mjv_defaultOption <#mjv_defaultOption>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_defaultOption
@@ -2091,8 +2091,8 @@ Set default visualization options.
.. _mjv_defaultFigure:
-mjv_defaultFigure
-~~~~~~~~~~~~~~~~~
+`mjv_defaultFigure <#mjv_defaultFigure>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_defaultFigure
@@ -2100,8 +2100,8 @@ Set default figure.
.. _mjv_initGeom:
-mjv_initGeom
-~~~~~~~~~~~~
+`mjv_initGeom <#mjv_initGeom>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_initGeom
@@ -2109,8 +2109,8 @@ Initialize given geom fields when not NULL, set the rest to their default values
.. _mjv_connector:
-mjv_connector
-~~~~~~~~~~~~~
+`mjv_connector <#mjv_connector>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_connector
@@ -2120,8 +2120,8 @@ Width of mjGEOM_LINE is denominated in pixels.
.. _mjv_defaultScene:
-mjv_defaultScene
-~~~~~~~~~~~~~~~~
+`mjv_defaultScene <#mjv_defaultScene>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_defaultScene
@@ -2129,8 +2129,8 @@ Set default abstract scene.
.. _mjv_makeScene:
-mjv_makeScene
-~~~~~~~~~~~~~
+`mjv_makeScene <#mjv_makeScene>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_makeScene
@@ -2138,8 +2138,8 @@ Allocate resources in abstract scene.
.. _mjv_freeScene:
-mjv_freeScene
-~~~~~~~~~~~~~
+`mjv_freeScene <#mjv_freeScene>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_freeScene
@@ -2147,8 +2147,8 @@ Free abstract scene.
.. _mjv_updateScene:
-mjv_updateScene
-~~~~~~~~~~~~~~~
+`mjv_updateScene <#mjv_updateScene>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_updateScene
@@ -2156,8 +2156,8 @@ Update entire scene given model state.
.. _mjv_updateSceneFromState:
-mjv_updateSceneFromState
-~~~~~~~~~~~~~~~~~~~~~~~~
+`mjv_updateSceneFromState <#mjv_updateSceneFromState>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_updateSceneFromState
@@ -2165,8 +2165,8 @@ Update entire scene from a scene state, return the number of new mjWARN_VGEOMFUL
.. _mjv_defaultSceneState:
-mjv_defaultSceneState
-~~~~~~~~~~~~~~~~~~~~~
+`mjv_defaultSceneState <#mjv_defaultSceneState>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_defaultSceneState
@@ -2174,8 +2174,8 @@ Set default scene state.
.. _mjv_makeSceneState:
-mjv_makeSceneState
-~~~~~~~~~~~~~~~~~~
+`mjv_makeSceneState <#mjv_makeSceneState>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_makeSceneState
@@ -2183,8 +2183,8 @@ Allocate resources and initialize a scene state object.
.. _mjv_freeSceneState:
-mjv_freeSceneState
-~~~~~~~~~~~~~~~~~~
+`mjv_freeSceneState <#mjv_freeSceneState>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_freeSceneState
@@ -2192,8 +2192,8 @@ Free scene state.
.. _mjv_updateSceneState:
-mjv_updateSceneState
-~~~~~~~~~~~~~~~~~~~~
+`mjv_updateSceneState <#mjv_updateSceneState>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_updateSceneState
@@ -2201,8 +2201,8 @@ Update a scene state from model and data.
.. _mjv_addGeoms:
-mjv_addGeoms
-~~~~~~~~~~~~
+`mjv_addGeoms <#mjv_addGeoms>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_addGeoms
@@ -2210,8 +2210,8 @@ Add geoms from selected categories.
.. _mjv_makeLights:
-mjv_makeLights
-~~~~~~~~~~~~~~
+`mjv_makeLights <#mjv_makeLights>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_makeLights
@@ -2219,8 +2219,8 @@ Make list of lights.
.. _mjv_updateCamera:
-mjv_updateCamera
-~~~~~~~~~~~~~~~~
+`mjv_updateCamera <#mjv_updateCamera>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_updateCamera
@@ -2228,8 +2228,8 @@ Update camera.
.. _mjv_updateSkin:
-mjv_updateSkin
-~~~~~~~~~~~~~~
+`mjv_updateSkin <#mjv_updateSkin>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjv_updateSkin
@@ -2245,8 +2245,8 @@ of how to use these functions.
.. _mjr_defaultContext:
-mjr_defaultContext
-~~~~~~~~~~~~~~~~~~
+`mjr_defaultContext <#mjr_defaultContext>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjr_defaultContext
@@ -2254,8 +2254,8 @@ Set default mjrContext.
.. _mjr_makeContext:
-mjr_makeContext
-~~~~~~~~~~~~~~~
+`mjr_makeContext <#mjr_makeContext>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjr_makeContext
@@ -2263,8 +2263,8 @@ Allocate resources in custom OpenGL context; fontscale is mjtFontScale.
.. _mjr_changeFont:
-mjr_changeFont
-~~~~~~~~~~~~~~
+`mjr_changeFont <#mjr_changeFont>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjr_changeFont
@@ -2272,8 +2272,8 @@ Change font of existing context.
.. _mjr_addAux:
-mjr_addAux
-~~~~~~~~~~
+`mjr_addAux <#mjr_addAux>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjr_addAux
@@ -2281,8 +2281,8 @@ Add Aux buffer with given index to context; free previous Aux buffer.
.. _mjr_freeContext:
-mjr_freeContext
-~~~~~~~~~~~~~~~
+`mjr_freeContext <#mjr_freeContext>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjr_freeContext
@@ -2290,8 +2290,8 @@ Free resources in custom OpenGL context, set to default.
.. _mjr_resizeOffscreen:
-mjr_resizeOffscreen
-~~~~~~~~~~~~~~~~~~~
+`mjr_resizeOffscreen <#mjr_resizeOffscreen>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjr_resizeOffscreen
@@ -2299,8 +2299,8 @@ Resize offscreen buffers.
.. _mjr_uploadTexture:
-mjr_uploadTexture
-~~~~~~~~~~~~~~~~~
+`mjr_uploadTexture <#mjr_uploadTexture>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjr_uploadTexture
@@ -2308,8 +2308,8 @@ Upload texture to GPU, overwriting previous upload if any.
.. _mjr_uploadMesh:
-mjr_uploadMesh
-~~~~~~~~~~~~~~
+`mjr_uploadMesh <#mjr_uploadMesh>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjr_uploadMesh
@@ -2317,8 +2317,8 @@ Upload mesh to GPU, overwriting previous upload if any.
.. _mjr_uploadHField:
-mjr_uploadHField
-~~~~~~~~~~~~~~~~
+`mjr_uploadHField <#mjr_uploadHField>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjr_uploadHField
@@ -2326,8 +2326,8 @@ Upload height field to GPU, overwriting previous upload if any.
.. _mjr_restoreBuffer:
-mjr_restoreBuffer
-~~~~~~~~~~~~~~~~~
+`mjr_restoreBuffer <#mjr_restoreBuffer>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjr_restoreBuffer
@@ -2335,8 +2335,8 @@ Make con->currentBuffer current again.
.. _mjr_setBuffer:
-mjr_setBuffer
-~~~~~~~~~~~~~
+`mjr_setBuffer <#mjr_setBuffer>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjr_setBuffer
@@ -2345,8 +2345,8 @@ If only one buffer is available, set that buffer and ignore framebuffer argument
.. _mjr_readPixels:
-mjr_readPixels
-~~~~~~~~~~~~~~
+`mjr_readPixels <#mjr_readPixels>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjr_readPixels
@@ -2355,8 +2355,8 @@ Viewport is in OpenGL framebuffer; client buffer starts at (0,0).
.. _mjr_drawPixels:
-mjr_drawPixels
-~~~~~~~~~~~~~~
+`mjr_drawPixels <#mjr_drawPixels>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjr_drawPixels
@@ -2365,8 +2365,8 @@ Viewport is in OpenGL framebuffer; client buffer starts at (0,0).
.. _mjr_blitBuffer:
-mjr_blitBuffer
-~~~~~~~~~~~~~~
+`mjr_blitBuffer <#mjr_blitBuffer>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjr_blitBuffer
@@ -2375,8 +2375,8 @@ If src, dst have different size and flg_depth==0, color is interpolated with GL_
.. _mjr_setAux:
-mjr_setAux
-~~~~~~~~~~
+`mjr_setAux <#mjr_setAux>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjr_setAux
@@ -2384,8 +2384,8 @@ Set Aux buffer for custom OpenGL rendering (call restoreBuffer when done).
.. _mjr_blitAux:
-mjr_blitAux
-~~~~~~~~~~~
+`mjr_blitAux <#mjr_blitAux>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjr_blitAux
@@ -2393,8 +2393,8 @@ Blit from Aux buffer to con->currentBuffer.
.. _mjr_text:
-mjr_text
-~~~~~~~~
+`mjr_text <#mjr_text>`__
+~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjr_text
@@ -2402,8 +2402,8 @@ Draw text at (x,y) in relative coordinates; font is mjtFont.
.. _mjr_overlay:
-mjr_overlay
-~~~~~~~~~~~
+`mjr_overlay <#mjr_overlay>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjr_overlay
@@ -2411,8 +2411,8 @@ Draw text overlay; font is mjtFont; gridpos is mjtGridPos.
.. _mjr_maxViewport:
-mjr_maxViewport
-~~~~~~~~~~~~~~~
+`mjr_maxViewport <#mjr_maxViewport>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjr_maxViewport
@@ -2420,8 +2420,8 @@ Get maximum viewport for active buffer.
.. _mjr_rectangle:
-mjr_rectangle
-~~~~~~~~~~~~~
+`mjr_rectangle <#mjr_rectangle>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjr_rectangle
@@ -2429,8 +2429,8 @@ Draw rectangle.
.. _mjr_label:
-mjr_label
-~~~~~~~~~
+`mjr_label <#mjr_label>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjr_label
@@ -2438,8 +2438,8 @@ Draw rectangle with centered text.
.. _mjr_figure:
-mjr_figure
-~~~~~~~~~~
+`mjr_figure <#mjr_figure>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjr_figure
@@ -2447,8 +2447,8 @@ Draw 2D figure.
.. _mjr_render:
-mjr_render
-~~~~~~~~~~
+`mjr_render <#mjr_render>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjr_render
@@ -2456,8 +2456,8 @@ Render 3D scene.
.. _mjr_finish:
-mjr_finish
-~~~~~~~~~~
+`mjr_finish <#mjr_finish>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjr_finish
@@ -2465,8 +2465,8 @@ Call glFinish.
.. _mjr_getError:
-mjr_getError
-~~~~~~~~~~~~
+`mjr_getError <#mjr_getError>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjr_getError
@@ -2474,8 +2474,8 @@ Call glGetError and return result.
.. _mjr_findRect:
-mjr_findRect
-~~~~~~~~~~~~
+`mjr_findRect <#mjr_findRect>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjr_findRect
@@ -2490,8 +2490,8 @@ For a high-level description of the UI framework, see :ref:`UI`.
.. _mjui_themeSpacing:
-mjui_themeSpacing
-~~~~~~~~~~~~~~~~~
+`mjui_themeSpacing <#mjui_themeSpacing>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjui_themeSpacing
@@ -2499,8 +2499,8 @@ Get builtin UI theme spacing (ind: 0-1).
.. _mjui_themeColor:
-mjui_themeColor
-~~~~~~~~~~~~~~~
+`mjui_themeColor <#mjui_themeColor>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjui_themeColor
@@ -2508,8 +2508,8 @@ Get builtin UI theme color (ind: 0-3).
.. _mjui_add:
-mjui_add
-~~~~~~~~
+`mjui_add <#mjui_add>`__
+~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjui_add
@@ -2522,8 +2522,8 @@ of the UI. Keep in mind that there is a maximum preallocated number of sections
.. _mjui_addToSection:
-mjui_addToSection
-~~~~~~~~~~~~~~~~~
+`mjui_addToSection <#mjui_addToSection>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjui_addToSection
@@ -2531,8 +2531,8 @@ Add definitions to UI section.
.. _mjui_resize:
-mjui_resize
-~~~~~~~~~~~
+`mjui_resize <#mjui_resize>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjui_resize
@@ -2540,8 +2540,8 @@ Compute UI sizes.
.. _mjui_update:
-mjui_update
-~~~~~~~~~~~
+`mjui_update <#mjui_update>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjui_update
@@ -2554,8 +2554,8 @@ specifies the section and the item that was modified. A value of -1 means all it
.. _mjui_event:
-mjui_event
-~~~~~~~~~~
+`mjui_event <#mjui_event>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjui_event
@@ -2566,8 +2566,8 @@ depending on which UI item was modified and what the state of that item is after
.. _mjui_render:
-mjui_render
-~~~~~~~~~~~
+`mjui_render <#mjui_render>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjui_render
@@ -2586,8 +2586,8 @@ outputs of derivative functions are the trailing rather than leading arguments.
.. _mjd_transitionFD:
-mjd_transitionFD
-~~~~~~~~~~~~~~~~
+`mjd_transitionFD <#mjd_transitionFD>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjd_transitionFD
@@ -2635,8 +2635,8 @@ These matrices and their dimensions are:
.. _mjd_inverseFD:
-mjd_inverseFD
-~~~~~~~~~~~~~
+`mjd_inverseFD <#mjd_inverseFD>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjd_inverseFD
@@ -2678,8 +2678,8 @@ using finite-differencing. These matrices and their dimensions are:
.. _mjd_subQuat:
-mjd_subQuat
-~~~~~~~~~~~
+`mjd_subQuat <#mjd_subQuat>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjd_subQuat
@@ -2687,8 +2687,8 @@ Derivatives of :ref:`mju_subQuat` (quaternion difference).
.. _mjd_quatIntegrate:
-mjd_quatIntegrate
-~~~~~~~~~~~~~~~~~
+`mjd_quatIntegrate <#mjd_quatIntegrate>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjd_quatIntegrate
@@ -2718,8 +2718,8 @@ Plugins
^^^^^^^
.. _mjp_defaultPlugin:
-mjp_defaultPlugin
-~~~~~~~~~~~~~~~~~
+`mjp_defaultPlugin <#mjp_defaultPlugin>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjp_defaultPlugin
@@ -2727,8 +2727,8 @@ Set default plugin definition.
.. _mjp_registerPlugin:
-mjp_registerPlugin
-~~~~~~~~~~~~~~~~~~
+`mjp_registerPlugin <#mjp_registerPlugin>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjp_registerPlugin
@@ -2741,8 +2741,8 @@ need not be the same.
.. _mjp_pluginCount:
-mjp_pluginCount
-~~~~~~~~~~~~~~~
+`mjp_pluginCount <#mjp_pluginCount>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjp_pluginCount
@@ -2750,8 +2750,8 @@ Return the number of globally registered plugins.
.. _mjp_getPlugin:
-mjp_getPlugin
-~~~~~~~~~~~~~
+`mjp_getPlugin <#mjp_getPlugin>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjp_getPlugin
@@ -2759,8 +2759,8 @@ Look up a plugin by name. If slot is not NULL, also write its registered slot nu
.. _mjp_getPluginAtSlot:
-mjp_getPluginAtSlot
-~~~~~~~~~~~~~~~~~~~
+`mjp_getPluginAtSlot <#mjp_getPluginAtSlot>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjp_getPluginAtSlot
@@ -2768,8 +2768,8 @@ Look up a plugin by the registered slot number that was returned by mjp_register
.. _mjp_defaultResourceProvider:
-mjp_defaultResourceProvider
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
+`mjp_defaultResourceProvider <#mjp_defaultResourceProvider>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjp_defaultResourceProvider
@@ -2777,8 +2777,8 @@ Set default resource provider definition.
.. _mjp_registerResourceProvider:
-mjp_registerResourceProvider
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+`mjp_registerResourceProvider <#mjp_registerResourceProvider>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjp_registerResourceProvider
@@ -2788,8 +2788,8 @@ returns a slot number > 0 on success.
.. _mjp_resourceProviderCount:
-mjp_resourceProviderCount
-~~~~~~~~~~~~~~~~~~~~~~~~~
+`mjp_resourceProviderCount <#mjp_resourceProviderCount>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjp_resourceProviderCount
@@ -2797,8 +2797,8 @@ Return the number of globally registered resource providers.
.. _mjp_getResourceProvider:
-mjp_getResourceProvider
-~~~~~~~~~~~~~~~~~~~~~~~
+`mjp_getResourceProvider <#mjp_getResourceProvider>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjp_getResourceProvider
@@ -2807,8 +2807,8 @@ If no match, return NULL.
.. _mjp_getResourceProviderAtSlot:
-mjp_getResourceProviderAtSlot
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+`mjp_getResourceProviderAtSlot <#mjp_getResourceProviderAtSlot>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjp_getResourceProviderAtSlot
@@ -2821,8 +2821,8 @@ Threads
^^^^^^^
.. _mju_threadPoolCreate:
-mju_threadPoolCreate
-~~~~~~~~~~~~~~~~~~~~
+`mju_threadPoolCreate <#mju_threadPoolCreate>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_threadPoolCreate
@@ -2830,8 +2830,8 @@ Create a thread pool with the specified number of threads running.
.. _mju_bindThreadPool:
-mju_bindThreadPool
-~~~~~~~~~~~~~~~~~~
+`mju_bindThreadPool <#mju_bindThreadPool>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_bindThreadPool
@@ -2839,8 +2839,8 @@ Adds a thread pool to mjData and configures it for multi-threaded use.
.. _mju_threadPoolEnqueue:
-mju_threadPoolEnqueue
-~~~~~~~~~~~~~~~~~~~~~
+`mju_threadPoolEnqueue <#mju_threadPoolEnqueue>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_threadPoolEnqueue
@@ -2848,8 +2848,8 @@ Enqueue a task in a thread pool.
.. _mju_threadPoolDestroy:
-mju_threadPoolDestroy
-~~~~~~~~~~~~~~~~~~~~~
+`mju_threadPoolDestroy <#mju_threadPoolDestroy>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_threadPoolDestroy
@@ -2857,8 +2857,8 @@ Destroy a thread pool.
.. _mju_defaultTask:
-mju_defaultTask
-~~~~~~~~~~~~~~~
+`mju_defaultTask <#mju_defaultTask>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_defaultTask
@@ -2866,8 +2866,8 @@ Initialize an mjTask.
.. _mju_taskJoin:
-mju_taskJoin
-~~~~~~~~~~~~
+`mju_taskJoin <#mju_taskJoin>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_taskJoin
@@ -2997,8 +2997,8 @@ Vector math
.. _mju_zero3:
-mju_zero3
-~~~~~~~~~
+`mju_zero3 <#mju_zero3>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_zero3
@@ -3006,8 +3006,8 @@ Set res = 0.
.. _mju_copy3:
-mju_copy3
-~~~~~~~~~
+`mju_copy3 <#mju_copy3>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_copy3
@@ -3015,8 +3015,8 @@ Set res = vec.
.. _mju_scl3:
-mju_scl3
-~~~~~~~~
+`mju_scl3 <#mju_scl3>`__
+~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_scl3
@@ -3024,8 +3024,8 @@ Set res = vec*scl.
.. _mju_add3:
-mju_add3
-~~~~~~~~
+`mju_add3 <#mju_add3>`__
+~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_add3
@@ -3033,8 +3033,8 @@ Set res = vec1 + vec2.
.. _mju_sub3:
-mju_sub3
-~~~~~~~~
+`mju_sub3 <#mju_sub3>`__
+~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_sub3
@@ -3042,8 +3042,8 @@ Set res = vec1 - vec2.
.. _mju_addTo3:
-mju_addTo3
-~~~~~~~~~~
+`mju_addTo3 <#mju_addTo3>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_addTo3
@@ -3051,8 +3051,8 @@ Set res = res + vec.
.. _mju_subFrom3:
-mju_subFrom3
-~~~~~~~~~~~~
+`mju_subFrom3 <#mju_subFrom3>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_subFrom3
@@ -3060,8 +3060,8 @@ Set res = res - vec.
.. _mju_addToScl3:
-mju_addToScl3
-~~~~~~~~~~~~~
+`mju_addToScl3 <#mju_addToScl3>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_addToScl3
@@ -3069,8 +3069,8 @@ Set res = res + vec*scl.
.. _mju_addScl3:
-mju_addScl3
-~~~~~~~~~~~
+`mju_addScl3 <#mju_addScl3>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_addScl3
@@ -3078,8 +3078,8 @@ Set res = vec1 + vec2*scl.
.. _mju_normalize3:
-mju_normalize3
-~~~~~~~~~~~~~~
+`mju_normalize3 <#mju_normalize3>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_normalize3
@@ -3087,8 +3087,8 @@ Normalize vector, return length before normalization.
.. _mju_norm3:
-mju_norm3
-~~~~~~~~~
+`mju_norm3 <#mju_norm3>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_norm3
@@ -3096,8 +3096,8 @@ Return vector length (without normalizing the vector).
.. _mju_dot3:
-mju_dot3
-~~~~~~~~
+`mju_dot3 <#mju_dot3>`__
+~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_dot3
@@ -3105,8 +3105,8 @@ Return dot-product of vec1 and vec2.
.. _mju_dist3:
-mju_dist3
-~~~~~~~~~
+`mju_dist3 <#mju_dist3>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_dist3
@@ -3114,8 +3114,8 @@ Return Cartesian distance between 3D vectors pos1 and pos2.
.. _mju_mulMatVec3:
-mju_mulMatVec3
-~~~~~~~~~~~~~~
+`mju_mulMatVec3 <#mju_mulMatVec3>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_mulMatVec3
@@ -3123,8 +3123,8 @@ Multiply 3-by-3 matrix by vector: res = mat * vec.
.. _mju_mulMatTVec3:
-mju_mulMatTVec3
-~~~~~~~~~~~~~~~
+`mju_mulMatTVec3 <#mju_mulMatTVec3>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_mulMatTVec3
@@ -3132,8 +3132,8 @@ Multiply transposed 3-by-3 matrix by vector: res = mat' * vec.
.. _mju_cross:
-mju_cross
-~~~~~~~~~
+`mju_cross <#mju_cross>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_cross
@@ -3141,8 +3141,8 @@ Compute cross-product: res = cross(a, b).
.. _mju_zero4:
-mju_zero4
-~~~~~~~~~
+`mju_zero4 <#mju_zero4>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_zero4
@@ -3150,8 +3150,8 @@ Set res = 0.
.. _mju_unit4:
-mju_unit4
-~~~~~~~~~
+`mju_unit4 <#mju_unit4>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_unit4
@@ -3159,8 +3159,8 @@ Set res = (1,0,0,0).
.. _mju_copy4:
-mju_copy4
-~~~~~~~~~
+`mju_copy4 <#mju_copy4>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_copy4
@@ -3168,8 +3168,8 @@ Set res = vec.
.. _mju_normalize4:
-mju_normalize4
-~~~~~~~~~~~~~~
+`mju_normalize4 <#mju_normalize4>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_normalize4
@@ -3177,8 +3177,8 @@ Normalize vector, return length before normalization.
.. _mju_zero:
-mju_zero
-~~~~~~~~
+`mju_zero <#mju_zero>`__
+~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_zero
@@ -3186,8 +3186,8 @@ Set res = 0.
.. _mju_fill:
-mju_fill
-~~~~~~~~
+`mju_fill <#mju_fill>`__
+~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_fill
@@ -3195,8 +3195,8 @@ Set res = val.
.. _mju_copy:
-mju_copy
-~~~~~~~~
+`mju_copy <#mju_copy>`__
+~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_copy
@@ -3204,8 +3204,8 @@ Set res = vec.
.. _mju_sum:
-mju_sum
-~~~~~~~
+`mju_sum <#mju_sum>`__
+~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_sum
@@ -3213,8 +3213,8 @@ Return sum(vec).
.. _mju_L1:
-mju_L1
-~~~~~~
+`mju_L1 <#mju_L1>`__
+~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_L1
@@ -3222,8 +3222,8 @@ Return L1 norm: sum(abs(vec)).
.. _mju_scl:
-mju_scl
-~~~~~~~
+`mju_scl <#mju_scl>`__
+~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_scl
@@ -3231,8 +3231,8 @@ Set res = vec*scl.
.. _mju_add:
-mju_add
-~~~~~~~
+`mju_add <#mju_add>`__
+~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_add
@@ -3240,8 +3240,8 @@ Set res = vec1 + vec2.
.. _mju_sub:
-mju_sub
-~~~~~~~
+`mju_sub <#mju_sub>`__
+~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_sub
@@ -3249,8 +3249,8 @@ Set res = vec1 - vec2.
.. _mju_addTo:
-mju_addTo
-~~~~~~~~~
+`mju_addTo <#mju_addTo>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_addTo
@@ -3258,8 +3258,8 @@ Set res = res + vec.
.. _mju_subFrom:
-mju_subFrom
-~~~~~~~~~~~
+`mju_subFrom <#mju_subFrom>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_subFrom
@@ -3267,8 +3267,8 @@ Set res = res - vec.
.. _mju_addToScl:
-mju_addToScl
-~~~~~~~~~~~~
+`mju_addToScl <#mju_addToScl>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_addToScl
@@ -3276,8 +3276,8 @@ Set res = res + vec*scl.
.. _mju_addScl:
-mju_addScl
-~~~~~~~~~~
+`mju_addScl <#mju_addScl>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_addScl
@@ -3285,8 +3285,8 @@ Set res = vec1 + vec2*scl.
.. _mju_normalize:
-mju_normalize
-~~~~~~~~~~~~~
+`mju_normalize <#mju_normalize>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_normalize
@@ -3294,8 +3294,8 @@ Normalize vector, return length before normalization.
.. _mju_norm:
-mju_norm
-~~~~~~~~
+`mju_norm <#mju_norm>`__
+~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_norm
@@ -3303,8 +3303,8 @@ Return vector length (without normalizing vector).
.. _mju_dot:
-mju_dot
-~~~~~~~
+`mju_dot <#mju_dot>`__
+~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_dot
@@ -3312,8 +3312,8 @@ Return dot-product of vec1 and vec2.
.. _mju_mulMatVec:
-mju_mulMatVec
-~~~~~~~~~~~~~
+`mju_mulMatVec <#mju_mulMatVec>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_mulMatVec
@@ -3321,8 +3321,8 @@ Multiply matrix and vector: res = mat * vec.
.. _mju_mulMatTVec:
-mju_mulMatTVec
-~~~~~~~~~~~~~~
+`mju_mulMatTVec <#mju_mulMatTVec>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_mulMatTVec
@@ -3330,8 +3330,8 @@ Multiply transposed matrix and vector: res = mat' * vec.
.. _mju_mulVecMatVec:
-mju_mulVecMatVec
-~~~~~~~~~~~~~~~~
+`mju_mulVecMatVec <#mju_mulVecMatVec>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_mulVecMatVec
@@ -3339,8 +3339,8 @@ Multiply square matrix with vectors on both sides: returns vec1' * mat * vec2.
.. _mju_transpose:
-mju_transpose
-~~~~~~~~~~~~~
+`mju_transpose <#mju_transpose>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_transpose
@@ -3348,8 +3348,8 @@ Transpose matrix: res = mat'.
.. _mju_symmetrize:
-mju_symmetrize
-~~~~~~~~~~~~~~
+`mju_symmetrize <#mju_symmetrize>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_symmetrize
@@ -3357,8 +3357,8 @@ Symmetrize square matrix :math:`R = \frac{1}{2}(M + M^T)`.
.. _mju_eye:
-mju_eye
-~~~~~~~
+`mju_eye <#mju_eye>`__
+~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_eye
@@ -3366,8 +3366,8 @@ Set mat to the identity matrix.
.. _mju_mulMatMat:
-mju_mulMatMat
-~~~~~~~~~~~~~
+`mju_mulMatMat <#mju_mulMatMat>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_mulMatMat
@@ -3375,8 +3375,8 @@ Multiply matrices: res = mat1 * mat2.
.. _mju_mulMatMatT:
-mju_mulMatMatT
-~~~~~~~~~~~~~~
+`mju_mulMatMatT <#mju_mulMatMatT>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_mulMatMatT
@@ -3384,8 +3384,8 @@ Multiply matrices, second argument transposed: res = mat1 * mat2'.
.. _mju_mulMatTMat:
-mju_mulMatTMat
-~~~~~~~~~~~~~~
+`mju_mulMatTMat <#mju_mulMatTMat>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_mulMatTMat
@@ -3393,8 +3393,8 @@ Multiply matrices, first argument transposed: res = mat1' * mat2.
.. _mju_sqrMatTD:
-mju_sqrMatTD
-~~~~~~~~~~~~
+`mju_sqrMatTD <#mju_sqrMatTD>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_sqrMatTD
@@ -3402,8 +3402,8 @@ Set res = mat' * diag * mat if diag is not NULL, and res = mat' * mat otherwise.
.. _mju_transformSpatial:
-mju_transformSpatial
-~~~~~~~~~~~~~~~~~~~~
+`mju_transformSpatial <#mju_transformSpatial>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_transformSpatial
@@ -3416,8 +3416,8 @@ Sparse math
^^^^^^^^^^^
.. _mju_dense2sparse:
-mju_dense2sparse
-~~~~~~~~~~~~~~~~
+`mju_dense2sparse <#mju_dense2sparse>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_dense2sparse
@@ -3426,8 +3426,8 @@ Convert matrix from dense to sparse.
.. _mju_sparse2dense:
-mju_sparse2dense
-~~~~~~~~~~~~~~~~
+`mju_sparse2dense <#mju_sparse2dense>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_sparse2dense
@@ -3440,8 +3440,8 @@ Quaternions
.. _mju_rotVecQuat:
-mju_rotVecQuat
-~~~~~~~~~~~~~~
+`mju_rotVecQuat <#mju_rotVecQuat>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_rotVecQuat
@@ -3449,8 +3449,8 @@ Rotate vector by quaternion.
.. _mju_negQuat:
-mju_negQuat
-~~~~~~~~~~~
+`mju_negQuat <#mju_negQuat>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_negQuat
@@ -3458,8 +3458,8 @@ Conjugate quaternion, corresponding to opposite rotation.
.. _mju_mulQuat:
-mju_mulQuat
-~~~~~~~~~~~
+`mju_mulQuat <#mju_mulQuat>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_mulQuat
@@ -3467,8 +3467,8 @@ Multiply quaternions.
.. _mju_mulQuatAxis:
-mju_mulQuatAxis
-~~~~~~~~~~~~~~~
+`mju_mulQuatAxis <#mju_mulQuatAxis>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_mulQuatAxis
@@ -3476,8 +3476,8 @@ Multiply quaternion and axis.
.. _mju_axisAngle2Quat:
-mju_axisAngle2Quat
-~~~~~~~~~~~~~~~~~~
+`mju_axisAngle2Quat <#mju_axisAngle2Quat>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_axisAngle2Quat
@@ -3485,8 +3485,8 @@ Convert axisAngle to quaternion.
.. _mju_quat2Vel:
-mju_quat2Vel
-~~~~~~~~~~~~
+`mju_quat2Vel <#mju_quat2Vel>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_quat2Vel
@@ -3494,8 +3494,8 @@ Convert quaternion (corresponding to orientation difference) to 3D velocity.
.. _mju_subQuat:
-mju_subQuat
-~~~~~~~~~~~
+`mju_subQuat <#mju_subQuat>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_subQuat
@@ -3503,8 +3503,8 @@ Subtract quaternions, express as 3D velocity: qb*quat(res) = qa.
.. _mju_quat2Mat:
-mju_quat2Mat
-~~~~~~~~~~~~
+`mju_quat2Mat <#mju_quat2Mat>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_quat2Mat
@@ -3512,8 +3512,8 @@ Convert quaternion to 3D rotation matrix.
.. _mju_mat2Quat:
-mju_mat2Quat
-~~~~~~~~~~~~
+`mju_mat2Quat <#mju_mat2Quat>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_mat2Quat
@@ -3521,8 +3521,8 @@ Convert 3D rotation matrix to quaternion.
.. _mju_derivQuat:
-mju_derivQuat
-~~~~~~~~~~~~~
+`mju_derivQuat <#mju_derivQuat>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_derivQuat
@@ -3530,8 +3530,8 @@ Compute time-derivative of quaternion, given 3D rotational velocity.
.. _mju_quatIntegrate:
-mju_quatIntegrate
-~~~~~~~~~~~~~~~~~
+`mju_quatIntegrate <#mju_quatIntegrate>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_quatIntegrate
@@ -3539,8 +3539,8 @@ Integrate quaternion given 3D angular velocity.
.. _mju_quatZ2Vec:
-mju_quatZ2Vec
-~~~~~~~~~~~~~
+`mju_quatZ2Vec <#mju_quatZ2Vec>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_quatZ2Vec
@@ -3548,8 +3548,8 @@ Construct quaternion performing rotation from z-axis to given vector.
.. _mju_euler2Quat:
-mju_euler2Quat
-~~~~~~~~~~~~~~
+`mju_euler2Quat <#mju_euler2Quat>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_euler2Quat
@@ -3563,8 +3563,8 @@ Poses
.. _mju_mulPose:
-mju_mulPose
-~~~~~~~~~~~
+`mju_mulPose <#mju_mulPose>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_mulPose
@@ -3572,8 +3572,8 @@ Multiply two poses.
.. _mju_negPose:
-mju_negPose
-~~~~~~~~~~~
+`mju_negPose <#mju_negPose>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_negPose
@@ -3581,8 +3581,8 @@ Conjugate pose, corresponding to the opposite spatial transformation.
.. _mju_trnVecPose:
-mju_trnVecPose
-~~~~~~~~~~~~~~
+`mju_trnVecPose <#mju_trnVecPose>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_trnVecPose
@@ -3595,8 +3595,8 @@ Decompositions / Solvers
.. _mju_cholFactor:
-mju_cholFactor
-~~~~~~~~~~~~~~
+`mju_cholFactor <#mju_cholFactor>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_cholFactor
@@ -3604,8 +3604,8 @@ Cholesky decomposition: mat = L*L'; return rank, decomposition performed in-plac
.. _mju_cholSolve:
-mju_cholSolve
-~~~~~~~~~~~~~
+`mju_cholSolve <#mju_cholSolve>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_cholSolve
@@ -3613,8 +3613,8 @@ Solve (mat*mat') * res = vec, where mat is a Cholesky factor.
.. _mju_cholUpdate:
-mju_cholUpdate
-~~~~~~~~~~~~~~
+`mju_cholUpdate <#mju_cholUpdate>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_cholUpdate
@@ -3622,8 +3622,8 @@ Cholesky rank-one update: L*L' +/- x*x'; return rank.
.. _mju_cholFactorBand:
-mju_cholFactorBand
-~~~~~~~~~~~~~~~~~~
+`mju_cholFactorBand <#mju_cholFactorBand>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_cholFactorBand
@@ -3672,8 +3672,8 @@ Band-dense Cholesky decomposition.
.. _mju_cholSolveBand:
-mju_cholSolveBand
-~~~~~~~~~~~~~~~~~
+`mju_cholSolveBand <#mju_cholSolveBand>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_cholSolveBand
@@ -3681,8 +3681,8 @@ Solve (mat*mat')*res = vec where mat is a band-dense Cholesky factor.
.. _mju_band2Dense:
-mju_band2Dense
-~~~~~~~~~~~~~~
+`mju_band2Dense <#mju_band2Dense>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_band2Dense
@@ -3690,8 +3690,8 @@ Convert banded matrix to dense matrix, fill upper triangle if flg_sym>0.
.. _mju_dense2Band:
-mju_dense2Band
-~~~~~~~~~~~~~~
+`mju_dense2Band <#mju_dense2Band>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_dense2Band
@@ -3699,8 +3699,8 @@ Convert dense matrix to banded matrix.
.. _mju_bandMulMatVec:
-mju_bandMulMatVec
-~~~~~~~~~~~~~~~~~
+`mju_bandMulMatVec <#mju_bandMulMatVec>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_bandMulMatVec
@@ -3708,8 +3708,8 @@ Multiply band-diagonal matrix with nvec vectors, include upper triangle if flg_s
.. _mju_bandDiag:
-mju_bandDiag
-~~~~~~~~~~~~
+`mju_bandDiag <#mju_bandDiag>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_bandDiag
@@ -3717,8 +3717,8 @@ Address of diagonal element i in band-dense matrix representation.
.. _mju_eig3:
-mju_eig3
-~~~~~~~~
+`mju_eig3 <#mju_eig3>`__
+~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_eig3
@@ -3726,8 +3726,8 @@ Eigenvalue decomposition of symmetric 3x3 matrix, mat = eigvec * diag(eigval) *
.. _mju_boxQP:
-mju_boxQP
-~~~~~~~~~
+`mju_boxQP <#mju_boxQP>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_boxQP
@@ -3766,8 +3766,8 @@ notes:
.. _mju_boxQPmalloc:
-mju_boxQPmalloc
-~~~~~~~~~~~~~~~
+`mju_boxQPmalloc <#mju_boxQPmalloc>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mju_boxQPmalloc
@@ -3781,8 +3781,8 @@ Attachment
^^^^^^^^^^
.. _mjs_attachBody:
-mjs_attachBody
-~~~~~~~~~~~~~~
+`mjs_attachBody <#mjs_attachBody>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_attachBody
@@ -3790,8 +3790,8 @@ Attach child body to a parent frame, return the attached body if success or NULL
.. _mjs_attachFrame:
-mjs_attachFrame
-~~~~~~~~~~~~~~~
+`mjs_attachFrame <#mjs_attachFrame>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_attachFrame
@@ -3799,8 +3799,8 @@ Attach child frame to a parent body, return the attached frame if success or NUL
.. _mjs_attachToSite:
-mjs_attachToSite
-~~~~~~~~~~~~~~~~
+`mjs_attachToSite <#mjs_attachToSite>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_attachToSite
@@ -3808,8 +3808,8 @@ Attach child body to a parent site, return the attached body if success or NULL
.. _mjs_detachBody:
-mjs_detachBody
-~~~~~~~~~~~~~~
+`mjs_detachBody <#mjs_detachBody>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_detachBody
@@ -3821,8 +3821,8 @@ Tree elements
^^^^^^^^^^^^^
.. _mjs_addBody:
-mjs_addBody
-~~~~~~~~~~~
+`mjs_addBody <#mjs_addBody>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_addBody
@@ -3830,8 +3830,8 @@ Add child body to body, return child.
.. _mjs_addSite:
-mjs_addSite
-~~~~~~~~~~~
+`mjs_addSite <#mjs_addSite>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_addSite
@@ -3839,8 +3839,8 @@ Add site to body, return site spec.
.. _mjs_addJoint:
-mjs_addJoint
-~~~~~~~~~~~~
+`mjs_addJoint <#mjs_addJoint>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_addJoint
@@ -3848,8 +3848,8 @@ Add joint to body.
.. _mjs_addFreeJoint:
-mjs_addFreeJoint
-~~~~~~~~~~~~~~~~
+`mjs_addFreeJoint <#mjs_addFreeJoint>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_addFreeJoint
@@ -3857,8 +3857,8 @@ Add freejoint to body.
.. _mjs_addGeom:
-mjs_addGeom
-~~~~~~~~~~~
+`mjs_addGeom <#mjs_addGeom>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_addGeom
@@ -3866,8 +3866,8 @@ Add geom to body.
.. _mjs_addCamera:
-mjs_addCamera
-~~~~~~~~~~~~~
+`mjs_addCamera <#mjs_addCamera>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_addCamera
@@ -3875,8 +3875,8 @@ Add camera to body.
.. _mjs_addLight:
-mjs_addLight
-~~~~~~~~~~~~
+`mjs_addLight <#mjs_addLight>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_addLight
@@ -3884,8 +3884,8 @@ Add light to body.
.. _mjs_addFrame:
-mjs_addFrame
-~~~~~~~~~~~~
+`mjs_addFrame <#mjs_addFrame>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_addFrame
@@ -3893,8 +3893,8 @@ Add frame to body.
.. _mjs_delete:
-mjs_delete
-~~~~~~~~~~
+`mjs_delete <#mjs_delete>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_delete
@@ -3906,8 +3906,8 @@ Non-tree elements
^^^^^^^^^^^^^^^^^
.. _mjs_addActuator:
-mjs_addActuator
-~~~~~~~~~~~~~~~
+`mjs_addActuator <#mjs_addActuator>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_addActuator
@@ -3915,8 +3915,8 @@ Add actuator.
.. _mjs_addSensor:
-mjs_addSensor
-~~~~~~~~~~~~~
+`mjs_addSensor <#mjs_addSensor>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_addSensor
@@ -3924,8 +3924,8 @@ Add sensor.
.. _mjs_addFlex:
-mjs_addFlex
-~~~~~~~~~~~
+`mjs_addFlex <#mjs_addFlex>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_addFlex
@@ -3933,8 +3933,8 @@ Add flex.
.. _mjs_addPair:
-mjs_addPair
-~~~~~~~~~~~
+`mjs_addPair <#mjs_addPair>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_addPair
@@ -3942,8 +3942,8 @@ Add contact pair.
.. _mjs_addExclude:
-mjs_addExclude
-~~~~~~~~~~~~~~
+`mjs_addExclude <#mjs_addExclude>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_addExclude
@@ -3951,8 +3951,8 @@ Add excluded body pair.
.. _mjs_addEquality:
-mjs_addEquality
-~~~~~~~~~~~~~~~
+`mjs_addEquality <#mjs_addEquality>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_addEquality
@@ -3960,8 +3960,8 @@ Add equality.
.. _mjs_addTendon:
-mjs_addTendon
-~~~~~~~~~~~~~
+`mjs_addTendon <#mjs_addTendon>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_addTendon
@@ -3969,8 +3969,8 @@ Add tendon.
.. _mjs_wrapSite:
-mjs_wrapSite
-~~~~~~~~~~~~
+`mjs_wrapSite <#mjs_wrapSite>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_wrapSite
@@ -3978,8 +3978,8 @@ Wrap site using tendon.
.. _mjs_wrapGeom:
-mjs_wrapGeom
-~~~~~~~~~~~~
+`mjs_wrapGeom <#mjs_wrapGeom>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_wrapGeom
@@ -3987,8 +3987,8 @@ Wrap geom using tendon.
.. _mjs_wrapJoint:
-mjs_wrapJoint
-~~~~~~~~~~~~~
+`mjs_wrapJoint <#mjs_wrapJoint>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_wrapJoint
@@ -3996,8 +3996,8 @@ Wrap joint using tendon.
.. _mjs_wrapPulley:
-mjs_wrapPulley
-~~~~~~~~~~~~~~
+`mjs_wrapPulley <#mjs_wrapPulley>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_wrapPulley
@@ -4005,8 +4005,8 @@ Wrap pulley using tendon.
.. _mjs_addNumeric:
-mjs_addNumeric
-~~~~~~~~~~~~~~
+`mjs_addNumeric <#mjs_addNumeric>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_addNumeric
@@ -4014,8 +4014,8 @@ Add numeric.
.. _mjs_addText:
-mjs_addText
-~~~~~~~~~~~
+`mjs_addText <#mjs_addText>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_addText
@@ -4023,8 +4023,8 @@ Add text.
.. _mjs_addTuple:
-mjs_addTuple
-~~~~~~~~~~~~
+`mjs_addTuple <#mjs_addTuple>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_addTuple
@@ -4032,8 +4032,8 @@ Add tuple.
.. _mjs_addKey:
-mjs_addKey
-~~~~~~~~~~
+`mjs_addKey <#mjs_addKey>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_addKey
@@ -4041,8 +4041,8 @@ Add keyframe.
.. _mjs_addPlugin:
-mjs_addPlugin
-~~~~~~~~~~~~~
+`mjs_addPlugin <#mjs_addPlugin>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_addPlugin
@@ -4050,8 +4050,8 @@ Add plugin.
.. _mjs_addDefault:
-mjs_addDefault
-~~~~~~~~~~~~~~
+`mjs_addDefault <#mjs_addDefault>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_addDefault
@@ -4063,8 +4063,8 @@ Assets
^^^^^^
.. _mjs_addMesh:
-mjs_addMesh
-~~~~~~~~~~~
+`mjs_addMesh <#mjs_addMesh>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_addMesh
@@ -4072,8 +4072,8 @@ Add mesh.
.. _mjs_addHField:
-mjs_addHField
-~~~~~~~~~~~~~
+`mjs_addHField <#mjs_addHField>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_addHField
@@ -4081,8 +4081,8 @@ Add height field.
.. _mjs_addSkin:
-mjs_addSkin
-~~~~~~~~~~~
+`mjs_addSkin <#mjs_addSkin>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_addSkin
@@ -4090,8 +4090,8 @@ Add skin.
.. _mjs_addTexture:
-mjs_addTexture
-~~~~~~~~~~~~~~
+`mjs_addTexture <#mjs_addTexture>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_addTexture
@@ -4099,8 +4099,8 @@ Add texture.
.. _mjs_addMaterial:
-mjs_addMaterial
-~~~~~~~~~~~~~~~
+`mjs_addMaterial <#mjs_addMaterial>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_addMaterial
@@ -4112,8 +4112,8 @@ Find and get utilities
^^^^^^^^^^^^^^^^^^^^^^
.. _mjs_getSpec:
-mjs_getSpec
-~~~~~~~~~~~
+`mjs_getSpec <#mjs_getSpec>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_getSpec
@@ -4121,8 +4121,8 @@ Get spec from body.
.. _mjs_findSpec:
-mjs_findSpec
-~~~~~~~~~~~~
+`mjs_findSpec <#mjs_findSpec>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_findSpec
@@ -4130,8 +4130,8 @@ Find spec (model asset) by name.
.. _mjs_findBody:
-mjs_findBody
-~~~~~~~~~~~~
+`mjs_findBody <#mjs_findBody>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_findBody
@@ -4139,8 +4139,8 @@ Find body in spec by name.
.. _mjs_findElement:
-mjs_findElement
-~~~~~~~~~~~~~~~
+`mjs_findElement <#mjs_findElement>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_findElement
@@ -4148,8 +4148,8 @@ Find element in spec by name.
.. _mjs_findChild:
-mjs_findChild
-~~~~~~~~~~~~~
+`mjs_findChild <#mjs_findChild>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_findChild
@@ -4157,8 +4157,8 @@ Find child body by name.
.. _mjs_findFrame:
-mjs_findFrame
-~~~~~~~~~~~~~
+`mjs_findFrame <#mjs_findFrame>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_findFrame
@@ -4166,8 +4166,8 @@ Find frame by name.
.. _mjs_getDefault:
-mjs_getDefault
-~~~~~~~~~~~~~~
+`mjs_getDefault <#mjs_getDefault>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_getDefault
@@ -4175,8 +4175,8 @@ Get default corresponding to an element.
.. _mjs_findDefault:
-mjs_findDefault
-~~~~~~~~~~~~~~~
+`mjs_findDefault <#mjs_findDefault>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_findDefault
@@ -4184,8 +4184,8 @@ Find default in model by class name.
.. _mjs_getSpecDefault:
-mjs_getSpecDefault
-~~~~~~~~~~~~~~~~~~
+`mjs_getSpecDefault <#mjs_getSpecDefault>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_getSpecDefault
@@ -4193,8 +4193,8 @@ Get global default from model.
.. _mjs_getId:
-mjs_getId
-~~~~~~~~~
+`mjs_getId <#mjs_getId>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_getId
@@ -4202,8 +4202,8 @@ Get element id.
.. _mjs_firstChild:
-mjs_firstChild
-~~~~~~~~~~~~~~
+`mjs_firstChild <#mjs_firstChild>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_firstChild
@@ -4211,8 +4211,8 @@ Return body's first child of given type. If recurse is nonzero, also search the
.. _mjs_nextChild:
-mjs_nextChild
-~~~~~~~~~~~~~
+`mjs_nextChild <#mjs_nextChild>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_nextChild
@@ -4221,8 +4221,8 @@ If recurse is nonzero, also search the body's subtree.
.. _mjs_firstElement:
-mjs_firstElement
-~~~~~~~~~~~~~~~~
+`mjs_firstElement <#mjs_firstElement>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_firstElement
@@ -4230,8 +4230,8 @@ Return spec's first element of selected type.
.. _mjs_nextElement:
-mjs_nextElement
-~~~~~~~~~~~~~~~
+`mjs_nextElement <#mjs_nextElement>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_nextElement
@@ -4243,8 +4243,8 @@ Attribute setters
^^^^^^^^^^^^^^^^^
.. _mjs_setBuffer:
-mjs_setBuffer
-~~~~~~~~~~~~~
+`mjs_setBuffer <#mjs_setBuffer>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_setBuffer
@@ -4252,8 +4252,8 @@ Copy buffer.
.. _mjs_setString:
-mjs_setString
-~~~~~~~~~~~~~
+`mjs_setString <#mjs_setString>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_setString
@@ -4261,8 +4261,8 @@ Copy text to string.
.. _mjs_setStringVec:
-mjs_setStringVec
-~~~~~~~~~~~~~~~~
+`mjs_setStringVec <#mjs_setStringVec>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_setStringVec
@@ -4270,8 +4270,8 @@ Split text to entries and copy to string vector.
.. _mjs_setInStringVec:
-mjs_setInStringVec
-~~~~~~~~~~~~~~~~~~
+`mjs_setInStringVec <#mjs_setInStringVec>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_setInStringVec
@@ -4279,8 +4279,8 @@ Set entry in string vector.
.. _mjs_appendString:
-mjs_appendString
-~~~~~~~~~~~~~~~~
+`mjs_appendString <#mjs_appendString>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_appendString
@@ -4288,8 +4288,8 @@ Append text entry to string vector.
.. _mjs_setInt:
-mjs_setInt
-~~~~~~~~~~
+`mjs_setInt <#mjs_setInt>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_setInt
@@ -4297,8 +4297,8 @@ Copy int array to vector.
.. _mjs_appendIntVec:
-mjs_appendIntVec
-~~~~~~~~~~~~~~~~
+`mjs_appendIntVec <#mjs_appendIntVec>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_appendIntVec
@@ -4306,8 +4306,8 @@ Append int array to vector of arrays.
.. _mjs_setFloat:
-mjs_setFloat
-~~~~~~~~~~~~
+`mjs_setFloat <#mjs_setFloat>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_setFloat
@@ -4315,8 +4315,8 @@ Copy float array to vector.
.. _mjs_appendFloatVec:
-mjs_appendFloatVec
-~~~~~~~~~~~~~~~~~~
+`mjs_appendFloatVec <#mjs_appendFloatVec>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_appendFloatVec
@@ -4324,8 +4324,8 @@ Append float array to vector of arrays.
.. _mjs_setDouble:
-mjs_setDouble
-~~~~~~~~~~~~~
+`mjs_setDouble <#mjs_setDouble>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_setDouble
@@ -4333,8 +4333,8 @@ Copy double array to vector.
.. _mjs_setPluginAttributes:
-mjs_setPluginAttributes
-~~~~~~~~~~~~~~~~~~~~~~~
+`mjs_setPluginAttributes <#mjs_setPluginAttributes>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_setPluginAttributes
@@ -4346,8 +4346,8 @@ Attribute getters
^^^^^^^^^^^^^^^^^
.. _mjs_getString:
-mjs_getString
-~~~~~~~~~~~~~
+`mjs_getString <#mjs_getString>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_getString
@@ -4355,8 +4355,8 @@ Get string contents.
.. _mjs_getDouble:
-mjs_getDouble
-~~~~~~~~~~~~~
+`mjs_getDouble <#mjs_getDouble>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_getDouble
@@ -4368,8 +4368,8 @@ Spec utilities
^^^^^^^^^^^^^^
.. _mjs_setDefault:
-mjs_setDefault
-~~~~~~~~~~~~~~
+`mjs_setDefault <#mjs_setDefault>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_setDefault
@@ -4377,8 +4377,8 @@ Set element's default.
.. _mjs_setFrame:
-mjs_setFrame
-~~~~~~~~~~~~
+`mjs_setFrame <#mjs_setFrame>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_setFrame
@@ -4386,8 +4386,8 @@ Set element's enclosing frame.
.. _mjs_resolveOrientation:
-mjs_resolveOrientation
-~~~~~~~~~~~~~~~~~~~~~~
+`mjs_resolveOrientation <#mjs_resolveOrientation>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_resolveOrientation
@@ -4395,8 +4395,8 @@ Resolve alternative orientations to quat, return error if any.
.. _mjs_bodyToFrame:
-mjs_bodyToFrame
-~~~~~~~~~~~~~~~
+`mjs_bodyToFrame <#mjs_bodyToFrame>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_bodyToFrame
@@ -4408,8 +4408,8 @@ Element initialization
^^^^^^^^^^^^^^^^^^^^^^
.. _mjs_defaultSpec:
-mjs_defaultSpec
-~~~~~~~~~~~~~~~
+`mjs_defaultSpec <#mjs_defaultSpec>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_defaultSpec
@@ -4417,8 +4417,8 @@ Default spec attributes.
.. _mjs_defaultOrientation:
-mjs_defaultOrientation
-~~~~~~~~~~~~~~~~~~~~~~
+`mjs_defaultOrientation <#mjs_defaultOrientation>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_defaultOrientation
@@ -4426,8 +4426,8 @@ Default orientation attributes.
.. _mjs_defaultBody:
-mjs_defaultBody
-~~~~~~~~~~~~~~~
+`mjs_defaultBody <#mjs_defaultBody>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_defaultBody
@@ -4435,8 +4435,8 @@ Default body attributes.
.. _mjs_defaultFrame:
-mjs_defaultFrame
-~~~~~~~~~~~~~~~~
+`mjs_defaultFrame <#mjs_defaultFrame>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_defaultFrame
@@ -4444,8 +4444,8 @@ Default frame attributes.
.. _mjs_defaultJoint:
-mjs_defaultJoint
-~~~~~~~~~~~~~~~~
+`mjs_defaultJoint <#mjs_defaultJoint>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_defaultJoint
@@ -4453,8 +4453,8 @@ Default joint attributes.
.. _mjs_defaultGeom:
-mjs_defaultGeom
-~~~~~~~~~~~~~~~
+`mjs_defaultGeom <#mjs_defaultGeom>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_defaultGeom
@@ -4462,8 +4462,8 @@ Default geom attributes.
.. _mjs_defaultSite:
-mjs_defaultSite
-~~~~~~~~~~~~~~~
+`mjs_defaultSite <#mjs_defaultSite>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_defaultSite
@@ -4471,8 +4471,8 @@ Default site attributes.
.. _mjs_defaultCamera:
-mjs_defaultCamera
-~~~~~~~~~~~~~~~~~
+`mjs_defaultCamera <#mjs_defaultCamera>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_defaultCamera
@@ -4480,8 +4480,8 @@ Default camera attributes.
.. _mjs_defaultLight:
-mjs_defaultLight
-~~~~~~~~~~~~~~~~
+`mjs_defaultLight <#mjs_defaultLight>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_defaultLight
@@ -4489,8 +4489,8 @@ Default light attributes.
.. _mjs_defaultFlex:
-mjs_defaultFlex
-~~~~~~~~~~~~~~~
+`mjs_defaultFlex <#mjs_defaultFlex>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_defaultFlex
@@ -4498,8 +4498,8 @@ Default flex attributes.
.. _mjs_defaultMesh:
-mjs_defaultMesh
-~~~~~~~~~~~~~~~
+`mjs_defaultMesh <#mjs_defaultMesh>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_defaultMesh
@@ -4507,8 +4507,8 @@ Default mesh attributes.
.. _mjs_defaultHField:
-mjs_defaultHField
-~~~~~~~~~~~~~~~~~
+`mjs_defaultHField <#mjs_defaultHField>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_defaultHField
@@ -4516,8 +4516,8 @@ Default height field attributes.
.. _mjs_defaultSkin:
-mjs_defaultSkin
-~~~~~~~~~~~~~~~
+`mjs_defaultSkin <#mjs_defaultSkin>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_defaultSkin
@@ -4525,8 +4525,8 @@ Default skin attributes.
.. _mjs_defaultTexture:
-mjs_defaultTexture
-~~~~~~~~~~~~~~~~~~
+`mjs_defaultTexture <#mjs_defaultTexture>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_defaultTexture
@@ -4534,8 +4534,8 @@ Default texture attributes.
.. _mjs_defaultMaterial:
-mjs_defaultMaterial
-~~~~~~~~~~~~~~~~~~~
+`mjs_defaultMaterial <#mjs_defaultMaterial>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_defaultMaterial
@@ -4543,8 +4543,8 @@ Default material attributes.
.. _mjs_defaultPair:
-mjs_defaultPair
-~~~~~~~~~~~~~~~
+`mjs_defaultPair <#mjs_defaultPair>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_defaultPair
@@ -4552,8 +4552,8 @@ Default pair attributes.
.. _mjs_defaultEquality:
-mjs_defaultEquality
-~~~~~~~~~~~~~~~~~~~
+`mjs_defaultEquality <#mjs_defaultEquality>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_defaultEquality
@@ -4561,8 +4561,8 @@ Default equality attributes.
.. _mjs_defaultTendon:
-mjs_defaultTendon
-~~~~~~~~~~~~~~~~~
+`mjs_defaultTendon <#mjs_defaultTendon>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_defaultTendon
@@ -4570,8 +4570,8 @@ Default tendon attributes.
.. _mjs_defaultActuator:
-mjs_defaultActuator
-~~~~~~~~~~~~~~~~~~~
+`mjs_defaultActuator <#mjs_defaultActuator>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_defaultActuator
@@ -4579,8 +4579,8 @@ Default actuator attributes.
.. _mjs_defaultSensor:
-mjs_defaultSensor
-~~~~~~~~~~~~~~~~~
+`mjs_defaultSensor <#mjs_defaultSensor>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_defaultSensor
@@ -4588,8 +4588,8 @@ Default sensor attributes.
.. _mjs_defaultNumeric:
-mjs_defaultNumeric
-~~~~~~~~~~~~~~~~~~
+`mjs_defaultNumeric <#mjs_defaultNumeric>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_defaultNumeric
@@ -4597,8 +4597,8 @@ Default numeric attributes.
.. _mjs_defaultText:
-mjs_defaultText
-~~~~~~~~~~~~~~~
+`mjs_defaultText <#mjs_defaultText>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_defaultText
@@ -4606,8 +4606,8 @@ Default text attributes.
.. _mjs_defaultTuple:
-mjs_defaultTuple
-~~~~~~~~~~~~~~~~
+`mjs_defaultTuple <#mjs_defaultTuple>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_defaultTuple
@@ -4615,8 +4615,8 @@ Default tuple attributes.
.. _mjs_defaultKey:
-mjs_defaultKey
-~~~~~~~~~~~~~~
+`mjs_defaultKey <#mjs_defaultKey>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_defaultKey
@@ -4624,8 +4624,8 @@ Default keyframe attributes.
.. _mjs_defaultPlugin:
-mjs_defaultPlugin
-~~~~~~~~~~~~~~~~~
+`mjs_defaultPlugin <#mjs_defaultPlugin>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_defaultPlugin
@@ -4637,8 +4637,8 @@ Element casting
^^^^^^^^^^^^^^^
.. _mjs_asBody:
-mjs_asBody
-~~~~~~~~~~
+`mjs_asBody <#mjs_asBody>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_asBody
@@ -4646,8 +4646,8 @@ Safely cast an element as mjsBody, or return NULL if the element is not an mjsBo
.. _mjs_asGeom:
-mjs_asGeom
-~~~~~~~~~~
+`mjs_asGeom <#mjs_asGeom>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_asGeom
@@ -4655,8 +4655,8 @@ Safely cast an element as mjsGeom, or return NULL if the element is not an mjsGe
.. _mjs_asJoint:
-mjs_asJoint
-~~~~~~~~~~~
+`mjs_asJoint <#mjs_asJoint>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_asJoint
@@ -4664,8 +4664,8 @@ Safely cast an element as mjsJoint, or return NULL if the element is not an mjsJ
.. _mjs_asSite:
-mjs_asSite
-~~~~~~~~~~
+`mjs_asSite <#mjs_asSite>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_asSite
@@ -4673,8 +4673,8 @@ Safely cast an element as mjsSite, or return NULL if the element is not an mjsSi
.. _mjs_asCamera:
-mjs_asCamera
-~~~~~~~~~~~~
+`mjs_asCamera <#mjs_asCamera>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_asCamera
@@ -4682,8 +4682,8 @@ Safely cast an element as mjsCamera, or return NULL if the element is not an mjs
.. _mjs_asLight:
-mjs_asLight
-~~~~~~~~~~~
+`mjs_asLight <#mjs_asLight>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_asLight
@@ -4691,8 +4691,8 @@ Safely cast an element as mjsLight, or return NULL if the element is not an mjsL
.. _mjs_asFrame:
-mjs_asFrame
-~~~~~~~~~~~
+`mjs_asFrame <#mjs_asFrame>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_asFrame
@@ -4700,8 +4700,8 @@ Safely cast an element as mjsFrame, or return NULL if the element is not an mjsF
.. _mjs_asActuator:
-mjs_asActuator
-~~~~~~~~~~~~~~
+`mjs_asActuator <#mjs_asActuator>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_asActuator
@@ -4709,8 +4709,8 @@ Safely cast an element as mjsActuator, or return NULL if the element is not an m
.. _mjs_asSensor:
-mjs_asSensor
-~~~~~~~~~~~~
+`mjs_asSensor <#mjs_asSensor>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_asSensor
@@ -4718,8 +4718,8 @@ Safely cast an element as mjsSensor, or return NULL if the element is not an mjs
.. _mjs_asFlex:
-mjs_asFlex
-~~~~~~~~~~
+`mjs_asFlex <#mjs_asFlex>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_asFlex
@@ -4727,8 +4727,8 @@ Safely cast an element as mjsFlex, or return NULL if the element is not an mjsFl
.. _mjs_asPair:
-mjs_asPair
-~~~~~~~~~~
+`mjs_asPair <#mjs_asPair>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_asPair
@@ -4736,8 +4736,8 @@ Safely cast an element as mjsPair, or return NULL if the element is not an mjsPa
.. _mjs_asEquality:
-mjs_asEquality
-~~~~~~~~~~~~~~
+`mjs_asEquality <#mjs_asEquality>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_asEquality
@@ -4745,8 +4745,8 @@ Safely cast an element as mjsEquality, or return NULL if the element is not an m
.. _mjs_asExclude:
-mjs_asExclude
-~~~~~~~~~~~~~
+`mjs_asExclude <#mjs_asExclude>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_asExclude
@@ -4754,8 +4754,8 @@ Safely cast an element as mjsExclude, or return NULL if the element is not an mj
.. _mjs_asTendon:
-mjs_asTendon
-~~~~~~~~~~~~
+`mjs_asTendon <#mjs_asTendon>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_asTendon
@@ -4763,8 +4763,8 @@ Safely cast an element as mjsTendon, or return NULL if the element is not an mjs
.. _mjs_asNumeric:
-mjs_asNumeric
-~~~~~~~~~~~~~
+`mjs_asNumeric <#mjs_asNumeric>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_asNumeric
@@ -4772,8 +4772,8 @@ Safely cast an element as mjsNumeric, or return NULL if the element is not an mj
.. _mjs_asText:
-mjs_asText
-~~~~~~~~~~
+`mjs_asText <#mjs_asText>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_asText
@@ -4781,8 +4781,8 @@ Safely cast an element as mjsText, or return NULL if the element is not an mjsTe
.. _mjs_asTuple:
-mjs_asTuple
-~~~~~~~~~~~
+`mjs_asTuple <#mjs_asTuple>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_asTuple
@@ -4790,8 +4790,8 @@ Safely cast an element as mjsTuple, or return NULL if the element is not an mjsT
.. _mjs_asKey:
-mjs_asKey
-~~~~~~~~~
+`mjs_asKey <#mjs_asKey>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_asKey
@@ -4799,8 +4799,8 @@ Safely cast an element as mjsKey, or return NULL if the element is not an mjsKey
.. _mjs_asMesh:
-mjs_asMesh
-~~~~~~~~~~
+`mjs_asMesh <#mjs_asMesh>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_asMesh
@@ -4808,8 +4808,8 @@ Safely cast an element as mjsMesh, or return NULL if the element is not an mjsMe
.. _mjs_asHField:
-mjs_asHField
-~~~~~~~~~~~~
+`mjs_asHField <#mjs_asHField>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_asHField
@@ -4817,8 +4817,8 @@ Safely cast an element as mjsHField, or return NULL if the element is not an mjs
.. _mjs_asSkin:
-mjs_asSkin
-~~~~~~~~~~
+`mjs_asSkin <#mjs_asSkin>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_asSkin
@@ -4826,8 +4826,8 @@ Safely cast an element as mjsSkin, or return NULL if the element is not an mjsSk
.. _mjs_asTexture:
-mjs_asTexture
-~~~~~~~~~~~~~
+`mjs_asTexture <#mjs_asTexture>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_asTexture
@@ -4835,8 +4835,8 @@ Safely cast an element as mjsTexture, or return NULL if the element is not an mj
.. _mjs_asMaterial:
-mjs_asMaterial
-~~~~~~~~~~~~~~
+`mjs_asMaterial <#mjs_asMaterial>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_asMaterial
@@ -4844,8 +4844,8 @@ Safely cast an element as mjsMaterial, or return NULL if the element is not an m
.. _mjs_asPlugin:
-mjs_asPlugin
-~~~~~~~~~~~~
+`mjs_asPlugin <#mjs_asPlugin>`__
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. mujoco-include:: mjs_asPlugin
diff --git a/doc/changelog.rst b/doc/changelog.rst
index ba4cae6d..cdc66f8d 100644
--- a/doc/changelog.rst
+++ b/doc/changelog.rst
@@ -31,6 +31,12 @@ Bug fixes
runtime enabling/disabling of such constraints.
- Fixed a bug in slider-crank :ref:`transmission`. The bug was introduced in 3.0.0.
+
+Documentation
+^^^^^^^^^^^^^
+- Function headers in the :doc:`API reference <../APIreference/APIfunctions>` now link to their source definitions
+ in GitHub.
+
Version 3.2.4 (Oct 15, 2024)
----------------------------
diff --git a/doc/conf.py b/doc/conf.py
index e41542fa..cecc6c96 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -159,10 +159,14 @@ pygments_dark_style = 'monokai'
html_static_path = [
'_static',
'css',
+ 'js',
]
html_css_files = [
'theme_overrides.css',
]
+html_js_files = [
+ 'linenumbers.js',
+]
favicons = [
{
diff --git a/doc/js/linenumbers.js b/doc/js/linenumbers.js
new file mode 100644
index 00000000..cdea9af8
--- /dev/null
+++ b/doc/js/linenumbers.js
@@ -0,0 +1,108 @@
+const SRCS = [
+ 'xml/xml_api.cc',
+ 'user/user_api.cc',
+ 'user/user_init.c',
+ 'user/user_vfs.cc',
+ 'thread/thread_task.cc',
+ 'thread/thread_pool.cc',
+ 'render/render_context.c',
+ 'render/render_gl2.c',
+ 'render/render_gl3.c',
+ 'render/render_util.c',
+ 'engine/engine_derivative.c',
+ 'engine/engine_io.c',
+ 'engine/engine_sensor.c',
+ 'engine/engine_callback.c',
+ 'engine/engine_collision_driver.c',
+ 'engine/engine_core_constraint.c',
+ 'engine/engine_core_smooth.c',
+ 'engine/engine_derivative_fd.c',
+ 'engine/engine_forward.c',
+ 'engine/engine_inverse.c',
+ 'engine/engine_island.c',
+ 'engine/engine_name.c',
+ 'engine/engine_passive.c',
+ 'engine/engine_plugin.cc',
+ 'engine/engine_print.c',
+ 'engine/engine_ray.c',
+ 'engine/engine_setconst.c',
+ 'engine/engine_solver.c',
+ 'engine/engine_support.c',
+ 'engine/engine_util_blas.c',
+ 'engine/engine_util_container.c',
+ 'engine/engine_util_errmem.c',
+ 'engine/engine_util_misc.c',
+ 'engine/engine_util_solve.c',
+ 'engine/engine_util_spatial.c',
+ 'engine/engine_util_sparse.c',
+ 'engine/engine_vis_init.c',
+ 'engine/engine_vis_interact.c',
+ 'engine/engine_vis_state.c',
+ 'engine/engine_vis_visualize.c',
+ 'ui/ui_main.c',
+];
+
+class LineNumbers {
+ constructor() {
+ this.map = new Map();
+ }
+
+ static fetch(src) {
+ const url = `https://raw.githubusercontent.com/google-deepmind/mujoco/refs/heads/main/src/${src}`;
+ const request = new XMLHttpRequest();
+ return new Promise((resolve, reject) => {
+ request.onreadystatechange = () => {
+ if (request.readyState === 4) {
+ if (request.status === 200) {
+ resolve(request.responseText);
+ } else {
+ reject(request.status);
+ }
+ }
+ };
+ request.open('GET', url, true);
+ request.send();
+ });
+ }
+
+ fetchAll() {
+ let requests = [];
+ for (const src of SRCS) {
+ requests.push(LineNumbers.fetch(src).then(contents => {
+ this.processSrc(src, contents);
+ }, reason => {/* swallow error */}));
+ }
+ Promise.all(requests).then(() => {
+ const anchors = document.querySelectorAll('h3 a.reference.external');
+ for (const anchor of anchors) {
+ const url = anchor.getAttribute('href');
+ if (url.startsWith('#')) {
+ const key = url.substring(1);
+ if (this.map.has(key)) {
+ anchor.href = this.map.get(key);
+ } else {
+ console.log(`No line number found for ${key}`);
+ }
+ }
+ }
+ });
+ }
+
+ processSrc(src, contents) {
+ const lines = contents.split('\n');
+ const re = /^(const )?[a-zA-Z0-9_*]+\s(.+)\(.+[{,]$/;
+ for (let i = 0; i < lines.length; i++) {
+ if (lines[i].match(re)) {
+ const key = lines[i].match(re)[2];
+ this.map.set(key, `https://github.com/google-deepmind/mujoco/blob/main/src/${src}#L${i+1}`);
+ }
+ }
+ }
+}
+
+window.onload = () => {
+ if (document.getElementById('fetchlines')) {
+ let lines = new LineNumbers();
+ lines.fetchAll();
+ }
+};