@cesium/engine 2.1.0 → 2.2.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 (193) hide show
  1. package/Build/Workers/{AxisAlignedBoundingBox-a6f9f0e5.js → AxisAlignedBoundingBox-379015ef.js} +1 -1
  2. package/Build/Workers/{BoundingRectangle-b0a68595.js → BoundingRectangle-57f2b24f.js} +1 -1
  3. package/Build/Workers/{BoxGeometry-baedd794.js → BoxGeometry-ecabfc78.js} +1 -1
  4. package/Build/Workers/{Color-f85df1be.js → Color-14d1a36d.js} +1 -1
  5. package/Build/Workers/{CoplanarPolygonGeometryLibrary-30516950.js → CoplanarPolygonGeometryLibrary-048c3c14.js} +1 -1
  6. package/Build/Workers/{CorridorGeometryLibrary-5d5d3b3a.js → CorridorGeometryLibrary-520c8619.js} +1 -1
  7. package/Build/Workers/{CylinderGeometry-d899ae26.js → CylinderGeometry-119068b8.js} +1 -1
  8. package/Build/Workers/{EllipseGeometry-a49f8449.js → EllipseGeometry-2dfc3523.js} +1 -1
  9. package/Build/Workers/{EllipseGeometryLibrary-cba7edde.js → EllipseGeometryLibrary-0a1e0170.js} +1 -1
  10. package/Build/Workers/{EllipseOutlineGeometry-8095c8cb.js → EllipseOutlineGeometry-c5251669.js} +1 -1
  11. package/Build/Workers/{EllipsoidGeometry-ed93f571.js → EllipsoidGeometry-d10a5221.js} +1 -1
  12. package/Build/Workers/{EllipsoidOutlineGeometry-e4854854.js → EllipsoidOutlineGeometry-7039a0ae.js} +1 -1
  13. package/Build/Workers/{EllipsoidTangentPlane-7ae1aa9a.js → EllipsoidTangentPlane-857186be.js} +1 -1
  14. package/Build/Workers/{FrustumGeometry-b62db3e3.js → FrustumGeometry-400fa1b7.js} +2 -2
  15. package/Build/Workers/{GeometryAttribute-780af4fa.js → GeometryAttribute-7a2de5c6.js} +1 -1
  16. package/Build/Workers/{GeometryPipeline-36b61c99.js → GeometryPipeline-916636fa.js} +1 -1
  17. package/Build/Workers/{IntersectionTests-e889fcf0.js → IntersectionTests-b4d02d4d.js} +1 -1
  18. package/Build/Workers/{OrientedBoundingBox-43478ac8.js → OrientedBoundingBox-96fe1752.js} +5 -3
  19. package/Build/Workers/{PolygonGeometryLibrary-38a98276.js → PolygonGeometryLibrary-931f1ec6.js} +1 -1
  20. package/Build/Workers/{PolygonPipeline-d31ff61c.js → PolygonPipeline-32fc92cc.js} +1 -1
  21. package/Build/Workers/{PolylinePipeline-30e4cec9.js → PolylinePipeline-6d5c63e5.js} +1 -1
  22. package/Build/Workers/{PolylineVolumeGeometryLibrary-90551d26.js → PolylineVolumeGeometryLibrary-f068c1fb.js} +1 -1
  23. package/Build/Workers/{PrimitivePipeline-558d9cb0.js → PrimitivePipeline-879f996a.js} +1 -1
  24. package/Build/Workers/{RectangleGeometryLibrary-815c68df.js → RectangleGeometryLibrary-2d6f36f3.js} +1 -1
  25. package/Build/Workers/{TerrainEncoding-341ead52.js → TerrainEncoding-82882059.js} +1 -1
  26. package/Build/Workers/{Transforms-9e9df299.js → Transforms-9052372a.js} +6 -5
  27. package/Build/Workers/{WallGeometryLibrary-ccf90976.js → WallGeometryLibrary-db7a64fb.js} +1 -1
  28. package/Build/Workers/cesiumWorkerBootstrapper.js +1 -1
  29. package/Build/Workers/combineGeometry.js +1 -1
  30. package/Build/Workers/createBoxGeometry.js +1 -1
  31. package/Build/Workers/createBoxOutlineGeometry.js +1 -1
  32. package/Build/Workers/createCircleGeometry.js +1 -1
  33. package/Build/Workers/createCircleOutlineGeometry.js +1 -1
  34. package/Build/Workers/createCoplanarPolygonGeometry.js +1 -1
  35. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +1 -1
  36. package/Build/Workers/createCorridorGeometry.js +1 -1
  37. package/Build/Workers/createCorridorOutlineGeometry.js +1 -1
  38. package/Build/Workers/createCylinderGeometry.js +1 -1
  39. package/Build/Workers/createCylinderOutlineGeometry.js +1 -1
  40. package/Build/Workers/createEllipseGeometry.js +1 -1
  41. package/Build/Workers/createEllipseOutlineGeometry.js +1 -1
  42. package/Build/Workers/createEllipsoidGeometry.js +1 -1
  43. package/Build/Workers/createEllipsoidOutlineGeometry.js +1 -1
  44. package/Build/Workers/createFrustumGeometry.js +1 -1
  45. package/Build/Workers/createFrustumOutlineGeometry.js +1 -1
  46. package/Build/Workers/createGeometry.js +1 -1
  47. package/Build/Workers/createGroundPolylineGeometry.js +1 -1
  48. package/Build/Workers/createPlaneGeometry.js +1 -1
  49. package/Build/Workers/createPlaneOutlineGeometry.js +1 -1
  50. package/Build/Workers/createPolygonGeometry.js +1 -1
  51. package/Build/Workers/createPolygonOutlineGeometry.js +1 -1
  52. package/Build/Workers/createPolylineGeometry.js +1 -1
  53. package/Build/Workers/createPolylineVolumeGeometry.js +1 -1
  54. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +1 -1
  55. package/Build/Workers/createRectangleGeometry.js +1 -1
  56. package/Build/Workers/createRectangleOutlineGeometry.js +1 -1
  57. package/Build/Workers/createSimplePolylineGeometry.js +1 -1
  58. package/Build/Workers/createSphereGeometry.js +1 -1
  59. package/Build/Workers/createSphereOutlineGeometry.js +1 -1
  60. package/Build/Workers/createVectorTileGeometries.js +1 -1
  61. package/Build/Workers/createVectorTilePolygons.js +1 -1
  62. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +1 -1
  63. package/Build/Workers/createVerticesFromHeightmap.js +1 -1
  64. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +10 -15
  65. package/Build/Workers/createWallGeometry.js +1 -1
  66. package/Build/Workers/createWallOutlineGeometry.js +1 -1
  67. package/Build/Workers/package.js +1 -1
  68. package/Build/Workers/transferTypedArrayTest.js +1 -1
  69. package/Build/Workers/upsampleQuantizedTerrainMesh.js +1 -1
  70. package/Source/Core/ArcGISTiledElevationTerrainProvider.js +291 -191
  71. package/Source/Core/CesiumTerrainProvider.js +571 -434
  72. package/Source/Core/CustomHeightmapTerrainProvider.js +12 -0
  73. package/Source/Core/EllipsoidTerrainProvider.js +17 -10
  74. package/Source/Core/FrustumGeometry.js +1 -1
  75. package/Source/Core/GoogleEarthEnterpriseMetadata.js +86 -34
  76. package/Source/Core/GoogleEarthEnterpriseTerrainProvider.js +119 -82
  77. package/Source/Core/Ion.js +1 -1
  78. package/Source/Core/IonResource.js +14 -3
  79. package/Source/Core/OrientedBoundingBox.js +4 -2
  80. package/Source/Core/RequestScheduler.js +1 -1
  81. package/Source/Core/Resource.js +2 -2
  82. package/Source/Core/TerrainProvider.js +9 -14
  83. package/Source/Core/TileProviderError.js +8 -8
  84. package/Source/Core/VRTheWorldTerrainProvider.js +193 -124
  85. package/Source/Core/buildModuleUrl.js +4 -3
  86. package/Source/Core/createWorldTerrain.js +20 -2
  87. package/Source/Core/createWorldTerrainAsync.js +48 -0
  88. package/Source/Core/sampleTerrain.js +9 -10
  89. package/Source/Core/sampleTerrainMostDetailed.js +66 -72
  90. package/Source/DataSources/Cesium3DTilesetVisualizer.js +37 -26
  91. package/Source/DataSources/Entity.js +6 -1
  92. package/Source/DataSources/ModelVisualizer.js +99 -31
  93. package/Source/DataSources/PolygonGraphics.js +1 -1
  94. package/Source/Scene/ArcGisMapServerImageryProvider.js +552 -376
  95. package/Source/Scene/BingMapsImageryProvider.js +511 -305
  96. package/Source/Scene/BufferLoader.js +29 -34
  97. package/Source/Scene/Cesium3DTile.js +388 -251
  98. package/Source/Scene/Cesium3DTileBatchTable.js +2 -2
  99. package/Source/Scene/Cesium3DTileContent.js +16 -0
  100. package/Source/Scene/Cesium3DTileContentFactory.js +4 -4
  101. package/Source/Scene/Cesium3DTilePass.js +8 -11
  102. package/Source/Scene/Cesium3DTileStyleEngine.js +1 -1
  103. package/Source/Scene/Cesium3DTilesVoxelProvider.js +225 -117
  104. package/Source/Scene/Cesium3DTileset.js +755 -481
  105. package/Source/Scene/Cesium3DTilesetBaseTraversal.js +301 -0
  106. package/Source/Scene/Cesium3DTilesetMostDetailedTraversal.js +33 -46
  107. package/Source/Scene/Cesium3DTilesetSkipTraversal.js +421 -0
  108. package/Source/Scene/Cesium3DTilesetTraversal.js +219 -671
  109. package/Source/Scene/ClassificationPrimitive.js +7 -0
  110. package/Source/Scene/Composite3DTileContent.js +69 -26
  111. package/Source/Scene/CreditDisplay.js +20 -4
  112. package/Source/Scene/DepthPlane.js +1 -1
  113. package/Source/Scene/Empty3DTileContent.js +31 -1
  114. package/Source/Scene/Geometry3DTileContent.js +47 -7
  115. package/Source/Scene/Globe.js +5 -1
  116. package/Source/Scene/GlobeSurfaceTile.js +2 -1
  117. package/Source/Scene/GlobeSurfaceTileProvider.js +50 -27
  118. package/Source/Scene/GltfBufferViewLoader.js +47 -91
  119. package/Source/Scene/GltfDracoLoader.js +110 -112
  120. package/Source/Scene/GltfImageLoader.js +71 -78
  121. package/Source/Scene/GltfIndexBufferLoader.js +108 -121
  122. package/Source/Scene/GltfJsonLoader.js +75 -74
  123. package/Source/Scene/GltfLoader.js +392 -280
  124. package/Source/Scene/GltfStructuralMetadataLoader.js +109 -110
  125. package/Source/Scene/GltfTextureLoader.js +97 -96
  126. package/Source/Scene/GltfVertexBufferLoader.js +128 -133
  127. package/Source/Scene/GoogleEarthEnterpriseImageryProvider.js +353 -225
  128. package/Source/Scene/GoogleEarthEnterpriseMapsProvider.js +491 -331
  129. package/Source/Scene/GridImageryProvider.js +267 -104
  130. package/Source/Scene/GroundPolylinePrimitive.js +12 -1
  131. package/Source/Scene/GroundPrimitive.js +8 -1
  132. package/Source/Scene/I3SDataProvider.js +214 -113
  133. package/Source/Scene/I3SFeature.js +7 -6
  134. package/Source/Scene/I3SLayer.js +26 -37
  135. package/Source/Scene/I3SNode.js +59 -66
  136. package/Source/Scene/Imagery.js +6 -1
  137. package/Source/Scene/ImageryLayer.js +299 -48
  138. package/Source/Scene/ImageryLayerCollection.js +26 -0
  139. package/Source/Scene/ImageryProvider.js +129 -111
  140. package/Source/Scene/Implicit3DTileContent.js +72 -23
  141. package/Source/Scene/ImplicitSubtree.js +66 -45
  142. package/Source/Scene/IonImageryProvider.js +471 -264
  143. package/Source/Scene/MapboxImageryProvider.js +272 -112
  144. package/Source/Scene/MapboxStyleImageryProvider.js +270 -111
  145. package/Source/Scene/MetadataSchemaLoader.js +26 -36
  146. package/Source/Scene/Model/B3dmLoader.js +42 -46
  147. package/Source/Scene/Model/GeoJsonLoader.js +8 -32
  148. package/Source/Scene/Model/I3dmLoader.js +48 -74
  149. package/Source/Scene/Model/Model.js +470 -132
  150. package/Source/Scene/Model/Model3DTileContent.js +83 -31
  151. package/Source/Scene/Model/ModelAnimationCollection.js +3 -3
  152. package/Source/Scene/Model/ModelDrawCommand.js +15 -26
  153. package/Source/Scene/Model/ModelUtility.js +16 -16
  154. package/Source/Scene/Model/PntsLoader.js +27 -32
  155. package/Source/Scene/Multiple3DTileContent.js +134 -115
  156. package/Source/Scene/PointCloud.js +11 -19
  157. package/Source/Scene/Primitive.js +20 -0
  158. package/Source/Scene/QuadtreePrimitive.js +2 -0
  159. package/Source/Scene/QuadtreeTileProvider.js +4 -8
  160. package/Source/Scene/ResourceCache.js +47 -105
  161. package/Source/Scene/ResourceCacheStatistics.js +24 -58
  162. package/Source/Scene/ResourceLoader.js +5 -17
  163. package/Source/Scene/ResourceLoaderState.js +12 -4
  164. package/Source/Scene/Scene.js +65 -0
  165. package/Source/Scene/ScreenSpaceCameraController.js +1 -1
  166. package/Source/Scene/SingleTileImageryProvider.js +382 -209
  167. package/Source/Scene/Terrain.js +196 -0
  168. package/Source/Scene/TileCoordinatesImageryProvider.js +267 -104
  169. package/Source/Scene/TileMapServiceImageryProvider.js +177 -85
  170. package/Source/Scene/Tileset3DTileContent.js +47 -5
  171. package/Source/Scene/TimeDynamicPointCloud.js +15 -2
  172. package/Source/Scene/UrlTemplateImageryProvider.js +343 -215
  173. package/Source/Scene/Vector3DTileClampedPolylines.js +96 -84
  174. package/Source/Scene/Vector3DTileContent.js +47 -22
  175. package/Source/Scene/Vector3DTileGeometry.js +57 -52
  176. package/Source/Scene/Vector3DTilePoints.js +72 -68
  177. package/Source/Scene/Vector3DTilePolygons.js +118 -117
  178. package/Source/Scene/Vector3DTilePolylines.js +86 -82
  179. package/Source/Scene/Vector3DTilePrimitive.js +0 -1
  180. package/Source/Scene/VoxelContent.js +61 -63
  181. package/Source/Scene/VoxelPrimitive.js +39 -91
  182. package/Source/Scene/VoxelProvider.js +2 -2
  183. package/Source/Scene/WebMapServiceImageryProvider.js +272 -111
  184. package/Source/Scene/WebMapTileServiceImageryProvider.js +270 -107
  185. package/Source/Scene/computeFlyToLocationForRectangle.js +33 -37
  186. package/Source/Scene/createOsmBuildings.js +6 -0
  187. package/Source/Scene/createOsmBuildingsAsync.js +82 -0
  188. package/Source/Scene/createWorldImagery.js +14 -5
  189. package/Source/Scene/createWorldImageryAsync.js +39 -0
  190. package/Source/Widget/CesiumWidget.js +55 -27
  191. package/index.d.ts +2158 -1395
  192. package/index.js +58 -51
  193. package/package.json +1 -1
