@cesium/engine 13.1.0 → 14.0.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 (139) hide show
  1. package/Build/Workers/{chunk-R2KGFZBA.js → chunk-3JBEPBPL.js} +13 -13
  2. package/Build/Workers/{chunk-NQDKNE7V.js → chunk-3LYROPON.js} +13 -13
  3. package/Build/Workers/{chunk-CNPP6TQ2.js → chunk-3PIZQT3I.js} +4 -4
  4. package/Build/Workers/{chunk-MGABCOOH.js → chunk-3QLSKXKF.js} +6 -6
  5. package/Build/Workers/{chunk-THDHWSEJ.js → chunk-4CHMVQTQ.js} +4 -4
  6. package/Build/Workers/{chunk-SAKQO5NX.js → chunk-5KWRW7YL.js} +2 -2
  7. package/Build/Workers/{chunk-EHGQQA7C.js → chunk-5S5OOA6U.js} +1 -1
  8. package/Build/Workers/{chunk-LFUFGHL3.js → chunk-77XPS7ZA.js} +10 -10
  9. package/Build/Workers/{chunk-GIOZHX7U.js → chunk-7EO56M5R.js} +2 -2
  10. package/Build/Workers/{chunk-PM76TX2X.js → chunk-7UHKH6M3.js} +6 -6
  11. package/Build/Workers/{chunk-GSLKQJM2.js → chunk-7ZB2RVIQ.js} +10 -10
  12. package/Build/Workers/{chunk-2SRHVCFD.js → chunk-B4GSRXE3.js} +6 -6
  13. package/Build/Workers/{chunk-J7BMSSY7.js → chunk-CI2HEJFC.js} +13 -13
  14. package/Build/Workers/{chunk-BMFWWTD7.js → chunk-D7ZBZPHV.js} +5 -5
  15. package/Build/Workers/{chunk-5JY4LYO3.js → chunk-DT5NFR5C.js} +7 -7
  16. package/Build/Workers/{chunk-AXYZUG4N.js → chunk-ED6GLQTK.js} +1 -1
  17. package/Build/Workers/{chunk-APCS5YJI.js → chunk-EWDGNOJE.js} +7 -7
  18. package/Build/Workers/{chunk-TOHDFUJM.js → chunk-F4CUH4MR.js} +4 -4
  19. package/Build/Workers/{chunk-EYZFEJX3.js → chunk-FFBJDW4A.js} +6 -6
  20. package/Build/Workers/{chunk-K6SQV4IS.js → chunk-FX4R4MTH.js} +6 -6
  21. package/Build/Workers/{chunk-B6IJY6AN.js → chunk-FYGLNDKG.js} +7 -7
  22. package/Build/Workers/{chunk-OARMSJUU.js → chunk-G3BVMPWG.js} +2 -2
  23. package/Build/Workers/{chunk-EJ5DT5BP.js → chunk-HEZHXDYB.js} +1 -1
  24. package/Build/Workers/{chunk-YVGU235V.js → chunk-HKHQ3EDR.js} +4 -4
  25. package/Build/Workers/{chunk-CBE4HRBH.js → chunk-HUFQVUMY.js} +7 -7
  26. package/Build/Workers/{chunk-S3UM4OKP.js → chunk-J7IH4EYI.js} +7 -7
  27. package/Build/Workers/{chunk-IP7F2MVW.js → chunk-JHBPC4LK.js} +7 -7
  28. package/Build/Workers/{chunk-ZWSWJYJP.js → chunk-JPDKYBLF.js} +13 -13
  29. package/Build/Workers/{chunk-5ICYLS6B.js → chunk-K4AH3TDT.js} +10 -10
  30. package/Build/Workers/{chunk-OGRXNUR2.js → chunk-KHWLAQVA.js} +1 -1
  31. package/Build/Workers/{chunk-KRVALCCI.js → chunk-KM6MITPF.js} +5 -5
  32. package/Build/Workers/{chunk-B34JXFHF.js → chunk-KSYBJA4M.js} +5 -5
  33. package/Build/Workers/{chunk-OZTFRHA2.js → chunk-LJBJM6VI.js} +6 -6
  34. package/Build/Workers/{chunk-M2AA2ARJ.js → chunk-LNSWJ43X.js} +11 -11
  35. package/Build/Workers/{chunk-PBJQFLKS.js → chunk-LOZ4NKY3.js} +11 -11
  36. package/Build/Workers/{chunk-54I6VSRP.js → chunk-LS3KVHYY.js} +6 -6
  37. package/Build/Workers/{chunk-3SCCWLZS.js → chunk-MVM4JV5U.js} +9 -9
  38. package/Build/Workers/{chunk-PTFIVVLX.js → chunk-N2XAJBC6.js} +12 -12
  39. package/Build/Workers/{chunk-FNCXBBCF.js → chunk-OMXHEJTK.js} +2 -2
  40. package/Build/Workers/{chunk-IXNXKVOB.js → chunk-PWF4EY5P.js} +4 -4
  41. package/Build/Workers/{chunk-DWIKWWEE.js → chunk-Q4ZVWJXX.js} +5 -5
  42. package/Build/Workers/{chunk-WUIDEXAN.js → chunk-SDIDRZDG.js} +7 -7
  43. package/Build/Workers/{chunk-UBAHTE4Q.js → chunk-TVL3F7IU.js} +1 -1
  44. package/Build/Workers/{chunk-KO232FLP.js → chunk-TY4DKOWR.js} +2 -2
  45. package/Build/Workers/{chunk-WE4KF4AM.js → chunk-VCNOFQYH.js} +9 -9
  46. package/Build/Workers/{chunk-2ONAV62A.js → chunk-WEHZP4SE.js} +7 -7
  47. package/Build/Workers/{chunk-HI73PIPQ.js → chunk-WVNLSTOF.js} +2 -2
  48. package/Build/Workers/{chunk-LQT2ZK7D.js → chunk-XK4OP6VA.js} +17 -17
  49. package/Build/Workers/{chunk-K62EHZFT.js → chunk-YJX7X577.js} +15 -15
  50. package/Build/Workers/{chunk-T34EOLFR.js → chunk-Z3QWTHI7.js} +14 -14
  51. package/Build/Workers/{chunk-WAJNX74N.js → chunk-ZGFIT57T.js} +17 -17
  52. package/Build/Workers/{chunk-5I3LPAS7.js → chunk-ZMNLEL6W.js} +5 -5
  53. package/Build/Workers/combineGeometry.js +22 -22
  54. package/Build/Workers/createBoxGeometry.js +16 -16
  55. package/Build/Workers/createBoxOutlineGeometry.js +14 -14
  56. package/Build/Workers/createCircleGeometry.js +24 -24
  57. package/Build/Workers/createCircleOutlineGeometry.js +17 -17
  58. package/Build/Workers/createCoplanarPolygonGeometry.js +31 -31
  59. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +29 -29
  60. package/Build/Workers/createCorridorGeometry.js +27 -27
  61. package/Build/Workers/createCorridorOutlineGeometry.js +26 -26
  62. package/Build/Workers/createCylinderGeometry.js +18 -18
  63. package/Build/Workers/createCylinderOutlineGeometry.js +16 -16
  64. package/Build/Workers/createEllipseGeometry.js +24 -24
  65. package/Build/Workers/createEllipseOutlineGeometry.js +17 -17
  66. package/Build/Workers/createEllipsoidGeometry.js +17 -17
  67. package/Build/Workers/createEllipsoidOutlineGeometry.js +16 -16
  68. package/Build/Workers/createFrustumGeometry.js +16 -16
  69. package/Build/Workers/createFrustumOutlineGeometry.js +16 -16
  70. package/Build/Workers/createGeometry.js +22 -22
  71. package/Build/Workers/createGroundPolylineGeometry.js +20 -20
  72. package/Build/Workers/createPlaneGeometry.js +14 -14
  73. package/Build/Workers/createPlaneOutlineGeometry.js +13 -13
  74. package/Build/Workers/createPolygonGeometry.js +30 -30
  75. package/Build/Workers/createPolygonOutlineGeometry.js +28 -28
  76. package/Build/Workers/createPolylineGeometry.js +23 -23
  77. package/Build/Workers/createPolylineVolumeGeometry.js +29 -29
  78. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +25 -25
  79. package/Build/Workers/createRectangleGeometry.js +25 -25
  80. package/Build/Workers/createRectangleOutlineGeometry.js +18 -18
  81. package/Build/Workers/createSimplePolylineGeometry.js +21 -21
  82. package/Build/Workers/createSphereGeometry.js +17 -17
  83. package/Build/Workers/createSphereOutlineGeometry.js +16 -16
  84. package/Build/Workers/createTaskProcessorWorker.js +3 -3
  85. package/Build/Workers/createVectorTileClampedPolylines.js +13 -13
  86. package/Build/Workers/createVectorTileGeometries.js +22 -22
  87. package/Build/Workers/createVectorTilePoints.js +12 -12
  88. package/Build/Workers/createVectorTilePolygons.js +20 -20
  89. package/Build/Workers/createVectorTilePolylines.js +13 -13
  90. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +20 -20
  91. package/Build/Workers/createVerticesFromHeightmap.js +20 -20
  92. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +17 -17
  93. package/Build/Workers/createWallGeometry.js +22 -22
  94. package/Build/Workers/createWallOutlineGeometry.js +21 -21
  95. package/Build/Workers/decodeDraco.js +15 -14
  96. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
  97. package/Build/Workers/decodeI3S.js +10 -10
  98. package/Build/Workers/transcodeKTX2.js +7 -7
  99. package/Build/Workers/transferTypedArrayTest.js +1 -1
  100. package/Build/Workers/upsampleQuantizedTerrainMesh.js +20 -20
  101. package/Source/Core/Color.js +3 -3
  102. package/Source/Core/Credit.js +3 -3
  103. package/Source/Core/DistanceDisplayCondition.js +3 -3
  104. package/Source/Core/Ion.js +1 -1
  105. package/Source/Core/OrientedBoundingBox.js +2 -2
  106. package/Source/Core/Spherical.js +3 -3
  107. package/Source/Core/writeTextToCanvas.js +0 -1
  108. package/Source/DataSources/BoundingSphereState.js +3 -3
  109. package/Source/DataSources/DataSourceClock.js +1 -1
  110. package/Source/DataSources/DataSourceDisplay.js +5 -2
  111. package/Source/Renderer/AutomaticUniforms.js +2 -2
  112. package/Source/Scene/ArcGisMapService.js +1 -1
  113. package/Source/Scene/Billboard.js +1 -1
  114. package/Source/Scene/Cesium3DTile.js +56 -28
  115. package/Source/Scene/Cesium3DTilesVoxelProvider.js +17 -0
  116. package/Source/Scene/ClippingPolygon.js +2 -2
  117. package/Source/Scene/GltfDracoLoader.js +45 -0
  118. package/Source/Scene/GltfIndexBufferLoader.js +5 -0
  119. package/Source/Scene/GltfLoader.js +17 -2
  120. package/Source/Scene/GltfVertexBufferLoader.js +13 -0
  121. package/Source/Scene/ITwinData.js +47 -1
  122. package/Source/Scene/ImageryLayer.js +1 -1
  123. package/Source/Scene/Label.js +1 -1
  124. package/Source/Scene/LabelCollection.js +0 -11
  125. package/Source/Scene/Multiple3DTileContent.js +21 -8
  126. package/Source/Scene/PointPrimitive.js +1 -1
  127. package/Source/Scene/ResourceCache.js +17 -1
  128. package/Source/Scene/VoxelPrimitive.js +124 -0
  129. package/Source/Scene/VoxelProvider.js +10 -0
  130. package/Source/Scene/VoxelTraversal.js +88 -12
  131. package/Source/Scene/WebMapTileServiceImageryProvider.js +2 -2
  132. package/Source/Scene/createGooglePhotorealistic3DTileset.js +5 -8
  133. package/Source/Shaders/PolylineCommon.glsl +1 -1
  134. package/Source/Shaders/PolylineCommon.js +1 -1
  135. package/Source/Widget/CesiumWidget.js +16 -10
  136. package/Source/Workers/decodeDraco.js +4 -4
  137. package/index.d.ts +152 -38
  138. package/index.js +299 -299
  139. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license
