@navaramap/three 0.0.0 → 0.0.2

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 (66) hide show
  1. package/README.md +70 -0
  2. package/dist/assets/fontWorker-8oWvyvwL.js +2 -0
  3. package/dist/assets/fontWorker-8oWvyvwL.js.map +1 -0
  4. package/dist/assets/index-D9G7kIEj.js +25 -0
  5. package/dist/assets/index-D9G7kIEj.js.map +1 -0
  6. package/dist/assets/{navara_wasm_font_worker_bg-665OLxjy.wasm → navara_wasm_font_worker_bg-CkZP9l2i.wasm} +0 -0
  7. package/dist/assets/{navara_wasm_worker_bg-BXhKC5bE.wasm → navara_wasm_worker_bg-Q8zrkLCR.wasm} +0 -0
  8. package/dist/draco_decoder.wasm +0 -0
  9. package/dist/draco_decoder2.wasm +0 -0
  10. package/dist/index.d.ts +587 -67
  11. package/dist/index.js +5640 -4944
  12. package/dist/index.js.map +1 -1
  13. package/dist/index.umd.cjs +238 -211
  14. package/dist/index.umd.cjs.map +1 -1
  15. package/package.json +35 -34
  16. package/src/core/EffectDesc.ts +2 -4
  17. package/src/core/MeshDesc.ts +1 -2
  18. package/src/core/MeshDescWithSelectiveEffect.ts +1 -2
  19. package/src/declutter/DeclutterManager.test.ts +235 -0
  20. package/src/declutter/DeclutterManager.ts +256 -0
  21. package/src/declutter/index.ts +7 -0
  22. package/src/declutter/kernel.ts +46 -0
  23. package/src/declutter/types.ts +61 -0
  24. package/src/declutter/wasmKernel.ts +13 -0
  25. package/src/device.ts +18 -4
  26. package/src/evaluations/FeatureEvaluator.ts +21 -0
  27. package/src/event/context.ts +17 -0
  28. package/src/event/features/modelGpuBytes.ts +1 -3
  29. package/src/event/hillshade.test.ts +7 -13
  30. package/src/event/index.ts +2 -3
  31. package/src/event/tileHandler.ts +54 -0
  32. package/src/index.ts +143 -33
  33. package/src/material/enhancer/ShaderReplacer.ts +1 -2
  34. package/src/material/enhancer/sdfText/sdfTextBaseEnhancer/mutates.ts +6 -0
  35. package/src/material/enhancer/sdfText/sdfTextBaseEnhancer/types.ts +11 -0
  36. package/src/material/enhancer/tileComposite/tileCompositeBaseEnhancer/mutates.test.ts +83 -0
  37. package/src/material/enhancer/tileComposite/tileCompositeBaseEnhancer/mutates.ts +19 -4
  38. package/src/material/enhancer/tileComposite/tileElevationHeatmapEnhancer/shader.ts +9 -2
  39. package/src/mesh/batchTexture.ts +2 -4
  40. package/src/mesh/batchedSdfText.ts +61 -1
  41. package/src/mesh/sdfText.ts +170 -5
  42. package/src/mesh/sprite/instancedSprite.ts +245 -3
  43. package/src/mesh/tile/drapeResolver.ts +76 -0
  44. package/src/mesh/{tile.test.ts → tile/index.test.ts} +16 -6
  45. package/src/mesh/{tile.ts → tile/index.ts} +124 -392
  46. package/src/mesh/tile/rasterDrapeResolver.ts +423 -0
  47. package/src/mesh/tile/vectorDrapeResolver.ts +404 -0
  48. package/src/orchestrators/RenderPassOrchestrator.ts +25 -0
  49. package/src/passes/CustomRenderPass.ts +21 -5
  50. package/src/passes/RenderTargetCopyPass.ts +24 -2
  51. package/src/test-utils/engine.ts +53 -0
  52. package/src/tileTexture/TileTextureCache.test.ts +2 -0
  53. package/src/tileTexture/TileTextureCache.ts +1 -0
  54. package/src/tileTexture/TileTextureCompositor.test.ts +107 -0
  55. package/src/tileTexture/TileTextureCompositor.ts +248 -32
  56. package/src/tileTexture/__snapshots__/CompositeShader.snapshot.test.ts.snap +36 -16
  57. package/src/tileTexture/types.ts +7 -0
  58. package/src/utils/demNoDataColor.test.ts +47 -0
  59. package/src/utils/demNoDataColor.ts +48 -0
  60. package/src/utils/fixedGpuFootprint.test.ts +110 -0
  61. package/src/utils/fixedGpuFootprint.ts +162 -0
  62. package/src/worker/tasks/toCreasedNormals.ts +2 -7
  63. package/dist/assets/fontWorker-CEJEfRpb.js +0 -2
  64. package/dist/assets/fontWorker-CEJEfRpb.js.map +0 -1
  65. package/dist/assets/index-BUB-ijMO.js +0 -12
  66. package/dist/assets/index-BUB-ijMO.js.map +0 -1
