Skip to content

Commit 3906ba3

Browse files
authoredMay 26, 2023
Merge pull request #11311 from CesiumGS/terrain-deprecation-fixes
Terrain & imagery provider ready deprecation fixes
2 parents 2f409a4 + 6418099 commit 3906ba3

39 files changed

+435
-362
lines changed
 

‎CHANGES.md

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
- Fixed color creation from CSS color string with modern "space-separated" syntax. [#11271](https://github.com/CesiumGS/cesium/pull/11271)
1010
- Fixed a race condition when loading cut-out terrain. [#11296](https://github.com/CesiumGS/cesium/pull/11296)
11+
- Fixed async behavior for custom terrain and imagery providers. [#11274](https://github.com/CesiumGS/cesium/issues/11274)
1112

1213
### 1.105.2 - 2023-05-15
1314

‎packages/engine/Source/Core/ArcGISTiledElevationTerrainProvider.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ function ArcGISTiledElevationTerrainProvider(options) {
261261
if (defined(options.url)) {
262262
deprecationWarning(
263263
"ArcGISTiledElevationTerrainProvider options.url",
264-
"options.url was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ArcGISTiledElevationTerrainProvider.fromUrl instead."
264+
"options.url was deprecated in CesiumJS 1.104. It will be removed in CesiumJS 1.107. Use ArcGISTiledElevationTerrainProvider.fromUrl instead."
265265
);
266266

267267
const that = this;
@@ -345,7 +345,7 @@ Object.defineProperties(ArcGISTiledElevationTerrainProvider.prototype, {
345345
get: function () {
346346
deprecationWarning(
347347
"ArcGISTiledElevationTerrainProvider.ready",
348-
"ArcGISTiledElevationTerrainProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ArcGISTiledElevationTerrainProvider.fromUrl instead."
348+
"ArcGISTiledElevationTerrainProvider.ready was deprecated in CesiumJS 1.104. It will be removed in CesiumJS 1.107. Use ArcGISTiledElevationTerrainProvider.fromUrl instead."
349349
);
350350
return this._ready;
351351
},
@@ -362,7 +362,7 @@ Object.defineProperties(ArcGISTiledElevationTerrainProvider.prototype, {
362362
get: function () {
363363
deprecationWarning(
364364
"ArcGISTiledElevationTerrainProvider.readyPromise",
365-
"ArcGISTiledElevationTerrainProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ArcGISTiledElevationTerrainProvider.fromUrl instead."
365+
"ArcGISTiledElevationTerrainProvider.readyPromise was deprecated in CesiumJS 1.104. It will be removed in CesiumJS 1.107. Use ArcGISTiledElevationTerrainProvider.fromUrl instead."
366366
);
367367
return this._readyPromise;
368368
},

‎packages/engine/Source/Core/CesiumTerrainProvider.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -535,7 +535,7 @@ function CesiumTerrainProvider(options) {
535535
if (defined(options.url)) {
536536
deprecationWarning(
537537
"CesiumTerrainProvider options.url",
538-
"options.url was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use CesiumTerrainProvider.fromIonAssetId or CesiumTerrainProvider.fromUrl instead."
538+
"options.url was deprecated in CesiumJS 1.104. It will be removed in CesiumJS 1.107. Use CesiumTerrainProvider.fromIonAssetId or CesiumTerrainProvider.fromUrl instead."
539539
);
540540
this._readyPromise = CesiumTerrainProvider._initializeReadyPromise(
541541
options,
@@ -1087,7 +1087,7 @@ Object.defineProperties(CesiumTerrainProvider.prototype, {
10871087
get: function () {
10881088
deprecationWarning(
10891089
"CesiumTerrainProvider.ready",
1090-
"CesiumTerrainProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use CesiumTerrainProvider.fromIonAssetId or CesiumTerrainProvider.fromUrl instead."
1090+
"CesiumTerrainProvider.ready was deprecated in CesiumJS 1.104. It will be removed in CesiumJS 1.107. Use CesiumTerrainProvider.fromIonAssetId or CesiumTerrainProvider.fromUrl instead."
10911091
);
10921092
return this._ready;
10931093
},
@@ -1104,7 +1104,7 @@ Object.defineProperties(CesiumTerrainProvider.prototype, {
11041104
get: function () {
11051105
deprecationWarning(
11061106
"CesiumTerrainProvider.readyPromise",
1107-
"CesiumTerrainProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use CesiumTerrainProvider.fromIonAssetId or CesiumTerrainProvider.fromUrl instead."
1107+
"CesiumTerrainProvider.readyPromise was deprecated in CesiumJS 1.104. It will be removed in CesiumJS 1.107. Use CesiumTerrainProvider.fromIonAssetId or CesiumTerrainProvider.fromUrl instead."
11081108
);
11091109
return this._readyPromise;
11101110
},

‎packages/engine/Source/Core/CustomHeightmapTerrainProvider.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ Object.defineProperties(CustomHeightmapTerrainProvider.prototype, {
145145
get: function () {
146146
deprecationWarning(
147147
"CustomHeightmapTerrainProvider.ready",
148-
"CustomHeightmapTerrainProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."
148+
"CustomHeightmapTerrainProvider.ready was deprecated in CesiumJS 1.104. It will be removed in CesiumJS 1.107."
149149
);
150150
return true;
151151
},
@@ -162,7 +162,7 @@ Object.defineProperties(CustomHeightmapTerrainProvider.prototype, {
162162
get: function () {
163163
deprecationWarning(
164164
"CustomHeightmapTerrainProvider.readyPromise",
165-
"CustomHeightmapTerrainProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."
165+
"CustomHeightmapTerrainProvider.readyPromise was deprecated in CesiumJS 1.104. It will be removed in CesiumJS 1.107."
166166
);
167167
return this._readyPromise;
168168
},

‎packages/engine/Source/Core/EllipsoidTerrainProvider.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ Object.defineProperties(EllipsoidTerrainProvider.prototype, {
9898
get: function () {
9999
deprecationWarning(
100100
"EllipsoidTerrainProvider.ready",
101-
"EllipsoidTerrainProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."
101+
"EllipsoidTerrainProvider.ready was deprecated in CesiumJS 1.104. It will be removed in CesiumJS 1.107."
102102
);
103103
return true;
104104
},
@@ -115,7 +115,7 @@ Object.defineProperties(EllipsoidTerrainProvider.prototype, {
115115
get: function () {
116116
deprecationWarning(
117117
"EllipsoidTerrainProvider.readyPromise",
118-
"EllipsoidTerrainProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."
118+
"EllipsoidTerrainProvider.readyPromise was deprecated in CesiumJS 1.104. It will be removed in CesiumJS 1.107."
119119
);
120120
return this._readyPromise;
121121
},

‎packages/engine/Source/Core/GoogleEarthEnterpriseMetadata.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ function GoogleEarthEnterpriseMetadata(resourceOrUrl) {
105105
if (defined(resourceOrUrl)) {
106106
deprecationWarning(
107107
"GoogleEarthEnterpriseMetadata options.url",
108-
"GoogleEarthEnterpriseMetadata constructor parmeter resourceOrUrl was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use GoogleEarthEnterpriseMetadata.fromUrl instead."
108+
"GoogleEarthEnterpriseMetadata constructor parmeter resourceOrUrl was deprecated in CesiumJS 1.104. It will be removed in CesiumJS 1.107. Use GoogleEarthEnterpriseMetadata.fromUrl instead."
109109
);
110110

111111
let url = resourceOrUrl;
@@ -183,7 +183,7 @@ Object.defineProperties(GoogleEarthEnterpriseMetadata.prototype, {
183183
get: function () {
184184
deprecationWarning(
185185
"GoogleEarthEnterpriseMetadata.readyPromise",
186-
"GoogleEarthEnterpriseMetadata.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use GoogleEarthEnterpriseMetadata.fromUrl instead."
186+
"GoogleEarthEnterpriseMetadata.readyPromise was deprecated in CesiumJS 1.104. It will be removed in CesiumJS 1.107. Use GoogleEarthEnterpriseMetadata.fromUrl instead."
187187
);
188188
return this._readyPromise;
189189
},

‎packages/engine/Source/Core/GoogleEarthEnterpriseTerrainProvider.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ function GoogleEarthEnterpriseTerrainProvider(options) {
135135
if (defined(options.url)) {
136136
deprecationWarning(
137137
"GoogleEarthEnterpriseTerrainProvider options.url",
138-
"options.url was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use GoogleEarthEnterpriseTerrainProvider.fromMetadata instead."
138+
"options.url was deprecated in CesiumJS 1.104. It will be removed in CesiumJS 1.107. Use GoogleEarthEnterpriseTerrainProvider.fromMetadata instead."
139139
);
140140
const resource = Resource.createIfNeeded(options.url);
141141
const that = this;
@@ -172,7 +172,7 @@ function GoogleEarthEnterpriseTerrainProvider(options) {
172172
} else if (defined(options.metadata)) {
173173
deprecationWarning(
174174
"GoogleEarthEnterpriseTerrainProvider options.metadata",
175-
"options.metadata was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use GoogleEarthEnterpriseTerrainProvider.fromMetadata instead."
175+
"options.metadata was deprecated in CesiumJS 1.104. It will be removed in CesiumJS 1.107. Use GoogleEarthEnterpriseTerrainProvider.fromMetadata instead."
176176
);
177177
const metadata = options.metadata;
178178
this._metadata = metadata;
@@ -253,7 +253,7 @@ Object.defineProperties(GoogleEarthEnterpriseTerrainProvider.prototype, {
253253
get: function () {
254254
deprecationWarning(
255255
"GoogleEarthEnterpriseTerrainProvider.ready",
256-
"GoogleEarthEnterpriseTerrainProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."
256+
"GoogleEarthEnterpriseTerrainProvider.ready was deprecated in CesiumJS 1.104. It will be removed in CesiumJS 1.107."
257257
);
258258
return this._ready;
259259
},
@@ -270,7 +270,7 @@ Object.defineProperties(GoogleEarthEnterpriseTerrainProvider.prototype, {
270270
get: function () {
271271
deprecationWarning(
272272
"GoogleEarthEnterpriseTerrainProvider.readyPromise",
273-
"GoogleEarthEnterpriseTerrainProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."
273+
"GoogleEarthEnterpriseTerrainProvider.readyPromise was deprecated in CesiumJS 1.104. It will be removed in CesiumJS 1.107."
274274
);
275275
return this._readyPromise;
276276
},

‎packages/engine/Source/Core/VRTheWorldTerrainProvider.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ function VRTheWorldTerrainProvider(options) {
185185
if (defined(options.url)) {
186186
deprecationWarning(
187187
"VRTheWorldTerrainProvider options.url",
188-
"options.url was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. VRTheWorldTerrainProvider.fromUrl instead."
188+
"options.url was deprecated in CesiumJS 1.104. It will be removed in CesiumJS 1.107. VRTheWorldTerrainProvider.fromUrl instead."
189189
);
190190
const that = this;
191191
const terrainProviderBuilder = new TerrainProviderBuilder(options);
@@ -255,7 +255,7 @@ Object.defineProperties(VRTheWorldTerrainProvider.prototype, {
255255
get: function () {
256256
deprecationWarning(
257257
"VRTheWorldTerrainProvider.ready",
258-
"VRTheWorldTerrainProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use VRTheWorldTerrainProvider.fromUrl instead."
258+
"VRTheWorldTerrainProvider.ready was deprecated in CesiumJS 1.104. It will be removed in CesiumJS 1.107. Use VRTheWorldTerrainProvider.fromUrl instead."
259259
);
260260
return this._ready;
261261
},
@@ -272,7 +272,7 @@ Object.defineProperties(VRTheWorldTerrainProvider.prototype, {
272272
get: function () {
273273
deprecationWarning(
274274
"VRTheWorldTerrainProvider.readyPromise",
275-
"VRTheWorldTerrainProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use VRTheWorldTerrainProvider.fromUrl instead."
275+
"VRTheWorldTerrainProvider.readyPromise was deprecated in CesiumJS 1.104. It will be removed in CesiumJS 1.107. Use VRTheWorldTerrainProvider.fromUrl instead."
276276
);
277277
return this._readyPromise;
278278
},

‎packages/engine/Source/Core/createWorldTerrain.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import IonResource from "./IonResource.js";
77
* Creates a {@link CesiumTerrainProvider} instance for the {@link https://cesium.com/content/#cesium-world-terrain|Cesium World Terrain}.
88
*
99
* @function
10+
* @deprecated
1011
*
1112
* @param {object} [options] Object with the following properties:
1213
* @param {boolean} [options.requestVertexNormals=false] Flag that indicates if the client should request additional lighting information from the server if available.
@@ -34,7 +35,7 @@ import IonResource from "./IonResource.js";
3435
function createWorldTerrain(options) {
3536
deprecationWarning(
3637
"createWorldTerrain",
37-
"createWorldTerrain was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use createWorldTerrainAsync instead."
38+
"createWorldTerrain was deprecated in CesiumJS 1.104. It will be removed in CesiumJS 1.107. Use createWorldTerrainAsync instead."
3839
);
3940

4041
options = defaultValue(options, defaultValue.EMPTY_OBJECT);

‎packages/engine/Source/Core/sampleTerrain.js

+5-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,11 @@ async function sampleTerrain(terrainProvider, level, positions) {
4343
//>>includeEnd('debug');
4444

4545
// readyPromise has been deprecated; This is here for backwards compatibility
46-
await terrainProvider._readyPromise;
46+
if (defined(terrainProvider._readyPromise)) {
47+
await terrainProvider._readyPromise;
48+
} else if (defined(terrainProvider.readyPromise)) {
49+
await terrainProvider.readyPromise;
50+
}
4751

4852
return doSampling(terrainProvider, level, positions);
4953
}

‎packages/engine/Source/Core/sampleTerrainMostDetailed.js

+5-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,11 @@ async function sampleTerrainMostDetailed(terrainProvider, positions) {
4040
const maxLevels = [];
4141

4242
// readyPromise has been deprecated; This is here for backwards compatibility
43-
await terrainProvider._readyPromise;
43+
if (defined(terrainProvider._readyPromise)) {
44+
await terrainProvider._readyPromise;
45+
} else if (defined(terrainProvider.readyPromise)) {
46+
await terrainProvider.readyPromise;
47+
}
4448

4549
const availability = terrainProvider.availability;
4650

‎packages/engine/Source/DataSources/ModelVisualizer.js

+6-1
Original file line numberDiff line numberDiff line change
@@ -454,7 +454,12 @@ ModelVisualizer.prototype.getBoundingSphere = function (entity, result) {
454454
// We cannot query the availability of the terrain provider till its ready, so the
455455
// bounding sphere state will remain pending till the terrain provider is ready.
456456
// ready is deprecated. This is here for backwards compatibility
457-
if (!terrainProvider._ready) {
457+
if (
458+
defined(terrainProvider) &&
459+
(defined(terrainProvider._ready)
460+
? !terrainProvider._ready
461+
: defined(terrainProvider.ready) && !terrainProvider.ready)
462+
) {
458463
return BoundingSphereState.PENDING;
459464
}
460465

0 commit comments

Comments
 (0)
Please sign in to comment.