@drawcall/lod 0.2.0 → 0.3.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 (364) hide show
  1. package/README.md +8 -6
  2. package/dist/bake.d.ts +22 -0
  3. package/dist/bake.js +88 -0
  4. package/dist/bake.js.map +1 -0
  5. package/dist/baked/codec.d.ts +3 -6
  6. package/dist/baked/codec.js +48 -154
  7. package/dist/baked/codec.js.map +1 -1
  8. package/dist/baked/coverage.d.ts +6 -3
  9. package/dist/baked/coverage.js +6 -3
  10. package/dist/baked/coverage.js.map +1 -1
  11. package/dist/baked/fields.d.ts +9 -0
  12. package/dist/baked/fields.js +22 -0
  13. package/dist/baked/fields.js.map +1 -0
  14. package/dist/baked/index.d.ts +12 -6
  15. package/dist/baked/index.js +22 -20
  16. package/dist/baked/index.js.map +1 -1
  17. package/dist/baked/interior/faces.d.ts +4 -3
  18. package/dist/baked/interior/faces.js +13 -10
  19. package/dist/baked/interior/faces.js.map +1 -1
  20. package/dist/baked/interior/material.d.ts +7 -10
  21. package/dist/baked/interior/material.js +29 -36
  22. package/dist/baked/interior/material.js.map +1 -1
  23. package/dist/baked/interior/rooms.js +1 -1
  24. package/dist/baked/interior/rooms.js.map +1 -1
  25. package/dist/baked/low.js +5 -4
  26. package/dist/baked/low.js.map +1 -1
  27. package/dist/baked/raster.js +6 -6
  28. package/dist/baked/raster.js.map +1 -1
  29. package/dist/baked/textures.d.ts +17 -0
  30. package/dist/baked/textures.js +95 -0
  31. package/dist/baked/textures.js.map +1 -0
  32. package/dist/baked/transfer.js +19 -18
  33. package/dist/baked/transfer.js.map +1 -1
  34. package/dist/baked/unwrap.js +4 -3
  35. package/dist/baked/unwrap.js.map +1 -1
  36. package/dist/baked/xatlas.js.map +1 -1
  37. package/dist/codec/container.d.ts +8 -0
  38. package/dist/codec/container.js +63 -0
  39. package/dist/codec/container.js.map +1 -0
  40. package/dist/codec/mesh.d.ts +8 -0
  41. package/dist/{mesh/codec.js → codec/mesh.js} +80 -52
  42. package/dist/codec/mesh.js.map +1 -0
  43. package/dist/dispose.d.ts +7 -4
  44. package/dist/dispose.js +20 -22
  45. package/dist/dispose.js.map +1 -1
  46. package/dist/gpu.d.ts +39 -0
  47. package/dist/gpu.js +41 -0
  48. package/dist/gpu.js.map +1 -0
  49. package/dist/impostor/bake/atlas.d.ts +4 -4
  50. package/dist/impostor/bake/atlas.js +12 -12
  51. package/dist/impostor/bake/atlas.js.map +1 -1
  52. package/dist/impostor/bake/fit.d.ts +8 -0
  53. package/dist/impostor/bake/fit.js +28 -0
  54. package/dist/impostor/bake/fit.js.map +1 -0
  55. package/dist/impostor/bake/index.d.ts +22 -14
  56. package/dist/impostor/bake/index.js +41 -134
  57. package/dist/impostor/bake/index.js.map +1 -1
  58. package/dist/impostor/bake/materials.d.ts +3 -3
  59. package/dist/impostor/bake/materials.js +51 -13
  60. package/dist/impostor/bake/materials.js.map +1 -1
  61. package/dist/impostor/bake/sheet.d.ts +8 -0
  62. package/dist/impostor/bake/sheet.js +90 -0
  63. package/dist/impostor/bake/sheet.js.map +1 -0
  64. package/dist/impostor/bake/source.d.ts +2 -2
  65. package/dist/impostor/bake/source.js +8 -19
  66. package/dist/impostor/bake/source.js.map +1 -1
  67. package/dist/impostor/codec.d.ts +4 -5
  68. package/dist/impostor/codec.js +36 -109
  69. package/dist/impostor/codec.js.map +1 -1
  70. package/dist/impostor/impostor.d.ts +31 -7
  71. package/dist/impostor/impostor.js +21 -6
  72. package/dist/impostor/impostor.js.map +1 -1
  73. package/dist/impostor/ktx2/encode.d.ts +26 -0
  74. package/dist/impostor/ktx2/encode.js +117 -0
  75. package/dist/impostor/ktx2/encode.js.map +1 -0
  76. package/dist/impostor/ktx2/transcode.d.ts +3 -0
  77. package/dist/impostor/ktx2/transcode.js +99 -0
  78. package/dist/impostor/ktx2/transcode.js.map +1 -0
  79. package/dist/impostor/ktx2/uastc.d.ts +7 -0
  80. package/dist/impostor/ktx2/uastc.js +64 -0
  81. package/dist/impostor/ktx2/uastc.js.map +1 -0
  82. package/dist/impostor/ktx2/wasm/encoder.d.ts +4 -0
  83. package/dist/impostor/ktx2/wasm/encoder.js +10 -0
  84. package/dist/impostor/ktx2/wasm/encoder.js.map +1 -0
  85. package/dist/impostor/ktx2/wasm/transcoder.d.ts +3 -0
  86. package/dist/impostor/ktx2/wasm/transcoder.js +9 -0
  87. package/dist/impostor/ktx2/wasm/transcoder.js.map +1 -0
  88. package/dist/impostor/ktx2/worker.d.ts +1 -0
  89. package/dist/impostor/ktx2/worker.js +12 -0
  90. package/dist/impostor/ktx2/worker.js.map +1 -0
  91. package/dist/impostor/mesh/card.d.ts +3 -3
  92. package/dist/impostor/mesh/card.js +7 -7
  93. package/dist/impostor/mesh/card.js.map +1 -1
  94. package/dist/impostor/mesh/index.d.ts +5 -4
  95. package/dist/impostor/mesh/index.js +8 -9
  96. package/dist/impostor/mesh/index.js.map +1 -1
  97. package/dist/impostor/mesh/material.d.ts +18 -9
  98. package/dist/impostor/mesh/material.js +40 -27
  99. package/dist/impostor/mesh/material.js.map +1 -1
  100. package/dist/impostor/mesh/surface.d.ts +1 -1
  101. package/dist/impostor/mesh/surface.js +13 -9
  102. package/dist/impostor/mesh/surface.js.map +1 -1
  103. package/dist/impostor/mesh/textures.d.ts +3 -3
  104. package/dist/impostor/mesh/textures.js +24 -34
  105. package/dist/impostor/mesh/textures.js.map +1 -1
  106. package/dist/index.d.ts +15 -10
  107. package/dist/index.js +13 -8
  108. package/dist/index.js.map +1 -1
  109. package/dist/instanced/camera.d.ts +46 -0
  110. package/dist/instanced/camera.js +70 -0
  111. package/dist/instanced/camera.js.map +1 -0
  112. package/dist/instanced/chunk.d.ts +97 -0
  113. package/dist/instanced/chunk.js +156 -0
  114. package/dist/instanced/chunk.js.map +1 -0
  115. package/dist/instanced/chunks.d.ts +60 -0
  116. package/dist/instanced/chunks.js +208 -0
  117. package/dist/instanced/chunks.js.map +1 -0
  118. package/dist/instanced/cull.d.ts +28 -0
  119. package/dist/instanced/cull.js +22 -0
  120. package/dist/instanced/cull.js.map +1 -0
  121. package/dist/instanced/index.d.ts +96 -66
  122. package/dist/instanced/index.js +229 -288
  123. package/dist/instanced/index.js.map +1 -1
  124. package/dist/instanced/key.d.ts +19 -0
  125. package/dist/instanced/key.js +45 -0
  126. package/dist/instanced/key.js.map +1 -0
  127. package/dist/instanced/levels.d.ts +60 -0
  128. package/dist/instanced/levels.js +130 -0
  129. package/dist/instanced/levels.js.map +1 -0
  130. package/dist/instanced/lists.d.ts +70 -0
  131. package/dist/instanced/lists.js +133 -0
  132. package/dist/instanced/lists.js.map +1 -0
  133. package/dist/instanced/measure.d.ts +28 -0
  134. package/dist/instanced/measure.js +203 -0
  135. package/dist/instanced/measure.js.map +1 -0
  136. package/dist/instanced/meshes.d.ts +42 -51
  137. package/dist/instanced/meshes.js +158 -180
  138. package/dist/instanced/meshes.js.map +1 -1
  139. package/dist/instanced/mirror.d.ts +20 -0
  140. package/dist/instanced/mirror.js +37 -0
  141. package/dist/instanced/mirror.js.map +1 -0
  142. package/dist/instanced/pages/buffers.d.ts +37 -0
  143. package/dist/instanced/pages/buffers.js +15 -0
  144. package/dist/instanced/pages/buffers.js.map +1 -0
  145. package/dist/instanced/pages/chunk.d.ts +51 -0
  146. package/dist/instanced/pages/chunk.js +81 -0
  147. package/dist/instanced/pages/chunk.js.map +1 -0
  148. package/dist/instanced/pages/index.d.ts +74 -0
  149. package/dist/instanced/pages/index.js +269 -0
  150. package/dist/instanced/pages/index.js.map +1 -0
  151. package/dist/instanced/pages/passes.d.ts +21 -0
  152. package/dist/instanced/pages/passes.js +52 -0
  153. package/dist/instanced/pages/passes.js.map +1 -0
  154. package/dist/instanced/pages/slots.d.ts +11 -0
  155. package/dist/instanced/pages/slots.js +90 -0
  156. package/dist/instanced/pages/slots.js.map +1 -0
  157. package/dist/instanced/pages/workgroup.d.ts +14 -0
  158. package/dist/instanced/pages/workgroup.js +38 -0
  159. package/dist/instanced/pages/workgroup.js.map +1 -0
  160. package/dist/instanced/raycast.d.ts +13 -11
  161. package/dist/instanced/raycast.js +33 -40
  162. package/dist/instanced/raycast.js.map +1 -1
  163. package/dist/instanced/rows.d.ts +108 -0
  164. package/dist/instanced/rows.js +209 -0
  165. package/dist/instanced/rows.js.map +1 -0
  166. package/dist/instanced/shape.d.ts +25 -0
  167. package/dist/instanced/shape.js +51 -0
  168. package/dist/instanced/shape.js.map +1 -0
  169. package/dist/instanced/sort.d.ts +63 -0
  170. package/dist/instanced/sort.js +162 -0
  171. package/dist/instanced/sort.js.map +1 -0
  172. package/dist/instanced/update.d.ts +30 -0
  173. package/dist/instanced/update.js +207 -0
  174. package/dist/instanced/update.js.map +1 -0
  175. package/dist/levels/bounds.d.ts +21 -0
  176. package/dist/levels/bounds.js +42 -0
  177. package/dist/levels/bounds.js.map +1 -0
  178. package/dist/levels/cameras.d.ts +48 -0
  179. package/dist/levels/cameras.js +122 -0
  180. package/dist/levels/cameras.js.map +1 -0
  181. package/dist/levels/compile/contexts.d.ts +30 -0
  182. package/dist/levels/compile/contexts.js +18 -0
  183. package/dist/levels/compile/contexts.js.map +1 -0
  184. package/dist/levels/compile/index.d.ts +39 -0
  185. package/dist/levels/compile/index.js +185 -0
  186. package/dist/levels/compile/index.js.map +1 -0
  187. package/dist/levels/compile/pipelines.d.ts +26 -0
  188. package/dist/levels/compile/pipelines.js +177 -0
  189. package/dist/levels/compile/pipelines.js.map +1 -0
  190. package/dist/levels/compiles.d.ts +29 -0
  191. package/dist/levels/compiles.js +50 -0
  192. package/dist/levels/compiles.js.map +1 -0
  193. package/dist/levels/draw.d.ts +102 -0
  194. package/dist/levels/draw.js +401 -0
  195. package/dist/levels/draw.js.map +1 -0
  196. package/dist/levels/fade.d.ts +69 -0
  197. package/dist/levels/fade.js +150 -0
  198. package/dist/levels/fade.js.map +1 -0
  199. package/dist/levels/index.d.ts +99 -0
  200. package/dist/levels/index.js +155 -0
  201. package/dist/levels/index.js.map +1 -0
  202. package/dist/levels/item.d.ts +38 -0
  203. package/dist/levels/item.js +97 -0
  204. package/dist/levels/item.js.map +1 -0
  205. package/dist/levels/load.d.ts +31 -0
  206. package/dist/levels/load.js +142 -0
  207. package/dist/levels/load.js.map +1 -0
  208. package/dist/levels/manager.d.ts +159 -0
  209. package/dist/levels/manager.js +339 -0
  210. package/dist/levels/manager.js.map +1 -0
  211. package/dist/{material.js → levels/material.js} +4 -3
  212. package/dist/levels/material.js.map +1 -0
  213. package/dist/levels/renderer.d.ts +29 -0
  214. package/dist/levels/renderer.js +41 -0
  215. package/dist/levels/renderer.js.map +1 -0
  216. package/dist/levels/requests.d.ts +49 -0
  217. package/dist/levels/requests.js +95 -0
  218. package/dist/levels/requests.js.map +1 -0
  219. package/dist/levels/screen.d.ts +14 -0
  220. package/dist/levels/screen.js +21 -0
  221. package/dist/levels/screen.js.map +1 -0
  222. package/dist/levels/wait.d.ts +27 -0
  223. package/dist/levels/wait.js +61 -0
  224. package/dist/levels/wait.js.map +1 -0
  225. package/dist/loader/build.d.ts +10 -0
  226. package/dist/loader/build.js +28 -0
  227. package/dist/loader/build.js.map +1 -0
  228. package/dist/loader/cache.d.ts +6 -9
  229. package/dist/loader/cache.js +17 -24
  230. package/dist/loader/cache.js.map +1 -1
  231. package/dist/loader/context.d.ts +46 -0
  232. package/dist/loader/context.js +91 -0
  233. package/dist/loader/context.js.map +1 -0
  234. package/dist/loader/{provenance.d.ts → dependencies.d.ts} +5 -3
  235. package/dist/loader/{provenance.js → dependencies.js} +12 -4
  236. package/dist/loader/dependencies.js.map +1 -0
  237. package/dist/loader/index.d.ts +62 -0
  238. package/dist/loader/index.js +284 -0
  239. package/dist/loader/index.js.map +1 -0
  240. package/dist/loader/level.d.ts +41 -0
  241. package/dist/loader/level.js +140 -0
  242. package/dist/loader/level.js.map +1 -0
  243. package/dist/loader/request.d.ts +87 -0
  244. package/dist/loader/request.js +59 -0
  245. package/dist/loader/request.js.map +1 -0
  246. package/dist/loader/url.d.ts +5 -2
  247. package/dist/loader/url.js +10 -6
  248. package/dist/loader/url.js.map +1 -1
  249. package/dist/lod.d.ts +81 -40
  250. package/dist/lod.js +196 -149
  251. package/dist/lod.js.map +1 -1
  252. package/dist/meshopt.d.ts +6 -0
  253. package/dist/meshopt.js +19 -0
  254. package/dist/meshopt.js.map +1 -0
  255. package/dist/simplify/cards.d.ts +14 -0
  256. package/dist/simplify/cards.js +128 -0
  257. package/dist/simplify/cards.js.map +1 -0
  258. package/dist/{simplify.d.ts → simplify/index.d.ts} +7 -4
  259. package/dist/{simplify.js → simplify/index.js} +41 -23
  260. package/dist/simplify/index.js.map +1 -0
  261. package/dist/{bounds.d.ts → source/detail.d.ts} +4 -23
  262. package/dist/{bounds.js → source/detail.js} +19 -51
  263. package/dist/source/detail.js.map +1 -0
  264. package/dist/source/deviation.js +6 -6
  265. package/dist/source/deviation.js.map +1 -1
  266. package/dist/source/{shading.d.ts → evaluator.d.ts} +10 -10
  267. package/dist/source/{shading.js → evaluator.js} +5 -5
  268. package/dist/source/evaluator.js.map +1 -0
  269. package/dist/source/{trace.d.ts → raycaster.d.ts} +6 -6
  270. package/dist/source/{trace.js → raycaster.js} +8 -8
  271. package/dist/source/raycaster.js.map +1 -0
  272. package/dist/source/{texels.d.ts → sampler.d.ts} +1 -1
  273. package/dist/source/{texels.js → sampler.js} +3 -3
  274. package/dist/source/sampler.js.map +1 -0
  275. package/dist/source/source.d.ts +1 -1
  276. package/dist/source/source.js +1 -1
  277. package/dist/source/source.js.map +1 -1
  278. package/dist/source/surface.js +1 -1
  279. package/dist/source/surface.js.map +1 -1
  280. package/dist/task.d.ts +6 -0
  281. package/dist/{pause.js → task.js} +5 -5
  282. package/dist/task.js.map +1 -0
  283. package/dist/three.d.ts +13 -24
  284. package/dist/three.js +26 -53
  285. package/dist/three.js.map +1 -1
  286. package/dist/tsl.d.ts +8 -12
  287. package/dist/tsl.js +11 -39
  288. package/dist/tsl.js.map +1 -1
  289. package/dist/typegpu.d.ts +37 -0
  290. package/dist/typegpu.js +37 -0
  291. package/dist/typegpu.js.map +1 -0
  292. package/dist/wind/bounds.js +2 -2
  293. package/dist/wind/bounds.js.map +1 -1
  294. package/dist/wind/hooks.d.ts +7 -4
  295. package/dist/wind/hooks.js +5 -2
  296. package/dist/wind/hooks.js.map +1 -1
  297. package/dist/wind/index.d.ts +2 -2
  298. package/dist/wind/index.js +15 -15
  299. package/dist/wind/index.js.map +1 -1
  300. package/dist/wind/sway.d.ts +2 -0
  301. package/dist/wind/sway.js +4 -1
  302. package/dist/wind/sway.js.map +1 -1
  303. package/package.json +18 -8
  304. package/skills/lod/SKILL.md +108 -31
  305. package/dist/bounds.js.map +0 -1
  306. package/dist/compile.d.ts +0 -4
  307. package/dist/compile.js +0 -100
  308. package/dist/compile.js.map +0 -1
  309. package/dist/deferred.d.ts +0 -12
  310. package/dist/deferred.js +0 -27
  311. package/dist/deferred.js.map +0 -1
  312. package/dist/fade.d.ts +0 -36
  313. package/dist/fade.js +0 -112
  314. package/dist/fade.js.map +0 -1
  315. package/dist/instanced/args.d.ts +0 -20
  316. package/dist/instanced/args.js +0 -77
  317. package/dist/instanced/args.js.map +0 -1
  318. package/dist/instanced/blocks.d.ts +0 -66
  319. package/dist/instanced/blocks.js +0 -294
  320. package/dist/instanced/blocks.js.map +0 -1
  321. package/dist/instanced/dirty.d.ts +0 -15
  322. package/dist/instanced/dirty.js +0 -96
  323. package/dist/instanced/dirty.js.map +0 -1
  324. package/dist/instanced/parts.d.ts +0 -14
  325. package/dist/instanced/parts.js +0 -79
  326. package/dist/instanced/parts.js.map +0 -1
  327. package/dist/instanced/select.d.ts +0 -92
  328. package/dist/instanced/select.js +0 -315
  329. package/dist/instanced/select.js.map +0 -1
  330. package/dist/instanced/store.d.ts +0 -31
  331. package/dist/instanced/store.js +0 -96
  332. package/dist/instanced/store.js.map +0 -1
  333. package/dist/levels.d.ts +0 -95
  334. package/dist/levels.js +0 -171
  335. package/dist/levels.js.map +0 -1
  336. package/dist/loader/bundle.d.ts +0 -25
  337. package/dist/loader/bundle.js +0 -241
  338. package/dist/loader/bundle.js.map +0 -1
  339. package/dist/loader/provenance.js.map +0 -1
  340. package/dist/loader.d.ts +0 -55
  341. package/dist/loader.js +0 -239
  342. package/dist/loader.js.map +0 -1
  343. package/dist/material.js.map +0 -1
  344. package/dist/mesh/codec.d.ts +0 -4
  345. package/dist/mesh/codec.js.map +0 -1
  346. package/dist/pause.d.ts +0 -6
  347. package/dist/pause.js.map +0 -1
  348. package/dist/queue.d.ts +0 -2
  349. package/dist/queue.js +0 -33
  350. package/dist/queue.js.map +0 -1
  351. package/dist/renderer.d.ts +0 -21
  352. package/dist/renderer.js +0 -83
  353. package/dist/renderer.js.map +0 -1
  354. package/dist/residency.d.ts +0 -44
  355. package/dist/residency.js +0 -205
  356. package/dist/residency.js.map +0 -1
  357. package/dist/simplify.js.map +0 -1
  358. package/dist/source/shading.js.map +0 -1
  359. package/dist/source/texels.js.map +0 -1
  360. package/dist/source/trace.js.map +0 -1
  361. package/dist/view.d.ts +0 -45
  362. package/dist/view.js +0 -131
  363. package/dist/view.js.map +0 -1
  364. /package/dist/{material.d.ts → levels/material.d.ts} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/instanced/store.ts"],"names":[],"mappings":"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"}
