@asciiz/atoolkit 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (343) hide show
  1. package/LICENSE +21 -0
  2. package/ReadMe.md +198 -0
  3. package/dist/acircuit/chip.d.ts +46 -0
  4. package/dist/acircuit/chip.d.ts.map +1 -0
  5. package/dist/acircuit/chip.js +104 -0
  6. package/dist/acircuit/chip.js.map +1 -0
  7. package/dist/acircuit/circuit.d.ts +86 -0
  8. package/dist/acircuit/circuit.d.ts.map +1 -0
  9. package/dist/acircuit/circuit.js +606 -0
  10. package/dist/acircuit/circuit.js.map +1 -0
  11. package/dist/acircuit/composite.d.ts +32 -0
  12. package/dist/acircuit/composite.d.ts.map +1 -0
  13. package/dist/acircuit/composite.js +88 -0
  14. package/dist/acircuit/composite.js.map +1 -0
  15. package/dist/acircuit/index.d.ts +7 -0
  16. package/dist/acircuit/index.d.ts.map +1 -0
  17. package/dist/acircuit/index.js +6 -0
  18. package/dist/acircuit/index.js.map +1 -0
  19. package/dist/acircuit/socket.d.ts +20 -0
  20. package/dist/acircuit/socket.d.ts.map +1 -0
  21. package/dist/acircuit/socket.js +23 -0
  22. package/dist/acircuit/socket.js.map +1 -0
  23. package/dist/acircuit/types.d.ts +94 -0
  24. package/dist/acircuit/types.d.ts.map +1 -0
  25. package/dist/acircuit/types.js +2 -0
  26. package/dist/acircuit/types.js.map +1 -0
  27. package/dist/acircuit/wire.d.ts +26 -0
  28. package/dist/acircuit/wire.d.ts.map +1 -0
  29. package/dist/acircuit/wire.js +23 -0
  30. package/dist/acircuit/wire.js.map +1 -0
  31. package/dist/adiag/bus.d.ts +65 -0
  32. package/dist/adiag/bus.d.ts.map +1 -0
  33. package/dist/adiag/bus.js +225 -0
  34. package/dist/adiag/bus.js.map +1 -0
  35. package/dist/adiag/index.d.ts +3 -0
  36. package/dist/adiag/index.d.ts.map +1 -0
  37. package/dist/adiag/index.js +2 -0
  38. package/dist/adiag/index.js.map +1 -0
  39. package/dist/aecs/ComponentSet.d.ts +33 -0
  40. package/dist/aecs/ComponentSet.d.ts.map +1 -0
  41. package/dist/aecs/ComponentSet.js +127 -0
  42. package/dist/aecs/ComponentSet.js.map +1 -0
  43. package/dist/aecs/Entity.d.ts +43 -0
  44. package/dist/aecs/Entity.d.ts.map +1 -0
  45. package/dist/aecs/Entity.js +82 -0
  46. package/dist/aecs/Entity.js.map +1 -0
  47. package/dist/aecs/FloatSet.d.ts +34 -0
  48. package/dist/aecs/FloatSet.d.ts.map +1 -0
  49. package/dist/aecs/FloatSet.js +147 -0
  50. package/dist/aecs/FloatSet.js.map +1 -0
  51. package/dist/aecs/Query.d.ts +90 -0
  52. package/dist/aecs/Query.d.ts.map +1 -0
  53. package/dist/aecs/Query.js +304 -0
  54. package/dist/aecs/Query.js.map +1 -0
  55. package/dist/aecs/index.d.ts +6 -0
  56. package/dist/aecs/index.d.ts.map +1 -0
  57. package/dist/aecs/index.js +6 -0
  58. package/dist/aecs/index.js.map +1 -0
  59. package/dist/aecs/join.d.ts +2 -0
  60. package/dist/aecs/join.d.ts.map +1 -0
  61. package/dist/aecs/join.js +2 -0
  62. package/dist/aecs/join.js.map +1 -0
  63. package/dist/alm/constants.d.ts +11 -0
  64. package/dist/alm/constants.d.ts.map +1 -0
  65. package/dist/alm/constants.js +17 -0
  66. package/dist/alm/constants.js.map +1 -0
  67. package/dist/alm/index.d.ts +9 -0
  68. package/dist/alm/index.d.ts.map +1 -0
  69. package/dist/alm/index.js +12 -0
  70. package/dist/alm/index.js.map +1 -0
  71. package/dist/alm/mat3.d.ts +63 -0
  72. package/dist/alm/mat3.d.ts.map +1 -0
  73. package/dist/alm/mat3.js +393 -0
  74. package/dist/alm/mat3.js.map +1 -0
  75. package/dist/alm/mat4.d.ts +157 -0
  76. package/dist/alm/mat4.d.ts.map +1 -0
  77. package/dist/alm/mat4.js +1448 -0
  78. package/dist/alm/mat4.js.map +1 -0
  79. package/dist/alm/quat.d.ts +89 -0
  80. package/dist/alm/quat.d.ts.map +1 -0
  81. package/dist/alm/quat.js +543 -0
  82. package/dist/alm/quat.js.map +1 -0
  83. package/dist/alm/spatial.d.ts +102 -0
  84. package/dist/alm/spatial.d.ts.map +1 -0
  85. package/dist/alm/spatial.js +389 -0
  86. package/dist/alm/spatial.js.map +1 -0
  87. package/dist/alm/vec2.d.ts +97 -0
  88. package/dist/alm/vec2.d.ts.map +1 -0
  89. package/dist/alm/vec2.js +369 -0
  90. package/dist/alm/vec2.js.map +1 -0
  91. package/dist/alm/vec3.d.ts +117 -0
  92. package/dist/alm/vec3.d.ts.map +1 -0
  93. package/dist/alm/vec3.js +547 -0
  94. package/dist/alm/vec3.js.map +1 -0
  95. package/dist/alm/vec4.d.ts +95 -0
  96. package/dist/alm/vec4.d.ts.map +1 -0
  97. package/dist/alm/vec4.js +452 -0
  98. package/dist/alm/vec4.js.map +1 -0
  99. package/dist/atempo/cadence.d.ts +58 -0
  100. package/dist/atempo/cadence.d.ts.map +1 -0
  101. package/dist/atempo/cadence.js +110 -0
  102. package/dist/atempo/cadence.js.map +1 -0
  103. package/dist/atempo/clip.d.ts +37 -0
  104. package/dist/atempo/clip.d.ts.map +1 -0
  105. package/dist/atempo/clip.js +92 -0
  106. package/dist/atempo/clip.js.map +1 -0
  107. package/dist/atempo/curve.d.ts +6 -0
  108. package/dist/atempo/curve.d.ts.map +1 -0
  109. package/dist/atempo/curve.js +2 -0
  110. package/dist/atempo/curve.js.map +1 -0
  111. package/dist/atempo/curves/bezier.d.ts +7 -0
  112. package/dist/atempo/curves/bezier.d.ts.map +1 -0
  113. package/dist/atempo/curves/bezier.js +46 -0
  114. package/dist/atempo/curves/bezier.js.map +1 -0
  115. package/dist/atempo/curves/bounce.d.ts +6 -0
  116. package/dist/atempo/curves/bounce.d.ts.map +1 -0
  117. package/dist/atempo/curves/bounce.js +22 -0
  118. package/dist/atempo/curves/bounce.js.map +1 -0
  119. package/dist/atempo/curves/cubic.d.ts +14 -0
  120. package/dist/atempo/curves/cubic.d.ts.map +1 -0
  121. package/dist/atempo/curves/cubic.js +22 -0
  122. package/dist/atempo/curves/cubic.js.map +1 -0
  123. package/dist/atempo/curves/elastic.d.ts +6 -0
  124. package/dist/atempo/curves/elastic.d.ts.map +1 -0
  125. package/dist/atempo/curves/elastic.js +12 -0
  126. package/dist/atempo/curves/elastic.js.map +1 -0
  127. package/dist/atempo/curves/expo.d.ts +14 -0
  128. package/dist/atempo/curves/expo.d.ts.map +1 -0
  129. package/dist/atempo/curves/expo.js +26 -0
  130. package/dist/atempo/curves/expo.js.map +1 -0
  131. package/dist/atempo/curves/holdSnap.d.ts +6 -0
  132. package/dist/atempo/curves/holdSnap.d.ts.map +1 -0
  133. package/dist/atempo/curves/holdSnap.js +15 -0
  134. package/dist/atempo/curves/holdSnap.js.map +1 -0
  135. package/dist/atempo/curves/index.d.ts +14 -0
  136. package/dist/atempo/curves/index.d.ts.map +1 -0
  137. package/dist/atempo/curves/index.js +14 -0
  138. package/dist/atempo/curves/index.js.map +1 -0
  139. package/dist/atempo/curves/linear.d.ts +6 -0
  140. package/dist/atempo/curves/linear.d.ts.map +1 -0
  141. package/dist/atempo/curves/linear.js +5 -0
  142. package/dist/atempo/curves/linear.js.map +1 -0
  143. package/dist/atempo/curves/overshoot.d.ts +6 -0
  144. package/dist/atempo/curves/overshoot.d.ts.map +1 -0
  145. package/dist/atempo/curves/overshoot.js +16 -0
  146. package/dist/atempo/curves/overshoot.js.map +1 -0
  147. package/dist/atempo/curves/quad.d.ts +14 -0
  148. package/dist/atempo/curves/quad.d.ts.map +1 -0
  149. package/dist/atempo/curves/quad.js +22 -0
  150. package/dist/atempo/curves/quad.js.map +1 -0
  151. package/dist/atempo/curves/step.d.ts +6 -0
  152. package/dist/atempo/curves/step.d.ts.map +1 -0
  153. package/dist/atempo/curves/step.js +11 -0
  154. package/dist/atempo/curves/step.js.map +1 -0
  155. package/dist/atempo/index.d.ts +17 -0
  156. package/dist/atempo/index.d.ts.map +1 -0
  157. package/dist/atempo/index.js +18 -0
  158. package/dist/atempo/index.js.map +1 -0
  159. package/dist/atempo/phase.d.ts +66 -0
  160. package/dist/atempo/phase.d.ts.map +1 -0
  161. package/dist/atempo/phase.js +121 -0
  162. package/dist/atempo/phase.js.map +1 -0
  163. package/dist/atempo/spring.d.ts +20 -0
  164. package/dist/atempo/spring.d.ts.map +1 -0
  165. package/dist/atempo/spring.js +71 -0
  166. package/dist/atempo/spring.js.map +1 -0
  167. package/dist/atempo/track.d.ts +69 -0
  168. package/dist/atempo/track.d.ts.map +1 -0
  169. package/dist/atempo/track.js +184 -0
  170. package/dist/atempo/track.js.map +1 -0
  171. package/dist/atempo/tracks/color.d.ts +20 -0
  172. package/dist/atempo/tracks/color.d.ts.map +1 -0
  173. package/dist/atempo/tracks/color.js +52 -0
  174. package/dist/atempo/tracks/color.js.map +1 -0
  175. package/dist/atempo/tracks/float.d.ts +9 -0
  176. package/dist/atempo/tracks/float.d.ts.map +1 -0
  177. package/dist/atempo/tracks/float.js +13 -0
  178. package/dist/atempo/tracks/float.js.map +1 -0
  179. package/dist/atempo/tracks/index.d.ts +8 -0
  180. package/dist/atempo/tracks/index.d.ts.map +1 -0
  181. package/dist/atempo/tracks/index.js +8 -0
  182. package/dist/atempo/tracks/index.js.map +1 -0
  183. package/dist/atempo/tracks/quat.d.ts +16 -0
  184. package/dist/atempo/tracks/quat.d.ts.map +1 -0
  185. package/dist/atempo/tracks/quat.js +72 -0
  186. package/dist/atempo/tracks/quat.js.map +1 -0
  187. package/dist/atempo/tracks/vec.d.ts +11 -0
  188. package/dist/atempo/tracks/vec.d.ts.map +1 -0
  189. package/dist/atempo/tracks/vec.js +27 -0
  190. package/dist/atempo/tracks/vec.js.map +1 -0
  191. package/dist/awasm/abi/index.d.ts +4 -0
  192. package/dist/awasm/abi/index.d.ts.map +1 -0
  193. package/dist/awasm/abi/index.js +4 -0
  194. package/dist/awasm/abi/index.js.map +1 -0
  195. package/dist/awasm/abi/layout.d.ts +40 -0
  196. package/dist/awasm/abi/layout.d.ts.map +1 -0
  197. package/dist/awasm/abi/layout.js +100 -0
  198. package/dist/awasm/abi/layout.js.map +1 -0
  199. package/dist/awasm/abi/slice.d.ts +28 -0
  200. package/dist/awasm/abi/slice.d.ts.map +1 -0
  201. package/dist/awasm/abi/slice.js +68 -0
  202. package/dist/awasm/abi/slice.js.map +1 -0
  203. package/dist/awasm/abi/string-buffer.d.ts +23 -0
  204. package/dist/awasm/abi/string-buffer.d.ts.map +1 -0
  205. package/dist/awasm/abi/string-buffer.js +52 -0
  206. package/dist/awasm/abi/string-buffer.js.map +1 -0
  207. package/dist/awasm/index.d.ts +5 -0
  208. package/dist/awasm/index.d.ts.map +1 -0
  209. package/dist/awasm/index.js +8 -0
  210. package/dist/awasm/index.js.map +1 -0
  211. package/dist/awasm/memory/block-pool.d.ts +31 -0
  212. package/dist/awasm/memory/block-pool.d.ts.map +1 -0
  213. package/dist/awasm/memory/block-pool.js +98 -0
  214. package/dist/awasm/memory/block-pool.js.map +1 -0
  215. package/dist/awasm/memory/index.d.ts +5 -0
  216. package/dist/awasm/memory/index.d.ts.map +1 -0
  217. package/dist/awasm/memory/index.js +5 -0
  218. package/dist/awasm/memory/index.js.map +1 -0
  219. package/dist/awasm/memory/linear-arena.d.ts +36 -0
  220. package/dist/awasm/memory/linear-arena.d.ts.map +1 -0
  221. package/dist/awasm/memory/linear-arena.js +94 -0
  222. package/dist/awasm/memory/linear-arena.js.map +1 -0
  223. package/dist/awasm/memory/memory-view.d.ts +51 -0
  224. package/dist/awasm/memory/memory-view.d.ts.map +1 -0
  225. package/dist/awasm/memory/memory-view.js +110 -0
  226. package/dist/awasm/memory/memory-view.js.map +1 -0
  227. package/dist/awasm/memory/wasm-memory.d.ts +40 -0
  228. package/dist/awasm/memory/wasm-memory.d.ts.map +1 -0
  229. package/dist/awasm/memory/wasm-memory.js +88 -0
  230. package/dist/awasm/memory/wasm-memory.js.map +1 -0
  231. package/dist/awasm/runtime/host-bridge.d.ts +30 -0
  232. package/dist/awasm/runtime/host-bridge.d.ts.map +1 -0
  233. package/dist/awasm/runtime/host-bridge.js +57 -0
  234. package/dist/awasm/runtime/host-bridge.js.map +1 -0
  235. package/dist/awasm/runtime/index.d.ts +5 -0
  236. package/dist/awasm/runtime/index.d.ts.map +1 -0
  237. package/dist/awasm/runtime/index.js +5 -0
  238. package/dist/awasm/runtime/index.js.map +1 -0
  239. package/dist/awasm/runtime/module-inspector.d.ts +32 -0
  240. package/dist/awasm/runtime/module-inspector.d.ts.map +1 -0
  241. package/dist/awasm/runtime/module-inspector.js +43 -0
  242. package/dist/awasm/runtime/module-inspector.js.map +1 -0
  243. package/dist/awasm/runtime/module-loader.d.ts +17 -0
  244. package/dist/awasm/runtime/module-loader.d.ts.map +1 -0
  245. package/dist/awasm/runtime/module-loader.js +99 -0
  246. package/dist/awasm/runtime/module-loader.js.map +1 -0
  247. package/dist/awasm/runtime/wasm-instance.d.ts +25 -0
  248. package/dist/awasm/runtime/wasm-instance.d.ts.map +1 -0
  249. package/dist/awasm/runtime/wasm-instance.js +60 -0
  250. package/dist/awasm/runtime/wasm-instance.js.map +1 -0
  251. package/dist/awasm/thread/atomic-queue.d.ts +33 -0
  252. package/dist/awasm/thread/atomic-queue.d.ts.map +1 -0
  253. package/dist/awasm/thread/atomic-queue.js +78 -0
  254. package/dist/awasm/thread/atomic-queue.js.map +1 -0
  255. package/dist/awasm/thread/index.d.ts +4 -0
  256. package/dist/awasm/thread/index.d.ts.map +1 -0
  257. package/dist/awasm/thread/index.js +4 -0
  258. package/dist/awasm/thread/index.js.map +1 -0
  259. package/dist/awasm/thread/shared-memory.d.ts +38 -0
  260. package/dist/awasm/thread/shared-memory.d.ts.map +1 -0
  261. package/dist/awasm/thread/shared-memory.js +74 -0
  262. package/dist/awasm/thread/shared-memory.js.map +1 -0
  263. package/dist/awasm/thread/worker-pool.d.ts +43 -0
  264. package/dist/awasm/thread/worker-pool.d.ts.map +1 -0
  265. package/dist/awasm/thread/worker-pool.js +118 -0
  266. package/dist/awasm/thread/worker-pool.js.map +1 -0
  267. package/dist/awgpu/binding.d.ts +108 -0
  268. package/dist/awgpu/binding.d.ts.map +1 -0
  269. package/dist/awgpu/binding.js +251 -0
  270. package/dist/awgpu/binding.js.map +1 -0
  271. package/dist/awgpu/device.d.ts +68 -0
  272. package/dist/awgpu/device.d.ts.map +1 -0
  273. package/dist/awgpu/device.js +150 -0
  274. package/dist/awgpu/device.js.map +1 -0
  275. package/dist/awgpu/graph.d.ts +77 -0
  276. package/dist/awgpu/graph.d.ts.map +1 -0
  277. package/dist/awgpu/graph.js +288 -0
  278. package/dist/awgpu/graph.js.map +1 -0
  279. package/dist/awgpu/index.d.ts +10 -0
  280. package/dist/awgpu/index.d.ts.map +1 -0
  281. package/dist/awgpu/index.js +19 -0
  282. package/dist/awgpu/index.js.map +1 -0
  283. package/dist/awgpu/memory.d.ts +231 -0
  284. package/dist/awgpu/memory.d.ts.map +1 -0
  285. package/dist/awgpu/memory.js +547 -0
  286. package/dist/awgpu/memory.js.map +1 -0
  287. package/dist/awgpu/pipeline.d.ts +114 -0
  288. package/dist/awgpu/pipeline.d.ts.map +1 -0
  289. package/dist/awgpu/pipeline.js +335 -0
  290. package/dist/awgpu/pipeline.js.map +1 -0
  291. package/dist/awgpu/sequence.d.ts +83 -0
  292. package/dist/awgpu/sequence.d.ts.map +1 -0
  293. package/dist/awgpu/sequence.js +273 -0
  294. package/dist/awgpu/sequence.js.map +1 -0
  295. package/dist/awgpu/state.d.ts +27 -0
  296. package/dist/awgpu/state.d.ts.map +1 -0
  297. package/dist/awgpu/state.js +43 -0
  298. package/dist/awgpu/state.js.map +1 -0
  299. package/dist/awgpu/stream.d.ts +57 -0
  300. package/dist/awgpu/stream.d.ts.map +1 -0
  301. package/dist/awgpu/stream.js +139 -0
  302. package/dist/awgpu/stream.js.map +1 -0
  303. package/dist/awgpu/target.d.ts +98 -0
  304. package/dist/awgpu/target.d.ts.map +1 -0
  305. package/dist/awgpu/target.js +357 -0
  306. package/dist/awgpu/target.js.map +1 -0
  307. package/dist/awgpu_old/buffer.d.ts +78 -0
  308. package/dist/awgpu_old/buffer.d.ts.map +1 -0
  309. package/dist/awgpu_old/buffer.js +220 -0
  310. package/dist/awgpu_old/buffer.js.map +1 -0
  311. package/dist/awgpu_old/device.d.ts +69 -0
  312. package/dist/awgpu_old/device.d.ts.map +1 -0
  313. package/dist/awgpu_old/device.js +121 -0
  314. package/dist/awgpu_old/device.js.map +1 -0
  315. package/dist/awgpu_old/frame.d.ts +17 -0
  316. package/dist/awgpu_old/frame.d.ts.map +1 -0
  317. package/dist/awgpu_old/frame.js +29 -0
  318. package/dist/awgpu_old/frame.js.map +1 -0
  319. package/dist/awgpu_old/index.d.ts +8 -0
  320. package/dist/awgpu_old/index.d.ts.map +1 -0
  321. package/dist/awgpu_old/index.js +18 -0
  322. package/dist/awgpu_old/index.js.map +1 -0
  323. package/dist/awgpu_old/layout.d.ts +70 -0
  324. package/dist/awgpu_old/layout.d.ts.map +1 -0
  325. package/dist/awgpu_old/layout.js +137 -0
  326. package/dist/awgpu_old/layout.js.map +1 -0
  327. package/dist/awgpu_old/pass.d.ts +97 -0
  328. package/dist/awgpu_old/pass.d.ts.map +1 -0
  329. package/dist/awgpu_old/pass.js +302 -0
  330. package/dist/awgpu_old/pass.js.map +1 -0
  331. package/dist/awgpu_old/pipeline.d.ts +73 -0
  332. package/dist/awgpu_old/pipeline.d.ts.map +1 -0
  333. package/dist/awgpu_old/pipeline.js +226 -0
  334. package/dist/awgpu_old/pipeline.js.map +1 -0
  335. package/dist/awgpu_old/target.d.ts +186 -0
  336. package/dist/awgpu_old/target.d.ts.map +1 -0
  337. package/dist/awgpu_old/target.js +428 -0
  338. package/dist/awgpu_old/target.js.map +1 -0
  339. package/dist/index.d.ts +10 -0
  340. package/dist/index.d.ts.map +1 -0
  341. package/dist/index.js +10 -0
  342. package/dist/index.js.map +1 -0
  343. package/package.json +106 -0
