mat2x4.rst 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  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 mat, mat2x4 dest)
  29. copy mat2x4 to another one (dest).
  30. Parameters:
  31. | *[in]* **mat** source
  32. | *[out]* **dest** destination
  33. .. c:function:: void glm_mat2x4_zero(mat2x4 mat)
  34. make given matrix zero
  35. Parameters:
  36. | *[in,out]* **mat** matrix
  37. .. c:function:: void glm_mat2x4_make(const float * __restrict src, mat2x4 dest)
  38. Create mat2x4 matrix from pointer
  39. .. note:: **@src** must contain at least 8 elements.
  40. Parameters:
  41. | *[in]* **src** pointer to an array of floats
  42. | *[out]* **dest** destination matrix2x4
  43. .. c:function:: void glm_mat2x4_mul(mat2x4 m1, mat4x2 m2, mat4 dest)
  44. multiply m1 and m2 to dest
  45. .. code-block:: c
  46. glm_mat2x4_mul(mat2x4, mat4x2, mat4);
  47. Parameters:
  48. | *[in]* **m1** left matrix (mat2x4)
  49. | *[in]* **m2** right matrix (mat4x2)
  50. | *[out]* **dest** destination matrix (mat4)
  51. .. csv-table:: mat2x4
  52. :header: "", "column 1", "column 2"
  53. "row 1", "a00", "a10"
  54. "row 2", "a01", "a11"
  55. "row 3", "a02", "a12"
  56. "row 4", "a03", "a13"
  57. .. csv-table:: mat4x2
  58. :header: "", "column 1", "column 2", "column 3", "column 4"
  59. "row 1", "b00", "b10", "b20", "b30"
  60. "row 2", "b01", "b11", "b21", "b31"
  61. .. csv-table:: mat4x4
  62. :header: "", "column 1", "column 2", "column 3", "column 4"
  63. "row 1", "a00 * b00 + a10 * b01", "a00 * b10 + a10 * b11", "a00 * b20 + a10 * b21", "a00 * b30 + a10 * b31"
  64. "row 2", "a01 * b00 + a11 * b01", "a01 * b10 + a11 * b11", "a01 * b20 + a11 * b21", "a01 * b30 + a11 * b31"
  65. "row 3", "a02 * b00 + a12 * b01", "a02 * b10 + a12 * b11", "a02 * b20 + a12 * b21", "a02 * b30 + a12 * b31"
  66. "row 4", "a03 * b00 + a13 * b01", "a03 * b10 + a13 * b11", "a03 * b20 + a13 * b21", "a03 * b30 + a13 * b31"
  67. .. c:function:: void glm_mat2x4_mulv(mat2x4 m, vec2 v, vec4 dest)
  68. multiply mat2x4 with vec2 (column vector) and store in dest column vector
  69. Parameters:
  70. | *[in]* **m** mat2x4 (left)
  71. | *[in]* **v** vec2 (right, column vector)
  72. | *[out]* **dest** destination (result, column vector)
  73. .. csv-table:: mat2x4
  74. :header: "", "column 1", "column 2"
  75. "row 1", "m00", "m10"
  76. "row 2", "m01", "m11"
  77. "row 3", "m02", "m12"
  78. "row 4", "m03", "m13"
  79. .. csv-table:: column vec2 (1x2)
  80. :header: "", "column 1"
  81. "row 1", "v0"
  82. "row 2", "v1"
  83. .. csv-table:: column vec4 (1x4)
  84. :header: "", "column 1"
  85. "row 1", "m00 * v0 + m10 * v1"
  86. "row 2", "m01 * v0 + m11 * v1"
  87. "row 3", "m02 * v0 + m12 * v1"
  88. "row 4", "m03 * v0 + m13 * v1"
  89. .. c:function:: void glm_mat2x4_transpose(mat2x4 m, mat4x2 dest)
  90. transpose matrix and store in dest
  91. Parameters:
  92. | *[in]* **m** matrix
  93. | *[out]* **dest** destination
  94. .. c:function:: void glm_mat2x4_scale(mat2x4 m, float s)
  95. multiply matrix with scalar
  96. Parameters:
  97. | *[in, out]* **m** matrix
  98. | *[in]* **s** scalar