Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Doc improvements #390

Merged
merged 5 commits into from
Feb 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ jobs:

- name: Build
working-directory: docs
run: sphinx-build source build
run: sphinx-build -W --keep-going source build

build_meson:
name: Meson / ${{ matrix.os }}
Expand Down
103 changes: 0 additions & 103 deletions docs/source/affine-pre.rst
Original file line number Diff line number Diff line change
Expand Up @@ -78,49 +78,6 @@ Functions documentation
| *[in, out]* **m** affine transform
| *[in]* **v** z factor

.. c:function:: void glm_translate_make(mat4 m, vec3 v)

creates NEW translate transform matrix by *v* vector.

Parameters:
| *[in, out]* **m** affine transform
| *[in]* **v** translate vector [x, y, z]

.. c:function:: void glm_scale_to(mat4 m, vec3 v, mat4 dest)

scale existing transform matrix by *v* vector and store result in dest

Parameters:
| *[in]* **m** affine transform
| *[in]* **v** scale vector [x, y, z]
| *[out]* **dest** scaled matrix

.. c:function:: void glm_scale_make(mat4 m, vec3 v)

creates NEW scale matrix by v vector

Parameters:
| *[out]* **m** affine transform
| *[in]* **v** scale vector [x, y, z]

.. c:function:: void glm_scale(mat4 m, vec3 v)

scales existing transform matrix by v vector
and stores result in same matrix

Parameters:
| *[in, out]* **m** affine transform
| *[in]* **v** scale vector [x, y, z]

.. c:function:: void glm_scale_uni(mat4 m, float s)

applies uniform scale to existing transform matrix v = [s, s, s]
and stores result in same matrix

Parameters:
| *[in, out]* **m** affine transform
| *[in]* **v** scale factor

.. c:function:: void glm_rotate_x(mat4 m, float angle, mat4 dest)

rotate existing transform matrix around X axis by angle
Expand Down Expand Up @@ -151,16 +108,6 @@ Functions documentation
| *[in]* **angle** angle (radians)
| *[out]* **dest** rotated matrix

.. c:function:: void glm_rotate_make(mat4 m, float angle, vec3 axis)

creates NEW rotation matrix by angle and axis,
axis will be normalized so you don't need to normalize it

Parameters:
| *[out]* **m** affine transform
| *[in]* **axis** angle (radians)
| *[in]* **axis** axis

.. c:function:: void glm_rotate(mat4 m, float angle, vec3 axis)

rotate existing transform matrix around Z axis by angle and axis
Expand All @@ -180,56 +127,6 @@ Functions documentation
| *[in]* **angle** angle (radians)
| *[in]* **axis** axis

.. c:function:: void glm_rotate_atm(mat4 m, vec3 pivot, float angle, vec3 axis)

| creates NEW rotation matrix by angle and axis at given point
| this creates rotation matrix, it assumes you don't have a matrix

| this should work faster than glm_rotate_at because it reduces one glm_translate.

Parameters:
| *[in, out]* **m** affine transform
| *[in]* **pivot** pivot, anchor point, rotation center
| *[in]* **angle** angle (radians)
| *[in]* **axis** axis

.. c:function:: void glm_decompose_scalev(mat4 m, vec3 s)

decompose scale vector

Parameters:
| *[in]* **m** affine transform
| *[out]* **s** scale vector (Sx, Sy, Sz)

.. c:function:: bool glm_uniscaled(mat4 m)

returns true if matrix is uniform scaled.
This is helpful for creating normal matrix.

Parameters:
| *[in]* **m** matrix

.. c:function:: void glm_decompose_rs(mat4 m, mat4 r, vec3 s)

decompose rotation matrix (mat4) and scale vector [Sx, Sy, Sz]
DON'T pass projected matrix here

Parameters:
| *[in]* **m** affine transform
| *[out]* **r** rotation matrix
| *[out]* **s** scale matrix

.. c:function:: void glm_decompose(mat4 m, vec4 t, mat4 r, vec3 s)

decompose affine transform, TODO: extract shear factors.
DON'T pass projected matrix here

Parameters:
| *[in]* **m** affine transform
| *[out]* **t** translation vector
| *[out]* **r** rotation matrix (mat4)
| *[out]* **s** scaling vector [X, Y, Z]

.. c:function:: void glm_spin(mat4 m, float angle, vec3 axis)

