@thunderclap-engine/engine 0.0.0-stage → 1.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 (566) hide show
  1. package/CHANGELOG.md +390 -0
  2. package/LICENSE +21 -0
  3. package/README.md +333 -2
  4. package/dist/analytics/analytics.d.ts +80 -0
  5. package/dist/analytics/analytics.js +129 -0
  6. package/dist/analytics/index.d.ts +1 -0
  7. package/dist/analytics/index.js +1 -0
  8. package/dist/anim/aim.d.ts +43 -0
  9. package/dist/anim/aim.js +157 -0
  10. package/dist/anim/clip.d.ts +98 -0
  11. package/dist/anim/clip.js +282 -0
  12. package/dist/anim/compress.d.ts +65 -0
  13. package/dist/anim/compress.js +339 -0
  14. package/dist/anim/foot-ik.d.ts +74 -0
  15. package/dist/anim/foot-ik.js +241 -0
  16. package/dist/anim/graph.d.ts +153 -0
  17. package/dist/anim/graph.js +532 -0
  18. package/dist/anim/ik.d.ts +105 -0
  19. package/dist/anim/ik.js +435 -0
  20. package/dist/anim/index.d.ts +36 -0
  21. package/dist/anim/index.js +21 -0
  22. package/dist/anim/match.d.ts +66 -0
  23. package/dist/anim/match.js +153 -0
  24. package/dist/anim/mixer.d.ts +113 -0
  25. package/dist/anim/mixer.js +314 -0
  26. package/dist/anim/morph.d.ts +41 -0
  27. package/dist/anim/morph.js +94 -0
  28. package/dist/anim/pose.d.ts +74 -0
  29. package/dist/anim/pose.js +254 -0
  30. package/dist/anim/quat.d.ts +44 -0
  31. package/dist/anim/quat.js +187 -0
  32. package/dist/anim/retarget.d.ts +97 -0
  33. package/dist/anim/retarget.js +366 -0
  34. package/dist/anim/root-motion.d.ts +44 -0
  35. package/dist/anim/root-motion.js +224 -0
  36. package/dist/anim/skin-pose.d.ts +39 -0
  37. package/dist/anim/skin-pose.js +53 -0
  38. package/dist/anim/socket.d.ts +47 -0
  39. package/dist/anim/socket.js +84 -0
  40. package/dist/anim/spring-chain.d.ts +73 -0
  41. package/dist/anim/spring-chain.js +294 -0
  42. package/dist/assets/atlas.d.ts +90 -0
  43. package/dist/assets/atlas.js +212 -0
  44. package/dist/assets/baked.d.ts +33 -0
  45. package/dist/assets/baked.js +38 -0
  46. package/dist/assets/bundle.d.ts +88 -0
  47. package/dist/assets/bundle.js +464 -0
  48. package/dist/assets/cache.d.ts +56 -0
  49. package/dist/assets/cache.js +123 -0
  50. package/dist/assets/gltf-load.d.ts +252 -0
  51. package/dist/assets/gltf-load.js +661 -0
  52. package/dist/assets/gltf-skin.d.ts +36 -0
  53. package/dist/assets/gltf-skin.js +109 -0
  54. package/dist/assets/gltf.d.ts +706 -0
  55. package/dist/assets/gltf.js +1376 -0
  56. package/dist/assets/index.d.ts +20 -0
  57. package/dist/assets/index.js +10 -0
  58. package/dist/assets/ktx2.d.ts +71 -0
  59. package/dist/assets/ktx2.js +213 -0
  60. package/dist/assets/manifest.d.ts +79 -0
  61. package/dist/assets/manifest.js +7 -0
  62. package/dist/assets/meshopt.d.ts +23 -0
  63. package/dist/assets/meshopt.js +403 -0
  64. package/dist/audio/audio.d.ts +733 -0
  65. package/dist/audio/audio.js +2013 -0
  66. package/dist/audio/dsp.d.ts +61 -0
  67. package/dist/audio/dsp.js +159 -0
  68. package/dist/audio/duck.d.ts +44 -0
  69. package/dist/audio/duck.js +101 -0
  70. package/dist/audio/envelope.d.ts +53 -0
  71. package/dist/audio/envelope.js +106 -0
  72. package/dist/audio/index.d.ts +13 -0
  73. package/dist/audio/index.js +14 -0
  74. package/dist/audio/music.d.ts +113 -0
  75. package/dist/audio/music.js +548 -0
  76. package/dist/audio/occlusion.d.ts +55 -0
  77. package/dist/audio/occlusion.js +61 -0
  78. package/dist/audio/persist.d.ts +23 -0
  79. package/dist/audio/persist.js +27 -0
  80. package/dist/audio/recipes.d.ts +55 -0
  81. package/dist/audio/recipes.js +227 -0
  82. package/dist/audio/send.d.ts +41 -0
  83. package/dist/audio/send.js +118 -0
  84. package/dist/audio/sprites.d.ts +59 -0
  85. package/dist/audio/sprites.js +43 -0
  86. package/dist/audio/synth.d.ts +103 -0
  87. package/dist/audio/synth.js +197 -0
  88. package/dist/audio/variations.d.ts +25 -0
  89. package/dist/audio/variations.js +55 -0
  90. package/dist/audio/zones.d.ts +100 -0
  91. package/dist/audio/zones.js +167 -0
  92. package/dist/core/detached-surface.d.ts +44 -0
  93. package/dist/core/detached-surface.js +104 -0
  94. package/dist/core/events.d.ts +24 -0
  95. package/dist/core/events.js +43 -0
  96. package/dist/core/game.d.ts +409 -0
  97. package/dist/core/game.js +530 -0
  98. package/dist/core/hash.d.ts +24 -0
  99. package/dist/core/hash.js +49 -0
  100. package/dist/core/index.d.ts +17 -0
  101. package/dist/core/index.js +9 -0
  102. package/dist/core/loop.d.ts +113 -0
  103. package/dist/core/loop.js +185 -0
  104. package/dist/core/math.d.ts +58 -0
  105. package/dist/core/math.js +210 -0
  106. package/dist/core/noise.d.ts +40 -0
  107. package/dist/core/noise.js +247 -0
  108. package/dist/core/pool.d.ts +42 -0
  109. package/dist/core/pool.js +85 -0
  110. package/dist/core/random.d.ts +61 -0
  111. package/dist/core/random.js +199 -0
  112. package/dist/core/scene.d.ts +79 -0
  113. package/dist/core/scene.js +195 -0
  114. package/dist/core/timer.d.ts +66 -0
  115. package/dist/core/timer.js +286 -0
  116. package/dist/fx/billboard-wgsl.d.ts +29 -0
  117. package/dist/fx/billboard-wgsl.js +158 -0
  118. package/dist/fx/billboard.d.ts +249 -0
  119. package/dist/fx/billboard.js +702 -0
  120. package/dist/fx/debug-draw.d.ts +127 -0
  121. package/dist/fx/debug-draw.js +523 -0
  122. package/dist/fx/debug-wgsl.d.ts +7 -0
  123. package/dist/fx/debug-wgsl.js +32 -0
  124. package/dist/fx/decals-wgsl.d.ts +15 -0
  125. package/dist/fx/decals-wgsl.js +173 -0
  126. package/dist/fx/decals.d.ts +216 -0
  127. package/dist/fx/decals.js +607 -0
  128. package/dist/fx/effect.d.ts +129 -0
  129. package/dist/fx/effect.js +349 -0
  130. package/dist/fx/effects/hit-spark.json +48 -0
  131. package/dist/fx/effects/index.d.ts +8 -0
  132. package/dist/fx/effects/index.js +9 -0
  133. package/dist/fx/effects/magic-aura.json +47 -0
  134. package/dist/fx/effects/smoke-puff.json +34 -0
  135. package/dist/fx/emit-surface.d.ts +40 -0
  136. package/dist/fx/emit-surface.js +124 -0
  137. package/dist/fx/flicker.d.ts +30 -0
  138. package/dist/fx/flicker.js +42 -0
  139. package/dist/fx/index.d.ts +31 -0
  140. package/dist/fx/index.js +20 -0
  141. package/dist/fx/particles-wgsl.d.ts +57 -0
  142. package/dist/fx/particles-wgsl.js +828 -0
  143. package/dist/fx/particles.d.ts +566 -0
  144. package/dist/fx/particles.js +1533 -0
  145. package/dist/fx/random.d.ts +15 -0
  146. package/dist/fx/random.js +20 -0
  147. package/dist/fx/sky-wgsl.d.ts +23 -0
  148. package/dist/fx/sky-wgsl.js +127 -0
  149. package/dist/fx/sky.d.ts +96 -0
  150. package/dist/fx/sky.js +175 -0
  151. package/dist/fx/text-atlas.d.ts +143 -0
  152. package/dist/fx/text-atlas.js +327 -0
  153. package/dist/fx/trail-wgsl.d.ts +11 -0
  154. package/dist/fx/trail-wgsl.js +42 -0
  155. package/dist/fx/trail.d.ts +194 -0
  156. package/dist/fx/trail.js +555 -0
  157. package/dist/fx/water-wgsl.d.ts +34 -0
  158. package/dist/fx/water-wgsl.js +197 -0
  159. package/dist/fx/water.d.ts +176 -0
  160. package/dist/fx/water.js +371 -0
  161. package/dist/geom/collide/bvh.d.ts +151 -0
  162. package/dist/geom/collide/bvh.js +493 -0
  163. package/dist/geom/collide/debug.d.ts +14 -0
  164. package/dist/geom/collide/debug.js +74 -0
  165. package/dist/geom/collide/grid.d.ts +26 -0
  166. package/dist/geom/collide/grid.js +91 -0
  167. package/dist/geom/collide/index.d.ts +8 -0
  168. package/dist/geom/collide/index.js +8 -0
  169. package/dist/geom/collide/queries.d.ts +70 -0
  170. package/dist/geom/collide/queries.js +583 -0
  171. package/dist/geom/collide/serialize.d.ts +14 -0
  172. package/dist/geom/collide/serialize.js +145 -0
  173. package/dist/geom/collide/shapes.d.ts +161 -0
  174. package/dist/geom/collide/shapes.js +686 -0
  175. package/dist/geom/collide/slide.d.ts +66 -0
  176. package/dist/geom/collide/slide.js +375 -0
  177. package/dist/geom/collide/tile-slide.d.ts +88 -0
  178. package/dist/geom/collide/tile-slide.js +255 -0
  179. package/dist/geom/geometry.d.ts +95 -0
  180. package/dist/geom/geometry.js +322 -0
  181. package/dist/geom/heightfield.d.ts +72 -0
  182. package/dist/geom/heightfield.js +295 -0
  183. package/dist/geom/hull.d.ts +27 -0
  184. package/dist/geom/hull.js +279 -0
  185. package/dist/geom/index.d.ts +35 -0
  186. package/dist/geom/index.js +23 -0
  187. package/dist/geom/iso.d.ts +74 -0
  188. package/dist/geom/iso.js +89 -0
  189. package/dist/geom/lod.d.ts +29 -0
  190. package/dist/geom/lod.js +27 -0
  191. package/dist/geom/ops.d.ts +47 -0
  192. package/dist/geom/ops.js +285 -0
  193. package/dist/geom/primitives.d.ts +97 -0
  194. package/dist/geom/primitives.js +359 -0
  195. package/dist/geom/shapes.d.ts +43 -0
  196. package/dist/geom/shapes.js +88 -0
  197. package/dist/geom/simplify.d.ts +38 -0
  198. package/dist/geom/simplify.js +519 -0
  199. package/dist/geom/split.d.ts +37 -0
  200. package/dist/geom/split.js +413 -0
  201. package/dist/geom/sweep.d.ts +83 -0
  202. package/dist/geom/sweep.js +534 -0
  203. package/dist/geom/tangents.d.ts +16 -0
  204. package/dist/geom/tangents.js +124 -0
  205. package/dist/geom/triangulate.d.ts +19 -0
  206. package/dist/geom/triangulate.js +147 -0
  207. package/dist/host/default.d.ts +10 -0
  208. package/dist/host/default.js +10 -0
  209. package/dist/host/index.d.ts +4 -0
  210. package/dist/host/index.js +3 -0
  211. package/dist/host/types.d.ts +144 -0
  212. package/dist/host/types.js +1 -0
  213. package/dist/host/web-links.d.ts +38 -0
  214. package/dist/host/web-links.js +110 -0
  215. package/dist/host/web.d.ts +30 -0
  216. package/dist/host/web.js +216 -0
  217. package/dist/host/xr.d.ts +24 -0
  218. package/dist/host/xr.js +59 -0
  219. package/dist/i18n/i18n.d.ts +59 -0
  220. package/dist/i18n/i18n.js +241 -0
  221. package/dist/i18n/index.d.ts +3 -0
  222. package/dist/i18n/index.js +3 -0
  223. package/dist/i18n/message.d.ts +72 -0
  224. package/dist/i18n/message.js +369 -0
  225. package/dist/i18n/negotiate.d.ts +17 -0
  226. package/dist/i18n/negotiate.js +58 -0
  227. package/dist/index.d.ts +7 -0
  228. package/dist/index.js +1 -0
  229. package/dist/input/bindings.d.ts +31 -0
  230. package/dist/input/bindings.js +141 -0
  231. package/dist/input/clock.d.ts +44 -0
  232. package/dist/input/clock.js +49 -0
  233. package/dist/input/follow.d.ts +133 -0
  234. package/dist/input/follow.js +218 -0
  235. package/dist/input/gestures.d.ts +281 -0
  236. package/dist/input/gestures.js +662 -0
  237. package/dist/input/glyphs.d.ts +35 -0
  238. package/dist/input/glyphs.js +216 -0
  239. package/dist/input/gyro.d.ts +85 -0
  240. package/dist/input/gyro.js +140 -0
  241. package/dist/input/index.d.ts +19 -0
  242. package/dist/input/index.js +16 -0
  243. package/dist/input/input.d.ts +543 -0
  244. package/dist/input/input.js +1492 -0
  245. package/dist/input/look.d.ts +327 -0
  246. package/dist/input/look.js +681 -0
  247. package/dist/input/magnify.d.ts +177 -0
  248. package/dist/input/magnify.js +131 -0
  249. package/dist/input/pointer-dispatch.d.ts +138 -0
  250. package/dist/input/pointer-dispatch.js +180 -0
  251. package/dist/input/pointer-router.d.ts +204 -0
  252. package/dist/input/pointer-router.js +533 -0
  253. package/dist/input/pointer-sources.d.ts +164 -0
  254. package/dist/input/pointer-sources.js +306 -0
  255. package/dist/input/rays.d.ts +138 -0
  256. package/dist/input/rays.js +615 -0
  257. package/dist/input/record.d.ts +209 -0
  258. package/dist/input/record.js +601 -0
  259. package/dist/input/touch-zones.d.ts +147 -0
  260. package/dist/input/touch-zones.js +300 -0
  261. package/dist/input/types.d.ts +158 -0
  262. package/dist/input/types.js +1 -0
  263. package/dist/input/xr-source.d.ts +53 -0
  264. package/dist/input/xr-source.js +164 -0
  265. package/dist/nav/astar.d.ts +45 -0
  266. package/dist/nav/astar.js +182 -0
  267. package/dist/nav/corridor.d.ts +40 -0
  268. package/dist/nav/corridor.js +95 -0
  269. package/dist/nav/crowd.d.ts +94 -0
  270. package/dist/nav/crowd.js +624 -0
  271. package/dist/nav/flow.d.ts +61 -0
  272. package/dist/nav/flow.js +193 -0
  273. package/dist/nav/grid.d.ts +108 -0
  274. package/dist/nav/grid.js +210 -0
  275. package/dist/nav/heap.d.ts +22 -0
  276. package/dist/nav/heap.js +92 -0
  277. package/dist/nav/index.d.ts +37 -0
  278. package/dist/nav/index.js +19 -0
  279. package/dist/nav/mesh/areas.d.ts +44 -0
  280. package/dist/nav/mesh/areas.js +98 -0
  281. package/dist/nav/mesh/bake-options.d.ts +33 -0
  282. package/dist/nav/mesh/bake-options.js +76 -0
  283. package/dist/nav/mesh/contour.d.ts +22 -0
  284. package/dist/nav/mesh/contour.js +323 -0
  285. package/dist/nav/mesh/flow3.d.ts +35 -0
  286. package/dist/nav/mesh/flow3.js +229 -0
  287. package/dist/nav/mesh/links.d.ts +38 -0
  288. package/dist/nav/mesh/links.js +72 -0
  289. package/dist/nav/mesh/mesh-path.d.ts +152 -0
  290. package/dist/nav/mesh/mesh-path.js +643 -0
  291. package/dist/nav/mesh/mesh-reach.d.ts +78 -0
  292. package/dist/nav/mesh/mesh-reach.js +450 -0
  293. package/dist/nav/mesh/navmesh.d.ts +117 -0
  294. package/dist/nav/mesh/navmesh.js +647 -0
  295. package/dist/nav/mesh/polymesh.d.ts +24 -0
  296. package/dist/nav/mesh/polymesh.js +384 -0
  297. package/dist/nav/mesh/regions.d.ts +12 -0
  298. package/dist/nav/mesh/regions.js +367 -0
  299. package/dist/nav/mesh/serialize.d.ts +13 -0
  300. package/dist/nav/mesh/serialize.js +197 -0
  301. package/dist/nav/mesh/voxelize.d.ts +111 -0
  302. package/dist/nav/mesh/voxelize.js +552 -0
  303. package/dist/nav/obstacles.d.ts +75 -0
  304. package/dist/nav/obstacles.js +294 -0
  305. package/dist/nav/path.d.ts +59 -0
  306. package/dist/nav/path.js +177 -0
  307. package/dist/nav/query-queue.d.ts +46 -0
  308. package/dist/nav/query-queue.js +308 -0
  309. package/dist/nav/reach.d.ts +53 -0
  310. package/dist/nav/reach.js +148 -0
  311. package/dist/nav/steer.d.ts +36 -0
  312. package/dist/nav/steer.js +78 -0
  313. package/dist/platform/boot.d.ts +28 -0
  314. package/dist/platform/boot.js +43 -0
  315. package/dist/platform/device-mode.d.ts +40 -0
  316. package/dist/platform/device-mode.js +104 -0
  317. package/dist/platform/device.d.ts +31 -0
  318. package/dist/platform/device.js +91 -0
  319. package/dist/platform/environment.d.ts +42 -0
  320. package/dist/platform/environment.js +82 -0
  321. package/dist/platform/gpu.d.ts +40 -0
  322. package/dist/platform/gpu.js +57 -0
  323. package/dist/platform/index.d.ts +18 -0
  324. package/dist/platform/index.js +10 -0
  325. package/dist/platform/letterbox.d.ts +43 -0
  326. package/dist/platform/letterbox.js +57 -0
  327. package/dist/platform/links.d.ts +20 -0
  328. package/dist/platform/links.js +43 -0
  329. package/dist/platform/screens.d.ts +36 -0
  330. package/dist/platform/screens.js +138 -0
  331. package/dist/platform/surface.d.ts +72 -0
  332. package/dist/platform/surface.js +157 -0
  333. package/dist/platform/xr-fake.d.ts +168 -0
  334. package/dist/platform/xr-fake.js +434 -0
  335. package/dist/platform/xr-surface.d.ts +120 -0
  336. package/dist/platform/xr-surface.js +214 -0
  337. package/dist/platform/xr-types.d.ts +262 -0
  338. package/dist/post/ao.d.ts +12 -0
  339. package/dist/post/ao.js +136 -0
  340. package/dist/post/blend.d.ts +27 -0
  341. package/dist/post/blend.js +129 -0
  342. package/dist/post/depth-pass.d.ts +43 -0
  343. package/dist/post/depth-pass.js +118 -0
  344. package/dist/post/dof.d.ts +1 -0
  345. package/dist/post/dof.js +66 -0
  346. package/dist/post/exposure.d.ts +80 -0
  347. package/dist/post/exposure.js +322 -0
  348. package/dist/post/index.d.ts +12 -0
  349. package/dist/post/index.js +11 -0
  350. package/dist/post/lens-dirt.d.ts +13 -0
  351. package/dist/post/lens-dirt.js +91 -0
  352. package/dist/post/lut.d.ts +19 -0
  353. package/dist/post/lut.js +50 -0
  354. package/dist/post/motion-blur.d.ts +9 -0
  355. package/dist/post/motion-blur.js +78 -0
  356. package/dist/post/post-stack.d.ts +302 -0
  357. package/dist/post/post-stack.js +1137 -0
  358. package/dist/post/settings.d.ts +485 -0
  359. package/dist/post/settings.js +416 -0
  360. package/dist/post/shaders.d.ts +25 -0
  361. package/dist/post/shaders.js +410 -0
  362. package/dist/post/ssr.d.ts +16 -0
  363. package/dist/post/ssr.js +155 -0
  364. package/dist/post/taa.d.ts +74 -0
  365. package/dist/post/taa.js +235 -0
  366. package/dist/post/white-balance.d.ts +25 -0
  367. package/dist/post/white-balance.js +98 -0
  368. package/dist/render/bindings.d.ts +98 -0
  369. package/dist/render/bindings.js +281 -0
  370. package/dist/render/blend.d.ts +13 -0
  371. package/dist/render/blend.js +26 -0
  372. package/dist/render/camera-2d.d.ts +72 -0
  373. package/dist/render/camera-2d.js +92 -0
  374. package/dist/render/camera.d.ts +302 -0
  375. package/dist/render/camera.js +671 -0
  376. package/dist/render/color.d.ts +16 -0
  377. package/dist/render/color.js +41 -0
  378. package/dist/render/compressed.d.ts +104 -0
  379. package/dist/render/compressed.js +248 -0
  380. package/dist/render/diagnostics.d.ts +15 -0
  381. package/dist/render/diagnostics.js +43 -0
  382. package/dist/render/dynamic-resolution.d.ts +70 -0
  383. package/dist/render/dynamic-resolution.js +126 -0
  384. package/dist/render/fake-gpu.d.ts +204 -0
  385. package/dist/render/fake-gpu.js +426 -0
  386. package/dist/render/flipbook.d.ts +56 -0
  387. package/dist/render/flipbook.js +87 -0
  388. package/dist/render/frame.d.ts +278 -0
  389. package/dist/render/frame.js +174 -0
  390. package/dist/render/fullscreen.d.ts +54 -0
  391. package/dist/render/fullscreen.js +91 -0
  392. package/dist/render/gpu-timer.d.ts +73 -0
  393. package/dist/render/gpu-timer.js +186 -0
  394. package/dist/render/index.d.ts +53 -0
  395. package/dist/render/index.js +29 -0
  396. package/dist/render/instance-list.d.ts +185 -0
  397. package/dist/render/instance-list.js +547 -0
  398. package/dist/render/lights.d.ts +181 -0
  399. package/dist/render/lights.js +233 -0
  400. package/dist/render/lod.d.ts +54 -0
  401. package/dist/render/lod.js +52 -0
  402. package/dist/render/material.d.ts +165 -0
  403. package/dist/render/material.js +292 -0
  404. package/dist/render/mesh.d.ts +284 -0
  405. package/dist/render/mesh.js +472 -0
  406. package/dist/render/mipmap.d.ts +16 -0
  407. package/dist/render/mipmap.js +121 -0
  408. package/dist/render/parallax.d.ts +50 -0
  409. package/dist/render/parallax.js +47 -0
  410. package/dist/render/pbr-wgsl.d.ts +31 -0
  411. package/dist/render/pbr-wgsl.js +119 -0
  412. package/dist/render/ping-pong.d.ts +42 -0
  413. package/dist/render/ping-pong.js +74 -0
  414. package/dist/render/renderer.d.ts +741 -0
  415. package/dist/render/renderer.js +2486 -0
  416. package/dist/render/scene-pipelines.d.ts +44 -0
  417. package/dist/render/scene-pipelines.js +92 -0
  418. package/dist/render/scene-target.d.ts +170 -0
  419. package/dist/render/scene-target.js +450 -0
  420. package/dist/render/shadow.d.ts +74 -0
  421. package/dist/render/shadow.js +208 -0
  422. package/dist/render/skin.d.ts +112 -0
  423. package/dist/render/skin.js +240 -0
  424. package/dist/render/snapshot.d.ts +36 -0
  425. package/dist/render/snapshot.js +34 -0
  426. package/dist/render/standard.d.ts +162 -0
  427. package/dist/render/standard.js +263 -0
  428. package/dist/render/texture.d.ts +142 -0
  429. package/dist/render/texture.js +228 -0
  430. package/dist/render/tile-layer.d.ts +110 -0
  431. package/dist/render/tile-layer.js +304 -0
  432. package/dist/render/transform.d.ts +115 -0
  433. package/dist/render/transform.js +318 -0
  434. package/dist/render/wgsl.d.ts +131 -0
  435. package/dist/render/wgsl.js +528 -0
  436. package/dist/save/codec.d.ts +49 -0
  437. package/dist/save/codec.js +169 -0
  438. package/dist/save/index.d.ts +8 -0
  439. package/dist/save/index.js +8 -0
  440. package/dist/save/journal.d.ts +24 -0
  441. package/dist/save/journal.js +102 -0
  442. package/dist/save/migrate.d.ts +15 -0
  443. package/dist/save/migrate.js +37 -0
  444. package/dist/save/schema.d.ts +72 -0
  445. package/dist/save/schema.js +154 -0
  446. package/dist/save/settings.d.ts +28 -0
  447. package/dist/save/settings.js +59 -0
  448. package/dist/save/slots.d.ts +56 -0
  449. package/dist/save/slots.js +200 -0
  450. package/dist/save/storage.d.ts +35 -0
  451. package/dist/save/storage.js +62 -0
  452. package/dist/save/store.d.ts +114 -0
  453. package/dist/save/store.js +269 -0
  454. package/dist/testing/fake-host.d.ts +103 -0
  455. package/dist/testing/fake-host.js +163 -0
  456. package/dist/testing/fixed-clock.d.ts +25 -0
  457. package/dist/testing/fixed-clock.js +30 -0
  458. package/dist/testing/index.d.ts +4 -0
  459. package/dist/testing/index.js +5 -0
  460. package/dist/testing/test-game.d.ts +76 -0
  461. package/dist/testing/test-game.js +92 -0
  462. package/dist/tween/ease.d.ts +77 -0
  463. package/dist/tween/ease.js +192 -0
  464. package/dist/tween/index.d.ts +8 -0
  465. package/dist/tween/index.js +7 -0
  466. package/dist/tween/timeline.d.ts +78 -0
  467. package/dist/tween/timeline.js +269 -0
  468. package/dist/tween/tween.d.ts +168 -0
  469. package/dist/tween/tween.js +320 -0
  470. package/dist/ui/anchor.d.ts +206 -0
  471. package/dist/ui/anchor.js +307 -0
  472. package/dist/ui/caption.d.ts +122 -0
  473. package/dist/ui/caption.js +286 -0
  474. package/dist/ui/cursor.d.ts +105 -0
  475. package/dist/ui/cursor.js +261 -0
  476. package/dist/ui/dom.d.ts +30 -0
  477. package/dist/ui/dom.js +92 -0
  478. package/dist/ui/floats.d.ts +86 -0
  479. package/dist/ui/floats.js +260 -0
  480. package/dist/ui/hud.d.ts +198 -0
  481. package/dist/ui/hud.js +431 -0
  482. package/dist/ui/index.d.ts +37 -0
  483. package/dist/ui/index.js +34 -0
  484. package/dist/ui/inventory-card.d.ts +52 -0
  485. package/dist/ui/inventory-card.js +173 -0
  486. package/dist/ui/inventory-context.d.ts +29 -0
  487. package/dist/ui/inventory-context.js +125 -0
  488. package/dist/ui/inventory-drag.d.ts +63 -0
  489. package/dist/ui/inventory-drag.js +394 -0
  490. package/dist/ui/inventory-grid.d.ts +66 -0
  491. package/dist/ui/inventory-grid.js +625 -0
  492. package/dist/ui/inventory-radial.d.ts +39 -0
  493. package/dist/ui/inventory-radial.js +168 -0
  494. package/dist/ui/inventory.d.ts +128 -0
  495. package/dist/ui/inventory.js +154 -0
  496. package/dist/ui/layout.d.ts +356 -0
  497. package/dist/ui/layout.js +856 -0
  498. package/dist/ui/link.d.ts +64 -0
  499. package/dist/ui/link.js +155 -0
  500. package/dist/ui/loading.d.ts +40 -0
  501. package/dist/ui/loading.js +157 -0
  502. package/dist/ui/loupe.d.ts +74 -0
  503. package/dist/ui/loupe.js +164 -0
  504. package/dist/ui/menu-nav.d.ts +33 -0
  505. package/dist/ui/menu-nav.js +28 -0
  506. package/dist/ui/minimap-canvas.d.ts +145 -0
  507. package/dist/ui/minimap-canvas.js +460 -0
  508. package/dist/ui/notify.d.ts +40 -0
  509. package/dist/ui/notify.js +141 -0
  510. package/dist/ui/orb.d.ts +53 -0
  511. package/dist/ui/orb.js +304 -0
  512. package/dist/ui/overlay.d.ts +213 -0
  513. package/dist/ui/overlay.js +394 -0
  514. package/dist/ui/padnav.d.ts +53 -0
  515. package/dist/ui/padnav.js +146 -0
  516. package/dist/ui/perf.d.ts +130 -0
  517. package/dist/ui/perf.js +329 -0
  518. package/dist/ui/rotate-card.d.ts +54 -0
  519. package/dist/ui/rotate-card.js +97 -0
  520. package/dist/ui/stack.d.ts +128 -0
  521. package/dist/ui/stack.js +312 -0
  522. package/dist/ui/styles.d.ts +13 -0
  523. package/dist/ui/styles.js +200 -0
  524. package/dist/ui/text-scale.d.ts +67 -0
  525. package/dist/ui/text-scale.js +102 -0
  526. package/dist/ui/theme.d.ts +70 -0
  527. package/dist/ui/theme.js +98 -0
  528. package/dist/ui/toast.d.ts +23 -0
  529. package/dist/ui/toast.js +46 -0
  530. package/dist/ui/tooltip.d.ts +89 -0
  531. package/dist/ui/tooltip.js +333 -0
  532. package/dist/ui/widgets-2.d.ts +134 -0
  533. package/dist/ui/widgets-2.js +399 -0
  534. package/dist/ui/widgets-3.d.ts +91 -0
  535. package/dist/ui/widgets-3.js +212 -0
  536. package/dist/ui/widgets.d.ts +34 -0
  537. package/dist/ui/widgets.js +50 -0
  538. package/dist/ui/world-panel/index.d.ts +5 -0
  539. package/dist/ui/world-panel/index.js +5 -0
  540. package/dist/ui/world-panel/layout.d.ts +38 -0
  541. package/dist/ui/world-panel/layout.js +68 -0
  542. package/dist/ui/world-panel/paint.d.ts +96 -0
  543. package/dist/ui/world-panel/paint.js +136 -0
  544. package/dist/ui/world-panel/panel.d.ts +235 -0
  545. package/dist/ui/world-panel/panel.js +762 -0
  546. package/dist/ui/world-panel/wgsl.d.ts +10 -0
  547. package/dist/ui/world-panel/wgsl.js +52 -0
  548. package/dist/ui/world-panel/widgets.d.ts +207 -0
  549. package/dist/ui/world-panel/widgets.js +569 -0
  550. package/dist/voxel/chunks.d.ts +77 -0
  551. package/dist/voxel/chunks.js +149 -0
  552. package/dist/voxel/grid.d.ts +84 -0
  553. package/dist/voxel/grid.js +223 -0
  554. package/dist/voxel/index.d.ts +22 -0
  555. package/dist/voxel/index.js +7 -0
  556. package/dist/voxel/mesher-worker.d.ts +14 -0
  557. package/dist/voxel/mesher-worker.js +47 -0
  558. package/dist/voxel/mesher.d.ts +73 -0
  559. package/dist/voxel/mesher.js +306 -0
  560. package/dist/voxel/ray.d.ts +32 -0
  561. package/dist/voxel/ray.js +73 -0
  562. package/dist/voxel/wgsl.d.ts +16 -0
  563. package/dist/voxel/wgsl.js +28 -0
  564. package/dist/voxel/worker-client.d.ts +79 -0
  565. package/dist/voxel/worker-client.js +122 -0
  566. package/package.json +177 -3