@@ -1,9 +1,9 @@
1
1
  import { Mesh, BoxGeometry, MeshBasicMaterial } from "three";
2
2
  import { describe, expect, it, vi } from "vitest";
3
3
 
4
- import { TexturizedSceneByTileCoordinates } from "../scene";
4
+ import { TexturizedSceneByTileCoordinates } from "../../scene";
5
5
 
6
- import { TileMesh } from "./tile";
6
+ import { TileMesh } from ".";
7
7
 
8
8
  // The package barrel pulled in by tile.ts initializes a worker pool at module
9
9
  // load (os.cpus()), which is unavailable in the test environment. Stub it.
@@ -36,6 +36,7 @@ function state(layerId: string, tileHandle: bigint) {
36
36
  uv_offset: new Float32Array([0, 0]),
37
37
  uv_scale: new Float32Array([1, 1]),
38
38
  reproject_terrain_lat: new Float32Array([]),
39
+ free: vi.fn(),
39
40
  };
40
41
  }
41
42
 
@@ -86,6 +87,9 @@ function makeTile(atlasSize = 512) {
86
87
 
87
88
  const meshAdded = {
88
89
  tile_handle: 1n,
90
+ // WebMercator tiling → the direct (no-op) raster drape resolver, keeping
91
+ // the baked-raster machinery out of these vector-drape tests.
92
+ globe: { isGeographicTiling: false, free: vi.fn() },
89
93
  } as unknown as ConstructorParameters<typeof TileMesh>[1];
90
94
 
91
95
  const tile = new TileMesh(ctx, meshAdded);
@@ -109,8 +113,11 @@ const RT_BYTES_SMALL = 256 * 256 * 4;
109
113
  const ATLAS_BYTES_SMALL = 256 * 256 * 4 * 3;
110
114
 
111
115
  function renderTargetCount(tile: TileMesh): number {
112
- return (tile as unknown as { texturizedSceneRenderTargets: unknown[] })
113
- .texturizedSceneRenderTargets.length;
116
+ return (
117
+ tile as unknown as {
118
+ vectorDrape: { liveRenderTargetCount(): number };
119
+ }
120
+ ).vectorDrape.liveRenderTargetCount();
114
121
  }
115
122
 
116
123
  /** Invoke the private onBeforeRender hook (args are ignored by the impl). */
@@ -207,8 +214,11 @@ describe("TileMesh vector bake dirty-gating", () => {
207
214
 
208
215
  frame(tile);
209
216
 
210
- const slots = (tile as unknown as { vectorSlots: { layerId: string }[] })
211
- .vectorSlots;
217
+ const slots = (
218
+ tile as unknown as {
219
+ vectorDrape: { vectorSlots: { layerId: string }[] };
220
+ }
221
+ ).vectorDrape.vectorSlots;
212
222
  expect(slots.map((s) => s.layerId).sort()).toEqual(["a", "c"]);
213
223
  expect(renderVectorScenes).toHaveBeenCalledTimes(1);
214
224
  });