package/dist/levels.d.ts DELETED
@@ -1,95 +0,0 @@
1
- import { Color, type Box3, type Object3D } from "three/webgpu";
2
- /** Share of each level's range over which its finer neighbour fades out. */
3
- export declare const FADE = 0.1;
4
- /** A reusable level description. Deferred objects arrive already placed in the owner's space. */
5
- export type LodLevel = {
6
- object: Object3D;
7
- maxPixels?: number;
8
- load?: never;
9
- box?: never;
10
- } | {
11
- load: () => Promise<Object3D>;
12
- maxPixels: number;
13
- box: Box3;
14
- object?: never;
15
- };
16
- /** One level of an owner, as `Lod.levels` and `InstancedLod.levels` show it. */
17
- export interface LevelView {
18
- /** Level 0 is the source. */
19
- readonly index: number;
20
- /**
21
- * The level's object, undefined until a deferred level has arrived. For a Lod it is
22
- * drawn, and its visibility is the Lod's switch. For an InstancedLod it is the template
23
- * the level's instanced meshes are made from: never in the scene, so `levelOf` tells
24
- * what draws.
25
- */
26
- readonly object: Object3D | undefined;
27
- /** A deferred level's bounds in the owner's space. */
28
- readonly box: Box3 | undefined;
29
- /**
30
- * Largest on-screen height, in CSS pixels × Lod.quality, at which this level draws.
31
- * Level 0 is Infinity. Every later threshold must be at most 0.9 of its predecessor.
32
- * Defaults use measured surface deviation, impostor texels, or half the previous
33
- * threshold (512 for level 1), raised where needed to leave room for fades.
34
- */
35
- maxPixels: number;
36
- }
37
- /** One owner's resolved threshold and drawable, separate from its reusable description. */
38
- export declare class Level implements LevelView {
39
- readonly input: LodLevel;
40
- readonly index: number;
41
- private readonly ladder;
42
- readonly tint: Color;
43
- readonly box: Box3 | undefined;
44
- object: Object3D | undefined;
45
- nested: boolean;
46
- explicit: number | null;
47
- base: number;
48
- value: number;
49
- constructor(input: LodLevel, index: number, ladder: readonly Level[]);
50
- get maxPixels(): number;
51
- set maxPixels(value: number);
52
- }
53
- /** Surface deviation from the source, in the source's units. */
54
- export declare const recordDeviation: (level: Object3D, deviation: number) => void;
55
- export declare const deviationOf: (level: Object3D) => number | undefined;
56
- /** Descriptions for a new owner, retaining threshold edits and sharing deferred decode. */
57
- export declare function cloneLevels(levels: readonly Level[]): LodLevel[];
58
- /** What a level's default threshold is measured from: surface deviation, else impostor texels. */
59
- interface Measured {
60
- deviation?: number;
61
- texels?: number;
62
- }
63
- export declare function measure(object: Object3D): Measured;
64
- /** A level to resolve: `measured` is absent for a deferred level, whose own maxPixels stands in. */
65
- interface Measurable {
66
- maxPixels?: number;
67
- measured?: Measured;
68
- }
69
- /** Resolve thresholds from measurements without constructing renderer state. */
70
- export declare function resolveThresholds(levels: readonly Measurable[], diameter: number): number[];
71
- /** Resolve defaults once, retaining writable owner thresholds. */
72
- export declare function estimate(levels: readonly Level[], diameter: number): void;
73
- /** Throws when neighbouring fades overlap. */
74
- export declare function validate(levels: readonly {
75
- maxPixels: number;
76
- }[]): void;
77
- /** The level drawn at `height`: the last one it fits, or `forceLevel`. */
78
- export declare function levelAt(levels: readonly Level[], height: number, forceLevel: number | null): Level;
79
- /** The coarsest level whose maxPixels `height` still fits; level 0 fits any height. */
80
- export declare function lastFitting(levels: readonly {
81
- maxPixels: number;
82
- }[], height: number): number;
83
- /**
84
- * How far `level` has faded in over its finer neighbour at `height`, in [0, 1): 0 when
85
- * no fade is under way (the finer level is gone). See fade.ts for how both draw it.
86
- */
87
- export declare function fadeProgress(levels: readonly Level[], level: Level, height: number): number;
88
- /** Give each level its debug tint, or white. */
89
- export declare function tintLevels(levels: readonly Level[], debug: boolean): void;
90
- export declare const DEMAND = 0.8;
91
- /** Logical demand and the next finer fade partner, including a small approach margin. */
92
- export declare function demandLevels(levels: readonly Level[], height: number, forced: number | null): Level[];
93
- /** Nearest ready finer level, else nearest coarser; -1 draws nothing until one is ready. */
94
- export declare function fallbacks(levels: readonly Level[], ready: ReadonlySet<Level>): number[];
95
- export {};
package/dist/levels.js DELETED
@@ -1,171 +0,0 @@
1
- import { Color } from "three/webgpu";
2
- import { texelPixels } from "./impostor/impostor.js";
3
- import { isImpostorMesh, isLOD } from "./three.js";
4
- import { at } from "./at.js";
5
- /** Share of each level's range over which its finer neighbour fades out. */
6
- export const FADE = 0.1;
7
- /** One owner's resolved threshold and drawable, separate from its reusable description. */
8
- export class Level {
9
- input;
10
- index;
11
- ladder;
12
- tint = new Color(1, 1, 1);
13
- box;
14
- object;
15
- nested;
16
- explicit;
17
- base = Infinity;
18
- value = Infinity;
19
- constructor(input, index, ladder) {
20
- this.input = input;
21
- this.index = index;
22
- this.ladder = ladder;
23
- this.explicit = input.maxPixels ?? null;
24
- if (input.maxPixels !== undefined)
25
- checkThreshold(input.maxPixels, index);
26
- this.box = input.box;
27
- if (this.box && !this.box.isEmpty() && ![...this.box.min.toArray(), ...this.box.max.toArray()].every(Number.isFinite))
28
- throw new Error("Lod: a deferred level's box must be finite");
29
- this.object = input.object?.clone();
30
- this.nested = this.object ? isLOD(this.object) : false;
31
- }
32
- get maxPixels() {
33
- return this.value;
34
- }
35
- set maxPixels(value) {
36
- checkThreshold(value, this.index);
37
- this.explicit = value;
38
- resolve(this.ladder);
39
- }
40
- }
41
- function checkThreshold(value, index) {
42
- if (index === 0 && value !== Infinity)
43
- throw new Error(`Lod: level 0, the source, is used at any height: its maxPixels is Infinity, not ${value}`);
44
- if (!(value > 0))
45
- throw new Error(`Lod: maxPixels must be > 0, got ${value}`);
46
- }
47
- const deviations = new WeakMap();
48
- /** Surface deviation from the source, in the source's units. */
49
- export const recordDeviation = (level, deviation) => void deviations.set(level, deviation);
50
- export const deviationOf = (level) => deviations.get(level);
51
- /** Descriptions for a new owner, retaining threshold edits and sharing deferred decode. */
52
- export function cloneLevels(levels) {
53
- return levels.map((level) => {
54
- const { input, explicit } = level;
55
- if (input.load)
56
- return { ...input, maxPixels: level.maxPixels };
57
- return { object: input.object, ...(explicit === null ? {} : { maxPixels: explicit }) };
58
- });
59
- }
60
- export function measure(object) {
61
- return { deviation: deviationOf(object), texels: isImpostorMesh(object) ? texelPixels(object.impostor) : undefined };
62
- }
63
- function bases(levels, diameter) {
64
- let finer = 1024;
65
- return levels.map(({ maxPixels, measured }, index) => {
66
- if (index === 0)
67
- return Infinity;
68
- const base = !measured
69
- ? maxPixels
70
- : measured.deviation !== undefined
71
- ? diameter / Math.max(measured.deviation, diameter * 1e-4)
72
- : (measured.texels ?? finer / 2);
73
- if (base === undefined)
74
- throw new Error("Lod: a deferred level needs maxPixels");
75
- finer = base;
76
- return base;
77
- });
78
- }
79
- /** Resolve thresholds from measurements without constructing renderer state. */
80
- export function resolveThresholds(levels, diameter) {
81
- const defaults = bases(levels, diameter);
82
- const thresholds = levels.map((level, index) => {
83
- if (level.maxPixels !== undefined)
84
- checkThreshold(level.maxPixels, index);
85
- return { index, explicit: level.maxPixels ?? null, base: defaults[index] ?? Infinity, value: Infinity };
86
- });
87
- resolve(thresholds);
88
- validate(thresholds.map(({ value }) => ({ maxPixels: value })));
89
- return thresholds.map(({ value }) => value);
90
- }
91
- /** Resolve defaults once, retaining writable owner thresholds. */
92
- export function estimate(levels, diameter) {
93
- const defaults = bases(levels.map(({ input }) => ({ maxPixels: input.maxPixels, measured: input.object && measure(input.object) })), diameter);
94
- levels.forEach((level, index) => {
95
- level.base = defaults[index] ?? Infinity;
96
- });
97
- resolve(levels);
98
- }
99
- function resolve(levels) {
100
- let next = 0;
101
- for (let i = levels.length - 1; i >= 0; i--) {
102
- const level = at(levels, i);
103
- level.value = level.index === 0 ? Infinity : (level.explicit ?? Math.max(level.base, 2 * next));
104
- next = level.value;
105
- }
106
- }
107
- /** Throws when neighbouring fades overlap. */
108
- export function validate(levels) {
109
- levels.forEach((level, i) => {
110
- const finer = levels[i - 1];
111
- if (finer && level.maxPixels > finer.maxPixels * (1 - FADE))
112
- throw new Error(`Lod: level ${i} has maxPixels ${level.maxPixels}, but at most ${finer.maxPixels * (1 - FADE)} (${1 - FADE} × level ${i - 1}'s ${finer.maxPixels}) leaves room for the fades`);
113
- });
114
- }
115
- /** The level drawn at `height`: the last one it fits, or `forceLevel`. */
116
- export function levelAt(levels, height, forceLevel) {
117
- const level = levels[forceLevel ?? lastFitting(levels, height)];
118
- if (!level)
119
- throw new Error(`Lod: forceLevel ${forceLevel} is not a level`);
120
- return level;
121
- }
122
- /** The coarsest level whose maxPixels `height` still fits; level 0 fits any height. */
123
- export function lastFitting(levels, height) {
124
- for (let i = levels.length - 1; i > 0; i--)
125
- if (height <= at(levels, i).maxPixels)
126
- return i;
127
- return 0;
128
- }
129
- /**
130
- * How far `level` has faded in over its finer neighbour at `height`, in [0, 1): 0 when
131
- * no fade is under way (the finer level is gone). See fade.ts for how both draw it.
132
- */
133
- export function fadeProgress(levels, level, height) {
134
- const finer = levels[level.index - 1];
135
- if (!finer || level.nested || finer.nested)
136
- return 0;
137
- const top = level.maxPixels;
138
- const t = Math.min(Math.max((height - top * (1 - FADE)) / (top * FADE), 0), 1);
139
- // smoothstep, as the GPU's selection computes it
140
- return t * t * (3 - 2 * t);
141
- }
142
- /** Debug tints by level index, see `Lod.debug`. */
143
- const TINTS = [0xff6060, 0x60ff60, 0x6080ff, 0xffd040, 0xff60ff, 0x60ffff].map((hex) => new Color(hex));
144
- /** Give each level its debug tint, or white. */
145
- export function tintLevels(levels, debug) {
146
- for (const level of levels)
147
- level.tint.set(debug ? (TINTS[level.index % TINTS.length] ?? 0xffffff) : 0xffffff);
148
- }
149
- // Start refinement 20% below its lower fade bound, leaving time for decode and GPU preparation.
150
- export const DEMAND = 0.8;
151
- /** Logical demand and the next finer fade partner, including a small approach margin. */
152
- export function demandLevels(levels, height, forced) {
153
- const desired = levelAt(levels, height, forced);
154
- if (forced !== null)
155
- return [desired];
156
- const finer = levels[desired.index - 1];
157
- return finer && height >= DEMAND * desired.maxPixels * (1 - FADE) ? [desired, finer] : [desired];
158
- }
159
- /** Nearest ready finer level, else nearest coarser; -1 draws nothing until one is ready. */
160
- export function fallbacks(levels, ready) {
161
- return levels.map((_, index) => {
162
- for (let finer = index; finer >= 0; finer--)
163
- if (ready.has(at(levels, finer)))
164
- return finer;
165
- for (let coarser = index + 1; coarser < levels.length; coarser++)
166
- if (ready.has(at(levels, coarser)))
167
- return coarser;
168
- return -1;
169
- });
170
- }
171
- //# sourceMappingURL=levels.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"levels.js","sourceRoot":"","sources":["../src/levels.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- import { type Object3D } from "three/webgpu";
2
- import { disposeRejected } from "../dispose.js";
3
- import { type ImpostorMeshOptions } from "../impostor/mesh/index.js";
4
- import { type LodLevel } from "../levels.js";
5
- import type { LevelRequest } from "../loader.js";
6
- export type Kind = "source" | LevelRequest["type"];
7
- /** The ladder indices whose payload is saved as its own entry: every derived drawable level except the inlined coarsest. */
8
- export declare function separateLevels(kinds: readonly Kind[]): number[];
9
- /**
10
- * Inline coarse derived payloads; a source-only request leaves its source deferred. The index
11
- * keeps what thresholds are measured from, not thresholds or impostor draw options, so changing
12
- * either reuses the cache. `levels` maps each deferred level index to its payload.
13
- */
14
- export declare function encode(objects: readonly Object3D[], kinds: readonly Kind[]): Promise<{
15
- index: Uint8Array;
16
- levels: Map<number, Uint8Array>;
17
- }>;
18
- /** What a request sets per level at decode, without changing cached content. */
19
- interface Requested {
20
- maxPixels?: number;
21
- draw?: ImpostorMeshOptions;
22
- }
23
- /** Index metadata exposes every drawable level without decoding its payload. `requested` holds level i's request at i. */
24
- export declare function decode(bytes: Uint8Array, requested: readonly Requested[], loadSource: () => Promise<Object3D>, loadLevel: (index: number) => Promise<Uint8Array>, onLevel?: (object: Object3D, index: number) => void | Promise<void>, release?: typeof disposeRejected): LodLevel[];
25
- export {};
@@ -1,241 +0,0 @@
1
- import { Box3, Group, Matrix4 } from "three/webgpu";
2
- import { decodeBakedMeshAsync, encodeBakedMesh } from "../baked/codec.js";
3
- import { boundingBox, measureLevels } from "../bounds.js";
4
- import { loadOnce } from "../deferred.js";
5
- import { disposeRejected } from "../dispose.js";
6
- import { decodeImpostorAsync, encodeImpostor } from "../impostor/codec.js";
7
- import { ImpostorMesh } from "../impostor/mesh/index.js";
8
- import { measure, recordDeviation, resolveThresholds } from "../levels.js";
9
- import { isImpostorMesh, isMesh } from "../three.js";
10
- import { decodeMeshAsync, encodeMesh } from "../mesh/codec.js";
11
- /** The coarsest drawable level, whose payload the index inlines unless it is the source, which loads from its URL. */
12
- function coarsestOf(kinds) {
13
- return kinds.reduce((last, kind, index) => (kind === "empty" ? last : index), -1);
14
- }
15
- /** The ladder indices whose payload is saved as its own entry: every derived drawable level except the inlined coarsest. */
16
- export function separateLevels(kinds) {
17
- const coarsest = coarsestOf(kinds);
18
- return kinds.flatMap((kind, index) => (kind === "source" || kind === "empty" || index === coarsest ? [] : [index]));
19
- }
20
- /**
21
- * Inline coarse derived payloads; a source-only request leaves its source deferred. The index
22
- * keeps what thresholds are measured from, not thresholds or impostor draw options, so changing
23
- * either reuses the cache. `levels` maps each deferred level index to its payload.
24
- */
25
- export async function encode(objects, kinds) {
26
- const payloads = [];
27
- const metadata = [];
28
- const materials = materialsOf(objects[0]);
29
- if (kinds.length !== objects.length)
30
- throw new Error("LodLoader: level kinds do not match levels");
31
- for (const [level, object] of objects.entries()) {
32
- const kind = kinds[level];
33
- if (!kind)
34
- throw new Error("LodLoader: missing level kind");
35
- const box = boundingBox(object);
36
- if (box.isEmpty() && kind !== "empty")
37
- throw new Error(`LodLoader: ${kind} level ${level} has an empty box`);
38
- const bytes = await payload(object, kind, materials);
39
- if (object.matrixAutoUpdate)
40
- object.updateMatrix();
41
- metadata.push({
42
- kind,
43
- name: object.name,
44
- ...measure(object),
45
- box: box.isEmpty() ? null : [...box.min.toArray(), ...box.max.toArray()],
46
- matrix: object.matrix.toArray(),
47
- matrixAutoUpdate: object.matrixAutoUpdate,
48
- castShadow: object.castShadow,
49
- receiveShadow: object.receiveShadow,
50
- length: bytes.byteLength,
51
- });
52
- payloads.push(bytes);
53
- }
54
- const coarsest = coarsestOf(kinds);
55
- if (coarsest < 0)
56
- throw new Error("LodLoader: cache has no drawable level");
57
- const coarse = coarsest > 0 ? payloads[coarsest] : new Uint8Array();
58
- if (!coarse)
59
- throw new Error("LodLoader: missing coarse payload");
60
- const header = new TextEncoder().encode(JSON.stringify(metadata));
61
- const index = new Uint8Array(8 + header.length + coarse.length);
62
- const view = new DataView(index.buffer);
63
- view.setUint32(0, 0x32444f4c, true);
64
- view.setUint32(4, header.length, true);
65
- index.set(header, 8);
66
- index.set(coarse, 8 + header.length);
67
- const levels = new Map(separateLevels(kinds).map((level) => {
68
- const bytes = payloads[level];
69
- if (!bytes)
70
- throw new Error(`LodLoader: missing payload ${level}`);
71
- return [level, bytes];
72
- }));
73
- return { index, levels };
74
- }
75
- async function payload(object, kind, materials) {
76
- switch (kind) {
77
- case "source":
78
- case "empty":
79
- return new Uint8Array();
80
- case "simplify":
81
- return encodeMesh(object, materials);
82
- case "baked":
83
- if (!isMesh(object))
84
- throw new Error("LodLoader: baked level is not a mesh");
85
- return encodeBakedMesh(object);
86
- case "impostor":
87
- if (!isImpostorMesh(object))
88
- throw new Error("LodLoader: impostor level is not an ImpostorMesh");
89
- return encodeImpostor(object.impostor);
90
- }
91
- }
92
- /** The inverse of `payload`; `read` has checked that a source or empty level has no bytes. */
93
- async function decodePayload(kind, bytes, loadSource, materials, draw) {
94
- switch (kind) {
95
- case "source":
96
- return loadSource();
97
- case "empty":
98
- return new Group();
99
- case "simplify":
100
- return decodeMeshAsync(await bytes(), await materials());
101
- case "baked":
102
- return decodeBakedMeshAsync(await bytes());
103
- case "impostor":
104
- return new ImpostorMesh(await decodeImpostorAsync(await bytes()), 1, draw);
105
- }
106
- }
107
- /** Index metadata exposes every drawable level without decoding its payload. `requested` holds level i's request at i. */
108
- export function decode(bytes, requested, loadSource, loadLevel, onLevel, release = disposeRejected) {
109
- const { metadata, coarsest, coarse } = read(bytes);
110
- if (requested.length !== metadata.length)
111
- fail("level count");
112
- const diameter = measureLevels(metadata, "LodLoader").own.radius * 2;
113
- const thresholds = resolveThresholds(metadata.map(({ deviation, texels }, index) => ({ maxPixels: requested[index]?.maxPixels, measured: { deviation, texels } })), diameter);
114
- const materials = async () => {
115
- const source = levels[0];
116
- if (!source)
117
- fail("missing source materials");
118
- return materialsOf(source.object ?? (await loadOnce(source.load).promise));
119
- };
120
- const levels = metadata.map((level, index) => {
121
- const load = async () => {
122
- const levelBytes = async () => {
123
- const payload = index === coarsest && coarsest > 0 ? coarse : await loadLevel(index);
124
- if (payload.length !== level.length)
125
- fail(`level ${index} payload length`);
126
- return payload;
127
- };
128
- const loaded = await decodePayload(level.kind, levelBytes, loadSource, materials, requested[index]?.draw);
129
- try {
130
- place(loaded, level);
131
- if (level.deviation !== undefined)
132
- recordDeviation(loaded, level.deviation);
133
- await onLevel?.(loaded, index);
134
- return loaded;
135
- }
136
- catch (error) {
137
- release(loaded);
138
- throw error;
139
- }
140
- };
141
- return {
142
- load,
143
- maxPixels: thresholds[index] ?? fail("missing threshold"),
144
- box: level.box.clone().applyMatrix4(level.matrix),
145
- };
146
- });
147
- return levels;
148
- }
149
- function materialsOf(object) {
150
- const materials = [];
151
- object?.traverse((node) => {
152
- if (isMesh(node))
153
- for (const material of [node.material].flat())
154
- materials.push(material);
155
- });
156
- return materials;
157
- }
158
- function place(object, level) {
159
- object.name = level.name;
160
- level.matrix.decompose(object.position, object.quaternion, object.scale);
161
- object.matrix.copy(level.matrix);
162
- object.matrixAutoUpdate = level.matrixAutoUpdate;
163
- object.castShadow = level.castShadow;
164
- object.receiveShadow = level.receiveShadow;
165
- }
166
- function read(bytes) {
167
- if (bytes.length < 8)
168
- fail("missing header");
169
- const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
170
- const length = view.getUint32(4, true);
171
- if (view.getUint32(0, true) !== 0x32444f4c || length > bytes.length - 8)
172
- fail("invalid header");
173
- const parsed = JSON.parse(new TextDecoder().decode(bytes.subarray(8, 8 + length)));
174
- if (!Array.isArray(parsed) || !parsed.length)
175
- fail("missing levels");
176
- const metadata = parsed.map((value) => {
177
- const meta = object(value);
178
- const kind = meta.kind;
179
- if (kind !== "simplify" && kind !== "baked" && kind !== "impostor" && kind !== "empty" && kind !== "source")
180
- fail("unknown level kind");
181
- if (typeof meta.name !== "string" ||
182
- typeof meta.castShadow !== "boolean" ||
183
- typeof meta.receiveShadow !== "boolean" ||
184
- typeof meta.matrixAutoUpdate !== "boolean")
185
- fail("invalid level settings");
186
- const size = finite(meta.length);
187
- if (!Number.isSafeInteger(size) || size < 0)
188
- fail("invalid payload length");
189
- const box = meta.box === null ? new Box3() : new Box3().setFromArray(numbers(meta.box, 6));
190
- if (box.isEmpty() && kind !== "empty")
191
- fail("drawable level has an empty box");
192
- if ((kind === "empty" || kind === "source") !== (size === 0))
193
- fail("invalid level payload length");
194
- const matrix = new Matrix4().fromArray(numbers(meta.matrix, 16));
195
- const deviation = meta.deviation === undefined ? undefined : finite(meta.deviation);
196
- if (deviation !== undefined && deviation < 0)
197
- fail("negative deviation");
198
- const texels = meta.texels === undefined ? undefined : finite(meta.texels);
199
- if (texels !== undefined && texels <= 0)
200
- fail("invalid texels");
201
- const level = {
202
- kind,
203
- name: meta.name,
204
- deviation,
205
- texels,
206
- box,
207
- matrix,
208
- matrixAutoUpdate: meta.matrixAutoUpdate,
209
- castShadow: meta.castShadow,
210
- receiveShadow: meta.receiveShadow,
211
- length: size,
212
- };
213
- return level;
214
- });
215
- const coarsest = coarsestOf(metadata.map((level) => level.kind));
216
- if (coarsest < 0)
217
- fail("no drawable level");
218
- const size = coarsest > 0 ? metadata[coarsest]?.length : 0;
219
- if (size === undefined || bytes.length !== 8 + length + size)
220
- fail("invalid coarse payload length");
221
- return { metadata, coarsest, coarse: bytes.subarray(8 + length) };
222
- }
223
- function object(value) {
224
- if (typeof value !== "object" || value === null || Array.isArray(value))
225
- fail("expected metadata object");
226
- return Object.fromEntries(Object.entries(value));
227
- }
228
- function finite(value) {
229
- if (typeof value !== "number" || !Number.isFinite(value))
230
- fail("expected finite number");
231
- return value;
232
- }
233
- function numbers(value, count) {
234
- if (!Array.isArray(value) || value.length !== count)
235
- fail(`expected ${count} numbers`);
236
- return value.map(finite);
237
- }
238
- function fail(reason) {
239
- throw new Error(`LodLoader: invalid cache (${reason})`);
240
- }
241
- //# sourceMappingURL=bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../src/loader/bundle.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"provenance.js","sourceRoot":"","sources":["../../src/loader/provenance.ts"],"names":[],"mappings":"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"}
package/dist/loader.d.ts DELETED
@@ -1,55 +0,0 @@
1
- import { Loader, LoadingManager, type Object3D } from "three/webgpu";
2
- import { type BakeImpostorOptions } from "./impostor/bake/index.js";
3
- import { type ImpostorMeshOptions } from "./impostor/mesh/index.js";
4
- import type { LodLevel } from "./levels.js";
5
- import { type LodCacheOptions } from "./loader/cache.js";
6
- import { type SimplifyOptions } from "./simplify.js";
7
- /**
8
- * Levels derived from the source, finest first. Computed geometry and baked results are persisted.
9
- * Changing `maxPixels` or an impostor's `draw` reuses them, except an impostor's `maxPixels`, which also sizes its bake.
10
- */
11
- export type LevelRequest = ({
12
- type: "simplify";
13
- maxPixels?: number;
14
- } & SimplifyOptions) | ({
15
- type: "baked";
16
- maxPixels?: number;
17
- textureSize?: number;
18
- /** Room geometry for window baking, as an asset URL relative to the source. */
19
- interior?: string;
20
- } & ({
21
- /** Authored low shell to bake onto, as an asset URL relative to the source. */
22
- low: string;
23
- ratio?: never;
24
- } | {
25
- low?: never;
26
- ratio?: number;
27
- })) | ({
28
- type: "impostor";
29
- draw?: ImpostorMeshOptions;
30
- } & BakeImpostorOptions) | {
31
- type: "empty";
32
- maxPixels: number;
33
- };
34
- /** A .glb, .gltf or .glts asset URL. Source and simplified levels load the original asset on demand. */
35
- export type LodRequest = string | {
36
- url: string;
37
- levels?: readonly LevelRequest[];
38
- /**
39
- * Apply runtime effects when a level arrives, before draws compile. Does not change baked content or bounds.
40
- * `index` is the returned ladder's: 0 is the source, and `levels[i]` arrives as `i + 1`.
41
- */
42
- onLevel?: (object: Object3D, index: number) => void | Promise<void>;
43
- };
44
- /** Loads asset URLs through manager handlers, falling back to GLTFLoader. Register a GLTSLoader for .glts sources. */
45
- export declare class LodLoader extends Loader<LodLevel[], LodRequest> {
46
- private readonly cacheOptions?;
47
- private gltf;
48
- constructor(manager?: LoadingManager, cacheOptions?: LodCacheOptions | undefined);
49
- load(request: LodRequest, onLoad: (levels: LodLevel[]) => void, _onProgress?: (event: ProgressEvent) => void, onError?: (error: unknown) => void): void;
50
- /** Load empty levels and the coarsest drawable eagerly; finer drawables load on demand. */
51
- loadAsync(request: LodRequest): Promise<LodLevel[]>;
52
- private persist;
53
- private build;
54
- private loadAsset;
55
- }