bruce-cesium 7.5.8 → 7.5.9

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.
@@ -250,6 +250,10 @@ var TextureFrameSeriesAnimator;
250
250
  TextureFrameSeriesAnimator.AppearanceSignature = AppearanceSignature;
251
251
  const MAX_COMPOSITE_TEXELS = 2048;
252
252
  const VALUE_DILATE_PASSES = 2;
253
+ // Decoded frame bytes kept at once. A 2048 square composite is 16 MB, so a long series cannot all stay.
254
+ const MAX_CACHED_FRAME_BYTES = 256 * 1024 * 1024;
255
+ // Fetched bytes kept for decoding again, a small fraction of what they decode to.
256
+ const MAX_RAW_FRAME_BYTES = 96 * 1024 * 1024;
253
257
  /*
254
258
  * Rewrites a packed 16 bit value as the 8 bit grey the colour ramps index on.
255
259
  *
@@ -270,19 +274,33 @@ var TextureFrameSeriesAnimator;
270
274
  /*
271
275
  * Bleeds covered values outward into uncovered texels, leaving alpha untouched.
272
276
  */
273
- function dilateValues(value, width, height, passes, packed) {
277
+ function DilateValues(value, width, height, passes, packed) {
274
278
  const texels = width * height;
275
- const filled = new Uint8Array(texels);
279
+ // 255 for a texel that had data to begin with, otherwise the 1 based pass that filled it, so a pass
280
+ // reads only texels filled before it and can work in place.
281
+ const stamp = new Uint8Array(texels);
276
282
  for (let p = 0; p < texels; p++) {
277
- filled[p] = value[p * 4 + 3] !== 0 ? 1 : 0;
283
+ stamp[p] = value[p * 4 + 3] !== 0 ? 255 : 0;
278
284
  }
285
+ // Whether a texel or a horizontal neighbour had data, so empty space is skipped in three reads.
286
+ const across = new Uint8Array(texels);
279
287
  for (let pass = 0; pass < passes; pass++) {
280
- const source = value.slice();
281
- const wasFilled = filled.slice();
288
+ const current = pass + 1;
289
+ const had = (p) => stamp[p] !== 0 && stamp[p] !== current;
290
+ for (let y = 0; y < height; y++) {
291
+ const row = y * width;
292
+ for (let x = 0; x < width; x++) {
293
+ const p = row + x;
294
+ across[p] = (had(p) || (x > 0 && had(p - 1)) || (x + 1 < width && had(p + 1))) ? 1 : 0;
295
+ }
296
+ }
282
297
  for (let y = 0; y < height; y++) {
283
298
  for (let x = 0; x < width; x++) {
284
299
  const p = y * width + x;
285
- if (wasFilled[p]) {
300
+ if (stamp[p] !== 0) {
301
+ continue;
302
+ }
303
+ if (!across[p] && !(y > 0 && across[p - width]) && !(y + 1 < height && across[p + width])) {
286
304
  continue;
287
305
  }
288
306
  let sum = 0;
@@ -291,13 +309,13 @@ var TextureFrameSeriesAnimator;
291
309
  for (let dx = -1; dx <= 1; dx++) {
292
310
  const nx = x + dx;
293
311
  const ny = y + dy;
294
- if (nx < 0 || ny < 0 || nx >= width || ny >= height || !wasFilled[ny * width + nx]) {
312
+ if (nx < 0 || ny < 0 || nx >= width || ny >= height || !had(ny * width + nx)) {
295
313
  continue;
296
314
  }
297
315
  const at = (ny * width + nx) * 4;
298
316
  // Averaged as a value rather than per byte: averaging a packed low byte
299
317
  // on its own wraps at every 256th step and speckles the bled edge.
300
- sum += packed ? source[at] * 256 + source[at + 1] : source[at];
318
+ sum += packed ? value[at] * 256 + value[at + 1] : value[at];
301
319
  hits++;
302
320
  }
303
321
  }
@@ -313,18 +331,25 @@ var TextureFrameSeriesAnimator;
313
331
  value[p * 4 + 1] = v;
314
332
  value[p * 4 + 2] = v;
315
333
  }
316
- filled[p] = 1;
334
+ stamp[p] = current;
317
335
  }
318
336
  }
319
337
  }
320
338
  }
321
339
  }
