mat2x4.rst 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. .. default-domain:: C
  2. mat2x4
  3. ======
  4. Header: cglm/mat2x4.h
  5. Table of contents (click to go):
  6. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  7. Macros:
  8. 1. GLM_MAT2X4_ZERO_INIT
  9. #. GLM_MAT2X4_ZERO
  10. Functions:
  11. 1. :c:func:`glm_mat2x4_copy`
  12. #. :c:func:`glm_mat2x4_zero`
  13. #. :c:func:`glm_mat2x4_make`
  14. #. :c:func:`glm_mat2x4_mul`
  15. #. :c:func:`glm_mat2x4_mulv`
  16. #. :c:func:`glm_mat2x4_transpose`
  17. #. :c:func:`glm_mat2x4_scale`
  18. Represented
  19. ~~~~~~~~~~~
  20. .. csv-table:: mat2x4
  21. :header: "", "column 1", "column 2"
  22. "row 1", "m00", "m10"
  23. "row 2", "m01", "m11"
  24. "row 3", "m02", "m12"
  25. "row 4", "m03", "m13"
  26. Functions documentation
  27. ~~~~~~~~~~~~~~~~~~~~~~~
  28. .. c:function:: void glm_mat2x4_copy(mat2x4 src, mat2x4 dest)
  29. Copy mat2x4 (src) to mat2x4 (dest).
  30. Parameters:
  31. | *[in]* **src** mat2x4 (left)
  32. | *[out]* **dest** destination (result, mat2x4)
  33. .. csv-table:: mat2x4 **(src)**
  34. :header: "", "column 1", "column 2"
  35. "row 1", "a00", "a10"
  36. "row 2", "a01", "a11"
  37. "row 3", "a02", "a12"
  38. "row 4", "a03", "a13"
  39. .. csv-table:: mat2x4 **(dest)**
  40. :header: "", "column 1", "column 2"
  41. "row 1", "b00 = a00", "b10 = a10"
  42. "row 2", "b01 = a01", "b11 = a11"
  43. "row 3", "b02 = a02", "b12 = a12"
  44. "row 4", "b03 = a03", "b13 = a13"
  45. .. c:function:: void glm_mat2x4_zero(mat2x4 m)
  46. Zero out the mat2x4 (m).
  47. Parameters:
  48. | *[in, out]* **m** mat2x4 (src, dest)
  49. .. csv-table:: mat2x4 **(m)**
  50. :header: "", "column 1", "column 2"
  51. "row 1", "0.00", "2.00"
  52. "row 2", "5.00", "4.00"
  53. "row 3", "7.00", "6.00"
  54. "row 4", "23.00", "1.00"
  55. .. csv-table:: mat2x4 **(m)**
  56. :header: "", "column 1", "column 2"
  57. "row 1", "0.00", "0.00"
  58. "row 2", "0.00", "0.00"
  59. "row 3", "0.00", "0.00"
  60. "row 4", "0.00", "0.00"
  61. .. c:function:: void glm_mat2x4_make(const float * __restrict src, mat2x4 dest)
  62. Create mat2x4 (dest) from pointer (src).
  63. .. note:: **@src** must contain at least 8 elements.
  64. Parameters:
  65. | *[in]* **src** pointer to an array of floats (left)
  66. | *[out]* **dest** destination (result, mat2x4)
  67. .. csv-table:: float array (1x8) **(src)**
  68. :header: "", "column 1"
  69. "row 1", "v0"
  70. "row 2", "v1"
  71. "row 3", "v2"
  72. "row 4", "v3"
  73. "row 5", "v4"
  74. "row 6", "v5"
  75. "row 7", "v6"
  76. "row 8", "v7"
  77. .. csv-table:: mat2x4 **(dest)**
  78. :header: "", "column 1", "column 2"
  79. "row 1", "v0", "v4"
  80. "row 2", "v1", "v5"
  81. "row 3", "v2", "v6"
  82. "row 4", "v3", "v7"
  83. .. c:function:: void glm_mat2x4_mul(mat2x4 m1, mat4x2 m2, mat4 dest)
  84. Multiply mat2x4 (m1) by mat4x2 (m2) and store in mat4 (dest).
  85. .. code-block:: c
  86. glm_mat2x4_mul(mat2x4, mat4x2, mat4);
  87. Parameters:
  88. | *[in]* **m1** mat2x4 (left)
  89. | *[in]* **m2** mat4x2 (right)
  90. | *[out]* **dest** destination (result, mat4)
  91. .. csv-table:: mat2x4 **(m1)**
  92. :header: "", "column 1", "column 2"
  93. "row 1", "a00", "a10"
  94. "row 2", "a01", "a11"
  95. "row 3", "a02", "a12"
  96. "row 4", "a03", "a13"
  97. .. csv-table:: mat4x2 **(m2)**
  98. :header: "", "column 1", "column 2", "column 3", "column 4"
  99. "row 1", "b00", "b10", "b20", "b30"
  100. "row 2", "b01", "b11", "b21", "b31"
  101. .. csv-table:: mat4x4 **(dest)**
  102. :header: "", "column 1", "column 2", "column 3", "column 4"
  103. "row 1", "a00 * b00 + a10 * b01", "a00 * b10 + a10 * b11", "a00 * b20 + a10 * b21", "a00 * b30 + a10 * b31"
  104. "row 2", "a01 * b00 + a11 * b01", "a01 * b10 + a11 * b11", "a01 * b20 + a11 * b21", "a01 * b30 + a11 * b31"
  105. "row 3", "a02 * b00 + a12 * b01", "a02 * b10 + a12 * b11", "a02 * b20 + a12 * b21", "a02 * b30 + a12 * b31"
  106. "row 4", "a03 * b00 + a13 * b01", "a03 * b10 + a13 * b11", "a03 * b20 + a13 * b21", "a03 * b30 + a13 * b31"
  107. .. c:function:: void glm_mat2x4_mulv(mat2x4 m, vec2 v, vec4 dest)
  108. Multiply mat2x4 (m) by vec2 (v) and store in vec4 (dest).
  109. Parameters:
  110. | *[in]* **m** mat2x4 (left)
  111. | *[in]* **v** vec2 (right, column vector)
  112. | *[out]* **dest** destination (result, column vector)
  113. .. csv-table:: mat2x4 **(m)**
  114. :header: "", "column 1", "column 2"
  115. "row 1", "m00", "m10"
  116. "row 2", "m01", "m11"
  117. "row 3", "m02", "m12"
  118. "row 4", "m03", "m13"
  119. .. csv-table:: column vec2 (1x2) **(v)**
  120. :header: "", "column 1"
  121. "row 1", "v0"
  122. "row 2", "v1"
  123. .. csv-table:: column vec4 (1x4) **(dest)**
  124. :header: "", "column 1"
  125. "row 1", "m00 * v0 + m10 * v1"
  126. "row 2", "m01 * v0 + m11 * v1"
  127. "row 3", "m02 * v0 + m12 * v1"
  128. "row 4", "m03 * v0 + m13 * v1"
  129. .. c:function:: void glm_mat2x4_transpose(mat2x4 src, mat4x2 dest)
  130. Transpose mat2x4 (src) and store in mat4x2 (dest).
  131. Parameters:
  132. | *[in]* **src** mat2x4 (left)
  133. | *[out]* **dest** destination (result, mat4x2)
  134. .. csv-table:: mat2x4 **(src)**
  135. :header: "", "column 1", "column 2"
  136. "row 1", "a00", "a10"
  137. "row 2", "a01", "a11"
  138. "row 3", "a02", "a12"
  139. "row 4", "a03", "a13"
  140. .. csv-table:: mat4x2 **(dest)**
  141. :header: "", "column 1", "column 2", "column 3", "column 4"
  142. "row 1", "b00 = a00", "b10 = a01", "b20 = a02", "b30 = a03"
  143. "row 2", "b01 = a10", "b11 = a11", "b21 = a12", "b31 = a13"
  144. .. c:function:: void glm_mat2x4_scale(mat2x4 m, float s)
  145. Multiply mat2x4 (m) by scalar constant (s).
  146. Parameters:
  147. | *[in, out]* **m** mat2x4 (src, dest)
  148. | *[in]* **s** float (scalar)
  149. .. csv-table:: mat2x4 **(m)**
  150. :header: "", "column 1", "column 2"
  151. "row 1", "m00 = m00 * s", "m10 = m10 * s"
  152. "row 2", "m01 = m01 * s", "m11 = m11 * s"
  153. "row 3", "m02 = m02 * s", "m12 = m12 * s"
  154. "row 4", "m03 = m03 * s", "m13 = m13 * s"