@cesium/engine 11.0.0 → 12.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 (774) hide show
  1. package/Build/Workers/{chunk-HFPMX5L2.js → chunk-2B5H7KIN.js} +1 -1
  2. package/Build/Workers/{chunk-KKAEXHDY.js → chunk-2RHMHHJH.js} +2 -2
  3. package/Build/Workers/{chunk-AI3O7UN2.js → chunk-3OHDXGFC.js} +6 -6
  4. package/Build/Workers/{chunk-TTI2SUWJ.js → chunk-3OM5QZSI.js} +2 -2
  5. package/Build/Workers/{chunk-2EDC3QGH.js → chunk-3UJV3W4Y.js} +1 -1
  6. package/Build/Workers/{chunk-N3BIL6WA.js → chunk-3X2LXRHU.js} +13 -13
  7. package/Build/Workers/{chunk-FJT3ERV7.js → chunk-4ESQ3DN2.js} +9 -9
  8. package/Build/Workers/{chunk-HO2NTC7I.js → chunk-4IQPX22D.js} +6 -6
  9. package/Build/Workers/{chunk-L6FARMF6.js → chunk-4XPGN5Y7.js} +11 -11
  10. package/Build/Workers/{chunk-4NBRIKB3.js → chunk-56LALJCU.js} +2 -2
  11. package/Build/Workers/{chunk-HC7RYWPZ.js → chunk-5FSKL7US.js} +12 -12
  12. package/Build/Workers/{chunk-54VC7SCM.js → chunk-5YKJKOFE.js} +7 -7
  13. package/Build/Workers/{chunk-6ZREIBKS.js → chunk-62YGXNGC.js} +7 -7
  14. package/Build/Workers/{chunk-BH5ZEN4I.js → chunk-6DYMJ57Z.js} +10 -10
  15. package/Build/Workers/{chunk-AS7P4BHI.js → chunk-7DSVCRFD.js} +6 -6
  16. package/Build/Workers/{chunk-6FFGOENI.js → chunk-7OISMGQF.js} +46 -23
  17. package/Build/Workers/{chunk-BJ3WF5RW.js → chunk-AL7BHP36.js} +6 -6
  18. package/Build/Workers/{chunk-WQRXRDCZ.js → chunk-AOCENJVH.js} +11 -11
  19. package/Build/Workers/{chunk-2MKRG7L7.js → chunk-ARTM66DL.js} +5 -5
  20. package/Build/Workers/{chunk-VSFFJGTA.js → chunk-B4AZL6Q4.js} +5 -5
  21. package/Build/Workers/{chunk-5IY5BXCT.js → chunk-BQNTN4CC.js} +83 -79
  22. package/Build/Workers/{chunk-AUM45VEG.js → chunk-C4IAULHW.js} +15 -15
  23. package/Build/Workers/{chunk-6PJIHPQB.js → chunk-ES6Q5HWK.js} +13 -13
  24. package/Build/Workers/{chunk-DVAIU7A4.js → chunk-GKBICLGC.js} +19 -23
  25. package/Build/Workers/{chunk-IBG5FVXC.js → chunk-GMGUR5GM.js} +4 -4
  26. package/Build/Workers/{chunk-OOA6GXKD.js → chunk-GUW6BS72.js} +7 -7
  27. package/Build/Workers/{chunk-KFW4UNQH.js → chunk-GYHHNFW5.js} +15 -25
  28. package/Build/Workers/{chunk-GOHDOWU5.js → chunk-GZG526CC.js} +14 -14
  29. package/Build/Workers/{chunk-BZXF3GNX.js → chunk-HILBDZUP.js} +2 -2
  30. package/Build/Workers/{chunk-BBO6BGLC.js → chunk-HYUTWUXN.js} +13 -13
  31. package/Build/Workers/{chunk-HA6TZ3XT.js → chunk-IL6SMMDD.js} +4 -4
  32. package/Build/Workers/{chunk-T4MB73MC.js → chunk-IT6AWHFV.js} +2 -2
  33. package/Build/Workers/{chunk-SRZJCF7G.js → chunk-J64XIF5C.js} +10 -36
  34. package/Build/Workers/{chunk-BUOFSNFW.js → chunk-JGGZ3H4W.js} +1 -1
  35. package/Build/Workers/{chunk-SIZXFNJY.js → chunk-JRULXFCC.js} +5 -5
  36. package/Build/Workers/{chunk-QGT2GMOK.js → chunk-MSY2AAW2.js} +4 -4
  37. package/Build/Workers/{chunk-XLCZE6DD.js → chunk-QXBRZZQS.js} +10 -10
  38. package/Build/Workers/{chunk-JYUCC5NV.js → chunk-SXJ37VUC.js} +7 -7
  39. package/Build/Workers/{chunk-OC4MYPVW.js → chunk-T6FZFMTF.js} +2 -2
  40. package/Build/Workers/{chunk-OSCHEWSG.js → chunk-TQK4D4AR.js} +7 -7
  41. package/Build/Workers/{chunk-2RZYNSMR.js → chunk-US3L7FXC.js} +7 -9
  42. package/Build/Workers/{chunk-RFQYEYAL.js → chunk-VGT4ONMC.js} +18 -20
  43. package/Build/Workers/{chunk-VHJ5ESXF.js → chunk-VJVTWBXB.js} +1 -1
  44. package/Build/Workers/{chunk-RJF5ZP76.js → chunk-VQZNBD3T.js} +4 -4
  45. package/Build/Workers/{chunk-WXDGOYTT.js → chunk-VUCVRDLD.js} +7 -7
  46. package/Build/Workers/{chunk-DJXXI7UF.js → chunk-W2Q2F7JS.js} +5 -5
  47. package/Build/Workers/{chunk-HZPMWR4H.js → chunk-WQCX7U65.js} +7 -7
  48. package/Build/Workers/{chunk-HFMJM3SX.js → chunk-WW5RTJ72.js} +1 -1
  49. package/Build/Workers/{chunk-IXLNNST6.js → chunk-X67KKHI7.js} +4 -4
  50. package/Build/Workers/{chunk-4TK5YR6Q.js → chunk-X7VRF25X.js} +5 -5
  51. package/Build/Workers/{chunk-O5SSW3B3.js → chunk-YANQEHO5.js} +6 -6
  52. package/Build/Workers/{chunk-HBZSCVZC.js → chunk-ZZNBFQL5.js} +11 -11
  53. package/Build/Workers/combineGeometry.js +23 -25
  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 +25 -26
  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 +36 -40
  75. package/Build/Workers/createPolygonOutlineGeometry.js +40 -48
  76. package/Build/Workers/createPolylineGeometry.js +23 -23
  77. package/Build/Workers/createPolylineVolumeGeometry.js +32 -31
  78. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +25 -25
  79. package/Build/Workers/createRectangleGeometry.js +28 -30
  80. package/Build/Workers/createRectangleOutlineGeometry.js +19 -19
  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 +22 -26
  91. package/Build/Workers/createVerticesFromHeightmap.js +22 -26
  92. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +42 -32
  93. package/Build/Workers/createWallGeometry.js +22 -22
  94. package/Build/Workers/createWallOutlineGeometry.js +21 -21
  95. package/Build/Workers/decodeDraco.js +11 -11
  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/ApproximateTerrainHeights.js +15 -15
  102. package/Source/Core/ArcGISTiledElevationTerrainProvider.js +33 -35
  103. package/Source/Core/AttributeCompression.js +12 -12
  104. package/Source/Core/AxisAlignedBoundingBox.js +2 -2
  105. package/Source/Core/BingMapsGeocoderService.js +1 -1
  106. package/Source/Core/BoundingRectangle.js +3 -3
  107. package/Source/Core/BoundingSphere.js +45 -45
  108. package/Source/Core/BoxGeometry.js +6 -6
  109. package/Source/Core/BoxOutlineGeometry.js +3 -3
  110. package/Source/Core/Cartesian2.js +7 -7
  111. package/Source/Core/Cartesian3.js +20 -20
  112. package/Source/Core/Cartesian4.js +8 -8
  113. package/Source/Core/Cartographic.js +6 -6
  114. package/Source/Core/CatmullRomSpline.js +6 -6
  115. package/Source/Core/CesiumTerrainProvider.js +66 -68
  116. package/Source/Core/Check.d.ts +3 -3
  117. package/Source/Core/Check.js +11 -11
  118. package/Source/Core/CircleGeometry.js +6 -6
  119. package/Source/Core/CircleOutlineGeometry.js +4 -4
  120. package/Source/Core/Clock.js +4 -4
  121. package/Source/Core/Color.js +12 -9
  122. package/Source/Core/ColorGeometryInstanceAttribute.js +1 -1
  123. package/Source/Core/ComponentDatatype.js +4 -4
  124. package/Source/Core/CompressedTextureBuffer.js +2 -2
  125. package/Source/Core/ConstantSpline.js +1 -1
  126. package/Source/Core/CoplanarPolygonGeometry.js +44 -41
  127. package/Source/Core/CoplanarPolygonGeometryLibrary.js +5 -5
  128. package/Source/Core/CoplanarPolygonOutlineGeometry.js +6 -6
  129. package/Source/Core/CorridorGeometry.js +77 -77
  130. package/Source/Core/CorridorGeometryLibrary.js +48 -48
  131. package/Source/Core/CorridorOutlineGeometry.js +16 -16
  132. package/Source/Core/CullingVolume.js +4 -4
  133. package/Source/Core/CustomHeightmapTerrainProvider.js +13 -13
  134. package/Source/Core/CylinderGeometry.js +8 -8
  135. package/Source/Core/CylinderGeometryLibrary.js +1 -1
  136. package/Source/Core/CylinderOutlineGeometry.js +4 -4
  137. package/Source/Core/DeveloperError.js +1 -1
  138. package/Source/Core/DistanceDisplayConditionGeometryInstanceAttribute.js +20 -21
  139. package/Source/Core/DoubleEndedPriorityQueue.js +2 -2
  140. package/Source/Core/EarthOrientationParameters.js +21 -25
  141. package/Source/Core/EarthOrientationParametersSample.js +1 -1
  142. package/Source/Core/EllipseGeometry.js +55 -56
  143. package/Source/Core/EllipseGeometryLibrary.js +12 -12
  144. package/Source/Core/EllipseOutlineGeometry.js +19 -19
  145. package/Source/Core/Ellipsoid.js +25 -33
  146. package/Source/Core/EllipsoidGeodesic.js +18 -17
  147. package/Source/Core/EllipsoidGeometry.js +9 -8
  148. package/Source/Core/EllipsoidOutlineGeometry.js +4 -4
  149. package/Source/Core/EllipsoidRhumbLine.js +33 -32
  150. package/Source/Core/EllipsoidTangentPlane.js +16 -16
  151. package/Source/Core/EllipsoidTerrainProvider.js +11 -10
  152. package/Source/Core/EllipsoidalOccluder.js +110 -130
  153. package/Source/Core/FeatureDetection.js +4 -4
  154. package/Source/Core/FrustumGeometry.js +15 -15
  155. package/Source/Core/FrustumOutlineGeometry.js +4 -4
  156. package/Source/Core/GeographicTilingScheme.js +6 -6
  157. package/Source/Core/Geometry.js +15 -17
  158. package/Source/Core/GeometryAttribute.js +4 -9
  159. package/Source/Core/GeometryAttributes.js +6 -6
  160. package/Source/Core/GeometryInstance.js +3 -4
  161. package/Source/Core/GeometryInstanceAttribute.js +1 -6
  162. package/Source/Core/GeometryPipeline.js +133 -137
  163. package/Source/Core/GoogleEarthEnterpriseMetadata.js +19 -20
  164. package/Source/Core/GoogleEarthEnterpriseTerrainData.js +25 -24
  165. package/Source/Core/GoogleEarthEnterpriseTerrainProvider.js +17 -21
  166. package/Source/Core/GoogleEarthEnterpriseTileInformation.js +2 -2
  167. package/Source/Core/GoogleMaps.js +1 -1
  168. package/Source/Core/GregorianDate.js +4 -4
  169. package/Source/Core/GroundPolylineGeometry.js +104 -104
  170. package/Source/Core/HeadingPitchRoll.js +7 -7
  171. package/Source/Core/HeightmapTerrainData.js +58 -54
  172. package/Source/Core/HeightmapTessellator.js +22 -23
  173. package/Source/Core/HermitePolynomialApproximation.js +8 -8
  174. package/Source/Core/HermiteSpline.js +11 -11
  175. package/Source/Core/HilbertOrder.js +1 -1
  176. package/Source/Core/Iau2006XysData.js +6 -6
  177. package/Source/Core/IauOrientationAxes.js +2 -2
  178. package/Source/Core/IauOrientationParameters.js +1 -1
  179. package/Source/Core/IndexDatatype.js +5 -5
  180. package/Source/Core/IntersectionTests.js +36 -78
  181. package/Source/Core/Intersections2D.js +3 -3
  182. package/Source/Core/Ion.js +1 -1
  183. package/Source/Core/IonGeocoderService.js +2 -2
  184. package/Source/Core/IonResource.js +5 -5
  185. package/Source/Core/Iso8601.js +3 -3
  186. package/Source/Core/JulianDate.js +23 -33
  187. package/Source/Core/KTX2Transcoder.js +2 -2
  188. package/Source/Core/LagrangePolynomialApproximation.js +1 -1
  189. package/Source/Core/LinearApproximation.js +4 -4
  190. package/Source/Core/LinearSpline.js +2 -2
  191. package/Source/Core/Math.js +6 -4
  192. package/Source/Core/Matrix2.js +3 -3
  193. package/Source/Core/Matrix3.js +16 -16
  194. package/Source/Core/Matrix4.js +31 -31
  195. package/Source/Core/MorphWeightSpline.js +2 -2
  196. package/Source/Core/NearFarScalar.js +1 -1
  197. package/Source/Core/Occluder.js +52 -56
  198. package/Source/Core/OpenCageGeocoderService.js +2 -2
  199. package/Source/Core/OrientedBoundingBox.js +52 -51
  200. package/Source/Core/OrthographicFrustum.js +11 -11
  201. package/Source/Core/OrthographicOffCenterFrustum.js +17 -17
  202. package/Source/Core/PeliasGeocoderService.js +1 -1
  203. package/Source/Core/PerspectiveFrustum.js +61 -55
  204. package/Source/Core/PerspectiveOffCenterFrustum.js +58 -59
  205. package/Source/Core/PinBuilder.js +1 -1
  206. package/Source/Core/PixelFormat.js +6 -6
  207. package/Source/Core/Plane.js +9 -9
  208. package/Source/Core/PlaneGeometry.js +1 -1
  209. package/Source/Core/PolygonGeometry.js +95 -94
  210. package/Source/Core/PolygonGeometryLibrary.js +49 -51
  211. package/Source/Core/PolygonOutlineGeometry.js +49 -51
  212. package/Source/Core/PolygonPipeline.js +31 -31
  213. package/Source/Core/PolylineGeometry.js +10 -10
  214. package/Source/Core/PolylinePipeline.js +25 -25
  215. package/Source/Core/PolylineVolumeGeometry.js +9 -9
  216. package/Source/Core/PolylineVolumeGeometryLibrary.js +53 -53
  217. package/Source/Core/PolylineVolumeOutlineGeometry.js +6 -6
  218. package/Source/Core/QuadraticRealPolynomial.js +1 -1
  219. package/Source/Core/QuantizedMeshTerrainData.js +28 -28
  220. package/Source/Core/QuarticRealPolynomial.js +1 -1
  221. package/Source/Core/Quaternion.js +19 -19
  222. package/Source/Core/QuaternionSpline.js +2 -2
  223. package/Source/Core/Rectangle.js +34 -13
  224. package/Source/Core/RectangleCollisionChecker.js +3 -3
  225. package/Source/Core/RectangleGeometry.js +55 -56
  226. package/Source/Core/RectangleGeometryLibrary.js +8 -8
  227. package/Source/Core/RectangleOutlineGeometry.js +20 -20
  228. package/Source/Core/RequestScheduler.js +6 -6
  229. package/Source/Core/Resource.js +24 -24
  230. package/Source/Core/S2Cell.js +16 -80
  231. package/Source/Core/ScreenSpaceEventHandler.js +54 -53
  232. package/Source/Core/Simon1994PlanetaryPositions.js +13 -13
  233. package/Source/Core/SimplePolylineGeometry.js +7 -7
  234. package/Source/Core/SphereGeometry.js +2 -2
  235. package/Source/Core/SphereOutlineGeometry.js +3 -3
  236. package/Source/Core/Spline.js +1 -1
  237. package/Source/Core/SteppedSpline.js +1 -1
  238. package/Source/Core/Stereographic.js +9 -9
  239. package/Source/Core/TaskProcessor.js +13 -13
  240. package/Source/Core/TerrainEncoding.js +33 -38
  241. package/Source/Core/TerrainMesh.js +1 -1
  242. package/Source/Core/TerrainProvider.js +12 -12
  243. package/Source/Core/TileAvailability.js +28 -28
  244. package/Source/Core/TileProviderError.js +5 -5
  245. package/Source/Core/TilingScheme.js +1 -1
  246. package/Source/Core/TimeInterval.js +4 -4
  247. package/Source/Core/TimeIntervalCollection.js +16 -15
  248. package/Source/Core/Tipsify.js +2 -2
  249. package/Source/Core/Transforms.js +52 -54
  250. package/Source/Core/TranslationRotationScale.js +1 -1
  251. package/Source/Core/TridiagonalSystemSolver.js +4 -4
  252. package/Source/Core/VRTheWorldTerrainProvider.js +28 -26
  253. package/Source/Core/VertexFormat.js +6 -6
  254. package/Source/Core/VerticalExaggeration.js +4 -4
  255. package/Source/Core/VideoSynchronizer.js +1 -1
  256. package/Source/Core/WallGeometry.js +18 -18
  257. package/Source/Core/WallGeometryLibrary.js +7 -7
  258. package/Source/Core/WallOutlineGeometry.js +8 -8
  259. package/Source/Core/WebMercatorProjection.js +5 -6
  260. package/Source/Core/WebMercatorTilingScheme.js +13 -13
  261. package/Source/Core/WireframeIndexGenerator.js +8 -8
  262. package/Source/Core/arrayRemoveDuplicates.js +1 -1
  263. package/Source/Core/buildModuleUrl.js +2 -2
  264. package/Source/Core/decodeGoogleEarthEnterpriseData.js +4 -4
  265. package/Source/Core/decodeVectorPolylinePositions.js +4 -4
  266. package/Source/Core/destroyObject.js +1 -1
  267. package/Source/Core/getJsonFromTypedArray.js +1 -1
  268. package/Source/Core/getMagic.js +1 -1
  269. package/Source/Core/loadImageFromTypedArray.js +2 -2
  270. package/Source/Core/loadKTX2.js +1 -1
  271. package/Source/Core/pointInsideTriangle.js +1 -1
  272. package/Source/Core/resizeImageToNextPowerOfTwo.js +1 -1
  273. package/Source/Core/sampleTerrain.js +7 -7
  274. package/Source/Core/sampleTerrainMostDetailed.js +7 -7
  275. package/Source/Core/scaleToGeodeticSurface.js +3 -3
  276. package/Source/Core/srgbToLinear.js +1 -1
  277. package/Source/Core/writeTextToCanvas.js +1 -1
  278. package/Source/DataSources/BillboardGraphics.js +13 -13
  279. package/Source/DataSources/BillboardVisualizer.js +24 -24
  280. package/Source/DataSources/BoxGeometryUpdater.js +33 -32
  281. package/Source/DataSources/BoxGraphics.js +3 -3
  282. package/Source/DataSources/CallbackPositionProperty.js +173 -0
  283. package/Source/DataSources/Cesium3DTilesetGraphics.js +1 -1
  284. package/Source/DataSources/Cesium3DTilesetVisualizer.js +6 -6
  285. package/Source/DataSources/CheckerboardMaterialProperty.js +2 -2
  286. package/Source/DataSources/ColorMaterialProperty.js +1 -1
  287. package/Source/DataSources/CompositeEntityCollection.js +14 -15
  288. package/Source/DataSources/CompositeMaterialProperty.js +5 -7
  289. package/Source/DataSources/CompositePositionProperty.js +4 -5
  290. package/Source/DataSources/CompositeProperty.js +2 -2
  291. package/Source/DataSources/ConstantPositionProperty.js +2 -2
  292. package/Source/DataSources/CorridorGeometryUpdater.js +61 -56
  293. package/Source/DataSources/CorridorGraphics.js +6 -6
  294. package/Source/DataSources/CylinderGeometryUpdater.js +42 -40
  295. package/Source/DataSources/CylinderGraphics.js +4 -4
  296. package/Source/DataSources/CzmlDataSource.js +365 -368
  297. package/Source/DataSources/DataSourceCollection.js +1 -1
  298. package/Source/DataSources/DataSourceDisplay.js +24 -24
  299. package/Source/DataSources/DynamicGeometryBatch.js +2 -2
  300. package/Source/DataSources/DynamicGeometryUpdater.js +14 -18
  301. package/Source/DataSources/EllipseGeometryUpdater.js +67 -63
  302. package/Source/DataSources/EllipseGraphics.js +7 -7
  303. package/Source/DataSources/EllipsoidGeometryUpdater.js +88 -86
  304. package/Source/DataSources/EllipsoidGraphics.js +5 -5
  305. package/Source/DataSources/Entity.js +13 -13
  306. package/Source/DataSources/EntityCluster.js +29 -27
  307. package/Source/DataSources/EntityCollection.js +7 -7
  308. package/Source/DataSources/EntityView.js +23 -23
  309. package/Source/DataSources/GeoJsonDataSource.js +25 -25
  310. package/Source/DataSources/GeometryUpdater.js +9 -10
  311. package/Source/DataSources/GeometryUpdaterSet.js +3 -3
  312. package/Source/DataSources/GeometryVisualizer.js +65 -71
  313. package/Source/DataSources/GpxDataSource.js +10 -10
  314. package/Source/DataSources/GridMaterialProperty.js +5 -5
  315. package/Source/DataSources/GroundGeometryUpdater.js +6 -6
  316. package/Source/DataSources/ImageMaterialProperty.js +2 -2
  317. package/Source/DataSources/KmlDataSource.js +212 -212
  318. package/Source/DataSources/LabelGraphics.js +14 -14
  319. package/Source/DataSources/LabelVisualizer.js +24 -24
  320. package/Source/DataSources/ModelGraphics.js +38 -17
  321. package/Source/DataSources/ModelVisualizer.js +41 -32
  322. package/Source/DataSources/NodeTransformationProperty.js +3 -3
  323. package/Source/DataSources/PathGraphics.js +2 -2
  324. package/Source/DataSources/PathVisualizer.js +99 -35
  325. package/Source/DataSources/PlaneGeometryUpdater.js +38 -37
  326. package/Source/DataSources/PlaneGraphics.js +2 -2
  327. package/Source/DataSources/PointGraphics.js +8 -8
  328. package/Source/DataSources/PointVisualizer.js +29 -29
  329. package/Source/DataSources/PolygonGeometryUpdater.js +68 -64
  330. package/Source/DataSources/PolygonGraphics.js +9 -9
  331. package/Source/DataSources/PolylineArrowMaterialProperty.js +1 -1
  332. package/Source/DataSources/PolylineDashMaterialProperty.js +4 -4
  333. package/Source/DataSources/PolylineGeometryUpdater.js +39 -44
  334. package/Source/DataSources/PolylineGlowMaterialProperty.js +3 -3
  335. package/Source/DataSources/PolylineGraphics.js +4 -4
  336. package/Source/DataSources/PolylineOutlineMaterialProperty.js +3 -3
  337. package/Source/DataSources/PolylineVisualizer.js +39 -43
  338. package/Source/DataSources/PolylineVolumeGeometryUpdater.js +70 -68
  339. package/Source/DataSources/PolylineVolumeGraphics.js +2 -2
  340. package/Source/DataSources/PositionProperty.js +4 -3
  341. package/Source/DataSources/PositionPropertyArray.js +3 -3
  342. package/Source/DataSources/Property.js +1 -1
  343. package/Source/DataSources/PropertyArray.js +1 -1
  344. package/Source/DataSources/PropertyBag.js +5 -5
  345. package/Source/DataSources/RectangleGeometryUpdater.js +68 -63
  346. package/Source/DataSources/RectangleGraphics.js +6 -6
  347. package/Source/DataSources/ReferenceProperty.js +6 -6
  348. package/Source/DataSources/Rotation.js +2 -2
  349. package/Source/DataSources/SampledPositionProperty.js +6 -6
  350. package/Source/DataSources/SampledProperty.js +16 -16
  351. package/Source/DataSources/ScaledPositionProperty.js +2 -2
  352. package/Source/DataSources/StaticGeometryColorBatch.js +41 -41
  353. package/Source/DataSources/StaticGeometryPerMaterialBatch.js +40 -40
  354. package/Source/DataSources/StaticGroundGeometryColorBatch.js +26 -27
  355. package/Source/DataSources/StaticGroundGeometryPerMaterialBatch.js +46 -44
  356. package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +44 -43
  357. package/Source/DataSources/StaticOutlineGeometryBatch.js +28 -29
  358. package/Source/DataSources/StripeMaterialProperty.js +2 -2
  359. package/Source/DataSources/TerrainOffsetProperty.js +11 -11
  360. package/Source/DataSources/TimeIntervalCollectionPositionProperty.js +28 -30
  361. package/Source/DataSources/TimeIntervalCollectionProperty.js +1 -1
  362. package/Source/DataSources/VelocityOrientationProperty.js +3 -3
  363. package/Source/DataSources/VelocityVectorProperty.js +4 -4
  364. package/Source/DataSources/WallGeometryUpdater.js +25 -25
  365. package/Source/DataSources/WallGraphics.js +4 -4
  366. package/Source/DataSources/createPropertyDescriptor.js +3 -3
  367. package/Source/DataSources/exportKml.js +90 -86
  368. package/Source/DataSources/getElement.js +1 -1
  369. package/Source/DataSources/heightReferenceOnEntityPropertyChanged.js +4 -4
  370. package/Source/Renderer/AutomaticUniforms.js +14 -1
  371. package/Source/Renderer/Buffer.js +18 -18
  372. package/Source/Renderer/ClearCommand.js +1 -1
  373. package/Source/Renderer/ComputeEngine.js +1 -1
  374. package/Source/Renderer/Context.js +40 -40
  375. package/Source/Renderer/CubeMap.js +109 -32
  376. package/Source/Renderer/CubeMapFace.js +109 -32
  377. package/Source/Renderer/DrawCommand.js +50 -5
  378. package/Source/Renderer/Framebuffer.js +48 -49
  379. package/Source/Renderer/FramebufferManager.js +40 -34
  380. package/Source/Renderer/MultisampleFramebuffer.js +35 -14
  381. package/Source/Renderer/RenderState.js +36 -36
  382. package/Source/Renderer/Renderbuffer.js +3 -3
  383. package/Source/Renderer/Sampler.js +2 -2
  384. package/Source/Renderer/ShaderBuilder.js +8 -8
  385. package/Source/Renderer/ShaderCache.js +11 -15
  386. package/Source/Renderer/ShaderFunction.js +1 -1
  387. package/Source/Renderer/ShaderProgram.js +15 -15
  388. package/Source/Renderer/ShaderSource.js +40 -40
  389. package/Source/Renderer/Texture.js +74 -63
  390. package/Source/Renderer/UniformState.js +78 -58
  391. package/Source/Renderer/VertexArray.js +20 -20
  392. package/Source/Renderer/VertexArrayFacade.js +15 -16
  393. package/Source/Renderer/createUniform.js +1 -1
  394. package/Source/Renderer/createUniformArray.js +4 -4
  395. package/Source/Renderer/demodernizeShader.js +5 -5
  396. package/Source/Renderer/loadCubeMap.js +1 -1
  397. package/Source/Scene/ArcGisMapServerImageryProvider.js +39 -45
  398. package/Source/Scene/ArcGisMapService.js +4 -7
  399. package/Source/Scene/Atmosphere.js +22 -0
  400. package/Source/Scene/AutoExposure.js +4 -5
  401. package/Source/Scene/Axis.js +6 -6
  402. package/Source/Scene/B3dmParser.js +9 -9
  403. package/Source/Scene/BatchTable.js +7 -7
  404. package/Source/Scene/BatchTableHierarchy.js +62 -59
  405. package/Source/Scene/BatchTexture.js +2 -2
  406. package/Source/Scene/Billboard.js +45 -43
  407. package/Source/Scene/BillboardCollection.js +81 -83
  408. package/Source/Scene/BingMapsImageryProvider.js +13 -13
  409. package/Source/Scene/BoundingVolumeSemantics.js +10 -10
  410. package/Source/Scene/BoxEmitter.js +1 -1
  411. package/Source/Scene/BufferLoader.js +1 -1
  412. package/Source/Scene/Camera.js +161 -164
  413. package/Source/Scene/CameraEventAggregator.js +18 -18
  414. package/Source/Scene/CameraFlightPath.js +25 -25
  415. package/Source/Scene/Cesium3DTile.js +89 -95
  416. package/Source/Scene/Cesium3DTileBatchTable.js +61 -61
  417. package/Source/Scene/Cesium3DTileContentFactory.js +7 -7
  418. package/Source/Scene/Cesium3DTileFeature.js +1 -1
  419. package/Source/Scene/Cesium3DTileFeatureTable.js +8 -8
  420. package/Source/Scene/Cesium3DTileOptimizations.js +1 -1
  421. package/Source/Scene/Cesium3DTilePointFeature.js +11 -11
  422. package/Source/Scene/Cesium3DTileStyle.js +26 -24
  423. package/Source/Scene/Cesium3DTilesVoxelProvider.js +14 -20
  424. package/Source/Scene/Cesium3DTileset.js +120 -83
  425. package/Source/Scene/Cesium3DTilesetBaseTraversal.js +8 -16
  426. package/Source/Scene/Cesium3DTilesetCache.js +2 -2
  427. package/Source/Scene/Cesium3DTilesetHeatmap.js +5 -5
  428. package/Source/Scene/Cesium3DTilesetMetadata.js +2 -2
  429. package/Source/Scene/Cesium3DTilesetMostDetailedTraversal.js +2 -2
  430. package/Source/Scene/Cesium3DTilesetSkipTraversal.js +8 -12
  431. package/Source/Scene/Cesium3DTilesetStatistics.js +1 -1
  432. package/Source/Scene/Cesium3DTilesetTraversal.js +8 -10
  433. package/Source/Scene/ClassificationPrimitive.js +70 -69
  434. package/Source/Scene/ClippingPlaneCollection.js +39 -41
  435. package/Source/Scene/ClippingPolygon.js +8 -8
  436. package/Source/Scene/ClippingPolygonCollection.js +62 -63
  437. package/Source/Scene/CloudCollection.js +3 -10
  438. package/Source/Scene/Composite3DTileContent.js +6 -6
  439. package/Source/Scene/ConditionsExpression.js +5 -5
  440. package/Source/Scene/ContentMetadata.js +4 -4
  441. package/Source/Scene/CreditDisplay.js +8 -8
  442. package/Source/Scene/CumulusCloud.js +4 -4
  443. package/Source/Scene/DebugAppearance.js +2 -2
  444. package/Source/Scene/DebugCameraPrimitive.js +2 -2
  445. package/Source/Scene/DebugInspector.js +3 -3
  446. package/Source/Scene/DebugModelMatrixPrimitive.js +4 -4
  447. package/Source/Scene/DepthPlane.js +7 -7
  448. package/Source/Scene/DerivedCommand.js +422 -238
  449. package/Source/Scene/DiscardMissingTileImagePolicy.js +1 -1
  450. package/Source/Scene/DracoLoader.js +3 -3
  451. package/Source/Scene/DynamicEnvironmentMapManager.js +852 -0
  452. package/Source/Scene/EllipsoidPrimitive.js +7 -7
  453. package/Source/Scene/EllipsoidSurfaceAppearance.js +3 -3
  454. package/Source/Scene/Empty3DTileContent.js +1 -1
  455. package/Source/Scene/Expression.js +91 -91
  456. package/Source/Scene/Fog.js +76 -116
  457. package/Source/Scene/FrameRateMonitor.js +22 -22
  458. package/Source/Scene/FrameState.js +36 -3
  459. package/Source/Scene/Geometry3DTileContent.js +20 -20
  460. package/Source/Scene/GetFeatureInfoFormat.js +15 -14
  461. package/Source/Scene/Globe.js +32 -27
  462. package/Source/Scene/GlobeDepth.js +95 -66
  463. package/Source/Scene/GlobeSurfaceShaderSet.js +12 -10
  464. package/Source/Scene/GlobeSurfaceTile.js +33 -33
  465. package/Source/Scene/GlobeSurfaceTileProvider.js +127 -124
  466. package/Source/Scene/GlobeTranslucency.js +4 -4
  467. package/Source/Scene/GlobeTranslucencyFramebuffer.js +9 -9
  468. package/Source/Scene/GlobeTranslucencyState.js +53 -55
  469. package/Source/Scene/GltfBufferViewLoader.js +2 -2
  470. package/Source/Scene/GltfIndexBufferLoader.js +5 -5
  471. package/Source/Scene/GltfJsonLoader.js +2 -2
  472. package/Source/Scene/GltfLoader.js +177 -100
  473. package/Source/Scene/GltfStructuralMetadataLoader.js +9 -8
  474. package/Source/Scene/GltfTextureLoader.js +5 -5
  475. package/Source/Scene/GltfVertexBufferLoader.js +12 -13
  476. package/Source/Scene/GoogleEarthEnterpriseImageryProvider.js +9 -9
  477. package/Source/Scene/GoogleEarthEnterpriseMapsProvider.js +9 -9
  478. package/Source/Scene/GridImageryProvider.js +2 -2
  479. package/Source/Scene/GroundPolylinePrimitive.js +38 -39
  480. package/Source/Scene/GroundPrimitive.js +47 -45
  481. package/Source/Scene/GroupMetadata.js +4 -4
  482. package/Source/Scene/I3SDataProvider.js +12 -12
  483. package/Source/Scene/I3SDecoder.js +7 -8
  484. package/Source/Scene/I3SField.js +8 -8
  485. package/Source/Scene/I3SGeometry.js +14 -14
  486. package/Source/Scene/I3SLayer.js +26 -20
  487. package/Source/Scene/I3SNode.js +17 -17
  488. package/Source/Scene/I3SSublayer.js +4 -4
  489. package/Source/Scene/I3SSymbology.js +8 -8
  490. package/Source/Scene/I3dmParser.js +9 -9
  491. package/Source/Scene/ImageBasedLighting.js +32 -87
  492. package/Source/Scene/Imagery.js +3 -3
  493. package/Source/Scene/ImageryLayer.js +64 -66
  494. package/Source/Scene/ImageryLayerCollection.js +13 -15
  495. package/Source/Scene/ImageryLayerFeatureInfo.js +19 -20
  496. package/Source/Scene/ImageryProvider.js +1 -1
  497. package/Source/Scene/Implicit3DTileContent.js +34 -37
  498. package/Source/Scene/ImplicitAvailabilityBitstream.js +2 -2
  499. package/Source/Scene/ImplicitMetadataView.js +2 -2
  500. package/Source/Scene/ImplicitSubtree.js +29 -30
  501. package/Source/Scene/ImplicitSubtreeCache.js +1 -1
  502. package/Source/Scene/ImplicitSubtreeMetadata.js +5 -5
  503. package/Source/Scene/ImplicitTileCoordinates.js +11 -11
  504. package/Source/Scene/ImplicitTileset.js +2 -2
  505. package/Source/Scene/InvertClassification.js +7 -7
  506. package/Source/Scene/IonImageryProvider.js +6 -6
  507. package/Source/Scene/JobScheduler.js +4 -4
  508. package/Source/Scene/Label.js +29 -29
  509. package/Source/Scene/LabelCollection.js +17 -15
  510. package/Source/Scene/MapboxImageryProvider.js +3 -3
  511. package/Source/Scene/MapboxStyleImageryProvider.js +4 -4
  512. package/Source/Scene/Material.js +26 -27
  513. package/Source/Scene/MaterialAppearance.js +4 -4
  514. package/Source/Scene/Megatexture.js +21 -24
  515. package/Source/Scene/MetadataClassProperty.js +11 -11
  516. package/Source/Scene/MetadataComponentType.js +1 -1
  517. package/Source/Scene/MetadataEntity.js +8 -8
  518. package/Source/Scene/MetadataEnum.js +1 -1
  519. package/Source/Scene/MetadataPicking.js +305 -0
  520. package/Source/Scene/MetadataSchemaLoader.js +1 -1
  521. package/Source/Scene/MetadataTable.js +2 -2
  522. package/Source/Scene/MetadataTableProperty.js +22 -22
  523. package/Source/Scene/Model/AlphaPipelineStage.js +2 -2
  524. package/Source/Scene/Model/AtmospherePipelineStage.js +13 -8
  525. package/Source/Scene/Model/B3dmLoader.js +8 -8
  526. package/Source/Scene/Model/BatchTexturePipelineStage.js +2 -2
  527. package/Source/Scene/Model/CPUStylingPipelineStage.js +4 -4
  528. package/Source/Scene/Model/ClassificationModelDrawCommand.js +8 -8
  529. package/Source/Scene/Model/ClassificationPipelineStage.js +5 -5
  530. package/Source/Scene/Model/CustomShader.js +9 -9
  531. package/Source/Scene/Model/CustomShaderPipelineStage.js +37 -38
  532. package/Source/Scene/Model/DequantizationPipelineStage.js +5 -5
  533. package/Source/Scene/Model/Extensions/Gpm/AnchorPointDirect.js +61 -0
  534. package/Source/Scene/Model/Extensions/Gpm/AnchorPointIndirect.js +77 -0
  535. package/Source/Scene/Model/Extensions/Gpm/CorrelationGroup.js +81 -0
  536. package/Source/Scene/Model/Extensions/Gpm/GltfGpmLoader.js +248 -0
  537. package/Source/Scene/Model/Extensions/Gpm/GltfGpmLocal.js +179 -0
  538. package/Source/Scene/Model/Extensions/Gpm/GltfMeshPrimitiveGpmLoader.js +548 -0
  539. package/Source/Scene/Model/Extensions/Gpm/MeshPrimitiveGpmLocal.js +28 -0
  540. package/Source/Scene/Model/Extensions/Gpm/PpeMetadata.js +79 -0
  541. package/Source/Scene/Model/Extensions/Gpm/PpeSource.js +75 -0
  542. package/Source/Scene/Model/Extensions/Gpm/PpeTexture.js +127 -0
  543. package/Source/Scene/Model/Extensions/Gpm/Spdcf.js +103 -0
  544. package/Source/Scene/Model/Extensions/Gpm/StorageType.js +30 -0
  545. package/Source/Scene/Model/FeatureIdPipelineStage.js +40 -40
  546. package/Source/Scene/Model/GeoJsonLoader.js +17 -17
  547. package/Source/Scene/Model/GeometryPipelineStage.js +23 -24
  548. package/Source/Scene/Model/I3dmLoader.js +36 -36
  549. package/Source/Scene/Model/ImageBasedLightingPipelineStage.js +56 -34
  550. package/Source/Scene/Model/InstancingPipelineStage.js +86 -86
  551. package/Source/Scene/Model/LightingPipelineStage.js +4 -4
  552. package/Source/Scene/Model/MaterialPipelineStage.js +78 -93
  553. package/Source/Scene/Model/MetadataPickingPipelineStage.js +96 -0
  554. package/Source/Scene/Model/MetadataPipelineStage.js +39 -47
  555. package/Source/Scene/Model/Model.js +228 -75
  556. package/Source/Scene/Model/Model3DTileContent.js +37 -13
  557. package/Source/Scene/Model/ModelAnimationChannel.js +2 -2
  558. package/Source/Scene/Model/ModelAnimationCollection.js +9 -9
  559. package/Source/Scene/Model/ModelArticulation.js +2 -2
  560. package/Source/Scene/Model/ModelArticulationStage.js +4 -4
  561. package/Source/Scene/Model/ModelClippingPlanesPipelineStage.js +11 -11
  562. package/Source/Scene/Model/ModelClippingPolygonsPipelineStage.js +6 -6
  563. package/Source/Scene/Model/ModelColorPipelineStage.js +12 -13
  564. package/Source/Scene/Model/ModelDrawCommand.js +5 -5
  565. package/Source/Scene/Model/{buildDrawCommand.js → ModelDrawCommands.js} +85 -28
  566. package/Source/Scene/Model/ModelFeatureTable.js +5 -5
  567. package/Source/Scene/Model/ModelMatrixUpdateStage.js +24 -12
  568. package/Source/Scene/Model/ModelRenderResources.js +1 -1
  569. package/Source/Scene/Model/ModelRuntimeNode.js +15 -15
  570. package/Source/Scene/Model/ModelRuntimePrimitive.js +8 -5
  571. package/Source/Scene/Model/ModelSceneGraph.js +43 -43
  572. package/Source/Scene/Model/ModelSilhouettePipelineStage.js +4 -4
  573. package/Source/Scene/Model/ModelSkin.js +4 -4
  574. package/Source/Scene/Model/ModelSplitterPipelineStage.js +8 -9
  575. package/Source/Scene/Model/ModelUtility.js +5 -5
  576. package/Source/Scene/Model/MorphTargetsPipelineStage.js +18 -18
  577. package/Source/Scene/Model/NodeRenderResources.js +1 -1
  578. package/Source/Scene/Model/NodeStatisticsPipelineStage.js +1 -1
  579. package/Source/Scene/Model/PickingPipelineStage.js +5 -5
  580. package/Source/Scene/Model/PntsLoader.js +7 -7
  581. package/Source/Scene/Model/PointCloudStylingPipelineStage.js +22 -23
  582. package/Source/Scene/Model/PrimitiveOutlineGenerator.js +6 -6
  583. package/Source/Scene/Model/PrimitiveOutlinePipelineStage.js +7 -7
  584. package/Source/Scene/Model/PrimitiveRenderResources.js +3 -3
  585. package/Source/Scene/Model/PrimitiveStatisticsPipelineStage.js +1 -1
  586. package/Source/Scene/Model/SceneMode2DPipelineStage.js +23 -23
  587. package/Source/Scene/Model/SelectedFeatureIdPipelineStage.js +10 -14
  588. package/Source/Scene/Model/SkinningPipelineStage.js +5 -5
  589. package/Source/Scene/Model/StyleCommandsNeeded.js +1 -1
  590. package/Source/Scene/Model/TextureManager.js +2 -2
  591. package/Source/Scene/Model/TextureUniform.js +3 -3
  592. package/Source/Scene/Model/TilesetPipelineStage.js +2 -2
  593. package/Source/Scene/Model/VerticalExaggerationPipelineStage.js +4 -4
  594. package/Source/Scene/Model/WireframePipelineStage.js +7 -7
  595. package/Source/Scene/Model/pickModel.js +26 -26
  596. package/Source/Scene/ModelComponents.js +13 -4
  597. package/Source/Scene/Moon.js +6 -5
  598. package/Source/Scene/Multiple3DTileContent.js +15 -14
  599. package/Source/Scene/OIT.js +48 -97
  600. package/Source/Scene/OpenStreetMapImageryProvider.js +8 -7
  601. package/Source/Scene/OrderedGroundPrimitiveCollection.js +2 -2
  602. package/Source/Scene/Particle.js +3 -3
  603. package/Source/Scene/ParticleEmitter.js +1 -1
  604. package/Source/Scene/ParticleSystem.js +32 -32
  605. package/Source/Scene/PerInstanceColorAppearance.js +1 -1
  606. package/Source/Scene/PickDepth.js +16 -4
  607. package/Source/Scene/PickDepthFramebuffer.js +1 -1
  608. package/Source/Scene/PickFramebuffer.js +24 -12
  609. package/Source/Scene/PickedMetadataInfo.js +39 -0
  610. package/Source/Scene/Picking.js +270 -120
  611. package/Source/Scene/PntsParser.js +28 -28
  612. package/Source/Scene/PointCloud.js +39 -38
  613. package/Source/Scene/PointCloudEyeDomeLighting.js +6 -6
  614. package/Source/Scene/PointCloudShading.js +3 -3
  615. package/Source/Scene/PointPrimitive.js +31 -28
  616. package/Source/Scene/PointPrimitiveCollection.js +34 -33
  617. package/Source/Scene/Polyline.js +9 -9
  618. package/Source/Scene/PolylineCollection.js +55 -57
  619. package/Source/Scene/PolylineColorAppearance.js +3 -3
  620. package/Source/Scene/PolylineMaterialAppearance.js +3 -3
  621. package/Source/Scene/PostProcessStage.js +95 -115
  622. package/Source/Scene/PostProcessStageCollection.js +35 -41
  623. package/Source/Scene/PostProcessStageComposite.js +2 -2
  624. package/Source/Scene/PostProcessStageLibrary.js +5 -5
  625. package/Source/Scene/PostProcessStageTextureCache.js +10 -10
  626. package/Source/Scene/Primitive.js +93 -93
  627. package/Source/Scene/PrimitiveCollection.js +1 -1
  628. package/Source/Scene/PrimitiveLoadPlan.js +1 -1
  629. package/Source/Scene/PrimitivePipeline.js +30 -30
  630. package/Source/Scene/PropertyTable.js +5 -5
  631. package/Source/Scene/PropertyTextureProperty.js +36 -7
  632. package/Source/Scene/QuadtreePrimitive.js +56 -58
  633. package/Source/Scene/QuadtreeTile.js +4 -4
  634. package/Source/Scene/QuadtreeTileProvider.js +1 -1
  635. package/Source/Scene/ResourceCache.js +7 -7
  636. package/Source/Scene/ResourceCacheKey.js +15 -15
  637. package/Source/Scene/Scene.js +879 -657
  638. package/Source/Scene/SceneFramebuffer.js +2 -2
  639. package/Source/Scene/SceneTransforms.js +30 -30
  640. package/Source/Scene/SceneTransitioner.js +47 -47
  641. package/Source/Scene/ScreenSpaceCameraController.js +180 -154
  642. package/Source/Scene/SensorVolumePortionToDisplay.js +1 -1
  643. package/Source/Scene/ShadowMap.js +71 -72
  644. package/Source/Scene/ShadowMapShader.js +9 -9
  645. package/Source/Scene/ShadowVolumeAppearance.js +39 -39
  646. package/Source/Scene/SingleTileImageryProvider.js +3 -3
  647. package/Source/Scene/SkyAtmosphere.js +8 -8
  648. package/Source/Scene/SkyBox.js +7 -8
  649. package/Source/Scene/SpatialNode.js +13 -13
  650. package/Source/Scene/SphereEmitter.js +1 -1
  651. package/Source/Scene/StructuralMetadata.js +1 -1
  652. package/Source/Scene/StyleExpression.js +1 -1
  653. package/Source/Scene/Sun.js +11 -7
  654. package/Source/Scene/SunPostProcess.js +6 -6
  655. package/Source/Scene/TerrainFillMesh.js +157 -156
  656. package/Source/Scene/TextureAtlas.js +11 -11
  657. package/Source/Scene/TileBoundingRegion.js +31 -31
  658. package/Source/Scene/TileBoundingS2Cell.js +37 -40
  659. package/Source/Scene/TileBoundingSphere.js +2 -2
  660. package/Source/Scene/TileCoordinatesImageryProvider.js +3 -3
  661. package/Source/Scene/TileImagery.js +7 -11
  662. package/Source/Scene/TileMapServiceImageryProvider.js +26 -25
  663. package/Source/Scene/TileMetadata.js +4 -4
  664. package/Source/Scene/TileOrientedBoundingBox.js +6 -6
  665. package/Source/Scene/Tileset3DTileContent.js +1 -1
  666. package/Source/Scene/TilesetMetadata.js +4 -4
  667. package/Source/Scene/TimeDynamicImagery.js +3 -3
  668. package/Source/Scene/TimeDynamicPointCloud.js +9 -9
  669. package/Source/Scene/TranslucentTileClassification.js +48 -58
  670. package/Source/Scene/TweenCollection.js +9 -9
  671. package/Source/Scene/UrlTemplateImageryProvider.js +23 -23
  672. package/Source/Scene/Vector3DTileClampedPolylines.js +21 -21
  673. package/Source/Scene/Vector3DTileContent.js +38 -39
  674. package/Source/Scene/Vector3DTileGeometry.js +11 -8
  675. package/Source/Scene/Vector3DTilePoints.js +18 -22
  676. package/Source/Scene/Vector3DTilePolygons.js +6 -6
  677. package/Source/Scene/Vector3DTilePolylines.js +8 -8
  678. package/Source/Scene/Vector3DTilePrimitive.js +30 -31
  679. package/Source/Scene/View.js +111 -80
  680. package/Source/Scene/VoxelBoxShape.js +34 -34
  681. package/Source/Scene/VoxelCell.js +7 -7
  682. package/Source/Scene/VoxelContent.js +1 -1
  683. package/Source/Scene/VoxelCylinderShape.js +48 -48
  684. package/Source/Scene/VoxelEllipsoidShape.js +83 -97
  685. package/Source/Scene/VoxelPrimitive.js +80 -80
  686. package/Source/Scene/VoxelRenderResources.js +13 -13
  687. package/Source/Scene/VoxelTraversal.js +41 -41
  688. package/Source/Scene/WebMapServiceImageryProvider.js +12 -12
  689. package/Source/Scene/WebMapTileServiceImageryProvider.js +8 -8
  690. package/Source/Scene/buildVoxelDrawCommands.js +10 -14
  691. package/Source/Scene/computeFlyToLocationForRectangle.js +7 -5
  692. package/Source/Scene/createBillboardPointCallback.js +2 -2
  693. package/Source/Scene/createElevationBandMaterial.js +8 -8
  694. package/Source/Scene/createGooglePhotorealistic3DTileset.js +1 -1
  695. package/Source/Scene/createOsmBuildingsAsync.js +1 -1
  696. package/Source/Scene/createTangentSpaceDebugPrimitive.js +7 -7
  697. package/Source/Scene/findContentMetadata.js +2 -2
  698. package/Source/Scene/findTileMetadata.js +2 -2
  699. package/Source/Scene/getBinaryAccessor.js +1 -1
  700. package/Source/Scene/getClipAndStyleCode.js +1 -1
  701. package/Source/Scene/getClippingFunction.js +1 -1
  702. package/Source/Scene/getMetadataClassProperty.js +43 -0
  703. package/Source/Scene/parseBatchTable.js +21 -24
  704. package/Source/Scene/parseFeatureMetadataLegacy.js +3 -3
  705. package/Source/Scene/parseStructuralMetadata.js +3 -3
  706. package/Source/Scene/processVoxelProperties.js +28 -33
  707. package/Source/Shaders/Builtin/Functions/computeAtmosphereColor.glsl +44 -0
  708. package/Source/Shaders/Builtin/Functions/computeAtmosphereColor.js +44 -0
  709. package/Source/Shaders/Builtin/Functions/computeScattering.glsl +0 -1
  710. package/Source/Shaders/Builtin/Functions/computeScattering.js +0 -1
  711. package/Source/Shaders/Builtin/Functions/packDepth.glsl +2 -2
  712. package/Source/Shaders/Builtin/Functions/packDepth.js +2 -2
  713. package/Source/Shaders/Builtin/Functions/sphericalHarmonics.glsl +3 -1
  714. package/Source/Shaders/Builtin/Functions/sphericalHarmonics.js +3 -1
  715. package/Source/Shaders/Builtin/Functions/unpackDepth.glsl +3 -3
  716. package/Source/Shaders/Builtin/Functions/unpackDepth.js +3 -3
  717. package/Source/Shaders/Builtin/Functions/windowToEyeCoordinates.glsl +1 -1
  718. package/Source/Shaders/Builtin/Functions/windowToEyeCoordinates.js +1 -1
  719. package/Source/Shaders/Builtin/Functions/writeLogDepth.glsl +2 -2
  720. package/Source/Shaders/Builtin/Functions/writeLogDepth.js +2 -2
  721. package/Source/Shaders/ComputeIrradianceFS.glsl +103 -0
  722. package/Source/Shaders/ComputeIrradianceFS.js +105 -0
  723. package/Source/Shaders/ComputeRadianceMapFS.glsl +107 -0
  724. package/Source/Shaders/ComputeRadianceMapFS.js +109 -0
  725. package/Source/Shaders/ConvolveSpecularMapFS.glsl +70 -0
  726. package/Source/Shaders/ConvolveSpecularMapFS.js +72 -0
  727. package/Source/Shaders/ConvolveSpecularMapVS.glsl +24 -0
  728. package/Source/Shaders/ConvolveSpecularMapVS.js +26 -0
  729. package/Source/Shaders/DepthPlaneVS.glsl +1 -1
  730. package/Source/Shaders/DepthPlaneVS.js +1 -1
  731. package/Source/Shaders/GlobeFS.glsl +1 -2
  732. package/Source/Shaders/GlobeFS.js +1 -2
  733. package/Source/Shaders/Model/AtmosphereStageFS.glsl +1 -4
  734. package/Source/Shaders/Model/AtmosphereStageFS.js +1 -4
  735. package/Source/Shaders/Model/ImageBasedLightingStageFS.glsl +2 -155
  736. package/Source/Shaders/Model/ImageBasedLightingStageFS.js +3 -156
  737. package/Source/Shaders/Model/LightingStageFS.glsl +3 -22
  738. package/Source/Shaders/Model/LightingStageFS.js +3 -22
  739. package/Source/Shaders/Model/ModelFS.glsl +26 -0
  740. package/Source/Shaders/Model/ModelFS.js +26 -0
  741. package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.glsl +59 -59
  742. package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.js +60 -60
  743. package/Source/Shaders/SkyBoxVS.glsl +0 -1
  744. package/Source/Shaders/SkyBoxVS.js +0 -1
  745. package/Source/Widget/CesiumWidget.js +785 -9
  746. package/Source/Workers/combineGeometry.js +3 -4
  747. package/Source/Workers/createCircleGeometry.js +2 -2
  748. package/Source/Workers/createCircleOutlineGeometry.js +2 -2
  749. package/Source/Workers/createCoplanarPolygonOutlineGeometry.js +1 -1
  750. package/Source/Workers/createCorridorOutlineGeometry.js +2 -2
  751. package/Source/Workers/createEllipsoidOutlineGeometry.js +1 -1
  752. package/Source/Workers/createGeometry.js +4 -5
  753. package/Source/Workers/createGroundPolylineGeometry.js +1 -1
  754. package/Source/Workers/createPolylineVolumeGeometry.js +2 -2
  755. package/Source/Workers/createPolylineVolumeOutlineGeometry.js +4 -4
  756. package/Source/Workers/createRectangleOutlineGeometry.js +1 -1
  757. package/Source/Workers/createSimplePolylineGeometry.js +2 -2
  758. package/Source/Workers/createTaskProcessorWorker.js +1 -1
  759. package/Source/Workers/createVectorTileClampedPolylines.js +30 -30
  760. package/Source/Workers/createVectorTileGeometries.js +18 -18
  761. package/Source/Workers/createVectorTilePoints.js +3 -3
  762. package/Source/Workers/createVectorTilePolygons.js +11 -11
  763. package/Source/Workers/createVectorTilePolylines.js +7 -7
  764. package/Source/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +29 -30
  765. package/Source/Workers/createVerticesFromQuantizedTerrainMesh.js +60 -60
  766. package/Source/Workers/decodeDraco.js +23 -23
  767. package/Source/Workers/decodeGoogleEarthEnterprisePacket.js +4 -4
  768. package/Source/Workers/decodeI3S.js +53 -53
  769. package/Source/Workers/transcodeKTX2.js +9 -9
  770. package/Source/Workers/transferTypedArrayTest.js +1 -1
  771. package/Source/Workers/upsampleQuantizedTerrainMesh.js +37 -36
  772. package/index.d.ts +769 -47
  773. package/index.js +73 -51
  774. package/package.json +3 -3
