mat4x3.rst 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. .. default-domain:: C
  2. mat4x3
  3. ======
  4. Header: cglm/mat4x3.h
  5. Table of contents (click to go):
  6. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  7. Macros:
  8. 1. GLM_MAT4X3_ZERO_INIT
  9. #. GLM_MAT4X3_ZERO
  10. Functions:
  11. 1. :c:func:`glm_mat4x3_copy`
  12. #. :c:func:`glm_mat4x3_zero`
  13. #. :c:func:`glm_mat4x3_make`
  14. #. :c:func:`glm_mat4x3_mul`
  15. #. :c:func:`glm_mat4x3_mulv`
  16. #. :c:func:`glm_mat4x3_transpose`
  17. #. :c:func:`glm_mat4x3_scale`
  18. Represented
  19. ~~~~~~~~~~~
  20. .. csv-table:: mat4x3
  21. :header: "", "column 1", "column 2", "column 3", "column4"
  22. "row 1", "m00", "m10", "m20", "m30"
  23. "row 2", "m01", "m11", "m21", "m31"
  24. "row 3", "m02", "m12", "m22", "m32"
  25. Functions documentation
  26. ~~~~~~~~~~~~~~~~~~~~~~~
  27. .. c:function:: void glm_mat4x3_copy(mat4x3 mat, mat4x3 dest)
  28. copy mat4x3 to another one (dest).
  29. Parameters:
  30. | *[in]* **mat** source
  31. | *[out]* **dest** destination
  32. .. c:function:: void glm_mat4x3_zero(mat4x3 mat)
  33. make given matrix zero
  34. Parameters:
  35. | *[in,out]* **mat** matrix
  36. .. c:function:: void glm_mat4x3_make(const float * __restrict src, mat4x3 dest)
  37. Create mat4x3 matrix from pointer
  38. .. note:: **@src** must contain at least 12 elements.
  39. Parameters:
  40. | *[in]* **src** pointer to an array of floats
  41. | *[out]* **dest** destination matrix4x3
  42. .. c:function:: void glm_mat4x3_mul(mat4x3 m1, mat3x4 m2, mat3 dest)
  43. multiply m1 and m2 to dest
  44. .. code-block:: c
  45. glm_mat4x3_mul(mat4x3, mat3x4, mat3);
  46. Parameters:
  47. | *[in]* **m1** left matrix (mat4x3)
  48. | *[in]* **m2** right matrix (mat3x4)
  49. | *[out]* **dest** destination matrix (mat3)
  50. .. csv-table:: mat4x3
  51. :header: "", "column 1", "column 2", "column 3", "column 4"
  52. "row 1", "a00", "a10", "a20", "a30"
  53. "row 2", "a01", "a11", "a21", "a31"
  54. "row 3", "a02", "a12", "a22", "a32"
  55. .. csv-table:: mat3x4
  56. :header: "", "column 1", "column 2", "column 3"
  57. "row 1", "b00", "b10", "b20"
  58. "row 2", "b01", "b11", "b21"
  59. "row 3", "b02", "b12", "b22"
  60. "row 4", "b03", "b13", "b23"
  61. .. csv-table:: mat3x3
  62. :header: "", "column 1", "column 2", "column 3"
  63. "row 1", "a00 * b00 + a10 * b01 + a20 * b02 + a30 * b03", "a00 * b10 + a10 * b11 + a20 * b12 + a30 * b13", "a00 * b20 + a10 * b21 + a20 * b22 + a30 * b23"
  64. "row 2", "a01 * b00 + a11 * b01 + a21 * b02 + a31 * b03", "a01 * b10 + a11 * b11 + a21 * b12 + a31 * b13", "a01 * b20 + a11 * b21 + a21 * b22 + a31 * b23"
  65. "row 3", "a02 * b00 + a12 * b01 + a22 * b02 + a32 * b03", "a02 * b10 + a12 * b11 + a22 * b12 + a32 * b13", "a02 * b20 + a12 * b21 + a22 * b22 + a32 * b23"
  66. .. c:function:: void glm_mat4x3_mulv(mat4x3 m, vec4 v, vec3 dest)
  67. multiply mat4x3 with vec4 (column vector) and store in dest column vector
  68. Parameters:
  69. | *[in]* **m** mat4x3 (left)
  70. | *[in]* **v** vec4 (right, column vector)
  71. | *[out]* **dest** destination (result, column vector)
  72. .. csv-table:: mat4x3
  73. :header: "", "column 1", "column 2", "column 3", "column 4"
  74. "row 1", "m00", "m10", "m20", "m30"
  75. "row 2", "m01", "m11", "m21", "m31"
  76. "row 3", "m02", "m12", "m22", "m32"
  77. .. csv-table:: column vec4 (1x4)
  78. :header: "", "column 1"
  79. "row 1", "v0"
  80. "row 2", "v1"
  81. "row 3", "v2"
  82. "row 4", "v3"
  83. .. csv-table:: column vec3 (1x3)
  84. :header: "", "column 1"
  85. "row 1", "m00 * v0 + m10 * v1 + m20 * v2 + m30 * v3"
  86. "row 2", "m01 * v0 + m11 * v1 + m21 * v2 + m31 * v3"
  87. "row 3", "m02 * v0 + m12 * v1 + m22 * v2 + m32 * v3"
  88. .. c:function:: void glm_mat4x3_transpose(mat4x3 m, mat3x4 dest)
  89. transpose matrix and store in dest
  90. Parameters:
  91. | *[in]* **m** matrix
  92. | *[out]* **dest** destination
  93. .. c:function:: void glm_mat4x3_scale(mat4x3 m, float s)
  94. multiply matrix with scalar
  95. Parameters:
  96. | *[in, out]* **m** matrix
  97. | *[in]* **s** scalar