@cesium/engine 2.0.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 (828) hide show
  1. package/Build/Workers/{ArcType-ce2e50ab.js → ArcType-2d9abbbc.js} +4 -4
  2. package/Build/Workers/{AttributeCompression-b646d393.js → AttributeCompression-8a5a065e.js} +24 -24
  3. package/Build/Workers/{AxisAlignedBoundingBox-47525601.js → AxisAlignedBoundingBox-379015ef.js} +3 -3
  4. package/Build/Workers/{BoundingRectangle-93b263ac.js → BoundingRectangle-57f2b24f.js} +18 -18
  5. package/Build/Workers/{BoxGeometry-8c4b4125.js → BoxGeometry-ecabfc78.js} +9 -9
  6. package/Build/Workers/{Check-666ab1a0.js → Check-6ede7e26.js} +22 -22
  7. package/Build/Workers/{Color-52c60ed7.js → Color-14d1a36d.js} +59 -59
  8. package/Build/Workers/{ComponentDatatype-f7b11d02.js → ComponentDatatype-cf1fa08e.js} +16 -16
  9. package/Build/Workers/{CoplanarPolygonGeometryLibrary-33c4c1f8.js → CoplanarPolygonGeometryLibrary-048c3c14.js} +1 -1
  10. package/Build/Workers/{CorridorGeometryLibrary-5039cd8e.js → CorridorGeometryLibrary-520c8619.js} +1 -1
  11. package/Build/Workers/{CylinderGeometry-3ac44974.js → CylinderGeometry-119068b8.js} +12 -12
  12. package/Build/Workers/{CylinderGeometryLibrary-372c07d8.js → CylinderGeometryLibrary-135b0858.js} +1 -1
  13. package/Build/Workers/{EllipseGeometry-a9c9b3be.js → EllipseGeometry-2dfc3523.js} +20 -20
  14. package/Build/Workers/{EllipseGeometryLibrary-855d4681.js → EllipseGeometryLibrary-0a1e0170.js} +1 -1
  15. package/Build/Workers/{EllipseOutlineGeometry-017a5929.js → EllipseOutlineGeometry-c5251669.js} +15 -15
  16. package/Build/Workers/{EllipsoidGeodesic-98c62a56.js → EllipsoidGeodesic-dcff5cbd.js} +6 -6
  17. package/Build/Workers/{EllipsoidGeometry-826e7bce.js → EllipsoidGeometry-d10a5221.js} +14 -14
  18. package/Build/Workers/{EllipsoidOutlineGeometry-784dcdb5.js → EllipsoidOutlineGeometry-7039a0ae.js} +15 -15
  19. package/Build/Workers/{EllipsoidRhumbLine-19756602.js → EllipsoidRhumbLine-b672d507.js} +9 -9
  20. package/Build/Workers/{EllipsoidTangentPlane-ed9443a1.js → EllipsoidTangentPlane-857186be.js} +1 -1
  21. package/Build/Workers/{EncodedCartesian3-81f70735.js → EncodedCartesian3-e8bbca36.js} +6 -6
  22. package/Build/Workers/{FrustumGeometry-9f1ee4d8.js → FrustumGeometry-400fa1b7.js} +109 -109
  23. package/Build/Workers/{GeometryAttribute-334718f8.js → GeometryAttribute-7a2de5c6.js} +20 -20
  24. package/Build/Workers/{GeometryAttributes-f06a2792.js → GeometryAttributes-ad136444.js} +1 -1
  25. package/Build/Workers/{GeometryInstance-451dc1cd.js → GeometryInstance-3fb607b7.js} +6 -6
  26. package/Build/Workers/{GeometryPipeline-8fb0db69.js → GeometryPipeline-916636fa.js} +22 -22
  27. package/Build/Workers/{IndexDatatype-a55ceaa1.js → IndexDatatype-b8f3e09d.js} +13 -13
  28. package/Build/Workers/{IntersectionTests-27d49265.js → IntersectionTests-b4d02d4d.js} +37 -37
  29. package/Build/Workers/{Math-2dbd6b93.js → Math-dad82b4d.js} +137 -137
  30. package/Build/Workers/{Matrix2-13178034.js → Matrix2-1e403d0e.js} +256 -256
  31. package/Build/Workers/{Matrix3-315394f6.js → Matrix3-fa806b97.js} +150 -150
  32. package/Build/Workers/{OrientedBoundingBox-79ee7cbb.js → OrientedBoundingBox-96fe1752.js} +19 -17
  33. package/Build/Workers/{Plane-900aa728.js → Plane-c27e1ac6.js} +5 -5
  34. package/Build/Workers/{PolygonGeometryLibrary-6b5a29e9.js → PolygonGeometryLibrary-931f1ec6.js} +6 -6
  35. package/Build/Workers/{PolygonPipeline-21668b3f.js → PolygonPipeline-32fc92cc.js} +14 -14
  36. package/Build/Workers/{PolylinePipeline-5e2e1b21.js → PolylinePipeline-6d5c63e5.js} +16 -16
  37. package/Build/Workers/{PolylineVolumeGeometryLibrary-97f0b94e.js → PolylineVolumeGeometryLibrary-f068c1fb.js} +7 -7
  38. package/Build/Workers/{PrimitivePipeline-5640850a.js → PrimitivePipeline-879f996a.js} +6 -6
  39. package/Build/Workers/{RectangleGeometryLibrary-d5457f7b.js → RectangleGeometryLibrary-2d6f36f3.js} +1 -1
  40. package/Build/Workers/{RuntimeError-06c93819.js → RuntimeError-ef395448.js} +5 -5
  41. package/Build/Workers/{TerrainEncoding-bfdf2021.js → TerrainEncoding-82882059.js} +30 -30
  42. package/Build/Workers/{Transforms-a05e5e6e.js → Transforms-9052372a.js} +531 -530
  43. package/Build/Workers/{VertexFormat-6b480673.js → VertexFormat-030f11ff.js} +14 -14
  44. package/Build/Workers/{WallGeometryLibrary-6db0ebb6.js → WallGeometryLibrary-db7a64fb.js} +1 -1
  45. package/Build/Workers/{WebGLConstants-a8cc3e8c.js → WebGLConstants-0b1ce7ba.js} +1 -1
  46. package/Build/Workers/{WebMercatorProjection-13a90d41.js → WebMercatorProjection-76a3fcc0.js} +6 -6
  47. package/Build/Workers/{arrayRemoveDuplicates-c2038105.js → arrayRemoveDuplicates-fac118a8.js} +5 -5
  48. package/Build/Workers/cesiumWorkerBootstrapper.js +5 -5
  49. package/Build/Workers/{combine-ca22a614.js → combine-d9581036.js} +5 -5
  50. package/Build/Workers/combineGeometry.js +1 -1
  51. package/Build/Workers/createBoxGeometry.js +1 -1
  52. package/Build/Workers/createBoxOutlineGeometry.js +9 -9
  53. package/Build/Workers/createCircleGeometry.js +13 -13
  54. package/Build/Workers/createCircleOutlineGeometry.js +13 -13
  55. package/Build/Workers/createCoplanarPolygonGeometry.js +11 -11
  56. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +9 -9
  57. package/Build/Workers/createCorridorGeometry.js +14 -14
  58. package/Build/Workers/createCorridorOutlineGeometry.js +12 -12
  59. package/Build/Workers/createCylinderGeometry.js +1 -1
  60. package/Build/Workers/createCylinderOutlineGeometry.js +13 -13
  61. package/Build/Workers/createEllipseGeometry.js +1 -1
  62. package/Build/Workers/createEllipseOutlineGeometry.js +1 -1
  63. package/Build/Workers/createEllipsoidGeometry.js +1 -1
  64. package/Build/Workers/createEllipsoidOutlineGeometry.js +1 -1
  65. package/Build/Workers/createFrustumGeometry.js +1 -1
  66. package/Build/Workers/createFrustumOutlineGeometry.js +8 -8
  67. package/Build/Workers/createGeometry.js +1 -1
  68. package/Build/Workers/createGroundPolylineGeometry.js +33 -33
  69. package/Build/Workers/createPlaneGeometry.js +8 -8
  70. package/Build/Workers/createPlaneOutlineGeometry.js +6 -6
  71. package/Build/Workers/createPolygonGeometry.js +25 -25
  72. package/Build/Workers/createPolygonOutlineGeometry.js +17 -17
  73. package/Build/Workers/createPolylineGeometry.js +11 -11
  74. package/Build/Workers/createPolylineVolumeGeometry.js +9 -9
  75. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +9 -9
  76. package/Build/Workers/createRectangleGeometry.js +16 -16
  77. package/Build/Workers/createRectangleOutlineGeometry.js +12 -12
  78. package/Build/Workers/createSimplePolylineGeometry.js +10 -10
  79. package/Build/Workers/createSphereGeometry.js +11 -11
  80. package/Build/Workers/createSphereOutlineGeometry.js +12 -12
  81. package/Build/Workers/createTaskProcessorWorker.js +2 -2
  82. package/Build/Workers/createVectorTileClampedPolylines.js +1 -1
  83. package/Build/Workers/createVectorTileGeometries.js +8 -8
  84. package/Build/Workers/createVectorTilePoints.js +1 -1
  85. package/Build/Workers/createVectorTilePolygons.js +1 -1
  86. package/Build/Workers/createVectorTilePolylines.js +1 -1
  87. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +1 -1
  88. package/Build/Workers/createVerticesFromHeightmap.js +23 -21
  89. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +33 -38
  90. package/Build/Workers/createWallGeometry.js +14 -14
  91. package/Build/Workers/createWallOutlineGeometry.js +14 -14
  92. package/Build/Workers/decodeDraco.js +1 -1
  93. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +15 -15
  94. package/Build/Workers/decodeI3S.js +1 -1
  95. package/Build/Workers/{defaultValue-0a909f67.js → defaultValue-fe22d8c0.js} +2 -2
  96. package/Build/Workers/package.js +1 -1
  97. package/Build/Workers/transcodeKTX2.js +26 -26
  98. package/Build/Workers/transferTypedArrayTest.js +1 -1
  99. package/Build/Workers/upsampleQuantizedTerrainMesh.js +24 -24
  100. package/Source/Core/ApproximateTerrainHeights.js +3 -3
  101. package/Source/Core/ArcGISTiledElevationTerrainProvider.js +308 -208
  102. package/Source/Core/ArcType.js +4 -4
  103. package/Source/Core/ArticulationStageType.js +1 -1
  104. package/Source/Core/AssociativeArray.js +7 -7
  105. package/Source/Core/AttributeCompression.js +12 -12
  106. package/Source/Core/AxisAlignedBoundingBox.js +2 -2
  107. package/Source/Core/BingMapsGeocoderService.js +6 -6
  108. package/Source/Core/BoundingRectangle.js +17 -17
  109. package/Source/Core/BoundingSphere.js +25 -25
  110. package/Source/Core/BoxGeometry.js +8 -8
  111. package/Source/Core/BoxOutlineGeometry.js +8 -8
  112. package/Source/Core/Cartesian2.js +38 -38
  113. package/Source/Core/Cartesian3.js +50 -50
  114. package/Source/Core/Cartesian4.js +44 -44
  115. package/Source/Core/Cartographic.js +19 -19
  116. package/Source/Core/CartographicGeocoderService.js +1 -1
  117. package/Source/Core/CatmullRomSpline.js +10 -10
  118. package/Source/Core/CesiumTerrainProvider.js +598 -461
  119. package/Source/Core/Check.js +17 -17
  120. package/Source/Core/CircleGeometry.js +12 -12
  121. package/Source/Core/CircleOutlineGeometry.js +12 -12
  122. package/Source/Core/Clock.js +7 -7
  123. package/Source/Core/ClockRange.js +4 -4
  124. package/Source/Core/ClockStep.js +4 -4
  125. package/Source/Core/Color.js +58 -58
  126. package/Source/Core/ColorGeometryInstanceAttribute.js +7 -7
  127. package/Source/Core/ComponentDatatype.js +15 -15
  128. package/Source/Core/CompressedTextureBuffer.js +7 -7
  129. package/Source/Core/ConstantSpline.js +9 -9
  130. package/Source/Core/CoplanarPolygonGeometry.js +10 -10
  131. package/Source/Core/CoplanarPolygonOutlineGeometry.js +8 -8
  132. package/Source/Core/CornerType.js +4 -4
  133. package/Source/Core/CorridorGeometry.js +13 -13
  134. package/Source/Core/CorridorOutlineGeometry.js +11 -11
  135. package/Source/Core/Credit.js +7 -7
  136. package/Source/Core/CubicRealPolynomial.js +10 -10
  137. package/Source/Core/CullingVolume.js +7 -7
  138. package/Source/Core/CustomHeightmapTerrainProvider.js +40 -28
  139. package/Source/Core/CylinderGeometry.js +11 -11
  140. package/Source/Core/CylinderOutlineGeometry.js +12 -12
  141. package/Source/Core/DefaultProxy.js +3 -3
  142. package/Source/Core/DeveloperError.js +4 -4
  143. package/Source/Core/DistanceDisplayCondition.js +12 -12
  144. package/Source/Core/DistanceDisplayConditionGeometryInstanceAttribute.js +5 -5
  145. package/Source/Core/DoubleEndedPriorityQueue.js +5 -5
  146. package/Source/Core/EarthOrientationParameters.js +6 -6
  147. package/Source/Core/EarthOrientationParametersSample.js +10 -10
  148. package/Source/Core/EasingFunction.js +2 -2
  149. package/Source/Core/EllipseGeometry.js +19 -19
  150. package/Source/Core/EllipseOutlineGeometry.js +14 -14
  151. package/Source/Core/Ellipsoid.js +20 -20
  152. package/Source/Core/EllipsoidGeodesic.js +5 -5
  153. package/Source/Core/EllipsoidGeometry.js +13 -13
  154. package/Source/Core/EllipsoidOutlineGeometry.js +14 -14
  155. package/Source/Core/EllipsoidRhumbLine.js +8 -8
  156. package/Source/Core/EllipsoidTerrainProvider.js +35 -28
  157. package/Source/Core/EllipsoidalOccluder.js +9 -9
  158. package/Source/Core/EncodedCartesian3.js +5 -5
  159. package/Source/Core/Event.js +4 -4
  160. package/Source/Core/EventHelper.js +1 -1
  161. package/Source/Core/ExtrapolationType.js +4 -4
  162. package/Source/Core/FeatureDetection.js +9 -9
  163. package/Source/Core/FrustumGeometry.js +8 -8
  164. package/Source/Core/FrustumOutlineGeometry.js +7 -7
  165. package/Source/Core/Fullscreen.js +8 -8
  166. package/Source/Core/GeocodeType.js +3 -3
  167. package/Source/Core/GeocoderService.js +3 -3
  168. package/Source/Core/GeographicTilingScheme.js +16 -16
  169. package/Source/Core/Geometry.js +5 -5
  170. package/Source/Core/GeometryAttribute.js +6 -6
  171. package/Source/Core/GeometryInstance.js +5 -5
  172. package/Source/Core/GeometryInstanceAttribute.js +7 -7
  173. package/Source/Core/GeometryPipeline.js +11 -11
  174. package/Source/Core/GoogleEarthEnterpriseMetadata.js +107 -55
  175. package/Source/Core/GoogleEarthEnterpriseTerrainData.js +29 -29
  176. package/Source/Core/GoogleEarthEnterpriseTerrainProvider.js +137 -100
  177. package/Source/Core/GoogleEarthEnterpriseTileInformation.js +14 -14
  178. package/Source/Core/GregorianDate.js +16 -16
  179. package/Source/Core/GroundPolylineGeometry.js +13 -13
  180. package/Source/Core/HeadingPitchRange.js +6 -6
  181. package/Source/Core/HeadingPitchRoll.js +18 -18
  182. package/Source/Core/Heap.js +7 -7
  183. package/Source/Core/HeightmapEncoding.js +3 -3
  184. package/Source/Core/HeightmapTerrainData.js +44 -44
  185. package/Source/Core/HeightmapTessellator.js +16 -16
  186. package/Source/Core/HermitePolynomialApproximation.js +17 -17
  187. package/Source/Core/HermiteSpline.js +17 -17
  188. package/Source/Core/HilbertOrder.js +7 -7
  189. package/Source/Core/Iau2006XysData.js +13 -13
  190. package/Source/Core/Iau2006XysSample.js +6 -6
  191. package/Source/Core/IauOrientationParameters.js +4 -4
  192. package/Source/Core/IndexDatatype.js +12 -12
  193. package/Source/Core/InterpolationAlgorithm.js +17 -17
  194. package/Source/Core/InterpolationType.js +1 -1
  195. package/Source/Core/Intersect.js +4 -4
  196. package/Source/Core/IntersectionTests.js +5 -5
  197. package/Source/Core/Intersections2D.js +23 -23
  198. package/Source/Core/Interval.js +4 -4
  199. package/Source/Core/Ion.js +3 -3
  200. package/Source/Core/IonGeocoderService.js +4 -4
  201. package/Source/Core/IonResource.js +20 -9
  202. package/Source/Core/JulianDate.js +27 -27
  203. package/Source/Core/KeyboardEventModifier.js +4 -4
  204. package/Source/Core/LagrangePolynomialApproximation.js +8 -8
  205. package/Source/Core/LeapSecond.js +2 -2
  206. package/Source/Core/LinearApproximation.js +8 -8
  207. package/Source/Core/LinearSpline.js +13 -13
  208. package/Source/Core/ManagedArray.js +8 -8
  209. package/Source/Core/Math.js +136 -136
  210. package/Source/Core/Matrix2.js +44 -44
  211. package/Source/Core/Matrix3.js +59 -59
  212. package/Source/Core/Matrix4.js +91 -91
  213. package/Source/Core/MorphWeightSpline.js +14 -14
  214. package/Source/Core/MortonOrder.js +21 -21
  215. package/Source/Core/NearFarScalar.js +16 -16
  216. package/Source/Core/Occluder.js +5 -5
  217. package/Source/Core/OffsetGeometryInstanceAttribute.js +5 -5
  218. package/Source/Core/OpenCageGeocoderService.js +18 -18
  219. package/Source/Core/OrientedBoundingBox.js +18 -16
  220. package/Source/Core/OrthographicFrustum.js +23 -23
  221. package/Source/Core/OrthographicOffCenterFrustum.js +21 -21
  222. package/Source/Core/Packable.js +7 -7
  223. package/Source/Core/PackableForInterpolation.js +11 -11
  224. package/Source/Core/PeliasGeocoderService.js +2 -2
  225. package/Source/Core/PerspectiveFrustum.js +28 -28
  226. package/Source/Core/PerspectiveOffCenterFrustum.js +21 -21
  227. package/Source/Core/PinBuilder.js +9 -9
  228. package/Source/Core/PixelFormat.js +23 -23
  229. package/Source/Core/Plane.js +4 -4
  230. package/Source/Core/PlaneGeometry.js +7 -7
  231. package/Source/Core/PlaneOutlineGeometry.js +5 -5
  232. package/Source/Core/PolygonGeometry.js +24 -24
  233. package/Source/Core/PolygonGeometryLibrary.js +4 -4
  234. package/Source/Core/PolygonOutlineGeometry.js +16 -16
  235. package/Source/Core/PolygonPipeline.js +10 -10
  236. package/Source/Core/PolylineGeometry.js +10 -10
  237. package/Source/Core/PolylinePipeline.js +15 -15
  238. package/Source/Core/PolylineVolumeGeometry.js +8 -8
  239. package/Source/Core/PolylineVolumeOutlineGeometry.js +8 -8
  240. package/Source/Core/PrimitiveType.js +8 -8
  241. package/Source/Core/Proxy.js +2 -2
  242. package/Source/Core/QuadraticRealPolynomial.js +8 -8
  243. package/Source/Core/QuantizedMeshTerrainData.js +37 -37
  244. package/Source/Core/QuarticRealPolynomial.js +12 -12
  245. package/Source/Core/Quaternion.js +42 -42
  246. package/Source/Core/QuaternionSpline.js +10 -10
  247. package/Source/Core/Queue.js +2 -2
  248. package/Source/Core/Ray.js +1 -1
  249. package/Source/Core/Rectangle.js +38 -38
  250. package/Source/Core/RectangleCollisionChecker.js +3 -3
  251. package/Source/Core/RectangleGeometry.js +15 -15
  252. package/Source/Core/RectangleOutlineGeometry.js +11 -11
  253. package/Source/Core/ReferenceFrame.js +3 -3
  254. package/Source/Core/Request.js +13 -13
  255. package/Source/Core/RequestErrorEvent.js +7 -7
  256. package/Source/Core/RequestScheduler.js +15 -15
  257. package/Source/Core/RequestState.js +7 -7
  258. package/Source/Core/RequestType.js +5 -5
  259. package/Source/Core/Resource.js +225 -225
  260. package/Source/Core/RuntimeError.js +4 -4
  261. package/Source/Core/S2Cell.js +15 -15
  262. package/Source/Core/ScreenSpaceEventHandler.js +7 -7
  263. package/Source/Core/ScreenSpaceEventType.js +16 -16
  264. package/Source/Core/ShowGeometryInstanceAttribute.js +4 -4
  265. package/Source/Core/SimplePolylineGeometry.js +9 -9
  266. package/Source/Core/SphereGeometry.js +10 -10
  267. package/Source/Core/SphereOutlineGeometry.js +11 -11
  268. package/Source/Core/Spherical.js +13 -13
  269. package/Source/Core/Spline.js +14 -14
  270. package/Source/Core/SteppedSpline.js +14 -14
  271. package/Source/Core/TaskProcessor.js +10 -10
  272. package/Source/Core/TerrainData.js +25 -25
  273. package/Source/Core/TerrainEncoding.js +14 -14
  274. package/Source/Core/TerrainExaggeration.js +3 -3
  275. package/Source/Core/TerrainMesh.js +18 -18
  276. package/Source/Core/TerrainProvider.js +32 -37
  277. package/Source/Core/TerrainQuantization.js +3 -3
  278. package/Source/Core/TileAvailability.js +16 -16
  279. package/Source/Core/TileProviderError.js +19 -19
  280. package/Source/Core/TilingScheme.js +13 -13
  281. package/Source/Core/TimeConstants.js +10 -10
  282. package/Source/Core/TimeInterval.js +23 -23
  283. package/Source/Core/TimeIntervalCollection.js +39 -39
  284. package/Source/Core/TimeStandard.js +3 -3
  285. package/Source/Core/Tipsify.js +10 -10
  286. package/Source/Core/Transforms.js +2 -2
  287. package/Source/Core/TranslationRotationScale.js +1 -1
  288. package/Source/Core/TridiagonalSystemSolver.js +3 -3
  289. package/Source/Core/TrustedServers.js +5 -5
  290. package/Source/Core/VRTheWorldTerrainProvider.js +210 -141
  291. package/Source/Core/VertexFormat.js +13 -13
  292. package/Source/Core/VideoSynchronizer.js +4 -4
  293. package/Source/Core/Visibility.js +4 -4
  294. package/Source/Core/VulkanConstants.js +1 -1
  295. package/Source/Core/WallGeometry.js +13 -13
  296. package/Source/Core/WallOutlineGeometry.js +13 -13
  297. package/Source/Core/WebGLConstants.js +1 -1
  298. package/Source/Core/WebMercatorProjection.js +5 -5
  299. package/Source/Core/WebMercatorTilingScheme.js +16 -16
  300. package/Source/Core/WindingOrder.js +3 -3
  301. package/Source/Core/WireframeIndexGenerator.js +3 -3
  302. package/Source/Core/arrayRemoveDuplicates.js +4 -4
  303. package/Source/Core/binarySearch.js +2 -2
  304. package/Source/Core/buildModuleUrl.js +8 -7
  305. package/Source/Core/clone.js +3 -3
  306. package/Source/Core/combine.js +4 -4
  307. package/Source/Core/createGuid.js +1 -1
  308. package/Source/Core/createWorldTerrain.js +23 -5
  309. package/Source/Core/createWorldTerrainAsync.js +48 -0
  310. package/Source/Core/defaultValue.js +1 -1
  311. package/Source/Core/defer.js +1 -1
  312. package/Source/Core/defined.js +1 -1
  313. package/Source/Core/deprecationWarning.js +2 -2
  314. package/Source/Core/destroyObject.js +2 -2
  315. package/Source/Core/formatError.js +1 -1
  316. package/Source/Core/getAbsoluteUri.js +3 -3
  317. package/Source/Core/getBaseUri.js +3 -3
  318. package/Source/Core/getExtensionFromUri.js +2 -2
  319. package/Source/Core/getFilenameFromUri.js +2 -2
  320. package/Source/Core/getImageFromTypedArray.js +2 -2
  321. package/Source/Core/getImagePixels.js +4 -3
  322. package/Source/Core/getJsonFromTypedArray.js +3 -3
  323. package/Source/Core/getStringFromTypedArray.js +3 -3
  324. package/Source/Core/getTimestamp.js +1 -1
  325. package/Source/Core/isBlobUri.js +2 -2
  326. package/Source/Core/isDataUri.js +2 -2
  327. package/Source/Core/isLeapYear.js +2 -2
  328. package/Source/Core/loadKTX2.js +8 -8
  329. package/Source/Core/mergeSort.js +1 -1
  330. package/Source/Core/objectToQuery.js +2 -2
  331. package/Source/Core/oneTimeWarning.js +2 -2
  332. package/Source/Core/parseResponseHeaders.js +2 -2
  333. package/Source/Core/pointInsideTriangle.js +1 -1
  334. package/Source/Core/queryToObject.js +2 -2
  335. package/Source/Core/sampleTerrain.js +16 -17
  336. package/Source/Core/sampleTerrainMostDetailed.js +67 -73
  337. package/Source/Core/scaleToGeodeticSurface.js +1 -1
  338. package/Source/Core/subdivideArray.js +1 -1
  339. package/Source/Core/writeTextToCanvas.js +10 -9
  340. package/Source/DataSources/BillboardGraphics.js +1 -1
  341. package/Source/DataSources/BillboardVisualizer.js +2 -2
  342. package/Source/DataSources/BoundingSphereState.js +1 -1
  343. package/Source/DataSources/BoxGraphics.js +1 -1
  344. package/Source/DataSources/CallbackProperty.js +8 -8
  345. package/Source/DataSources/Cesium3DTilesetGraphics.js +1 -1
  346. package/Source/DataSources/Cesium3DTilesetVisualizer.js +39 -28
  347. package/Source/DataSources/CheckerboardMaterialProperty.js +6 -6
  348. package/Source/DataSources/ColorMaterialProperty.js +5 -5
  349. package/Source/DataSources/CompositeEntityCollection.js +8 -8
  350. package/Source/DataSources/CompositeMaterialProperty.js +5 -5
  351. package/Source/DataSources/CompositePositionProperty.js +2 -2
  352. package/Source/DataSources/CompositeProperty.js +4 -4
  353. package/Source/DataSources/ConstantPositionProperty.js +4 -4
  354. package/Source/DataSources/ConstantProperty.js +5 -5
  355. package/Source/DataSources/CorridorGraphics.js +1 -1
  356. package/Source/DataSources/CustomDataSource.js +5 -5
  357. package/Source/DataSources/CylinderGraphics.js +1 -1
  358. package/Source/DataSources/CzmlDataSource.js +26 -26
  359. package/Source/DataSources/DataSource.js +4 -4
  360. package/Source/DataSources/DataSourceClock.js +2 -2
  361. package/Source/DataSources/DataSourceCollection.js +11 -11
  362. package/Source/DataSources/DataSourceDisplay.js +5 -5
  363. package/Source/DataSources/DynamicGeometryUpdater.js +1 -1
  364. package/Source/DataSources/EllipseGraphics.js +1 -1
  365. package/Source/DataSources/EllipsoidGeometryUpdater.js +2 -2
  366. package/Source/DataSources/EllipsoidGraphics.js +1 -1
  367. package/Source/DataSources/Entity.js +20 -15
  368. package/Source/DataSources/EntityCluster.js +16 -16
  369. package/Source/DataSources/EntityCollection.js +8 -8
  370. package/Source/DataSources/GeoJsonDataSource.js +27 -27
  371. package/Source/DataSources/GeometryUpdater.js +22 -22
  372. package/Source/DataSources/GeometryVisualizer.js +2 -2
  373. package/Source/DataSources/GpxDataSource.js +23 -23
  374. package/Source/DataSources/GridMaterialProperty.js +7 -7
  375. package/Source/DataSources/GroundGeometryUpdater.js +5 -5
  376. package/Source/DataSources/ImageMaterialProperty.js +8 -8
  377. package/Source/DataSources/KmlDataSource.js +32 -32
  378. package/Source/DataSources/KmlTour.js +7 -7
  379. package/Source/DataSources/KmlTourFlyTo.js +6 -6
  380. package/Source/DataSources/KmlTourWait.js +2 -2
  381. package/Source/DataSources/LabelGraphics.js +1 -1
  382. package/Source/DataSources/LabelVisualizer.js +2 -2
  383. package/Source/DataSources/MaterialProperty.js +5 -5
  384. package/Source/DataSources/ModelGraphics.js +3 -3
  385. package/Source/DataSources/ModelVisualizer.js +101 -33
  386. package/Source/DataSources/NodeTransformationProperty.js +3 -3
  387. package/Source/DataSources/PathGraphics.js +1 -1
  388. package/Source/DataSources/PathVisualizer.js +2 -2
  389. package/Source/DataSources/PlaneGraphics.js +1 -1
  390. package/Source/DataSources/PointGraphics.js +1 -1
  391. package/Source/DataSources/PointVisualizer.js +2 -2
  392. package/Source/DataSources/PolygonGraphics.js +4 -4
  393. package/Source/DataSources/PolylineArrowMaterialProperty.js +5 -5
  394. package/Source/DataSources/PolylineDashMaterialProperty.js +8 -8
  395. package/Source/DataSources/PolylineGeometryUpdater.js +13 -13
  396. package/Source/DataSources/PolylineGlowMaterialProperty.js +8 -8
  397. package/Source/DataSources/PolylineGraphics.js +2 -2
  398. package/Source/DataSources/PolylineOutlineMaterialProperty.js +7 -7
  399. package/Source/DataSources/PolylineVisualizer.js +2 -2
  400. package/Source/DataSources/PolylineVolumeGraphics.js +3 -3
  401. package/Source/DataSources/PositionProperty.js +2 -2
  402. package/Source/DataSources/PositionPropertyArray.js +2 -2
  403. package/Source/DataSources/Property.js +4 -4
  404. package/Source/DataSources/PropertyArray.js +2 -2
  405. package/Source/DataSources/PropertyBag.js +10 -10
  406. package/Source/DataSources/RectangleGraphics.js +1 -1
  407. package/Source/DataSources/ReferenceProperty.js +10 -10
  408. package/Source/DataSources/Rotation.js +14 -14
  409. package/Source/DataSources/SampledPositionProperty.js +11 -11
  410. package/Source/DataSources/SampledProperty.js +12 -12
  411. package/Source/DataSources/StripeMaterialProperty.js +8 -8
  412. package/Source/DataSources/StripeOrientation.js +3 -3
  413. package/Source/DataSources/TerrainOffsetProperty.js +1 -1
  414. package/Source/DataSources/TimeIntervalCollectionPositionProperty.js +3 -3
  415. package/Source/DataSources/TimeIntervalCollectionProperty.js +4 -4
  416. package/Source/DataSources/VelocityOrientationProperty.js +2 -2
  417. package/Source/DataSources/VelocityVectorProperty.js +4 -4
  418. package/Source/DataSources/Visualizer.js +2 -2
  419. package/Source/DataSources/WallGraphics.js +4 -4
  420. package/Source/DataSources/exportKml.js +9 -9
  421. package/Source/Renderer/Buffer.js +4 -4
  422. package/Source/Renderer/ClearCommand.js +3 -3
  423. package/Source/Renderer/ComputeCommand.js +3 -3
  424. package/Source/Renderer/Context.js +46 -46
  425. package/Source/Renderer/ContextLimits.js +22 -22
  426. package/Source/Renderer/CubeMapFace.js +11 -11
  427. package/Source/Renderer/DrawCommand.js +15 -15
  428. package/Source/Renderer/Framebuffer.js +4 -4
  429. package/Source/Renderer/FramebufferManager.js +9 -9
  430. package/Source/Renderer/MultisampleFramebuffer.js +1 -1
  431. package/Source/Renderer/PassState.js +2 -2
  432. package/Source/Renderer/PixelDatatype.js +1 -1
  433. package/Source/Renderer/RenderState.js +1 -1
  434. package/Source/Renderer/ShaderBuilder.js +24 -24
  435. package/Source/Renderer/ShaderCache.js +8 -8
  436. package/Source/Renderer/ShaderDestination.js +2 -2
  437. package/Source/Renderer/ShaderFunction.js +3 -3
  438. package/Source/Renderer/ShaderSource.js +8 -8
  439. package/Source/Renderer/ShaderStruct.js +4 -4
  440. package/Source/Renderer/Texture.js +18 -18
  441. package/Source/Renderer/TextureMagnificationFilter.js +4 -4
  442. package/Source/Renderer/TextureMinificationFilter.js +8 -8
  443. package/Source/Renderer/UniformState.js +14 -14
  444. package/Source/Renderer/VertexArray.js +2 -2
  445. package/Source/Renderer/createUniform.js +12 -12
  446. package/Source/Renderer/createUniformArray.js +12 -12
  447. package/Source/Renderer/freezeRenderState.js +2 -2
  448. package/Source/Renderer/loadCubeMap.js +3 -3
  449. package/Source/Scene/AlphaMode.js +4 -4
  450. package/Source/Scene/Appearance.js +14 -14
  451. package/Source/Scene/ArcGisMapServerImageryProvider.js +585 -409
  452. package/Source/Scene/AttributeType.js +11 -11
  453. package/Source/Scene/AutoExposure.js +6 -6
  454. package/Source/Scene/Axis.js +6 -6
  455. package/Source/Scene/B3dmParser.js +2 -2
  456. package/Source/Scene/BatchTable.js +13 -13
  457. package/Source/Scene/BatchTableHierarchy.js +22 -22
  458. package/Source/Scene/BatchTexture.js +14 -14
  459. package/Source/Scene/Billboard.js +17 -17
  460. package/Source/Scene/BillboardCollection.js +13 -13
  461. package/Source/Scene/BingMapsImageryProvider.js +541 -335
  462. package/Source/Scene/BingMapsStyle.js +11 -11
  463. package/Source/Scene/BlendEquation.js +6 -6
  464. package/Source/Scene/BlendFunction.js +16 -16
  465. package/Source/Scene/BlendOption.js +4 -4
  466. package/Source/Scene/BlendingState.js +4 -4
  467. package/Source/Scene/BufferLoader.js +33 -38
  468. package/Source/Scene/Camera.js +57 -57
  469. package/Source/Scene/CameraEventAggregator.js +26 -16
  470. package/Source/Scene/CameraEventType.js +6 -6
  471. package/Source/Scene/Cesium3DContentGroup.js +1 -1
  472. package/Source/Scene/Cesium3DTile.js +409 -272
  473. package/Source/Scene/Cesium3DTileBatchTable.js +3 -3
  474. package/Source/Scene/Cesium3DTileColorBlendMode.js +4 -4
  475. package/Source/Scene/Cesium3DTileContent.js +31 -15
  476. package/Source/Scene/Cesium3DTileContentFactory.js +4 -4
  477. package/Source/Scene/Cesium3DTileContentType.js +17 -17
  478. package/Source/Scene/Cesium3DTileFeature.js +16 -16
  479. package/Source/Scene/Cesium3DTileOptimizationHint.js +1 -1
  480. package/Source/Scene/Cesium3DTileOptimizations.js +1 -1
  481. package/Source/Scene/Cesium3DTilePass.js +8 -11
  482. package/Source/Scene/Cesium3DTilePassState.js +1 -1
  483. package/Source/Scene/Cesium3DTilePointFeature.js +23 -23
  484. package/Source/Scene/Cesium3DTileRefine.js +3 -3
  485. package/Source/Scene/Cesium3DTileStyle.js +17 -17
  486. package/Source/Scene/Cesium3DTileStyleEngine.js +1 -1
  487. package/Source/Scene/Cesium3DTilesVoxelProvider.js +226 -118
  488. package/Source/Scene/Cesium3DTileset.js +817 -543
  489. package/Source/Scene/Cesium3DTilesetBaseTraversal.js +301 -0
  490. package/Source/Scene/Cesium3DTilesetHeatmap.js +4 -4
  491. package/Source/Scene/Cesium3DTilesetMetadata.js +5 -5
  492. package/Source/Scene/Cesium3DTilesetMostDetailedTraversal.js +33 -46
  493. package/Source/Scene/Cesium3DTilesetSkipTraversal.js +421 -0
  494. package/Source/Scene/Cesium3DTilesetTraversal.js +219 -671
  495. package/Source/Scene/CircleEmitter.js +2 -2
  496. package/Source/Scene/ClassificationPrimitive.js +32 -25
  497. package/Source/Scene/ClassificationType.js +4 -4
  498. package/Source/Scene/ClippingPlane.js +2 -2
  499. package/Source/Scene/ClippingPlaneCollection.js +17 -17
  500. package/Source/Scene/CloudCollection.js +16 -16
  501. package/Source/Scene/CloudType.js +3 -3
  502. package/Source/Scene/ColorBlendMode.js +1 -1
  503. package/Source/Scene/Composite3DTileContent.js +69 -26
  504. package/Source/Scene/ConditionsExpression.js +11 -11
  505. package/Source/Scene/ConeEmitter.js +2 -2
  506. package/Source/Scene/ContentMetadata.js +16 -16
  507. package/Source/Scene/CreditDisplay.js +22 -6
  508. package/Source/Scene/CullFace.js +4 -4
  509. package/Source/Scene/CumulusCloud.js +3 -3
  510. package/Source/Scene/DebugAppearance.js +17 -17
  511. package/Source/Scene/DebugCameraPrimitive.js +7 -7
  512. package/Source/Scene/DebugModelMatrixPrimitive.js +9 -9
  513. package/Source/Scene/DepthFunction.js +9 -9
  514. package/Source/Scene/DepthPlane.js +1 -1
  515. package/Source/Scene/DeviceOrientationCameraController.js +1 -1
  516. package/Source/Scene/DirectionalLight.js +3 -3
  517. package/Source/Scene/DiscardEmptyTileImagePolicy.js +2 -2
  518. package/Source/Scene/DiscardMissingTileImagePolicy.js +5 -5
  519. package/Source/Scene/DracoLoader.js +4 -4
  520. package/Source/Scene/EllipsoidPrimitive.js +8 -8
  521. package/Source/Scene/EllipsoidSurfaceAppearance.js +19 -19
  522. package/Source/Scene/Empty3DTileContent.js +31 -1
  523. package/Source/Scene/Expression.js +14 -14
  524. package/Source/Scene/Fog.js +5 -5
  525. package/Source/Scene/FrameRateMonitor.js +14 -14
  526. package/Source/Scene/FrameState.js +36 -36
  527. package/Source/Scene/FrustumCommands.js +2 -2
  528. package/Source/Scene/Geometry3DTileContent.js +47 -7
  529. package/Source/Scene/GetFeatureInfoFormat.js +2 -2
  530. package/Source/Scene/Globe.js +39 -35
  531. package/Source/Scene/GlobeSurfaceTile.js +3 -2
  532. package/Source/Scene/GlobeSurfaceTileProvider.js +56 -33
  533. package/Source/Scene/GlobeTranslucency.js +3 -3
  534. package/Source/Scene/GltfBufferViewLoader.js +52 -96
  535. package/Source/Scene/GltfDracoLoader.js +117 -119
  536. package/Source/Scene/GltfImageLoader.js +77 -84
  537. package/Source/Scene/GltfIndexBufferLoader.js +118 -131
  538. package/Source/Scene/GltfJsonLoader.js +81 -80
  539. package/Source/Scene/GltfLoader.js +413 -301
  540. package/Source/Scene/GltfLoaderUtil.js +11 -11
  541. package/Source/Scene/GltfPipeline/addBuffer.js +2 -2
  542. package/Source/Scene/GltfPipeline/addDefaults.js +2 -2
  543. package/Source/Scene/GltfPipeline/addExtensionsRequired.js +2 -2
  544. package/Source/Scene/GltfPipeline/addExtensionsUsed.js +2 -2
  545. package/Source/Scene/GltfPipeline/addPipelineExtras.js +2 -2
  546. package/Source/Scene/GltfPipeline/addToArray.js +2 -2
  547. package/Source/Scene/GltfPipeline/findAccessorMinMax.js +2 -2
  548. package/Source/Scene/GltfPipeline/forEachTextureInMaterial.js +3 -3
  549. package/Source/Scene/GltfPipeline/getAccessorByteStride.js +3 -3
  550. package/Source/Scene/GltfPipeline/getComponentReader.js +5 -5
  551. package/Source/Scene/GltfPipeline/moveTechniqueRenderStates.js +2 -2
  552. package/Source/Scene/GltfPipeline/moveTechniquesToExtension.js +2 -2
  553. package/Source/Scene/GltfPipeline/numberOfComponentsForType.js +2 -2
  554. package/Source/Scene/GltfPipeline/parseGlb.js +1 -1
  555. package/Source/Scene/GltfPipeline/readAccessorPacked.js +2 -2
  556. package/Source/Scene/GltfPipeline/removeExtension.js +2 -2
  557. package/Source/Scene/GltfPipeline/removeExtensionsRequired.js +2 -2
  558. package/Source/Scene/GltfPipeline/removeExtensionsUsed.js +2 -2
  559. package/Source/Scene/GltfPipeline/removePipelineExtras.js +2 -2
  560. package/Source/Scene/GltfPipeline/removeUnusedElements.js +2 -2
  561. package/Source/Scene/GltfPipeline/updateAccessorComponentTypes.js +2 -2
  562. package/Source/Scene/GltfPipeline/updateVersion.js +4 -4
  563. package/Source/Scene/GltfPipeline/usesExtension.js +3 -3
  564. package/Source/Scene/GltfStructuralMetadataLoader.js +117 -118
  565. package/Source/Scene/GltfTextureLoader.js +104 -103
  566. package/Source/Scene/GltfVertexBufferLoader.js +140 -145
  567. package/Source/Scene/GoogleEarthEnterpriseImageryProvider.js +377 -249
  568. package/Source/Scene/GoogleEarthEnterpriseMapsProvider.js +520 -360
  569. package/Source/Scene/GridImageryProvider.js +292 -129
  570. package/Source/Scene/GroundPolylinePrimitive.js +32 -21
  571. package/Source/Scene/GroundPrimitive.js +34 -27
  572. package/Source/Scene/GroupMetadata.js +17 -17
  573. package/Source/Scene/HeightReference.js +4 -4
  574. package/Source/Scene/HorizontalOrigin.js +4 -4
  575. package/Source/Scene/I3SDataProvider.js +221 -120
  576. package/Source/Scene/I3SFeature.js +8 -7
  577. package/Source/Scene/I3SField.js +5 -5
  578. package/Source/Scene/I3SGeometry.js +8 -8
  579. package/Source/Scene/I3SLayer.js +33 -44
  580. package/Source/Scene/I3SNode.js +65 -72
  581. package/Source/Scene/I3dmParser.js +2 -2
  582. package/Source/Scene/ImageBasedLighting.js +21 -17
  583. package/Source/Scene/Imagery.js +6 -1
  584. package/Source/Scene/ImageryLayer.js +324 -73
  585. package/Source/Scene/ImageryLayerCollection.js +37 -11
  586. package/Source/Scene/ImageryLayerFeatureInfo.js +6 -6
  587. package/Source/Scene/ImageryProvider.js +151 -133
  588. package/Source/Scene/Implicit3DTileContent.js +128 -79
  589. package/Source/Scene/ImplicitAvailabilityBitstream.js +10 -10
  590. package/Source/Scene/ImplicitMetadataView.js +16 -16
  591. package/Source/Scene/ImplicitSubdivisionScheme.js +4 -4
  592. package/Source/Scene/ImplicitSubtree.js +113 -92
  593. package/Source/Scene/ImplicitSubtreeCache.js +6 -6
  594. package/Source/Scene/ImplicitSubtreeMetadata.js +16 -16
  595. package/Source/Scene/ImplicitTileCoordinates.js +27 -27
  596. package/Source/Scene/ImplicitTileset.js +10 -10
  597. package/Source/Scene/InstanceAttributeSemantic.js +5 -5
  598. package/Source/Scene/IonImageryProvider.js +493 -286
  599. package/Source/Scene/IonWorldImageryStyle.js +4 -4
  600. package/Source/Scene/JsonMetadataTable.js +11 -11
  601. package/Source/Scene/KeyframeNode.js +1 -1
  602. package/Source/Scene/Label.js +14 -14
  603. package/Source/Scene/LabelCollection.js +12 -11
  604. package/Source/Scene/LabelStyle.js +4 -4
  605. package/Source/Scene/Light.js +1 -1
  606. package/Source/Scene/MapMode2D.js +3 -3
  607. package/Source/Scene/MapboxImageryProvider.js +301 -141
  608. package/Source/Scene/MapboxStyleImageryProvider.js +301 -142
  609. package/Source/Scene/Material.js +47 -47
  610. package/Source/Scene/MaterialAppearance.js +21 -21
  611. package/Source/Scene/Megatexture.js +15 -15
  612. package/Source/Scene/MetadataClass.js +16 -16
  613. package/Source/Scene/MetadataClassProperty.js +41 -41
  614. package/Source/Scene/MetadataComponentType.js +21 -21
  615. package/Source/Scene/MetadataEntity.js +31 -31
  616. package/Source/Scene/MetadataEnum.js +14 -14
  617. package/Source/Scene/MetadataEnumValue.js +10 -10
  618. package/Source/Scene/MetadataSchema.js +16 -16
  619. package/Source/Scene/MetadataSchemaLoader.js +31 -41
  620. package/Source/Scene/MetadataSemantic.js +17 -17
  621. package/Source/Scene/MetadataTable.js +24 -24
  622. package/Source/Scene/MetadataTableProperty.js +9 -9
  623. package/Source/Scene/MetadataType.js +15 -15
  624. package/Source/Scene/Model/B3dmLoader.js +54 -58
  625. package/Source/Scene/Model/ClassificationModelDrawCommand.js +3 -3
  626. package/Source/Scene/Model/CustomShader.js +18 -18
  627. package/Source/Scene/Model/CustomShaderMode.js +4 -4
  628. package/Source/Scene/Model/CustomShaderTranslucencyMode.js +4 -4
  629. package/Source/Scene/Model/GeoJsonLoader.js +12 -36
  630. package/Source/Scene/Model/I3dmLoader.js +58 -84
  631. package/Source/Scene/Model/LightingModel.js +3 -3
  632. package/Source/Scene/Model/MaterialPipelineStage.js +6 -6
  633. package/Source/Scene/Model/MetadataPipelineStage.js +25 -26
  634. package/Source/Scene/Model/Model.js +531 -193
  635. package/Source/Scene/Model/Model3DTileContent.js +83 -31
  636. package/Source/Scene/Model/ModelAlphaOptions.js +1 -1
  637. package/Source/Scene/Model/ModelAnimation.js +11 -11
  638. package/Source/Scene/Model/ModelAnimationChannel.js +2 -2
  639. package/Source/Scene/Model/ModelAnimationCollection.js +21 -21
  640. package/Source/Scene/Model/ModelArticulation.js +4 -4
  641. package/Source/Scene/Model/ModelArticulationStage.js +5 -5
  642. package/Source/Scene/Model/ModelDrawCommand.js +18 -29
  643. package/Source/Scene/Model/ModelFeature.js +12 -12
  644. package/Source/Scene/Model/ModelFeatureTable.js +5 -5
  645. package/Source/Scene/Model/ModelLightingOptions.js +1 -1
  646. package/Source/Scene/Model/ModelNode.js +3 -3
  647. package/Source/Scene/Model/ModelRenderResources.js +4 -4
  648. package/Source/Scene/Model/ModelRuntimeNode.js +7 -7
  649. package/Source/Scene/Model/ModelRuntimePrimitive.js +3 -3
  650. package/Source/Scene/Model/ModelSceneGraph.js +11 -11
  651. package/Source/Scene/Model/ModelSilhouettePipelineStage.js +1 -1
  652. package/Source/Scene/Model/ModelSkin.js +1 -1
  653. package/Source/Scene/Model/ModelStatistics.js +7 -7
  654. package/Source/Scene/Model/ModelType.js +8 -8
  655. package/Source/Scene/Model/ModelUtility.js +26 -26
  656. package/Source/Scene/Model/NodeRenderResources.js +7 -7
  657. package/Source/Scene/Model/PntsLoader.js +32 -37
  658. package/Source/Scene/Model/PointCloudStylingPipelineStage.js +1 -1
  659. package/Source/Scene/Model/PrimitiveOutlineGenerator.js +28 -28
  660. package/Source/Scene/Model/PrimitiveRenderResources.js +10 -10
  661. package/Source/Scene/Model/StyleCommandsNeeded.js +1 -1
  662. package/Source/Scene/Model/TextureManager.js +3 -3
  663. package/Source/Scene/Model/TextureUniform.js +6 -6
  664. package/Source/Scene/Model/UniformType.js +17 -17
  665. package/Source/Scene/Model/VaryingType.js +8 -8
  666. package/Source/Scene/ModelAnimationLoop.js +4 -4
  667. package/Source/Scene/ModelComponents.js +61 -61
  668. package/Source/Scene/Moon.js +8 -8
  669. package/Source/Scene/Multiple3DTileContent.js +146 -127
  670. package/Source/Scene/NeverTileDiscardPolicy.js +2 -2
  671. package/Source/Scene/OIT.js +9 -9
  672. package/Source/Scene/OctahedralProjectedCubeMap.js +28 -39
  673. package/Source/Scene/OpenStreetMapImageryProvider.js +6 -6
  674. package/Source/Scene/OrderedGroundPrimitiveCollection.js +9 -9
  675. package/Source/Scene/Particle.js +13 -13
  676. package/Source/Scene/ParticleBurst.js +8 -8
  677. package/Source/Scene/ParticleSystem.js +41 -36
  678. package/Source/Scene/PerInstanceColorAppearance.js +18 -18
  679. package/Source/Scene/PerformanceDisplay.js +2 -2
  680. package/Source/Scene/PntsParser.js +1 -1
  681. package/Source/Scene/PointCloud.js +11 -19
  682. package/Source/Scene/PointCloudEyeDomeLighting.js +1 -1
  683. package/Source/Scene/PointCloudShading.js +20 -20
  684. package/Source/Scene/PointPrimitive.js +6 -6
  685. package/Source/Scene/PointPrimitiveCollection.js +11 -11
  686. package/Source/Scene/Polyline.js +9 -9
  687. package/Source/Scene/PolylineCollection.js +11 -11
  688. package/Source/Scene/PolylineColorAppearance.js +13 -13
  689. package/Source/Scene/PolylineMaterialAppearance.js +13 -13
  690. package/Source/Scene/PostProcessStage.js +15 -15
  691. package/Source/Scene/PostProcessStageCollection.js +10 -10
  692. package/Source/Scene/PostProcessStageComposite.js +13 -13
  693. package/Source/Scene/PostProcessStageLibrary.js +8 -8
  694. package/Source/Scene/PostProcessStageSampleMode.js +3 -3
  695. package/Source/Scene/PostProcessStageTextureCache.js +4 -4
  696. package/Source/Scene/Primitive.js +50 -30
  697. package/Source/Scene/PrimitiveCollection.js +20 -20
  698. package/Source/Scene/PrimitiveLoadPlan.js +6 -6
  699. package/Source/Scene/PropertyAttribute.js +9 -9
  700. package/Source/Scene/PropertyAttributeProperty.js +6 -6
  701. package/Source/Scene/PropertyTable.js +34 -34
  702. package/Source/Scene/PropertyTexture.js +9 -9
  703. package/Source/Scene/PropertyTextureProperty.js +8 -8
  704. package/Source/Scene/QuadtreePrimitive.js +11 -9
  705. package/Source/Scene/QuadtreeTile.js +11 -11
  706. package/Source/Scene/QuadtreeTileLoadState.js +1 -1
  707. package/Source/Scene/QuadtreeTileProvider.js +10 -14
  708. package/Source/Scene/ResourceCache.js +85 -143
  709. package/Source/Scene/ResourceCacheKey.js +42 -42
  710. package/Source/Scene/ResourceCacheStatistics.js +26 -60
  711. package/Source/Scene/ResourceLoader.js +9 -21
  712. package/Source/Scene/ResourceLoaderState.js +16 -8
  713. package/Source/Scene/SDFSettings.js +4 -4
  714. package/Source/Scene/Scene.js +153 -88
  715. package/Source/Scene/SceneMode.js +6 -6
  716. package/Source/Scene/SceneTransitioner.js +1 -1
  717. package/Source/Scene/ScreenSpaceCameraController.js +41 -23
  718. package/Source/Scene/ShadowMap.js +22 -22
  719. package/Source/Scene/ShadowMapShader.js +1 -1
  720. package/Source/Scene/ShadowMode.js +5 -5
  721. package/Source/Scene/ShadowVolumeAppearance.js +17 -17
  722. package/Source/Scene/SingleTileImageryProvider.js +403 -230
  723. package/Source/Scene/SkyAtmosphere.js +10 -10
  724. package/Source/Scene/SkyBox.js +6 -6
  725. package/Source/Scene/SpatialNode.js +103 -87
  726. package/Source/Scene/SphereEmitter.js +2 -2
  727. package/Source/Scene/SplitDirection.js +4 -4
  728. package/Source/Scene/Splitter.js +2 -2
  729. package/Source/Scene/StencilFunction.js +9 -9
  730. package/Source/Scene/StencilOperation.js +9 -9
  731. package/Source/Scene/StructuralMetadata.js +11 -11
  732. package/Source/Scene/StyleExpression.js +8 -8
  733. package/Source/Scene/Sun.js +3 -3
  734. package/Source/Scene/SunLight.js +3 -3
  735. package/Source/Scene/SupportedImageFormats.js +3 -3
  736. package/Source/Scene/Terrain.js +196 -0
  737. package/Source/Scene/TextureAtlas.js +16 -16
  738. package/Source/Scene/TileBoundingRegion.js +6 -6
  739. package/Source/Scene/TileBoundingS2Cell.js +6 -6
  740. package/Source/Scene/TileBoundingSphere.js +5 -5
  741. package/Source/Scene/TileBoundingVolume.js +2 -2
  742. package/Source/Scene/TileCoordinatesImageryProvider.js +289 -126
  743. package/Source/Scene/TileDiscardPolicy.js +2 -2
  744. package/Source/Scene/TileImagery.js +3 -3
  745. package/Source/Scene/TileMapServiceImageryProvider.js +185 -93
  746. package/Source/Scene/TileMetadata.js +16 -16
  747. package/Source/Scene/TileOrientedBoundingBox.js +2 -2
  748. package/Source/Scene/TileReplacementQueue.js +1 -1
  749. package/Source/Scene/TileSelectionResult.js +1 -1
  750. package/Source/Scene/Tileset3DTileContent.js +47 -5
  751. package/Source/Scene/TilesetMetadata.js +15 -15
  752. package/Source/Scene/TimeDynamicImagery.js +8 -8
  753. package/Source/Scene/TimeDynamicPointCloud.js +24 -11
  754. package/Source/Scene/Tonemapper.js +5 -5
  755. package/Source/Scene/TranslucentTileClassification.js +1 -1
  756. package/Source/Scene/TweenCollection.js +31 -31
  757. package/Source/Scene/UrlTemplateImageryProvider.js +380 -252
  758. package/Source/Scene/Vector3DTileBatch.js +7 -7
  759. package/Source/Scene/Vector3DTileClampedPolylines.js +105 -93
  760. package/Source/Scene/Vector3DTileContent.js +47 -22
  761. package/Source/Scene/Vector3DTileGeometry.js +65 -60
  762. package/Source/Scene/Vector3DTilePoints.js +79 -75
  763. package/Source/Scene/Vector3DTilePolygons.js +128 -127
  764. package/Source/Scene/Vector3DTilePolylines.js +95 -91
  765. package/Source/Scene/Vector3DTilePrimitive.js +8 -9
  766. package/Source/Scene/VertexAttributeSemantic.js +15 -15
  767. package/Source/Scene/VerticalOrigin.js +5 -5
  768. package/Source/Scene/ViewportQuad.js +2 -2
  769. package/Source/Scene/VoxelBoxShape.js +27 -118
  770. package/Source/Scene/VoxelContent.js +63 -65
  771. package/Source/Scene/VoxelCylinderShape.js +21 -21
  772. package/Source/Scene/VoxelEllipsoidShape.js +13 -13
  773. package/Source/Scene/VoxelPrimitive.js +83 -135
  774. package/Source/Scene/VoxelProvider.js +15 -15
  775. package/Source/Scene/VoxelRenderResources.js +6 -3
  776. package/Source/Scene/VoxelShape.js +9 -9
  777. package/Source/Scene/VoxelShapeType.js +4 -4
  778. package/Source/Scene/VoxelTraversal.js +86 -144
  779. package/Source/Scene/WebMapServiceImageryProvider.js +313 -152
  780. package/Source/Scene/WebMapTileServiceImageryProvider.js +305 -142
  781. package/Source/Scene/buildVoxelDrawCommands.js +1 -0
  782. package/Source/Scene/computeFlyToLocationForRectangle.js +33 -37
  783. package/Source/Scene/createBillboardPointCallback.js +5 -5
  784. package/Source/Scene/createElevationBandMaterial.js +5 -5
  785. package/Source/Scene/createOsmBuildings.js +9 -3
  786. package/Source/Scene/createOsmBuildingsAsync.js +82 -0
  787. package/Source/Scene/createTangentSpaceDebugPrimitive.js +2 -2
  788. package/Source/Scene/createWorldImagery.js +15 -6
  789. package/Source/Scene/createWorldImageryAsync.js +39 -0
  790. package/Source/Scene/findContentMetadata.js +1 -1
  791. package/Source/Scene/findGroupMetadata.js +1 -1
  792. package/Source/Scene/findTileMetadata.js +1 -1
  793. package/Source/Scene/getClipAndStyleCode.js +4 -4
  794. package/Source/Scene/getClippingFunction.js +1 -1
  795. package/Source/Scene/hasExtension.js +3 -3
  796. package/Source/Scene/parseBatchTable.js +14 -14
  797. package/Source/Scene/parseBoundingVolumeSemantics.js +7 -7
  798. package/Source/Scene/parseFeatureMetadataLegacy.js +4 -4
  799. package/Source/Scene/parseStructuralMetadata.js +4 -4
  800. package/Source/Scene/preprocess3DTileContent.js +2 -2
  801. package/Source/Scene/processVoxelProperties.js +8 -7
  802. package/Source/Shaders/Voxels/IntersectBox.glsl +52 -58
  803. package/Source/Shaders/Voxels/IntersectBox.js +52 -58
  804. package/Source/Shaders/Voxels/IntersectClippingPlanes.glsl +38 -30
  805. package/Source/Shaders/Voxels/IntersectClippingPlanes.js +38 -30
  806. package/Source/Shaders/Voxels/IntersectDepth.glsl +1 -1
  807. package/Source/Shaders/Voxels/IntersectDepth.js +1 -1
  808. package/Source/Shaders/Voxels/Intersection.glsl +10 -12
  809. package/Source/Shaders/Voxels/Intersection.js +10 -12
  810. package/Source/Shaders/Voxels/IntersectionUtils.glsl +52 -59
  811. package/Source/Shaders/Voxels/IntersectionUtils.js +52 -59
  812. package/Source/Shaders/Voxels/Octree.glsl +72 -73
  813. package/Source/Shaders/Voxels/Octree.js +72 -73
  814. package/Source/Shaders/Voxels/VoxelFS.glsl +42 -22
  815. package/Source/Shaders/Voxels/VoxelFS.js +42 -22
  816. package/Source/Shaders/Voxels/convertUvToBox.glsl +13 -5
  817. package/Source/Shaders/Voxels/convertUvToBox.js +13 -5
  818. package/Source/ThirdParty/Workers/draco_decoder_nodejs.js +91 -91
  819. package/Source/ThirdParty/draco_decoder.wasm +0 -0
  820. package/Source/Widget/CesiumWidget.js +78 -50
  821. package/Source/Workers/cesiumWorkerBootstrapper.js +18 -18
  822. package/Source/WorkersES6/createTaskProcessorWorker.js +3 -3
  823. package/index.d.ts +2172 -1432
  824. package/index.js +8 -3
  825. package/package.json +1 -1
  826. package/Source/Core/cancelAnimationFrame.js +0 -53
  827. package/Source/Core/requestAnimationFrame.js +0 -83
  828. /package/Build/Workers/{GeometryOffsetAttribute-04332ce7.js → GeometryOffsetAttribute-9ad0019c.js} +0 -0
