bruce-cesium 7.5.7 → 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.
Files changed (25) hide show
  1. package/dist/bruce-cesium.es5.js +1918 -330
  2. package/dist/bruce-cesium.es5.js.map +1 -1
  3. package/dist/bruce-cesium.umd.js +1916 -328
  4. package/dist/bruce-cesium.umd.js.map +1 -1
  5. package/dist/lib/bruce-cesium.js +1 -1
  6. package/dist/lib/rendering/displaced-surface-primitive.js +187 -36
  7. package/dist/lib/rendering/displaced-surface-primitive.js.map +1 -1
  8. package/dist/lib/rendering/entity-render-engine-polygon.js +20 -9
  9. package/dist/lib/rendering/entity-render-engine-polygon.js.map +1 -1
  10. package/dist/lib/rendering/render-managers/common/entity-label.js +975 -57
  11. package/dist/lib/rendering/render-managers/common/entity-label.js.map +1 -1
  12. package/dist/lib/rendering/texture-frame-series-animator.js +220 -20
  13. package/dist/lib/rendering/texture-frame-series-animator.js.map +1 -1
  14. package/dist/lib/rendering/texture-value-labels.js +478 -194
  15. package/dist/lib/rendering/texture-value-labels.js.map +1 -1
  16. package/dist/lib/rendering/visuals-register.js +34 -9
  17. package/dist/lib/rendering/visuals-register.js.map +1 -1
  18. package/dist/types/bruce-cesium.d.ts +1 -1
  19. package/dist/types/rendering/displaced-surface-primitive.d.ts +32 -0
  20. package/dist/types/rendering/entity-render-engine-polygon.d.ts +1 -0
  21. package/dist/types/rendering/render-managers/common/entity-label.d.ts +134 -20
  22. package/dist/types/rendering/texture-frame-series-animator.d.ts +42 -0
  23. package/dist/types/rendering/texture-value-labels.d.ts +59 -11
  24. package/dist/types/rendering/visuals-register.d.ts +7 -0
  25. package/package.json +2 -2
@@ -89,7 +89,7 @@ __exportStar(require("./widgets/widget-info-view"), exports);
89
89
  __exportStar(require("./widgets/widget-left-panel"), exports);
90
90
  __exportStar(require("./widgets/widget-nav-compass"), exports);
91
91
  __exportStar(require("./widgets/widget-view-bar"), exports);
92
- exports.VERSION = "7.5.7";
92
+ exports.VERSION = "7.5.9";
93
93
  /**
94
94
  * Updates the environment instance used by bruce-cesium to one specified.
95
95
  * This can be used to ensure that the instance a parent is referencing is shared between bruce-cesium, bruce-models, and the parent app.
@@ -91,6 +91,9 @@ in vec2 st;
91
91
  in float skirt;
92
92
 
93
93
  uniform sampler2D u_valueTexture;
94
+ // The frame being faded away from, and how far the fade has got. The same texture at 1 when settled.
95
+ uniform sampler2D u_valueTextureFrom;
96
+ uniform float u_valueFade;
94
97
  uniform sampler2D u_groundTexture;
95
98
  uniform float u_valuePacked;
96
99
  uniform float u_valueMin;
@@ -211,18 +214,22 @@ float decodeValue(vec4 texel) {
211
214
  }
212
215
 
213
216
  void main() {
214
- vec4 texel = texture(u_valueTexture, st);
217
+ vec4 texelTo = texture(u_valueTexture, st);
218
+ vec4 texelFrom = texture(u_valueTextureFrom, st);
215
219
  v_st = st;
220
+ // Decoded before mixing, since blending a packed pair byte by byte reads as some other value
221
+ // halfway through the fade.
222
+ float raw = mix(decodeValue(texelFrom), decodeValue(texelTo), u_valueFade);
223
+ float alpha = mix(texelFrom.a, texelTo.a, u_valueFade);
216
224
 
217
225
  // Inside a region the scene knows is water, a texel with no value still has to paint, or the
218
226
  // hole the region exists to close is still a hole.
219
227
  // The value it paints is the shallowest the ramp is not transparent at.
220
228
  float inMask = u_maskWeight * texture(u_maskTexture, st).a;
221
- float hasData = step(u_coverageCutoffVertex, texel.a);
222
- float raw = decodeValue(texel);
229
+ float hasData = step(u_coverageCutoffVertex, alpha);
223
230
  float filled = mix(u_maskFillValue, max(raw, u_maskFillValue), hasData);
224
231
  v_value = mix(raw, filled, inMask * u_maskFill);
225
- v_coverage = max(texel.a, inMask * u_maskFill);
232
+ v_coverage = max(alpha, inMask * u_maskFill);
226
233
 
227
234
  // Exaggeration stretches the span above the archive's minimum rather than the height itself. On an
228
235
  // elevation the height is measured from the ellipsoid, tens of metres from any of the data, so
@@ -265,6 +272,8 @@ void main() {
265
272
  `;
266
273
  const FRAGMENT_SHADER_GLSL300 = `
267
274
  uniform sampler2D u_valueTexture;
275
+ uniform sampler2D u_valueTextureFrom;
276
+ uniform float u_valueFade;
268
277
  uniform sampler2D u_rampTexture;
269
278
  uniform float u_coverageCutoff;
270
279
  uniform vec2 u_texelSize;
@@ -301,12 +310,15 @@ in vec2 v_waveMetres;
301
310
  * Scaled per channel for the same reason the vertex shader's decode is: reassembling the pair reaches
302
311
  * 65535, which mediump does not have to represent, and this is the shader that may not get highp.
303
312
  */
