ivec2.rst 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  1. .. default-domain:: C
  2. ivec2
  3. =====
  4. Header: cglm/ivec2.h
  5. Table of contents (click to go):
  6. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  7. Macros:
  8. 1. GLM_IVEC2_ONE_INIT
  9. #. GLM_IVEC2_ZERO_INIT
  10. #. GLM_IVEC2_ONE
  11. #. GLM_IVEC2_ZERO
  12. Functions:
  13. 1. :c:func:`glm_ivec2`
  14. #. :c:func:`glm_ivec2_copy`
  15. #. :c:func:`glm_ivec2_zero`
  16. #. :c:func:`glm_ivec2_one`
  17. #. :c:func:`glm_ivec2_dot`
  18. #. :c:func:`glm_ivec2_cross`
  19. #. :c:func:`glm_ivec2_add`
  20. #. :c:func:`glm_ivec2_adds`
  21. #. :c:func:`glm_ivec2_sub`
  22. #. :c:func:`glm_ivec2_subs`
  23. #. :c:func:`glm_ivec2_mul`
  24. #. :c:func:`glm_ivec2_scale`
  25. #. :c:func:`glm_ivec2_div`
  26. #. :c:func:`glm_ivec2_divs`
  27. #. :c:func:`glm_ivec2_mod`
  28. #. :c:func:`glm_ivec2_distance2`
  29. #. :c:func:`glm_ivec2_distance`
  30. #. :c:func:`glm_ivec2_maxv`
  31. #. :c:func:`glm_ivec2_minv`
  32. #. :c:func:`glm_ivec2_clamp`
  33. #. :c:func:`glm_ivec2_abs`
  34. Functions documentation
  35. ~~~~~~~~~~~~~~~~~~~~~~~
  36. .. c:function:: void glm_ivec2(int * v, ivec2 dest)
  37. init ivec2 using vec3 or vec4
  38. Parameters:
  39. | *[in]* **v** vector
  40. | *[out]* **dest** destination
  41. .. c:function:: void glm_ivec2_copy(ivec2 a, ivec2 dest)
  42. copy all members of [a] to [dest]
  43. Parameters:
  44. | *[in]* **a** source vector
  45. | *[out]* **dest** destination
  46. .. c:function:: void glm_ivec2_zero(ivec2 v)
  47. set all members of [v] to zero
  48. Parameters:
  49. | *[out]* **v** vector
  50. .. c:function:: void glm_ivec2_one(ivec2 v)
  51. set all members of [v] to one
  52. Parameters:
  53. | *[out]* **v** vector
  54. .. c:function:: int glm_ivec2_dot(ivec2 a, ivec2 b)
  55. dot product of ivec2
  56. Parameters:
  57. | *[in]* **a** vector1
  58. | *[in]* **b** vector2
  59. Returns:
  60. dot product
  61. .. c:function:: int glm_ivec2_cross(ivec2 a, ivec2 b)
  62. cross product of two vector (RH)
  63. | ref: http://allenchou.net/2013/07/cross-product-of-2d-vectors/
  64. Parameters:
  65. | *[in]* **a** vector 1
  66. | *[in]* **b** vector 2
  67. Returns:
  68. Z component of cross product
  69. .. c:function:: void glm_ivec2_add(ivec2 a, ivec2 b, ivec2 dest)
  70. add vector [a] to vector [b] and store result in [dest]
  71. Parameters:
  72. | *[in]* **a** first vector
  73. | *[in]* **b** second vector
  74. | *[out]* **dest** destination
  75. .. c:function:: void glm_ivec2_adds(ivec2 v, int s, ivec2 dest)
  76. add scalar s to vector [v] and store result in [dest]
  77. Parameters:
  78. | *[in]* **v** vector
  79. | *[in]* **s** scalar
  80. | *[out]* **dest** destination
  81. .. c:function:: void glm_ivec2_sub(ivec2 a, ivec2 b, ivec2 dest)
  82. subtract vector [b] from vector [a] and store result in [dest]
  83. Parameters:
  84. | *[in]* **a** first vector
  85. | *[in]* **b** second vector
  86. | *[out]* **dest** destination
  87. .. c:function:: void glm_ivec2_subs(ivec2 v, int s, ivec2 dest)
  88. subtract scalar s from vector [v] and store result in [dest]
  89. Parameters:
  90. | *[in]* **v** vector
  91. | *[in]* **s** scalar
  92. | *[out]* **dest** destination
  93. .. c:function:: void glm_ivec2_mul(ivec2 a, ivec2 b, ivec2 dest)
  94. multiply vector [a] with vector [b] and store result in [dest]
  95. Parameters:
  96. | *[in]* **a** first vector
  97. | *[in]* **b** second vector
  98. | *[out]* **dest** destination
  99. .. c:function:: void glm_ivec2_scale(ivec2 v, int s, ivec2 dest)
  100. multiply vector [a] with scalar s and store result in [dest]
  101. Parameters:
  102. | *[in]* **v** vector
  103. | *[in]* **s** scalar
  104. | *[out]* **dest** destination
  105. .. c:function:: void glm_ivec2_div(ivec2 a, ivec2 b, ivec2 dest)
  106. div vector with another component-wise division: d = a / b
  107. Parameters:
  108. | *[in]* **a** vector 1
  109. | *[in]* **b** vector 2
  110. | *[out]* **dest** result = (a[0] / b[0], a[1] / b[1], a[2] / b[2])
  111. .. c:function:: void glm_ivec2_divs(ivec2 v, int s, ivec2 dest)
  112. div vector with scalar: d = v / s
  113. Parameters:
  114. | *[in]* **v** vector
  115. | *[in]* **s** scalar
  116. | *[out]* **dest** result = (a[0] / s, a[1] / s, a[2] / s)
  117. .. c:function:: void glm_ivec2_mod(ivec2 a, ivec2 b, ivec2 dest)
  118. mod vector with another component-wise modulo: d = a % b
  119. Parameters:
  120. | *[in]* **a** vector
  121. | *[in]* **b** scalar
  122. | *[out]* **dest** result = (a[0] % b[0], a[1] % b[1])
  123. .. c:function:: int glm_ivec2_distance2(ivec2 a, ivec2 b)
  124. squared distance between two vectors
  125. Parameters:
  126. | *[in]* **a** first vector
  127. | *[in]* **b** second vector
  128. Returns:
  129. squared distance (distance * distance)
  130. .. c:function:: float glm_ivec2_distance(ivec2 a, ivec2 b)
  131. distance between two vectors
  132. Parameters:
  133. | *[in]* **a** first vector
  134. | *[in]* **b** second vector
  135. Returns:
  136. distance
  137. .. c:function:: void glm_ivec2_fill(ivec2 v, int val)
  138. fill a vector with specified value
  139. Parameters:
  140. | *[out]* **v** vector
  141. | *[in]* **val** value
  142. .. c:function:: bool glm_ivec2_eq(ivec2 v, int val)
  143. check if vector is equal to value
  144. Parameters:
  145. | *[in]* **v** vector
  146. | *[in]* **val** value
  147. .. c:function:: bool glm_ivec2_eqv(ivec2 v1, ivec2 v2)
  148. check if vector is equal to another vector
  149. Parameters:
  150. | *[in]* **vec** vector 1
  151. | *[in]* **vec** vector 2
  152. .. c:function:: void glm_ivec2_maxv(ivec2 a, ivec2 b, ivec2 dest)
  153. set each member of dest to greater of vector a and b
  154. Parameters:
  155. | *[in]* **a** first vector
  156. | *[in]* **b** second vector
  157. | *[out]* **dest** destination
  158. .. c:function:: void glm_ivec2_minv(ivec2 a, ivec2 b, ivec2 dest)
  159. set each member of dest to lesser of vector a and b
  160. Parameters:
  161. | *[in]* **a** first vector
  162. | *[in]* **b** second vector
  163. | *[out]* **dest** destination
  164. .. c:function:: void glm_ivec2_clamp(ivec2 v, int minVal, int maxVal)
  165. clamp each member of [v] between minVal and maxVal (inclusive)
  166. Parameters:
  167. | *[in, out]* **v** vector
  168. | *[in]* **minVal** minimum value
  169. | *[in]* **maxVal** maximum value
  170. .. c:function:: void glm_ivec2_abs(ivec2 v, ivec2 dest)
  171. absolute value of each vector item
  172. Parameters:
  173. | *[in]* **v** vector
  174. | *[out]* **dest** destination vector