@@ -1,13 +1,26 @@
1
+ import BoundingSphere from "../Core/BoundingSphere.js";
1
2
  import Cartesian3 from "../Core/Cartesian3.js";
3
+ import Cartographic from "../Core/Cartographic.js";
2
4
  import Clock from "../Core/Clock.js";
3
5
  import defaultValue from "../Core/defaultValue.js";
4
6
  import defined from "../Core/defined.js";
5
7
  import destroyObject from "../Core/destroyObject.js";
6
8
  import DeveloperError from "../Core/DeveloperError.js";
7
9
  import Ellipsoid from "../Core/Ellipsoid.js";
10
+ import Event from "../Core/Event.js";
11
+ import EventHelper from "../Core/EventHelper.js";
8
12
  import FeatureDetection from "../Core/FeatureDetection.js";
9
13
  import formatError from "../Core/formatError.js";
14
+ import HeadingPitchRange from "../Core/HeadingPitchRange.js";
15
+ import Matrix4 from "../Core/Matrix4.js";
16
+ import BoundingSphereState from "../DataSources/BoundingSphereState.js";
17
+ import DataSourceCollection from "../DataSources/DataSourceCollection.js";
18
+ import DataSourceDisplay from "../DataSources/DataSourceDisplay.js";
19
+ import EntityView from "../DataSources/EntityView.js";
10
20
  import getElement from "../DataSources/getElement.js";