@@ -22,34 +22,24 @@ import ResourceCache from "./ResourceCache.js";
22
22
  * Subtrees also handle content metadata and metadata about the subtree itself.
23
23
  * </p>
24
24
  *
25
+ * This object is normally not instantiated directly, use {@link ImplicitSubtree.fromSubtreeJson}.
26
+ *
25
27
  * @see {@link https://github.com/CesiumGS/3d-tiles/tree/main/extensions/3DTILES_metadata#implicit-tile-properties|Implicit Tile Properties in the 3DTILES_metadata specification}
28
+ * @see ImplicitSubtree.fromSubtreeJson
26
29
  *
27
30
  * @alias ImplicitSubtree
28
31
  * @constructor
29
32
  *
30
33
  * @param {Resource} resource The resource for this subtree. This is used for fetching external buffers as needed.
31
- * @param {object} [json] The JSON object for this subtree. Mutually exclusive with subtreeView.
32
- * @param {Uint8Array} [subtreeView] The contents of a subtree binary in a Uint8Array. Mutually exclusive with json.
33
34
  * @param {ImplicitTileset} implicitTileset The implicit tileset. This includes information about the size of subtrees
34
35
  * @param {ImplicitTileCoordinates} implicitCoordinates The coordinates of the subtree's root tile.
35
36
  *
36
- * @exception {DeveloperError} One of json and subtreeView must be defined.
37
- *
38
37
  * @private
39
38
  * @experimental This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.
40
39
  */
41
- function ImplicitSubtree(
42
- resource,
43
- json,
44
- subtreeView,
45
- implicitTileset,
46
- implicitCoordinates
47
- ) {
40
+ function ImplicitSubtree(resource, implicitTileset, implicitCoordinates) {
48
41
  //>>includeStart('debug', pragmas.debug);
49
42
  Check.typeOf.object("resource", resource);
50
- if (defined(json) === defined(subtreeView)) {
51
- throw new DeveloperError("One of json and subtreeView must be defined.");
52
- }
53
43
  Check.typeOf.object("implicitTileset", implicitTileset);
54
44
  Check.typeOf.object("implicitCoordinates", implicitCoordinates);
55
45
  //>>includeEnd('debug');
@@ -77,21 +67,21 @@ function ImplicitSubtree(
77
67
  this._tileJumpBuffer = undefined;
78
68
  this._contentJumpBuffers = [];
79
69
 
80
- this._readyPromise = initialize(this, json, subtreeView, implicitTileset);
70
+ this._ready = false;
81
71
  }
82
72
 
83
73
  Object.defineProperties(ImplicitSubtree.prototype, {
84
74
  /**
85
- * A promise that resolves once all necessary availability buffers
75
+ * Returns true once all necessary availability buffers
86
76
  * are loaded.
87
77
  *
88
- * @type {Promise}
78
+ * @type {boolean}
89
79
  * @readonly
90
80
  * @private
91
81
  */
92
- readyPromise: {
82
+ ready: {
93
83
  get: function () {
94
- return this._readyPromise;
84
+ return this._ready;
95
85
  },
96
86
  },
97
87
 
@@ -309,16 +299,40 @@ ImplicitSubtree.prototype.getParentMortonIndex = function (mortonIndex) {
309
299
 
310
300
  /**
311
301
  * Parse all relevant information out of the subtree. This fetches any
312
- * external buffers that are used by the implicit tileset. When finished,
313
- * it resolves/rejects subtree.readyPromise.
302
+ * external buffers that are used by the implicit tileset.
314
303
  *
315
- * @param {ImplicitSubtree} subtree The subtree
304
+ * @param {Resource} resource The resource for this subtree. This is used for fetching external buffers as needed.
316
305
  * @param {object} [json] The JSON object for this subtree. If parsing from a binary subtree file, this will be undefined.
317
306
  * @param {Uint8Array} [subtreeView] The contents of the subtree binary
318
307
  * @param {ImplicitTileset} implicitTileset The implicit tileset this subtree belongs to.
308
+ * @param {ImplicitTileCoordinates} implicitCoordinates The coordinates of the subtree's root tile.
309
+ * @return {Promise<ImplicitSubtree>} The created subtree
319
310
  * @private
311
+ *
312
+ * @exception {DeveloperError} One of json and subtreeView must be defined.
320
313
  */
321
- function initialize(subtree, json, subtreeView, implicitTileset) {
314
+ ImplicitSubtree.fromSubtreeJson = async function (
315
+ resource,
316
+ json,
317
+ subtreeView,
318
+ implicitTileset,
319
+ implicitCoordinates
320
+ ) {
321
+ //>>includeStart('debug', pragmas.debug);
322
+ Check.typeOf.object("resource", resource);
323
+ if (defined(json) === defined(subtreeView)) {
324
+ throw new DeveloperError("One of json and subtreeView must be defined.");
325
+ }
326
+ Check.typeOf.object("implicitTileset", implicitTileset);
327
+ Check.typeOf.object("implicitCoordinates", implicitCoordinates);
328
+ //>>includeEnd('debug');
329
+
330
+ const subtree = new ImplicitSubtree(
331
+ resource,
332
+ implicitTileset,
333
+ implicitCoordinates
334
+ );
335
+
322
336
  let chunks;
323
337
  if (defined(json)) {
324
338
  chunks = {
@@ -409,26 +423,25 @@ function initialize(subtree, json, subtreeView, implicitTileset) {
409
423
  markActiveMetadataBufferViews(contentPropertyTableJson, bufferViewHeaders);
410
424
  }
411
425
 
412
- return requestActiveBuffers(subtree, bufferHeaders, chunks.binary).then(
413
- function (buffersU8) {
414
- const bufferViewsU8 = parseActiveBufferViews(
415
- bufferViewHeaders,
416
- buffersU8
417
- );
418
- parseAvailability(subtree, subtreeJson, implicitTileset, bufferViewsU8);
426
+ const buffersU8 = await requestActiveBuffers(
427
+ subtree,
428
+ bufferHeaders,
429
+ chunks.binary
430
+ );
431
+ const bufferViewsU8 = parseActiveBufferViews(bufferViewHeaders, buffersU8);
432
+ parseAvailability(subtree, subtreeJson, implicitTileset, bufferViewsU8);
419
433
 
420
- if (defined(tilePropertyTableJson)) {
421
- parseTileMetadataTable(subtree, implicitTileset, bufferViewsU8);
422
- makeTileJumpBuffer(subtree);
423
- }
434
+ if (defined(tilePropertyTableJson)) {
435
+ parseTileMetadataTable(subtree, implicitTileset, bufferViewsU8);
436
+ makeTileJumpBuffer(subtree);
437
+ }
424
438
 
425
- parseContentMetadataTables(subtree, implicitTileset, bufferViewsU8);
426
- makeContentJumpBuffers(subtree);
439
+ parseContentMetadataTables(subtree, implicitTileset, bufferViewsU8);
440
+ makeContentJumpBuffers(subtree);
427
441
 
428
- return subtree;
429
- }
430
- );
431
- }
442
+ subtree._ready = true;
443
+ return subtree;
444
+ };
432
445
 
433
446
  /**
434
447
  * A helper object for storing the two parts of the subtree binary
@@ -708,20 +721,28 @@ function requestActiveBuffers(subtree, bufferHeaders, internalBuffer) {
708
721
  });
709
722
  }
710
723
 
711
- function requestExternalBuffer(subtree, bufferHeader) {
724
+ async function requestExternalBuffer(subtree, bufferHeader) {
712
725
  const baseResource = subtree._resource;
713
726
  const bufferResource = baseResource.getDerivedResource({
714
727
  url: bufferHeader.uri,
715
728
  });
716
729
 
717
- const bufferLoader = ResourceCache.loadExternalBuffer({
730
+ const bufferLoader = ResourceCache.getExternalBufferLoader({
718
731
  resource: bufferResource,
719
732
  });
720
733
  subtree._bufferLoader = bufferLoader;
721
734
 
722
- return bufferLoader.promise.then(function (bufferLoader) {
723
- return bufferLoader.typedArray;
724
- });
735
+ try {
736
+ await bufferLoader.load();
737
+ } catch (error) {
738
+ if (bufferLoader.isDestroyed()) {
739
+ return;
740
+ }
741
+
742
+ throw error;
743
+ }
744
+
745
+ return bufferLoader.typedArray;
725
746
  }
726
747
 
727
748
  /**