3
3
  * Cesium - https://github.com/CesiumGS/cesium
4
- * Version 1.125
4
+ * Version 1.126
5
5
  *
6
6
  * Copyright 2011-2022 Cesium Contributors
7
7
  *
@@ -25,27 +25,27 @@
25
25
 
26
26
  import {
27
27
  require_draco_decoder_nodejs
28
- } from "./chunk-GIOZHX7U.js";
28
+ } from "./chunk-7EO56M5R.js";
29
29
  import {
30
30
  createTaskProcessorWorker_default
31
- } from "./chunk-OARMSJUU.js";
31
+ } from "./chunk-G3BVMPWG.js";
32
32
  import {
33
33
  IndexDatatype_default
34
- } from "./chunk-BMFWWTD7.js";
34
+ } from "./chunk-D7ZBZPHV.js";
35
35
  import {
36
36
  ComponentDatatype_default
37
- } from "./chunk-B34JXFHF.js";
38
- import "./chunk-TOHDFUJM.js";
39
- import "./chunk-AXYZUG4N.js";
37
+ } from "./chunk-KSYBJA4M.js";
38
+ import "./chunk-F4CUH4MR.js";
39
+ import "./chunk-ED6GLQTK.js";
40
40
  import {
41
41
  RuntimeError_default
42
- } from "./chunk-SAKQO5NX.js";
43
- import "./chunk-UBAHTE4Q.js";
44
- import "./chunk-FNCXBBCF.js";
42
+ } from "./chunk-5KWRW7YL.js";
43
+ import "./chunk-TVL3F7IU.js";
44
+ import "./chunk-OMXHEJTK.js";
45
45
  import {
46
46
  __toESM,
47
47
  defined_default
48
- } from "./chunk-OGRXNUR2.js";
48
+ } from "./chunk-KHWLAQVA.js";
49
49
 
