bruce-cesium 7.7.4 → 7.7.5

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.
@@ -11,10 +11,13 @@ const tileset_render_engine_1 = require("./tileset-render-engine");
11
11
  */
12
12
  var XGridsRenderEngine;
13
13
  (function (XGridsRenderEngine) {
14
+ /*
15
+ * Loads a scan with optional SDK tuning and per-viewer budget control.
16
+ */
14
17
  function Render(params) {
15
- var _a, _b, _c;
18
+ var _a, _b, _c, _d;
16
19
  const { api, viewer, tileset } = params;
17
- if (!LCCRender) {
20
+ if (typeof LCCRender === "undefined" || typeof (LCCRender === null || LCCRender === void 0 ? void 0 : LCCRender.load) !== "function") {
18
21
  console.warn("[XGridsRenderEngine] Render() LCCRender library not available.");
19
22
  return null;
20
23
  }
@@ -57,6 +60,46 @@ var XGridsRenderEngine;
57
60
  if (loadUrl.indexOf("?") !== -1) {
58
61
  loadUrl = loadUrl.split("?")[0];
59
62
  }
63
+ let maxSplats = 6000000;
64
+ /*
65
+ * Configures optional LOD capabilities once metadata or initial geometry is ready.
66
+ */
67
+ const configure = (object, ready) => {
68
+ var _a, _b, _c;
69
+ if (!object || object["_nextspaceLodRemoved"] || object["_nextspaceLodConfigured"] || ((_a = viewer.isDestroyed) === null || _a === void 0 ? void 0 : _a.call(viewer))) {
70
+ return;
71
+ }
72
+ try {
73
+ if (typeof object.setMaxSplats !== "function") {
74
+ return;
75
+ }
76
+ const lods = typeof object.getLodInfos === "function" ? object.getLodInfos() : undefined;
77
+ const adaptive = (LCCRender.nextspaceAdaptiveLod === 1 &&
78
+ typeof object.setNextspaceMetadataCallback === "function" &&
79
+ Array.isArray(lods) &&
80
+ typeof object.setVisible === "function" &&
81
+ typeof object.setLodAutoLevelUp === "function");
82
+ // Unpatched SDKs still need the legacy clamp to avoid their fixed LOD shortcut.
83
+ const budget = !adaptive && (lods === null || lods === void 0 ? void 0 : lods[0]) > maxSplats && (lods === null || lods === void 0 ? void 0 : lods[1]) > 0
84
+ ? Math.min(maxSplats, lods[1]) : maxSplats;
85
+ object.setMaxSplats(budget);
86
+ // A requested fly-to needs its initial data before off-screen culling can take over.
87
+ if (adaptive &&
88
+ (!params.flyTo || ready) &&
89
+ ((_b = viewer.scene.preUpdate) === null || _b === void 0 ? void 0 : _b.addEventListener) &&
90
+ ((_c = viewer.scene.postRender) === null || _c === void 0 ? void 0 : _c.addEventListener)) {
91
+ const controller = viewer["_nextspaceXGridsLod"] ||
92
+ (viewer["_nextspaceXGridsLod"] = new AdaptiveLod(viewer));
93
+ controller.Add(object, maxSplats);
94
+ controller.Update();
95
+ }
96
+ object["_nextspaceLodConfigured"] = !params.flyTo || ready;
97
+ }
98
+ catch (error) {
99
+ // Optional SDK tuning must not abort its metadata parsing or the Cesium render loop.
100
+ console.warn("[XGridsRenderEngine] Optional LOD setup unavailable.", error);
101
+ }
102
+ };
60
103
  const obj = LCCRender.load({
61
104
  camera: viewer.camera,
62
105
  scene: viewer.scene,
@@ -70,22 +113,19 @@ var XGridsRenderEngine;
70
113
  // When true it makes the new pieces fade-in.
71
114
  // The look is similar to sectioning in cesium. Might be a nice setting.
72
115
  useLoadingEffect: false
73
- }, async () => {
74
- var _a, _b;
75
- // Array index is the LOD level, ie: index 0 = LOD 0.
76
- const lods = obj.getLodInfos();
77
- const maxSplats = 6000000;
78
- // LCC 0.5.4 fixes the LOD when the budget exceeds LOD 1, leaving distant splats sparse.
79
- const lodBudget = (lods === null || lods === void 0 ? void 0 : lods[0]) > maxSplats && (lods === null || lods === void 0 ? void 0 : lods[1]) > 0
80
- ? Math.min(maxSplats, lods[1])
81
- : maxSplats;
82
- obj.setMaxSplats(lodBudget);
116
+ }, async (loaded) => {
117
+ var _a, _b, _c;
118
+ const object = loaded || obj;
119
+ if (!object || object["_nextspaceLodRemoved"] || ((_a = viewer.isDestroyed) === null || _a === void 0 ? void 0 : _a.call(viewer))) {
120
+ return;
121
+ }
122
+ configure(object, true);
83
123
  // Auto fly to.
84
124
  if (params.flyTo) {
85
- const pos3d = (_b = (_a = obj === null || obj === void 0 ? void 0 : obj.getBounds) === null || _a === void 0 ? void 0 : _a.call(obj)) === null || _b === void 0 ? void 0 : _b.origin;
125
+ const pos3d = typeof object.getBounds === "function" ? (_b = object.getBounds()) === null || _b === void 0 ? void 0 : _b.origin : undefined;
86
126
  if (pos3d && bruce_models_1.Cartes.ValidateCartes3(pos3d)) {
87
127
  const altered = await drawing_utils_1.DrawingUtils.RaisePos3d(viewer, pos3d, 300);
88
- if (altered && bruce_models_1.Cartes.ValidateCartes3(altered)) {
128
+ if (!object["_nextspaceLodRemoved"] && !((_c = viewer.isDestroyed) === null || _c === void 0 ? void 0 : _c.call(viewer)) && altered && bruce_models_1.Cartes.ValidateCartes3(altered)) {
89
129
  viewer.scene.camera.flyTo({
90
130
  destination: altered,
91
131
  orientation: {
@@ -100,13 +140,32 @@ var XGridsRenderEngine;
100
140
  }
101
141
  }
102
142
  });
143
+ if (!obj) {
144
+ return null;
145
+ }
146
+ try {
147
+ const sdkBudget = typeof obj.getCurrentConfig === "function" ? (_d = obj.getCurrentConfig()) === null || _d === void 0 ? void 0 : _d.maxLoadSplatCount : undefined;
148
+ // Preserve the SDK's mobile and weak-GPU limits before applying any temporary startup cap.
149
+ maxSplats = Number.isFinite(sdkBudget) && sdkBudget > 0 && sdkBudget <= 2000000 ? sdkBudget : 6000000;
150
+ if (LCCRender.nextspaceMetadataReady === 1 &&
151
+ typeof obj.setNextspaceMetadataCallback === "function" &&
152
+ typeof obj.setMaxSplats === "function") {
153
+ obj.setNextspaceMetadataCallback((object) => configure(object, false));
154
+ obj.setMaxSplats(Math.min(maxSplats, 1000000));
155
+ }
156
+ }
157
+ catch (error) {
158
+ console.warn("[XGridsRenderEngine] Optional startup LOD setup unavailable.", error);
159
+ }
103
160
  if (typeof (obj === null || obj === void 0 ? void 0 : obj.setRenderState) === "function") {
104
161
  // Splats must respect nearer meshes already drawn in the same Cesium pass.
105
162
  obj.setRenderState({
106
163
  depthTest: {
107
164
  enabled: true,
108
165
  func: Cesium.WebGLConstants.LEQUAL
109
- }
166
+ },
167
+ // Transparent Gaussian edges must not occlude the splats blended behind them.
168
+ depthMask: false
110
169
  });
111
170
  }
112
171
  if (typeof (obj === null || obj === void 0 ? void 0 : obj.setVisible) === "function") {
@@ -114,9 +173,13 @@ var XGridsRenderEngine;
114
173
  }
115
174
  tileset_render_engine_1.TilesetRenderEngine.WatchDateRange(viewer, obj, tileset);
116
175
  // Highest LOD.
117
- obj.setStartLod(0);
176
+ if (typeof obj.setStartLod === "function") {
177
+ obj.setStartLod(0);
178
+ }
118
179
  // Max distance for rendering.
119
- obj.setMaxDistance(800);
180
+ if (typeof obj.setMaxDistance === "function") {
181
+ obj.setMaxDistance(800);
182
+ }
120
183
  // Adjust LODs based on camera distance.
121
184
  if (typeof obj.setLodAutoLevelUp === "function") {
122
185
  obj.setLodAutoLevelUp(true);
@@ -124,18 +187,299 @@ var XGridsRenderEngine;
124
187
  return obj;
125
188
  }
126
189
  XGridsRenderEngine.Render = Render;
190
+ /*
191
+ * Detaches optional tuning before unloading the scan.
192
+ */
127
193
  function Remove(viewer, renderObject) {
194
+ var _a;
128
195
  if (!renderObject) {
129
196
  return;
130
197
  }
131
- if (!LCCRender) {
198
+ renderObject["_nextspaceLodRemoved"] = true;
199
+ delete renderObject.nextspaceOnMetadata;
200
+ (_a = viewer === null || viewer === void 0 ? void 0 : viewer["_nextspaceXGridsLod"]) === null || _a === void 0 ? void 0 : _a.Remove(renderObject);
201
+ tileset_render_engine_1.TilesetRenderEngine.UnwatchDateRange(viewer, renderObject);
202
+ if (typeof LCCRender === "undefined" || typeof (LCCRender === null || LCCRender === void 0 ? void 0 : LCCRender.unload) !== "function") {
132
203
  console.warn("[XGridsRenderEngine] Remove() LCCRender library not available.");
133
204
  return;
134
205
  }
135
- tileset_render_engine_1.TilesetRenderEngine.UnwatchDateRange(viewer, renderObject);
136
206
  LCCRender.unload(renderObject);
137
207
  }
138
208
  XGridsRenderEngine.Remove = Remove;
209
+ /*
210
+ * Shares a bounded splat budget across visible scans without overriding layer or timeline visibility.
211
+ */
212
+ class AdaptiveLod {
213
+ /*
214
+ * Observes scene updates and rendered frames for this viewer only.
215
+ */
216
+ constructor(viewer) {
217
+ this.viewer = viewer;
218
+ this.entries = [];
219
+ this.removals = [];
220
+ this.lastUpdate = -Infinity;
221
+ this.lastAllocation = -Infinity;
222
+ this.lastFrame = 0;
223
+ this.lastMove = 0;
224
+ this.slowSince = 0;
225
+ this.fastSince = 0;
226
+ this.lastChange = -Infinity;
227
+ this.scale = 1;
228
+ this.position = new Cesium.Cartesian3();
229
+ this.direction = new Cesium.Cartesian3();
230
+ this.havePose = false;
231
+ this.removals.push(viewer.scene.preUpdate.addEventListener(() => {
232
+ try {
233
+ this.Update();
234
+ }
235
+ catch (error) {
236
+ console.warn("[XGridsRenderEngine] Optional LOD controller disabled.", error);
237
+ this.Dispose();
238
+ }
239
+ }));
240
+ this.removals.push(viewer.scene.postRender.addEventListener(() => {
241
+ const camera = viewer.scene.camera;
242
+ const moving = this.havePose && (Cesium.Cartesian3.distanceSquared(camera.positionWC, this.position) > 0.000001 ||
243
+ Cesium.Cartesian3.distanceSquared(camera.directionWC, this.direction) > 0.00000001);
244
+ Cesium.Cartesian3.clone(camera.positionWC, this.position);
245
+ Cesium.Cartesian3.clone(camera.directionWC, this.direction);
246
+ this.havePose = true;
247
+ this.ObserveFrame(performance.now(), moving);
248
+ }));
249
+ }
250
+ /*
251
+ * Registers a scan while preserving the caller's visibility intent.
252
+ */
253
+ Add(object, maxBudget) {
254
+ var _a, _b, _c, _d;
255
+ if (this.entries.some(entry => entry.object === object)) {
256
+ return;
257
+ }
258
+ if (typeof object.setMaxSplats !== "function") {
259
+ return;
260
+ }
261
+ const lods = typeof object.getLodInfos === "function" ? object.getLodInfos() : undefined;
262
+ const finest = lods === null || lods === void 0 ? void 0 : lods[0];
263
+ const coarsest = (lods === null || lods === void 0 ? void 0 : lods.length) > 1 ? lods[lods.length - 1] : 0;
264
+ const entry = {
265
+ object, maxBudget,
266
+ capacity: Number.isFinite(finest) && finest > 0 ? Math.min(maxBudget, finest) : maxBudget,
267
+ minimum: Number.isFinite(coarsest) && coarsest > 0 ? Math.min(maxBudget, coarsest) : 0,
268
+ wantedVisible: ((_b = (_a = object.getCurrentConfig) === null || _a === void 0 ? void 0 : _a.call(object)) === null || _b === void 0 ? void 0 : _b.visible) !== false,
269
+ visible: ((_d = (_c = object.getCurrentConfig) === null || _c === void 0 ? void 0 : _c.call(object)) === null || _d === void 0 ? void 0 : _d.visible) !== false,
270
+ culled: false, setVisible: object.setVisible, budget: -1, nodeBudget: -1,
271
+ radiusPixels: Infinity, surfaceDistance: Infinity, weight: 1, near: false
272
+ };
273
+ if (typeof entry.setVisible === "function") {
274
+ object.setVisible = (visible) => {
275
+ entry.wantedVisible = !!visible;
276
+ this.applyVisibility(entry);
277
+ this.lastUpdate = -Infinity;
278
+ this.lastAllocation = -Infinity;
279
+ };
280
+ }
281
+ this.entries.push(entry);
282
+ this.lastMove = performance.now();
283
+ this.lastUpdate = -Infinity;
284
+ this.lastAllocation = -Infinity;
285
+ }
286
+ /*
287
+ * Combines explicit visibility with temporary camera culling.
288
+ */
289
+ applyVisibility(entry) {
290
+ const visible = entry.wantedVisible && !entry.culled;
291
+ if (entry.visible !== visible && typeof entry.setVisible === "function") {
292
+ entry.visible = visible;
293
+ entry.setVisible.call(entry.object, visible);
294
+ this.viewer.scene.requestRender();
295
+ }
296
+ }
297
+ /*
298
+ * Render pressure uses elapsed wall time because a paused timeline must still adapt.
299
+ */
300
+ ObserveFrame(now, moving) {
301
+ const gap = now - this.lastFrame;
302
+ this.lastFrame = now;
303
+ if (moving) {
304
+ this.lastMove = now;
305
+ }
306
+ if (!moving || gap <= 0 || gap > 1000) {
307
+ this.slowSince = this.fastSince = 0;
308
+ return;
309
+ }
310
+ this.slowSince = gap > 40 ? this.slowSince || now : 0;
311
+ this.fastSince = gap < 22 ? this.fastSince || now : 0;
312
+ if (now - this.lastChange < 4000) {
313
+ return;
314
+ }
315
+ if (this.slowSince && now - this.slowSince >= 1500 && this.scale > 0.25) {
316
+ this.scale = Math.max(0.25, this.scale * 0.75);
317
+ this.lastChange = now;
318
+ this.slowSince = this.fastSince = 0;
319
+ this.lastUpdate = -Infinity;
320
+ }
321
+ else if (this.fastSince && now - this.fastSince >= 6000 && this.scale < 1) {
322
+ this.scale = Math.min(1, this.scale + 0.125);
323
+ this.lastChange = now;
324
+ this.slowSince = this.fastSince = 0;
325
+ this.lastUpdate = -Infinity;
326
+ }
327
+ }
328
+ /*
329
+ * Estimates visible screen coverage and distance, failing open for unknown bounds.
330
+ */
331
+ measure(entry) {
332
+ var _a;
333
+ entry.weight = 1;
334
+ entry.radiusPixels = entry.surfaceDistance = Infinity;
335
+ try {
336
+ const object = entry.object;
337
+ const bounds = (_a = object.getBounds) === null || _a === void 0 ? void 0 : _a.call(object);
338
+ const matrix = object.modelMatrix;
339
+ const camera = this.viewer.scene.camera;
340
+ const width = this.viewer.scene.drawingBufferWidth;
341
+ const height = this.viewer.scene.drawingBufferHeight;
342
+ if (!(bounds === null || bounds === void 0 ? void 0 : bounds.min) || !(bounds === null || bounds === void 0 ? void 0 : bounds.max) || !matrix || !(width > 0 && height > 0)) {
343
+ entry.culled = false;
344
+ return;
345
+ }
346
+ const center = Cesium.Cartesian3.midpoint(bounds.min, bounds.max, new Cesium.Cartesian3());
347
+ Cesium.Matrix4.multiplyByPoint(matrix, center, center);
348
+ const scale = Cesium.Matrix4.getMaximumScale(matrix);
349
+ const radius = Cesium.Cartesian3.distance(bounds.min, bounds.max) * scale * 0.55 + 1;
350
+ const distance = Cesium.Cartesian3.distance(camera.positionWC, center);
351
+ const pixel = camera.frustum.getPixelDimensions(width, height, Math.max(1, distance), 1, new Cesium.Cartesian2());
352
+ const pixels = radius / Math.max(pixel.x, pixel.y);
353
+ if (!Number.isFinite(pixels) || !(radius > 0)) {
354
+ entry.culled = false;
355
+ return;
356
+ }
357
+ const sphere = new Cesium.BoundingSphere(center, radius);
358
+ const frustum = camera.frustum.computeCullingVolume(camera.positionWC, camera.directionWC, camera.upWC);
359
+ const outside = frustum.computeVisibility(sphere) === Cesium.Intersect.OUTSIDE;
360
+ entry.culled = outside || pixels < (entry.culled ? 1.5 : 0.75);
361
+ entry.radiusPixels = pixels;
362
+ entry.weight = Math.pow(Math.min(1, Math.max(0.05, pixels / height)), 2);
363
+ const local = Cesium.Matrix4.multiplyByPoint(Cesium.Matrix4.inverse(matrix, new Cesium.Matrix4()), camera.positionWC, new Cesium.Cartesian3());
364
+ const nearest = new Cesium.Cartesian3(Cesium.Math.clamp(local.x, bounds.min.x, bounds.max.x), Cesium.Math.clamp(local.y, bounds.min.y, bounds.max.y), Cesium.Math.clamp(local.z, bounds.min.z, bounds.max.z));
365
+ entry.surfaceDistance = Cesium.Cartesian3.distance(local, nearest) * scale;
366
+ }
367
+ catch {
368
+ // Unknown bounds or a changed optional SDK must fail open instead of hiding the scan.
369
+ entry.culled = false;
370
+ }
371
+ }
372
+ /*
373
+ * Allocates the shared hardware budget across visible scans with hysteresis.
374
+ */
375
+ Update(now = performance.now()) {
376
+ var _a, _b;
377
+ if ((_b = (_a = this.viewer).isDestroyed) === null || _b === void 0 ? void 0 : _b.call(_a)) {
378
+ this.Dispose();
379
+ return;
380
+ }
381
+ if (now - this.lastUpdate < 250) {
382
+ return;
383
+ }
384
+ this.lastUpdate = now;
385
+ // A still view can recover detail gradually without treating missing frames as a slow GPU.
386
+ if (now - this.lastMove > 3000 && now - this.lastChange > 6000 && this.scale < 1) {
387
+ this.scale = Math.min(1, this.scale + 0.125);
388
+ this.lastChange = now;
389
+ }
390
+ for (const entry of this.entries) {
391
+ this.measure(entry);
392
+ this.applyVisibility(entry);
393
+ }
394
+ const visible = this.entries.filter(entry => entry.wantedVisible && !entry.culled);
395
+ if (!visible.length || now - this.lastAllocation < 2000) {
396
+ return;
397
+ }
398
+ this.lastAllocation = now;
399
+ const maximum = Math.max(...visible.map(entry => entry.maxBudget));
400
+ const minimum = visible.reduce((sum, entry) => sum + Math.min(entry.capacity, entry.minimum), 0);
401
+ // Preserve authored coarse coverage when it fits; dropping below a whole tile can erase a scan.
402
+ const reserve = minimum <= maximum;
403
+ let remaining = Math.max(maximum * this.scale, reserve ? minimum : 0);
404
+ const allocations = new Map();
405
+ visible.forEach(entry => {
406
+ const floor = reserve ? Math.min(entry.capacity, entry.minimum) : 0;
407
+ allocations.set(entry, floor);
408
+ remaining -= floor;
409
+ });
410
+ let pending = visible.filter(entry => allocations.get(entry) < entry.capacity);
411
+ while (pending.length) {
412
+ const totalWeight = pending.reduce((sum, entry) => sum + entry.weight, 0);
413
+ const capped = pending.filter(entry => remaining * entry.weight / totalWeight >= entry.capacity - allocations.get(entry));
414
+ if (!capped.length) {
415
+ pending.forEach(entry => allocations.set(entry, allocations.get(entry) + remaining * entry.weight / totalWeight));
416
+ break;
417
+ }
418
+ capped.forEach(entry => {
419
+ remaining -= entry.capacity - allocations.get(entry);
420
+ allocations.set(entry, entry.capacity);
421
+ });
422
+ pending = pending.filter(entry => allocations.get(entry) < entry.capacity);
423
+ }
424
+ for (const entry of visible) {
425
+ const allocation = allocations.get(entry);
426
+ const step = allocation < 250000 ? 10000 : 250000;
427
+ const budget = allocation >= entry.capacity ? entry.capacity : Math.max(1, reserve ? entry.minimum : 0, Math.floor(allocation / step) * step);
428
+ const near = entry.surfaceDistance < (entry.near ? 20 : 12) && entry.radiusPixels > (entry.near ? 80 : 120);
429
+ entry.near = near;
430
+ const ceiling = entry.maxBudget <= 2000000 ? entry.maxBudget / 2 : near ? 4000000 : 2000000;
431
+ const nodeBudget = Math.max(1, Math.min(ceiling, entry.capacity <= ceiling ? budget : budget * (near ? 2 / 3 : 1 / 3)));
432
+ if (entry.budget !== budget) {
433
+ entry.object.setMaxSplats(budget);
434
+ entry.budget = budget;
435
+ this.viewer.scene.requestRender();
436
+ }
437
+ if (entry.nodeBudget !== nodeBudget && typeof entry.object.setMaxNodeSplats === "function") {
438
+ entry.object.setMaxNodeSplats(nodeBudget);
439
+ entry.nodeBudget = nodeBudget;
440
+ this.viewer.scene.requestRender();
441
+ }
442
+ }
443
+ }
444
+ /*
445
+ * Restores the scan's visibility method and releases unused listeners.
446
+ */
447
+ Remove(object) {
448
+ const entry = this.entries.find(entry => entry.object === object);
449
+ if (entry) {
450
+ object.setVisible = entry.setVisible;
451
+ this.entries = this.entries.filter(other => other !== entry);
452
+ this.lastUpdate = -Infinity;
453
+ this.lastAllocation = -Infinity;
454
+ }
455
+ if (!this.entries.length) {
456
+ this.Dispose();
457
+ }
458
+ }
459
+ /*
460
+ * Restores visibility intent and releases all controller listeners.
461
+ */
462
+ Dispose() {
463
+ this.removals.forEach(remove => remove());
464
+ this.removals = [];
465
+ this.entries.forEach(entry => {
466
+ entry.object.setVisible = entry.setVisible;
467
+ try {
468
+ if (entry.visible !== entry.wantedVisible && typeof entry.setVisible === "function") {
469
+ entry.setVisible.call(entry.object, entry.wantedVisible);
470
+ }
471
+ }
472
+ catch {
473
+ // A disposed or replaced optional SDK must not break viewer cleanup.
474
+ }
475
+ });
476
+ this.entries = [];
477
+ if (this.viewer["_nextspaceXGridsLod"] === this) {
478
+ delete this.viewer["_nextspaceXGridsLod"];
479
+ }
480
+ }
481
+ }
482
+ XGridsRenderEngine.AdaptiveLod = AdaptiveLod;
139
483
  /**
140
484
  * Applies position, rotation, and scale to a live XGrids render object.
141
485
  */
@@ -1 +1 @@
1
- {"version":3,"file":"xgrids-render-engine.js","sourceRoot":"","sources":["../../../src/rendering/xgrids-render-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xgrids-render-engine.js","sourceRoot":"","sources":["../../../src/rendering/xgrids-render-engine.ts"],"names":[],"mappings":"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"}
@@ -72,7 +72,7 @@ export * from "./widgets/widget-info-view";
72
72
  export * from "./widgets/widget-left-panel";
73
73
  export * from "./widgets/widget-nav-compass";
74
74
  export * from "./widgets/widget-view-bar";
75
- export declare const VERSION = "7.7.4";
75
+ export declare const VERSION = "7.7.5";
76
76
  /**
77
77
  * Updates the environment instance used by bruce-cesium to one specified.
78
78
  * This can be used to ensure that the instance a parent is referencing is shared between bruce-cesium, bruce-models, and the parent app.
@@ -12,6 +12,30 @@ export declare namespace XGridsRenderEngine {
12
12
  flyTo?: boolean;
13
13
  }): TRenderObject | null;
14
14
  function Remove(viewer: Cesium.Viewer, renderObject: TRenderObject): void;
15
+ class AdaptiveLod {
16
+ private viewer;
17
+ private entries;
18
+ private removals;
19
+ private lastUpdate;
20
+ private lastAllocation;
21
+ private lastFrame;
22
+ private lastMove;
23
+ private slowSince;
24
+ private fastSince;
25
+ private lastChange;
26
+ private scale;
27
+ private position;
28
+ private direction;
29
+ private havePose;
30
+ constructor(viewer: Cesium.Viewer);
31
+ Add(object: any, maxBudget: number): void;
32
+ private applyVisibility;
33
+ ObserveFrame(now: number, moving: boolean): void;
34
+ private measure;
35
+ Update(now?: number): void;
36
+ Remove(object: any): void;
37
+ Dispose(): void;
38
+ }
15
39
  /**
16
40
  * Applies position, rotation, and scale to a live XGrids render object.
17
41
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bruce-cesium",
3
- "version": "7.7.4",
3
+ "version": "7.7.5",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "main": "dist/bruce-cesium.umd.js",