Restructure numeric constants table in API docs
Break the monolithic numeric constants table into 6 sub-grouped tables: Version, Engine constants, Array sizes, Visualization, Rendering, UI constants. Fix stale values: mjMAXUITEXT (500->300), mjMAXUIMULTI (20->35), mjMAXUIEDIT (5->7), mjMAXUIRECT (15->25). Add missing constants: mjMAXLIGHT, mjMAXMATERIAL. Fix placeholder description for mjMAXFLEXNODES. PiperOrigin-RevId: 875010581 Change-Id: Id47846de4d98b62cb96087b72ecd28358d5db9c7
This commit is contained in:
committed by
Copybara-Service
parent
a83fa7299d
commit
40e0007849
+120
-38
@@ -368,10 +368,41 @@ Numeric constants
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
Many integer constants were already documented in the primitive types above. In addition, the header files define
|
||||
several other constants documented here. Unless indicated otherwise, each entry in the table below is defined in
|
||||
`mjmodel.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjmodel.h>`_. Note that some extended key
|
||||
codes are defined in `mjui.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjui.h>`_ which are not
|
||||
shown in the table below. Their names are in the format ``mjKEY_XXX``. They correspond to GLFW key codes.
|
||||
several other constants documented here. Note that some extended key codes are defined in
|
||||
`mjui.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjui.h>`_ which are not shown below. Their
|
||||
names are in the format ``mjKEY_XXX``. They correspond to GLFW key codes.
|
||||
|
||||
|
||||
.. _glNumericVersion:
|
||||
|
||||
Version
|
||||
~~~~~~~
|
||||
|
||||
Defined in `mujoco.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mujoco.h>`_.
|
||||
|
||||
.. list-table::
|
||||
:widths: 2 1 8
|
||||
:header-rows: 1
|
||||
|
||||
* - symbol
|
||||
- value
|
||||
- description
|
||||
* - ``mjVERSION_HEADER``
|
||||
- 3005001
|
||||
- The version of the MuJoCo headers. This is an integer calculated from the version string "S.M.P"
|
||||
using the formula ``(S * 1e6) + (M * 1e3) + P``. For example, version 4.2.1 is represented as 4002001.
|
||||
The API function :ref:`mj_version` returns a number with the same meaning
|
||||
but for the compiled library. See
|
||||
`VERSIONING.md <https://github.com/google-deepmind/mujoco/blob/main/VERSIONING.md>`__ for details.
|
||||
|
||||
|
||||
.. _glNumericEngine:
|
||||
|
||||
Engine constants
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
Defined in `mjmodel.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjmodel.h>`_ unless
|
||||
indicated otherwise.
|
||||
|
||||
.. list-table::
|
||||
:widths: 2 1 8
|
||||
@@ -384,6 +415,7 @@ shown in the table below. Their names are in the format ``mjKEY_XXX``. They corr
|
||||
- 1E-15
|
||||
- The minimal value allowed in any denominator, and in general any mathematical operation where 0 is not allowed.
|
||||
In almost all cases, MuJoCo silently clamps smaller values to mjMINVAL.
|
||||
Defined in `mjtnum.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjtnum.h>`_.
|
||||
* - ``mjPI``
|
||||
- :math:`\pi`
|
||||
- The value of :math:`\pi`. This is used in various trigonometric functions, and also for conversion from degrees
|
||||
@@ -416,17 +448,38 @@ shown in the table below. Their names are in the format ``mjKEY_XXX``. They corr
|
||||
is raised and ray casting may not be possible. For a balanced hierarchy, this implies 1E15 bounding volumes.
|
||||
* - ``mjMAXFLEXNODES``
|
||||
- 27
|
||||
- Some number by Alessio that needs documentation. I guess it's related to trilinear flexes?
|
||||
- The maximum number of nodes in a trilinear flex element.
|
||||
* - ``mjMINAWAKE``
|
||||
- 10
|
||||
- The minimum number of timesteps that must pass after a tree is awoken, before it is allowed to go back to sleep.
|
||||
* - ``mjMAXTHREAD``
|
||||
- 128
|
||||
- Maximum number of OS threads that can be used in a thread pool.
|
||||
Defined in `mjthread.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjthread.h>`_.
|
||||
|
||||
|
||||
.. _glNumericSizes:
|
||||
|
||||
Array sizes
|
||||
~~~~~~~~~~~
|
||||
|
||||
Defined in `mjmodel.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjmodel.h>`_. These constants
|
||||
correspond to array sizes which we have not fully settled. There may be reasons to increase them in the future, so as to
|
||||
accommodate extra parameters needed for more elaborate computations. This is why we maintain them as symbolic constants
|
||||
that can be easily changed, as opposed to the array size for representing quaternions for example -- which has no reason
|
||||
to change.
|
||||
|
||||
.. list-table::
|
||||
:widths: 2 1 8
|
||||
:header-rows: 1
|
||||
|
||||
* - symbol
|
||||
- value
|
||||
- description
|
||||
* - ``mjNEQDATA``
|
||||
- 11
|
||||
- The maximal number of real-valued parameters used to define each equality constraint. Determines the size of
|
||||
``mjModel.eq_data``. This and the next five constants correspond to array sizes which we have not fully settled.
|
||||
There may be reasons to increase them in the future, so as to accommodate extra parameters needed for more
|
||||
elaborate computations. This is why we maintain them as symbolic constants that can be easily changed, as opposed
|
||||
to the array size for representing quaternions for example -- which has no reason to change.
|
||||
``mjModel.eq_data``.
|
||||
* - ``mjNDYN``
|
||||
- 10
|
||||
- The maximal number of real-valued parameters used to define the activation dynamics of each actuator.
|
||||
@@ -464,75 +517,104 @@ shown in the table below. Their names are in the format ``mjKEY_XXX``. They corr
|
||||
- The number of islands for which solver statistics can be stored in ``mjData.solver``. This array is
|
||||
used to store diagnostic information about each iteration of the constraint solver.
|
||||
The actual number of islands for which the solver was run is given by ``mjData.nsolver_island``.
|
||||
|
||||
|
||||
.. _glNumericVisualization:
|
||||
|
||||
Visualization
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
Defined in `mjvisualize.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjvisualize.h>`_.
|
||||
|
||||
.. list-table::
|
||||
:widths: 2 1 8
|
||||
:header-rows: 1
|
||||
|
||||
* - symbol
|
||||
- value
|
||||
- description
|
||||
* - ``mjNGROUP``
|
||||
- 6
|
||||
- The number of geom, site, joint, tendon and actuator groups whose rendering can be enabled and disabled via
|
||||
:ref:`mjvOption`.
|
||||
Defined in `mjvisualize.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjvisualize.h>`_.
|
||||
* - ``mjMAXLIGHT``
|
||||
- 100
|
||||
- The maximum number of lights in a scene.
|
||||
* - ``mjMAXOVERLAY``
|
||||
- 500
|
||||
- The maximal number of characters in overlay text for rendering.
|
||||
Defined in `mjvisualize.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjvisualize.h>`_.
|
||||
* - ``mjMAXLINE``
|
||||
- 100
|
||||
- The maximal number of lines per 2D figure (:ref:`mjvFigure`).
|
||||
Defined in `mjvisualize.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjvisualize.h>`_.
|
||||
* - ``mjMAXLINEPNT``
|
||||
- 1001
|
||||
- The maximal number of points in each line in a 2D figure. Note that the buffer ``mjvFigure.linepnt`` has length
|
||||
``2*mjMAXLINEPNT`` because each point has X and Y coordinates.
|
||||
Defined in `mjvisualize.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjvisualize.h>`_.
|
||||
* - ``mjMAXPLANEGRID``
|
||||
- 200
|
||||
- The maximal number of grid lines in each dimension for rendering planes.
|
||||
Defined in `mjvisualize.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjvisualize.h>`_.
|
||||
|
||||
|
||||
.. _glNumericRendering:
|
||||
|
||||
Rendering
|
||||
~~~~~~~~~
|
||||
|
||||
Defined in `mjrender.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjrender.h>`_.
|
||||
|
||||
.. list-table::
|
||||
:widths: 2 1 8
|
||||
:header-rows: 1
|
||||
|
||||
* - symbol
|
||||
- value
|
||||
- description
|
||||
* - ``mjNAUX``
|
||||
- 10
|
||||
- Number of auxiliary buffers that can be allocated in mjrContext.
|
||||
Defined in `mjrender.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjrender.h>`_.
|
||||
* - ``mjMAXTEXTURE``
|
||||
- 1000
|
||||
- Maximum number of textures allowed.
|
||||
Defined in `mjrender.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjrender.h>`_.
|
||||
* - ``mjMAXTHREAD``
|
||||
- 128
|
||||
- Maximum number OS threads that can be used in a thread pool.
|
||||
Defined in `mjthread.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjthread.h>`_.
|
||||
* - ``mjMAXMATERIAL``
|
||||
- 1000
|
||||
- Maximum number of materials with textures.
|
||||
|
||||
|
||||
.. _glNumericUI:
|
||||
|
||||
UI constants
|
||||
~~~~~~~~~~~~
|
||||
|
||||
Defined in `mjui.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjui.h>`_.
|
||||
|
||||
.. list-table::
|
||||
:widths: 2 1 8
|
||||
:header-rows: 1
|
||||
|
||||
* - symbol
|
||||
- value
|
||||
- description
|
||||
* - ``mjMAXUISECT``
|
||||
- 10
|
||||
- Maximum number of UI sections.
|
||||
Defined in `mjui.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjui.h>`_.
|
||||
* - ``mjMAXUIITEM``
|
||||
- 200
|
||||
- Maximum number of items per UI section.
|
||||
Defined in `mjui.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjui.h>`_.
|
||||
* - ``mjMAXUITEXT``
|
||||
- 500
|
||||
- 300
|
||||
- Maximum number of characters in UI fields 'edittext' and 'other'.
|
||||
Defined in `mjui.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjui.h>`_.
|
||||
* - ``mjMAXUINAME``
|
||||
- 40
|
||||
- Maximum number of characters in any UI name.
|
||||
Defined in `mjui.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjui.h>`_.
|
||||
* - ``mjMAXUIMULTI``
|
||||
- 20
|
||||
- 35
|
||||
- Maximum number of radio and select items in UI group.
|
||||
Defined in `mjui.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjui.h>`_.
|
||||
* - ``mjMAXUIEDIT``
|
||||
- 5
|
||||
- 7
|
||||
- Maximum number of elements in UI edit list.
|
||||
Defined in `mjui.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjui.h>`_.
|
||||
* - ``mjMAXUIRECT``
|
||||
- 15
|
||||
- 25
|
||||
- Maximum number of UI rectangles.
|
||||
Defined in `mjui.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjui.h>`_.
|
||||
* - ``mjVERSION_HEADER``
|
||||
- 3005001
|
||||
- The version of the MuJoCo headers. This is an integer calculated from the version string "S.M.P"
|
||||
using the formula ``(S * 1e6) + (M * 1e3) + P``. For example, version 4.2.1 is represented as 4002001.
|
||||
Defined in mujoco.h. The API function :ref:`mj_version` returns a number with the same meaning
|
||||
but for the compiled library. See
|
||||
`VERSIONING.md <https://github.com/google-deepmind/mujoco/blob/main/VERSIONING.md>`__ for details.
|
||||
|
||||
.. _Macros:
|
||||
|
||||
|
||||
@@ -1252,7 +1252,7 @@ Intersect ray ``pnt+x*vec, x >= 0`` with geoms.
|
||||
- If ``normal`` is not NULL, write the surface normal at the intersection point. The normal always points **out of the
|
||||
geometry**, regardless of the ray's direction (i.e., including rays hitting the surface from the inside).
|
||||
- Exclude geoms in body with id ``bodyexclude``, use -1 to include all bodies.
|
||||
- ``geomgroup`` is an array of length :ref:`mjNGROUP<glNumeric>`, where 1 means the group should be included. Pass
|
||||
- ``geomgroup`` is an array of length :ref:`mjNGROUP<glNumericVisualization>`, where 1 means the group should be included. Pass
|
||||
NULL to skip geom group exclusion.
|
||||
- If ``flg_static`` is 0, static geoms will be excluded.
|
||||
|
||||
@@ -2911,7 +2911,7 @@ each corresponding to one item. The last (unused) item has its type set to -1, t
|
||||
after the end of the last used section. There is also another version of this function
|
||||
(:ref:`mjui_addToSection<mjui_addToSection>`) which adds items to a specified section instead of adding them at the end
|
||||
of the UI. Keep in mind that there is a maximum preallocated number of sections and items per section, given by
|
||||
:ref:`mjMAXUISECT<glNumeric>` and :ref:`mjMAXUIITEM<glNumeric>`. Exceeding these maxima results in low-level errors.
|
||||
:ref:`mjMAXUISECT<glNumericUI>` and :ref:`mjMAXUIITEM<glNumericUI>`. Exceeding these maxima results in low-level errors.
|
||||
|
||||
.. _mjui_addToSection:
|
||||
|
||||
|
||||
@@ -403,7 +403,7 @@ Intersect ray ``pnt+x*vec, x >= 0`` with geoms.
|
||||
- If ``normal`` is not NULL, write the surface normal at the intersection point. The normal always points **out of the
|
||||
geometry**, regardless of the ray's direction (i.e., including rays hitting the surface from the inside).
|
||||
- Exclude geoms in body with id ``bodyexclude``, use -1 to include all bodies.
|
||||
- ``geomgroup`` is an array of length :ref:`mjNGROUP<glNumeric>`, where 1 means the group should be included. Pass
|
||||
- ``geomgroup`` is an array of length :ref:`mjNGROUP<glNumericVisualization>`, where 1 means the group should be included. Pass
|
||||
NULL to skip geom group exclusion.
|
||||
- If ``flg_static`` is 0, static geoms will be excluded.
|
||||
|
||||
@@ -444,7 +444,7 @@ each corresponding to one item. The last (unused) item has its type set to -1, t
|
||||
after the end of the last used section. There is also another version of this function
|
||||
(:ref:`mjui_addToSection<mjui_addToSection>`) which adds items to a specified section instead of adding them at the end
|
||||
of the UI. Keep in mind that there is a maximum preallocated number of sections and items per section, given by
|
||||
:ref:`mjMAXUISECT<glNumeric>` and :ref:`mjMAXUIITEM<glNumeric>`. Exceeding these maxima results in low-level errors.
|
||||
:ref:`mjMAXUISECT<glNumericUI>` and :ref:`mjMAXUIITEM<glNumericUI>`. Exceeding these maxima results in low-level errors.
|
||||
|
||||
.. _mjui_update:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user