| rotate existing transform matrix around given axis by angle around self (doesn't affected by position)
Expand Down
3 changes: 2 additions & 1 deletion docs/source/api_inline_array.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ In the future there may be option to forward struct api to call api instead of i

📌 **USE this API docs for similar functions in struct and call api**

📌 In struct api you can omit namespace e.g :code:`glms_vec3_dot` can be called as :code:`vec3_dot` in struct api, see :doc:`struct-api` to configure struct api for more details.
📌 In struct api you can omit namespace e.g :code:`glms_vec3_dot` can be called as :code:`vec3_dot` in struct api, see :doc:`api_struct` to configure struct api for more details.
📌 In struct api functions can return struct/union
📌 In struct api you can access items like **.x**, **.y**, **.z**, **.w**, **.r**, **.g**, **.b**, **.a**, **.m00**, **m01**...

Expand Down Expand Up @@ -43,6 +43,7 @@ Follow the :doc:`build` documentation for this
cam
frustum
box
aabb2d
quat
euler
mat2
Expand Down
6 changes: 3 additions & 3 deletions docs/source/build.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ Build cglm

| **cglm** does not have any external dependencies.

**NOTE:**
If you only need to inline versions, you don't need to build **cglm**, you don't need to link it to your program.
Just import cglm to your project as dependency / external lib by copy-paste then use it as usual
.. note::
If you only need to inline versions, you don't need to build **cglm**, you don't need to link it to your program.
Just import cglm to your project as dependency / external lib by copy-paste then use it as usual

CMake (All platforms):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Expand Down
12 changes: 6 additions & 6 deletions docs/source/cam.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@ fast if you don't care specific projection values.
*_decomp* means decompose; these function can help to decompose projection
matrices.

**NOTE**: Be careful when working with high range (very small near, very large
far) projection matrices. You may not get exact value you gave.
**float** type cannot store very high precision so you will lose precision.
Also your projection matrix will be inaccurate due to losing precision
.. note:: Be careful when working with high range (very small near, very large
far) projection matrices. You may not get exact value you gave.
**float** type cannot store very high precision so you will lose precision.
Also your projection matrix will be inaccurate due to losing precision

Table of contents (click to go):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Expand Down Expand Up @@ -178,7 +178,7 @@ Functions documentation

| set up view matrix

**NOTE:** The UP vector must not be parallel to the line of sight from the eye point to the reference point.
.. note:: The UP vector must not be parallel to the line of sight from the eye point to the reference point.

Parameters:
| *[in]* **eye** eye vector
Expand All @@ -194,7 +194,7 @@ Functions documentation
target self then this might be useful. Because you need to get target
from direction.

**NOTE:** The UP vector must not be parallel to the line of sight from the eye point to the reference point.
.. note:: The UP vector must not be parallel to the line of sight from the eye point to the reference point.

Parameters:
| *[in]* **eye** eye vector
Expand Down
6 changes: 3 additions & 3 deletions docs/source/getting_started.rst
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,9 @@ Allocations:
*cglm* doesn't alloc any memory on heap. So it doesn't provide any allocator.
You must allocate memory yourself. You should alloc memory for out parameters too if you pass pointer of memory location. When allocating memory, don't forget that **vec4** and **mat4** require alignment.

**NOTE:** Unaligned **vec4** and unaligned **mat4** operations will be supported in the future. Check todo list.
Because you may want to multiply a CGLM matrix with external matrix.
There is no guarantee that non-CGLM matrix is aligned. Unaligned types will have *u* prefix e.g. **umat4**
.. note:: Unaligned **vec4** and unaligned **mat4** operations will be supported in the future. Check todo list.
Because you may want to multiply a CGLM matrix with external matrix.
There is no guarantee that non-CGLM matrix is aligned. Unaligned types will have *u* prefix e.g. **umat4**

Array vs Struct:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Expand Down
6 changes: 3 additions & 3 deletions docs/source/io.rst
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ Example to print mat4 matrix:
/* ... */
glm_mat4_print(transform, stderr);

**NOTE:** print functions use **%0.4f** precision if you need more
(you probably will in some cases), you can change it temporary.
cglm may provide precision parameter in the future
.. note:: print functions use **%0.4f** precision if you need more
(you probably will in some cases), you can change it temporary.
cglm may provide precision parameter in the future.

Changes since **v0.7.3**:
* Now mis-alignment of columns are fixed: larger numbers are printed via %g and others are printed via %f. Column widths are calculated before print.
Expand Down
2 changes: 1 addition & 1 deletion docs/source/mat2.rst
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ Functions documentation

Create mat2 matrix from pointer

| NOTE: **@src** must contain at least 4 elements.
.. note:: **@src** must contain at least 4 elements.

Parameters:
| *[in]* **src** pointer to an array of floats
Expand Down
2 changes: 1 addition & 1 deletion docs/source/mat2x3.rst
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ Functions documentation

Create mat2x3 matrix from pointer

| NOTE: **@src** must contain at least 6 elements.
.. note:: **@src** must contain at least 6 elements.

Parameters:
| *[in]* **src** pointer to an array of floats
Expand Down
2 changes: 1 addition & 1 deletion docs/source/mat2x4.rst
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ Functions documentation

Create mat2x4 matrix from pointer

| NOTE: **@src** must contain at least 8 elements.
.. note:: **@src** must contain at least 8 elements.

Parameters:
| *[in]* **src** pointer to an array of floats
Expand Down
2 changes: 1 addition & 1 deletion docs/source/mat3.rst
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ Functions documentation

Create mat3 matrix from pointer

| NOTE: **@src** must contain at least 9 elements.
.. note:: **@src** must contain at least 9 elements.

Parameters:
| *[in]* **src** pointer to an array of floats
Expand Down
3 changes: 2 additions & 1 deletion docs/source/mat3x2.rst
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,8 @@ Functions documentation

Create mat3x2 matrix from pointer

| NOTE: **@src** must contain at least 6 elements.
.. note:: **@src** must contain at least 6 elements.

Parameters:
| *[in]* **src** pointer to an array of floats
| *[out]* **dest** destination matrix3x2
Expand Down
3 changes: 2 additions & 1 deletion docs/source/mat3x4.rst
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,8 @@ Functions documentation

Create mat3x4 matrix from pointer

| NOTE: **@src** must contain at least 12 elements.
.. note::: **@src** must contain at least 12 elements.

Parameters:
| *[in]* **src** pointer to an array of floats
| *[out]* **dest** destination matrix3x4
Expand Down
8 changes: 4 additions & 4 deletions docs/source/mat4.rst
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ Functions:
#. :c:func:`glm_mat4_mulN`
#. :c:func:`glm_mat4_mulv`
#. :c:func:`glm_mat4_mulv3`
#. :c:func:`glm_mat3_trace`
#. :c:func:`glm_mat3_trace3`
#. :c:func:`glm_mat4_trace`
#. :c:func:`glm_mat4_trace3`
#. :c:func:`glm_mat4_quat`
#. :c:func:`glm_mat4_transpose_to`
#. :c:func:`glm_mat4_transpose`
Expand Down Expand Up @@ -263,7 +263,7 @@ Functions documentation
| e.g Newton-Raphson. this should work faster than normal,
| to get more precise use glm_mat4_inv version.

| NOTE: You will lose precision, glm_mat4_inv is more accurate
.. note:: You will lose precision, glm_mat4_inv is more accurate

Parameters:
| *[in]* **mat** source
Expand Down Expand Up @@ -308,7 +308,7 @@ Functions documentation

Create mat4 matrix from pointer

| NOTE: **@src** must contain at least 16 elements.
.. note:: **@src** must contain at least 16 elements.

Parameters:
| *[in]* **src** pointer to an array of floats
Expand Down
3 changes: 2 additions & 1 deletion docs/source/mat4x2.rst
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,8 @@ Functions documentation

Create mat4x2 matrix from pointer

| NOTE: **@src** must contain at least 8 elements.
.. note:: **@src** must contain at least 8 elements.

Parameters:
| *[in]* **src** pointer to an array of floats
| *[out]* **dest** destination matrix4x2
Expand Down
3 changes: 2 additions & 1 deletion docs/source/mat4x3.rst
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,8 @@ Functions documentation

Create mat4x3 matrix from pointer

| NOTE: **@src** must contain at least 12 elements.
.. note:: **@src** must contain at least 12 elements.

Parameters:
| *[in]* **src** pointer to an array of floats
| *[out]* **dest** destination matrix4x3
Expand Down
2 changes: 1 addition & 1 deletion docs/source/quat.rst
Original file line number Diff line number Diff line change
Expand Up @@ -426,7 +426,7 @@ Functions documentation

Create quaternion from pointer

| NOTE: **@src** must contain at least 4 elements. cglm store quaternions as [x, y, z, w].
.. note:: **@src** must contain at least 4 elements. cglm store quaternions as [x, y, z, w].

Parameters:
| *[in]* **src** pointer to an array of floats
Expand Down
3 changes: 2 additions & 1 deletion docs/source/vec2.rst
Original file line number Diff line number Diff line change
Expand Up @@ -389,7 +389,8 @@ Functions documentation

Create two dimensional vector from pointer

| NOTE: **@src** must contain at least 2 elements.
.. note:: **@src** must contain at least 2 elements.

Parameters:
| *[in]* **src** pointer to an array of floats
| *[out]* **dest** destination vector
2 changes: 1 addition & 1 deletion docs/source/vec3.rst
Original file line number Diff line number Diff line change
Expand Up @@ -507,7 +507,7 @@ Functions documentation

Create three dimensional vector from pointer

| NOTE: **@src** must contain at least 3 elements.
.. note::: **@src** must contain at least 3 elements.

Parameters:
| *[in]* **src** pointer to an array of floats
Expand Down
10 changes: 9 additions & 1 deletion docs/source/vec4.rst
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,13 @@ Functions documentation
Parameters:
| *[in, out]* **v** vector

.. c:function:: void glm_vec4_one(vec4 v)

makes all members one

Parameters:
| *[in, out]* **v** vector

.. c:function:: float glm_vec4_dot(vec4 a, vec4 b)

dot product of vec4
Expand Down Expand Up @@ -412,7 +419,8 @@ Functions documentation

Create four dimensional vector from pointer

| NOTE: **@src** must contain at least 4 elements.
.. note:: **@src** must contain at least 4 elements.

Parameters:
| *[in]* **src** pointer to an array of floats
| *[out]* **dest** destination vector
Loading