mat3x4.rst 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. .. default-domain:: C
  2. mat3x4
  3. ======
  4. Header: cglm/mat3x4.h
  5. Table of contents (click to go):
  6. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  7. Macros:
  8. 1. GLM_MAT3X4_ZERO_INIT
  9. #. GLM_MAT3X4_ZERO
  10. Functions:
  11. 1. :c:func:`glm_mat3x4_copy`
  12. #. :c:func:`glm_mat3x4_zero`
  13. #. :c:func:`glm_mat3x4_make`
  14. #. :c:func:`glm_mat3x4_mul`
  15. #. :c:func:`glm_mat3x4_mulv`
  16. #. :c:func:`glm_mat3x4_transpose`
  17. #. :c:func:`glm_mat3x4_scale`
  18. Represented
  19. ~~~~~~~~~~~
  20. .. csv-table:: mat3x4
  21. :header: "", "column 1", "column 2", "column 3"
  22. "row 1", "m00", "m10", "m20"
  23. "row 2", "m01", "m11", "m21"
  24. "row 3", "m02", "m12", "m22"
  25. "row 4", "m03", "m13", "m23"
  26. Functions documentation
  27. ~~~~~~~~~~~~~~~~~~~~~~~
  28. .. c:function:: void glm_mat3x4_copy(mat3x4 mat, mat3x4 dest)
  29. copy mat3x4 to another one (dest).
  30. Parameters:
  31. | *[in]* **mat** source
  32. | *[out]* **dest** destination
  33. .. c:function:: void glm_mat3x4_zero(mat3x4 mat)
  34. make given matrix zero
  35. Parameters:
  36. | *[in,out]* **mat** matrix
  37. .. c:function:: void glm_mat3x4_make(const float * __restrict src, mat3x4 dest)
  38. Create mat3x4 matrix from pointer
  39. .. note::: **@src** must contain at least 12 elements.
  40. Parameters:
  41. | *[in]* **src** pointer to an array of floats
  42. | *[out]* **dest** destination matrix3x4
  43. .. c:function:: void glm_mat3x4_mul(mat3x4 m1, mat4x3 m2, mat4 dest)
  44. multiply m1 and m2 to dest
  45. .. code-block:: c
  46. glm_mat3x4_mul(mat3x4, mat4x3, mat4);
  47. Parameters:
  48. | *[in]* **m1** left matrix (mat3x4)
  49. | *[in]* **m2** right matrix (mat4x3)
  50. | *[out]* **dest** destination matrix (mat4)
  51. .. csv-table:: mat3x4
  52. :header: "", "column 1", "column 2", "column 3"
  53. "row 1", "a00", "a10", "a20"
  54. "row 2", "a01", "a11", "a21"
  55. "row 3", "a02", "a12", "a22"
  56. "row 4", "a03", "a13", "a23"
  57. .. csv-table:: mat4x3
  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. "row 3", "b02", "b12", "b22", "b32"
  62. .. csv-table:: mat4x4
  63. :header: "", "column 1", "column 2", "column 3", "column 4"
  64. "row 1", "a00 * b00 + a10 * b01 + a20 * b02", "a00 * b10 + a10 * b11 + a20 * b12", "a00 * b20 + a10 * b21 + a20 * b22", "a00 * b30 + a10 * b31 + a20 * b32"
  65. "row 2", "a01 * b00 + a11 * b01 + a21 * b02", "a01 * b10 + a11 * b11 + a21 * b12", "a01 * b20 + a11 * b21 + a21 * b22", "a01 * b30 + a11 * b31 + a21 * b32"
  66. "row 3", "a02 * b00 + a12 * b01 + a22 * b02", "a02 * b10 + a12 * b11 + a22 * b12", "a02 * b20 + a12 * b21 + a22 * b22", "a02 * b30 + a12 * b31 + a22 * b32"
  67. "row 4", "a03 * b00 + a13 * b01 + a23 * b02", "a03 * b10 + a13 * b11 + a23 * b12", "a03 * b20 + a13 * b21 + a23 * b22", "a03 * b30 + a13 * b31 + a23 * b32"
  68. .. c:function:: void glm_mat3x4_mulv(mat3x4 m, vec3 v, vec4 dest)
  69. multiply mat3x4 with vec3 (column vector) and store in dest vector
  70. Parameters:
  71. | *[in]* **m** mat3x4 (left)
  72. | *[in]* **v** vec3 (right, column vector)
  73. | *[out]* **dest** destination (result, column vector)
  74. .. csv-table:: mat3x4
  75. :header: "", "column 1", "column 2", "column 3"
  76. "row 1", "m00", "m10", "m20"
  77. "row 2", "m01", "m11", "m21"
  78. "row 3", "m02", "m12", "m22"
  79. "row 4", "m03", "m13", "m23"
  80. .. csv-table:: column vec3 (1x3)
  81. :header: "", "column 1"
  82. "row 1", "v0"
  83. "row 2", "v1"
  84. "row 3", "v2"
  85. .. csv-table:: column vec4 (1x4)
  86. :header: "", "column 1"
  87. "row 1", "m00 * v0 + m10 * v1 + m20 * v2"
  88. "row 2", "m01 * v0 + m11 * v1 + m21 * v2"
  89. "row 3", "m02 * v0 + m12 * v1 + m22 * v2"
  90. "row 4", "m03 * v0 + m13 * v1 + m23 * v2"
  91. .. c:function:: void glm_mat3x4_transpose(mat3x4 m, mat4x3 dest)
  92. transpose matrix and store in dest
  93. Parameters:
  94. | *[in]* **m** matrix
  95. | *[out]* **dest** destination
  96. .. c:function:: void glm_mat3x4_scale(mat3x4 m, float s)
  97. multiply matrix with scalar
  98. Parameters:
  99. | *[in, out]* **m** matrix
  100. | *[in]* **s** scalar