mat4x2.rst 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  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 mat, mat4x2 dest)
  27. copy mat4x2 to another one (dest).
  28. Parameters:
  29. | *[in]* **mat** source
  30. | *[out]* **dest** destination
  31. .. c:function:: void glm_mat4x2_zero(mat4x2 mat)
  32. make given matrix zero
  33. Parameters:
  34. | *[in,out]* **mat** matrix
  35. .. c:function:: void glm_mat4x2_make(const float * __restrict src, mat4x2 dest)
  36. Create mat4x2 matrix from pointer
  37. .. note:: **@src** must contain at least 8 elements.
  38. Parameters:
  39. | *[in]* **src** pointer to an array of floats
  40. | *[out]* **dest** destination matrix4x2
  41. .. c:function:: void glm_mat4x2_mul(mat4x2 m1, mat2x4 m2, mat2 dest)
  42. multiply m1 and m2 to dest
  43. .. code-block:: c
  44. glm_mat4x2_mul(mat4x2, mat2x4, mat2);
  45. Parameters:
  46. | *[in]* **m1** left matrix (mat4x2)
  47. | *[in]* **m2** right matrix (mat2x4)
  48. | *[out]* **dest** destination matrix (mat2)
  49. .. csv-table:: mat4x2
  50. :header: "", "column 1", "column 2", "column 3", "column 4"
  51. "row 1", "a00", "a10", "a20", "a30"
  52. "row 2", "a01", "a11", "a21", "a31"
  53. .. csv-table:: mat2x4
  54. :header: "", "column 1", "column 2"
  55. "row 1", "b00", "b10"
  56. "row 2", "b01", "b11"
  57. "row 3", "b02", "b12"
  58. "row 4", "b03", "b13"
  59. .. csv-table:: mat2x2
  60. :header: "", "column 1", "column 2"
  61. "row 1", "a00 * b00 + a10 * b01 + a20 * b02 + a30 * b03", "a00 * b10 + a10 * b11 + a20 * b12 + a30 * b13"
  62. "row 2", "a01 * b00 + a11 * b01 + a21 * b02 + a31 * b03", "a01 * b10 + a11 * b11 + a21 * b12 + a31 * b13"
  63. .. c:function:: void glm_mat4x2_mulv(mat4x2 m, vec4 v, vec2 dest)
  64. multiply mat4x2 with vec4 (column vector) and store in dest vector
  65. Parameters:
  66. | *[in]* **m** mat4x2 (left)
  67. | *[in]* **v** vec4 (right, column vector)
  68. | *[out]* **dest** destination (result, column vector)
  69. .. csv-table:: mat4x2
  70. :header: "", "column 1", "column 2", "column 3"
  71. "row 1", "m00", "m10", "m20"
  72. "row 2", "m01", "m11", "m21"
  73. "row 3", "m02", "m12", "m22"
  74. "row 4", "m03", "m13", "m23"
  75. .. csv-table:: column vec4 (1x4)
  76. :header: "", "column 1"
  77. "row 1", "v0"
  78. "row 2", "v1"
  79. "row 3", "v2"
  80. "row 4", "v3"
  81. .. csv-table:: column vec2 (1x2)
  82. :header: "", "column 1"
  83. "row 1", "m00 * v0 + m10 * v1 + m20 * v2 + m30 * v3"
  84. "row 2", "m01 * v0 + m11 * v1 + m21 * v2 + m31 * v3"
  85. .. c:function:: void glm_mat4x2_transpose(mat4x2 m, mat2x4 dest)
  86. transpose matrix and store in dest
  87. Parameters:
  88. | *[in]* **m** matrix
  89. | *[out]* **dest** destination
  90. .. c:function:: void glm_mat4x2_scale(mat4x2 m, float s)
  91. multiply matrix with scalar
  92. Parameters:
  93. | *[in, out]* **m** matrix
  94. | *[in]* **s** scalar