@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.
Files changed (240) hide show
  1. package/Build/Workers/{AttributeCompression-8a5a065e.js → AttributeCompression-f9f6c717.js} +1 -1
  2. package/Build/Workers/{AxisAlignedBoundingBox-a6f9f0e5.js → AxisAlignedBoundingBox-31fadcf0.js} +1 -1
  3. package/Build/Workers/{BoundingRectangle-b0a68595.js → BoundingRectangle-995f0079.js} +1 -1
  4. package/Build/Workers/{BoxGeometry-baedd794.js → BoxGeometry-7eb1af60.js} +1 -1
  5. package/Build/Workers/{Color-f85df1be.js → Color-2dc49658.js} +1 -1
  6. package/Build/Workers/{CoplanarPolygonGeometryLibrary-30516950.js → CoplanarPolygonGeometryLibrary-d7d972d6.js} +1 -1
  7. package/Build/Workers/{CorridorGeometryLibrary-5d5d3b3a.js → CorridorGeometryLibrary-1f5ef7b3.js} +1 -1
  8. package/Build/Workers/{CylinderGeometry-d899ae26.js → CylinderGeometry-23c67a6c.js} +1 -1
  9. package/Build/Workers/{CylinderGeometryLibrary-135b0858.js → CylinderGeometryLibrary-7bf291b4.js} +1 -1
  10. package/Build/Workers/{EllipseGeometry-a49f8449.js → EllipseGeometry-37014da4.js} +1 -1
  11. package/Build/Workers/{EllipseGeometryLibrary-cba7edde.js → EllipseGeometryLibrary-92ab6b1e.js} +1 -1
  12. package/Build/Workers/{EllipseOutlineGeometry-8095c8cb.js → EllipseOutlineGeometry-12b6fef5.js} +1 -1
  13. package/Build/Workers/{EllipsoidGeodesic-dcff5cbd.js → EllipsoidGeodesic-5b3623dc.js} +1 -1
  14. package/Build/Workers/{EllipsoidGeometry-ed93f571.js → EllipsoidGeometry-508da15c.js} +1 -1
  15. package/Build/Workers/{EllipsoidOutlineGeometry-e4854854.js → EllipsoidOutlineGeometry-40d97455.js} +1 -1
  16. package/Build/Workers/{EllipsoidRhumbLine-b672d507.js → EllipsoidRhumbLine-ef872433.js} +1 -1
  17. package/Build/Workers/{EllipsoidTangentPlane-7ae1aa9a.js → EllipsoidTangentPlane-46d4d9c2.js} +1 -1
  18. package/Build/Workers/{EncodedCartesian3-e8bbca36.js → EncodedCartesian3-57415c8a.js} +1 -1
  19. package/Build/Workers/{FrustumGeometry-b62db3e3.js → FrustumGeometry-38605e69.js} +32 -4
  20. package/Build/Workers/{GeometryAttribute-780af4fa.js → GeometryAttribute-a466e9c7.js} +1 -1
  21. package/Build/Workers/{GeometryInstance-3fb607b7.js → GeometryInstance-34d9e21e.js} +1 -1
  22. package/Build/Workers/{GeometryPipeline-36b61c99.js → GeometryPipeline-dcf79306.js} +1 -1
  23. package/Build/Workers/{IndexDatatype-b8f3e09d.js → IndexDatatype-2643aa47.js} +1 -1
  24. package/Build/Workers/{IntersectionTests-e889fcf0.js → IntersectionTests-88c49b2e.js} +1 -1
  25. package/Build/Workers/{Math-dad82b4d.js → Math-0a2ac845.js} +12 -2
  26. package/Build/Workers/{Matrix2-1e403d0e.js → Matrix2-e1298525.js} +1 -1
  27. package/Build/Workers/{Matrix3-fa806b97.js → Matrix3-41c58dde.js} +1 -1
  28. package/Build/Workers/{OrientedBoundingBox-43478ac8.js → OrientedBoundingBox-2dd47921.js} +5 -3
  29. package/Build/Workers/{Plane-c27e1ac6.js → Plane-4c3d403b.js} +1 -1
  30. package/Build/Workers/{PolygonGeometryLibrary-38a98276.js → PolygonGeometryLibrary-59126025.js} +1 -1
  31. package/Build/Workers/PolygonPipeline-1fe328c0.js +1344 -0
  32. package/Build/Workers/{PolylinePipeline-30e4cec9.js → PolylinePipeline-896735cc.js} +1 -1
  33. package/Build/Workers/{PolylineVolumeGeometryLibrary-90551d26.js → PolylineVolumeGeometryLibrary-9c0639f7.js} +1 -1
  34. package/Build/Workers/{PrimitivePipeline-558d9cb0.js → PrimitivePipeline-fc1a47ff.js} +1 -1
  35. package/Build/Workers/{RectangleGeometryLibrary-815c68df.js → RectangleGeometryLibrary-a23c9ebe.js} +1 -1
  36. package/Build/Workers/{TerrainEncoding-341ead52.js → TerrainEncoding-51b8b33b.js} +1 -1
  37. package/Build/Workers/Transforms-bc45e707.js +14699 -0
  38. package/Build/Workers/{WallGeometryLibrary-ccf90976.js → WallGeometryLibrary-007e9883.js} +1 -1
  39. package/Build/Workers/{WebMercatorProjection-76a3fcc0.js → WebMercatorProjection-13ed1a6e.js} +1 -1
  40. package/Build/Workers/{arrayRemoveDuplicates-fac118a8.js → arrayRemoveDuplicates-d2061e85.js} +1 -1
  41. package/Build/Workers/cesiumWorkerBootstrapper.js +1 -1
  42. package/Build/Workers/combineGeometry.js +1 -1
  43. package/Build/Workers/createBoxGeometry.js +1 -1
  44. package/Build/Workers/createBoxOutlineGeometry.js +1 -1
  45. package/Build/Workers/createCircleGeometry.js +1 -1
  46. package/Build/Workers/createCircleOutlineGeometry.js +1 -1
  47. package/Build/Workers/createCoplanarPolygonGeometry.js +1 -1
  48. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +1 -1
  49. package/Build/Workers/createCorridorGeometry.js +1 -1
  50. package/Build/Workers/createCorridorOutlineGeometry.js +1 -1
  51. package/Build/Workers/createCylinderGeometry.js +1 -1
  52. package/Build/Workers/createCylinderOutlineGeometry.js +1 -1
  53. package/Build/Workers/createEllipseGeometry.js +1 -1
  54. package/Build/Workers/createEllipseOutlineGeometry.js +1 -1
  55. package/Build/Workers/createEllipsoidGeometry.js +1 -1
  56. package/Build/Workers/createEllipsoidOutlineGeometry.js +1 -1
  57. package/Build/Workers/createFrustumGeometry.js +1 -1
  58. package/Build/Workers/createFrustumOutlineGeometry.js +1 -1
  59. package/Build/Workers/createGeometry.js +1 -1
  60. package/Build/Workers/createGroundPolylineGeometry.js +1 -1
  61. package/Build/Workers/createPlaneGeometry.js +1 -1
  62. package/Build/Workers/createPlaneOutlineGeometry.js +1 -1
  63. package/Build/Workers/createPolygonGeometry.js +1 -1
  64. package/Build/Workers/createPolygonOutlineGeometry.js +1 -1
  65. package/Build/Workers/createPolylineGeometry.js +1 -1
  66. package/Build/Workers/createPolylineVolumeGeometry.js +1 -1
  67. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +1 -1
  68. package/Build/Workers/createRectangleGeometry.js +1 -1
  69. package/Build/Workers/createRectangleOutlineGeometry.js +1 -1
  70. package/Build/Workers/createSimplePolylineGeometry.js +1 -1
  71. package/Build/Workers/createSphereGeometry.js +1 -1
  72. package/Build/Workers/createSphereOutlineGeometry.js +1 -1
  73. package/Build/Workers/createVectorTileClampedPolylines.js +1 -1
  74. package/Build/Workers/createVectorTileGeometries.js +1 -1
  75. package/Build/Workers/createVectorTilePoints.js +1 -1
  76. package/Build/Workers/createVectorTilePolygons.js +1 -1
  77. package/Build/Workers/createVectorTilePolylines.js +1 -1
  78. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +1 -1
  79. package/Build/Workers/createVerticesFromHeightmap.js +5 -8
  80. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +10 -15
  81. package/Build/Workers/createWallGeometry.js +1 -1
  82. package/Build/Workers/createWallOutlineGeometry.js +1 -1
  83. package/Build/Workers/decodeDraco.js +1 -1
  84. package/Build/Workers/decodeI3S.js +1 -1
  85. package/Build/Workers/package.js +1 -1
  86. package/Build/Workers/transferTypedArrayTest.js +1 -1
  87. package/Build/Workers/upsampleQuantizedTerrainMesh.js +1 -1
  88. package/Source/Core/ArcGISTiledElevationTerrainProvider.js +291 -191
  89. package/Source/Core/BingMapsGeocoderService.js +19 -1
  90. package/Source/Core/CartographicGeocoderService.js +15 -0
  91. package/Source/Core/CesiumTerrainProvider.js +571 -434
  92. package/Source/Core/Credit.js +1 -1
  93. package/Source/Core/CustomHeightmapTerrainProvider.js +12 -0
  94. package/Source/Core/EllipsoidTerrainProvider.js +17 -10
  95. package/Source/Core/FrustumGeometry.js +4 -3
  96. package/Source/Core/GeocoderService.js +32 -1
  97. package/Source/Core/GoogleEarthEnterpriseMetadata.js +86 -34
  98. package/Source/Core/GoogleEarthEnterpriseTerrainProvider.js +119 -82
  99. package/Source/Core/Ion.js +1 -1
  100. package/Source/Core/IonGeocoderService.js +17 -2
  101. package/Source/Core/IonResource.js +14 -3
  102. package/Source/Core/OpenCageGeocoderService.js +18 -1
  103. package/Source/Core/OrientedBoundingBox.js +4 -2
  104. package/Source/Core/OrthographicFrustum.js +13 -0
  105. package/Source/Core/PeliasGeocoderService.js +14 -1
  106. package/Source/Core/PerspectiveFrustum.js +14 -0
  107. package/Source/Core/Request.js +3 -2
  108. package/Source/Core/RequestScheduler.js +10 -5
  109. package/Source/Core/Resource.js +230 -236
  110. package/Source/Core/TerrainProvider.js +9 -14
  111. package/Source/Core/TileProviderError.js +8 -8
  112. package/Source/Core/VRTheWorldTerrainProvider.js +193 -124
  113. package/Source/Core/buildModuleUrl.js +4 -3
  114. package/Source/Core/createWorldTerrain.js +20 -2
  115. package/Source/Core/createWorldTerrainAsync.js +48 -0
  116. package/Source/Core/sampleTerrain.js +9 -10
  117. package/Source/Core/sampleTerrainMostDetailed.js +66 -72
  118. package/Source/DataSources/Cesium3DTilesetVisualizer.js +37 -26
  119. package/Source/DataSources/DataSourceDisplay.js +2 -2
  120. package/Source/DataSources/Entity.js +6 -1
  121. package/Source/DataSources/EntityCluster.js +126 -128
  122. package/Source/DataSources/ModelVisualizer.js +104 -34
  123. package/Source/DataSources/PolygonGraphics.js +1 -1
  124. package/Source/Renderer/UniformState.js +3 -2
  125. package/Source/Renderer/demodernizeShader.js +5 -5
  126. package/Source/Scene/ArcGisBaseMapType.js +12 -0
  127. package/Source/Scene/ArcGisMapServerImageryProvider.js +694 -376
  128. package/Source/Scene/ArcGisMapService.js +83 -0
  129. package/Source/Scene/BingMapsImageryProvider.js +511 -305
  130. package/Source/Scene/BufferLoader.js +29 -34
  131. package/Source/Scene/Camera.js +8 -7
  132. package/Source/Scene/Cesium3DTile.js +392 -254
  133. package/Source/Scene/Cesium3DTileBatchTable.js +2 -2
  134. package/Source/Scene/Cesium3DTileContent.js +16 -0
  135. package/Source/Scene/Cesium3DTileContentFactory.js +4 -4
  136. package/Source/Scene/Cesium3DTilePass.js +8 -11
  137. package/Source/Scene/Cesium3DTileStyleEngine.js +1 -1
  138. package/Source/Scene/Cesium3DTilesVoxelProvider.js +225 -117
  139. package/Source/Scene/Cesium3DTileset.js +756 -482
  140. package/Source/Scene/Cesium3DTilesetBaseTraversal.js +301 -0
  141. package/Source/Scene/Cesium3DTilesetMostDetailedTraversal.js +33 -46
  142. package/Source/Scene/Cesium3DTilesetSkipTraversal.js +421 -0
  143. package/Source/Scene/Cesium3DTilesetTraversal.js +219 -671
  144. package/Source/Scene/ClassificationPrimitive.js +7 -0
  145. package/Source/Scene/Composite3DTileContent.js +69 -26
  146. package/Source/Scene/CreditDisplay.js +132 -20
  147. package/Source/Scene/DepthPlane.js +1 -1
  148. package/Source/Scene/Empty3DTileContent.js +31 -1
  149. package/Source/Scene/Geometry3DTileContent.js +47 -7
  150. package/Source/Scene/Globe.js +5 -1
  151. package/Source/Scene/GlobeSurfaceTile.js +2 -1
  152. package/Source/Scene/GlobeSurfaceTileProvider.js +53 -30
  153. package/Source/Scene/GltfBufferViewLoader.js +47 -91
  154. package/Source/Scene/GltfDracoLoader.js +110 -112
  155. package/Source/Scene/GltfImageLoader.js +71 -78
  156. package/Source/Scene/GltfIndexBufferLoader.js +108 -121
  157. package/Source/Scene/GltfJsonLoader.js +87 -74
  158. package/Source/Scene/GltfLoader.js +381 -300
  159. package/Source/Scene/GltfStructuralMetadataLoader.js +109 -110
  160. package/Source/Scene/GltfTextureLoader.js +97 -96
  161. package/Source/Scene/GltfVertexBufferLoader.js +128 -133
  162. package/Source/Scene/GoogleEarthEnterpriseImageryProvider.js +353 -225
  163. package/Source/Scene/GoogleEarthEnterpriseMapsProvider.js +491 -331
  164. package/Source/Scene/GridImageryProvider.js +267 -104
  165. package/Source/Scene/GroundPolylinePrimitive.js +12 -1
  166. package/Source/Scene/GroundPrimitive.js +8 -1
  167. package/Source/Scene/I3SDataProvider.js +214 -113
  168. package/Source/Scene/I3SFeature.js +7 -6
  169. package/Source/Scene/I3SLayer.js +26 -37
  170. package/Source/Scene/I3SNode.js +59 -66
  171. package/Source/Scene/Imagery.js +6 -1
  172. package/Source/Scene/ImageryLayer.js +299 -48
  173. package/Source/Scene/ImageryLayerCollection.js +26 -0
  174. package/Source/Scene/ImageryProvider.js +129 -111
  175. package/Source/Scene/Implicit3DTileContent.js +72 -23
  176. package/Source/Scene/ImplicitSubtree.js +66 -45
  177. package/Source/Scene/IonImageryProvider.js +482 -275
  178. package/Source/Scene/MapboxImageryProvider.js +272 -112
  179. package/Source/Scene/MapboxStyleImageryProvider.js +270 -111
  180. package/Source/Scene/MetadataSchemaLoader.js +26 -36
  181. package/Source/Scene/Model/B3dmLoader.js +42 -46
  182. package/Source/Scene/Model/GeoJsonLoader.js +8 -32
  183. package/Source/Scene/Model/I3dmLoader.js +48 -74
  184. package/Source/Scene/Model/MaterialPipelineStage.js +12 -12
  185. package/Source/Scene/Model/Model.js +514 -135
  186. package/Source/Scene/Model/Model3DTileContent.js +83 -31
  187. package/Source/Scene/Model/ModelAnimationCollection.js +3 -3
  188. package/Source/Scene/Model/ModelDrawCommand.js +15 -26
  189. package/Source/Scene/Model/ModelUtility.js +16 -16
  190. package/Source/Scene/Model/PntsLoader.js +27 -32
  191. package/Source/Scene/Model/UniformType.js +1 -1
  192. package/Source/Scene/Multiple3DTileContent.js +134 -115
  193. package/Source/Scene/Picking.js +3 -2
  194. package/Source/Scene/PointCloud.js +11 -19
  195. package/Source/Scene/Primitive.js +20 -0
  196. package/Source/Scene/QuadtreePrimitive.js +5 -2
  197. package/Source/Scene/QuadtreeTileProvider.js +4 -8
  198. package/Source/Scene/ResourceCache.js +47 -105
  199. package/Source/Scene/ResourceCacheStatistics.js +24 -58
  200. package/Source/Scene/ResourceLoader.js +5 -17
  201. package/Source/Scene/ResourceLoaderState.js +12 -4
  202. package/Source/Scene/Scene.js +65 -0
  203. package/Source/Scene/SceneTransforms.js +3 -2
  204. package/Source/Scene/ScreenSpaceCameraController.js +2 -2
  205. package/Source/Scene/SingleTileImageryProvider.js +382 -209
  206. package/Source/Scene/Terrain.js +196 -0
  207. package/Source/Scene/TileCoordinatesImageryProvider.js +267 -104
  208. package/Source/Scene/TileMapServiceImageryProvider.js +177 -85
  209. package/Source/Scene/Tileset3DTileContent.js +47 -5
  210. package/Source/Scene/TimeDynamicPointCloud.js +15 -2
  211. package/Source/Scene/UrlTemplateImageryProvider.js +343 -215
  212. package/Source/Scene/Vector3DTileClampedPolylines.js +96 -84
  213. package/Source/Scene/Vector3DTileContent.js +47 -22
  214. package/Source/Scene/Vector3DTileGeometry.js +57 -52
  215. package/Source/Scene/Vector3DTilePoints.js +97 -81
  216. package/Source/Scene/Vector3DTilePolygons.js +118 -117
  217. package/Source/Scene/Vector3DTilePolylines.js +86 -82
  218. package/Source/Scene/Vector3DTilePrimitive.js +0 -1
  219. package/Source/Scene/VoxelContent.js +61 -63
  220. package/Source/Scene/VoxelPrimitive.js +39 -91
  221. package/Source/Scene/VoxelProvider.js +2 -2
  222. package/Source/Scene/WebMapServiceImageryProvider.js +272 -111
  223. package/Source/Scene/WebMapTileServiceImageryProvider.js +270 -107
  224. package/Source/Scene/computeFlyToLocationForRectangle.js +33 -37
  225. package/Source/Scene/createOsmBuildings.js +6 -0
  226. package/Source/Scene/createOsmBuildingsAsync.js +82 -0
  227. package/Source/Scene/createWorldImagery.js +14 -5
  228. package/Source/Scene/createWorldImageryAsync.js +39 -0
  229. package/Source/Shaders/AtmosphereCommon.glsl +51 -8
  230. package/Source/Shaders/AtmosphereCommon.js +51 -8
  231. package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.glsl +1 -1
  232. package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.js +1 -1
  233. package/Source/Shaders/PostProcessStages/AmbientOcclusionModulate.glsl +3 -3
  234. package/Source/Shaders/PostProcessStages/AmbientOcclusionModulate.js +3 -3
  235. package/Source/Widget/CesiumWidget.js +67 -27
  236. package/index.d.ts +2429 -1475
  237. package/index.js +324 -315
  238. package/package.json +4 -4
  239. package/Build/Workers/PolygonPipeline-d31ff61c.js +0 -1345
  240. package/Build/Workers/Transforms-9e9df299.js +0 -14714
