mat4x2.rst 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. .. default-domain:: C
  2. mat4x2
  3. ======
  4. Header: cglm/mat4x2.h
  5. Table of contents (click to go):
  6. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  7. Macros:
  8. 1. GLM_MAT4X2_ZERO_INIT
  9. #. GLM_MAT4X2_ZERO
  10. Functions:
  11. 1. :c:func:`glm_mat4x2_copy`
  12. #. :c:func:`glm_mat4x2_zero`
  13. #. :c:func:`glm_mat4x2_make`
  14. #. :c:func:`glm_mat4x2_mul`
  15. #. :c:func:`glm_mat4x2_mulv`
  16. #. :c:func:`glm_mat4x2_transpose`
  17. #. :c:func:`glm_mat4x2_scale`
  18. Represented
  19. ~~~~~~~~~~~
  20. .. csv-table:: mat4x2
  21. :header: "", "column 1", "column 2", "column 3", "column4"
  22. "row 1", "m00", "m10", "m20", "m30"
  23. "row 2", "m01", "m11", "m21", "m31"
  24. Functions documentation
  25. ~~~~~~~~~~~~~~~~~~~~~~~
  26. .. c:function:: void glm_mat4x2_copy(mat4x2 src, mat4x2 dest)
  27. Copy mat4x2 (src) to mat4x2 (dest).
  28. Parameters:
  29. | *[in]* **src** mat4x2 (left)
  30. | *[out]* **dest** destination (result, mat4x2)
  31. .. csv-table:: mat4x2 **(src)**
  32. :header: "", "column 1", "column 2", "column 3", "column 4"
  33. "row 1", "a00", "a10", "a20", "a30"
  34. "row 2", "a01", "a11", "a21", "a31"
  35. .. csv-table:: ma4x2 **(dest)**
  36. :header: "", "column 1", "column 2", "column 3", "column 4"
  37. "row 1", "b00 = a00", "b10 = a10", "b20 = a20", "b30 = a30"
  38. "row 2", "b01 = a01", "b11 = a11", "b21 = a21", "b31 = a31"
  39. .. c:function:: void glm_mat4x2_zero(mat4x2 m)
  40. Zero out the mat4x2 (m).
  41. Parameters:
  42. | *[in, out]* **m** mat4x2 (src, dest)
  43. .. csv-table:: mat4x2 **(m)**
  44. :header: "", "column 1", "column 2", "column 3", "column 4"
  45. "row 1", "0.00", "2.00", "15.00", "44.00"
  46. "row 2", "5.00", "4.00", "6.00", "12.00"
  47. .. csv-table:: mat4x2 **(m)**
  48. :header: "", "column 1", "column 2", "column 3", "column 4"
  49. "row 1", "0.00", "0.00", "0.00", "0.00"
  50. "row 2", "0.00", "0.00", "0.00", "0.00"
  51. .. c:function:: void glm_mat4x2_make(const float * __restrict src, mat4x2 dest)
  52. Create mat4x2 (dest) from pointer (src).
  53. .. note:: **@src** must contain at least 8 elements.
  54. Parameters:
  55. | *[in]* **src** pointer to an array of floats (left)
  56. | *[out]* **dest** destination (result, mat4x2)
  57. .. csv-table:: float array (1x8) **(src)**
  58. :header: "", "column 1"
  59. "row 1", "v0"
  60. "row 2", "v1"
  61. "row 3", "v2"
  62. "row 4", "v3"
  63. "row 5", "v4"
  64. "row 6", "v5"
  65. "row 7", "v6"
  66. "row 8", "v7"
  67. .. csv-table:: mat4x2 **(dest)**
  68. :header: "", "column 1", "column 2", "column 3", "column 4"
  69. "row 1", "v0", "v2", "v4", "v6"
  70. "row 2", "v1", "v3", "v5", "v7"
  71. .. c:function:: void glm_mat4x2_mul(mat4x2 m1, mat2x4 m2, mat2 dest)
  72. Multiply mat4x2 (m1) by mat2x4 (m2) and store in mat2 (dest).
  73. .. code-block:: c
  74. glm_mat4x2_mul(mat4x2, mat2x4, mat2);
  75. Parameters:
  76. | *[in]* **m1** mat4x2 (left)
  77. | *[in]* **m2** mat2x4 (right)
  78. | *[out]* **dest** destination (result, mat2)
  79. .. csv-table:: mat4x2 **(m1)**
  80. :header: "", "column 1", "column 2", "column 3", "column 4"
  81. "row 1", "a00", "a10", "a20", "a30"
  82. "row 2", "a01", "a11", "a21", "a31"
  83. .. csv-table:: mat2x4 **(m2)**
  84. :header: "", "column 1", "column 2"
  85. "row 1", "b00", "b10"
  86. "row 2", "b01", "b11"
  87. "row 3", "b02", "b12"
  88. "row 4", "b03", "b13"
  89. .. csv-table:: mat2x2 **(dest)**
  90. :header: "", "column 1", "column 2"
  91. "row 1", "a00 * b00 + a10 * b01 + a20 * b02 + a30 * b03", "a00 * b10 + a10 * b11 + a20 * b12 + a30 * b13"
  92. "row 2", "a01 * b00 + a11 * b01 + a21 * b02 + a31 * b03", "a01 * b10 + a11 * b11 + a21 * b12 + a31 * b13"
  93. .. c:function:: void glm_mat4x2_mulv(mat4x2 m, vec4 v, vec2 dest)
  94. Multiply mat4x2 (m) by vec4 (v) and store in vec2 (dest).
  95. Parameters:
  96. | *[in]* **m** mat4x2 (left)
  97. | *[in]* **v** vec4 (right, column vector)
  98. | *[out]* **dest** destination (result, column vector)
  99. .. csv-table:: mat4x2 **(m)**
  100. :header: "", "column 1", "column 2", "column 3", "column 4"
  101. "row 1", "m00", "m10", "m20", "m30"
  102. "row 2", "m01", "m11", "m21", "m31"
  103. .. csv-table:: column vec4 (1x4) **(v)**
  104. :header: "", "column 1"
  105. "row 1", "v0"
  106. "row 2", "v1"
  107. "row 3", "v2"
  108. "row 4", "v3"
  109. .. csv-table:: column vec2 (1x2) **(dest)**
  110. :header: "", "column 1"
  111. "row 1", "m00 * v0 + m10 * v1 + m20 * v2 + m30 * v3"
  112. "row 2", "m01 * v0 + m11 * v1 + m21 * v2 + m31 * v3"
  113. .. c:function:: void glm_mat4x2_transpose(mat4x2 src, mat2x4 dest)
  114. Transpose mat4x2 (src) and store in mat2x4 (dest).
  115. Parameters:
  116. | *[in]* **src** mat4x2 (left)
  117. | *[out]* **dest** destination (result, mat2x4)
  118. .. csv-table:: mat4x2 **(src)**
  119. :header: "", "column 1", "column 2", "column 3", "column 4"
  120. "row 1", "a00", "a10", "a20", "a30"
  121. "row 2", "a01", "a11", "a21", "a31"
  122. .. csv-table:: mat2x4 **(dest)**
  123. :header: "", "column 1", "column 2"
  124. "row 1", "b00 = a00", "b10 = a01"
  125. "row 2", "b01 = a10", "b11 = a11"
  126. "row 3", "b02 = a20", "b12 = a21"
  127. "row 4", "b03 = a30", "b13 = a31"
  128. .. c:function:: void glm_mat4x2_scale(mat4x2 m, float s)
  129. Multiply mat4x2 (m) by scalar constant (s).
  130. Parameters:
  131. | *[in, out]* **m** mat4x2 (src, dest)
  132. | *[in]* **s** float (scalar)
  133. .. csv-table:: mat4x2 **(m)**
  134. :header: "", "column 1", "column 2", "column 3", "column 4"
  135. "row 1", "m00 = m00 * s", "m10 = m10 * s", "m20 = m20 * s", "m30 = m30 * s"
  136. "row 2", "m01 = m01 * s", "m11 = m11 * s", "m21 = m21 * s", "m31 = m31 * s"