diff --git a/docs/source/mat3x2.rst b/docs/source/mat3x2.rst index 7604728..f70a599 100644 --- a/docs/source/mat3x2.rst +++ b/docs/source/mat3x2.rst @@ -35,58 +35,98 @@ Represented Functions documentation ~~~~~~~~~~~~~~~~~~~~~~~ -.. c:function:: void glm_mat3x2_copy(mat3x2 mat, mat3x2 dest) +.. c:function:: void glm_mat3x2_copy(mat3x2 src, mat3x2 dest) - copy mat3x2 to another one (dest). + Copy mat3x2 (src) to mat3x2 (dest). Parameters: - | *[in]* **mat** source - | *[out]* **dest** destination + | *[in]* **src** mat3x2 (left) + | *[out]* **dest** destination (result, mat3x2) -.. c:function:: void glm_mat3x2_zero(mat3x2 mat) + .. csv-table:: mat3x2 **(src)** + :header: "", "column 1", "column 2", "column 3" - make given matrix zero + "row 1", "a00", "a10", "a20" + "row 2", "a01", "a11", "a21" + + .. csv-table:: mat3x2 **(dest)** + :header: "", "column 1", "column 2", "column 3" + + "row 1", "b00 = a00", "b10 = a10", "b20 = a20" + "row 2", "b01 = a01", "b11 = a11", "b21 = a21" + +.. c:function:: void glm_mat3x2_zero(mat3x2 m) + + Zero out the mat3x2 (m). Parameters: - | *[in,out]* **mat** matrix + | *[in, out]* **m** mat3x2 (src, dest) + + .. csv-table:: mat3x2 **(m)** + :header: "", "column 1", "column 2", "column 3" + + "row 1", "0.00", "2.00", "15.00" + "row 2", "5.00", "4.00", "6.00" + + .. csv-table:: mat3x2 **(m)** + :header: "", "column 1", "column 2", "column 3" + + "row 1", "0.00", "0.00", "0.00" + "row 2", "0.00", "0.00", "0.00" .. c:function:: void glm_mat3x2_make(const float * __restrict src, mat3x2 dest) - Create mat3x2 matrix from pointer + Create mat3x2 (dest) from pointer (src). .. note:: **@src** must contain at least 6 elements. Parameters: - | *[in]* **src** pointer to an array of floats - | *[out]* **dest** destination matrix3x2 + | *[in]* **src** pointer to an array of floats (left) + | *[out]* **dest** destination (result, mat3x2) + + .. csv-table:: float array (1x6) **(src)** + :header: "", "column 1" + + "row 1", "v0" + "row 2", "v1" + "row 3", "v2" + "row 4", "v3" + "row 5", "v4" + "row 6", "v5" + + .. csv-table:: mat3x2 **(dest)** + :header: "", "column 1", "column 2", "column 3" + + "row 1", "v0", "v2", "v4" + "row 2", "v1", "v3", "v5" .. c:function:: void glm_mat3x2_mul(mat3x2 m1, mat2x3 m2, mat2 dest) - multiply m1 and m2 to dest + Multiply mat3x2 (m1) by mat2x3 (m2) and store in mat2 (dest). .. code-block:: c glm_mat3x2_mul(mat3x2, mat2x3, mat2); Parameters: - | *[in]* **m1** left matrix (mat3x2) - | *[in]* **m2** right matrix (mat2x3) - | *[out]* **dest** destination matrix (mat2) + | *[in]* **m1** mat3x2 (left) + | *[in]* **m2** mat2x3 (right) + | *[out]* **dest** destination (result, mat2) - .. csv-table:: mat3x2 + .. csv-table:: mat3x2 **(m1)** :header: "", "column 1", "column 2", "column 3" "row 1", "a00", "a10", "a20" "row 2", "a01", "a11", "a21" - .. csv-table:: mat2x3 + .. csv-table:: mat2x3 **(m2)** :header: "", "column 1", "column 2" "row 1", "b00", "b10" "row 2", "b01", "b11" "row 3", "b02", "b12" - .. csv-table:: mat2x2 + .. csv-table:: mat2x2 **(dest)** :header: "", "column 1", "column 2" "row 1", "a00 * b00 + a10 * b01 + a20 * b02", "a00 * b10 + a10 * b11 + a20 * b12" @@ -94,44 +134,63 @@ Functions documentation .. c:function:: void glm_mat3x2_mulv(mat3x2 m, vec3 v, vec2 dest) - multiply mat3x2 with vec3 (column vector) and store in dest vector + Multiply mat3x2 (m) by vec3 (v) and store in vec2 (dest). Parameters: - | *[in]* **m** mat3x2 (left) - | *[in]* **v** vec3 (right, column vector) - | *[out]* **dest** destination (result, column vector) + | *[in]* **m** mat3x2 (left) + | *[in]* **v** vec3 (right, column vector) + | *[out]* **dest** destination (result, column vector) - .. csv-table:: mat3x2 + .. csv-table:: mat3x2 **(m)** :header: "", "column 1", "column 2", "column 3" "row 1", "m00", "m10", "m20" "row 2", "m01", "m11", "m21" - .. csv-table:: column vec3 (1x3) + .. csv-table:: column vec3 (1x3) **(v)** :header: "", "column 1" "row 1", "v0" "row 2", "v1" "row 3", "v2" - .. csv-table:: column vec2 (1x2) + .. csv-table:: column vec2 (1x2) **(dest)** :header: "", "column 1" "row 1", "m00 * v0 + m10 * v1 + m20 * v2" "row 2", "m01 * v0 + m11 * v1 + m21 * v2" -.. c:function:: void glm_mat3x2_transpose(mat3x2 m, mat2x3 dest) +.. c:function:: void glm_mat3x2_transpose(mat3x2 src, mat2x3 dest) - transpose matrix and store in dest + Transpose mat3x2 (src) and store in mat2x3 (dest). Parameters: - | *[in]* **m** matrix - | *[out]* **dest** destination + | *[in]* **src** mat3x2 (left) + | *[out]* **dest** destination (result, mat2x3) -.. c:function:: void glm_mat3x2_scale(mat3x2 m, float s) + .. csv-table:: mat3x2 **(src)** + :header: "", "column 1", "column 2", "column 3" - multiply matrix with scalar + "row 1", "a00", "a10", "a20" + "row 2", "a01", "a11", "a21" + + .. csv-table:: mat2x3 **(dest)** + :header: "", "column 1", "column 2" + + "row 1", "b00 = a00", "b10 = a01" + "row 2", "b01 = a10", "b11 = a11" + "row 3", "b02 = a20", "b12 = a21" + +.. c:function:: void glm_mat3x2_scale(mat3x2 m, float s) + + Multiply mat3x2 (m) by scalar constant (s). Parameters: - | *[in, out]* **m** matrix - | *[in]* **s** scalar + | *[in, out]* **m** mat3x2 (src, dest) + | *[in]* **s** float (scalar) + + .. csv-table:: mat3x2 **(m)** + :header: "", "column 1", "column 2", "column 3" + + "row 1", "m00 = m00 * s", "m10 = m10 * s", "m20 = m20 * s" + "row 2", "m01 = m01 * s", "m11 = m11 * s", "m21 = m21 * s" diff --git a/include/cglm/call/mat3x2.h b/include/cglm/call/mat3x2.h index 3c0daed..246a269 100644 --- a/include/cglm/call/mat3x2.h +++ b/include/cglm/call/mat3x2.h @@ -15,11 +15,11 @@ extern "C" { CGLM_EXPORT void -glmc_mat3x2_copy(mat3x2 mat, mat3x2 dest); +glmc_mat3x2_copy(mat3x2 src, mat3x2 dest); CGLM_EXPORT void -glmc_mat3x2_zero(mat3x2 mat); +glmc_mat3x2_zero(mat3x2 m); CGLM_EXPORT void @@ -35,7 +35,7 @@ glmc_mat3x2_mulv(mat3x2 m, vec3 v, vec2 dest); CGLM_EXPORT void -glmc_mat3x2_transpose(mat3x2 m, mat2x3 dest); +glmc_mat3x2_transpose(mat3x2 src, mat2x3 dest); CGLM_EXPORT void diff --git a/include/cglm/mat3x2.h b/include/cglm/mat3x2.h index 75ed9c2..4328132 100644 --- a/include/cglm/mat3x2.h +++ b/include/cglm/mat3x2.h @@ -11,12 +11,12 @@ GLM_MAT3X2_ZERO Functions: - CGLM_INLINE void glm_mat3x2_copy(mat3x2 mat, mat3x2 dest); - CGLM_INLINE void glm_mat3x2_zero(mat3x2 mat); + CGLM_INLINE void glm_mat3x2_copy(mat3x2 src, mat3x2 dest); + CGLM_INLINE void glm_mat3x2_zero(mat3x2 m); CGLM_INLINE void glm_mat3x2_make(const float * __restrict src, mat3x2 dest); CGLM_INLINE void glm_mat3x2_mul(mat3x2 m1, mat2x3 m2, mat2 dest); CGLM_INLINE void glm_mat3x2_mulv(mat3x2 m, vec3 v, vec2 dest); - CGLM_INLINE void glm_mat3x2_transpose(mat3x2 m, mat2x3 dest); + CGLM_INLINE void glm_mat3x2_transpose(mat3x2 src, mat2x3 dest); CGLM_INLINE void glm_mat3x2_scale(mat3x2 m, float s); */ @@ -31,41 +31,36 @@ #define GLM_MAT3X2_ZERO GLM_MAT3X2_ZERO_INIT /*! - * @brief copy all members of [mat] to [dest] + * @brief Copy mat3x2 (src) to mat3x2 (dest). * - * @param[in] mat source - * @param[out] dest destination + * @param[in] src mat3x2 (left) + * @param[out] dest destination (result, mat3x2) */ CGLM_INLINE void -glm_mat3x2_copy(mat3x2 mat, mat3x2 dest) { - dest[0][0] = mat[0][0]; - dest[0][1] = mat[0][1]; - - dest[1][0] = mat[1][0]; - dest[1][1] = mat[1][1]; - - dest[2][0] = mat[2][0]; - dest[2][1] = mat[2][1]; +glm_mat3x2_copy(mat3x2 src, mat3x2 dest) { + glm_vec2_copy(src[0], dest[0]); + glm_vec2_copy(src[1], dest[1]); + glm_vec2_copy(src[2], dest[2]); } /*! - * @brief make given matrix zero. + * @brief Zero out the mat3x2 (m). * - * @param[in, out] mat matrix + * @param[in, out] mat3x2 (src, dest) */ CGLM_INLINE void -glm_mat3x2_zero(mat3x2 mat) { +glm_mat3x2_zero(mat3x2 m) { CGLM_ALIGN_MAT mat3x2 t = GLM_MAT3X2_ZERO_INIT; - glm_mat3x2_copy(t, mat); + glm_mat3x2_copy(t, m); } /*! - * @brief Create mat3x2 matrix from pointer + * @brief Create mat3x2 (dest) from pointer (src). * - * @param[in] src pointer to an array of floats - * @param[out] dest matrix + * @param[in] src pointer to an array of floats (left) + * @param[out] dest destination (result, mat3x2) */ CGLM_INLINE void @@ -81,15 +76,15 @@ glm_mat3x2_make(const float * __restrict src, mat3x2 dest) { } /*! - * @brief multiply m1 and m2 to dest + * @brief Multiply mat3x2 (m1) by mat2x3 (m2) and store in mat2 (dest). * * @code * glm_mat3x2_mul(mat3x2, mat2x3, mat2); * @endcode * - * @param[in] m1 left matrix (mat3x2) - * @param[in] m2 right matrix (mat2x3) - * @param[out] dest destination matrix (mat2) + * @param[in] m1 mat3x2 (left) + * @param[in] m2 mat2x3 (right) + * @param[out] dest destination (result, mat2) */ CGLM_INLINE void @@ -109,11 +104,11 @@ glm_mat3x2_mul(mat3x2 m1, mat2x3 m2, mat2 dest) { } /*! - * @brief multiply matrix with column vector and store in dest column vector + * @brief Multiply mat3x2 (m) by vec3 (v) and store in vec2 (dest). * - * @param[in] m matrix (left) - * @param[in] v vector (right, column vector) - * @param[out] dest result vector + * @param[in] m mat3x2 (left) + * @param[in] v vec3 (right, column vector) + * @param[out] dest destination (result, column vector) */ CGLM_INLINE void @@ -125,25 +120,23 @@ glm_mat3x2_mulv(mat3x2 m, vec3 v, vec2 dest) { } /*! - * @brief transpose matrix and store in dest + * @brief Transpose mat3x2 (src) and store in mat2x3 (dest). * - * @param[in] m matrix - * @param[out] dest result + * @param[in] src mat3x2 (left) + * @param[out] dest destination (result, mat2x3) */ CGLM_INLINE void -glm_mat3x2_transpose(mat3x2 m, mat2x3 dest) { - dest[0][0] = m[0][0]; dest[0][1] = m[1][0]; dest[0][2] = m[2][0]; - dest[1][0] = m[0][1]; dest[1][1] = m[1][1]; dest[1][2] = m[2][1]; +glm_mat3x2_transpose(mat3x2 src, mat2x3 dest) { + dest[0][0] = src[0][0]; dest[0][1] = src[1][0]; dest[0][2] = src[2][0]; + dest[1][0] = src[0][1]; dest[1][1] = src[1][1]; dest[1][2] = src[2][1]; } /*! - * @brief scale (multiply with scalar) matrix + * @brief Multiply mat2x4 (m) by scalar constant (s). * - * multiply matrix with scalar - * - * @param[in, out] m matrix - * @param[in] s scalar + * @param[in, out] m (src, dest) + * @param[in] s float (scalar) */ CGLM_INLINE void diff --git a/include/cglm/struct/mat3x2.h b/include/cglm/struct/mat3x2.h index a95d5e1..ab2d388 100644 --- a/include/cglm/struct/mat3x2.h +++ b/include/cglm/struct/mat3x2.h @@ -35,87 +35,85 @@ #define GLMS_MAT3X2_ZERO ((mat3x2s)GLMS_MAT3X2_ZERO_INIT) /*! - * @brief make given matrix zero. + * @brief Zero out the mat3x2s (dest). * - * @param[in, out] mat matrix + * @return[out] dest constructed mat3x2s from raw pointer */ CGLM_INLINE mat3x2s glms_mat3x2_(zero)(void) { - mat3x2s r; - glm_mat3x2_zero(r.raw); - return r; + mat3x2s dest; + glm_mat3x2_zero(dest.raw); + return dest; } /*! - * @brief Create mat3x2 matrix from pointer + * @brief Create mat3x2s (dest) from pointer (src). * - * @param[in] src pointer to an array of floats - * @return constructed matrix from raw pointer + * @param[in] src pointer to an array of floats + * @return[out] dest constructed mat3x2s from raw pointer */ CGLM_INLINE mat3x2s glms_mat3x2_(make)(const float * __restrict src) { - mat3x2s r; - glm_mat3x2_make(src, r.raw); - return r; + mat3x2s dest; + glm_mat3x2_make(src, dest.raw); + return dest; } /*! - * @brief multiply m1 and m2 to dest + * @brief Multiply mat3x2s (m1) by mat2x3s (m2) and store in mat2s (dest). * * @code * r = glms_mat3x2_mul(mat3x2s, mat2x3s); * @endcode * - * @param[in] m1 left matrix (mat3x2s) - * @param[in] m2 right matrix (mat2x3s) - * @returns destination matrix (mat3s) + * @param[in] m1 mat3x2s (left) + * @param[in] m2 mat2x3s (right) + * @return[out] dest constructed mat2s from raw pointers */ CGLM_INLINE mat2s glms_mat3x2_(mul)(mat3x2s m1, mat2x3s m2) { - mat2s r; - glm_mat3x2_mul(m1.raw, m2.raw, r.raw); - return r; + mat2s dest; + glm_mat3x2_mul(m1.raw, m2.raw, dest.raw); + return dest; } /*! - * @brief multiply matrix with column vector and store in dest vector + * @brief Multiply mat3x2s (m) by vec3s (v) and store in vec2s (dest). * - * @param[in] m matrix (left) - * @param[in] v vector (right, column vector) - * @param[out] dest result vector + * @param[in] m mat3x2s (left) + * @param[in] v vec3s (right, column vector) + * @return[out] dest constructed vec2s from raw pointers */ CGLM_INLINE vec2s glms_mat3x2_(mulv)(mat3x2s m, vec3s v) { - vec2s r; - glm_mat3x2_mulv(m.raw, v.raw, r.raw); - return r; + vec2s dest; + glm_mat3x2_mulv(m.raw, v.raw, dest.raw); + return dest; } /*! - * @brief transpose matrix and store in dest + * @brief Transpose mat3x2s (m) and store in mat2x3s (dest). * - * @param[in] m matrix - * @param[out] dest result + * @param[in] m mat3x2s (left) + * @return[out] dest constructed mat2x3s from raw pointers */ CGLM_INLINE mat2x3s glms_mat3x2_(transpose)(mat3x2s m) { - mat2x3s r; - glm_mat3x2_transpose(m.raw, r.raw); - return r; + mat2x3s dest; + glm_mat3x2_transpose(m.raw, dest.raw); + return dest; } /*! - * @brief scale (multiply with scalar) matrix + * @brief Multiply mat3x2s (m) by scalar constant (s). * - * multiply matrix with scalar - * - * @param[in, out] m matrix - * @param[in] s scalar + * @param[in, out] m mat3x2s (src, dest) + * @param[in] s float (scalar) */ CGLM_INLINE mat3x2s diff --git a/src/mat3x2.c b/src/mat3x2.c index 5ade303..4cbc48e 100644 --- a/src/mat3x2.c +++ b/src/mat3x2.c @@ -10,14 +10,14 @@ CGLM_EXPORT void -glmc_mat3x2_copy(mat3x2 mat, mat3x2 dest) { - glm_mat3x2_copy(mat, dest); +glmc_mat3x2_copy(mat3x2 src, mat3x2 dest) { + glm_mat3x2_copy(src, dest); } CGLM_EXPORT void -glmc_mat3x2_zero(mat3x2 mat) { - glm_mat3x2_zero(mat); +glmc_mat3x2_zero(mat3x2 m) { + glm_mat3x2_zero(m); } CGLM_EXPORT @@ -40,8 +40,8 @@ glmc_mat3x2_mulv(mat3x2 m, vec3 v, vec2 dest) { CGLM_EXPORT void -glmc_mat3x2_transpose(mat3x2 m, mat2x3 dest) { - glm_mat3x2_transpose(m, dest); +glmc_mat3x2_transpose(mat3x2 src, mat2x3 dest) { + glm_mat3x2_transpose(src, dest); } CGLM_EXPORT