50
50
  // packages/engine/Source/Workers/decodeDraco.js
51
51
  var import_draco_decoder_nodejs = __toESM(require_draco_decoder_nodejs(), 1);
@@ -296,10 +296,11 @@ function decodePointCloud(parameters) {
296
296
  }
297
297
  function decodePrimitive(parameters) {
298
298
  const dracoDecoder = new draco.Decoder();
299
- const attributesToSkip = ["POSITION", "NORMAL", "COLOR", "TEX_COORD"];
300
299
  if (parameters.dequantizeInShader) {
301
- for (let i = 0; i < attributesToSkip.length; ++i) {
302
- dracoDecoder.SkipAttributeTransform(draco[attributesToSkip[i]]);
300
+ for (let i = 0; i < parameters.attributesToSkipTransform.length; ++i) {
301
+ dracoDecoder.SkipAttributeTransform(
302
+ draco[parameters.attributesToSkipTransform[i]]
303
+ );
303
304
  }
304
305
  }
305
306
  const bufferView = parameters.bufferView;
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license
3
3
  * Cesium - https://github.com/CesiumGS/cesium
4
- * Version 1.125
4
+ * Version 1.126
5
5
  *
6
6
  * Copyright 2011-2022 Cesium Contributors
7
7
  *
@@ -25,18 +25,18 @@
25
25
 
26
26
  import {
27
27
  createTaskProcessorWorker_default
28
- } from "./chunk-OARMSJUU.js";
28
+ } from "./chunk-G3BVMPWG.js";
29
29
  import {
30
30
  RuntimeError_default
31
- } from "./chunk-SAKQO5NX.js";
31
+ } from "./chunk-5KWRW7YL.js";
32
32
  import {
33
33
  Check_default
34
- } from "./chunk-FNCXBBCF.js";
34
+ } from "./chunk-OMXHEJTK.js";
35
35
  import {
36
36
  __commonJS,
37
37
  __toESM,
38
38
  defined_default
39
- } from "./chunk-OGRXNUR2.js";
39
+ } from "./chunk-KHWLAQVA.js";
40
40
 