@@ -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";
@@ -27,7 +28,7 @@ import preprocess3DTileContent from "./preprocess3DTileContent.js";
27
28
  * @param {Cesium3DTileset} tileset The tileset this content belongs to
28
29
  * @param {Cesium3DTile} tile The content this content belongs to
29
30
  * @param {Resource} tilesetResource The resource that points to the tileset. This will be used to derive each inner content's resource.
30
- * @param {Object} contentsJson Either the tile JSON containing the contents array (3D Tiles 1.1), or <code>3DTILES_multiple_contents</code> extension JSON
31
+ * @param {object} contentsJson Either the tile JSON containing the contents array (3D Tiles 1.1), or <code>3DTILES_multiple_contents</code> extension JSON
31
32
  *
32
33
  * @private
33
34
  * @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.
@@ -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, {
@@ -80,7 +84,7 @@ Object.defineProperties(Multiple3DTileContent.prototype, {
80
84
  * Part of the {@link Cesium3DTileContent} interface. <code>Multiple3DTileContent</code> checks if any of the inner contents have dirty featurePropertiesDirty.
81
85
  * @memberof Multiple3DTileContent.prototype
82
86
  *
83
- * @type {Boolean}
87
+ * @type {boolean}
84
88
  *
85
89
  * @private
86
90
  */
@@ -111,7 +115,7 @@ Object.defineProperties(Multiple3DTileContent.prototype, {
111
115
  *
112
116
  * @memberof Multiple3DTileContent.prototype
113
117
  *
114
- * @type {Number}
118
+ * @type {number}
115
119
  * @readonly
116
120
  *
117
121
  * @private
@@ -128,7 +132,7 @@ Object.defineProperties(Multiple3DTileContent.prototype, {
128
132
  *
129
133
  * @memberof Multiple3DTileContent.prototype
130
134
  *
131
- * @type {Number}
135
+ * @type {number}
132
136
  * @readonly
133
137
  *
134
138
  * @private
@@ -145,7 +149,7 @@ Object.defineProperties(Multiple3DTileContent.prototype, {
145
149
  *
146
150
  * @memberof Multiple3DTileContent.prototype
147
151
  *
148
- * @type {Number}
152
+ * @type {number}
149
153
  * @readonly
150
154
  *
151
155
  * @private
@@ -162,7 +166,7 @@ Object.defineProperties(Multiple3DTileContent.prototype, {
162
166
  *
163
167
  * @memberof Multiple3DTileContent.prototype
164
168
  *
165
- * @type {Number}
169
+ * @type {number}
166
170
  * @readonly
167
171
  *
168
172
  * @private
@@ -179,7 +183,7 @@ Object.defineProperties(Multiple3DTileContent.prototype, {
179
183
  *
180
184
  * @memberof Multiple3DTileContent.prototype
181
185
  *
182
- * @type {Number}
186
+ * @type {number}
183
187
  * @readonly
184
188
  *
185
189
  * @private
@@ -196,7 +200,7 @@ Object.defineProperties(Multiple3DTileContent.prototype, {
196
200
  *
197
201
  * @memberof Multiple3DTileContent.prototype
198
202
  *
199
- * @type {Number}
203
+ * @type {number}
200
204
  * @readonly
201
205
  *
202
206
  * @private
@@ -214,34 +218,41 @@ Object.defineProperties(Multiple3DTileContent.prototype, {
214
218
  },
215
219
 
216
220
  /**
217
- * Part of the {@link Cesium3DTileContent} interface. This behaves
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 {Promise.<Cesium3DTileContent>|undefined}
225
+ * @type {boolean}
225
226
  * @readonly
226
- *
227
227
  * @private
228
228
  */
229
- readyPromise: {
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 undefined;
232
+ return false;
235
233
  }
236
234
 
237
- const readyPromises = this._contents.map(function (content) {
238
- return content.readyPromise;
239
- });
235
+ return this._ready;
236
+ },
237
+ },
240
238
 
241
- const that = this;
242
- return Promise.all(readyPromises).then(function () {
243
- return that;
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
 
@@ -263,7 +274,7 @@ Object.defineProperties(Multiple3DTileContent.prototype, {
263
274
  * have a single URL, so this returns undefined.
264
275
  * @memberof Multiple3DTileContent.prototype
265
276
  *
266
- * @type {String}
277
+ * @type {string}
267
278
  * @readonly
268
279
  * @private
269
280
  */
@@ -327,7 +338,7 @@ Object.defineProperties(Multiple3DTileContent.prototype, {
327
338
  * {@link Cesium3DTileset#debugShowUrl}.
328
339
  * @memberof Multiple3DTileContent.prototype
329
340
  *
330
- * @type {String[]}
341
+ * @type {string[]}
331
342
  * @readonly
332
343
  * @private
333
344
  */
@@ -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 {Number} The number of attempted requests that were unable to be scheduled.
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,32 +391,32 @@ 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
- return this._serverKeys.length;
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
- this._cancelCount,
408
+ originalCancelCount,
411
409
  this._tile._contentState
412
410
  );
413
411
  }
414
412
 
415
- this._contentsFetchedPromise = createInnerContents(this);
416
-
417
- return 0;
413
+ return createInnerContents(this);
418
414
  };
419
415
 
420
416
  /**
421
417
  * Check if all requests for inner contents can be scheduled at once. This is slower, but it avoids a potential memory leak.
422
- * @param {String[]} serverKeys The server keys for all of the inner contents
423
- * @return {Boolean} True if the request scheduler has enough open slots for all inner contents
418
+ * @param {string[]} serverKeys The server keys for all of the inner contents
419
+ * @return {boolean} True if the request scheduler has enough open slots for all inner contents
424
420
  * @private
425
421
  */
426
422
  function canScheduleAllRequests(serverKeys) {
@@ -476,28 +472,39 @@ function requestInnerContent(
476
472
 
477
473
  const promise = contentResource.fetchArrayBuffer();
478
474
  if (!defined(promise)) {
479
- return Promise.resolve(undefined);
475
+ return;
480
476
  }
481
477
 
482
478
  return promise
483
479
  .then(function (arrayBuffer) {
484
- // Short circuit if another inner content was canceled.
480
+ // Pending requests have already been canceled.
485
481
  if (originalCancelCount < multipleContents._cancelCount) {
486
- return undefined;
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
- // Short circuit if another inner content was canceled.
497
+ // Pending requests have already been canceled.
494
498
  if (originalCancelCount < multipleContents._cancelCount) {
495
- return undefined;
499
+ return;
496
500
  }
497
501
 
498
- if (contentResource.request.state === RequestState.CANCELLED) {
502
+ if (
503
+ contentResource.request.cancelled ||
504
+ contentResource.request.state === RequestState.CANCELLED
505
+ ) {
499
506
  cancelPendingRequests(multipleContents, originalContentState);
500
- return undefined;
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
- return Promise.all(multipleContents._arrayFetchPromises).then(function (
511
- arrayBuffers
512
- ) {
513
- // Short circuit if inner contents were canceled
514
- if (originalCancelCount < multipleContents._cancelCount) {
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
- return createInnerContent(multipleContents, arrayBuffer, i);
526
- });
523
+ const promises = arrayBuffers.map((arrayBuffer, i) =>
524
+ createInnerContent(multipleContents, arrayBuffer, i)
525
+ );
527
526
 
528
- // Even if we had a partial success, mark that we finished creating
529
- // contents
530
- multipleContents._contentsCreated = true;
531
- multipleContents._contents = contents.filter(defined);
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
- const preprocessed = preprocess3DTileContent(arrayBuffer);
537
-
538
- if (preprocessed.contentType === Cesium3DTileContentType.EXTERNAL_TILESET) {
539
- const error = new RuntimeError(
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
- multipleContents._disableSkipLevelOfDetail =
547
- multipleContents._disableSkipLevelOfDetail ||
548
- preprocessed.contentType === Cesium3DTileContentType.GEOMETRY ||
549
- preprocessed.contentType === Cesium3DTileContentType.VECTOR;
542
+ try {
543
+ const preprocessed = preprocess3DTileContent(arrayBuffer);
550
544
 
551
- const tileset = multipleContents._tileset;
552
- const resource = multipleContents._innerContentResources[index];
553
- const tile = multipleContents._tile;
554
-
555
- let content;
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
- const contentHeader = multipleContents._innerContentHeaders[index];
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
- if (tile.hasImplicitContentMetadata) {
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
- const groupMetadata = findGroupMetadata(tileset, contentHeader);
581
- if (defined(groupMetadata)) {
582
- content.group = new Cesium3DContentGroup({
583
- metadata: groupMetadata,
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
 
@@ -10,7 +10,7 @@ function NeverTileDiscardPolicy(options) {}
10
10
 
11
11
  /**
12
12
  * Determines if the discard policy is ready to process images.
13
- * @returns {Boolean} True if the discard policy is ready to process images; otherwise, false.
13
+ * @returns {boolean} True if the discard policy is ready to process images; otherwise, false.
14
14
  */
15
15
  NeverTileDiscardPolicy.prototype.isReady = function () {
16
16
  return true;
@@ -20,7 +20,7 @@ NeverTileDiscardPolicy.prototype.isReady = function () {
20
20
  * Given a tile image, decide whether to discard that image.
21
21
  *
22
22
  * @param {HTMLImageElement} image An image to test.
23
- * @returns {Boolean} True if the image should be discarded; otherwise, false.
23
+ * @returns {boolean} True if the image should be discarded; otherwise, false.
24
24
  */
25
25
  NeverTileDiscardPolicy.prototype.shouldDiscardImage = function (image) {
26
26
  return false;
@@ -131,8 +131,8 @@ function destroyResources(oit) {
131
131
  * @private
132
132
  * @param {OIT} oit
133
133
  * @param {Context} context
134
- * @param {Number} width
135
- * @param {Number} height
134
+ * @param {number} width
135
+ * @param {number} height
136
136
  */
137
137
  function updateTextures(oit, context, width, height) {
138
138
  destroyTextures(oit);
@@ -165,7 +165,7 @@ function updateTextures(oit, context, width, height) {
165
165
  * @private
166
166
  * @param {OIT} oit
167
167
  * @param {Context} context
168
- * @returns {Boolean}
168
+ * @returns {boolean}
169
169
  */
170
170
  function updateFramebuffers(oit, context) {
171
171
  destroyFramebuffers(oit);
@@ -236,8 +236,8 @@ function updateFramebuffers(oit, context) {
236
236
  * @param {Context} context
237
237
  * @param {PassState} passState
238
238
  * @param {Framebuffer} framebuffer
239
- * @param {Boolean} useHDR
240
- * @param {Number} numSamples
239
+ * @param {boolean} useHDR
240
+ * @param {number} numSamples
241
241
  */
242
242
  OIT.prototype.update = function (
243
243
  context,
@@ -510,8 +510,8 @@ const alphaShaderSource =
510
510
  * @private
511
511
  * @param {Context} context
512
512
  * @param {ShaderProgram} shaderProgram
513
- * @param {String} keyword
514
- * @param {String} source
513
+ * @param {string} keyword
514
+ * @param {string} source
515
515
  * @returns {ShaderProgram}
516
516
  */
517
517
  function getTranslucentShaderProgram(context, shaderProgram, keyword, source) {
@@ -941,7 +941,7 @@ OIT.prototype.clear = function (context, passState, clearColor) {
941
941
 
942
942
  /**
943
943
  * @private
944
- * @returns {Boolean}
944
+ * @returns {boolean}
945
945
  */
946
946
  OIT.prototype.isSupported = function () {
947
947
  return this._translucentMRTSupport || this._translucentMultipassSupport;
@@ -949,7 +949,7 @@ OIT.prototype.isSupported = function () {
949
949
 
950
950
  /**
951
951
  * @private
952
- * @returns {Boolean}
952
+ * @returns {boolean}
953
953
  */
954
954
  OIT.prototype.isDestroyed = function () {
955
955
  return false;
@@ -2,6 +2,7 @@ import Cartesian3 from "../Core/Cartesian3.js";
2
2
  import ComponentDatatype from "../Core/ComponentDatatype.js";
3
3
  import defined from "../Core/defined.js";
4
4
  import destroyObject from "../Core/destroyObject.js";
5
+ import Event from "../Core/Event.js";
5
6
  import IndexDatatype from "../Core/IndexDatatype.js";
6
7
  import loadKTX2 from "../Core/loadKTX2.js";
7
8
  import PixelFormat from "../Core/PixelFormat.js";
@@ -43,33 +44,14 @@ function OctahedralProjectedCubeMap(url) {
43
44
  this._loading = false;
44
45
  this._ready = false;
45
46
 
46
- const cubeMap = this;
47
- this._readyPromise = new Promise((resolve, reject) => {
48
- cubeMap._completeLoadFromCache = (cachedTexture) => {
49
- cleanupResources(this);
50
- this._texture = cachedTexture;
51
- this._maximumMipmapLevel = this._texture.maximumMipmapLevel;
52
- this._ready = true;
53
- resolve();
54
- return;
55
- };
56
-
57
- cubeMap._failLoad = (error) => {
58
- reject(error);
59
- };
60
-
61
- cubeMap._completeLoad = () => {
62
- this._ready = true;
63
- resolve();
64
- };
65
- });
47
+ this._errorEvent = new Event();
66
48
  }
67
49
 
68
50
  Object.defineProperties(OctahedralProjectedCubeMap.prototype, {
69
51
  /**
70
52
  * The url to the KTX2 file containing the specular environment map and convoluted mipmaps.
71
53
  * @memberof OctahedralProjectedCubeMap.prototype
72
- * @type {String}
54
+ * @type {string}
73
55
  * @readonly
74
56
  */
75
57
  url: {
@@ -77,6 +59,18 @@ Object.defineProperties(OctahedralProjectedCubeMap.prototype, {
77
59
  return this._url;
78
60
  },
79
61
  },
62
+ /**
63
+ * Gets an event that is raised when encountering an asynchronous error. By subscribing
64
+ * to the event, you will be notified of the error and can potentially recover from it.
65
+ * @memberof OctahedralProjectedCubeMap.prototype
66
+ * @type {Event}
67
+ * @readonly
68
+ */
69
+ errorEvent: {
70
+ get: function () {
71
+ return this._errorEvent;
72
+ },
73
+ },
80
74
  /**
81
75
  * A texture containing all the packed convolutions.
82
76
  * @memberof OctahedralProjectedCubeMap.prototype
@@ -91,7 +85,7 @@ Object.defineProperties(OctahedralProjectedCubeMap.prototype, {
91
85
  /**
92
86
  * The maximum number of mip levels.
93
87
  * @memberOf OctahedralProjectedCubeMap.prototype
94
- * @type {Number}
88
+ * @type {number}
95
89
  * @readonly
96
90
  */
97
91
  maximumMipmapLevel: {
@@ -102,7 +96,7 @@ Object.defineProperties(OctahedralProjectedCubeMap.prototype, {
102
96
  /**
103
97
  * Determines if the texture atlas is complete and ready to use.
104
98
  * @memberof OctahedralProjectedCubeMap.prototype
105
- * @type {Boolean}
99
+ * @type {boolean}
106
100
  * @readonly
107
101
  */
108
102
  ready: {
@@ -110,17 +104,6 @@ Object.defineProperties(OctahedralProjectedCubeMap.prototype, {
110
104
  return this._ready;
111
105
  },
112
106
  },
113
- /**
114
- * Gets a promise that resolves when the texture atlas is ready to use.
115
- * @memberof OctahedralProjectedCubeMap.prototype
116
- * @type {Promise<void>}
117
- * @readonly
118
- */
119
- readyPromise: {
120
- get: function () {
121
- return this._readyPromise;
122
- },
123
- },
124
107
  });
125
108
 
126
109
  OctahedralProjectedCubeMap.isSupported = function (context) {
@@ -298,7 +281,10 @@ OctahedralProjectedCubeMap.prototype.update = function (frameState) {
298
281
  if (!defined(this._texture) && !this._loading) {
299
282
  const cachedTexture = frameState.context.textureCache.getTexture(this._url);
300
283
  if (defined(cachedTexture)) {
301
- this._completeLoadFromCache(cachedTexture);
284
+ cleanupResources(this);
285
+ this._texture = cachedTexture;
286
+ this._maximumMipmapLevel = this._texture.maximumMipmapLevel;
287
+ this._ready = true;
302
288
  }
303
289
  }
304
290
 
@@ -310,8 +296,11 @@ OctahedralProjectedCubeMap.prototype.update = function (frameState) {
310
296
  that._cubeMapBuffers = buffers;
311
297
  that._loading = false;
312
298
  })
313
- .catch(function (e) {
314
- that._failLoad(e);
299
+ .catch(function (error) {
300
+ if (that.isDestroyed()) {
301
+ return;
302
+ }
303
+ that._errorEvent.raiseEvent(error);
315
304
  });
316
305
  this._loading = true;
317
306
  }
@@ -417,7 +406,7 @@ OctahedralProjectedCubeMap.prototype.update = function (frameState) {
417
406
  });
418
407
  frameState.commandList.push(atlasCommand);
419
408
 
420
- this._completeLoad();
409
+ this._ready = true;
421
410
  };
422
411
 
423
412
  /**
@@ -427,7 +416,7 @@ OctahedralProjectedCubeMap.prototype.update = function (frameState) {
427
416
  * <code>isDestroyed</code> will result in a {@link DeveloperError} exception.
428
417
  * </p>
429
418
  *
430
- * @returns {Boolean} <code>true</code> if this object was destroyed; otherwise, <code>false</code>.
419
+ * @returns {boolean} <code>true</code> if this object was destroyed; otherwise, <code>false</code>.
431
420
  *
432
421
  * @see OctahedralProjectedCubeMap#destroy
433
422
  */