340
+ TextureFrameSeriesAnimator.DilateValues = DilateValues;
341
+ /*
342
+ * Bytes one cached frame holds, counting a buffer shared between colour and value once.
343
+ */
344
+ function frameBytes(pixels, value) {
345
+ return (pixels ? pixels.byteLength : 0) + (value && value !== pixels ? value.byteLength : 0);
346
+ }
322
347
  const DEFAULT_CROSSFADE_MS = 900;
323
348
  const DEFAULT_LOW_COLOR = { red: 255, green: 255, blue: 255, alpha: 0.12 };
324
349
  const DEFAULT_HIGH_COLOR = { red: 21, green: 96, blue: 196, alpha: 0.92 };
325
350
  class Animator {
326
351
  constructor(options) {
327
- var _a, _b, _c;
352
+ var _a, _b, _c, _d;
328
353
  this.removeOnTick = null;
329
354
  this.removeCrossfadeTick = null;
330
355
  this.disposed = false;
@@ -355,6 +380,15 @@ var TextureFrameSeriesAnimator;
355
380
  this.extremesLoad = null;
356
381
  this.floorPixels = null;
357
382
  this.ceilingPixels = null;
383
+ // How far through the fade from the previous value frame to the presented one, 1 when settled.
384
+ this.fadeMix = 1;
385
+ // Where the current fade started from, above zero when it took over from one still running.
386
+ this.fadeMixStart = 0;
387
+ // Version the value canvas was last written at, since in value only mode it is written on demand.
388
+ this.valueCanvasVersion = -1;
389
+ this.rawBytes = 0;
390
+ this.cachedBytes = 0;
391
+ this.lastFrameBytes = 0;
358
392
  if (!options.entity.polygon) {
359
393
  throw new Error("TextureFrameSeriesAnimator requires an entity with polygon graphics.");
360
394
  }
@@ -402,6 +436,9 @@ var TextureFrameSeriesAnimator;
402
436
  this.maskBaseline = (_c = options.maskBaseline) !== null && _c !== void 0 ? _c : this.tiles.some((tile) => Boolean(tile.BaselineMask));
403
437
  this.valueCanvas = this.produceValueCanvas ? document.createElement("canvas") : null;
404
438
  this.driveMaterial = options.driveMaterial !== false;
439
+ this.valueOnly = this.produceValueCanvas && !this.driveMaterial;
440
+ this.rawCache = new Array(this.frames.length).fill(null);
441
+ this.cacheBudget = (_d = options.cacheBytes) !== null && _d !== void 0 ? _d : MAX_CACHED_FRAME_BYTES;
405
442
  this.originalMaterial = options.entity.polygon.material;
406
443
  this.imageProperty = new Cesium.CallbackProperty(() => this.pool[this.poolIdx], false);
407
444
  if (this.driveMaterial) {
@@ -467,7 +504,40 @@ var TextureFrameSeriesAnimator;
467
504
  * or null unless the instance was constructed with produceValueCanvas.
468
505
  */
469
506
  GetValueCanvas() {
470
- return this.valueDims ? this.valueCanvas : null;
507
+ if (!this.valueDims) {
508
+ return null;
509
+ }
510
+ if (this.valueOnly && this.valueCanvasVersion !== this.presentVersion && this.displayedValuePixels) {
511
+ this.writeInto(this.valueCanvas, this.displayedValuePixels, this.valueDims);
512
+ this.valueCanvasVersion = this.presentVersion;
513
+ }
514
+ return this.valueCanvas;
515
+ }
516
+ /**
517
+ * The presented frame's value pixels, or null before one. Shares the cached array, so never write to it.
518
+ */
519
+ GetValueRaster() {
520
+ if (!this.valueDims || !this.displayedValuePixels) {
521
+ return null;
522
+ }
523
+ return { data: this.displayedValuePixels, width: this.valueDims.width, height: this.valueDims.height };
524
+ }
525
+ /**
526
+ * The two value frames being faded between and the mix, or null unless the material is not driven.
527
+ */
528
+ GetValueFade() {
529
+ if (!this.valueOnly || !this.valueDims || !this.displayedValuePixels) {
530
+ return null;
531
+ }
532
+ const previous = this.fadeFromValuePixels;
533
+ const from = previous && previous.length === this.displayedValuePixels.length ? previous : null;
534
+ return {
535
+ from,
536
+ to: this.displayedValuePixels,
537
+ width: this.valueDims.width,
538
+ height: this.valueDims.height,
539
+ mix: from ? this.fadeMix : 1
540
+ };
471
541
  }
472
542
  /**
473
543
  * Increments every time a frame is presented, so a consumer holding the value canvas can tell
@@ -534,7 +604,11 @@ var TextureFrameSeriesAnimator;
534
604
  if (this.currentFrameIndex < 0) {
535
605
  return this.frameCache[0] ? -1 : 0;
536
606
  }
537
- for (let d = 0; d < n; d++) {
607
+ // Full once another frame will not fit, so a prefetch only displaces a frame further from the
608
+ // playhead than itself and never trades the two ends of the window back and forth.
609
+ const full = this.cachedBytes + this.lastFrameBytes > this.cacheBudget;
610
+ const reach = full ? this.farthestCachedDistance() : n;
611
+ for (let d = 0; d < Math.min(n, reach); d++) {
538
612
  const forward = this.currentFrameIndex + d;
539
613
  if (forward < n && !this.frameCache[forward]) {
540
614
  return forward;
@@ -546,6 +620,68 @@ var TextureFrameSeriesAnimator;
546
620
  }
547
621
  return -1;
548
622
  }
623
+ farthestCachedDistance() {
624
+ let farthest = 0;
625
+ for (let i = 0; i < this.frameCache.length; i++) {
626
+ if (this.frameCache[i]) {
627
+ farthest = Math.max(farthest, Math.abs(i - this.currentFrameIndex));
628
+ }
629
+ }
630
+ return farthest;
631
+ }
632
+ /*
633
+ * Drops decoded frames furthest from the playhead until the cache fits its budget again.
634
+ */
635
+ evictDecoded(keep) {
636
+ // A tinted fade reads its target from the cache each tick, where a value fade holds the arrays.
637
+ const fading = !this.valueOnly && this.fadeStartMs !== null ? this.fadeToIndex : -1;
638
+ while (this.cachedBytes > this.cacheBudget) {
639
+ let victim = -1;
640
+ let distance = -1;
641
+ for (let i = 0; i < this.frameCache.length; i++) {
642
+ if (!this.frameCache[i] || i === keep || i === this.currentFrameIndex || i === fading) {
643
+ continue;
644
+ }
645
+ const d = Math.abs(i - this.currentFrameIndex);
646
+ if (d > distance) {
647
+ distance = d;
648
+ victim = i;
649
+ }
650
+ }
651
+ if (victim < 0) {
652
+ return;
653
+ }
654
+ this.cachedBytes -= frameBytes(this.frameCache[victim], this.valueCache[victim]);
655
+ this.frameCache[victim] = null;
656
+ this.valueCache[victim] = null;
657
+ }
658
+ }
659
+ /*
660
+ * Keeps a frame's fetched bytes unless they are large, as a tile major archive's are.
661
+ */
662
+ keepRaw(idx, buffer, base) {
663
+ if (buffer.byteLength > MAX_RAW_FRAME_BYTES / 16) {
664
+ return;
665
+ }
666
+ this.rawCache[idx] = { buffer, base };
667
+ this.rawBytes += buffer.byteLength;
668
+ while (this.rawBytes > MAX_RAW_FRAME_BYTES) {
669
+ let victim = -1;
670
+ let distance = -1;
671
+ for (let i = 0; i < this.rawCache.length; i++) {
672
+ const d = Math.abs(i - this.currentFrameIndex);
673
+ if (this.rawCache[i] && i !== idx && d > distance) {
674
+ distance = d;
675
+ victim = i;
676
+ }
677
+ }
678
+ if (victim < 0) {
679
+ return;
680
+ }
681
+ this.rawBytes -= this.rawCache[victim].buffer.byteLength;
682
+ this.rawCache[victim] = null;
683
+ }
684
+ }
549
685
  pumpFetchQueue() {
550
686
  if (this.disposed || this.inFlightIndex !== -1) {
551
687
  return;
@@ -589,10 +725,18 @@ var TextureFrameSeriesAnimator;
589
725
  lo = Math.min(lo, at.ByteOffset);
590
726
  hi = Math.max(hi, at.ByteOffset + at.ByteLength);
591
727
  }
592
- const response = await fetch(this.archiveUrl, { headers: { Range: `bytes=${lo}-${hi - 1}` } });
593
- const buffer = await response.arrayBuffer();
594
- if (this.disposed) {
595
- return;
728
+ let buffer;
729
+ const raw = this.rawCache[idx];
730
+ if (raw && raw.base === lo) {
731
+ buffer = raw.buffer;
732
+ }
733
+ else {
734
+ const response = await fetch(this.archiveUrl, { headers: { Range: `bytes=${lo}-${hi - 1}` } });
735
+ buffer = await response.arrayBuffer();
736
+ if (this.disposed) {
737
+ return;
738
+ }
739
+ this.keepRaw(idx, buffer, lo);
596
740
  }
597
741
  // Awaited before decoding rather than applied later, so no frame is ever cached unmasked and
598
742
  // then corrected once the mask lands.
@@ -604,9 +748,15 @@ var TextureFrameSeriesAnimator;
604
748
  if (this.disposed) {
605
749
  return;
606
750
  }
751
+ if (this.frameCache[idx]) {
752
+ this.cachedBytes -= frameBytes(this.frameCache[idx], this.valueCache[idx]);
753
+ }
607
754
  this.frameCache[idx] = decoded.pixels;
608
755
  this.frameDims[idx] = { width: decoded.width, height: decoded.height };
609
756
  this.valueCache[idx] = decoded.valuePixels || null;
757
+ this.lastFrameBytes = frameBytes(decoded.pixels, decoded.valuePixels || null);
758
+ this.cachedBytes += this.lastFrameBytes;
759
+ this.evictDecoded(idx);
610
760
  if (this.shouldPresent(idx, isTarget)) {
611
761
  this.beginCrossfadeTo(idx);
612
762
  }
@@ -676,6 +826,13 @@ var TextureFrameSeriesAnimator;
676
826
  */
677
827
  tint(imageData) {
678
828
  const canvas = { width: imageData.width, height: imageData.height };
829
+ if (this.valueOnly) {
830
+ // One array serves as both, since nothing will ever display the colour.
831
+ const values = imageData.data;
832
+ this.applyBaselineMask(values, undefined, canvas.width, canvas.height);
833
+ DilateValues(values, canvas.width, canvas.height, VALUE_DILATE_PASSES, IsPackedValue(this.metadata));
834
+ return { pixels: values, width: canvas.width, height: canvas.height, valuePixels: values };
835
+ }
679
836
  // Copied before tinting: the ramp is a lerp between two colours, so the value cannot be
680
837
  // recovered from the tinted pixels afterwards.
681
838
  const valuePixels = this.produceValueCanvas ? new Uint8ClampedArray(imageData.data) : undefined;
@@ -696,7 +853,7 @@ var TextureFrameSeriesAnimator;
696
853
  }
697
854
  this.applyBaselineMask(imageData.data, valuePixels, canvas.width, canvas.height);
698
855
  if (valuePixels) {
699
- dilateValues(valuePixels, canvas.width, canvas.height, VALUE_DILATE_PASSES, IsPackedValue(this.metadata));
856
+ DilateValues(valuePixels, canvas.width, canvas.height, VALUE_DILATE_PASSES, IsPackedValue(this.metadata));
700
857
  }
701
858
  return { pixels: imageData.data, width: canvas.width, height: canvas.height, valuePixels };
702
859
  }
@@ -954,6 +1111,10 @@ var TextureFrameSeriesAnimator;
954
1111
  }
955
1112
  }
956
1113
  beginCrossfadeTo(idx) {
1114
+ if (this.valueOnly) {
1115
+ this.beginValueFadeTo(idx);
1116
+ return;
1117
+ }
957
1118
  const to = this.frameCache[idx];
958
1119
  this.fadeFromValuePixels = this.displayedValuePixels === null && this.valueCache[idx]
959
1120
  ? new Uint8ClampedArray(this.valueCache[idx].length)
@@ -963,12 +1124,53 @@ var TextureFrameSeriesAnimator;
963
1124
  this.fadeToDims = this.frameDims[idx];
964
1125
  this.fadeStartMs = Now();
965
1126
  }
1127
+ /*
1128
+ * Presents a value frame at once and leaves the fade to the consumer, which blends on the GPU.
1129
+ */
1130
+ beginValueFadeTo(idx) {
1131
+ const to = this.valueCache[idx];
1132
+ if (!to || to === this.displayedValuePixels) {
1133
+ return;
1134
+ }
1135
+ // A new target mid fade keeps whichever frame is mostly on screen and carries on from the current
1136
+ // mix, so frames landing in quick succession do not jump the sheet back.
1137
+ const midFade = this.fadeStartMs !== null && Boolean(this.fadeFromValuePixels);
1138
+ if (midFade && this.fadeMix < 0.5) {
1139
+ this.fadeMixStart = this.fadeMix;
1140
+ }
1141
+ else {
1142
+ this.fadeFromValuePixels = this.displayedValuePixels;
1143
+ this.fadeMixStart = 0;
1144
+ }
1145
+ this.displayedValuePixels = to;
1146
+ this.valueDims = this.frameDims[idx];
1147
+ this.fadeToIndex = idx;
1148
+ this.fadeMix = this.fadeFromValuePixels ? this.fadeMixStart : 1;
1149
+ this.fadeStartMs = this.fadeFromValuePixels ? Now() : null;
1150
+ this.presentVersion++;
1151
+ this.requestRender();
1152
+ }
1153
+ requestRender() {
1154
+ if (this.viewer && this.viewer.scene && this.viewer.scene.requestRenderMode) {
1155
+ this.viewer.scene.requestRender();
1156
+ }
1157
+ }
966
1158
  tickCrossfade() {
967
1159
  if (this.disposed || this.fadeStartMs === null) {
968
1160
  return;
969
1161
  }
970
1162
  const t = Math.min(1, (Now() - this.fadeStartMs) / this.crossfadeMs);
971
1163
  const eased = easeInOutQuad(t);
1164
+ if (this.valueOnly) {
1165
+ this.fadeMix = this.fadeMixStart + (1 - this.fadeMixStart) * eased;
1166
+ if (t >= 1) {
1167
+ this.fadeStartMs = null;
1168
+ this.fadeFromValuePixels = null;
1169
+ this.fadeMix = 1;
1170
+ }
1171
+ this.requestRender();
1172
+ return;
1173
+ }
972
1174
  const from = this.fadeFromPixels;
973
1175
  const to = this.frameCache[this.fadeToIndex];
974
1176
  const n = Math.min(from.length, to.length);
@@ -1008,9 +1210,7 @@ var TextureFrameSeriesAnimator;
1008
1210
  this.valueDims = dims;
1009
1211
  }
1010
1212
  this.presentVersion++;
1011
- if (this.viewer && this.viewer.scene && this.viewer.scene.requestRenderMode) {
1012
- this.viewer.scene.requestRender();
1013
- }
1213
+ this.requestRender();
1014
1214
  }
1015
1215
  }
1016
1216
  TextureFrameSeriesAnimator.Animator = Animator;
@@ -1 +1 @@
1
- {"version":3,"file":"texture-frame-series-animator.js","sourceRoot":"","sources":["../../../src/rendering/texture-frame-series-animator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"texture-frame-series-animator.js","sourceRoot":"","sources":["../../../src/rendering/texture-frame-series-animator.ts"],"names":[],"mappings":"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"}