@cesium/engine 2.1.0 → 2.3.0
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/Build/Workers/{AttributeCompression-8a5a065e.js → AttributeCompression-f9f6c717.js} +1 -1
- package/Build/Workers/{AxisAlignedBoundingBox-a6f9f0e5.js → AxisAlignedBoundingBox-31fadcf0.js} +1 -1
- package/Build/Workers/{BoundingRectangle-b0a68595.js → BoundingRectangle-995f0079.js} +1 -1
- package/Build/Workers/{BoxGeometry-baedd794.js → BoxGeometry-7eb1af60.js} +1 -1
- package/Build/Workers/{Color-f85df1be.js → Color-2dc49658.js} +1 -1
- package/Build/Workers/{CoplanarPolygonGeometryLibrary-30516950.js → CoplanarPolygonGeometryLibrary-d7d972d6.js} +1 -1
- package/Build/Workers/{CorridorGeometryLibrary-5d5d3b3a.js → CorridorGeometryLibrary-1f5ef7b3.js} +1 -1
- package/Build/Workers/{CylinderGeometry-d899ae26.js → CylinderGeometry-23c67a6c.js} +1 -1
- package/Build/Workers/{CylinderGeometryLibrary-135b0858.js → CylinderGeometryLibrary-7bf291b4.js} +1 -1
- package/Build/Workers/{EllipseGeometry-a49f8449.js → EllipseGeometry-37014da4.js} +1 -1
- package/Build/Workers/{EllipseGeometryLibrary-cba7edde.js → EllipseGeometryLibrary-92ab6b1e.js} +1 -1
- package/Build/Workers/{EllipseOutlineGeometry-8095c8cb.js → EllipseOutlineGeometry-12b6fef5.js} +1 -1
- package/Build/Workers/{EllipsoidGeodesic-dcff5cbd.js → EllipsoidGeodesic-5b3623dc.js} +1 -1
- package/Build/Workers/{EllipsoidGeometry-ed93f571.js → EllipsoidGeometry-508da15c.js} +1 -1
- package/Build/Workers/{EllipsoidOutlineGeometry-e4854854.js → EllipsoidOutlineGeometry-40d97455.js} +1 -1
- package/Build/Workers/{EllipsoidRhumbLine-b672d507.js → EllipsoidRhumbLine-ef872433.js} +1 -1
- package/Build/Workers/{EllipsoidTangentPlane-7ae1aa9a.js → EllipsoidTangentPlane-46d4d9c2.js} +1 -1
- package/Build/Workers/{EncodedCartesian3-e8bbca36.js → EncodedCartesian3-57415c8a.js} +1 -1
- package/Build/Workers/{FrustumGeometry-b62db3e3.js → FrustumGeometry-38605e69.js} +32 -4
- package/Build/Workers/{GeometryAttribute-780af4fa.js → GeometryAttribute-a466e9c7.js} +1 -1
- package/Build/Workers/{GeometryInstance-3fb607b7.js → GeometryInstance-34d9e21e.js} +1 -1
- package/Build/Workers/{GeometryPipeline-36b61c99.js → GeometryPipeline-dcf79306.js} +1 -1
- package/Build/Workers/{IndexDatatype-b8f3e09d.js → IndexDatatype-2643aa47.js} +1 -1
- package/Build/Workers/{IntersectionTests-e889fcf0.js → IntersectionTests-88c49b2e.js} +1 -1
- package/Build/Workers/{Math-dad82b4d.js → Math-0a2ac845.js} +12 -2
- package/Build/Workers/{Matrix2-1e403d0e.js → Matrix2-e1298525.js} +1 -1
- package/Build/Workers/{Matrix3-fa806b97.js → Matrix3-41c58dde.js} +1 -1
- package/Build/Workers/{OrientedBoundingBox-43478ac8.js → OrientedBoundingBox-2dd47921.js} +5 -3
- package/Build/Workers/{Plane-c27e1ac6.js → Plane-4c3d403b.js} +1 -1
- package/Build/Workers/{PolygonGeometryLibrary-38a98276.js → PolygonGeometryLibrary-59126025.js} +1 -1
- package/Build/Workers/PolygonPipeline-1fe328c0.js +1344 -0
- package/Build/Workers/{PolylinePipeline-30e4cec9.js → PolylinePipeline-896735cc.js} +1 -1
- package/Build/Workers/{PolylineVolumeGeometryLibrary-90551d26.js → PolylineVolumeGeometryLibrary-9c0639f7.js} +1 -1
- package/Build/Workers/{PrimitivePipeline-558d9cb0.js → PrimitivePipeline-fc1a47ff.js} +1 -1
- package/Build/Workers/{RectangleGeometryLibrary-815c68df.js → RectangleGeometryLibrary-a23c9ebe.js} +1 -1
- package/Build/Workers/{TerrainEncoding-341ead52.js → TerrainEncoding-51b8b33b.js} +1 -1
- package/Build/Workers/Transforms-bc45e707.js +14699 -0
- package/Build/Workers/{WallGeometryLibrary-ccf90976.js → WallGeometryLibrary-007e9883.js} +1 -1
- package/Build/Workers/{WebMercatorProjection-76a3fcc0.js → WebMercatorProjection-13ed1a6e.js} +1 -1
- package/Build/Workers/{arrayRemoveDuplicates-fac118a8.js → arrayRemoveDuplicates-d2061e85.js} +1 -1
- package/Build/Workers/cesiumWorkerBootstrapper.js +1 -1
- package/Build/Workers/combineGeometry.js +1 -1
- package/Build/Workers/createBoxGeometry.js +1 -1
- package/Build/Workers/createBoxOutlineGeometry.js +1 -1
- package/Build/Workers/createCircleGeometry.js +1 -1
- package/Build/Workers/createCircleOutlineGeometry.js +1 -1
- package/Build/Workers/createCoplanarPolygonGeometry.js +1 -1
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +1 -1
- package/Build/Workers/createCorridorGeometry.js +1 -1
- package/Build/Workers/createCorridorOutlineGeometry.js +1 -1
- package/Build/Workers/createCylinderGeometry.js +1 -1
- package/Build/Workers/createCylinderOutlineGeometry.js +1 -1
- package/Build/Workers/createEllipseGeometry.js +1 -1
- package/Build/Workers/createEllipseOutlineGeometry.js +1 -1
- package/Build/Workers/createEllipsoidGeometry.js +1 -1
- package/Build/Workers/createEllipsoidOutlineGeometry.js +1 -1
- package/Build/Workers/createFrustumGeometry.js +1 -1
- package/Build/Workers/createFrustumOutlineGeometry.js +1 -1
- package/Build/Workers/createGeometry.js +1 -1
- package/Build/Workers/createGroundPolylineGeometry.js +1 -1
- package/Build/Workers/createPlaneGeometry.js +1 -1
- package/Build/Workers/createPlaneOutlineGeometry.js +1 -1
- package/Build/Workers/createPolygonGeometry.js +1 -1
- package/Build/Workers/createPolygonOutlineGeometry.js +1 -1
- package/Build/Workers/createPolylineGeometry.js +1 -1
- package/Build/Workers/createPolylineVolumeGeometry.js +1 -1
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +1 -1
- package/Build/Workers/createRectangleGeometry.js +1 -1
- package/Build/Workers/createRectangleOutlineGeometry.js +1 -1
- package/Build/Workers/createSimplePolylineGeometry.js +1 -1
- package/Build/Workers/createSphereGeometry.js +1 -1
- package/Build/Workers/createSphereOutlineGeometry.js +1 -1
- package/Build/Workers/createVectorTileClampedPolylines.js +1 -1
- package/Build/Workers/createVectorTileGeometries.js +1 -1
- package/Build/Workers/createVectorTilePoints.js +1 -1
- package/Build/Workers/createVectorTilePolygons.js +1 -1
- package/Build/Workers/createVectorTilePolylines.js +1 -1
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +1 -1
- package/Build/Workers/createVerticesFromHeightmap.js +5 -8
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +10 -15
- package/Build/Workers/createWallGeometry.js +1 -1
- package/Build/Workers/createWallOutlineGeometry.js +1 -1
- package/Build/Workers/decodeDraco.js +1 -1
- package/Build/Workers/decodeI3S.js +1 -1
- package/Build/Workers/package.js +1 -1
- package/Build/Workers/transferTypedArrayTest.js +1 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +1 -1
- package/Source/Core/ArcGISTiledElevationTerrainProvider.js +291 -191
- package/Source/Core/BingMapsGeocoderService.js +19 -1
- package/Source/Core/CartographicGeocoderService.js +15 -0
- package/Source/Core/CesiumTerrainProvider.js +571 -434
- package/Source/Core/Credit.js +1 -1
- package/Source/Core/CustomHeightmapTerrainProvider.js +12 -0
- package/Source/Core/EllipsoidTerrainProvider.js +17 -10
- package/Source/Core/FrustumGeometry.js +4 -3
- package/Source/Core/GeocoderService.js +32 -1
- package/Source/Core/GoogleEarthEnterpriseMetadata.js +86 -34
- package/Source/Core/GoogleEarthEnterpriseTerrainProvider.js +119 -82
- package/Source/Core/Ion.js +1 -1
- package/Source/Core/IonGeocoderService.js +17 -2
- package/Source/Core/IonResource.js +14 -3
- package/Source/Core/OpenCageGeocoderService.js +18 -1
- package/Source/Core/OrientedBoundingBox.js +4 -2
- package/Source/Core/OrthographicFrustum.js +13 -0
- package/Source/Core/PeliasGeocoderService.js +14 -1
- package/Source/Core/PerspectiveFrustum.js +14 -0
- package/Source/Core/Request.js +3 -2
- package/Source/Core/RequestScheduler.js +10 -5
- package/Source/Core/Resource.js +230 -236
- package/Source/Core/TerrainProvider.js +9 -14
- package/Source/Core/TileProviderError.js +8 -8
- package/Source/Core/VRTheWorldTerrainProvider.js +193 -124
- package/Source/Core/buildModuleUrl.js +4 -3
- package/Source/Core/createWorldTerrain.js +20 -2
- package/Source/Core/createWorldTerrainAsync.js +48 -0
- package/Source/Core/sampleTerrain.js +9 -10
- package/Source/Core/sampleTerrainMostDetailed.js +66 -72
- package/Source/DataSources/Cesium3DTilesetVisualizer.js +37 -26
- package/Source/DataSources/DataSourceDisplay.js +2 -2
- package/Source/DataSources/Entity.js +6 -1
- package/Source/DataSources/EntityCluster.js +126 -128
- package/Source/DataSources/ModelVisualizer.js +104 -34
- package/Source/DataSources/PolygonGraphics.js +1 -1
- package/Source/Renderer/UniformState.js +3 -2
- package/Source/Renderer/demodernizeShader.js +5 -5
- package/Source/Scene/ArcGisBaseMapType.js +12 -0
- package/Source/Scene/ArcGisMapServerImageryProvider.js +694 -376
- package/Source/Scene/ArcGisMapService.js +83 -0
- package/Source/Scene/BingMapsImageryProvider.js +511 -305
- package/Source/Scene/BufferLoader.js +29 -34
- package/Source/Scene/Camera.js +8 -7
- package/Source/Scene/Cesium3DTile.js +392 -254
- package/Source/Scene/Cesium3DTileBatchTable.js +2 -2
- package/Source/Scene/Cesium3DTileContent.js +16 -0
- package/Source/Scene/Cesium3DTileContentFactory.js +4 -4
- package/Source/Scene/Cesium3DTilePass.js +8 -11
- package/Source/Scene/Cesium3DTileStyleEngine.js +1 -1
- package/Source/Scene/Cesium3DTilesVoxelProvider.js +225 -117
- package/Source/Scene/Cesium3DTileset.js +756 -482
- package/Source/Scene/Cesium3DTilesetBaseTraversal.js +301 -0
- package/Source/Scene/Cesium3DTilesetMostDetailedTraversal.js +33 -46
- package/Source/Scene/Cesium3DTilesetSkipTraversal.js +421 -0
- package/Source/Scene/Cesium3DTilesetTraversal.js +219 -671
- package/Source/Scene/ClassificationPrimitive.js +7 -0
- package/Source/Scene/Composite3DTileContent.js +69 -26
- package/Source/Scene/CreditDisplay.js +132 -20
- package/Source/Scene/DepthPlane.js +1 -1
- package/Source/Scene/Empty3DTileContent.js +31 -1
- package/Source/Scene/Geometry3DTileContent.js +47 -7
- package/Source/Scene/Globe.js +5 -1
- package/Source/Scene/GlobeSurfaceTile.js +2 -1
- package/Source/Scene/GlobeSurfaceTileProvider.js +53 -30
- package/Source/Scene/GltfBufferViewLoader.js +47 -91
- package/Source/Scene/GltfDracoLoader.js +110 -112
- package/Source/Scene/GltfImageLoader.js +71 -78
- package/Source/Scene/GltfIndexBufferLoader.js +108 -121
- package/Source/Scene/GltfJsonLoader.js +87 -74
- package/Source/Scene/GltfLoader.js +381 -300
- package/Source/Scene/GltfStructuralMetadataLoader.js +109 -110
- package/Source/Scene/GltfTextureLoader.js +97 -96
- package/Source/Scene/GltfVertexBufferLoader.js +128 -133
- package/Source/Scene/GoogleEarthEnterpriseImageryProvider.js +353 -225
- package/Source/Scene/GoogleEarthEnterpriseMapsProvider.js +491 -331
- package/Source/Scene/GridImageryProvider.js +267 -104
- package/Source/Scene/GroundPolylinePrimitive.js +12 -1
- package/Source/Scene/GroundPrimitive.js +8 -1
- package/Source/Scene/I3SDataProvider.js +214 -113
- package/Source/Scene/I3SFeature.js +7 -6
- package/Source/Scene/I3SLayer.js +26 -37
- package/Source/Scene/I3SNode.js +59 -66
- package/Source/Scene/Imagery.js +6 -1
- package/Source/Scene/ImageryLayer.js +299 -48
- package/Source/Scene/ImageryLayerCollection.js +26 -0
- package/Source/Scene/ImageryProvider.js +129 -111
- package/Source/Scene/Implicit3DTileContent.js +72 -23
- package/Source/Scene/ImplicitSubtree.js +66 -45
- package/Source/Scene/IonImageryProvider.js +482 -275
- package/Source/Scene/MapboxImageryProvider.js +272 -112
- package/Source/Scene/MapboxStyleImageryProvider.js +270 -111
- package/Source/Scene/MetadataSchemaLoader.js +26 -36
- package/Source/Scene/Model/B3dmLoader.js +42 -46
- package/Source/Scene/Model/GeoJsonLoader.js +8 -32
- package/Source/Scene/Model/I3dmLoader.js +48 -74
- package/Source/Scene/Model/MaterialPipelineStage.js +12 -12
- package/Source/Scene/Model/Model.js +514 -135
- package/Source/Scene/Model/Model3DTileContent.js +83 -31
- package/Source/Scene/Model/ModelAnimationCollection.js +3 -3
- package/Source/Scene/Model/ModelDrawCommand.js +15 -26
- package/Source/Scene/Model/ModelUtility.js +16 -16
- package/Source/Scene/Model/PntsLoader.js +27 -32
- package/Source/Scene/Model/UniformType.js +1 -1
- package/Source/Scene/Multiple3DTileContent.js +134 -115
- package/Source/Scene/Picking.js +3 -2
- package/Source/Scene/PointCloud.js +11 -19
- package/Source/Scene/Primitive.js +20 -0
- package/Source/Scene/QuadtreePrimitive.js +5 -2
- package/Source/Scene/QuadtreeTileProvider.js +4 -8
- package/Source/Scene/ResourceCache.js +47 -105
- package/Source/Scene/ResourceCacheStatistics.js +24 -58
- package/Source/Scene/ResourceLoader.js +5 -17
- package/Source/Scene/ResourceLoaderState.js +12 -4
- package/Source/Scene/Scene.js +65 -0
- package/Source/Scene/SceneTransforms.js +3 -2
- package/Source/Scene/ScreenSpaceCameraController.js +2 -2
- package/Source/Scene/SingleTileImageryProvider.js +382 -209
- package/Source/Scene/Terrain.js +196 -0
- package/Source/Scene/TileCoordinatesImageryProvider.js +267 -104
- package/Source/Scene/TileMapServiceImageryProvider.js +177 -85
- package/Source/Scene/Tileset3DTileContent.js +47 -5
- package/Source/Scene/TimeDynamicPointCloud.js +15 -2
- package/Source/Scene/UrlTemplateImageryProvider.js +343 -215
- package/Source/Scene/Vector3DTileClampedPolylines.js +96 -84
- package/Source/Scene/Vector3DTileContent.js +47 -22
- package/Source/Scene/Vector3DTileGeometry.js +57 -52
- package/Source/Scene/Vector3DTilePoints.js +97 -81
- package/Source/Scene/Vector3DTilePolygons.js +118 -117
- package/Source/Scene/Vector3DTilePolylines.js +86 -82
- package/Source/Scene/Vector3DTilePrimitive.js +0 -1
- package/Source/Scene/VoxelContent.js +61 -63
- package/Source/Scene/VoxelPrimitive.js +39 -91
- package/Source/Scene/VoxelProvider.js +2 -2
- package/Source/Scene/WebMapServiceImageryProvider.js +272 -111
- package/Source/Scene/WebMapTileServiceImageryProvider.js +270 -107
- package/Source/Scene/computeFlyToLocationForRectangle.js +33 -37
- package/Source/Scene/createOsmBuildings.js +6 -0
- package/Source/Scene/createOsmBuildingsAsync.js +82 -0
- package/Source/Scene/createWorldImagery.js +14 -5
- package/Source/Scene/createWorldImageryAsync.js +39 -0
- package/Source/Shaders/AtmosphereCommon.glsl +51 -8
- package/Source/Shaders/AtmosphereCommon.js +51 -8
- package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.glsl +1 -1
- package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.js +1 -1
- package/Source/Shaders/PostProcessStages/AmbientOcclusionModulate.glsl +3 -3
- package/Source/Shaders/PostProcessStages/AmbientOcclusionModulate.js +3 -3
- package/Source/Widget/CesiumWidget.js +67 -27
- package/index.d.ts +2429 -1475
- package/index.js +324 -315
- package/package.json +4 -4
- package/Build/Workers/PolygonPipeline-d31ff61c.js +0 -1345
- package/Build/Workers/Transforms-9e9df299.js +0 -14714
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import defined from "../Core/defined.js";
|
|
2
|
+
import deprecationWarning from "../Core/deprecationWarning.js";
|
|
2
3
|
import destroyObject from "../Core/destroyObject.js";
|
|
3
4
|
import DeveloperError from "../Core/DeveloperError.js";
|
|
4
5
|
import Request from "../Core/Request.js";
|
|
@@ -54,6 +55,12 @@ function Multiple3DTileContent(tileset, tile, tilesetResource, contentsJson) {
|
|
|
54
55
|
const contentCount = this._innerContentHeaders.length;
|
|
55
56
|
this._arrayFetchPromises = new Array(contentCount);
|
|
56
57
|
this._requests = new Array(contentCount);
|
|
58
|
+
this._ready = false;
|
|
59
|
+
|
|
60
|
+
this._resolveContent = undefined;
|
|
61
|
+
this._readyPromise = new Promise((resolve) => {
|
|
62
|
+
this._resolveContent = resolve;
|
|
63
|
+
});
|
|
57
64
|
|
|
58
65
|
this._innerContentResources = new Array(contentCount);
|
|
59
66
|
this._serverKeys = new Array(contentCount);
|
|
@@ -70,9 +77,6 @@ function Multiple3DTileContent(tileset, tile, tilesetResource, contentsJson) {
|
|
|
70
77
|
this._innerContentResources[i] = contentResource;
|
|
71
78
|
this._serverKeys[i] = serverKey;
|
|
72
79
|
}
|
|
73
|
-
|
|
74
|
-
// undefined until the first time requests are scheduled
|
|
75
|
-
this._contentsFetchedPromise = undefined;
|
|
76
80
|
}
|
|
77
81
|
|
|
78
82
|
Object.defineProperties(Multiple3DTileContent.prototype, {
|
|
@@ -214,34 +218,41 @@ Object.defineProperties(Multiple3DTileContent.prototype, {
|
|
|
214
218
|
},
|
|
215
219
|
|
|
216
220
|
/**
|
|
217
|
-
*
|
|
218
|
-
* differently for <code>Multiple3DTileContent</code>: it returns
|
|
219
|
-
* undefined if the inner contents have not yet been created. This
|
|
220
|
-
* is handled specially in {@link Cesium3DTile}.
|
|
221
|
+
* Returns true when the tile's content is ready to render; otherwise false
|
|
221
222
|
*
|
|
222
223
|
* @memberof Multiple3DTileContent.prototype
|
|
223
224
|
*
|
|
224
|
-
* @type {
|
|
225
|
+
* @type {boolean}
|
|
225
226
|
* @readonly
|
|
226
|
-
*
|
|
227
227
|
* @private
|
|
228
228
|
*/
|
|
229
|
-
|
|
229
|
+
ready: {
|
|
230
230
|
get: function () {
|
|
231
|
-
// The contents haven't been created yet, short-circuit. The tile
|
|
232
|
-
// will handle this as a special case
|
|
233
231
|
if (!this._contentsCreated) {
|
|
234
|
-
return
|
|
232
|
+
return false;
|
|
235
233
|
}
|
|
236
234
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
235
|
+
return this._ready;
|
|
236
|
+
},
|
|
237
|
+
},
|
|
240
238
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
239
|
+
/**
|
|
240
|
+
* Gets the promise that will be resolved when the tile's content is ready to render.
|
|
241
|
+
*
|
|
242
|
+
* @memberof Multiple3DTileContent.prototype
|
|
243
|
+
*
|
|
244
|
+
* @type {Promise<Multiple3DTileContent>}
|
|
245
|
+
* @readonly
|
|
246
|
+
* @deprecated
|
|
247
|
+
* @private
|
|
248
|
+
*/
|
|
249
|
+
readyPromise: {
|
|
250
|
+
get: function () {
|
|
251
|
+
deprecationWarning(
|
|
252
|
+
"Multiple3DTileContent.readyPromise",
|
|
253
|
+
"Multiple3DTileContent.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for Multiple3DTileContent.ready to return true instead."
|
|
254
|
+
);
|
|
255
|
+
return this._readyPromise;
|
|
245
256
|
},
|
|
246
257
|
},
|
|
247
258
|
|
|
@@ -338,21 +349,6 @@ Object.defineProperties(Multiple3DTileContent.prototype, {
|
|
|
338
349
|
});
|
|
339
350
|
},
|
|
340
351
|
},
|
|
341
|
-
|
|
342
|
-
/**
|
|
343
|
-
* A promise that resolves when all of the inner contents have been fetched.
|
|
344
|
-
* This promise is undefined until the first frame where all array buffer
|
|
345
|
-
* requests have been scheduled.
|
|
346
|
-
* @memberof Multiple3DTileContent.prototype
|
|
347
|
-
*
|
|
348
|
-
* @type {Promise}
|
|
349
|
-
* @private
|
|
350
|
-
*/
|
|
351
|
-
contentsFetchedPromise: {
|
|
352
|
-
get: function () {
|
|
353
|
-
return this._contentsFetchedPromise;
|
|
354
|
-
},
|
|
355
|
-
},
|
|
356
352
|
});
|
|
357
353
|
|
|
358
354
|
function updatePendingRequests(multipleContents, deltaRequestCount) {
|
|
@@ -386,7 +382,7 @@ function cancelPendingRequests(multipleContents, originalContentState) {
|
|
|
386
382
|
* requests are successfully scheduled.
|
|
387
383
|
* </p>
|
|
388
384
|
*
|
|
389
|
-
* @return {
|
|
385
|
+
* @return {Promise<void>|undefined} A promise that resolves when the request completes, or undefined if there is no request needed, or the request cannot be scheduled.
|
|
390
386
|
* @private
|
|
391
387
|
*/
|
|
392
388
|
Multiple3DTileContent.prototype.requestInnerContents = function () {
|
|
@@ -395,26 +391,26 @@ Multiple3DTileContent.prototype.requestInnerContents = function () {
|
|
|
395
391
|
// if we can schedule all the requests at once. If not, no requests are
|
|
396
392
|
// scheduled
|
|
397
393
|
if (!canScheduleAllRequests(this._serverKeys)) {
|
|
398
|
-
|
|
394
|
+
this.tileset.statistics.numberOfAttemptedRequests += this._serverKeys.length;
|
|
395
|
+
return;
|
|
399
396
|
}
|
|
400
397
|
|
|
401
398
|
const contentHeaders = this._innerContentHeaders;
|
|
402
399
|
updatePendingRequests(this, contentHeaders.length);
|
|
403
400
|
|
|
401
|
+
const originalCancelCount = this._cancelCount;
|
|
404
402
|
for (let i = 0; i < contentHeaders.length; i++) {
|
|
405
403
|
// The cancel count is needed to avoid a race condition where a content
|
|
406
404
|
// is canceled multiple times.
|
|
407
405
|
this._arrayFetchPromises[i] = requestInnerContent(
|
|
408
406
|
this,
|
|
409
407
|
i,
|
|
410
|
-
|
|
408
|
+
originalCancelCount,
|
|
411
409
|
this._tile._contentState
|
|
412
410
|
);
|
|
413
411
|
}
|
|
414
412
|
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
return 0;
|
|
413
|
+
return createInnerContents(this);
|
|
418
414
|
};
|
|
419
415
|
|
|
420
416
|
/**
|
|
@@ -476,28 +472,39 @@ function requestInnerContent(
|
|
|
476
472
|
|
|
477
473
|
const promise = contentResource.fetchArrayBuffer();
|
|
478
474
|
if (!defined(promise)) {
|
|
479
|
-
return
|
|
475
|
+
return;
|
|
480
476
|
}
|
|
481
477
|
|
|
482
478
|
return promise
|
|
483
479
|
.then(function (arrayBuffer) {
|
|
484
|
-
//
|
|
480
|
+
// Pending requests have already been canceled.
|
|
485
481
|
if (originalCancelCount < multipleContents._cancelCount) {
|
|
486
|
-
return
|
|
482
|
+
return;
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
if (
|
|
486
|
+
contentResource.request.cancelled ||
|
|
487
|
+
contentResource.request.state === RequestState.CANCELLED
|
|
488
|
+
) {
|
|
489
|
+
cancelPendingRequests(multipleContents, originalContentState);
|
|
490
|
+
return;
|
|
487
491
|
}
|
|
488
492
|
|
|
489
493
|
updatePendingRequests(multipleContents, -1);
|
|
490
494
|
return arrayBuffer;
|
|
491
495
|
})
|
|
492
496
|
.catch(function (error) {
|
|
493
|
-
//
|
|
497
|
+
// Pending requests have already been canceled.
|
|
494
498
|
if (originalCancelCount < multipleContents._cancelCount) {
|
|
495
|
-
return
|
|
499
|
+
return;
|
|
496
500
|
}
|
|
497
501
|
|
|
498
|
-
if (
|
|
502
|
+
if (
|
|
503
|
+
contentResource.request.cancelled ||
|
|
504
|
+
contentResource.request.state === RequestState.CANCELLED
|
|
505
|
+
) {
|
|
499
506
|
cancelPendingRequests(multipleContents, originalContentState);
|
|
500
|
-
return
|
|
507
|
+
return;
|
|
501
508
|
}
|
|
502
509
|
|
|
503
510
|
updatePendingRequests(multipleContents, -1);
|
|
@@ -505,85 +512,90 @@ function requestInnerContent(
|
|
|
505
512
|
});
|
|
506
513
|
}
|
|
507
514
|
|
|
508
|
-
function createInnerContents(multipleContents) {
|
|
515
|
+
async function createInnerContents(multipleContents) {
|
|
509
516
|
const originalCancelCount = multipleContents._cancelCount;
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
) {
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
return undefined;
|
|
516
|
-
}
|
|
517
|
-
|
|
518
|
-
const contents = arrayBuffers.map(function (arrayBuffer, i) {
|
|
519
|
-
if (!defined(arrayBuffer)) {
|
|
520
|
-
// Content was not fetched. The error was handled in
|
|
521
|
-
// the fetch promise. Return undefined to indicate partial failure.
|
|
522
|
-
return undefined;
|
|
523
|
-
}
|
|
517
|
+
const arrayBuffers = await Promise.all(multipleContents._arrayFetchPromises);
|
|
518
|
+
// Request have been cancelled
|
|
519
|
+
if (originalCancelCount < multipleContents._cancelCount) {
|
|
520
|
+
return;
|
|
521
|
+
}
|
|
524
522
|
|
|
525
|
-
|
|
526
|
-
|
|
523
|
+
const promises = arrayBuffers.map((arrayBuffer, i) =>
|
|
524
|
+
createInnerContent(multipleContents, arrayBuffer, i)
|
|
525
|
+
);
|
|
527
526
|
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
527
|
+
// Even if we had a partial success (in which case the inner promise will be handled, but the content will not be returned), mark that we finished creating
|
|
528
|
+
// contents
|
|
529
|
+
const contents = await Promise.all(promises);
|
|
530
|
+
multipleContents._contentsCreated = true;
|
|
531
|
+
multipleContents._contents = contents.filter(defined);
|
|
532
|
+
return contents;
|
|
533
533
|
}
|
|
534
534
|
|
|
535
|
-
function createInnerContent(multipleContents, arrayBuffer, index) {
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
"External tilesets are disallowed inside multiple contents"
|
|
541
|
-
);
|
|
542
|
-
|
|
543
|
-
return handleInnerContentFailed(multipleContents, index, error);
|
|
535
|
+
async function createInnerContent(multipleContents, arrayBuffer, index) {
|
|
536
|
+
if (!defined(arrayBuffer)) {
|
|
537
|
+
// Content was not fetched. The error was handled in
|
|
538
|
+
// the fetch promise. Return undefined to indicate partial failure.
|
|
539
|
+
return;
|
|
544
540
|
}
|
|
545
541
|
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
preprocessed.contentType === Cesium3DTileContentType.GEOMETRY ||
|
|
549
|
-
preprocessed.contentType === Cesium3DTileContentType.VECTOR;
|
|
542
|
+
try {
|
|
543
|
+
const preprocessed = preprocess3DTileContent(arrayBuffer);
|
|
550
544
|
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
const contentFactory = Cesium3DTileContentFactory[preprocessed.contentType];
|
|
557
|
-
if (defined(preprocessed.binaryPayload)) {
|
|
558
|
-
content = contentFactory(
|
|
559
|
-
tileset,
|
|
560
|
-
tile,
|
|
561
|
-
resource,
|
|
562
|
-
preprocessed.binaryPayload.buffer,
|
|
563
|
-
0
|
|
564
|
-
);
|
|
565
|
-
} else {
|
|
566
|
-
// JSON formats
|
|
567
|
-
content = contentFactory(tileset, tile, resource, preprocessed.jsonPayload);
|
|
568
|
-
}
|
|
545
|
+
if (preprocessed.contentType === Cesium3DTileContentType.EXTERNAL_TILESET) {
|
|
546
|
+
throw new RuntimeError(
|
|
547
|
+
"External tilesets are disallowed inside multiple contents"
|
|
548
|
+
);
|
|
549
|
+
}
|
|
569
550
|
|
|
570
|
-
|
|
551
|
+
multipleContents._disableSkipLevelOfDetail =
|
|
552
|
+
multipleContents._disableSkipLevelOfDetail ||
|
|
553
|
+
preprocessed.contentType === Cesium3DTileContentType.GEOMETRY ||
|
|
554
|
+
preprocessed.contentType === Cesium3DTileContentType.VECTOR;
|
|
555
|
+
|
|
556
|
+
const tileset = multipleContents._tileset;
|
|
557
|
+
const resource = multipleContents._innerContentResources[index];
|
|
558
|
+
const tile = multipleContents._tile;
|
|
559
|
+
|
|
560
|
+
let content;
|
|
561
|
+
const contentFactory = Cesium3DTileContentFactory[preprocessed.contentType];
|
|
562
|
+
if (defined(preprocessed.binaryPayload)) {
|
|
563
|
+
content = await Promise.resolve(
|
|
564
|
+
contentFactory(
|
|
565
|
+
tileset,
|
|
566
|
+
tile,
|
|
567
|
+
resource,
|
|
568
|
+
preprocessed.binaryPayload.buffer,
|
|
569
|
+
0
|
|
570
|
+
)
|
|
571
|
+
);
|
|
572
|
+
} else {
|
|
573
|
+
// JSON formats
|
|
574
|
+
content = await Promise.resolve(
|
|
575
|
+
contentFactory(tileset, tile, resource, preprocessed.jsonPayload)
|
|
576
|
+
);
|
|
577
|
+
}
|
|
571
578
|
|
|
572
|
-
|
|
573
|
-
const subtree = tile.implicitSubtree;
|
|
574
|
-
const coordinates = tile.implicitCoordinates;
|
|
575
|
-
content.metadata = subtree.getContentMetadataView(coordinates, index);
|
|
576
|
-
} else if (!tile.hasImplicitContent) {
|
|
577
|
-
content.metadata = findContentMetadata(tileset, contentHeader);
|
|
578
|
-
}
|
|
579
|
+
const contentHeader = multipleContents._innerContentHeaders[index];
|
|
579
580
|
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
metadata
|
|
584
|
-
})
|
|
581
|
+
if (tile.hasImplicitContentMetadata) {
|
|
582
|
+
const subtree = tile.implicitSubtree;
|
|
583
|
+
const coordinates = tile.implicitCoordinates;
|
|
584
|
+
content.metadata = subtree.getContentMetadataView(coordinates, index);
|
|
585
|
+
} else if (!tile.hasImplicitContent) {
|
|
586
|
+
content.metadata = findContentMetadata(tileset, contentHeader);
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
const groupMetadata = findGroupMetadata(tileset, contentHeader);
|
|
590
|
+
if (defined(groupMetadata)) {
|
|
591
|
+
content.group = new Cesium3DContentGroup({
|
|
592
|
+
metadata: groupMetadata,
|
|
593
|
+
});
|
|
594
|
+
}
|
|
595
|
+
return content;
|
|
596
|
+
} catch (error) {
|
|
597
|
+
handleInnerContentFailed(multipleContents, index, error);
|
|
585
598
|
}
|
|
586
|
-
return content;
|
|
587
599
|
}
|
|
588
600
|
|
|
589
601
|
function handleInnerContentFailed(multipleContents, index, error) {
|
|
@@ -653,8 +665,15 @@ Multiple3DTileContent.prototype.applyStyle = function (style) {
|
|
|
653
665
|
Multiple3DTileContent.prototype.update = function (tileset, frameState) {
|
|
654
666
|
const contents = this._contents;
|
|
655
667
|
const length = contents.length;
|
|
668
|
+
let ready = true;
|
|
656
669
|
for (let i = 0; i < length; ++i) {
|
|
657
670
|
contents[i].update(tileset, frameState);
|
|
671
|
+
ready = ready && contents[i].ready;
|
|
672
|
+
}
|
|
673
|
+
|
|
674
|
+
if (!this._ready && ready) {
|
|
675
|
+
this._ready = true;
|
|
676
|
+
this._resolveContent(this);
|
|
658
677
|
}
|
|
659
678
|
};
|
|
660
679
|
|
package/Source/Scene/Picking.js
CHANGED
|
@@ -92,8 +92,9 @@ function getPickOrthographicCullingVolume(
|
|
|
92
92
|
) {
|
|
93
93
|
const camera = scene.camera;
|
|
94
94
|
let frustum = camera.frustum;
|
|
95
|
-
|
|
96
|
-
|
|
95
|
+
const offCenterFrustum = frustum.offCenterFrustum;
|
|
96
|
+
if (defined(offCenterFrustum)) {
|
|
97
|
+
frustum = offCenterFrustum;
|
|
97
98
|
}
|
|
98
99
|
|
|
99
100
|
let x = (2.0 * (drawingBufferPosition.x - viewport.x)) / viewport.width - 1.0;
|
|
@@ -156,9 +156,8 @@ function PointCloud(options) {
|
|
|
156
156
|
);
|
|
157
157
|
this._splittingEnabled = false;
|
|
158
158
|
|
|
159
|
-
this.
|
|
160
|
-
this
|
|
161
|
-
this._readyPromise = initialize(this, options);
|
|
159
|
+
this._error = undefined;
|
|
160
|
+
initialize(this, options);
|
|
162
161
|
}
|
|
163
162
|
|
|
164
163
|
Object.defineProperties(PointCloud.prototype, {
|
|
@@ -180,12 +179,6 @@ Object.defineProperties(PointCloud.prototype, {
|
|
|
180
179
|
},
|
|
181
180
|
},
|
|
182
181
|
|
|
183
|
-
readyPromise: {
|
|
184
|
-
get: function () {
|
|
185
|
-
return this._readyPromise;
|
|
186
|
-
},
|
|
187
|
-
},
|
|
188
|
-
|
|
189
182
|
color: {
|
|
190
183
|
get: function () {
|
|
191
184
|
return Color.clone(this._highlightColor);
|
|
@@ -283,14 +276,6 @@ function initialize(pointCloud, options) {
|
|
|
283
276
|
}
|
|
284
277
|
|
|
285
278
|
pointCloud._pointsLength = parsedContent.pointsLength;
|
|
286
|
-
|
|
287
|
-
return new Promise(function (resolve, reject) {
|
|
288
|
-
pointCloud._resolveReadyPromise = function () {
|
|
289
|
-
pointCloud._ready = true;
|
|
290
|
-
resolve(pointCloud);
|
|
291
|
-
};
|
|
292
|
-
pointCloud._rejectReadyPromise = reject;
|
|
293
|
-
});
|
|
294
279
|
}
|
|
295
280
|
|
|
296
281
|
const scratchMin = new Cartesian3();
|
|
@@ -1280,7 +1265,7 @@ function decodeDraco(pointCloud, context) {
|
|
|
1280
1265
|
})
|
|
1281
1266
|
.catch(function (error) {
|
|
1282
1267
|
pointCloud._decodingState = DecodingState.FAILED;
|
|
1283
|
-
pointCloud.
|
|
1268
|
+
pointCloud._error = error;
|
|
1284
1269
|
});
|
|
1285
1270
|
}
|
|
1286
1271
|
}
|
|
@@ -1292,6 +1277,13 @@ const scratchScale = new Cartesian3();
|
|
|
1292
1277
|
|
|
1293
1278
|
PointCloud.prototype.update = function (frameState) {
|
|
1294
1279
|
const context = frameState.context;
|
|
1280
|
+
|
|
1281
|
+
if (defined(this._error)) {
|
|
1282
|
+
const error = this._error;
|
|
1283
|
+
this._error = undefined;
|
|
1284
|
+
throw error;
|
|
1285
|
+
}
|
|
1286
|
+
|
|
1295
1287
|
const decoding = decodeDraco(this, context);
|
|
1296
1288
|
if (decoding) {
|
|
1297
1289
|
return;
|
|
@@ -1309,7 +1301,7 @@ PointCloud.prototype.update = function (frameState) {
|
|
|
1309
1301
|
createResources(this, frameState);
|
|
1310
1302
|
modelMatrixDirty = true;
|
|
1311
1303
|
shadersDirty = true;
|
|
1312
|
-
this.
|
|
1304
|
+
this._ready = true;
|
|
1313
1305
|
this._parsedContent = undefined; // Unload
|
|
1314
1306
|
}
|
|
1315
1307
|
|
|
@@ -9,6 +9,7 @@ import combine from "../Core/combine.js";
|
|
|
9
9
|
import ComponentDatatype from "../Core/ComponentDatatype.js";
|
|
10
10
|
import defaultValue from "../Core/defaultValue.js";
|
|
11
11
|
import defined from "../Core/defined.js";
|
|
12
|
+
import deprecationWarning from "../Core/deprecationWarning.js";
|
|
12
13
|
import destroyObject from "../Core/destroyObject.js";
|
|
13
14
|
import DeveloperError from "../Core/DeveloperError.js";
|
|
14
15
|
import EncodedCartesian3 from "../Core/EncodedCartesian3.js";
|
|
@@ -350,6 +351,7 @@ function Primitive(options) {
|
|
|
350
351
|
this._ready = false;
|
|
351
352
|
|
|
352
353
|
const primitive = this;
|
|
354
|
+
// This is here for backwards compatibility. This promise wrapper can be removed once readyPromise is removed.
|
|
353
355
|
this._readyPromise = new Promise((resolve, reject) => {
|
|
354
356
|
primitive._completeLoad = (frameState, state, error) => {
|
|
355
357
|
this._error = error;
|
|
@@ -486,6 +488,19 @@ Object.defineProperties(Primitive.prototype, {
|
|
|
486
488
|
*
|
|
487
489
|
* @type {boolean}
|
|
488
490
|
* @readonly
|
|
491
|
+
*
|
|
492
|
+
* @example
|
|
493
|
+
* // Wait for a primitive to become ready before accessing attributes
|
|
494
|
+
* const removeListener = scene.postRender.addEventListener(() => {
|
|
495
|
+
* if (!frustumPrimitive.ready) {
|
|
496
|
+
* return;
|
|
497
|
+
* }
|
|
498
|
+
*
|
|
499
|
+
* const attributes = primitive.getGeometryInstanceAttributes('an id');
|
|
500
|
+
* attributes.color = Cesium.ColorGeometryInstanceAttribute.toValue(Cesium.Color.AQUA);
|
|
501
|
+
*
|
|
502
|
+
* removeListener();
|
|
503
|
+
* });
|
|
489
504
|
*/
|
|
490
505
|
ready: {
|
|
491
506
|
get: function () {
|
|
@@ -498,9 +513,14 @@ Object.defineProperties(Primitive.prototype, {
|
|
|
498
513
|
* @memberof Primitive.prototype
|
|
499
514
|
* @type {Promise<Primitive>}
|
|
500
515
|
* @readonly
|
|
516
|
+
* @deprecated
|
|
501
517
|
*/
|
|
502
518
|
readyPromise: {
|
|
503
519
|
get: function () {
|
|
520
|
+
deprecationWarning(
|
|
521
|
+
"Primitive.readyPromise",
|
|
522
|
+
"Primitive.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for Primitive.ready to return true instead."
|
|
523
|
+
);
|
|
504
524
|
return this._readyPromise;
|
|
505
525
|
},
|
|
506
526
|
},
|
|
@@ -520,6 +520,7 @@ function selectTilesForRendering(primitive, frameState) {
|
|
|
520
520
|
let i;
|
|
521
521
|
const tileProvider = primitive._tileProvider;
|
|
522
522
|
if (!defined(primitive._levelZeroTiles)) {
|
|
523
|
+
// ready is deprecated. This is here for backwards compatibility
|
|
523
524
|
if (tileProvider.ready) {
|
|
524
525
|
const tilingScheme = tileProvider.tilingScheme;
|
|
525
526
|
primitive._levelZeroTiles = QuadtreeTile.createLevelZeroTiles(
|
|
@@ -1274,8 +1275,9 @@ function screenSpaceError(primitive, frameState, tile) {
|
|
|
1274
1275
|
function screenSpaceError2D(primitive, frameState, tile) {
|
|
1275
1276
|
const camera = frameState.camera;
|
|
1276
1277
|
let frustum = camera.frustum;
|
|
1277
|
-
|
|
1278
|
-
|
|
1278
|
+
const offCenterFrustum = frustum.offCenterFrustum;
|
|
1279
|
+
if (defined(offCenterFrustum)) {
|
|
1280
|
+
frustum = offCenterFrustum;
|
|
1279
1281
|
}
|
|
1280
1282
|
|
|
1281
1283
|
const context = frameState.context;
|
|
@@ -1387,6 +1389,7 @@ const scratchPosition = new Cartesian3();
|
|
|
1387
1389
|
const scratchArray = [];
|
|
1388
1390
|
|
|
1389
1391
|
function updateHeights(primitive, frameState) {
|
|
1392
|
+
// ready is deprecated. This is here for backwards compatibility.
|
|
1390
1393
|
if (!primitive.tileProvider.ready) {
|
|
1391
1394
|
return;
|
|
1392
1395
|
}
|
|
@@ -46,14 +46,14 @@ Object.defineProperties(QuadtreeTileProvider.prototype, {
|
|
|
46
46
|
* Gets a value indicating whether or not the provider is ready for use.
|
|
47
47
|
* @memberof QuadtreeTileProvider.prototype
|
|
48
48
|
* @type {boolean}
|
|
49
|
+
* @deprecated
|
|
49
50
|
*/
|
|
50
51
|
ready: {
|
|
51
52
|
get: DeveloperError.throwInstantiationError,
|
|
52
53
|
},
|
|
53
54
|
|
|
54
55
|
/**
|
|
55
|
-
* Gets the tiling scheme used by the provider.
|
|
56
|
-
* not be accessed before {@link QuadtreeTileProvider#ready} returns true.
|
|
56
|
+
* Gets the tiling scheme used by the provider.
|
|
57
57
|
* @memberof QuadtreeTileProvider.prototype
|
|
58
58
|
* @type {TilingScheme}
|
|
59
59
|
*/
|
|
@@ -112,8 +112,7 @@ QuadtreeTileProvider.prototype.endUpdate =
|
|
|
112
112
|
DeveloperError.throwInstantiationError;
|
|
113
113
|
|
|
114
114
|
/**
|
|
115
|
-
* Gets the maximum geometric error allowed in a tile at a given level, in meters.
|
|
116
|
-
* called before {@link QuadtreeTileProvider#ready} returns true.
|
|
115
|
+
* Gets the maximum geometric error allowed in a tile at a given level, in meters.
|
|
117
116
|
*
|
|
118
117
|
* @see QuadtreeTileProvider#computeDefaultLevelZeroMaximumGeometricError
|
|
119
118
|
*
|
|
@@ -128,8 +127,7 @@ QuadtreeTileProvider.prototype.getLevelMaximumGeometricError =
|
|
|
128
127
|
|
|
129
128
|
/**
|
|
130
129
|
* Loads, or continues loading, a given tile. This function will continue to be called
|
|
131
|
-
* until {@link QuadtreeTile#state} is no longer {@link QuadtreeTileLoadState#LOADING}.
|
|
132
|
-
* not be called before {@link QuadtreeTileProvider#ready} returns true.
|
|
130
|
+
* until {@link QuadtreeTile#state} is no longer {@link QuadtreeTileLoadState#LOADING}.
|
|
133
131
|
*
|
|
134
132
|
* @memberof QuadtreeTileProvider
|
|
135
133
|
* @function
|
|
@@ -137,8 +135,6 @@ QuadtreeTileProvider.prototype.getLevelMaximumGeometricError =
|
|
|
137
135
|
* @param {Context} context The rendering context.
|
|
138
136
|
* @param {FrameState} frameState The frame state.
|
|
139
137
|
* @param {QuadtreeTile} tile The tile to load.
|
|
140
|
-
*
|
|
141
|
-
* @exception {DeveloperError} <code>loadTile</code> must not be called before the tile provider is ready.
|
|
142
138
|
*/
|
|
143
139
|
QuadtreeTileProvider.prototype.loadTile =
|
|
144
140
|
DeveloperError.throwInstantiationError;
|