41
41
  // node_modules/pako/lib/zlib/adler32.js
42
42
  var require_adler32 = __commonJS({
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license
3
3
  * Cesium - https://github.com/CesiumGS/cesium
4
- * Version 1.125
4
+ * Version 1.126
5
5
  *
6
6
  * Copyright 2011-2022 Cesium Contributors
7
7
  *
@@ -25,35 +25,35 @@
25
25
 
26
26
  import {
27
27
  require_draco_decoder_nodejs
28
- } from "./chunk-GIOZHX7U.js";
28
+ } from "./chunk-7EO56M5R.js";
29
29
  import {
30
30
  Color_default
31
- } from "./chunk-PM76TX2X.js";
31
+ } from "./chunk-7UHKH6M3.js";
32
32
  import {
33
33
  createTaskProcessorWorker_default
34
- } from "./chunk-OARMSJUU.js";
34
+ } from "./chunk-G3BVMPWG.js";
35
35
  import {
36
36
  WebMercatorProjection_default
37
- } from "./chunk-K6SQV4IS.js";
37
+ } from "./chunk-FX4R4MTH.js";
38
38
  import {
39
39
  Cartesian3_default,
40
40
  Cartographic_default,
41
41
  Ellipsoid_default,
42
42
  Matrix3_default
43
- } from "./chunk-KRVALCCI.js";
43
+ } from "./chunk-KM6MITPF.js";
44
44
  import {
45
45
  Math_default
46
- } from "./chunk-TOHDFUJM.js";
46
+ } from "./chunk-F4CUH4MR.js";
47
47
  import {
48
48
  defaultValue_default
49
- } from "./chunk-UBAHTE4Q.js";
49
+ } from "./chunk-TVL3F7IU.js";
50
50
  import {
51
51
  Check_default
52
- } from "./chunk-FNCXBBCF.js";
52
+ } from "./chunk-OMXHEJTK.js";
53
53
  import {
54
54
  __toESM,
55
55
  defined_default
56
- } from "./chunk-OGRXNUR2.js";
56
+ } from "./chunk-KHWLAQVA.js";
57
57
 
58
58
  // packages/engine/Source/Workers/decodeI3S.js
59
59
  var import_draco_decoder_nodejs = __toESM(require_draco_decoder_nodejs(), 1);
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license
3
3
  * Cesium - https://github.com/CesiumGS/cesium
4
- * Version 1.125
4
+ * Version 1.126
5
5
  *
6
6
  * Copyright 2011-2022 Cesium Contributors
7
7
  *
@@ -25,25 +25,25 @@
25
25
 
26
26
  import {
27
27
  createTaskProcessorWorker_default
28
- } from "./chunk-OARMSJUU.js";
28
+ } from "./chunk-G3BVMPWG.js";
29
29
  import {
30
30
  WebGLConstants_default
31
- } from "./chunk-AXYZUG4N.js";
31
+ } from "./chunk-ED6GLQTK.js";
32
32
  import {
33
33
  RuntimeError_default
34
- } from "./chunk-SAKQO5NX.js";
34
+ } from "./chunk-5KWRW7YL.js";
35
35
  import {
36
36
  defaultValue_default
37
- } from "./chunk-UBAHTE4Q.js";
37
+ } from "./chunk-TVL3F7IU.js";
38
38
  import {
39
39
  Check_default
40
- } from "./chunk-FNCXBBCF.js";
40
+ } from "./chunk-OMXHEJTK.js";
41
41
  import {
42
42
  __commonJS,
43
43
  __require,
44
44
  __toESM,
45
45
  defined_default
46
- } from "./chunk-OGRXNUR2.js";
46
+ } from "./chunk-KHWLAQVA.js";
47
47
 
48
48
  // packages/engine/Source/ThirdParty/Workers/basis_transcoder.js