@@ -0,0 +1,284 @@
1
+ /**
2
+ * Mesh: a vertex buffer (+ optional index buffer) in one of the engine's vertex layouts.
3
+ *
4
+ * - `VERTEX_LAYOUT_2D` (the default): `pos: vec2f, uv: vec2f, color: vec4f`, 8 floats
5
+ * (`VERTEX_FLOATS`), 32 bytes per vertex.
6
+ * - `VERTEX_LAYOUT_3D`: `pos: vec3f, normal: vec3f, uv: vec2f, color: vec4f`, 12 floats
7
+ * (`VERTEX3D_FLOATS`), 48 bytes per vertex.
8
+ * - `VERTEX_LAYOUT_3D_TANGENT`: the 3D layout plus `tangent: vec4f` (xyz, handedness w),
9
+ * 16 floats, 64 bytes per vertex.
10
+ *
11
+ * Positions are in the mesh's local space; each draw's 3×4 instance matrix (built from
12
+ * `DrawParams` x, y, w, h, rotation, or taken from a `Transform`) maps local → world space.
13
+ * For `DrawParams` that is `xy + rotate(pos * wh)`: the built-in quad spans -0.5..0.5 so
14
+ * `w, h` are its size in logical pixels; for arbitrary meshes authored directly in logical
15
+ * pixels, draw with `x = 0, y = 0, w = 1, h = 1`.
16
+ *
17
+ * Materials build one pipeline per (vertex layout, depth mode), lazily, on first use.
18
+ */
19
+ export declare const VERTEX_FLOATS = 8;
20
+ export declare const VERTEX_STRIDE: number;
21
+ export declare const VERTEX3D_FLOATS = 12;
22
+ export declare const VERTEX3D_STRIDE: number;
23
+ /** The 2D layout's buffer layout (locations 0..2). */
24
+ export declare const VERTEX_BUFFER_LAYOUT: GPUVertexBufferLayout;
25
+ /** The 3D layout's buffer layout: position 0, normal 10, uv 1, colour 2. */
26
+ export declare const VERTEX3D_BUFFER_LAYOUT: GPUVertexBufferLayout;
27
+ /**
28
+ * A vertex layout: the GPU buffer layout plus the WGSL that reads it. The material prelude is
29
+ * generated per layout (`materialPrelude(layout)`), so `engine_vertex`, `VSOut` and the
30
+ * fragment side are the same for every layout. Layouts compare by identity.
31
+ */
32
+ export interface VertexLayout {
33
+ /** Short name, used in pipeline labels. */
34
+ readonly name: string;
35
+ readonly floats: number;
36
+ readonly stride: number;
37
+ readonly buffer: GPUVertexBufferLayout;
38
+ /** The vertex-attribute fields of WGSL `VertexIn` (the instance fields follow them). */
39
+ readonly wgslFields: string;
40
+ /** WGSL expression over `v: VertexIn` for the object-space position (`vec3f`). */
41
+ readonly wgslPosition: string;
42
+ /** WGSL expression over `v: VertexIn` for the object-space normal (`vec3f`). */
43
+ readonly wgslNormal: string;
44
+ /**
45
+ * Float offset of x, y, z inside a vertex (0 in every shipped layout), so a layout goes
46
+ * straight to `meshTester(..., { stride: layout.floats, offset: layout.positionOffset })`.
47
+ * Optional for a layout written by hand; read it as `layout.positionOffset ?? 0`.
48
+ */
49
+ readonly positionOffset?: number;
50
+ /**
51
+ * The layout carries joints and weights: `materialPrelude` emits `WGSL_SKIN` (the palette
52
+ * binding and `engine_skin`) so `wgslPosition` / `wgslNormal` may call it. See `skin.ts`.
53
+ */
54
+ readonly skinned?: boolean;
55
+ /**
56
+ * WGSL expression over `v: VertexIn` for the file tangent (`vec4f`: xyz along +u, w the
57
+ * handedness) when the layout carries one; the prelude's `engine_local_tangent(v)` returns it,
58
+ * or `vec4f(0)` (w = 0: "no tangent", the derivative fallback) for a layout without.
59
+ */
60
+ readonly wgslTangent?: string;
61
+ /**
62
+ * WGSL expression over `v: VertexIn` for the second texture coordinate set (`vec2f`), the
63
+ * `uv1` varying (`TEXCOORD_1`); `v.uv` is used when absent.
64
+ */
65
+ readonly wgslUv1?: string;
66
+ /**
67
+ * WGSL expression over `v: VertexIn` for the object-space position of the previous frame as
68
+ * a `vec4f` (w = 0 means "unknown": the velocity target reads zero). Default: the current
69
+ * position with w = 1. A skinned layout reads the palette's previous block.
70
+ */
71
+ readonly wgslPreviousPosition?: string;
72
+ }
73
+ /** 2D layout: `v.pos` is a `vec2f` (z = 0); the normal faces the viewer, `(0, 0, -1)`. */
74
+ export declare const VERTEX_LAYOUT_2D: VertexLayout;
75
+ /** 3D layout: `v.pos` and `v.normal` are `vec3f`. */
76
+ export declare const VERTEX_LAYOUT_3D: VertexLayout;
77
+ /**
78
+ * Tangent layout (ws/geom-2): the 3D layout's 12 floats followed by a tangent `vec4f` at
79
+ * `@location(13)` (3..9 are the instance buffer, 11 and 12 skinning): xyz the unit tangent
80
+ * along +u, w the handedness ±1, so the bitangent is `w · cross(normal, tangent)`. 16 floats,
81
+ * 64 bytes. `geom`'s `computeTangents` writes it; the prelude reads it like the 3D layout, so a
82
+ * material that ignores `v.tangent` draws unchanged.
83
+ */
84
+ export declare const VERTEX_LAYOUT_3D_TANGENT: VertexLayout;
85
+ /** Floats of `VERTEX_LAYOUT_3D_UV2` (the 3D layout plus a second uv). */
86
+ export declare const VERTEX3D_UV2_FLOATS = 14;
87
+ export declare const VERTEX3D_UV2_STRIDE: number;
88
+ /**
89
+ * Two-uv layout (ws/render-4): the 3D layout's 12 floats followed by `uv1: vec2f` at
90
+ * `@location(14)` (glTF `TEXCOORD_1`, the usual home of a light or occlusion map): 14 floats,
91
+ * 56 bytes. The prelude carries it as `VSOut.uv1`; the standard material's maps pick it with
92
+ * `texCoord: 1`. Materials that ignore it draw as with the 3D layout.
93
+ */
94
+ export declare const VERTEX_LAYOUT_3D_UV2: VertexLayout;
95
+ /**
96
+ * Skinned layout: the 3D layout's 12 floats followed by four joint indices (`uint8x4`, read as
97
+ * `vec4u`) and four weights (`unorm8x4`, read as `vec4f`), 8 bytes that occupy the slots of
98
+ * floats 12 and 13: 14 "floats" (`VERTEX_SKINNED_FLOATS`), 56 bytes per vertex. Write the
99
+ * joints and weights through a byte view of the vertex buffer (`setVertexSkin` in `skin.ts`),
100
+ * not as floats (a packed value may be a NaN pattern). `materialPrelude` applies the four
101
+ * weighted joint matrices from the material's `SkinPalette` before the instance matrix.
102
+ */
103
+ export declare const VERTEX_SKINNED_FLOATS = 14;
104
+ export declare const VERTEX_SKINNED_STRIDE: number;
105
+ /** Byte offset of the four joint indices inside a skinned vertex. */
106
+ export declare const SKIN_JOINTS_BYTE_OFFSET = 48;
107
+ /** Byte offset of the four weights (unorm8) inside a skinned vertex. */
108
+ export declare const SKIN_WEIGHTS_BYTE_OFFSET = 52;
109
+ /** The skinned layout's buffer layout: the 3D attributes, joints at 11 and weights at 12. */
110
+ export declare const VERTEX_SKINNED_BUFFER_LAYOUT: GPUVertexBufferLayout;
111
+ /**
112
+ * Skinned layout: `v.pos`, `v.normal`, `v.uv`, `v.color` as in 3D plus `v.joints: vec4u` and
113
+ * `v.weights: vec4f`. The prelude's `engine_local_position` / `engine_local_normal` return the
114
+ * skinned position and normal (`engine_skin`), so `engine_vertex` and every material work
115
+ * unchanged. The instance's palette slot travels in `params.w` (see `skin.ts`).
116
+ */
117
+ export declare const VERTEX_LAYOUT_SKINNED: VertexLayout;
118
+ /** An index sub-range of a mesh: `first` index and `count` indices (`InstanceParams.range`). */
119
+ export interface MeshRange {
120
+ first: number;
121
+ count: number;
122
+ }
123
+ /** Room reserved in a mesh's buffers, in vertices and indices. */
124
+ export interface MeshCapacity {
125
+ readonly vertices: number;
126
+ readonly indices: number;
127
+ }
128
+ export interface MeshDesc {
129
+ label?: string;
130
+ /**
131
+ * Interleaved vertices in `layout`: 8 floats each for 2D (x, y, u, v, r, g, b, a), 12 for
132
+ * 3D (x, y, z, nx, ny, nz, u, v, r, g, b, a). Optional when `capacity` is given: the mesh
133
+ * then starts empty (`vertexCount` 0) and is filled by `update()`.
134
+ */
135
+ vertices?: Float32Array;
136
+ /** Vertex layout. Default `VERTEX_LAYOUT_2D`. */
137
+ layout?: VertexLayout;
138
+ indices?: Uint16Array | Uint32Array;
139
+ /**
140
+ * Reserve room for this many vertices and indices so `update()` can rewrite the geometry
141
+ * without reallocating. Defaults to the initial data's size. `indices` > 0 gives the mesh an
142
+ * index buffer even when no initial indices are passed.
143
+ */
144
+ capacity?: {
145
+ vertices?: number;
146
+ indices?: number;
147
+ };
148
+ /**
149
+ * Index format of a mesh created with only an index capacity. Default: the format of the
150
+ * initial `indices`, else `uint16` when `capacity.vertices` fits, `uint32` otherwise.
151
+ */
152
+ indexFormat?: GPUIndexFormat;
153
+ /**
154
+ * Bounding sphere in mesh space, for frustum culling (`camera.cull`). Default: computed from
155
+ * `vertices` when `autoBounds` is on, else unbounded (never culled).
156
+ */
157
+ bounds?: MeshBounds;
158
+ /**
159
+ * Recompute `bounds` from the positions on every `update()` that uploads vertices without
160
+ * passing `bounds`. Default on under `AUTO_BOUNDS_MAX_VERTICES` (65 536) of capacity, off
161
+ * above it, so a chunk pipeline that knows its bounds passes them itself.
162
+ */
163
+ autoBounds?: boolean;
164
+ /**
165
+ * Named index ranges (storage only, ws/render-4): a sub-mesh per material of a file, say.
166
+ * Draw one with `frame.mesh(mesh, material, transform, { range: mesh.ranges.door })`.
167
+ */
168
+ ranges?: Record<string, MeshRange>;
169
+ }
170
+ /** A bounding sphere: `center` (x, y, z) and `radius`. `radius` Infinity means unbounded. */
171
+ export interface MeshBounds {
172
+ center: [number, number, number];
173
+ radius: number;
174
+ }
175
+ /** Capacity (vertices) up to which `MeshDesc.autoBounds` defaults to on. */
176
+ export declare const AUTO_BOUNDS_MAX_VERTICES = 65536;
177
+ /**
178
+ * One geometry upload. Views are read from their own `ArrayBuffer` (`buffer`, `byteOffset`),
179
+ * so a buffer transferred from a Worker is uploaded in place, with no copy on the main thread.
180
+ * Any view type works; counts default to the view's whole length in the mesh's layout and
181
+ * index format. `vertexCount`/`indexCount` without a view only move the draw range.
182
+ */
183
+ export interface MeshUpdate {
184
+ vertices?: ArrayBufferView;
185
+ indices?: ArrayBufferView;
186
+ /** Vertices to upload and draw. Default: all of `vertices`. */
187
+ vertexCount?: number;
188
+ /** Indices to upload and draw. Default: all of `indices`. */
189
+ indexCount?: number;
190
+ /**
191
+ * New bounding sphere (copied). Without it, bounds are recomputed from `vertices` only when
192
+ * the mesh's `autoBounds` is on.
193
+ */
194
+ bounds?: MeshBounds;
195
+ }
196
+ /**
197
+ * The shape a meshing Worker posts back (`harness/stream.ts`): one `ArrayBuffer` holding
198
+ * `vertexCount` vertices of the mesh's layout from byte 0 and, when `indexCount` is given, that
199
+ * many indices of the mesh's index format at `indexOffset` (default: right after the vertices,
200
+ * rounded up to 4 bytes); an indexed mesh given no `indexCount` draws nothing until the next
201
+ * reply. `Mesh.update` takes it as-is, so the page never builds views over the
202
+ * transferred buffer. Extra fields (a chunk id) are ignored.
203
+ */
204
+ export interface MeshReply {
205
+ buffer: ArrayBuffer;
206
+ vertexCount: number;
207
+ indexCount?: number;
208
+ /** Byte offset of the indices in `buffer`. Default: the vertices' byte length, 4-aligned. */
209
+ indexOffset?: number;
210
+ bounds?: MeshBounds;
211
+ }
212
+ export declare class Mesh {
213
+ private readonly device;
214
+ readonly label: string;
215
+ /** Vertex layout of this mesh's buffer; pipelines are keyed by (material, layout). */
216
+ readonly layout: VertexLayout;
217
+ vertexBuffer: GPUBuffer;
218
+ indexBuffer: GPUBuffer | null;
219
+ indexFormat: GPUIndexFormat;
220
+ /** Vertices drawn (non-indexed) and uploaded by the last `update`. */
221
+ vertexCount: number;
222
+ /**
223
+ * Indices drawn (`drawIndexed`) when > 0. With an index buffer and `indexCount` 0 the renderer
224
+ * skips the draw entirely (no non-indexed fallback, no draw call, nothing in
225
+ * `RenderStats`), so `update({ indexCount: 0 })` empties the mesh.
226
+ */
227
+ indexCount: number;
228
+ /**
229
+ * Buffers reallocated so far, by `update()` exceeding `capacity` or changing the index format.
230
+ * A caller that caches `vertexBuffer`/`indexBuffer` (a drawable, a bind group) re-reads them
231
+ * when this changes.
232
+ */
233
+ growths: number;
234
+ /**
235
+ * Bounding sphere in mesh space (the renderer carries it through each draw's instance matrix
236
+ * and culls against `camera.frustum`). From `MeshDesc.bounds`, `MeshUpdate.bounds` or, with
237
+ * `autoBounds`, the positions; `radius` Infinity when unknown (never culled). The object is
238
+ * owned by the mesh; read it, set it through `update({ bounds })`.
239
+ */
240
+ readonly bounds: MeshBounds;
241
+ /** Whether `update()` recomputes `bounds` from uploaded vertices (`MeshDesc.autoBounds`). */
242
+ readonly autoBounds: boolean;
243
+ /** Named index ranges from `MeshDesc.ranges`; storage only, the renderer never reads it. */
244
+ readonly ranges: Record<string, MeshRange> | undefined;
245
+ /** The layout's position attribute (location 0) has a z component. */
246
+ private readonly pos3;
247
+ private readonly cap;
248
+ /** 4-byte scratch for the last index of an odd uint16 count at the end of its buffer. */
249
+ private readonly tail16;
250
+ constructor(device: GPUDevice, desc: MeshDesc);
251
+ /** Room in the buffers (vertices, indices); `indices` is 0 for a non-indexed mesh. */
252
+ get capacity(): MeshCapacity;
253
+ /**
254
+ * Replace geometry (`MeshUpdate`). Writes with `queue.writeBuffer` straight from each view's
255
+ * buffer and reuses the GPU buffers while the counts fit `capacity`; grows them (1.5×) only
256
+ * when a count exceeds it or the index format changes. Returns true when a buffer was
257
+ * reallocated (`growths` counts them). `bounds` are copied when given, else recomputed from
258
+ * the uploaded positions when `autoBounds` is on (a `Float32Array` view is read in place;
259
+ * any other view type gets one over the same buffer). Allocation-free otherwise.
260
+ *
261
+ * A `MeshReply` (`{ buffer, vertexCount, indexCount?, bounds? }`, a Worker's message) is the
262
+ * same upload read straight out of the one transferred buffer; it allocates the two views.
263
+ */
264
+ update(u: MeshUpdate | MeshReply): boolean;
265
+ private updateFromReply;
266
+ private updateViews;
267
+ /**
268
+ * Bounding sphere of the first `count` vertices of `view` in this layout: the centre of their
269
+ * axis-aligned box, the radius the farthest vertex from it. 2D positions have z = 0.
270
+ */
271
+ private computeBounds;
272
+ /** `writeBuffer` wants 4-byte sizes and offsets; a uint16 count may be odd. */
273
+ private writeIndices;
274
+ /** The `GPUVertexBufferLayout` of `layout` (buffer slot 0 of every pipeline drawing it). */
275
+ get vertexBufferLayout(): GPUVertexBufferLayout;
276
+ destroy(): void;
277
+ private makeVertexBuffer;
278
+ private makeIndexBuffer;
279
+ }
280
+ /** Unit quad centred on the origin (-0.5..0.5), uv (0,0) top-left, white. */
281
+ export declare function quadGeometry(): {
282
+ vertices: Float32Array;
283
+ indices: Uint16Array;
284
+ };