@@ -0,0 +1,9 @@
1
+ export { EPSILON, DEG2RAD, RAD2DEG, TAU, PI_HALF, PI_QUARTER, PI_THIRD, clamp, lerp, approxEquals, } from "./constants.js";
2
+ export { Vec2 } from "./vec2.js";
3
+ export { Vec3 } from "./vec3.js";
4
+ export { Vec4 } from "./vec4.js";
5
+ export { Quat } from "./quat.js";
6
+ export { Mat3 } from "./mat3.js";
7
+ export { Mat4 } from "./mat4.js";
8
+ export { Ray, Plane, AABB, Frustum } from "./spatial.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../alm/index.ts"],"names":[],"mappings":"AACA,OAAO,EACH,OAAO,EACP,OAAO,EACP,OAAO,EACP,GAAG,EACH,OAAO,EACP,UAAU,EACV,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,YAAY,GACf,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,12 @@
1
+ // Constants & Scalar Math
2
+ export { EPSILON, DEG2RAD, RAD2DEG, TAU, PI_HALF, PI_QUARTER, PI_THIRD, clamp, lerp, approxEquals, } from "./constants.js";
3
+ // Vector & Matrix Classes
4
+ export { Vec2 } from "./vec2.js";
5
+ export { Vec3 } from "./vec3.js";
6
+ export { Vec4 } from "./vec4.js";
7
+ export { Quat } from "./quat.js";
8
+ export { Mat3 } from "./mat3.js";
9
+ export { Mat4 } from "./mat4.js";
10
+ // Spatial Primitives
11
+ export { Ray, Plane, AABB, Frustum } from "./spatial.js";
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../alm/index.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,OAAO,EACH,OAAO,EACP,OAAO,EACP,OAAO,EACP,GAAG,EACH,OAAO,EACP,UAAU,EACV,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,YAAY,GACf,MAAM,gBAAgB,CAAC;AAExB,0BAA0B;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,qBAAqB;AACrB,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,63 @@
1
+ import { Vec2 } from "./vec2.js";
2
+ import { Vec3 } from "./vec3.js";
3
+ /**
4
+ * 3x3 Matrix stored as column-major Float32Array[9].
5
+ *
6
+ * Index mapping:
7
+ * 0 3 6
8
+ * 1 4 7
9
+ * 2 5 8
10
+ */
11
+ export declare class _Mat3 extends Float32Array {
12
+ static get [Symbol.species](): Float32ArrayConstructor;
13
+ static readonly IDENTITY: Readonly<_Mat3>;
14
+ constructor();
15
+ constructor(elements: ArrayLike<number>);
16
+ constructor(buffer: ArrayBufferLike, byteOffset?: number);
17
+ static create(): _Mat3;
18
+ static identity(out?: _Mat3): _Mat3;
19
+ static view(buffer: ArrayBufferLike, byteOffset?: number): _Mat3;
20
+ static fromArray(array: ArrayLike<number>, offset?: number, out?: _Mat3): _Mat3;
21
+ identity(): this;
22
+ copy(src: ArrayLike<number>): this;
23
+ clone(): _Mat3;
24
+ mul(b: ArrayLike<number>, out?: _Mat3): _Mat3;
25
+ multiply(b: ArrayLike<number>, out?: _Mat3): _Mat3;
26
+ transpose(out?: _Mat3): _Mat3;
27
+ determinant(): number;
28
+ invert(out?: _Mat3): _Mat3 | null;
29
+ static fromMat4(m: ArrayLike<number>, out?: _Mat3): _Mat3;
30
+ /**
31
+ * Computes the 3x3 normal matrix (inverse transpose of the upper-left 3x3 of a 4x4 matrix).
32
+ * Essential for vertex normal transformation in shaders under non-uniform scaling.
33
+ */
34
+ static normalMatrix(m: ArrayLike<number>, out?: _Mat3): _Mat3 | null;
35
+ static fromQuat(q: ArrayLike<number>, out?: _Mat3): _Mat3;
36
+ static fromTranslation2D(v: ArrayLike<number>, out?: _Mat3): _Mat3;
37
+ static fromRotation2D(rad: number, out?: _Mat3): _Mat3;
38
+ static fromScaling2D(v: ArrayLike<number>, out?: _Mat3): _Mat3;
39
+ translate2D(v: ArrayLike<number>, out?: _Mat3): _Mat3;
40
+ rotate2D(rad: number, out?: _Mat3): _Mat3;
41
+ scale2D(v: ArrayLike<number>, out?: _Mat3): _Mat3;
42
+ transformVec2(v: ArrayLike<number>, out?: Vec2): Vec2;
43
+ transformVec3(v: ArrayLike<number>, out?: Vec3): Vec3;
44
+ equals(b: ArrayLike<number>, epsilon?: number): boolean;
45
+ exactEquals(b: ArrayLike<number>): boolean;
46
+ static mul(a: ArrayLike<number>, b: ArrayLike<number>, out?: _Mat3): _Mat3;
47
+ static transpose(a: ArrayLike<number>, out?: _Mat3): _Mat3;
48
+ static invert(a: ArrayLike<number>, out?: _Mat3): _Mat3 | null;
49
+ static equals(a: ArrayLike<number>, b: ArrayLike<number>, epsilon?: number): boolean;
50
+ static exactEquals(a: ArrayLike<number>, b: ArrayLike<number>): boolean;
51
+ }
52
+ export type Mat3 = _Mat3;
53
+ export interface Mat3Factory {
54
+ new (): Mat3;
55
+ new (elements: ArrayLike<number>): Mat3;
56
+ new (buffer: ArrayBufferLike, byteOffset?: number): Mat3;
57
+ (): Mat3;
58
+ (elements?: ArrayLike<number>): Mat3;
59
+ (buffer: ArrayBufferLike, byteOffset?: number): Mat3;
60
+ }
61
+ export type Mat3Constructor = typeof _Mat3 & Mat3Factory;
62
+ export declare const Mat3: Mat3Constructor;
63
+ //# sourceMappingURL=mat3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mat3.d.ts","sourceRoot":"","sources":["../../alm/mat3.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,393 @@
1
+ import { EPSILON } from "./constants.js";
2
+ import { Vec2 } from "./vec2.js";
3
+ import { Vec3 } from "./vec3.js";
4
+ /**
5
+ * 3x3 Matrix stored as column-major Float32Array[9].
6
+ *
7
+ * Index mapping:
8
+ * 0 3 6
9
+ * 1 4 7
10
+ * 2 5 8
11
+ */
12
+ export class _Mat3 extends Float32Array {
13
+ static get [Symbol.species]() {
14
+ return Float32Array;
15
+ }
16
+ static IDENTITY = new _Mat3([
17
+ 1, 0, 0,
18
+ 0, 1, 0,
19
+ 0, 0, 1,
20
+ ]);
21
+ constructor(a, b) {
22
+ if (a instanceof ArrayBuffer || (typeof SharedArrayBuffer !== "undefined" && a instanceof SharedArrayBuffer)) {
23
+ super(a, b ?? 0, 9);
24
+ }
25
+ else {
26
+ super(9);
27
+ if (a && "length" in a) {
28
+ const len = Math.min(a.length, 9);
29
+ for (let i = 0; i < len; i++) {
30
+ this[i] = a[i];
31
+ }
32
+ }
33
+ else {
34
+ this[0] = 1;
35
+ this[4] = 1;
36
+ this[8] = 1;
37
+ }
38
+ }
39
+ }
40
+ static create() {
41
+ return new _Mat3();
42
+ }
43
+ static identity(out) {
44
+ out ??= new _Mat3();
45
+ out[0] = 1;
46
+ out[1] = 0;
47
+ out[2] = 0;
48
+ out[3] = 0;
49
+ out[4] = 1;
50
+ out[5] = 0;
51
+ out[6] = 0;
52
+ out[7] = 0;
53
+ out[8] = 1;
54
+ return out;
55
+ }
56
+ static view(buffer, byteOffset = 0) {
57
+ return new _Mat3(buffer, byteOffset);
58
+ }
59
+ static fromArray(array, offset = 0, out) {
60
+ out ??= new _Mat3();
61
+ for (let i = 0; i < 9; i++) {
62
+ out[i] = array[offset + i];
63
+ }
64
+ return out;
65
+ }
66
+ identity() {
67
+ this[0] = 1;
68
+ this[1] = 0;
69
+ this[2] = 0;
70
+ this[3] = 0;
71
+ this[4] = 1;
72
+ this[5] = 0;
73
+ this[6] = 0;
74
+ this[7] = 0;
75
+ this[8] = 1;
76
+ return this;
77
+ }
78
+ copy(src) {
79
+ for (let i = 0; i < 9; i++) {
80
+ this[i] = src[i];
81
+ }
82
+ return this;
83
+ }
84
+ clone() {
85
+ return new _Mat3(this);
86
+ }
87
+ mul(b, out = this) {
88
+ const a00 = this[0], a01 = this[1], a02 = this[2];
89
+ const a10 = this[3], a11 = this[4], a12 = this[5];
90
+ const a20 = this[6], a21 = this[7], a22 = this[8];
91
+ const b00 = b[0], b01 = b[1], b02 = b[2];
92
+ const b10 = b[3], b11 = b[4], b12 = b[5];
93
+ const b20 = b[6], b21 = b[7], b22 = b[8];
94
+ out[0] = b00 * a00 + b01 * a10 + b02 * a20;
95
+ out[1] = b00 * a01 + b01 * a11 + b02 * a21;
96
+ out[2] = b00 * a02 + b01 * a12 + b02 * a22;
97
+ out[3] = b10 * a00 + b11 * a10 + b12 * a20;
98
+ out[4] = b10 * a01 + b11 * a11 + b12 * a21;
99
+ out[5] = b10 * a02 + b11 * a12 + b12 * a22;
100
+ out[6] = b20 * a00 + b21 * a10 + b22 * a20;
101
+ out[7] = b20 * a01 + b21 * a11 + b22 * a21;
102
+ out[8] = b20 * a02 + b21 * a12 + b22 * a22;
103
+ return out;
104
+ }
105
+ multiply(b, out = this) {
106
+ return this.mul(b, out);
107
+ }
108
+ transpose(out = this) {
109
+ if (out === this) {
110
+ const a01 = this[1], a02 = this[2], a12 = this[5];
111
+ this[1] = this[3];
112
+ this[2] = this[6];
113
+ this[3] = a01;
114
+ this[5] = this[7];
115
+ this[6] = a02;
116
+ this[7] = a12;
117
+ return this;
118
+ }
119
+ out[0] = this[0];
120
+ out[1] = this[3];
121
+ out[2] = this[6];
122
+ out[3] = this[1];
123
+ out[4] = this[4];
124
+ out[5] = this[7];
125
+ out[6] = this[2];
126
+ out[7] = this[5];
127
+ out[8] = this[8];
128
+ return out;
129
+ }
130
+ determinant() {
131
+ const a00 = this[0], a01 = this[1], a02 = this[2];
132
+ const a10 = this[3], a11 = this[4], a12 = this[5];
133
+ const a20 = this[6], a21 = this[7], a22 = this[8];
134
+ return (a00 * (a22 * a11 - a12 * a21) +
135
+ a01 * (-a22 * a10 + a12 * a20) +
136
+ a02 * (a21 * a10 - a11 * a20));
137
+ }
138
+ invert(out = this) {
139
+ const a00 = this[0], a01 = this[1], a02 = this[2];
140
+ const a10 = this[3], a11 = this[4], a12 = this[5];
141
+ const a20 = this[6], a21 = this[7], a22 = this[8];
142
+ const b01 = a22 * a11 - a12 * a21;
143
+ const b11 = -a22 * a10 + a12 * a20;
144
+ const b21 = a21 * a10 - a11 * a20;
145
+ let det = a00 * b01 + a01 * b11 + a02 * b21;
146
+ if (Math.abs(det) <= EPSILON)
147
+ return null;
148
+ det = 1.0 / det;
149
+ out[0] = b01 * det;
150
+ out[1] = (-a22 * a01 + a02 * a21) * det;
151
+ out[2] = (a12 * a01 - a02 * a11) * det;
152
+ out[3] = b11 * det;
153
+ out[4] = (a22 * a00 - a02 * a20) * det;
154
+ out[5] = (-a12 * a00 + a02 * a10) * det;
155
+ out[6] = b21 * det;
156
+ out[7] = (-a21 * a00 + a01 * a20) * det;
157
+ out[8] = (a11 * a00 - a01 * a10) * det;
158
+ return out;
159
+ }
160
+ static fromMat4(m, out) {
161
+ out ??= new _Mat3();
162
+ out[0] = m[0];
163
+ out[1] = m[1];
164
+ out[2] = m[2];
165
+ out[3] = m[4];
166
+ out[4] = m[5];
167
+ out[5] = m[6];
168
+ out[6] = m[8];
169
+ out[7] = m[9];
170
+ out[8] = m[10];
171
+ return out;
172
+ }
173
+ /**
174
+ * Computes the 3x3 normal matrix (inverse transpose of the upper-left 3x3 of a 4x4 matrix).
175
+ * Essential for vertex normal transformation in shaders under non-uniform scaling.
176
+ */
177
+ static normalMatrix(m, out) {
178
+ out ??= new _Mat3();
179
+ const a00 = m[0], a01 = m[1], a02 = m[2];
180
+ const a10 = m[4], a11 = m[5], a12 = m[6];
181
+ const a20 = m[8], a21 = m[9], a22 = m[10];
182
+ const b01 = a22 * a11 - a12 * a21;
183
+ const b11 = -a22 * a10 + a12 * a20;
184
+ const b21 = a21 * a10 - a11 * a20;
185
+ let det = a00 * b01 + a01 * b11 + a02 * b21;
186
+ if (Math.abs(det) <= EPSILON)
187
+ return null;
188
+ det = 1.0 / det;
189
+ out[0] = b01 * det;
190
+ out[1] = (-a22 * a01 + a02 * a21) * det;
191
+ out[2] = (a12 * a01 - a02 * a11) * det;
192
+ out[3] = b11 * det;
193
+ out[4] = (a22 * a00 - a02 * a20) * det;
194
+ out[5] = (-a12 * a00 + a02 * a10) * det;
195
+ out[6] = b21 * det;
196
+ out[7] = (-a21 * a00 + a01 * a20) * det;
197
+ out[8] = (a11 * a00 - a01 * a10) * det;
198
+ return out;
199
+ }
200
+ static fromQuat(q, out) {
201
+ out ??= new _Mat3();
202
+ const x = q[0], y = q[1], z = q[2], w = q[3];
203
+ const x2 = x + x, y2 = y + y, z2 = z + z;
204
+ const xx = x * x2, yx = y * x2, yy = y * y2;
205
+ const zx = z * x2, zy = z * y2, zz = z * z2;
206
+ const wx = w * x2, wy = w * y2, wz = w * z2;
207
+ out[0] = 1 - yy - zz;
208
+ out[1] = yx + wz;
209
+ out[2] = zx - wy;
210
+ out[3] = yx - wz;
211
+ out[4] = 1 - xx - zz;
212
+ out[5] = zy + wx;
213
+ out[6] = zx + wy;
214
+ out[7] = zy - wx;
215
+ out[8] = 1 - xx - yy;
216
+ return out;
217
+ }
218
+ static fromTranslation2D(v, out) {
219
+ out ??= new _Mat3();
220
+ out[0] = 1;
221
+ out[1] = 0;
222
+ out[2] = 0;
223
+ out[3] = 0;
224
+ out[4] = 1;
225
+ out[5] = 0;
226
+ out[6] = v[0];
227
+ out[7] = v[1];
228
+ out[8] = 1;
229
+ return out;
230
+ }
231
+ static fromRotation2D(rad, out) {
232
+ out ??= new _Mat3();
233
+ const s = Math.sin(rad), c = Math.cos(rad);
234
+ out[0] = c;
235
+ out[1] = s;
236
+ out[2] = 0;
237
+ out[3] = -s;
238
+ out[4] = c;
239
+ out[5] = 0;
240
+ out[6] = 0;
241
+ out[7] = 0;
242
+ out[8] = 1;
243
+ return out;
244
+ }
245
+ static fromScaling2D(v, out) {
246
+ out ??= new _Mat3();
247
+ out[0] = v[0];
248
+ out[1] = 0;
249
+ out[2] = 0;
250
+ out[3] = 0;
251
+ out[4] = v[1];
252
+ out[5] = 0;
253
+ out[6] = 0;
254
+ out[7] = 0;
255
+ out[8] = 1;
256
+ return out;
257
+ }
258
+ translate2D(v, out = this) {
259
+ const x = v[0], y = v[1];
260
+ out[6] = this[0] * x + this[3] * y + this[6];
261
+ out[7] = this[1] * x + this[4] * y + this[7];
262
+ out[8] = this[2] * x + this[5] * y + this[8];
263
+ return out;
264
+ }
265
+ rotate2D(rad, out = this) {
266
+ const a00 = this[0], a01 = this[1], a02 = this[2];
267
+ const a10 = this[3], a11 = this[4], a12 = this[5];
268
+ const s = Math.sin(rad), c = Math.cos(rad);
269
+ out[0] = c * a00 + s * a10;
270
+ out[1] = c * a01 + s * a11;
271
+ out[2] = c * a02 + s * a12;
272
+ out[3] = c * a10 - s * a00;
273
+ out[4] = c * a11 - s * a01;
274
+ out[5] = c * a12 - s * a02;
275
+ return out;
276
+ }
277
+ scale2D(v, out = this) {
278
+ const x = v[0], y = v[1];
279
+ out[0] = this[0] * x;
280
+ out[1] = this[1] * x;
281
+ out[2] = this[2] * x;
282
+ out[3] = this[3] * y;
283
+ out[4] = this[4] * y;
284
+ out[5] = this[5] * y;
285
+ return out;
286
+ }
287
+ transformVec2(v, out) {
288
+ out ??= new Vec2();
289
+ const x = v[0], y = v[1];
290
+ out[0] = this[0] * x + this[3] * y + this[6];
291
+ out[1] = this[1] * x + this[4] * y + this[7];
292
+ return out;
293
+ }
294
+ transformVec3(v, out) {
295
+ out ??= new Vec3();
296
+ const x = v[0], y = v[1], z = v[2];
297
+ out[0] = this[0] * x + this[3] * y + this[6] * z;
298
+ out[1] = this[1] * x + this[4] * y + this[7] * z;
299
+ out[2] = this[2] * x + this[5] * y + this[8] * z;
300
+ return out;
301
+ }
302
+ equals(b, epsilon = EPSILON) {
303
+ for (let i = 0; i < 9; i++) {
304
+ if (Math.abs(this[i] - b[i]) > epsilon)
305
+ return false;
306
+ }
307
+ return true;
308
+ }
309
+ exactEquals(b) {
310
+ for (let i = 0; i < 9; i++) {
311
+ if (this[i] !== b[i])
312
+ return false;
313
+ }
314
+ return true;
315
+ }
316
+ // Static procedural API
317
+ static mul(a, b, out) {
318
+ out ??= new _Mat3();
319
+ const a00 = a[0], a01 = a[1], a02 = a[2];
320
+ const a10 = a[3], a11 = a[4], a12 = a[5];
321
+ const a20 = a[6], a21 = a[7], a22 = a[8];
322
+ const b00 = b[0], b01 = b[1], b02 = b[2];
323
+ const b10 = b[3], b11 = b[4], b12 = b[5];
324
+ const b20 = b[6], b21 = b[7], b22 = b[8];
325
+ out[0] = b00 * a00 + b01 * a10 + b02 * a20;
326
+ out[1] = b00 * a01 + b01 * a11 + b02 * a21;
327
+ out[2] = b00 * a02 + b01 * a12 + b02 * a22;
328
+ out[3] = b10 * a00 + b11 * a10 + b12 * a20;
329
+ out[4] = b10 * a01 + b11 * a11 + b12 * a21;
330
+ out[5] = b10 * a02 + b11 * a12 + b12 * a22;
331
+ out[6] = b20 * a00 + b21 * a10 + b22 * a20;
332
+ out[7] = b20 * a01 + b21 * a11 + b22 * a21;
333
+ out[8] = b20 * a02 + b21 * a12 + b22 * a22;
334
+ return out;
335
+ }
336
+ static transpose(a, out) {
337
+ out ??= new _Mat3();
338
+ out[0] = a[0];
339
+ out[1] = a[3];
340
+ out[2] = a[6];
341
+ out[3] = a[1];
342
+ out[4] = a[4];
343
+ out[5] = a[7];
344
+ out[6] = a[2];
345
+ out[7] = a[5];
346
+ out[8] = a[8];
347
+ return out;
348
+ }
349
+ static invert(a, out) {
350
+ out ??= new _Mat3();
351
+ const a00 = a[0], a01 = a[1], a02 = a[2];
352
+ const a10 = a[3], a11 = a[4], a12 = a[5];
353
+ const a20 = a[6], a21 = a[7], a22 = a[8];
354
+ const b01 = a22 * a11 - a12 * a21;
355
+ const b11 = -a22 * a10 + a12 * a20;
356
+ const b21 = a21 * a10 - a11 * a20;
357
+ let det = a00 * b01 + a01 * b11 + a02 * b21;
358
+ if (Math.abs(det) <= EPSILON)
359
+ return null;
360
+ det = 1.0 / det;
361
+ out[0] = b01 * det;
362
+ out[1] = (-a22 * a01 + a02 * a21) * det;
363
+ out[2] = (a12 * a01 - a02 * a11) * det;
364
+ out[3] = b11 * det;
365
+ out[4] = (a22 * a00 - a02 * a20) * det;
366
+ out[5] = (-a12 * a00 + a02 * a10) * det;
367
+ out[6] = b21 * det;
368
+ out[7] = (-a21 * a00 + a01 * a20) * det;
369
+ out[8] = (a11 * a00 - a01 * a10) * det;
370
+ return out;
371
+ }
372
+ static equals(a, b, epsilon = EPSILON) {
373
+ for (let i = 0; i < 9; i++) {
374
+ if (Math.abs(a[i] - b[i]) > epsilon)
375
+ return false;
376
+ }
377
+ return true;
378
+ }
379
+ static exactEquals(a, b) {
380
+ for (let i = 0; i < 9; i++) {
381
+ if (a[i] !== b[i])
382
+ return false;
383
+ }
384
+ return true;
385
+ }
386
+ }
387
+ const _Mat3Wrapper = function (a, b) {
388
+ return new _Mat3(a, b);
389
+ };
390
+ Object.setPrototypeOf(_Mat3Wrapper, _Mat3);
391
+ _Mat3Wrapper.prototype = _Mat3.prototype;
392
+ export const Mat3 = _Mat3Wrapper;
393
+ //# sourceMappingURL=mat3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mat3.js","sourceRoot":"","sources":["../../alm/mat3.ts"],"names":[],"mappings":"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"}