gl-matrix.d.ts 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291
  1. // Type definitions for gl-matrix 2.3.1
  2. // Project: http://glmatrix.net/
  3. // Definitions by: chuntaro <https://github.com/chuntaro/>
  4. // Definitions: https://github.com/chuntaro/gl-matrix.d.ts
  5. declare module "gl-matrix" {
  6. interface glMatrix {
  7. EPSILON: number;
  8. ARRAY_TYPE: number[];
  9. RANDOM: () => number;
  10. setMatrixArrayType<T>(type: T): void;
  11. toRadian(a: number): number;
  12. }
  13. export var glMatrix: glMatrix;
  14. export interface vec2 {
  15. create(): number[];
  16. clone(a: number[]): number[];
  17. fromValues(x: number, y: number): number[];
  18. copy(out: number[], a: number[]): number[];
  19. set(out: number[], x: number, y: number): number[];
  20. add(out: number[], a: number[], b: number[]): number[];
  21. subtract(out: number[], a: number[], b: number[]): number[];
  22. sub(out: number[], a: number[], b: number[]): number[];
  23. multiply(out: number[], a: number[], b: number[]): number[];
  24. mul(out: number[], a: number[], b: number[]): number[];
  25. divide(out: number[], a: number[], b: number[]): number[];
  26. div(out: number[], a: number[], b: number[]): number[];
  27. min(out: number[], a: number[], b: number[]): number[];
  28. max(out: number[], a: number[], b: number[]): number[];
  29. scale(out: number[], a: number[], b: number): number[];
  30. scaleAndAdd(out: number[], a: number[], b: number[], scale: number): number[];
  31. distance(a: number[], b: number[]): number;
  32. dist(a: number[], b: number[]): number;
  33. squaredDistance(a: number[], b: number[]): number;
  34. sqrDist(a: number[], b: number[]): number;
  35. length(a: number[]): number;
  36. len(a: number[]): number;
  37. squaredLength(a: number[]): number;
  38. sqrLen(a: number[]): number;
  39. negate(out: number[], a: number[]): number[];
  40. inverse(out: number[], a: number[]): number[];
  41. normalize(out: number[], a: number[]): number[];
  42. dot(a: number[], b: number[]): number;
  43. cross(out: number[], a: number[], b: number[]): number[];
  44. lerp(out: number[], a: number[], b: number[], t: number): number[];
  45. random(out: number[], scale: number): number[];
  46. transformMat2(out: number[], a: number[], m: number[]): number[];
  47. transformMat2d(out: number[], a: number[], m: number[]): number[];
  48. transformMat3(out: number[], a: number[], m: number[]): number[];
  49. transformMat4(out: number[], a: number[], m: number[]): number[];
  50. forEach<T>(a: number[][], stride: number, offset: number, count: number, fn: (a: number[], b: number[], arg: T) => void, arg: T): number[][];
  51. str(a: number[]): string;
  52. }
  53. export var vec2: vec2;
  54. interface vec3 {
  55. create(): number[];
  56. clone(a: number[]): number[];
  57. fromValues(x: number, y: number, z: number): number[];
  58. copy(out: number[], a: number[]): number[];
  59. set(out: number[], x: number, y: number, z: number): number[];
  60. add(out: number[], a: number[], b: number[]): number[];
  61. subtract(out: number[], a: number[], b: number[]): number[];
  62. sub(out: number[], a: number[], b: number[]): number[];
  63. multiply(out: number[], a: number[], b: number[]): number[];
  64. mul(out: number[], a: number[], b: number[]): number[];
  65. divide(out: number[], a: number[], b: number[]): number[];
  66. div(out: number[], a: number[], b: number[]): number[];
  67. min(out: number[], a: number[], b: number[]): number[];
  68. max(out: number[], a: number[], b: number[]): number[];
  69. scale(out: number[], a: number[], b: number): number[];
  70. scaleAndAdd(out: number[], a: number[], b: number[], scale: number): number[];
  71. distance(a: number[], b: number[]): number;
  72. dist(a: number[], b: number[]): number;
  73. squaredDistance(a: number[], b: number[]): number;
  74. sqrDist(a: number[], b: number[]): number;
  75. length(a: number[]): number;
  76. len(a: number[]): number;
  77. squaredLength(a: number[]): number;
  78. sqrLen(a: number[]): number;
  79. negate(out: number[], a: number[]): number[];
  80. inverse(out: number[], a: number[]): number[];
  81. normalize(out: number[], a: number[]): number[];
  82. dot(a: number[], b: number[]): number;
  83. cross(out: number[], a: number[], b: number[]): number[];
  84. lerp(out: number[], a: number[], b: number[], t: number): number[];
  85. hermite(out: number[], a: number[], b: number[], c: number[], d: number[], t: number): number[];
  86. bezier(out: number[], a: number[], b: number[], c: number[], d: number[], t: number): number[];
  87. random(out: number[], scale: number): number[];
  88. transformMat4(out: number[], a: number[], m: number[]): number[];
  89. transformMat3(out: number[], a: number[], m: number[]): number[];
  90. transformQuat(out: number[], a: number[], q: number[]): number[];
  91. rotateX(out: number[], a: number[], b: number[], c: number): number[];
  92. rotateY(out: number[], a: number[], b: number[], c: number): number[];
  93. rotateZ(out: number[], a: number[], b: number[], c: number): number[];
  94. forEach<T>(a: number[][], stride: number, offset: number, count: number, fn: (a: number[], b: number[], arg: T) => void, arg: T): number[][];
  95. angle(a: number[], b: number[]): number;
  96. str(a: number[]): string;
  97. }
  98. export var vec3: vec3;
  99. interface vec4 {
  100. create(): number[];
  101. clone(a: number[]): number[];
  102. fromValues(x: number, y: number, z: number, w: number): number[];
  103. copy(out: number[], a: number[]): number[];
  104. set(out: number[], x: number, y: number, z: number, w: number): number[];
  105. add(out: number[], a: number[], b: number[]): number[];
  106. subtract(out: number[], a: number[], b: number[]): number[];
  107. sub(out: number[], a: number[], b: number[]): number[];
  108. multiply(out: number[], a: number[], b: number[]): number[];
  109. mul(out: number[], a: number[], b: number[]): number[];
  110. divide(out: number[], a: number[], b: number[]): number[];
  111. div(out: number[], a: number[], b: number[]): number[];
  112. min(out: number[], a: number[], b: number[]): number[];
  113. max(out: number[], a: number[], b: number[]): number[];
  114. scale(out: number[], a: number[], b: number): number[];
  115. scaleAndAdd(out: number[], a: number[], b: number[], scale: number): number[];
  116. distance(a: number[], b: number[]): number;
  117. dist(a: number[], b: number[]): number;
  118. squaredDistance(a: number[], b: number[]): number;
  119. sqrDist(a: number[], b: number[]): number;
  120. length(a: number[]): number;
  121. len(a: number[]): number;
  122. squaredLength(a: number[]): number;
  123. sqrLen(a: number[]): number;
  124. negate(out: number[], a: number[]): number[];
  125. inverse(out: number[], a: number[]): number[];
  126. normalize(out: number[], a: number[]): number[];
  127. dot(a: number[], b: number[]): number;
  128. lerp(out: number[], a: number[], b: number[], t: number): number[];
  129. random(out: number[], scale: number): number[];
  130. transformMat4(out: number[], a: number[], m: number[]): number[];
  131. transformQuat(out: number[], a: number[], q: number[]): number[];
  132. forEach<T>(a: number[][], stride: number, offset: number, count: number, fn: (a: number[], b: number[], arg: T) => void, arg: T): number[][];
  133. str(a: number[]): string;
  134. }
  135. export var vec4: vec4;
  136. interface mat2 {
  137. create(): number[];
  138. clone(a: number[]): number[];
  139. copy(out: number[], a: number[]): number[];
  140. identity(out: number[]): number[];
  141. transpose(out: number[], a: number[]): number[];
  142. invert(out: number[], a: number[]): number[];
  143. adjoint(out: number[], a: number[]): number[];
  144. determinant(a: number[]): number;
  145. multiply(out: number[], a: number[], b: number[]): number[];
  146. mul(out: number[], a: number[], b: number[]): number[];
  147. rotate(out: number[], a: number[], rad: number): number[];
  148. scale(out: number[], a: number[], v: number[]): number[];
  149. fromRotation(out: number[], rad: number): number[];
  150. fromScaling(out: number[], v: number[]): number[];
  151. str(a: number[]): string;
  152. frob(a: number[]): number;
  153. LDU(L: number[], D: number[], U: number[], a: number[]): number[][];
  154. }
  155. export var mat2: mat2;
  156. interface mat2d {
  157. create(): number[];
  158. clone(a: number[]): number[];
  159. copy(out: number[], a: number[]): number[];
  160. identity(out: number[]): number[];
  161. invert(out: number[], a: number[]): number[];
  162. determinant(a: number[]): number;
  163. multiply(out: number[], a: number[], b: number[]): number[];
  164. mul(out: number[], a: number[], b: number[]): number[];
  165. rotate(out: number[], a: number[], rad: number): number[];
  166. scale(out: number[], a: number[], v: number[]): number[];
  167. translate(out: number[], a: number[], v: number[]): number[];
  168. fromRotation(out: number[], rad: number): number[];
  169. fromScaling(out: number[], v: number[]): number[];
  170. fromTranslation(out: number[], v: number[]): number[];
  171. str(a: number[]): string;
  172. frob(a: number[]): number;
  173. }
  174. export var mat2d: mat2d;
  175. interface mat3 {
  176. create(): number[];
  177. fromMat4(out: number[], a: number[]): number[];
  178. clone(a: number[]): number[];
  179. copy(out: number[], a: number[]): number[];
  180. identity(out: number[]): number[];
  181. transpose(out: number[], a: number[]): number[];
  182. invert(out: number[], a: number[]): number[];
  183. adjoint(out: number[], a: number[]): number[];
  184. determinant(a: number[]): number;
  185. multiply(out: number[], a: number[], b: number[]): number[];
  186. mul(out: number[], a: number[], b: number[]): number[];
  187. translate(out: number[], a: number[], v: number[]): number[];
  188. rotate(out: number[], a: number[], rad: number): number[];
  189. scale(out: number[], a: number[], v: number[]): number[];
  190. fromTranslation(out: number[], v: number[]): number[];
  191. fromRotation(out: number[], rad: number): number[];
  192. fromScaling(out: number[], v: number[]): number[];
  193. fromMat2d(out: number[], a: number[]): number[];
  194. fromQuat(out: number[], q: number[]): number[];
  195. normalFromMat4(out: number[], a: number[]): number[];
  196. str(a: number[]): string;
  197. frob(a: number[]): number;
  198. }
  199. export var mat3: mat3;
  200. interface mat4 {
  201. create(): number[];
  202. clone(a: number[]): number[];
  203. copy(out: number[], a: number[]): number[];
  204. identity(out: number[]): number[];
  205. transpose(out: number[], a: number[]): number[];
  206. invert(out: number[], a: number[]): number[];
  207. adjoint(out: number[], a: number[]): number[];
  208. determinant(a: number[]): number;
  209. multiply(out: number[], a: number[], b: number[]): number[];
  210. mul(out: number[], a: number[], b: number[]): number[];
  211. translate(out: number[], a: number[], v: number[]): number[];
  212. scale(out: number[], a: number[], v: number[]): number[];
  213. rotate(out: number[], a: number[], rad: number, axis: number[]): number[];
  214. rotateX(out: number[], a: number[], rad: number): number[];
  215. rotateY(out: number[], a: number[], rad: number): number[];
  216. rotateZ(out: number[], a: number[], rad: number): number[];
  217. fromTranslation(out: number[], v: number[]): number[];
  218. fromScaling(out: number[], v: number[]): number[];
  219. fromRotation(out: number[], rad: number, axis: number[]): number[];
  220. fromXRotation(out: number[], rad: number): number[];
  221. fromYRotation(out: number[], rad: number): number[];
  222. fromZRotation(out: number[], rad: number): number[];
  223. fromRotationTranslation(out: number[], q: number[], v: number[]): number[];
  224. fromRotationTranslationScale(out: number[], q: number[], v: number[], s: number[]): number[];
  225. fromRotationTranslationScaleOrigin(out: number[], q: number[], v: number[], s: number[], o: number[]): number[];
  226. fromQuat(out: number[], q: number[]): number[];
  227. frustum(out: number[], left: number, right: number, bottom: number, top: number, near: number, far: number): number[];
  228. perspective(out: number[], fovy: number, aspect: number, near: number, far: number): number[];
  229. perspectiveFromFieldOfView(out: number[], fov: number, near: number, far: number): number[];
  230. ortho(out: number[], left: number, right: number, bottom: number, top: number, near: number, far: number): number[];
  231. lookAt(out: number[], eye: number[], center: number[], up: number[]): number[];
  232. str(a: number[]): string;
  233. frob(a: number[]): number;
  234. }
  235. export var mat4: mat4;
  236. interface quat {
  237. create(): number[];
  238. rotationTo(out: number[], a: number[], b: number[]): number[];
  239. setAxes(out: number[], view: number[], right: number[], up: number[]): number[];
  240. clone(a: number[]): number[];
  241. fromValues(x: number, y: number, z: number, w: number): number[];
  242. copy(out: number[], a: number[]): number[];
  243. set(out: number[], x: number, y: number, z: number, w: number): number[];
  244. identity(out: number[]): number[];
  245. setAxisAngle(out: number[], axis: number[], rad: number): number[];
  246. add(out: number[], a: number[], b: number[]): number[];
  247. multiply(out: number[], a: number[], b: number[]): number[];
  248. mul(out: number[], a: number[], b: number[]): number[];
  249. scale(out: number[], a: number[], b: number): number[];
  250. rotateX(out: number[], a: number[], rad: number): number[];
  251. rotateY(out: number[], a: number[], rad: number): number[];
  252. rotateZ(out: number[], a: number[], rad: number): number[];
  253. calculateW(out: number[], a: number[]): number[];
  254. dot(a: number[], b: number[]): number;
  255. lerp(out: number[], a: number[], b: number[], t: number): number[];
  256. slerp(out: number[], a: number[], b: number[], t: number): number[];
  257. sqlerp(out: number[], a: number[], b: number[], c: number[], d: number[], t: number): number[];
  258. invert(out: number[], a: number[]): number[];
  259. conjugate(out: number[], a: number[]): number[];
  260. length(a: number[]): number;
  261. len(a: number[]): number;
  262. squaredLength(a: number[]): number;
  263. sqrLen(a: number[]): number;
  264. normalize(out: number[], a: number[]): number[];
  265. fromMat3(out: number[], m: number[]): number[];
  266. str(a: number[]): string;
  267. }
  268. export var quat: quat;
  269. }