21
+ import Property from "../DataSources/Property.js";
22
+ import Cesium3DTileset from "../Scene/Cesium3DTileset.js";
23
+ import computeFlyToLocationForRectangle from "../Scene/computeFlyToLocationForRectangle.js";
11
24
  import Globe from "../Scene/Globe.js";
12
25
  import ImageryLayer from "../Scene/ImageryLayer.js";
13
26
  import Moon from "../Scene/Moon.js";
@@ -18,6 +31,17 @@ import ShadowMode from "../Scene/ShadowMode.js";
18
31
  import SkyAtmosphere from "../Scene/SkyAtmosphere.js";
19
32
  import SkyBox from "../Scene/SkyBox.js";
20
33
  import Sun from "../Scene/Sun.js";
34
+ import TimeDynamicPointCloud from "../Scene/TimeDynamicPointCloud.js";
35
+ import VoxelPrimitive from "../Scene/VoxelPrimitive.js";
36
+
37
+ function trackDataSourceClock(clock, dataSource) {
38
+ if (defined(dataSource)) {
39
+ const dataSourceClock = dataSource.clock;
40
+ if (defined(dataSourceClock)) {
41
+ dataSourceClock.getValue(clock);
42
+ }
43
+ }
44
+ }
21
45
 
22
46
  function startRenderLoop(widget) {
23
47
  widget._renderLoopRunning = true;
@@ -118,6 +142,7 @@ function configureCameraFrustum(widget) {
118
142
  * @param {Element|string} container The DOM element or ID that will contain the widget.
119
143
  * @param {object} [options] Object with the following properties:
120
144
  * @param {Clock} [options.clock=new Clock()] The clock to use to control current time.
145
+ * @param {boolean} [options.shouldAnimate=false] <code>true</code> if the clock should attempt to advance simulation time by default, <code>false</code> otherwise.
121
146
  * @param {Ellipsoid} [options.ellipsoid=Ellipsoid.default] The default ellipsoid.
122
147
  * @param {ImageryLayer|false} [options.baseLayer=ImageryLayer.fromWorldImagery()] The bottommost imagery layer applied to the globe. If set to <code>false</code>, no imagery provider will be added.
123
148
  * @param {TerrainProvider} [options.terrainProvider=new EllipsoidTerrainProvider(options.ellipsoid)] The terrain provider.
@@ -133,14 +158,17 @@ function configureCameraFrustum(widget) {
133
158
  * @param {boolean} [options.useBrowserRecommendedResolution=true] If true, render at the browser's recommended resolution and ignore <code>window.devicePixelRatio</code>.
134
159
  * @param {number} [options.targetFrameRate] The target frame rate when using the default render loop.
135
160
  * @param {boolean} [options.showRenderLoopErrors=true] If true, this widget will automatically display an HTML panel to the user containing the error, if a render loop error occurs.
161
+ * @param {boolean} [options.automaticallyTrackDataSourceClocks=true] If true, this widget will automatically track the clock settings of newly added DataSources, updating if the DataSource's clock changes. Set this to false if you want to configure the clock independently.
136
162
  * @param {ContextOptions} [options.contextOptions] Context and WebGL creation properties passed to {@link Scene}.
137
163
  * @param {Element|string} [options.creditContainer] The DOM element or ID that will contain the {@link CreditDisplay}. If not specified, the credits are added
138
164
  * to the bottom of the widget itself.
139
165
  * @param {Element|string} [options.creditViewport] The DOM element or ID that will contain the credit pop up created by the {@link CreditDisplay}. If not specified, it will appear over the widget itself.
166
+ * @param {DataSourceCollection} [options.dataSources=new DataSourceCollection()] The collection of data sources visualized by the widget. If this parameter is provided,
167
+ * the instance is assumed to be owned by the caller and will not be destroyed when the widget is destroyed.
140
168
  * @param {boolean} [options.shadows=false] Determines if shadows are cast by light sources.
141
169
  * @param {ShadowMode} [options.terrainShadows=ShadowMode.RECEIVE_ONLY] Determines if the terrain casts or receives shadows from light sources.
142
170
  * @param {MapMode2D} [options.mapMode2D=MapMode2D.INFINITE_SCROLL] Determines if the 2D map is rotatable or can be scrolled infinitely in the horizontal direction.
143
- * @param {boolean} [options.blurActiveElementOnCanvasFocus=true] If true, the active element will blur when the viewer's canvas is clicked. Setting this to false is useful for cases when the canvas is clicked only for retrieving position or an entity data without actually meaning to set the canvas to be the active element.
171
+ * @param {boolean} [options.blurActiveElementOnCanvasFocus=true] If true, the active element will blur when the widget's canvas is clicked. Setting this to false is useful for cases when the canvas is clicked only for retrieving position or an entity data without actually meaning to set the canvas to be the active element.
144
172
  * @param {boolean} [options.requestRenderMode=false] If true, rendering a frame will only occur when needed as determined by changes within the scene. Enabling improves performance of the application, but requires using {@link Scene#requestRender} to render a new frame explicitly in this mode. This will be necessary in many cases after making changes to the scene in other parts of the API. See {@link https://cesium.com/blog/2018/01/24/cesium-scene-rendering-performance/|Improving Performance with Explicit Rendering}.
145
173
  * @param {number} [options.maximumRenderTimeChange=0.0] If requestRenderMode is true, this value defines the maximum change in simulation time allowed before a render is requested. See {@link https://cesium.com/blog/2018/01/24/cesium-scene-rendering-performance/|Improving Performance with Explicit Rendering}.
146
174
  * @param {number} [options.msaaSamples=4] If provided, this value controls the rate of multisample antialiasing. Typical multisampling rates are 2, 4, and sometimes 8 samples per pixel. Higher sampling rates of MSAA may impact performance in exchange for improved visual quality. This value only applies to WebGL2 contexts that support multisample render targets. Set to 1 to disable MSAA.
@@ -192,7 +220,8 @@ function CesiumWidget(container, options) {
192
220
  container.appendChild(element);
193
221
 
194
222
  const canvas = document.createElement("canvas");
195
- const supportsImageRenderingPixelated = FeatureDetection.supportsImageRenderingPixelated();
223
+ const supportsImageRenderingPixelated =
224
+ FeatureDetection.supportsImageRenderingPixelated();
196
225
  this._supportsImageRenderingPixelated = supportsImageRenderingPixelated;
197
226
  if (supportsImageRenderingPixelated) {
198
227
  canvas.style.imageRendering = FeatureDetection.imageRenderingValue();
@@ -221,7 +250,7 @@ function CesiumWidget(container, options) {
221
250
 
222
251
  const blurActiveElementOnCanvasFocus = defaultValue(
223
252
  options.blurActiveElementOnCanvasFocus,
224
- true
253
+ true,
225
254
  );
226
255
 
227
256
  if (blurActiveElementOnCanvasFocus) {
@@ -247,7 +276,7 @@ function CesiumWidget(container, options) {
247
276
 
248
277
  const useBrowserRecommendedResolution = defaultValue(
249
278
  options.useBrowserRecommendedResolution,
250
- true
279
+ true,
251
280
  );
252
281
 
253
282
  this._element = element;
@@ -265,8 +294,23 @@ function CesiumWidget(container, options) {
265
294
  this._resolutionScale = 1.0;
266
295
  this._useBrowserRecommendedResolution = useBrowserRecommendedResolution;
267
296
  this._forceResize = false;
297
+ this._entityView = undefined;
298
+ this._clockTrackedDataSource = undefined;
299
+ this._trackedEntity = undefined;
300
+ this._needTrackedEntityUpdate = false;
301
+ this._zoomIsFlight = false;
302
+ this._zoomTarget = undefined;
303
+ this._zoomPromise = undefined;
304
+ this._zoomOptions = undefined;
305
+ this._trackedEntityChanged = new Event();
306
+ this._allowDataSourcesToSuspendAnimation = true;
307
+
268
308
  this._clock = defined(options.clock) ? options.clock : new Clock();
269
309
 
310
+ if (defined(options.shouldAnimate)) {
311
+ this._clock.shouldAnimate = options.shouldAnimate;
312
+ }
313
+
270
314
  configureCanvasSize(this);
271
315
 
272
316
  try {
@@ -303,7 +347,7 @@ function CesiumWidget(container, options) {
303
347
  scene.globe = globe;
304
348
  scene.globe.shadows = defaultValue(
305
349
  options.terrainShadows,
306
- ShadowMode.RECEIVE_ONLY
350
+ ShadowMode.RECEIVE_ONLY,
307
351
  );
308
352
  }
309
353
 
@@ -348,7 +392,7 @@ function CesiumWidget(container, options) {
348
392
  //>>includeStart('debug', pragmas.debug);
349
393
  if (defined(options.terrainProvider)) {
350
394
  throw new DeveloperError(
351
- "Specify either options.terrainProvider or options.terrain."
395
+ "Specify either options.terrainProvider or options.terrain.",
352
396
  );
353
397
  }
354
398
  //>>includeEnd('debug')
@@ -370,7 +414,7 @@ function CesiumWidget(container, options) {
370
414
  this._useDefaultRenderLoop = undefined;
371
415
  this.useDefaultRenderLoop = defaultValue(
372
416
  options.useDefaultRenderLoop,
373
- true
417
+ true,
374
418
  );
375
419
 
376
420
  this._targetFrameRate = undefined;
@@ -387,6 +431,71 @@ function CesiumWidget(container, options) {
387
431
  }
388
432
  };
389
433
  scene.renderError.addEventListener(this._onRenderError);
434
+
435
+ let dataSourceCollection = options.dataSources;
436
+ let destroyDataSourceCollection = false;
437
+ if (!defined(dataSourceCollection)) {
438
+ dataSourceCollection = new DataSourceCollection();
439
+ destroyDataSourceCollection = true;
440
+ }
441
+
442
+ const dataSourceDisplay = new DataSourceDisplay({
443
+ scene: scene,
444
+ dataSourceCollection: dataSourceCollection,
445
+ });
446
+
447
+ const eventHelper = new EventHelper();
448
+ this._dataSourceChangedListeners = {};
449
+ this._automaticallyTrackDataSourceClocks =
450
+ options.automaticallyTrackDataSourceClocks ?? true;
451
+
452
+ this._dataSourceCollection = dataSourceCollection;
453
+ this._destroyDataSourceCollection = destroyDataSourceCollection;
454
+ this._dataSourceDisplay = dataSourceDisplay;
455
+ this._eventHelper = eventHelper;
456
+ this._canAnimateUpdateCallback = this._updateCanAnimate;
457
+
458
+ eventHelper.add(this._clock.onTick, CesiumWidget.prototype._onTick, this);
459
+ eventHelper.add(
460
+ scene.morphStart,
461
+ CesiumWidget.prototype._clearTrackedObject,
462
+ this,
463
+ );
464
+
465
+ //Listen to data source events in order to track clock changes.
466
+ eventHelper.add(
467
+ dataSourceCollection.dataSourceAdded,
468
+ CesiumWidget.prototype._onDataSourceAdded,
469
+ this,
470
+ );
471
+ eventHelper.add(
472
+ dataSourceCollection.dataSourceRemoved,
473
+ CesiumWidget.prototype._onDataSourceRemoved,
474
+ this,
475
+ );
476
+
477
+ eventHelper.add(scene.postRender, CesiumWidget.prototype._postRender, this);
478
+
479
+ // We need to subscribe to the data sources and collections so that we can clear the
480
+ // tracked object when it is removed from the scene.
481
+ // Subscribe to current data sources
482
+ const dataSourceLength = dataSourceCollection.length;
483
+ for (let i = 0; i < dataSourceLength; i++) {
484
+ this._dataSourceAdded(dataSourceCollection, dataSourceCollection.get(i));
485
+ }
486
+ this._dataSourceAdded(undefined, dataSourceDisplay.defaultDataSource);
487
+
488
+ // Hook up events so that we can subscribe to future sources.
489
+ eventHelper.add(
490
+ dataSourceCollection.dataSourceAdded,
491
+ CesiumWidget.prototype._dataSourceAdded,
492
+ this,
493
+ );
494
+ eventHelper.add(
495
+ dataSourceCollection.dataSourceRemoved,
496
+ CesiumWidget.prototype._dataSourceRemoved,
497
+ this,
498
+ );
390
499
  } catch (error) {
391
500
  if (showRenderLoopErrors) {
392
501
  const title = "Error constructing CesiumWidget.";
@@ -504,6 +613,43 @@ Object.defineProperties(CesiumWidget.prototype, {
504
613
  },
505
614
  },
506
615
 
616
+ /**
617
+ * Gets the display used for {@link DataSource} visualization.
618
+ * @memberof CesiumWidget.prototype
619
+ * @type {DataSourceDisplay}
620
+ * @readonly
621
+ */
622
+ dataSourceDisplay: {
623
+ get: function () {
624
+ return this._dataSourceDisplay;
625
+ },
626
+ },
627
+
628
+ /**
629
+ * Gets the collection of entities not tied to a particular data source.
630
+ * This is a shortcut to [dataSourceDisplay.defaultDataSource.entities]{@link CesiumWidget#dataSourceDisplay}.
631
+ * @memberof CesiumWidget.prototype
632
+ * @type {EntityCollection}
633
+ * @readonly
634
+ */
635
+ entities: {
636
+ get: function () {
637
+ return this._dataSourceDisplay.defaultDataSource.entities;
638
+ },
639
+ },
640
+
641
+ /**
642
+ * Gets the set of {@link DataSource} instances to be visualized.
643
+ * @memberof CesiumWidget.prototype
644
+ * @type {DataSourceCollection}
645
+ * @readonly
646
+ */
647
+ dataSources: {
648
+ get: function () {
649
+ return this._dataSourceCollection;
650
+ },
651
+ },
652
+
507
653
  /**
508
654
  * Gets the camera.
509
655
  * @memberof CesiumWidget.prototype
@@ -573,7 +719,7 @@ Object.defineProperties(CesiumWidget.prototype, {
573
719
  //>>includeStart('debug', pragmas.debug);
574
720
  if (value <= 0) {
575
721
  throw new DeveloperError(
576
- "targetFrameRate must be greater than 0, or undefined."
722
+ "targetFrameRate must be greater than 0, or undefined.",
577
723
  );
578
724
  }
579
725
  //>>includeEnd('debug');
@@ -661,6 +807,104 @@ Object.defineProperties(CesiumWidget.prototype, {
661
807
  }
662
808
  },
663
809
  },
810
+
811
+ /**
812
+ * Gets or sets whether or not data sources can temporarily pause
813
+ * animation in order to avoid showing an incomplete picture to the user.
814
+ * For example, if asynchronous primitives are being processed in the
815
+ * background, the clock will not advance until the geometry is ready.
816
+ *
817
+ * @memberof CesiumWidget.prototype
818
+ *
819
+ * @type {boolean}
820
+ */
821
+ allowDataSourcesToSuspendAnimation: {
822
+ get: function () {
823
+ return this._allowDataSourcesToSuspendAnimation;
824
+ },
825
+ set: function (value) {
826
+ this._allowDataSourcesToSuspendAnimation = value;
827
+ },
828
+ },
829
+
830
+ /**
831
+ * Gets or sets the Entity instance currently being tracked by the camera.
832
+ * @memberof CesiumWidget.prototype
833
+ * @type {Entity | undefined}
834
+ */
835
+ trackedEntity: {
836
+ get: function () {
837
+ return this._trackedEntity;
838
+ },
839
+ set: function (value) {
840
+ if (this._trackedEntity !== value) {
841
+ this._trackedEntity = value;
842
+
843
+ //Cancel any pending zoom
844
+ cancelZoom(this);
845
+
846
+ const scene = this.scene;
847
+ const sceneMode = scene.mode;
848
+
849
+ //Stop tracking
850
+ if (!defined(value) || !defined(value.position)) {
851
+ this._needTrackedEntityUpdate = false;
852
+ if (
853
+ sceneMode === SceneMode.COLUMBUS_VIEW ||
854
+ sceneMode === SceneMode.SCENE2D
855
+ ) {
856
+ scene.screenSpaceCameraController.enableTranslate = true;
857
+ }
858
+
859
+ if (
860
+ sceneMode === SceneMode.COLUMBUS_VIEW ||
861
+ sceneMode === SceneMode.SCENE3D
862
+ ) {
863
+ scene.screenSpaceCameraController.enableTilt = true;
864
+ }
865
+
866
+ this._entityView = undefined;
867
+ this.camera.lookAtTransform(Matrix4.IDENTITY);
868
+ } else {
869
+ //We can't start tracking immediately, so we set a flag and start tracking
870
+ //when the bounding sphere is ready (most likely next frame).
871
+ this._needTrackedEntityUpdate = true;
872
+ }
873
+
874
+ this._trackedEntityChanged.raiseEvent(value);
875
+ this.scene.requestRender();
876
+ }
877
+ },
878
+ },
879
+
880
+ /**
881
+ * Gets the event that is raised when the tracked entity changes.
882
+ * @memberof CesiumWidget.prototype
883
+ * @type {Event}
884
+ * @readonly
885
+ */
886
+ trackedEntityChanged: {
887
+ get: function () {
888
+ return this._trackedEntityChanged;
889
+ },
890
+ },
891
+
892
+ /**
893
+ * Gets or sets the data source to track with the widget's clock.
894
+ * @memberof CesiumWidget.prototype
895
+ * @type {DataSource}
896
+ */
897
+ clockTrackedDataSource: {
898
+ get: function () {
899
+ return this._clockTrackedDataSource;
900
+ },
901
+ set: function (value) {
902
+ if (this._clockTrackedDataSource !== value) {
903
+ this._clockTrackedDataSource = value;
904
+ trackDataSourceClock(this.clock, value);
905
+ }
906
+ },
907
+ },
664
908
  });
665
909
 
666
910
  /**
@@ -693,7 +937,7 @@ CesiumWidget.prototype.showErrorPanel = function (title, message, error) {
693
937
  function resizeCallback() {
694
938
  errorPanelScroller.style.maxHeight = `${Math.max(
695
939
  Math.round(element.clientHeight * 0.9 - 100),
696
- 30
940
+ 30,
697
941
  )}px`;
698
942
  }
699
943
  resizeCallback();
@@ -784,12 +1028,29 @@ CesiumWidget.prototype.isDestroyed = function () {
784
1028
  * removing the widget from layout.
785
1029
  */
786
1030
  CesiumWidget.prototype.destroy = function () {
1031
+ // Unsubscribe from data sources
1032
+ const dataSources = this.dataSources;
1033
+ const dataSourceLength = dataSources.length;
1034
+ for (let i = 0; i < dataSourceLength; i++) {
1035
+ this._dataSourceRemoved(dataSources, dataSources.get(i));
1036
+ }
1037
+ this._dataSourceRemoved(undefined, this._dataSourceDisplay.defaultDataSource);
1038
+
1039
+ this._dataSourceDisplay = this._dataSourceDisplay.destroy();
1040
+
787
1041
  if (defined(this._scene)) {
788
1042
  this._scene.renderError.removeEventListener(this._onRenderError);
789
1043
  this._scene = this._scene.destroy();
790
1044
  }
791
1045
  this._container.removeChild(this._element);
792
1046
  this._creditContainer.removeChild(this._innerCreditContainer);
1047
+
1048
+ this._eventHelper.removeAll();
1049
+
1050
+ if (this._destroyDataSourceCollection) {
1051
+ this._dataSourceCollection = this._dataSourceCollection.destroy();
1052
+ }
1053
+
793
1054
  destroyObject(this);
794
1055
  };
795
1056
 
@@ -829,4 +1090,519 @@ CesiumWidget.prototype.render = function () {
829
1090
  this._clock.tick();
830
1091
  }
831
1092
  };
1093
+
1094
+ /**
1095
+ * @private
1096
+ */
1097
+ CesiumWidget.prototype._dataSourceAdded = function (
1098
+ dataSourceCollection,
1099
+ dataSource,
1100
+ ) {
1101
+ const entityCollection = dataSource.entities;
1102
+ entityCollection.collectionChanged.addEventListener(
1103
+ CesiumWidget.prototype._onEntityCollectionChanged,
1104
+ this,
1105
+ );
1106
+ };
1107
+
1108
+ /**
1109
+ * @private
1110
+ */
1111
+ CesiumWidget.prototype._dataSourceRemoved = function (
1112
+ dataSourceCollection,
1113
+ dataSource,
1114
+ ) {
1115
+ const entityCollection = dataSource.entities;
1116
+ entityCollection.collectionChanged.removeEventListener(
1117
+ CesiumWidget.prototype._onEntityCollectionChanged,
1118
+ this,
1119
+ );
1120
+
1121
+ if (defined(this.trackedEntity)) {
1122
+ if (
1123
+ entityCollection.getById(this.trackedEntity.id) === this.trackedEntity
1124
+ ) {
1125
+ this.trackedEntity = undefined;
1126
+ }
1127
+ }
1128
+ };
1129
+
1130
+ /**
1131
+ * @private
1132
+ */
1133
+ CesiumWidget.prototype._updateCanAnimate = function (isUpdated) {
1134
+ this._clock.canAnimate = isUpdated;
1135
+ };
1136
+
1137
+ const boundingSphereScratch = new BoundingSphere();
1138
+
1139
+ /**
1140
+ * @private
1141
+ */
1142
+ CesiumWidget.prototype._onTick = function (clock) {
1143
+ const time = clock.currentTime;
1144
+
1145
+ const isUpdated = this._dataSourceDisplay.update(time);
1146
+ if (this._allowDataSourcesToSuspendAnimation) {
1147
+ this._canAnimateUpdateCallback(isUpdated);
1148
+ }
1149
+
1150
+ const entityView = this._entityView;
1151
+ if (defined(entityView)) {
1152
+ const trackedEntity = this._trackedEntity;
1153
+ const trackedState = this._dataSourceDisplay.getBoundingSphere(
1154
+ trackedEntity,
1155
+ true,
1156
+ boundingSphereScratch,
1157
+ );
1158
+ if (trackedState === BoundingSphereState.DONE) {
1159
+ entityView.update(time, boundingSphereScratch);
1160
+ }
1161
+ }
1162
+ };
1163
+
1164
+ /**
1165
+ * @private
1166
+ */
1167
+ CesiumWidget.prototype._onEntityCollectionChanged = function (
1168
+ collection,
1169
+ added,
1170
+ removed,
1171
+ ) {
1172
+ const length = removed.length;
1173
+ for (let i = 0; i < length; i++) {
1174
+ const removedObject = removed[i];
1175
+ if (this.trackedEntity === removedObject) {
1176
+ this.trackedEntity = undefined;
1177
+ }
1178
+ }
1179
+ };
1180
+
1181
+ /**
1182
+ * @private
1183
+ */
1184
+ CesiumWidget.prototype._clearTrackedObject = function () {
1185
+ this.trackedEntity = undefined;
1186
+ };
1187
+
1188
+ /**
1189
+ * @private
1190
+ */
1191
+ CesiumWidget.prototype._onDataSourceChanged = function (dataSource) {
1192
+ if (this.clockTrackedDataSource === dataSource) {
1193
+ trackDataSourceClock(this.clock, dataSource);
1194
+ }
1195
+ };
1196
+
1197
+ /**
1198
+ * @private
1199
+ */
1200
+ CesiumWidget.prototype._onDataSourceAdded = function (
1201
+ dataSourceCollection,
1202
+ dataSource,
1203
+ ) {
1204
+ if (this._automaticallyTrackDataSourceClocks) {
1205
+ this.clockTrackedDataSource = dataSource;
1206
+ }
1207
+ const id = dataSource.entities.id;
1208
+ const removalFunc = this._eventHelper.add(
1209
+ dataSource.changedEvent,
1210
+ CesiumWidget.prototype._onDataSourceChanged,
1211
+ this,
1212
+ );
1213
+ this._dataSourceChangedListeners[id] = removalFunc;
1214
+ };
1215
+
1216
+ /**
1217
+ * @private
1218
+ */
1219
+ CesiumWidget.prototype._onDataSourceRemoved = function (
1220
+ dataSourceCollection,
1221
+ dataSource,
1222
+ ) {
1223
+ const resetClock = this.clockTrackedDataSource === dataSource;
1224
+ const id = dataSource.entities.id;
1225
+ this._dataSourceChangedListeners[id]();
1226
+ this._dataSourceChangedListeners[id] = undefined;
1227
+ if (resetClock) {
1228
+ const numDataSources = dataSourceCollection.length;
1229
+ if (this._automaticallyTrackDataSourceClocks && numDataSources > 0) {
1230
+ this.clockTrackedDataSource = dataSourceCollection.get(
1231
+ numDataSources - 1,
1232
+ );
1233
+ } else {
1234
+ this.clockTrackedDataSource = undefined;
1235
+ }
1236
+ }
1237
+ };
1238
+
1239
+ /**
1240
+ * Asynchronously sets the camera to view the provided entity, entities, or data source.
1241
+ * If the data source is still in the process of loading or the visualization is otherwise still loading,
1242
+ * this method waits for the data to be ready before performing the zoom.
1243
+ *
1244
+ * <p>The offset is heading/pitch/range in the local east-north-up reference frame centered at the center of the bounding sphere.
1245
+ * The heading and the pitch angles are defined in the local east-north-up reference frame.
1246
+ * The heading is the angle from y axis and increasing towards the x axis. Pitch is the rotation from the xy-plane. Positive pitch
1247
+ * angles are above the plane. Negative pitch angles are below the plane. The range is the distance from the center. If the range is
1248
+ * zero, a range will be computed such that the whole bounding sphere is visible.</p>
1249
+ *
1250
+ * <p>In 2D, there must be a top down view. The camera will be placed above the target looking down. The height above the
1251
+ * target will be the range. The heading will be determined from the offset. If the heading cannot be
1252
+ * determined from the offset, the heading will be north.</p>
1253
+ *
1254
+ * @param {Entity|Entity[]|EntityCollection|DataSource|ImageryLayer|Cesium3DTileset|TimeDynamicPointCloud|Promise<Entity|Entity[]|EntityCollection|DataSource|ImageryLayer|Cesium3DTileset|TimeDynamicPointCloud|VoxelPrimitive>} target The entity, array of entities, entity collection, data source, Cesium3DTileset, point cloud, or imagery layer to view. You can also pass a promise that resolves to one of the previously mentioned types.
1255
+ * @param {HeadingPitchRange} [offset] The offset from the center of the entity in the local east-north-up reference frame.
1256
+ * @returns {Promise<boolean>} A Promise that resolves to true if the zoom was successful or false if the target is not currently visualized in the scene or the zoom was cancelled.
1257
+ */
1258
+ CesiumWidget.prototype.zoomTo = function (target, offset) {
1259
+ const options = {
1260
+ offset: offset,
1261
+ };
1262
+ return zoomToOrFly(this, target, options, false);
1263
+ };
1264
+
1265
+ /**
1266
+ * Flies the camera to the provided entity, entities, or data source.
1267
+ * If the data source is still in the process of loading or the visualization is otherwise still loading,
1268
+ * this method waits for the data to be ready before performing the flight.
1269
+ *
1270
+ * <p>The offset is heading/pitch/range in the local east-north-up reference frame centered at the center of the bounding sphere.
1271
+ * The heading and the pitch angles are defined in the local east-north-up reference frame.
1272
+ * The heading is the angle from y axis and increasing towards the x axis. Pitch is the rotation from the xy-plane. Positive pitch
1273
+ * angles are above the plane. Negative pitch angles are below the plane. The range is the distance from the center. If the range is
1274
+ * zero, a range will be computed such that the whole bounding sphere is visible.</p>
1275
+ *
1276
+ * <p>In 2D, there must be a top down view. The camera will be placed above the target looking down. The height above the
1277
+ * target will be the range. The heading will be determined from the offset. If the heading cannot be
1278
+ * determined from the offset, the heading will be north.</p>
1279
+ *
1280
+ * @param {Entity|Entity[]|EntityCollection|DataSource|ImageryLayer|Cesium3DTileset|TimeDynamicPointCloud|Promise<Entity|Entity[]|EntityCollection|DataSource|ImageryLayer|Cesium3DTileset|TimeDynamicPointCloud|VoxelPrimitive>} target The entity, array of entities, entity collection, data source, Cesium3DTileset, point cloud, or imagery layer to view. You can also pass a promise that resolves to one of the previously mentioned types.
1281
+ * @param {object} [options] Object with the following properties:
1282
+ * @param {number} [options.duration=3.0] The duration of the flight in seconds.
1283
+ * @param {number} [options.maximumHeight] The maximum height at the peak of the flight.
1284
+ * @param {HeadingPitchRange} [options.offset] The offset from the target in the local east-north-up reference frame centered at the target.
1285
+ * @returns {Promise<boolean>} A Promise that resolves to true if the flight was successful or false if the target is not currently visualized in the scene or the flight was cancelled. //TODO: Cleanup entity mentions
1286
+ */
1287
+ CesiumWidget.prototype.flyTo = function (target, options) {
1288
+ return zoomToOrFly(this, target, options, true);
1289
+ };
1290
+
1291
+ function zoomToOrFly(that, zoomTarget, options, isFlight) {
1292
+ //>>includeStart('debug', pragmas.debug);
1293
+ if (!defined(zoomTarget)) {
1294
+ throw new DeveloperError("zoomTarget is required.");
1295
+ }
1296
+ //>>includeEnd('debug');
1297
+
1298
+ cancelZoom(that);
1299
+
1300
+ //We can't actually perform the zoom until all visualization is ready and
1301
+ //bounding spheres have been computed. Therefore we create and return
1302
+ //a deferred which will be resolved as part of the post-render step in the
1303
+ //frame that actually performs the zoom.
1304
+ const zoomPromise = new Promise((resolve) => {
1305
+ that._completeZoom = function (value) {
1306
+ resolve(value);
1307
+ };
1308
+ });
1309
+ that._zoomPromise = zoomPromise;
1310
+ that._zoomIsFlight = isFlight;
1311
+ that._zoomOptions = options;
1312
+
1313
+ Promise.resolve(zoomTarget).then(function (zoomTarget) {
1314
+ //Only perform the zoom if it wasn't cancelled before the promise resolved.
1315
+ if (that._zoomPromise !== zoomPromise) {
1316
+ return;
1317
+ }
1318
+
1319
+ //If the zoom target is a rectangular imagery in an ImageLayer
1320
+ if (zoomTarget instanceof ImageryLayer) {
1321
+ let rectanglePromise;
1322
+
1323
+ if (defined(zoomTarget.imageryProvider)) {
1324
+ rectanglePromise = Promise.resolve(zoomTarget.getImageryRectangle());
1325
+ } else {
1326
+ rectanglePromise = new Promise((resolve) => {
1327
+ const removeListener = zoomTarget.readyEvent.addEventListener(() => {
1328
+ removeListener();
1329
+ resolve(zoomTarget.getImageryRectangle());
1330
+ });
1331
+ });
1332
+ }
1333
+ rectanglePromise
1334
+ .then(function (rectangle) {
1335
+ return computeFlyToLocationForRectangle(rectangle, that.scene);
1336
+ })
1337
+ .then(function (position) {
1338
+ //Only perform the zoom if it wasn't cancelled before the promise was resolved
1339
+ if (that._zoomPromise === zoomPromise) {
1340
+ that._zoomTarget = position;
1341
+ }
1342
+ });
1343
+ return;
1344
+ }
1345
+
1346
+ if (
1347
+ zoomTarget instanceof Cesium3DTileset ||
1348
+ zoomTarget instanceof TimeDynamicPointCloud ||
1349
+ zoomTarget instanceof VoxelPrimitive
1350
+ ) {
1351
+ that._zoomTarget = zoomTarget;
1352
+ return;
1353
+ }
1354
+
1355
+ //If the zoom target is a data source, and it's in the middle of loading, wait for it to finish loading.
1356
+ if (zoomTarget.isLoading && defined(zoomTarget.loadingEvent)) {
1357
+ const removeEvent = zoomTarget.loadingEvent.addEventListener(function () {
1358
+ removeEvent();
1359
+
1360
+ //Only perform the zoom if it wasn't cancelled before the data source finished.
1361
+ if (that._zoomPromise === zoomPromise) {
1362
+ that._zoomTarget = zoomTarget.entities.values.slice(0);
1363
+ }
1364
+ });
1365
+ return;
1366
+ }
1367
+
1368
+ //Zoom target is already an array, just copy it and return.
1369
+ if (Array.isArray(zoomTarget)) {
1370
+ that._zoomTarget = zoomTarget.slice(0);
1371
+ return;
1372
+ }
1373
+
1374
+ //If zoomTarget is an EntityCollection, this will retrieve the array
1375
+ zoomTarget = zoomTarget.values ?? zoomTarget;
1376
+
1377
+ //If zoomTarget is a DataSource, this will retrieve the array.
1378
+ if (defined(zoomTarget.entities)) {
1379
+ zoomTarget = zoomTarget.entities.values;
1380
+ }
1381
+
1382
+ //Zoom target is already an array, just copy it and return.
1383
+ if (Array.isArray(zoomTarget)) {
1384
+ that._zoomTarget = zoomTarget.slice(0);
1385
+ } else {
1386
+ //Single entity
1387
+ that._zoomTarget = [zoomTarget];
1388
+ }
1389
+ });
1390
+
1391
+ that.scene.requestRender();
1392
+ return zoomPromise;
1393
+ }
1394
+
1395
+ function clearZoom(widget) {
1396
+ widget._zoomPromise = undefined;
1397
+ widget._zoomTarget = undefined;
1398
+ widget._zoomOptions = undefined;
1399
+ }
1400
+
1401
+ function cancelZoom(widget) {
1402
+ const zoomPromise = widget._zoomPromise;
1403
+ if (defined(zoomPromise)) {
1404
+ clearZoom(widget);
1405
+ widget._completeZoom(false);
1406
+ }
1407
+ }
1408
+
1409
+ /**
1410
+ * @private
1411
+ */
1412
+ CesiumWidget.prototype._postRender = function () {
1413
+ updateZoomTarget(this);
1414
+ updateTrackedEntity(this);
1415
+ };
1416
+
1417
+ function updateZoomTarget(widget) {
1418
+ const target = widget._zoomTarget;
1419
+ if (!defined(target) || widget.scene.mode === SceneMode.MORPHING) {
1420
+ return;
1421
+ }
1422
+
1423
+ const scene = widget.scene;
1424
+ const camera = scene.camera;
1425
+ const zoomOptions = widget._zoomOptions ?? {};
1426
+ let options;
1427
+ function zoomToBoundingSphere(boundingSphere) {
1428
+ // If offset was originally undefined then give it base value instead of empty object
1429
+ if (!defined(zoomOptions.offset)) {
1430
+ zoomOptions.offset = new HeadingPitchRange(
1431
+ 0.0,
1432
+ -0.5,
1433
+ boundingSphere.radius,
1434
+ );
1435
+ }
1436
+
1437
+ options = {
1438
+ offset: zoomOptions.offset,
1439
+ duration: zoomOptions.duration,
1440
+ maximumHeight: zoomOptions.maximumHeight,
1441
+ complete: function () {
1442
+ widget._completeZoom(true);
1443
+ },
1444
+ cancel: function () {
1445
+ widget._completeZoom(false);
1446
+ },
1447
+ };
1448
+
1449
+ if (widget._zoomIsFlight) {
1450
+ camera.flyToBoundingSphere(target.boundingSphere, options);
1451
+ } else {
1452
+ camera.viewBoundingSphere(boundingSphere, zoomOptions.offset);
1453
+ camera.lookAtTransform(Matrix4.IDENTITY);
1454
+
1455
+ // Finish the promise
1456
+ widget._completeZoom(true);
1457
+ }
1458
+
1459
+ clearZoom(widget);
1460
+ }
1461
+
1462
+ if (target instanceof TimeDynamicPointCloud) {
1463
+ if (defined(target.boundingSphere)) {
1464
+ zoomToBoundingSphere(target.boundingSphere);
1465
+ return;
1466
+ }
1467
+
1468
+ // Otherwise, the first "frame" needs to have been rendered
1469
+ const removeEventListener = target.frameChanged.addEventListener(
1470
+ function (timeDynamicPointCloud) {
1471
+ zoomToBoundingSphere(timeDynamicPointCloud.boundingSphere);
1472
+ removeEventListener();
1473
+ },
1474
+ );
1475
+ return;
1476
+ }
1477
+
1478
+ if (target instanceof Cesium3DTileset || target instanceof VoxelPrimitive) {
1479
+ zoomToBoundingSphere(target.boundingSphere);
1480
+ return;
1481
+ }
1482
+
1483
+ // If zoomTarget was an ImageryLayer
1484
+ if (target instanceof Cartographic) {
1485
+ options = {
1486
+ destination: scene.ellipsoid.cartographicToCartesian(target),
1487
+ duration: zoomOptions.duration,
1488
+ maximumHeight: zoomOptions.maximumHeight,
1489
+ complete: function () {
1490
+ widget._completeZoom(true);
1491
+ },
1492
+ cancel: function () {
1493
+ widget._completeZoom(false);
1494
+ },
1495
+ };
1496
+
1497
+ if (widget._zoomIsFlight) {
1498
+ camera.flyTo(options);
1499
+ } else {
1500
+ camera.setView(options);
1501
+ widget._completeZoom(true);
1502
+ }
1503
+ clearZoom(widget);
1504
+ return;
1505
+ }
1506
+
1507
+ const entities = target;
1508
+
1509
+ const boundingSpheres = [];
1510
+ for (let i = 0, len = entities.length; i < len; i++) {
1511
+ const state = widget._dataSourceDisplay.getBoundingSphere(
1512
+ entities[i],
1513
+ false,
1514
+ boundingSphereScratch,
1515
+ );
1516
+
1517
+ if (state === BoundingSphereState.PENDING) {
1518
+ return;
1519
+ } else if (state !== BoundingSphereState.FAILED) {
1520
+ boundingSpheres.push(BoundingSphere.clone(boundingSphereScratch));
1521
+ }
1522
+ }
1523
+
1524
+ if (boundingSpheres.length === 0) {
1525
+ cancelZoom(widget);
1526
+ return;
1527
+ }
1528
+
1529
+ // Stop tracking the current entity.
1530
+ widget.trackedEntity = undefined;
1531
+
1532
+ const boundingSphere = BoundingSphere.fromBoundingSpheres(boundingSpheres);
1533
+
1534
+ if (!widget._zoomIsFlight) {
1535
+ camera.viewBoundingSphere(boundingSphere, zoomOptions.offset);
1536
+ camera.lookAtTransform(Matrix4.IDENTITY);
1537
+ clearZoom(widget);
1538
+ widget._completeZoom(true);
1539
+ } else {
1540
+ clearZoom(widget);
1541
+ camera.flyToBoundingSphere(boundingSphere, {
1542
+ duration: zoomOptions.duration,
1543
+ maximumHeight: zoomOptions.maximumHeight,
1544
+ complete: function () {
1545
+ widget._completeZoom(true);
1546
+ },
1547
+ cancel: function () {
1548
+ widget._completeZoom(false);
1549
+ },
1550
+ offset: zoomOptions.offset,
1551
+ });
1552
+ }
1553
+ }
1554
+
1555
+ function updateTrackedEntity(widget) {
1556
+ if (!widget._needTrackedEntityUpdate) {
1557
+ return;
1558
+ }
1559
+
1560
+ const trackedEntity = widget._trackedEntity;
1561
+ const currentTime = widget.clock.currentTime;
1562
+
1563
+ //Verify we have a current position at this time. This is only triggered if a position
1564
+ //has become undefined after trackedEntity is set but before the boundingSphere has been
1565
+ //computed. In this case, we will track the entity once it comes back into existence.
1566
+ const currentPosition = Property.getValueOrUndefined(
1567
+ trackedEntity.position,
1568
+ currentTime,
1569
+ );
1570
+
1571
+ if (!defined(currentPosition)) {
1572
+ return;
1573
+ }
1574
+
1575
+ const scene = widget.scene;
1576
+
1577
+ const state = widget._dataSourceDisplay.getBoundingSphere(
1578
+ trackedEntity,
1579
+ false,
1580
+ boundingSphereScratch,
1581
+ );
1582
+ if (state === BoundingSphereState.PENDING) {
1583
+ return;
1584
+ }
1585
+
1586
+ const sceneMode = scene.mode;
1587
+ if (
1588
+ sceneMode === SceneMode.COLUMBUS_VIEW ||
1589
+ sceneMode === SceneMode.SCENE2D
1590
+ ) {
1591
+ scene.screenSpaceCameraController.enableTranslate = false;
1592
+ }
1593
+
1594
+ if (
1595
+ sceneMode === SceneMode.COLUMBUS_VIEW ||
1596
+ sceneMode === SceneMode.SCENE3D
1597
+ ) {
1598
+ scene.screenSpaceCameraController.enableTilt = false;
1599
+ }
1600
+
1601
+ const bs =
1602
+ state !== BoundingSphereState.FAILED ? boundingSphereScratch : undefined;
1603
+ widget._entityView = new EntityView(trackedEntity, scene, scene.ellipsoid);
1604
+ widget._entityView.update(currentTime, bs);
1605
+ widget._needTrackedEntityUpdate = false;
1606
+ }
1607
+
832
1608
  export default CesiumWidget;