@@ -1,6 +1,5 @@
1
1
  import Cartographic from "../Core/Cartographic.js";
2
2
  import defaultValue from "../Core/defaultValue.js";
3
- import defer from "../Core/defer.js";
4
3
  import defined from "../Core/defined.js";
5
4
  import Ellipsoid from "../Core/Ellipsoid.js";
6
5
  import HeadingPitchRoll from "../Core/HeadingPitchRoll.js";
@@ -11,6 +10,7 @@ import Resource from "../Core/Resource.js";
11
10
  import Quaternion from "../Core/Quaternion.js";
12
11
  import Transforms from "../Core/Transforms.js";
13
12
  import Cesium3DTile from "./Cesium3DTile.js";
13
+ import I3SDataProvider from "./I3SDataProvider.js";
14
14
  import I3SFeature from "./I3SFeature.js";
15
15
  import I3SField from "./I3SField.js";
16
16
  import I3SGeometry from "./I3SGeometry.js";
@@ -52,6 +52,7 @@ function I3SNode(parent, ref, isRoot) {
52
52
  this._layer = layer;
53
53
  this._nodeIndex = nodeIndex;
54
54
  this._resource = resource;
55
+ this._isLoading = false;
55
56
 
56
57
  this._tile = undefined;
57
58
  this._data = undefined;
@@ -170,7 +171,7 @@ Object.defineProperties(I3SNode.prototype, {
170
171
  /**
171
172
  * @private
172
173
  */
173
- I3SNode.prototype.load = function () {
174
+ I3SNode.prototype.load = async function () {
174
175
  const that = this;
175
176
 
176
177
  function processData() {
@@ -191,28 +192,29 @@ I3SNode.prototype.load = function () {
191
192
 
192
193
  // If we don't have a nodepage index load from json
193
194
  if (!defined(this._nodeIndex)) {
194
- return this._dataProvider._loadJson(this._resource).then(function (data) {
195
- // Success
196
- that._data = data;
197
- processData();
198
- });
195
+ const data = await I3SDataProvider.loadJson(
196
+ this._resource,
197
+ this._dataProvider._traceFetches
198
+ );
199
+ that._data = data;
200
+ processData();
201
+ return;
199
202
  }
200
203
 
201
- return this._layer._getNodeInNodePages(this._nodeIndex).then(function (node) {
202
- that._data = node;
203
- let uri;
204
- if (that._isRoot) {
205
- uri = "nodes/root/";
206
- } else if (defined(node.mesh)) {
207
- const uriIndex = node.mesh.geometry.resource;
208
- uri = `../${uriIndex}/`;
209
- }
210
- if (defined(uri)) {
211
- that._resource = that._parent.resource.getDerivedResource({ url: uri });
212
- }
204
+ const node = await this._layer._getNodeInNodePages(this._nodeIndex);
205
+ that._data = node;
206
+ let uri;
207
+ if (that._isRoot) {
208
+ uri = "nodes/root/";
209
+ } else if (defined(node.mesh)) {
210
+ const uriIndex = node.mesh.geometry.resource;
211
+ uri = `../${uriIndex}/`;
212
+ }
213
+ if (defined(uri)) {
214
+ that._resource = that._parent.resource.getDerivedResource({ url: uri });
215
+ }
213
216
 
214
- processData();
215
- });
217
+ processData();
216
218
  };
217
219
 
218
220
  /**
@@ -609,7 +611,10 @@ I3SNode.prototype._create3DTileDefinition = function () {
609
611
  /**
610
612
  * @private
611
613
  */
612
- I3SNode.prototype._createI3SDecoderTask = function (dataProvider, data) {
614
+ I3SNode.prototype._createI3SDecoderTask = async function (
615
+ decodeI3STaskProcessor,
616
+ data
617
+ ) {
613
618
  // Prepare the data to send to the worker
614
619
  const parentData = data.geometryData._parent._data;
615
620
  const parentRotationInverseMatrix =
@@ -664,18 +669,14 @@ I3SNode.prototype._createI3SDecoderTask = function (dataProvider, data) {
664
669
  parentRotation: parentRotation,
665
670
  };
666
671
 
667
- const decodeI3STaskProcessor = dataProvider._getDecoderTaskProcessor();
668
-
669
672
  const transferrableObjects = [];
670
- return dataProvider._taskProcessorReadyPromise.then(function () {
671
- return decodeI3STaskProcessor.scheduleTask(payload, transferrableObjects);
672
- });
673
+ return decodeI3STaskProcessor.scheduleTask(payload, transferrableObjects);
673
674
  };
674
675
 
675
676
  /**
676
677
  * @private
677
678
  */
678
- I3SNode.prototype._createContentURL = function () {
679
+ I3SNode.prototype._createContentURL = async function () {
679
680
  let rawGltf = {
680
681
  scene: 0,
681
682
  scenes: [
@@ -701,6 +702,8 @@ I3SNode.prototype._createContentURL = function () {
701
702
  },
702
703
  };
703
704
 
705
+ const decodeI3STaskProcessor = await this._dataProvider.getDecoderTaskProcessor();
706
+
704
707
  // Load the geometry data
705
708
  const dataPromises = [this._loadGeometryData()];
706
709
  if (this._dataProvider.legacyVersion16) {
@@ -720,13 +723,16 @@ I3SNode.prototype._createContentURL = function () {
720
723
  tile: that._tile,
721
724
  };
722
725
 
723
- const task = that._createI3SDecoderTask(that._dataProvider, parameters);
724
- if (!defined(task)) {
726
+ const promise = that._createI3SDecoderTask(
727
+ decodeI3STaskProcessor,
728
+ parameters
729
+ );
730
+ if (!defined(promise)) {
725
731
  // Postponed
726
732
  return;
727
733
  }
728
734
 
729
- generateGltfPromise = task.then(function (result) {
735
+ generateGltfPromise = promise.then(function (result) {
730
736
  rawGltf = parameters.geometryData._generateGltf(
731
737
  result.meshData.nodesInScene,
732
738
  result.meshData.nodes,
@@ -746,7 +752,7 @@ I3SNode.prototype._createContentURL = function () {
746
752
  const glbDataBlob = new Blob([binaryGltfData], {
747
753
  type: "application/binary",
748
754
  });
749
- that._glbURL = URL.createObjectURL(glbDataBlob);
755
+ return URL.createObjectURL(glbDataBlob);
750
756
  });
751
757
  });
752
758
  };
@@ -757,50 +763,37 @@ Cesium3DTile.prototype._hookedRequestContent =
757
763
  Cesium3DTile.prototype.requestContent;
758
764
 
759
765
  /**
766
+ * Requests the tile's content.
767
+ * <p>
768
+ * The request may not be made if the Cesium Request Scheduler can't prioritize it.
769
+ * </p>
770
+ *
771
+ * @return {Promise<Cesium3DTileContent>|undefined} A promise that resolves when the request completes, or undefined if there is no request needed, or the request cannot be scheduled.
760
772
  * @private
761
773
  */
762
- Cesium3DTile.prototype._resolveHookedObject = function () {
763
- const that = this;
764
- // Keep a handle on the early promises
765
- // Call the real requestContent function
766
- this._hookedRequestContent();
767
-
768
- // Fulfill the promises
769
- this._contentReadyToProcessPromise.then(function () {
770
- that._contentReadyToProcessDefer.resolve();
771
- });
772
-
773
- this._contentReadyPromise.then(function (content) {
774
- that._isLoading = false;
775
- that._contentReadyDefer.resolve(content);
776
- });
777
- };
778
-
779
774
  Cesium3DTile.prototype.requestContent = function () {
780
- const that = this;
781
775
  if (!this.tileset._isI3STileSet) {
782
776
  return this._hookedRequestContent();
783
777
  }
784
778
 
785
779
  if (!this._isLoading) {
786
780
  this._isLoading = true;
787
-
788
- // Create early promises that will be fulfilled later
789
- this._contentReadyToProcessDefer = defer();
790
- this._contentReadyDefer = defer();
791
- this._contentReadyToProcessPromise = this._contentReadyToProcessDefer.promise;
792
- this._contentReadyPromise = this._contentReadyDefer.promise;
793
-
794
- this._i3sNode._createContentURL().then(function () {
795
- that._contentResource = new Resource({ url: that._i3sNode._glbURL });
796
- that._resolveHookedObject();
797
- });
798
-
799
- // Returns the number of requests
800
- return 0;
781
+ return this._i3sNode
782
+ ._createContentURL()
783
+ .then((url) => {
784
+ if (!defined(url)) {
785
+ this._isLoading = false;
786
+ return;
787
+ }
788
+
789
+ this._contentResource = new Resource({ url: url });
790
+ return this._hookedRequestContent();
791
+ })
792
+ .then((content) => {
793
+ this._isLoading = false;
794
+ return content;
795
+ });
801
796
  }
802
-
803
- return 1;
804
797
  };
805
798
 
806
799
  function bilinearInterpolate(tx, ty, h00, h10, h01, h11) {
@@ -34,7 +34,12 @@ function Imagery(imageryLayer, x, y, level, rectangle) {
34
34
  this.credits = undefined;
35
35
  this.referenceCount = 0;
36
36
 
37
- if (!defined(rectangle) && imageryLayer.imageryProvider.ready) {
37
+ // imageryProvider._ready is deprecated; This is here for backward compatibility
38
+ if (
39
+ !defined(rectangle) &&
40
+ imageryLayer.ready &&
41
+ imageryLayer.imageryProvider._ready
42
+ ) {
38
43
  const tilingScheme = imageryLayer.imageryProvider.tilingScheme;
39
44
  rectangle = tilingScheme.tileXYToRectangle(x, y, level);
40
45
  }