49
49
  var require_basis_transcoder = __commonJS({
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license
3
3
  * Cesium - https://github.com/CesiumGS/cesium
4
- * Version 1.125
4
+ * Version 1.126
5
5
  *
6
6
  * Copyright 2011-2022 Cesium Contributors
7
7
  *
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license
3
3
  * Cesium - https://github.com/CesiumGS/cesium
4
- * Version 1.125
4
+ * Version 1.126
5
5
  *
6
6
  * Copyright 2011-2022 Cesium Contributors
7
7
  *
@@ -26,49 +26,49 @@
26
26
  import {
27
27
  EllipsoidalOccluder_default,
28
28
  TerrainEncoding_default
29
- } from "./chunk-LFUFGHL3.js";
29
+ } from "./chunk-77XPS7ZA.js";
30
30
  import {
31
31
  createTaskProcessorWorker_default
32
- } from "./chunk-OARMSJUU.js";
32
+ } from "./chunk-G3BVMPWG.js";
33
33
  import {
34
34
  OrientedBoundingBox_default
35
- } from "./chunk-GSLKQJM2.js";
35
+ } from "./chunk-7ZB2RVIQ.js";
36
36
  import {
37
37
  AttributeCompression_default
38
- } from "./chunk-IP7F2MVW.js";
39
- import "./chunk-WE4KF4AM.js";
40
- import "./chunk-2SRHVCFD.js";
41
- import "./chunk-APCS5YJI.js";
42
- import "./chunk-OZTFRHA2.js";
38
+ } from "./chunk-JHBPC4LK.js";
39
+ import "./chunk-VCNOFQYH.js";
40
+ import "./chunk-B4GSRXE3.js";
41
+ import "./chunk-EWDGNOJE.js";
42
+ import "./chunk-LJBJM6VI.js";
43
43
  import {
44
44
  IndexDatatype_default
45
- } from "./chunk-BMFWWTD7.js";
45
+ } from "./chunk-D7ZBZPHV.js";
46
46
  import {
47
47
  BoundingSphere_default
48
- } from "./chunk-B6IJY6AN.js";
48
+ } from "./chunk-FYGLNDKG.js";
49
49
  import {
50
50
  Rectangle_default
51
- } from "./chunk-2ONAV62A.js";
52
- import "./chunk-B34JXFHF.js";
51
+ } from "./chunk-WEHZP4SE.js";
52
+ import "./chunk-KSYBJA4M.js";
53
53
  import {
54
54
  Cartesian2_default,
55
55
  Cartesian3_default,
56
56
  Cartographic_default,
57
57
  Ellipsoid_default
58
- } from "./chunk-KRVALCCI.js";
58
+ } from "./chunk-KM6MITPF.js";
59
59
  import {
60
60
  Math_default
61
- } from "./chunk-TOHDFUJM.js";
62
- import "./chunk-AXYZUG4N.js";
63
- import "./chunk-SAKQO5NX.js";
64
- import "./chunk-UBAHTE4Q.js";
61
+ } from "./chunk-F4CUH4MR.js";
62
+ import "./chunk-ED6GLQTK.js";
63
+ import "./chunk-5KWRW7YL.js";
64
+ import "./chunk-TVL3F7IU.js";
65
65
  import {
66
66
  Check_default,
67
67
  DeveloperError_default
68
- } from "./chunk-FNCXBBCF.js";
68
+ } from "./chunk-OMXHEJTK.js";
69
69
  import {
70
70
  defined_default
71
- } from "./chunk-OGRXNUR2.js";
71
+ } from "./chunk-KHWLAQVA.js";
72
72
 
73
73
  // packages/engine/Source/Core/Intersections2D.js
74
74
  var Intersections2D = {};
