@mapvx/web-js 3.4.0-dev.1 → 3.4.0-dev.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.
@@ -1,5 +1,5 @@
1
1
  import { MercatorCoordinate } from "maplibre-gl";
2
- import { computeScenePosition, effectiveModelOpacity, hexToRgb, isPlacementVisibleOnFloor, mergeGlbScale, mergeRotation3D, pointInFootprint, resolveModels3DLights, resolveRouteTransparency, resolveZoomTransparency, } from "../utils/3d";
2
+ import { computeScenePosition, effectiveModelOpacity, hexToRgb, isPlacementVisibleOnFloor, lodActionForZoom, mergeGlbScale, mergeRotation3D, pointInFootprint, resolveDeckTileCache, resolveModels3DLights, resolveModels3DLodThresholds, resolveRouteTransparency, resolveZoomTransparency, } from "../utils/3d";
3
3
  import { buildElevatedPaths, buildLabelData, buildPoiIconData, buildStoreLogoData, computeStoreLogoSize, } from "../utils/deckLayers";
4
4
  import { loadGlbRoot } from "../utils/loadGlb";
5
5
  import { Semaphore } from "../utils/semaphore";
@@ -22,6 +22,7 @@ import { addScene3DLights, computeGlbBottomAnchor, disposeMaterialsOnly, dispose
22
22
  */
23
23
  export class Scene3DController {
24
24
  constructor(map, scene3DConfig, initialCenter, onModelsProgress) {
25
+ var _a;
25
26
  /** Latest known floor key; updated by the floor-change hooks and read when (re)building layers. */
26
27
  this.currentFloor = "";
27
28
  // Lazily-loaded Three.js / deck.gl runtime handles (see loadThree()/loadDeck()).
@@ -48,10 +49,21 @@ export class Scene3DController {
48
49
  this.scene3DRouteCollisionPoints = [];
49
50
  this.spriteIconMapping = {};
50
51
  this.spriteAtlasImage = new Image();
52
+ /** True while the GLB models are unloaded by LOD (camera zoomed out past the threshold). */
53
+ this.modelsUnloadedByLod = false;
54
+ /**
55
+ * True while {@link loadScene3DGlbTemplates} is populating `scene3DGlbRootByUrl` /
56
+ * `scene3DGlbTemplateById` (initial load or an LOD reload). Guards against overlapping reloads
57
+ * and, in {@link updateLodForZoom}, against an LOD unload running concurrently and clearing
58
+ * those same maps out from under the in-flight load.
59
+ */
60
+ this.glbTemplatesLoadInFlight = false;
51
61
  this.map = map;
52
62
  this.scene3DConfig = scene3DConfig;
53
63
  this.initialCenter = initialCenter;
54
64
  this.onModelsProgress = onModelsProgress;
65
+ this.deckTileCache = resolveDeckTileCache((_a = scene3DConfig.customLayers) === null || _a === void 0 ? void 0 : _a.tileCache);
66
+ this.lodThresholds = resolveModels3DLodThresholds(scene3DConfig.models);
55
67
  }
56
68
  // Lifecycle entry points forwarded by the map ---------------------------------------------
57
69
  /**
@@ -79,6 +91,7 @@ export class Scene3DController {
79
91
  this.map.addControl(this.deckOverlay);
80
92
  // Hide MapLibre icon layers — replaced by deck.gl IconLayer
81
93
  this.hideLayers(this.scene3DConfig.hideLayers);
94
+ this.installDebugStatsHook();
82
95
  const models = this.scene3DConfig.models;
83
96
  const glbModelsActive = models !== undefined && models.enabled !== false && models.assets.length > 0;
84
97
  if (glbModelsActive) {
@@ -90,9 +103,85 @@ export class Scene3DController {
90
103
  // next floor change (e.g. broken on totem/route views that never change floor after load).
91
104
  this.updateDeckOverlay();
92
105
  }
93
- /** Re-applies zoom-based model transparency; call on every map `zoom`. */
106
+ /** Re-applies zoom-based model transparency and evaluates LOD; call on every map `zoom`. */
94
107
  onZoom() {
95
108
  this.applyModelOpacity();
109
+ this.updateLodForZoom();
110
+ }
111
+ /**
112
+ * Evaluates the zoom-based LOD (see {@link Models3DConfig.lod}): unloads the GLB models from
113
+ * memory when the camera drops below the unload boundary and reloads them when it returns to the
114
+ * reload boundary. No-op when LOD is disabled. Cheap enough to call on every `zoom` event — it
115
+ * only acts on a boundary crossing.
116
+ */
117
+ updateLodForZoom() {
118
+ if (!this.lodThresholds) {
119
+ return;
120
+ }
121
+ const action = lodActionForZoom(this.map.getZoom(), this.lodThresholds, this.modelsUnloadedByLod);
122
+ if (action === "unload") {
123
+ if (this.glbTemplatesLoadInFlight) {
124
+ // A load is already populating the model maps; unloading now would race with it.
125
+ // reloadScene3DModelsForLod()/the initial load re-evaluate the zoom once they settle.
126
+ return;
127
+ }
128
+ this.unloadScene3DModelsForLod();
129
+ }
130
+ else if (action === "reload") {
131
+ void this.reloadScene3DModelsForLod();
132
+ }
133
+ }
134
+ /**
135
+ * Frees the GLB models' GPU resources (placed group's material clones + every cached template's
136
+ * geometry/textures) while keeping the custom layer, its `WebGLRenderer`, scene and lights alive,
137
+ * so a later {@link reloadScene3DModelsForLod} can repopulate without recreating the map layer.
138
+ * Distinct from {@link dispose}, which tears the whole controller down.
139
+ */
140
+ unloadScene3DModelsForLod() {
141
+ var _a, _b;
142
+ const three = (_a = this.threeMod) === null || _a === void 0 ? void 0 : _a.THREE;
143
+ if (!three) {
144
+ return;
145
+ }
146
+ if (this.scene3DModelsGroup) {
147
+ disposeMaterialsOnly(three, this.scene3DModelsGroup);
148
+ (_b = this.scene3DGlbScene) === null || _b === void 0 ? void 0 : _b.remove(this.scene3DModelsGroup);
149
+ this.scene3DModelsGroup = undefined;
150
+ }
151
+ // Iterate the deduped-by-URL roots so a shared root is never disposed twice (mirrors dispose()).
152
+ for (const root of this.scene3DGlbRootByUrl.values()) {
153
+ disposeObject3D(three, root);
154
+ }
155
+ this.scene3DGlbRootByUrl.clear();
156
+ this.scene3DGlbTemplateById.clear();
157
+ this.modelsUnloadedByLod = true;
158
+ this.map.triggerRepaint();
159
+ }
160
+ /**
161
+ * Reloads the GLB templates from disk/network and re-places them for the current floor after an
162
+ * LOD unload. Guards against overlapping reloads, and re-evaluates the zoom on completion so a
163
+ * camera that zoomed back out mid-download ends up unloaded again rather than stuck loaded.
164
+ */
165
+ async reloadScene3DModelsForLod() {
166
+ if (this.glbTemplatesLoadInFlight) {
167
+ return;
168
+ }
169
+ this.glbTemplatesLoadInFlight = true;
170
+ try {
171
+ await this.loadScene3DGlbTemplates();
172
+ this.placeScene3DModels();
173
+ // Only mark as loaded once placement actually succeeded, so a failed reload leaves
174
+ // modelsUnloadedByLod = true and the trailing updateLodForZoom() below retries it.
175
+ this.modelsUnloadedByLod = false;
176
+ }
177
+ catch (err) {
178
+ console.error("Failed to reload declarative GLB models after LOD unload", err);
179
+ }
180
+ finally {
181
+ this.glbTemplatesLoadInFlight = false;
182
+ }
183
+ // The camera may have moved during the async load; re-evaluate so a zoom back out unloads again.
184
+ this.updateLodForZoom();
96
185
  }
97
186
  /**
98
187
  * Sets the route path used for GLB route-transparency collision and re-evaluates which models a
@@ -125,6 +214,80 @@ export class Scene3DController {
125
214
  this.currentFloor = currentFloor !== null && currentFloor !== void 0 ? currentFloor : "";
126
215
  this.updateDeckOverlay();
127
216
  }
217
+ /**
218
+ * A point-in-time snapshot of the 3D scene's memory drivers, for profiling. The Three.js
219
+ * `renderer.info` counters are the best in-page proxy for GLB VRAM (decoded geometries/textures
220
+ * live on the GPU and are not visible to `performance.memory`, which only reports the JS heap).
221
+ * The deck tile counts approximate the overlay's parsed-tile working set — the thing the tile-cache
222
+ * bounds (see {@link DeckTileCacheConfig}) keep from growing without limit as the map pans/zooms.
223
+ *
224
+ * @group Map
225
+ */
226
+ getDebugStats() {
227
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
228
+ const info = (_a = this.glbRenderer) === null || _a === void 0 ? void 0 : _a.info;
229
+ const three = info
230
+ ? {
231
+ geometries: info.memory.geometries,
232
+ textures: info.memory.textures,
233
+ programs: (_c = (_b = info.programs) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0,
234
+ renderCalls: info.render.calls,
235
+ triangles: info.render.triangles,
236
+ }
237
+ : null;
238
+ let deckTiles = null;
239
+ try {
240
+ // Best-effort read of each overlay layer's parsed-tile count. deck.gl internals are private,
241
+ // so this is guarded — it degrades to `null` rather than throwing if the shape changes.
242
+ const overlay = this.deckOverlay;
243
+ const layers = (_e = (_d = overlay === null || overlay === void 0 ? void 0 : overlay._deck) === null || _d === void 0 ? void 0 : _d.layerManager) === null || _e === void 0 ? void 0 : _e.layers;
244
+ if (Array.isArray(layers)) {
245
+ const counts = {};
246
+ for (const layer of layers) {
247
+ const size = (_h = (_g = (_f = layer === null || layer === void 0 ? void 0 : layer.state) === null || _f === void 0 ? void 0 : _f.tileset) === null || _g === void 0 ? void 0 : _g._cache) === null || _h === void 0 ? void 0 : _h.size;
248
+ if (typeof size === "number" && layer.id) {
249
+ // Strip deck's per-sublayer suffixes so the four MVT roots aggregate by base id.
250
+ const baseId = layer.id.split("-sublayer")[0];
251
+ counts[baseId] = Math.max((_j = counts[baseId]) !== null && _j !== void 0 ? _j : 0, size);
252
+ }
253
+ }
254
+ deckTiles = counts;
255
+ }
256
+ }
257
+ catch (_m) {
258
+ deckTiles = null;
259
+ }
260
+ return {
261
+ zoom: this.map.getZoom(),
262
+ currentFloor: this.currentFloor,
263
+ modelsUnloadedByLod: this.modelsUnloadedByLod,
264
+ glbRoots: this.scene3DGlbRootByUrl.size,
265
+ glbTemplates: this.scene3DGlbTemplateById.size,
266
+ placedModels: (_l = (_k = this.scene3DModelsGroup) === null || _k === void 0 ? void 0 : _k.children.length) !== null && _l !== void 0 ? _l : 0,
267
+ three,
268
+ deckTiles,
269
+ deckTileCache: this.deckTileCache,
270
+ lodThresholds: this.lodThresholds,
271
+ };
272
+ }
273
+ /**
274
+ * Exposes {@link getDebugStats} as `globalThis.__mvxScene3DStats()` when the opt-in flag
275
+ * `globalThis.__MVX_SCENE3D_DEBUG__` is truthy, so a profiling session can read the scene's memory
276
+ * drivers from the console/tests without external tooling. No-op (and no global written) otherwise.
277
+ */
278
+ installDebugStatsHook() {
279
+ const g = globalThis;
280
+ if (g.__MVX_SCENE3D_DEBUG__) {
281
+ g.__mvxScene3DStats = () => this.getDebugStats();
282
+ }
283
+ }
284
+ /** Removes the debug hook if it points at this controller. Called from {@link dispose}. */
285
+ uninstallDebugStatsHook() {
286
+ const g = globalThis;
287
+ if (g.__mvxScene3DStats) {
288
+ delete g.__mvxScene3DStats;
289
+ }
290
+ }
128
291
  /**
129
292
  * Releases every GPU resource this controller owns: the placed models group's material clones,
130
293
  * the cached GLB templates' geometries/materials/textures, and the `WebGLRenderer` created for the
@@ -154,6 +317,7 @@ export class Scene3DController {
154
317
  this.scene3DGlbScene = undefined;
155
318
  (_b = this.glbRenderer) === null || _b === void 0 ? void 0 : _b.dispose();
156
319
  this.glbRenderer = undefined;
320
+ this.uninstallDebugStatsHook();
157
321
  }
158
322
  // Internal implementation -----------------------------------------------------------------
159
323
  /**
@@ -182,10 +346,19 @@ export class Scene3DController {
182
346
  else {
183
347
  this.scene3DGlbLightCount = 0;
184
348
  }
349
+ this.glbTemplatesLoadInFlight = true;
185
350
  void this.loadScene3DGlbTemplates()
186
- .then(() => this.placeScene3DModels())
351
+ .then(() => {
352
+ this.placeScene3DModels();
353
+ })
187
354
  .catch((err) => {
188
355
  console.error("Failed to initialize declarative GLB models", err);
356
+ })
357
+ .finally(() => {
358
+ this.glbTemplatesLoadInFlight = false;
359
+ // Honor LOD from the first frame: if the map opened below the unload threshold, free the
360
+ // models just loaded (they reload when the user zooms in). No-op when LOD is disabled.
361
+ this.updateLodForZoom();
189
362
  });
190
363
  let renderer = undefined;
191
364
  let camera = undefined;
@@ -515,40 +688,41 @@ export class Scene3DController {
515
688
  this.spriteIconMapping = json;
516
689
  this.spriteAtlasImage = img;
517
690
  }
691
+ /**
692
+ * Cache-bounding props spread onto every deck.gl `MVTLayer` so the overlays never keep an
693
+ * unbounded set of parsed tiles in memory. `maxCacheByteSize` is only included when configured
694
+ * (deck.gl enforces it only when a tile's byte size is known).
695
+ */
696
+ get deckTileCacheProps() {
697
+ const { maxCacheSize, maxRequests, refinementStrategy, maxCacheByteSize } = this.deckTileCache;
698
+ const props = { maxCacheSize, maxRequests, refinementStrategy };
699
+ if (maxCacheByteSize !== undefined) {
700
+ props.maxCacheByteSize = maxCacheByteSize;
701
+ }
702
+ return props;
703
+ }
518
704
  makeElevatedLinesLayer(floorKey, layerConfig) {
519
705
  var _a;
520
706
  const deck = this.deckMod;
521
707
  if (!deck)
522
708
  return null;
523
- return new deck.MVTLayer({
524
- id: "indoor-lines-elevated",
525
- data: layerConfig.dataUrl,
526
- binary: (_a = layerConfig.binaryData) !== null && _a !== void 0 ? _a : false,
527
- renderSubLayers: (props) => {
709
+ return new deck.MVTLayer(Object.assign(Object.assign({}, this.deckTileCacheProps), { id: "indoor-lines-elevated", data: layerConfig.dataUrl, binary: (_a = layerConfig.binaryData) !== null && _a !== void 0 ? _a : false, renderSubLayers: (props) => {
528
710
  var _a, _b, _c, _d;
529
711
  const paths = buildElevatedPaths((props.data || []), floorKey, (_a = layerConfig.defaultHeight) !== null && _a !== void 0 ? _a : 5);
530
712
  if (!paths.length)
531
713
  return null;
532
714
  // Default color hardcoded to "#cbcbcb" (from the original style) to avoid a type mismatch.
533
715
  return new deck.PathLayer(Object.assign(Object.assign({}, props), { id: `${props.id}-paths`, data: paths, getPath: (d) => d.path, getColor: hexToRgb((_b = layerConfig.lineColor) !== null && _b !== void 0 ? _b : "#cbcbcb"), getWidth: (_c = layerConfig.lineWidth) !== null && _c !== void 0 ? _c : 1.5, widthUnits: (_d = layerConfig.widthUnits) !== null && _d !== void 0 ? _d : "pixels", pickable: false }));
534
- },
535
- updateTriggers: {
716
+ }, updateTriggers: {
536
717
  renderSubLayers: [floorKey],
537
- },
538
- });
718
+ } }));
539
719
  }
540
720
  makeLabelLayer(floorKey, layerConfig, useSdf = true) {
541
721
  var _a, _b, _c;
542
722
  const deck = this.deckMod;
543
723
  if (!deck)
544
724
  return null;
545
- return new deck.MVTLayer({
546
- id: "indoor-labels",
547
- data: layerConfig.dataUrl,
548
- binary: (_a = layerConfig.binaryData) !== null && _a !== void 0 ? _a : false,
549
- minZoom: (_b = layerConfig.minZoom) !== null && _b !== void 0 ? _b : 19.5,
550
- maxZoom: (_c = layerConfig.maxZoom) !== null && _c !== void 0 ? _c : 24,
551
- renderSubLayers: (props) => {
725
+ return new deck.MVTLayer(Object.assign(Object.assign({}, this.deckTileCacheProps), { id: "indoor-labels", data: layerConfig.dataUrl, binary: (_a = layerConfig.binaryData) !== null && _a !== void 0 ? _a : false, minZoom: (_b = layerConfig.minZoom) !== null && _b !== void 0 ? _b : 19.5, maxZoom: (_c = layerConfig.maxZoom) !== null && _c !== void 0 ? _c : 24, renderSubLayers: (props) => {
552
726
  var _a, _b, _c, _d, _e, _f;
553
727
  // Use area_name and poi Point features — unique per tile, no duplicates.
554
728
  // If a logo-{name} image exists in the sprite, the icon takes priority over the text label.
@@ -556,57 +730,39 @@ export class Scene3DController {
556
730
  if (!textData.length)
557
731
  return null;
558
732
  return new deck.TextLayer(Object.assign(Object.assign({}, props), { id: `${props.id}-labels`, data: textData, getPosition: (d) => d.position, getText: (d) => d.text, getSize: (_b = layerConfig.size) !== null && _b !== void 0 ? _b : 16, getColor: hexToRgb((_c = layerConfig.color) !== null && _c !== void 0 ? _c : "#91969b"), outlineColor: useSdf ? [255, 255, 255, 255] : [0, 0, 0, 0], outlineWidth: useSdf ? 4 : 0, fontSettings: { sdf: useSdf }, fontFamily: (_d = layerConfig.fontFamily) !== null && _d !== void 0 ? _d : "Open Sans, sans-serif", fontWeight: (_e = layerConfig.fontWeight) !== null && _e !== void 0 ? _e : 600, billboard: true, pickable: false, characterSet: "auto", wordBreak: "break-word", maxWidth: (_f = layerConfig.maxWidth) !== null && _f !== void 0 ? _f : 150 }));
559
- },
560
- updateTriggers: {
733
+ }, updateTriggers: {
561
734
  renderSubLayers: [floorKey],
562
- },
563
- });
735
+ } }));
564
736
  }
565
737
  makePoiIconLayer(floorKey, layerConfig) {
566
738
  var _a, _b, _c;
567
739
  const deck = this.deckMod;
568
740
  if (!deck || !this.spriteIconMapping || !this.spriteAtlasImage)
569
741
  return null;
570
- return new deck.MVTLayer({
571
- id: "indoor-poi-icons",
572
- data: layerConfig.dataUrl,
573
- binary: (_a = layerConfig.binaryData) !== null && _a !== void 0 ? _a : false,
574
- minZoom: (_b = layerConfig.minZoom) !== null && _b !== void 0 ? _b : 17,
575
- maxZoom: (_c = layerConfig.maxZoom) !== null && _c !== void 0 ? _c : 24,
576
- renderSubLayers: (props) => {
742
+ return new deck.MVTLayer(Object.assign(Object.assign({}, this.deckTileCacheProps), { id: "indoor-poi-icons", data: layerConfig.dataUrl, binary: (_a = layerConfig.binaryData) !== null && _a !== void 0 ? _a : false, minZoom: (_b = layerConfig.minZoom) !== null && _b !== void 0 ? _b : 17, maxZoom: (_c = layerConfig.maxZoom) !== null && _c !== void 0 ? _c : 24, renderSubLayers: (props) => {
577
743
  var _a, _b, _c, _d, _e;
578
744
  const iconData = buildPoiIconData((props.data || []), floorKey, (_a = layerConfig.defaultHeight) !== null && _a !== void 0 ? _a : 5);
579
745
  if (!iconData.length)
580
746
  return null;
581
747
  return new deck.IconLayer(Object.assign(Object.assign({}, props), { id: `${props.id}-poi-icons`, data: iconData, iconAtlas: this.spriteAtlasImage, iconMapping: this.spriteIconMapping, getIcon: (d) => d.icon, getPosition: (d) => d.position, getSize: (_b = layerConfig.size) !== null && _b !== void 0 ? _b : 2, sizeUnits: (_c = layerConfig.sizeUnits) !== null && _c !== void 0 ? _c : "meters", sizeScale: (_d = layerConfig.sizeScale) !== null && _d !== void 0 ? _d : 1, billboard: (_e = layerConfig.billboard) !== null && _e !== void 0 ? _e : true, pickable: false }));
582
- },
583
- updateTriggers: {
748
+ }, updateTriggers: {
584
749
  renderSubLayers: [floorKey],
585
- },
586
- });
750
+ } }));
587
751
  }
588
752
  makeStoreLogoLayer(floorKey, layerConfig) {
589
753
  var _a, _b, _c;
590
754
  const deck = this.deckMod;
591
755
  if (!deck || !this.spriteIconMapping || !this.spriteAtlasImage)
592
756
  return null;
593
- return new deck.MVTLayer({
594
- id: "indoor-store-logos",
595
- data: layerConfig.dataUrl,
596
- binary: (_a = layerConfig.binaryData) !== null && _a !== void 0 ? _a : false,
597
- minZoom: (_b = layerConfig.minZoom) !== null && _b !== void 0 ? _b : 13,
598
- maxZoom: (_c = layerConfig.maxZoom) !== null && _c !== void 0 ? _c : 24,
599
- renderSubLayers: (props) => {
757
+ return new deck.MVTLayer(Object.assign(Object.assign({}, this.deckTileCacheProps), { id: "indoor-store-logos", data: layerConfig.dataUrl, binary: (_a = layerConfig.binaryData) !== null && _a !== void 0 ? _a : false, minZoom: (_b = layerConfig.minZoom) !== null && _b !== void 0 ? _b : 13, maxZoom: (_c = layerConfig.maxZoom) !== null && _c !== void 0 ? _c : 24, renderSubLayers: (props) => {
600
758
  var _a, _b, _c, _d;
601
759
  const logoData = buildStoreLogoData((props.data || []), floorKey, this.spriteIconMapping, (_a = layerConfig.defaultHeight) !== null && _a !== void 0 ? _a : 5);
602
760
  if (!logoData.length)
603
761
  return null;
604
762
  return new deck.IconLayer(Object.assign(Object.assign({}, props), { id: `${props.id}-store-logos`, data: logoData, iconAtlas: this.spriteAtlasImage, iconMapping: this.spriteIconMapping, getIcon: (d) => d.icon, getPosition: (d) => d.position, getAngle: (d) => -d.rotation, getSize: (d) => { var _a; return computeStoreLogoSize(this.spriteIconMapping, d.icon, (_a = layerConfig.logoScale) !== null && _a !== void 0 ? _a : {}); }, sizeUnits: (_b = layerConfig.sizeUnits) !== null && _b !== void 0 ? _b : "meters", sizeScale: (_c = layerConfig.sizeScale) !== null && _c !== void 0 ? _c : 1, billboard: (_d = layerConfig.billboard) !== null && _d !== void 0 ? _d : false, pickable: false }));
605
- },
606
- updateTriggers: {
763
+ }, updateTriggers: {
607
764
  renderSubLayers: [floorKey],
608
- },
609
- });
765
+ } }));
610
766
  }
611
767
  updateDeckOverlay() {
612
768
  if (!this.deckOverlay || !this.currentFloor)
@@ -1 +1 @@
1
- {"version":3,"file":"scene3DController.js","sourceRoot":"","sources":["../../../src/map/scene3DController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scene3DController.js","sourceRoot":"","sources":["../../../src/map/scene3DController.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,47 @@
1
- import type { GLBAssetConfig, GLBModelOffset, GLBPlacementConfig, Models3DConfig, Rotation3D, RouteTransparencyConfig, Scene3DLightConfig, ZoomTransparencyConfig } from "../domain/models/scene3D";
1
+ import type { DeckTileCacheConfig, GLBAssetConfig, GLBModelOffset, GLBPlacementConfig, Models3DConfig, Rotation3D, RouteTransparencyConfig, Scene3DLightConfig, ZoomTransparencyConfig } from "../domain/models/scene3D";
2
+ /** Default LOD hysteresis (zoom units) when {@link Models3DLodConfig.hysteresis} is unset. */
3
+ export declare const DEFAULT_LOD_HYSTERESIS = 0.5;
4
+ /**
5
+ * Resolved LOD zoom boundaries: models unload strictly below `unloadBelow` and (re)load at or
6
+ * above `reloadAtOrAbove`. The gap between them is the hysteresis dead-band.
7
+ * @internal
8
+ */
9
+ export interface ResolvedLodThresholds {
10
+ unloadBelow: number;
11
+ reloadAtOrAbove: number;
12
+ }
13
+ /**
14
+ * Computes the unload/reload zoom boundaries from {@link Models3DConfig.lod}, or `null` when LOD is
15
+ * disabled (no `lod`, no models, or a non-finite `minZoom`). Pure — safe to unit-test without WebGL.
16
+ */
17
+ export declare const resolveModels3DLodThresholds: (models?: Models3DConfig | null) => ResolvedLodThresholds | null;
18
+ /**
19
+ * Decides what the LOD controller should do at the current zoom given whether the models are
20
+ * currently unloaded. Returns `"unload"` when they are loaded but the camera is below the unload
21
+ * boundary, `"reload"` when they are unloaded but the camera has returned to/above the reload
22
+ * boundary, and `"none"` otherwise (including within the hysteresis band). Pure/testable.
23
+ */
24
+ export declare const lodActionForZoom: (zoom: number, thresholds: ResolvedLodThresholds, currentlyUnloaded: boolean) => "unload" | "reload" | "none";
25
+ /**
26
+ * Resolved deck.gl tile-cache props: every field concrete, ready to spread onto an `MVTLayer`.
27
+ * @internal
28
+ */
29
+ export type ResolvedDeckTileCache = Required<Pick<DeckTileCacheConfig, "maxCacheSize" | "maxRequests" | "refinementStrategy">> & Pick<DeckTileCacheConfig, "maxCacheByteSize">;
30
+ /**
31
+ * Conservative defaults that bound each deck.gl overlay layer's in-memory tile cache. Chosen to
32
+ * favor low RAM: only the visible working set (plus a small margin) stays parsed in memory; the
33
+ * raw tile bytes remain on disk in the Service Worker cache, so an evicted tile is re-parsed
34
+ * rather than re-downloaded. Raise `maxCacheSize` only if profiling shows flashing at the
35
+ * viewport edge while panning.
36
+ * @internal
37
+ */
38
+ export declare const DEFAULT_DECK_TILE_CACHE: ResolvedDeckTileCache;
39
+ /**
40
+ * Merges an optional {@link DeckTileCacheConfig} over {@link DEFAULT_DECK_TILE_CACHE}, ignoring
41
+ * `undefined`/`null` fields and clamping numeric bounds to at least 1. The result is always
42
+ * bounded — passing `undefined` yields the defaults, never an unlimited cache.
43
+ */
44
+ export declare const resolveDeckTileCache: (config?: DeckTileCacheConfig | null) => ResolvedDeckTileCache;
2
45
  /**
3
46
  * Default lights matching the legacy escalator scene when {@link Models3DConfig.lights} is unset.
4
47
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"3d.d.ts","sourceRoot":"","sources":["../../../src/utils/3d.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"3d.d.ts","sourceRoot":"","sources":["../../../src/utils/3d.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,cAAc,EAEd,UAAU,EACV,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,0BAA0B,CAAA;AAEjC,8FAA8F;AAC9F,eAAO,MAAM,sBAAsB,MAAM,CAAA;AAEzC;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;CACxB;AAED;;;GAGG;AACH,eAAO,MAAM,4BAA4B,GACvC,SAAS,cAAc,GAAG,IAAI,KAC7B,qBAAqB,GAAG,IAmB1B,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,MAAM,MAAM,EACZ,YAAY,qBAAqB,EACjC,mBAAmB,OAAO,KACzB,QAAQ,GAAG,QAAQ,GAAG,MAQxB,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAC1C,IAAI,CAAC,mBAAmB,EAAE,cAAc,GAAG,aAAa,GAAG,oBAAoB,CAAC,CACjF,GACC,IAAI,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAA;AAE/C;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,EAAE,qBAQrC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAC/B,SAAS,mBAAmB,GAAG,IAAI,KAClC,qBAiBF,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,kBAAkB,EAItD,CAAA;AAEV,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAW7D,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAYtE,CAAA;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,kBAAkB,EAAE,CAKlF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,CAMpF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EAC7D,QAAQ,EAAE,MAAM,GACf,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAQ1B;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EACzD,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAC7D,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAM1B;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,cAAc,GAAG,SAAS,EACjC,SAAS,EAAE,kBAAkB,GAC5B,sBAAsB,GAAG,SAAS,CAEpC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,sBAAsB,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAK5F;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,cAAc,GAAG,SAAS,EACjC,SAAS,EAAE,kBAAkB,GAC5B,uBAAuB,GAAG,SAAS,CAErC;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,cAAc,EACzB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,OAAO,CAOT;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,sBAAsB,GAAG,SAAS,EAC3C,QAAQ,EAAE,uBAAuB,GAAG,SAAS,EAC7C,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,OAAO,GACrB,MAAM,CAIR;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,kBAAkB,EAC7B,QAAQ,EAAE,MAAM,GACf,OAAO,CAKT;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAChC,GAAG,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAC7B,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,cAAc,EAC5B,eAAe,CAAC,EAAE,cAAc,GAC/B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAU1B"}
@@ -1,3 +1,78 @@
1
+ /** Default LOD hysteresis (zoom units) when {@link Models3DLodConfig.hysteresis} is unset. */
2
+ export const DEFAULT_LOD_HYSTERESIS = 0.5;
3
+ /**
4
+ * Computes the unload/reload zoom boundaries from {@link Models3DConfig.lod}, or `null` when LOD is
5
+ * disabled (no `lod`, no models, or a non-finite `minZoom`). Pure — safe to unit-test without WebGL.
6
+ */
7
+ export const resolveModels3DLodThresholds = (models) => {
8
+ const lod = models === null || models === void 0 ? void 0 : models.lod;
9
+ if (!models ||
10
+ models.enabled === false ||
11
+ !lod ||
12
+ typeof lod.minZoom !== "number" ||
13
+ !Number.isFinite(lod.minZoom)) {
14
+ return null;
15
+ }
16
+ const hysteresis = typeof lod.hysteresis === "number" && Number.isFinite(lod.hysteresis) && lod.hysteresis >= 0
17
+ ? lod.hysteresis
18
+ : DEFAULT_LOD_HYSTERESIS;
19
+ return {
20
+ reloadAtOrAbove: lod.minZoom,
21
+ unloadBelow: lod.minZoom - hysteresis,
22
+ };
23
+ };
24
+ /**
25
+ * Decides what the LOD controller should do at the current zoom given whether the models are
26
+ * currently unloaded. Returns `"unload"` when they are loaded but the camera is below the unload
27
+ * boundary, `"reload"` when they are unloaded but the camera has returned to/above the reload
28
+ * boundary, and `"none"` otherwise (including within the hysteresis band). Pure/testable.
29
+ */
30
+ export const lodActionForZoom = (zoom, thresholds, currentlyUnloaded) => {
31
+ if (!currentlyUnloaded && zoom < thresholds.unloadBelow) {
32
+ return "unload";
33
+ }
34
+ if (currentlyUnloaded && zoom >= thresholds.reloadAtOrAbove) {
35
+ return "reload";
36
+ }
37
+ return "none";
38
+ };
39
+ /**
40
+ * Conservative defaults that bound each deck.gl overlay layer's in-memory tile cache. Chosen to
41
+ * favor low RAM: only the visible working set (plus a small margin) stays parsed in memory; the
42
+ * raw tile bytes remain on disk in the Service Worker cache, so an evicted tile is re-parsed
43
+ * rather than re-downloaded. Raise `maxCacheSize` only if profiling shows flashing at the
44
+ * viewport edge while panning.
45
+ * @internal
46
+ */
47
+ export const DEFAULT_DECK_TILE_CACHE = {
48
+ // Per layer; with four overlay layers this caps the parsed-tile set at ~4x this number.
49
+ maxCacheSize: 64,
50
+ maxRequests: 6,
51
+ // Drop parent tiles once children cover the viewport — keeps the resident set smallest.
52
+ refinementStrategy: "no-overlap",
53
+ // Byte budget is opt-in (deck.gl only enforces it when a tile's byte size is known).
54
+ maxCacheByteSize: undefined,
55
+ };
56
+ /**
57
+ * Merges an optional {@link DeckTileCacheConfig} over {@link DEFAULT_DECK_TILE_CACHE}, ignoring
58
+ * `undefined`/`null` fields and clamping numeric bounds to at least 1. The result is always
59
+ * bounded — passing `undefined` yields the defaults, never an unlimited cache.
60
+ */
61
+ export const resolveDeckTileCache = (config) => {
62
+ var _a;
63
+ const clampPositive = (value, fallback) => typeof value === "number" && Number.isFinite(value) && value >= 1 ? Math.floor(value) : fallback;
64
+ const maxCacheByteSize = typeof (config === null || config === void 0 ? void 0 : config.maxCacheByteSize) === "number" &&
65
+ Number.isFinite(config.maxCacheByteSize) &&
66
+ config.maxCacheByteSize >= 1
67
+ ? Math.floor(config.maxCacheByteSize)
68
+ : DEFAULT_DECK_TILE_CACHE.maxCacheByteSize;
69
+ return {
70
+ maxCacheSize: clampPositive(config === null || config === void 0 ? void 0 : config.maxCacheSize, DEFAULT_DECK_TILE_CACHE.maxCacheSize),
71
+ maxRequests: clampPositive(config === null || config === void 0 ? void 0 : config.maxRequests, DEFAULT_DECK_TILE_CACHE.maxRequests),
72
+ refinementStrategy: (_a = config === null || config === void 0 ? void 0 : config.refinementStrategy) !== null && _a !== void 0 ? _a : DEFAULT_DECK_TILE_CACHE.refinementStrategy,
73
+ maxCacheByteSize,
74
+ };
75
+ };
1
76
  /**
2
77
  * Default lights matching the legacy escalator scene when {@link Models3DConfig.lights} is unset.
3
78
  * @internal