bruce-cesium 7.2.2 → 7.2.4
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.
- package/dist/bruce-cesium.es5.js +437 -377
- package/dist/bruce-cesium.es5.js.map +1 -1
- package/dist/bruce-cesium.umd.js +441 -382
- package/dist/bruce-cesium.umd.js.map +1 -1
- package/dist/lib/bruce-cesium.js +2 -1
- package/dist/lib/bruce-cesium.js.map +1 -1
- package/dist/lib/rendering/displaced-surface-primitive.js +51 -43
- package/dist/lib/rendering/displaced-surface-primitive.js.map +1 -1
- package/dist/lib/rendering/entity-render-engine-polygon.js +30 -39
- package/dist/lib/rendering/entity-render-engine-polygon.js.map +1 -1
- package/dist/lib/rendering/texture-frame-series-animator.js +279 -267
- package/dist/lib/rendering/texture-frame-series-animator.js.map +1 -1
- package/dist/lib/rendering/texture-value-labels.js +71 -25
- package/dist/lib/rendering/texture-value-labels.js.map +1 -1
- package/dist/types/bruce-cesium.d.ts +2 -1
- package/dist/types/rendering/displaced-surface-primitive.d.ts +2 -10
- package/dist/types/rendering/texture-frame-series-animator.d.ts +166 -66
- package/dist/types/rendering/texture-value-labels.d.ts +22 -0
- package/package.json +2 -2
package/dist/lib/bruce-cesium.js
CHANGED
|
@@ -24,6 +24,7 @@ __exportStar(require("./rendering/entity-render-engine-model3d"), exports);
|
|
|
24
24
|
__exportStar(require("./rendering/entity-render-engine-point"), exports);
|
|
25
25
|
__exportStar(require("./rendering/entity-render-engine-polygon"), exports);
|
|
26
26
|
__exportStar(require("./rendering/entity-render-engine-polyline"), exports);
|
|
27
|
+
__exportStar(require("./rendering/texture-frame-series-animator"), exports);
|
|
27
28
|
__exportStar(require("./rendering/texture-value-labels"), exports);
|
|
28
29
|
__exportStar(require("./rendering/menu-item-creator"), exports);
|
|
29
30
|
__exportStar(require("./rendering/menu-item-manager"), exports);
|
|
@@ -82,7 +83,7 @@ __exportStar(require("./widgets/widget-info-view"), exports);
|
|
|
82
83
|
__exportStar(require("./widgets/widget-left-panel"), exports);
|
|
83
84
|
__exportStar(require("./widgets/widget-nav-compass"), exports);
|
|
84
85
|
__exportStar(require("./widgets/widget-view-bar"), exports);
|
|
85
|
-
exports.VERSION = "7.2.
|
|
86
|
+
exports.VERSION = "7.2.4";
|
|
86
87
|
/**
|
|
87
88
|
* Updates the environment instance used by bruce-cesium to one specified.
|
|
88
89
|
* This can be used to ensure that the instance a parent is referencing is shared between bruce-cesium, bruce-models, and the parent app.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bruce-cesium.js","sourceRoot":"","sources":["../../src/bruce-cesium.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+CAA2C;AAE3C,qEAAmD;AACnD,0EAAwD;AACxD,uEAAqD;AACrD,mEAAiD;AACjD,2EAAyD;AACzD,yEAAuD;AACvD,2EAAyD;AACzD,4EAA0D;AAC1D,mEAAiD;AACjD,gEAA8C;AAC9C,gEAA8C;AAC9C,qFAAmE;AACnE,kFAAgE;AAChE,iFAA+D;AAC/D,oFAAkE;AAClE,yGAAuF;AACvF,uGAAqF;AACrF,mGAAiF;AACjF,sGAAoF;AACpF,+FAA6E;AAC7E,6FAA2E;AAC3E,4FAA0E;AAC1E,iGAA+E;AAC/E,6FAA2E;AAC3E,6EAA2D;AAC3D,kGAAgF;AAChF,kGAAgF;AAChF,uGAAqF;AACrF,4GAA0F;AAC1F,kGAAgF;AAChF,yGAAuF;AACvF,iEAA+C;AAC/C,oEAAkD;AAClD,iEAA+C;AAC/C,qEAAmD;AACnD,+DAA6C;AAC7C,mEAAiD;AACjD,+DAA6C;AAC7C,wDAAsC;AACtC,uDAAqC;AACrC,wDAAsC;AACtC,sDAAoC;AACpC,qDAAmC;AACnC,+DAA6C;AAC7C,4DAA0C;AAC1C,gEAA8C;AAC9C,wDAAsC;AACtC,mEAAiD;AACjD,oEAAkD;AAClD,mEAAiD;AACjD,+DAA6C;AAC7C,sFAAoE;AACpE,6FAA2E;AAC3E,kFAAgE;AAChE,4FAA0E;AAC1E,4FAA0E;AAC1E,6FAA2E;AAC3E,mDAAiC;AACjC,6DAA2C;AAC3C,4DAA0C;AAC1C,6DAA2C;AAC3C,sEAAoD;AACpD,6DAA2C;AAC3C,8DAA4C;AAC5C,+DAA6C;AAC7C,4DAA0C;AAE7B,QAAA,OAAO,GAAG,OAAO,CAAC;AAE/B;;;;GAIG;AACI,MAAM,cAAc,GAAG,CAAC,MAAW,EAAE,EAAE;IAC1C,0BAAW,CAAC,MAAM,GAAG,MAAM,CAAC;AAChC,CAAC,CAAC;AAFW,QAAA,cAAc,kBAEzB;AAEF;;;GAGG;AACI,MAAM,cAAc,GAAG,GAAG,EAAE;IAC/B,OAAO,0BAAW,CAAC;AACvB,CAAC,CAAA;AAFY,QAAA,cAAc,kBAE1B"}
|
|
1
|
+
{"version":3,"file":"bruce-cesium.js","sourceRoot":"","sources":["../../src/bruce-cesium.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+CAA2C;AAE3C,qEAAmD;AACnD,0EAAwD;AACxD,uEAAqD;AACrD,mEAAiD;AACjD,2EAAyD;AACzD,yEAAuD;AACvD,2EAAyD;AACzD,4EAA0D;AAC1D,4EAA0D;AAC1D,mEAAiD;AACjD,gEAA8C;AAC9C,gEAA8C;AAC9C,qFAAmE;AACnE,kFAAgE;AAChE,iFAA+D;AAC/D,oFAAkE;AAClE,yGAAuF;AACvF,uGAAqF;AACrF,mGAAiF;AACjF,sGAAoF;AACpF,+FAA6E;AAC7E,6FAA2E;AAC3E,4FAA0E;AAC1E,iGAA+E;AAC/E,6FAA2E;AAC3E,6EAA2D;AAC3D,kGAAgF;AAChF,kGAAgF;AAChF,uGAAqF;AACrF,4GAA0F;AAC1F,kGAAgF;AAChF,yGAAuF;AACvF,iEAA+C;AAC/C,oEAAkD;AAClD,iEAA+C;AAC/C,qEAAmD;AACnD,+DAA6C;AAC7C,mEAAiD;AACjD,+DAA6C;AAC7C,wDAAsC;AACtC,uDAAqC;AACrC,wDAAsC;AACtC,sDAAoC;AACpC,qDAAmC;AACnC,+DAA6C;AAC7C,4DAA0C;AAC1C,gEAA8C;AAC9C,wDAAsC;AACtC,mEAAiD;AACjD,oEAAkD;AAClD,mEAAiD;AACjD,+DAA6C;AAC7C,sFAAoE;AACpE,6FAA2E;AAC3E,kFAAgE;AAChE,4FAA0E;AAC1E,4FAA0E;AAC1E,6FAA2E;AAC3E,mDAAiC;AACjC,6DAA2C;AAC3C,4DAA0C;AAC1C,6DAA2C;AAC3C,sEAAoD;AACpD,6DAA2C;AAC3C,8DAA4C;AAC5C,+DAA6C;AAC7C,4DAA0C;AAE7B,QAAA,OAAO,GAAG,OAAO,CAAC;AAE/B;;;;GAIG;AACI,MAAM,cAAc,GAAG,CAAC,MAAW,EAAE,EAAE;IAC1C,0BAAW,CAAC,MAAM,GAAG,MAAM,CAAC;AAChC,CAAC,CAAC;AAFW,QAAA,cAAc,kBAEzB;AAEF;;;GAGG;AACI,MAAM,cAAc,GAAG,GAAG,EAAE;IAC/B,OAAO,0BAAW,CAAC;AACvB,CAAC,CAAA;AAFY,QAAA,cAAc,kBAE1B"}
|
|
@@ -23,11 +23,6 @@ var DisplacedSurfacePrimitive;
|
|
|
23
23
|
const SKIRT_FRACTION = 0.015;
|
|
24
24
|
// Alpha below which a texel counts as no-data and is not drawn at all.
|
|
25
25
|
const COVERAGE_CUTOFF = 0.35;
|
|
26
|
-
// With no exaggeration stated, the full value range is drawn as this fraction of the extent's shorter side.
|
|
27
|
-
const AUTO_RELIEF_FRACTION = 0.02;
|
|
28
|
-
// Ceiling on the derived relief. Sizing purely off the extent is fine for a parcel and absurd for
|
|
29
|
-
// a whole estuary: 4 m of water over an 82 km extent came out 1.6 km tall.
|
|
30
|
-
const AUTO_MAX_RELIEF_METRES = 250.0;
|
|
31
26
|
// Terrain is sampled on this grid and interpolated between samples.
|
|
32
27
|
// Per-texel sampling would be hundreds of thousands of lookups for a surface whose own data is far coarser than that.
|
|
33
28
|
const GROUND_SAMPLES_PER_SIDE = 64;
|
|
@@ -48,6 +43,7 @@ in float skirt;
|
|
|
48
43
|
|
|
49
44
|
uniform sampler2D u_valueTexture;
|
|
50
45
|
uniform sampler2D u_groundTexture;
|
|
46
|
+
uniform float u_valuePacked;
|
|
51
47
|
uniform float u_valueMin;
|
|
52
48
|
uniform float u_valueRange;
|
|
53
49
|
uniform float u_exaggeration;
|
|
@@ -85,18 +81,37 @@ float sampleGround(vec2 uv) {
|
|
|
85
81
|
return mix(mix(h00, h10, f.x), mix(h01, h11, f.x), f.y);
|
|
86
82
|
}
|
|
87
83
|
|
|
84
|
+
/*
|
|
85
|
+
* The texel's normalised value, whichever way the archive packed it.
|
|
86
|
+
*
|
|
87
|
+
* A packed frame keeps the high byte in R, so reading R alone would quantise the whole range to 255
|
|
88
|
+
* steps and draw a plausible wrong surface rather than an obviously broken one.
|
|
89
|
+
*
|
|
90
|
+
* Each channel is scaled and then added, rather than reassembled to a 0..65535 integer and divided.
|
|
91
|
+
* That integer is outside the range mediump guarantees, and a fragment shader only gets highp where
|
|
92
|
+
* the device offers it, so the obvious form loses the low byte on exactly the older mobile hardware
|
|
93
|
+
* that Cesium falls back to mediump for.
|
|
94
|
+
*/
|
|
95
|
+
float decodeValue(vec4 texel) {
|
|
96
|
+
float packed16 = texel.r * (255.0 * 256.0 / 65535.0) + texel.g * (255.0 / 65535.0);
|
|
97
|
+
return mix(texel.r, packed16, u_valuePacked);
|
|
98
|
+
}
|
|
99
|
+
|
|
88
100
|
void main() {
|
|
89
101
|
vec4 texel = texture(u_valueTexture, st);
|
|
90
102
|
v_st = st;
|
|
91
|
-
v_value = texel
|
|
103
|
+
v_value = decodeValue(texel);
|
|
92
104
|
v_coverage = texel.a;
|
|
93
105
|
|
|
94
|
-
|
|
106
|
+
// Exaggeration stretches the span above the archive's minimum rather than the height itself. On an
|
|
107
|
+
// elevation the height is measured from the ellipsoid, tens of metres from any of the data, so
|
|
108
|
+
// scaling that instead translates the whole sheet underground rather than spreading it out.
|
|
109
|
+
float metres = u_valueMin + v_value * u_valueRange * u_exaggeration;
|
|
95
110
|
|
|
96
111
|
// Value zero sits at the polygon's own altitude, plus the terrain underneath when the polygon
|
|
97
112
|
// is following the ground rather than absolutely positioned.
|
|
98
113
|
float ground = sampleGround(st) * u_groundWeight;
|
|
99
|
-
float displacement = u_baseHeight + ground + metres *
|
|
114
|
+
float displacement = u_baseHeight + ground + metres * texel.a - skirt * u_skirtDepth;
|
|
100
115
|
|
|
101
116
|
// Added to the LOW half of the encoded position: a metre-scale offset added to the high half
|
|
102
117
|
// would be lost to float32 rounding at an earth radius.
|
|
@@ -109,6 +124,7 @@ uniform sampler2D u_valueTexture;
|
|
|
109
124
|
uniform sampler2D u_rampTexture;
|
|
110
125
|
uniform float u_coverageCutoff;
|
|
111
126
|
uniform vec2 u_texelSize;
|
|
127
|
+
uniform float u_valuePacked;
|
|
112
128
|
uniform float u_valueRange;
|
|
113
129
|
uniform float u_exaggeration;
|
|
114
130
|
uniform float u_metresPerTexel;
|
|
@@ -117,6 +133,16 @@ in vec2 v_st;
|
|
|
117
133
|
in float v_value;
|
|
118
134
|
in float v_coverage;
|
|
119
135
|
|
|
136
|
+
/*
|
|
137
|
+
* Scaled per channel for the same reason the vertex shader's decode is: reassembling the pair reaches
|
|
138
|
+
* 65535, which mediump does not have to represent, and this is the shader that may not get highp.
|
|
139
|
+
*/
|
|
140
|
+
float valueAt(vec2 uv) {
|
|
141
|
+
vec4 texel = texture(u_valueTexture, uv);
|
|
142
|
+
float packed16 = texel.r * (255.0 * 256.0 / 65535.0) + texel.g * (255.0 / 65535.0);
|
|
143
|
+
return mix(texel.r, packed16, u_valuePacked);
|
|
144
|
+
}
|
|
145
|
+
|
|
120
146
|
void main() {
|
|
121
147
|
if (v_coverage < u_coverageCutoff) {
|
|
122
148
|
discard;
|
|
@@ -131,10 +157,10 @@ void main() {
|
|
|
131
157
|
|
|
132
158
|
// Relief shading from the value gradient, so the displacement reads at a distance without
|
|
133
159
|
// recomputing vertex normals every time the texture changes.
|
|
134
|
-
float left =
|
|
135
|
-
float right =
|
|
136
|
-
float down =
|
|
137
|
-
float up =
|
|
160
|
+
float left = valueAt(v_st - vec2(u_texelSize.x, 0.0));
|
|
161
|
+
float right = valueAt(v_st + vec2(u_texelSize.x, 0.0));
|
|
162
|
+
float down = valueAt(v_st - vec2(0.0, u_texelSize.y));
|
|
163
|
+
float up = valueAt(v_st + vec2(0.0, u_texelSize.y));
|
|
138
164
|
float scale = u_valueRange * u_exaggeration;
|
|
139
165
|
vec3 n = normalize(vec3((left - right) * scale, (down - up) * scale, 2.0 * u_metresPerTexel));
|
|
140
166
|
float lambert = clamp(dot(n, normalize(vec3(-0.5, -0.6, 0.62))), 0.0, 1.0);
|
|
@@ -344,8 +370,9 @@ void main() {
|
|
|
344
370
|
this.source = options.source || null;
|
|
345
371
|
this.valueMin = (_a = options.valueMin) !== null && _a !== void 0 ? _a : 0;
|
|
346
372
|
this.valueMax = (_b = options.valueMax) !== null && _b !== void 0 ? _b : 1;
|
|
347
|
-
this.exaggeration = (_c = options.exaggeration) !== null && _c !== void 0 ? _c :
|
|
373
|
+
this.exaggeration = (_c = options.exaggeration) !== null && _c !== void 0 ? _c : 1;
|
|
348
374
|
this.baseHeight = (_d = options.baseHeight) !== null && _d !== void 0 ? _d : 0;
|
|
375
|
+
this.packedValue = Boolean(options.packedValue);
|
|
349
376
|
this.pixelPlacement = options.pixelPlacement;
|
|
350
377
|
this.tileSkirts = Boolean(options.tileSkirts);
|
|
351
378
|
this.rampPixels = (0, image_utils_1.RampLookup)(options.rampStops || null, options.lowColor || DEFAULT_LOW_COLOR, options.highColor || DEFAULT_HIGH_COLOR);
|
|
@@ -569,6 +596,14 @@ void main() {
|
|
|
569
596
|
if (this.texture) {
|
|
570
597
|
this.texture.destroy();
|
|
571
598
|
}
|
|
599
|
+
// Nearest for a packed value, because filtering would blend the two bytes of the
|
|
600
|
+
// packing rather than the values they encode, the same trap sampleGround avoids.
|
|
601
|
+
const minification = this.packedValue
|
|
602
|
+
? Cesium.TextureMinificationFilter.NEAREST
|
|
603
|
+
: Cesium.TextureMinificationFilter.LINEAR;
|
|
604
|
+
const magnification = this.packedValue
|
|
605
|
+
? Cesium.TextureMagnificationFilter.NEAREST
|
|
606
|
+
: Cesium.TextureMagnificationFilter.LINEAR;
|
|
572
607
|
this.texture = new Cesium.Texture({
|
|
573
608
|
context,
|
|
574
609
|
source: this.source,
|
|
@@ -578,8 +613,8 @@ void main() {
|
|
|
578
613
|
sampler: new Cesium.Sampler({
|
|
579
614
|
wrapS: Cesium.TextureWrap.CLAMP_TO_EDGE,
|
|
580
615
|
wrapT: Cesium.TextureWrap.CLAMP_TO_EDGE,
|
|
581
|
-
minificationFilter:
|
|
582
|
-
magnificationFilter:
|
|
616
|
+
minificationFilter: minification,
|
|
617
|
+
magnificationFilter: magnification
|
|
583
618
|
})
|
|
584
619
|
});
|
|
585
620
|
this.textureDirty = false;
|
|
@@ -680,6 +715,7 @@ void main() {
|
|
|
680
715
|
uniformMap: {
|
|
681
716
|
u_valueTexture: () => self.texture,
|
|
682
717
|
u_groundTexture: () => self.groundTexture,
|
|
718
|
+
u_valuePacked: () => (self.packedValue ? 1 : 0),
|
|
683
719
|
u_groundWeight: () => (self.followGround && self.groundPixels ? 1 : 0),
|
|
684
720
|
u_groundRange: () => new Cesium.Cartesian2(GROUND_MIN_METRES, GROUND_MAX_METRES),
|
|
685
721
|
u_groundSize: () => new Cesium.Cartesian2(self.groundPixels ? GROUND_SAMPLES_PER_SIDE : 1, self.groundPixels ? GROUND_SAMPLES_PER_SIDE : 1),
|
|
@@ -732,34 +768,6 @@ void main() {
|
|
|
732
768
|
}
|
|
733
769
|
return tiles;
|
|
734
770
|
}
|
|
735
|
-
/**
|
|
736
|
-
* Exaggeration that makes the full value range stand AUTO_RELIEF_FRACTION of the extent tall.
|
|
737
|
-
*
|
|
738
|
-
* Derived from the whole extent rather than per tile: scaling each tile to its own size would
|
|
739
|
-
* make neighbours disagree along their shared edge and tear the surface apart.
|
|
740
|
-
* @param extent
|
|
741
|
-
* @param valueMin
|
|
742
|
-
* @param valueMax
|
|
743
|
-
*/
|
|
744
|
-
function autoExaggeration(extent, valueMin, valueMax) {
|
|
745
|
-
const range = Math.abs(valueMax - valueMin);
|
|
746
|
-
if (!(range > 0)) {
|
|
747
|
-
return 1;
|
|
748
|
-
}
|
|
749
|
-
const southWest = Cesium.Cartesian3.fromDegrees(extent.West, extent.South, 0);
|
|
750
|
-
const southEast = Cesium.Cartesian3.fromDegrees(extent.East, extent.South, 0);
|
|
751
|
-
const northWest = Cesium.Cartesian3.fromDegrees(extent.West, extent.North, 0);
|
|
752
|
-
const shorterSide = Math.min(Cesium.Cartesian3.distance(southWest, southEast), Cesium.Cartesian3.distance(southWest, northWest));
|
|
753
|
-
if (!(shorterSide > 0)) {
|
|
754
|
-
return 1;
|
|
755
|
-
}
|
|
756
|
-
const relief = Math.min(shorterSide * AUTO_RELIEF_FRACTION, AUTO_MAX_RELIEF_METRES);
|
|
757
|
-
return relief / range;
|
|
758
|
-
}
|
|
759
|
-
DisplacedSurfacePrimitive.autoExaggeration = autoExaggeration;
|
|
760
|
-
function toCesiumColor(color) {
|
|
761
|
-
return new Cesium.Color(color.red / 255, color.green / 255, color.blue / 255, color.alpha);
|
|
762
|
-
}
|
|
763
771
|
function now() {
|
|
764
772
|
return typeof performance !== "undefined" ? performance.now() : Date.now();
|
|
765
773
|
}
|
|
@@ -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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"}
|
|
@@ -745,12 +745,12 @@ function syncDisplacedSurface(params) {
|
|
|
745
745
|
&& existingAnimator.GetArchiveUrl() === extrusionArchive.url
|
|
746
746
|
&& existingSurface
|
|
747
747
|
&& !existingSurface.isDestroyed();
|
|
748
|
-
const placement = surfacePlacement(entity, heightRef);
|
|
748
|
+
const placement = surfacePlacement(entity, heightRef, extrusionArchive && texture_frame_series_animator_1.TextureFrameSeriesAnimator.IsDatumHeight(extrusionArchive.metadata));
|
|
749
749
|
// Whether the surface follows terrain is baked into its ground sampling, so a change there has
|
|
750
750
|
// to rebuild rather than update in place.
|
|
751
751
|
if (reusable && existingSurface.GetFollowsGround() === placement.followGround) {
|
|
752
752
|
existingSurface.SetBaseHeight(placement.baseHeight);
|
|
753
|
-
existingSurface.SetExaggeration(exaggerationFor(style
|
|
753
|
+
existingSurface.SetExaggeration(exaggerationFor(style));
|
|
754
754
|
return;
|
|
755
755
|
}
|
|
756
756
|
disposeDisplacedSurface(cEntity, viewer);
|
|
@@ -774,8 +774,6 @@ function syncDisplacedSurface(params) {
|
|
|
774
774
|
produceValueCanvas: true,
|
|
775
775
|
metadata: extrusionArchive.metadata,
|
|
776
776
|
cellTexels: 1,
|
|
777
|
-
baselineMask: extrusionArchive.metadata.BaselineMask,
|
|
778
|
-
// Off-type for the same reason as the fill path: the pinned bruce-models predates the field.
|
|
779
777
|
maskBaseline: style.maskTextureBaseline
|
|
780
778
|
});
|
|
781
779
|
cEntity[EXTRUSION_ANIMATOR_KEY] = animator;
|
|
@@ -790,12 +788,13 @@ function syncDisplacedSurface(params) {
|
|
|
790
788
|
terrainProvider: viewer && viewer.terrainProvider,
|
|
791
789
|
valueMin: extrusionArchive.metadata.ValueMin,
|
|
792
790
|
valueMax: extrusionArchive.metadata.ValueMax,
|
|
793
|
-
|
|
791
|
+
packedValue: texture_frame_series_animator_1.TextureFrameSeriesAnimator.IsPackedValue(extrusionArchive.metadata),
|
|
792
|
+
exaggeration: exaggerationFor(style),
|
|
794
793
|
lowColor: mask ? bruce_models_1.Color.ColorFromStr(mask.minColor) : null,
|
|
795
794
|
highColor: mask ? bruce_models_1.Color.ColorFromStr(mask.maxColor) : null,
|
|
796
795
|
// Normalised the same way the animator normalises them, so the surface and the flat drape
|
|
797
796
|
// agree about which values the style hides.
|
|
798
|
-
rampStops: (mask && mask.points || []).map((stop) => ({
|
|
797
|
+
rampStops: ((mask && mask.points) || []).map((stop) => ({
|
|
799
798
|
position: texture_frame_series_animator_1.TextureFrameSeriesAnimator.NormalisePosition(extrusionArchive.metadata, stop.position),
|
|
800
799
|
color: bruce_models_1.Color.ColorFromStr(stop.color)
|
|
801
800
|
})).filter((stop) => Boolean(stop.color))
|
|
@@ -811,7 +810,7 @@ function syncDisplacedSurface(params) {
|
|
|
811
810
|
* @param entity
|
|
812
811
|
* @param heightRef
|
|
813
812
|
*/
|
|
814
|
-
function surfacePlacement(entity, heightRef) {
|
|
813
|
+
function surfacePlacement(entity, heightRef, datumHeight) {
|
|
815
814
|
const rawAltitude = bruce_models_1.Entity.GetValue({
|
|
816
815
|
entity,
|
|
817
816
|
path: ["Bruce", "Location", "altitude"]
|
|
@@ -823,32 +822,18 @@ function surfacePlacement(entity, heightRef) {
|
|
|
823
822
|
if (heightRef === Cesium.HeightReference.RELATIVE_TO_GROUND) {
|
|
824
823
|
return { baseHeight: altitude, followGround: true };
|
|
825
824
|
}
|
|
826
|
-
|
|
825
|
+
// Values that ARE heights against a datum already say where they belong, so adding the entity's
|
|
826
|
+
// altitude on top would move a measured surface off the datum it was measured against.
|
|
827
|
+
return { baseHeight: datumHeight ? 0 : altitude, followGround: false };
|
|
827
828
|
}
|
|
828
|
-
/**
|
|
829
|
-
* The archive's own extent when it recorded one, otherwise the polygon's own bounds so archives
|
|
830
|
-
* generated before the extent was written still render somewhere sensible.
|
|
831
|
-
* @param metadata
|
|
832
|
-
* @param posses
|
|
833
|
-
*/
|
|
834
829
|
/*
|
|
835
|
-
* The factor a displaced surface should use,
|
|
836
|
-
*
|
|
837
|
-
* An elevation is a real height against a datum, so scaling it is not a display choice: it lifts the
|
|
838
|
-
* surface off the datum it belongs to. Only a thickness is safe to exaggerate, which is why an
|
|
839
|
-
* elevation archive defaults to 1 rather than to a derived factor.
|
|
830
|
+
* The factor a displaced surface should use, which is the style's or nothing.
|
|
840
831
|
*/
|
|
841
|
-
function exaggerationFor(style
|
|
832
|
+
function exaggerationFor(style) {
|
|
842
833
|
if (style.extrusionExaggeration != null) {
|
|
843
834
|
return style.extrusionExaggeration;
|
|
844
835
|
}
|
|
845
|
-
|
|
846
|
-
return 1;
|
|
847
|
-
}
|
|
848
|
-
if (!extent) {
|
|
849
|
-
return undefined;
|
|
850
|
-
}
|
|
851
|
-
return displaced_surface_primitive_1.DisplacedSurfacePrimitive.autoExaggeration(extent, metadata.ValueMin, metadata.ValueMax);
|
|
836
|
+
return 1;
|
|
852
837
|
}
|
|
853
838
|
/*
|
|
854
839
|
* The lon/lat bounding rectangle of a ring, which is the frame Cesium drapes an image material in.
|
|
@@ -949,7 +934,6 @@ function syncTextureFrameArchive(cEntity, frameArchive, viewer, textureColorMask
|
|
|
949
934
|
metadata: frameArchive.metadata,
|
|
950
935
|
cellBorder,
|
|
951
936
|
cellTexels,
|
|
952
|
-
baselineMask: frameArchive.metadata.BaselineMask,
|
|
953
937
|
maskBaseline: maskTextureBaseline,
|
|
954
938
|
produceValueCanvas,
|
|
955
939
|
drapeExtent
|
|
@@ -1010,20 +994,19 @@ function syncTextureValueLabels(params) {
|
|
|
1010
994
|
}
|
|
1011
995
|
const labels = new texture_value_labels_1.TextureValueLabels.Labels({
|
|
1012
996
|
viewer, extent, settings, metadata,
|
|
1013
|
-
tiles: texture_frame_series_animator_1.TextureFrameSeriesAnimator.
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
}))
|
|
1018
|
-
: undefined,
|
|
997
|
+
tiles: texture_frame_series_animator_1.TextureFrameSeriesAnimator.TilesOf(metadata).map((tile) => ({
|
|
998
|
+
West: tile.West, East: tile.East, South: tile.South, North: tile.North,
|
|
999
|
+
ResolutionX: tile.ResolutionX, ResolutionY: tile.ResolutionY
|
|
1000
|
+
})),
|
|
1019
1001
|
clipRing: params.clipRing
|
|
1020
1002
|
});
|
|
1021
1003
|
let lastVersion = -1;
|
|
1022
1004
|
let appliedFloor = null;
|
|
1023
1005
|
let appliedCeiling = null;
|
|
1024
|
-
//
|
|
1025
|
-
|
|
1026
|
-
|
|
1006
|
+
// Two extra Range GETs, and worth it only because a label draws the cell's own range from them.
|
|
1007
|
+
if (!texture_frame_series_animator_1.TextureFrameSeriesAnimator.IsTransformed(metadata)) {
|
|
1008
|
+
animator.EnsureExtremes();
|
|
1009
|
+
}
|
|
1027
1010
|
const remove = viewer.scene.preRender.addEventListener(() => {
|
|
1028
1011
|
if (animator.IsDisposed()) {
|
|
1029
1012
|
return;
|
|
@@ -1149,10 +1132,14 @@ async function resolveTextureValue(params) {
|
|
|
1149
1132
|
url = clientFile.URL;
|
|
1150
1133
|
const clientFileData = clientFile.Data;
|
|
1151
1134
|
if (texture_frame_series_animator_1.TextureFrameSeriesAnimator.IsFrameArchiveMetadata(clientFileData)) {
|
|
1135
|
+
const adapted = texture_frame_series_animator_1.TextureFrameSeriesAnimator.Adapt(clientFileData.generation);
|
|
1136
|
+
if (!adapted) {
|
|
1137
|
+
return { dataUri: null, effective: textureTrace.effective };
|
|
1138
|
+
}
|
|
1152
1139
|
return {
|
|
1153
1140
|
dataUri: null,
|
|
1154
1141
|
effective: textureTrace.effective,
|
|
1155
|
-
frameArchive: { url, metadata:
|
|
1142
|
+
frameArchive: { url, metadata: adapted }
|
|
1156
1143
|
};
|
|
1157
1144
|
}
|
|
1158
1145
|
}
|
|
@@ -1181,7 +1168,11 @@ async function resolveTextureCondition(params) {
|
|
|
1181
1168
|
const url = clientFile.URL;
|
|
1182
1169
|
const clientFileData = clientFile.Data;
|
|
1183
1170
|
if (texture_frame_series_animator_1.TextureFrameSeriesAnimator.IsFrameArchiveMetadata(clientFileData)) {
|
|
1184
|
-
|
|
1171
|
+
const adapted = texture_frame_series_animator_1.TextureFrameSeriesAnimator.Adapt(clientFileData.generation);
|
|
1172
|
+
if (adapted) {
|
|
1173
|
+
return { dataUri: null, effective: null, frameArchive: { url, metadata: adapted } };
|
|
1174
|
+
}
|
|
1175
|
+
return { dataUri: null, effective: null };
|
|
1185
1176
|
}
|
|
1186
1177
|
const cacheKey = "texture-" + url + "-none";
|
|
1187
1178
|
let prom = _textureCache.Get(cacheKey);
|