304
- float valueAt(vec2 uv) {
305
- vec4 texel = texture(u_valueTexture, uv);
313
+ float decodeValue(vec4 texel) {
306
314
  float packed16 = texel.r * (255.0 * 256.0 / 65535.0) + texel.g * (255.0 / 65535.0);
307
315
  return mix(texel.r, packed16, u_valuePacked);
308
316
  }
309
317
 
318
+ float valueAt(vec2 uv) {
319
+ return mix(decodeValue(texture(u_valueTextureFrom, uv)), decodeValue(texture(u_valueTexture, uv)), u_valueFade);
320
+ }
321
+
310
322
  //#water
311
323
  /*
312
324
  * Slope of the ripple field at a point, in metres of rise per metre travelled.
@@ -753,6 +765,13 @@ void main() {
753
765
  this.rampTexture = null;
754
766
  this.texture = null;
755
767
  this.textureDirty = true;
768
+ // Fed from a fading source: the frame being left, and which pixels each texture holds.
769
+ this.fade = null;
770
+ this.textureFrom = null;
771
+ this.uploadedTo = null;
772
+ this.uploadedFrom = null;
773
+ // Size of whichever value raster is bound, canvas or pixels.
774
+ this.sourceDims = null;
756
775
  this.shaderProgram = null;
757
776
  this.shaderProgramWater = false;
758
777
  this.renderState = null;
@@ -923,6 +942,65 @@ void main() {
923
942
  this.maskGroundTexture = null;
924
943
  }
925
944
  }
945
+ /**
946
+ * Metres above the ellipsoid the sheet sits at over a point, or null unless a fading source is bound.
947
+ */
948
+ HeightAt(lon, lat) {
949
+ const pixels = this.fade ? this.fade.to : null;
950
+ const dims = this.sourceDims;
951
+ if (!pixels || !dims) {
952
+ return null;
953
+ }
954
+ const fx = (lon - this.extent.West) / (this.extent.East - this.extent.West);
955
+ const fy = (this.extent.North - lat) / (this.extent.North - this.extent.South);
956
+ if (!(fx >= 0 && fx <= 1 && fy >= 0 && fy <= 1)) {
957
+ return null;
958
+ }
959
+ const col = Math.min(dims.width - 1, Math.floor(fx * dims.width));
960
+ const row = Math.min(dims.height - 1, Math.floor(fy * dims.height));
961
+ const at = (row * dims.width + col) * 4;
962
+ const coverage = pixels[at + 3] / 255;
963
+ const normalised = this.packedValue
964
+ ? (pixels[at] * 256 + pixels[at + 1]) / 65535
965
+ : pixels[at] / 255;
966
+ const metres = this.valueMin + normalised * (this.valueMax - this.valueMin) * this.exaggeration;
967
+ const following = this.followGround && Boolean(this.groundPixels);
968
+ const ground = following ? this.groundAt(fx, fy) : 0;
969
+ return this.baseHeight + ground + metres * (following ? coverage : 1);
970
+ }
971
+ /**
972
+ * Changes whenever HeightAt would answer differently for the same frame.
973
+ */
974
+ GetPlacementKey() {
975
+ return [this.groundPixels ? 1 : 0, this.baseHeight, this.exaggeration, this.followGround ? 1 : 0].join("|");
976
+ }
977
+ /**
978
+ * The ramp the sheet is painted with, as 256 RGBA steps across the value range.
979
+ */
980
+ GetRampPixels() {
981
+ return this.rampPixels;
982
+ }
983
+ /*
984
+ * The packed ground raster read the way sampleGround reads it, bilinear between texel centres.
985
+ */
986
+ groundAt(u, v) {
987
+ const size = GROUND_SAMPLES_PER_SIDE;
988
+ const pixels = this.groundPixels;
989
+ const read = (x, y) => {
990
+ const i = (Math.min(size - 1, Math.max(0, y)) * size + Math.min(size - 1, Math.max(0, x))) * 4;
991
+ const packed = (pixels[i] << 16) + (pixels[i + 1] << 8) + pixels[i + 2];
992
+ return GROUND_MIN_METRES + (packed / 16777215) * (GROUND_MAX_METRES - GROUND_MIN_METRES);
993
+ };
994
+ const x = u * size - 0.5;
995
+ const y = v * size - 0.5;
996
+ const x0 = Math.floor(x);
997
+ const y0 = Math.floor(y);
998
+ const fx = x - x0;
999
+ const fy = y - y0;
1000
+ const top = read(x0, y0) + (read(x0 + 1, y0) - read(x0, y0)) * fx;
1001
+ const bottom = read(x0, y0 + 1) + (read(x0 + 1, y0 + 1) - read(x0, y0 + 1)) * fx;
1002
+ return top + (bottom - top) * fy;
1003
+ }
926
1004
  /**
927
1005
  * Feeds the surface from an animated frame series.
928
1006
  * Height and colour advance with the clock without the caller having to push each frame in.
@@ -941,23 +1019,39 @@ void main() {
941
1019
  return;
942
1020
  }
943
1021
  const context = frameState.context;
944
- if (this.valueSource) {
945
- const canvas = this.valueSource.GetValueCanvas();
946
- if (!canvas) {
947
- // No frame decoded yet, so there is nothing to displace against.
948
- return;
949
- }
950
- const version = this.valueSource.GetPresentVersion();
951
- if (canvas !== this.source || version !== this.lastPresentVersion) {
952
- this.source = canvas;
953
- this.lastPresentVersion = version;
954
- this.textureDirty = true;
1022
+ const fade = this.valueSource && this.valueSource.GetValueFade
1023
+ ? this.valueSource.GetValueFade()
1024
+ : null;
1025
+ if (fade) {
1026
+ this.fade = fade;
1027
+ this.sourceDims = { width: fade.width, height: fade.height };
1028
+ }
1029
+ else {
1030
+ this.fade = null;
1031
+ if (this.valueSource) {
1032
+ const canvas = this.valueSource.GetValueCanvas();
1033
+ if (!canvas) {
1034
+ // No frame decoded yet, so there is nothing to displace against.
1035
+ return;
1036
+ }
1037
+ const version = this.valueSource.GetPresentVersion();
1038
+ if (canvas !== this.source || version !== this.lastPresentVersion) {
1039
+ this.source = canvas;
1040
+ this.lastPresentVersion = version;
1041
+ this.textureDirty = true;
1042
+ }
955
1043
  }
1044
+ this.sourceDims = this.source ? { width: this.source.width, height: this.source.height } : null;
956
1045
  }
957
- if (!this.source || !this.source.width || !this.source.height) {
1046
+ if (!this.sourceDims || !this.sourceDims.width || !this.sourceDims.height) {
958
1047
  return;
959
1048
  }
960
- this.syncTexture(context);
1049
+ if (this.fade) {
1050
+ this.syncFadeTextures(context);
1051
+ }
1052
+ else {
1053
+ this.syncTexture(context);
1054
+ }
961
1055
  this.syncRampTexture(context);
962
1056
  this.requestGround();
963
1057
  this.syncGroundTexture(context);
@@ -1005,6 +1099,10 @@ void main() {
1005
1099
  this.texture.destroy();
1006
1100
  this.texture = null;
1007
1101
  }
1102
+ if (this.textureFrom) {
1103
+ this.textureFrom.destroy();
1104
+ this.textureFrom = null;
1105
+ }
1008
1106
  if (this.rampTexture) {
1009
1107
  this.rampTexture.destroy();
1010
1108
  this.rampTexture = null;
@@ -1272,7 +1370,7 @@ void main() {
1272
1370
  const southWest = Cesium.Cartesian3.fromDegrees(this.extent.West, this.extent.South, 0);
1273
1371
  const southEast = Cesium.Cartesian3.fromDegrees(this.extent.East, this.extent.South, 0);
1274
1372
  const width = Cesium.Cartesian3.distance(southWest, southEast);
1275
- return Math.max(1, width / Math.max(1, this.source ? this.source.width : 1));
1373
+ return Math.max(1, width / Math.max(1, this.sourceDims ? this.sourceDims.width : 1));
1276
1374
  }
1277
1375
  syncRampTexture(context) {
1278
1376
  if (this.rampTexture) {
@@ -1293,6 +1391,67 @@ void main() {
1293
1391
  })
1294
1392
  });
1295
1393
  }
1394
+ valueSampler() {
1395
+ // Nearest for a packed value, because filtering would blend the two bytes of the
1396
+ // packing rather than the values they encode, the same trap sampleGround avoids.
1397
+ const minification = this.packedValue
1398
+ ? Cesium.TextureMinificationFilter.NEAREST
1399
+ : Cesium.TextureMinificationFilter.LINEAR;
1400
+ const magnification = this.packedValue
1401
+ ? Cesium.TextureMagnificationFilter.NEAREST
1402
+ : Cesium.TextureMagnificationFilter.LINEAR;
1403
+ return new Cesium.Sampler({
1404
+ wrapS: Cesium.TextureWrap.CLAMP_TO_EDGE,
1405
+ wrapT: Cesium.TextureWrap.CLAMP_TO_EDGE,
1406
+ minificationFilter: minification,
1407
+ magnificationFilter: magnification
1408
+ });
1409
+ }
1410
+ /*
1411
+ * Uploads value pixels into a texture, reusing it when the size still fits.
1412
+ */
1413
+ uploadPixels(context, texture, pixels, width, height) {
1414
+ const view = new Uint8Array(pixels.buffer, pixels.byteOffset, pixels.byteLength);
1415
+ const source = { width, height, arrayBufferView: view };
1416
+ if (texture && texture.width === width && texture.height === height) {
1417
+ texture.copyFrom({ source });
1418
+ return texture;
1419
+ }
1420
+ if (texture) {
1421
+ texture.destroy();
1422
+ }
1423
+ return new Cesium.Texture({
1424
+ context,
1425
+ width,
1426
+ height,
1427
+ pixelFormat: Cesium.PixelFormat.RGBA,
1428
+ pixelDatatype: Cesium.PixelDatatype.UNSIGNED_BYTE,
1429
+ source,
1430
+ // Row 0 is the archive's north edge, and has to stay at the top, as the canvas path does.
1431
+ flipY: false,
1432
+ sampler: this.valueSampler()
1433
+ });
1434
+ }
1435
+ /*
1436
+ * Keeps a texture each side of the fade, swapping them on a new frame so only that one is uploaded.
1437
+ */
1438
+ syncFadeTextures(context) {
1439
+ const fade = this.fade;
1440
+ if (fade.to !== this.uploadedTo) {
1441
+ if (fade.from && fade.from === this.uploadedTo && this.texture) {
1442
+ const previous = this.textureFrom;
1443
+ this.textureFrom = this.texture;
1444
+ this.uploadedFrom = this.uploadedTo;
1445
+ this.texture = previous;
1446
+ }
1447
+ this.texture = this.uploadPixels(context, this.texture, fade.to, fade.width, fade.height);
1448
+ this.uploadedTo = fade.to;
1449
+ }
1450
+ if (fade.from && fade.from !== this.uploadedFrom) {
1451
+ this.textureFrom = this.uploadPixels(context, this.textureFrom, fade.from, fade.width, fade.height);
1452
+ this.uploadedFrom = fade.from;
1453
+ }
1454
+ }
1296
1455
  syncTexture(context) {
1297
1456
  const sizeChanged = this.texture
1298
1457
  && (this.texture.width !== this.source.width || this.texture.height !== this.source.height);
@@ -1300,27 +1459,15 @@ void main() {
1300
1459
  if (this.texture) {
1301
1460
  this.texture.destroy();
1302
1461
  }
1303
- // Nearest for a packed value, because filtering would blend the two bytes of the
1304
- // packing rather than the values they encode, the same trap sampleGround avoids.
1305
- const minification = this.packedValue
1306
- ? Cesium.TextureMinificationFilter.NEAREST
1307
- : Cesium.TextureMinificationFilter.LINEAR;
1308
- const magnification = this.packedValue
1309
- ? Cesium.TextureMagnificationFilter.NEAREST
1310
- : Cesium.TextureMagnificationFilter.LINEAR;
1311
1462
  this.texture = new Cesium.Texture({
1312
1463
  context,
1313
1464
  source: this.source,
1314
1465
  // Cesium flips canvas rows on upload by default, which would put the archive's
1315
1466
  // row 0 (its north edge) at the south edge and mirror the whole surface.
1316
1467
  flipY: false,
1317
- sampler: new Cesium.Sampler({
1318
- wrapS: Cesium.TextureWrap.CLAMP_TO_EDGE,
1319
- wrapT: Cesium.TextureWrap.CLAMP_TO_EDGE,
1320
- minificationFilter: minification,
1321
- magnificationFilter: magnification
1322
- })
1468
+ sampler: this.valueSampler()
1323
1469
  });
1470
+ this.uploadedTo = null;
1324
1471
  this.textureDirty = false;
1325
1472
  return;
1326
1473
  }
@@ -1383,7 +1530,7 @@ void main() {
1383
1530
  * carry, so the ladder is capped one step above the texel count rather than run to its top.
1384
1531
  */
1385
1532
  tierCeiling() {
1386
- const source = this.source;
1533
+ const source = this.sourceDims;
1387
1534
  if (!source || !source.width || !source.height) {
1388
1535
  return TIERS[TIERS.length - 1];
1389
1536
  }
@@ -1461,6 +1608,10 @@ void main() {
1461
1608
  owner: this,
1462
1609
  uniformMap: {
1463
1610
  u_valueTexture: () => self.texture,
1611
+ u_valueTextureFrom: () => (self.fade && self.fade.from && self.textureFrom
1612
+ ? self.textureFrom
1613
+ : self.texture),
1614
+ u_valueFade: () => (self.fade && self.fade.from ? self.fade.mix : 1),
1464
1615
  u_groundTexture: () => self.groundTexture,
1465
1616
  u_valuePacked: () => (self.packedValue ? 1 : 0),
1466
1617
  u_groundWeight: () => (self.followGround && self.groundPixels ? 1 : 0),
@@ -1498,7 +1649,7 @@ void main() {
1498
1649
  : 0,
1499
1650
  u_coverageCutoff: () => COVERAGE_CUTOFF,
1500
1651
  u_rampTexture: () => self.rampTexture,
1501
- u_texelSize: () => new Cesium.Cartesian2(1 / self.source.width, 1 / self.source.height),
1652
+ u_texelSize: () => new Cesium.Cartesian2(1 / self.sourceDims.width, 1 / self.sourceDims.height),
1502
1653
  u_waterOn: () => (self.water ? 1 : 0),
1503
1654
  u_waterWavelength: () => (self.water && self.water.wavelength)
1504
1655
  || DEFAULT_WATER_WAVELENGTH_METRES,
@@ -1 +1 @@
1
- {"version":3,"file":"displaced-surface-primitive.js","sourceRoot":"","sources":["../../../src/rendering/displaced-surface-primitive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"displaced-surface-primitive.js","sourceRoot":"","sources":["../../../src/rendering/displaced-surface-primitive.ts"],"names":[],"mappings":"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"}