@@ -536,8 +536,8 @@ Color.clone = function (color, result) {
536
536
  /**
537
537
  * Returns true if the first Color equals the second color.
538
538
  *
539
- * @param {Color} left The first Color to compare for equality.
540
- * @param {Color} right The second Color to compare for equality.
539
+ * @param {Color} [left] The first Color to compare for equality.
540
+ * @param {Color} [right] The second Color to compare for equality.
541
541
  * @returns {boolean} <code>true</code> if the Colors are equal; otherwise, <code>false</code>.
542
542
  */
543
543
  Color.equals = function (left, right) {
@@ -577,7 +577,7 @@ Color.prototype.clone = function (result) {
577
577
  /**
578
578
  * Returns true if this Color equals other.
579
579
  *
580
- * @param {Color} other The Color to compare for equality.
580
+ * @param {Color} [other] The Color to compare for equality.
581
581
  * @returns {boolean} <code>true</code> if the Colors are equal; otherwise, <code>false</code>.
582
582
  */
583
583
  Color.prototype.equals = function (other) {
@@ -115,8 +115,8 @@ Object.defineProperties(Credit.prototype, {
115
115
  /**
116
116
  * Returns true if the credits are equal
117
117
  *
118
- * @param {Credit} left The first credit
119
- * @param {Credit} right The second credit
118
+ * @param {Credit} [left] The first credit
119
+ * @param {Credit} [right] The second credit
120
120
  * @returns {boolean} <code>true</code> if left and right are equal, <code>false</code> otherwise.
121
121
  */
122
122
  Credit.equals = function (left, right) {
@@ -132,7 +132,7 @@ Credit.equals = function (left, right) {
132
132
  /**
133
133
  * Returns true if the credits are equal
134
134
  *
135
- * @param {Credit} credit The credit to compare to.
135
+ * @param {Credit} [credit] The credit to compare to.
136
136
  * @returns {boolean} <code>true</code> if left and right are equal, <code>false</code> otherwise.
137
137
  */
138
138
  Credit.prototype.equals = function (credit) {
@@ -115,8 +115,8 @@ DistanceDisplayCondition.unpack = function (array, startingIndex, result) {
115
115
  /**
116
116
  * Determines if two distance display conditions are equal.
117
117
  *
118
- * @param {DistanceDisplayCondition} left A distance display condition.
119
- * @param {DistanceDisplayCondition} right Another distance display condition.
118
+ * @param {DistanceDisplayCondition} [left] A distance display condition.
119
+ * @param {DistanceDisplayCondition} [right] Another distance display condition.
120
120
  * @return {boolean} Whether the two distance display conditions are equal.
121
121
  */
122
122
  DistanceDisplayCondition.equals = function (left, right) {
@@ -163,7 +163,7 @@ DistanceDisplayCondition.prototype.clone = function (result) {
163
163
  /**
164
164
  * Determines if this distance display condition is equal to another.
165
165
  *
166
- * @param {DistanceDisplayCondition} other Another distance display condition.
166
+ * @param {DistanceDisplayCondition} [other] Another distance display condition.
167
167
  * @return {boolean} Whether this distance display condition is equal to the other.
168
168
  */
169
169
  DistanceDisplayCondition.prototype.equals = function (other) {
@@ -4,7 +4,7 @@ import Resource from "./Resource.js";
4
4
 
5
5
  let defaultTokenCredit;
6
6
  const defaultAccessToken =
7
- "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIzYTBjYzY2NC0yMGEyLTQxZDYtYmI2MC1hMWE4ZTBlMGNlNjciLCJpZCI6MjU5LCJpYXQiOjE3MzU4NTEwMzF9.nshpaoC5qpRD4F5diwcjwJ3tddp1OjCSXoMrv37Ales";
7
+ "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIxNWFiZDMyYy03YWE1LTQ2MGQtOWI3YS00NDFiY2QzYTM5MGEiLCJpZCI6MjU5LCJpYXQiOjE3Mzg2MTU4NjJ9.WFKc8MVwKPU0S2pVgKGfqmcOd-6VBaMTZyH-9ZPhODQ";
8
8
  /**
9
9
  * Default settings for accessing the Cesium ion API.
10
10
  *
@@ -1236,8 +1236,8 @@ OrientedBoundingBox.prototype.isOccluded = function (occluder) {
1236
1236
  * Compares the provided OrientedBoundingBox componentwise and returns
1237
1237
  * <code>true</code> if they are equal, <code>false</code> otherwise.
1238
1238
  *
1239
- * @param {OrientedBoundingBox} left The first OrientedBoundingBox.
1240
- * @param {OrientedBoundingBox} right The second OrientedBoundingBox.
1239
+ * @param {OrientedBoundingBox} [left] The first OrientedBoundingBox.
1240
+ * @param {OrientedBoundingBox} [right] The second OrientedBoundingBox.
1241
1241
  * @returns {boolean} <code>true</code> if left and right are equal, <code>false</code> otherwise.
1242
1242
  */
1243
1243
  OrientedBoundingBox.equals = function (left, right) {
@@ -107,8 +107,8 @@ Spherical.normalize = function (spherical, result) {
107
107
  /**
108
108
  * Returns true if the first spherical is equal to the second spherical, false otherwise.
109
109
  *
110
- * @param {Spherical} left The first Spherical to be compared.
111
- * @param {Spherical} right The second Spherical to be compared.
110
+ * @param {Spherical} [left] The first Spherical to be compared.
111
+ * @param {Spherical} [right] The second Spherical to be compared.
112
112
  * @returns {boolean} true if the first spherical is equal to the second spherical, false otherwise.
113
113
  */
114
114
  Spherical.equals = function (left, right) {
@@ -145,7 +145,7 @@ Spherical.equalsEpsilon = function (left, right, epsilon) {
145
145
  /**
146
146
  * Returns true if this spherical is equal to the provided spherical, false otherwise.
147
147
  *
148
- * @param {Spherical} other The Spherical to be compared.
148
+ * @param {Spherical} [other] The Spherical to be compared.
149
149
  * @returns {boolean} true if this spherical is equal to the provided spherical, false otherwise.
150
150
  */
151
151
  Spherical.prototype.equals = function (other) {
@@ -104,7 +104,6 @@ let imageSmoothingEnabledName;
104
104
  * @param {string} text The text to write.
105
105
  * @param {object} [options] Object with the following properties:
106
106
  * @param {string} [options.font='10px sans-serif'] The CSS font to use.
107
- * @param {string} [options.textBaseline='bottom'] The baseline of the text.
108
107
  * @param {boolean} [options.fill=true] Whether to fill the text.
109
108
  * @param {boolean} [options.stroke=false] Whether to stroke the text.
110
109
  * @param {Color} [options.fillColor=Color.WHITE] The fill color.
@@ -3,7 +3,7 @@
3
3
  * @enum {number}
4
4
  * @private
5
5
  */
6
- const BoundingSphereState = {
6
+ const BoundingSphereState = Object.freeze({
7
7
  /**
8
8
  * The BoundingSphere has been computed.
9
9
  * @type BoundingSphereState
@@ -22,5 +22,5 @@ const BoundingSphereState = {
22
22
  * @constant
23
23
  */
24
24
  FAILED: 2,
25
- };
26
- export default Object.freeze(BoundingSphereState);
25
+ });
26
+ export default BoundingSphereState;
@@ -108,7 +108,7 @@ DataSourceClock.prototype.clone = function (result) {
108
108
  /**
109
109
  * Returns true if this DataSourceClock is equivalent to the other
110
110
  *
111
- * @param {DataSourceClock} other The other DataSourceClock to compare to.
111
+ * @param {DataSourceClock} [other] The other DataSourceClock to compare to.
112
112
  * @returns {boolean} <code>true</code> if the DataSourceClocks are equal; otherwise, <code>false</code>.
113
113
  */
114
114
  DataSourceClock.prototype.equals = function (other) {
@@ -330,7 +330,10 @@ DataSourceDisplay.prototype.update = function (time) {
330
330
  if (!this._ready && result) {
331
331
  this._scene.requestRender();
332
332
  }
333
- this._ready = result;
333
+
334
+ // once the DataSourceDisplay is ready it should stay ready to prevent
335
+ // entities from breaking updates when they become "un-ready"
336
+ this._ready = this._ready || result;
334
337
 
335
338
  return result;
336
339
  };
@@ -386,7 +389,7 @@ DataSourceDisplay.prototype.getBoundingSphere = function (
386
389
  Check.defined("result", result);
387
390
  //>>includeEnd('debug');
388
391
 
389
- if (!this._ready && !allowPartial) {
392
+ if (!this._ready) {
390
393
  return BoundingSphereState.PENDING;
391
394
  }
392
395
 
@@ -1488,11 +1488,11 @@ const AutomaticUniforms = {
1488
1488
  *
1489
1489
  * @example
1490
1490
  * // GLSL declaration
1491
- * uniform sampler2D czm_specularEnvironmentMaps;
1491
+ * uniform samplerCube czm_specularEnvironmentMaps;
1492
1492
  */
1493
1493
  czm_specularEnvironmentMaps: new AutomaticUniform({
1494
1494
  size: 1,
1495
- datatype: WebGLConstants.SAMPLER_2D,
1495
+ datatype: WebGLConstants.SAMPLER_CUBE,
1496
1496
  getValue: function (uniformState) {
1497
1497
  return uniformState.specularEnvironmentMaps;
1498
1498
  },
@@ -4,7 +4,7 @@ import Resource from "../Core/Resource.js";
4
4
 
5
5
  let defaultTokenCredit;
6
6
  const defaultAccessToken =
7
- "AAPTxy8BH1VEsoebNVZXo8HurEOF051kAEKlhkOhBEc9BmSFctdVnwhKUPPSRxMpNygUNlP8JmGGUdPJSkOUNGzOjDGJ6_IBw0ZIYb2CxiR6SbKR4hMj3np1HXa_Idxv_txLhu62WcUsFQSTBvq7ktym5DNKxqVmIzBnPljNsM8ff9hCKEXq0LTd8VzkHqjVA7-ig_wg7BqJGg7vUMgG1QseyUAjpmY2OaEv9rA8aeBjRrc.AT1_8nZ92i8c";
7
+ "AAPTxy8BH1VEsoebNVZXo8HurEOF051kAEKlhkOhBEc9BmQqcRjhPIHVEibuj83EgmzqMYMKlkDSXfDI_aVhgS53pQJj5gRndVO3co_eEvHb0zzYJdeBjDAW2_64bW-L6Me4YVq47D8LJswKSJVELWk4g6f3TB8wprt9QrTkB6DlBRIpV-G3oRFCspR8Muj3QGzKWMs-USdfAtfId0Yum55vSTjE2ssMyIRfiNOZaCEpVcs.AT1_aIa2UGdx";
8
8
  /**
9
9
  * Default options for accessing the ArcGIS image tile service.
10
10
  *
@@ -1562,7 +1562,7 @@ Billboard.getScreenSpaceBoundingBox = function (
1562
1562
  * Determines if this billboard equals another billboard. Billboards are equal if all their properties
1563
1563
  * are equal. Billboards in different collections can be equal.
1564
1564
  *
1565
- * @param {Billboard} other The billboard to compare for equality.
1565
+ * @param {Billboard} [other] The billboard to compare for equality.
1566
1566
  * @returns {boolean} <code>true</code> if the billboards are equal; otherwise, <code>false</code>.
1567
1567
  */
1568
1568
  Billboard.prototype.equals = function (other) {
@@ -319,6 +319,24 @@ function Cesium3DTile(tileset, baseResource, header, parent) {
319
319
  */
320
320
  this.hasImplicitContent = false;
321
321
 
322
+ /**
323
+ * Determines whether the tile has renderable content.
324
+ *
325
+ * The loading starts with the assumption that the tile does have
326
+ * renderable content, if the content is not empty.<br>
327
+ * <br>
328
+ * This turns <code>false</code> only when the tile content is loaded
329
+ * and turns out to be a single content that points to an external
330
+ * tileset or implicit content
331
+ * </p>
332
+ *
333
+ * @type {boolean}
334
+ * @readonly
335
+ *
336
+ * @private
337
+ */
338
+ this.hasRenderableContent = !hasEmptyContent;
339
+
322
340
  /**
323
341
  * When <code>true</code>, the tile contains content metadata from implicit tiling. This flag is set
324
342
  * for tiles transcoded by <code>Implicit3DTileContent</code>.
@@ -653,27 +671,6 @@ Object.defineProperties(Cesium3DTile.prototype, {
653
671
  },
654
672
  },
655
673
 
656
- /**
657
- * Determines if the tile's content is renderable. <code>false</code> if the
658
- * tile has empty content or if it points to an external tileset or implicit content
659
- *
660
- * @memberof Cesium3DTile.prototype
661
- *
662
- * @type {boolean}
663
- * @readonly
664
- *
665
- * @private
666
- */
667
- hasRenderableContent: {
668
- get: function () {
669
- return (
670
- !this.hasEmptyContent &&
671
- !this.hasTilesetContent &&
672
- !this.hasImplicitContent
673
- );
674
- },
675
- },
676
-
677
674
  /**
678
675
  * Determines if the tile has available content to render. <code>true</code> if the tile's
679
676
  * content is ready or if it has expired content that renders while new content loads; otherwise,
@@ -1346,10 +1343,12 @@ async function makeContent(tile, arrayBuffer) {
1346
1343
  preprocessed.contentType === Cesium3DTileContentType.IMPLICIT_SUBTREE_JSON
1347
1344
  ) {
1348
1345
  tile.hasImplicitContent = true;
1346
+ tile.hasRenderableContent = false;
1349
1347
  }
1350
1348
 
1351
1349
  if (preprocessed.contentType === Cesium3DTileContentType.EXTERNAL_TILESET) {
1352
1350
  tile.hasTilesetContent = true;
1351
+ tile.hasRenderableContent = false;
1353
1352
  }
1354
1353
 
1355
1354
  let content;
@@ -1729,28 +1728,57 @@ function createBoxFromTransformedRegion(
1729
1728
  }
1730
1729
 
1731
1730
  /**
1731
+ * Creates a TileBoundingVolume from the given region and transform
1732
+ * information.
1733
+ *
1734
+ * This may either be a TileBoundingRegion or a TileOrientedBoundingBox.
1735
+ *
1736
+ * If the given transform is the initial transform, then this will return
1737
+ * a TileBoundingRegion. This will either be the given result parameter,
1738
+ * or a new TileBoundingRegion, if the given result parameter was not
1739
+ * a TileBoundingRegion.
1740
+ *
1741
+ * If the given transform deviates from the initial transform, then this
1742
+ * will return a TileOrientedBoundingBox that was computed by applying
1743
+ * the given transform to the given region. This will either be the
1744
+ * given result parameter, or a new TileOrientedBoundingBox, if the given
1745
+ * result parameter was not a TileOrientedBoundingBox
1746
+ *
1732
1747
  * @private
1733
- * @param {Array} region An array of six numbers that define a bounding geographic region in EPSG:4979 coordinates with the order [west, south, east, north, minimum height, maximum height]
1734
- * @param {Matrix4} transform
1735
- * @param {Matrix4} initialTransform
1736
- * @param {TileBoundingVolume} [result]
1737
- * @returns {TileBoundingVolume}
1748
+ * @param {Array} region An array of six numbers that define a bounding
1749
+ * geographic region in EPSG:4979 coordinates with the order
1750
+ * [west, south, east, north, minimum height, maximum height]
1751
+ * @param {Matrix4} transform The current computedTransform of the tile,
1752
+ * which includes the parent transform (which, in turn, includes the
1753
+ * modelMatrix of the containing tileset)
1754
+ * @param {Matrix4} initialTransform The initial transform of the tile,
1755
+ * before any changes to the modelMatrix of the containing tileset
1756
+ * @param {TileBoundingVolume} [result] An optional result.
1757
+ * @returns {TileBoundingVolume} The resulting bounding volume
1738
1758
  */
1739
1759
  function createRegion(region, transform, initialTransform, result) {
1740
1760
  if (
1741
1761
  !Matrix4.equalsEpsilon(transform, initialTransform, CesiumMath.EPSILON8)
1742
1762
  ) {
1763
+ if (result instanceof TileOrientedBoundingBox) {
1764
+ return createBoxFromTransformedRegion(
1765
+ region,
1766
+ transform,
1767
+ initialTransform,
1768
+ result,
1769
+ );
1770
+ }
1743
1771
  return createBoxFromTransformedRegion(
1744
1772
  region,
1745
1773
  transform,
1746
1774
  initialTransform,
1747
- result,
1775
+ undefined,
1748
1776
  );
1749
1777
  }
1750
1778
 
1751
1779
  const rectangleRegion = Rectangle.unpack(region, 0, scratchRectangle);
1752
1780
 
1753
- if (defined(result)) {
1781
+ if (result instanceof TileBoundingRegion) {
1754
1782
  result.rectangle = Rectangle.clone(rectangleRegion, result.rectangle);
1755
1783
  result.minimumHeight = region[4];
1756
1784
  result.maximumHeight = region[5];
@@ -89,10 +89,26 @@ function Cesium3DTilesVoxelProvider(options) {
89
89
  /** @inheritdoc */
90
90
  this.maximumTileCount = undefined;
91
91
 
92
+ this._availableLevels = undefined;
92
93
  this._implicitTileset = undefined;
93
94
  this._subtreeCache = new ImplicitSubtreeCache();
94
95
  }
95
96
 
97
+ Object.defineProperties(Cesium3DTilesVoxelProvider.prototype, {
98
+ /**
99
+ * The number of levels of detail containing available tiles in the tileset.
100
+ *
101
+ * @memberof VoxelPrimitive.prototype
102
+ * @type {number|undefined}
103
+ * @readonly
104
+ */
105
+ availableLevels: {
106
+ get: function () {
107
+ return this._availableLevels;
108
+ },
109
+ },
110
+ });
111
+
96
112
  /**
97
113
  * Creates a {@link VoxelProvider} that fetches voxel data from a 3D Tiles tileset.
98
114
  *
@@ -161,6 +177,7 @@ Cesium3DTilesVoxelProvider.fromUrl = async function (url) {
161
177
  provider.paddingAfter = paddingAfter;
162
178
 
163
179
  provider._implicitTileset = implicitTileset;
180
+ provider._availableLevels = implicitTileset.availableLevels;
164
181
 
165
182
  ResourceCache.unload(schemaLoader);
166
183
 
@@ -117,8 +117,8 @@ ClippingPolygon.clone = function (polygon, result) {
117
117
  * Compares the provided ClippingPolygons and returns
118
118
  * <code>true</code> if they are equal, <code>false</code> otherwise.
119
119
  *
120
- * @param {Plane} left The first polygon.
121
- * @param {Plane} right The second polygon.
120
+ * @param {ClippingPolygon} left The first polygon.
121
+ * @param {ClippingPolygon} right The second polygon.
122
122
  * @returns {boolean} <code>true</code> if left and right are equal, <code>false</code> otherwise.
123
123
  */
124
124
  ClippingPolygon.equals = function (left, right) {