@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
@@ -242,7 +242,7 @@ function ScreenSpaceCameraController(scene) {
242
242
  * @default 4000.0 or scene.ellipsoid.minimumRadius * 0.00063
243
243
  */
244
244
  this.minimumPickingTerrainDistanceWithInertia = Ellipsoid.WGS84.equals(
245
- ellipsoid
245
+ ellipsoid,
246
246
  )
247
247
  ? 4000.0
248
248
  : ellipsoid.minimumRadius * 0.00063;
@@ -271,6 +271,16 @@ function ScreenSpaceCameraController(scene) {
271
271
  * @default true
272
272
  */
273
273
  this.enableCollisionDetection = true;
274
+ /**
275
+ * The angle, relative to the ellipsoid normal, restricting the maximum amount that the user can tilt the camera. If <code>undefined</code>, the angle of the camera tilt is unrestricted.
276
+ * @type {number|undefined}
277
+ * @default undefined
278
+ *
279
+ * @example
280
+ * // Prevent the camera from tilting below the ellipsoid surface
281
+ * viewer.scene.screenSpaceCameraController.maximumTiltAngle = Math.PI / 2.0;
282
+ */
283
+ this.maximumTiltAngle = undefined;
274
284
 
275
285
  this._scene = scene;
276
286
  this._globe = undefined;
@@ -328,7 +338,7 @@ function ScreenSpaceCameraController(scene) {
328
338
 
329
339
  const projection = scene.mapProjection;
330
340
  this._maxCoord = projection.project(
331
- new Cartographic(Math.PI, CesiumMath.PI_OVER_TWO)
341
+ new Cartographic(Math.PI, CesiumMath.PI_OVER_TWO),
332
342
  );
333
343
 
334
344
  // Constants, Make any of these public?
@@ -355,7 +365,7 @@ function sameMousePosition(movement) {
355
365
  return Cartesian2.equalsEpsilon(
356
366
  movement.startPosition,
357
367
  movement.endPosition,
358
- CesiumMath.EPSILON14
368
+ CesiumMath.EPSILON14,
359
369
  );
360
370
  }
361
371
 
@@ -372,7 +382,7 @@ function maintainInertia(
372
382
  decayCoef,
373
383
  action,
374
384
  object,
375
- lastMovementName
385
+ lastMovementName,
376
386
  ) {
377
387
  let movementState = object[lastMovementName];
378
388
  if (!defined(movementState)) {
@@ -410,18 +420,18 @@ function maintainInertia(
410
420
 
411
421
  movementState.startPosition = Cartesian2.clone(
412
422
  lastMovement.startPosition,
413
- movementState.startPosition
423
+ movementState.startPosition,
414
424
  );
415
425
 
416
426
  movementState.endPosition = Cartesian2.multiplyByScalar(
417
427
  movementState.motion,
418
428
  d,
419
- movementState.endPosition
429
+ movementState.endPosition,
420
430
  );
421
431
  movementState.endPosition = Cartesian2.add(
422
432
  movementState.startPosition,
423
433
  movementState.endPosition,
424
- movementState.endPosition
434
+ movementState.endPosition,
425
435
  );
426
436
 
427
437
  // If value from the decreasing exponential function is close to zero,
@@ -431,7 +441,7 @@ function maintainInertia(
431
441
  isNaN(movementState.endPosition.y) ||
432
442
  Cartesian2.distance(
433
443
  movementState.startPosition,
434
- movementState.endPosition
444
+ movementState.endPosition,
435
445
  ) < 0.5
436
446
  ) {
437
447
  return;
@@ -473,7 +483,7 @@ function reactToInput(
473
483
  eventTypes,
474
484
  action,
475
485
  inertiaConstant,
476
- inertiaStateName
486
+ inertiaStateName,
477
487
  ) {
478
488
  if (!defined(eventTypes)) {
479
489
  return;
@@ -509,7 +519,7 @@ function reactToInput(
509
519
  inertiaConstant,
510
520
  action,
511
521
  controller,
512
- inertiaStateName
522
+ inertiaStateName,
513
523
  );
514
524
  }
515
525
  }
@@ -551,14 +561,14 @@ function handleZoom(
551
561
  movement,
552
562
  zoomFactor,
553
563
  distanceMeasure,
554
- unitPositionDotDirection
564
+ unitPositionDotDirection,
555
565
  ) {
556
566
  let percentage = 1.0;
557
567
  if (defined(unitPositionDotDirection)) {
558
568
  percentage = CesiumMath.clamp(
559
569
  Math.abs(unitPositionDotDirection),
560
570
  0.25,
561
- 1.0
571
+ 1.0,
562
572
  );
563
573
  }
564
574
 
@@ -577,7 +587,7 @@ function handleZoom(
577
587
  zoomRate = CesiumMath.clamp(
578
588
  zoomRate,
579
589
  object._minimumZoomRate,
580
- object._maximumZoomRate
590
+ object._maximumZoomRate,
581
591
  );
582
592
 
583
593
  let rangeWindowRatio = diff / object._scene.canvas.clientHeight;
@@ -623,7 +633,7 @@ function handleZoom(
623
633
 
624
634
  const sameStartPosition = defaultValue(
625
635
  movement.inertiaEnabled,
626
- Cartesian2.equals(startPosition, object._zoomMouseStart)
636
+ Cartesian2.equals(startPosition, object._zoomMouseStart),
627
637
  );
628
638
  let zoomingOnVector = object._zoomingOnVector;
629
639
  let rotatingZoom = object._rotatingZoom;
@@ -632,23 +642,25 @@ function handleZoom(
632
642
  if (!sameStartPosition) {
633
643
  object._zoomMouseStart = Cartesian2.clone(
634
644
  startPosition,
635
- object._zoomMouseStart
645
+ object._zoomMouseStart,
636
646
  );
637
647
 
638
648
  // When camera transform is set, such as tracking an entity, object._globe will be undefined, and no position should be picked
639
649
  if (defined(object._globe) && mode === SceneMode.SCENE2D) {
640
- pickedPosition = camera.getPickRay(startPosition, scratchZoomPickRay)
641
- .origin;
650
+ pickedPosition = camera.getPickRay(
651
+ startPosition,
652
+ scratchZoomPickRay,
653
+ ).origin;
642
654
  pickedPosition = Cartesian3.fromElements(
643
655
  pickedPosition.y,
644
656
  pickedPosition.z,
645
- pickedPosition.x
657
+ pickedPosition.x,
646
658
  );
647
659
  } else if (defined(object._globe)) {
648
660
  pickedPosition = pickPosition(
649
661
  object,
650
662
  startPosition,
651
- scratchPickCartesian
663
+ scratchPickCartesian,
652
664
  );
653
665
  }
654
666
 
@@ -656,7 +668,7 @@ function handleZoom(
656
668
  object._useZoomWorldPosition = true;
657
669
  object._zoomWorldPosition = Cartesian3.clone(
658
670
  pickedPosition,
659
- object._zoomWorldPosition
671
+ object._zoomWorldPosition,
660
672
  );
661
673
  } else {
662
674
  object._useZoomWorldPosition = false;
@@ -692,7 +704,7 @@ function handleZoom(
692
704
  const direction = Cartesian3.subtract(
693
705
  worldPosition,
694
706
  endPosition,
695
- scratchZoomDirection
707
+ scratchZoomDirection,
696
708
  );
697
709
  Cartesian3.normalize(direction, direction);
698
710
 
@@ -705,23 +717,25 @@ function handleZoom(
705
717
  (camera.position.x < 0.0 && savedX > 0.0) ||
706
718
  (camera.position.x > 0.0 && savedX < 0.0)
707
719
  ) {
708
- pickedPosition = camera.getPickRay(startPosition, scratchZoomPickRay)
709
- .origin;
720
+ pickedPosition = camera.getPickRay(
721
+ startPosition,
722
+ scratchZoomPickRay,
723
+ ).origin;
710
724
  pickedPosition = Cartesian3.fromElements(
711
725
  pickedPosition.y,
712
726
  pickedPosition.z,
713
- pickedPosition.x
727
+ pickedPosition.x,
714
728
  );
715
729
  object._zoomWorldPosition = Cartesian3.clone(
716
730
  pickedPosition,
717
- object._zoomWorldPosition
731
+ object._zoomWorldPosition,
718
732
  );
719
733
  }
720
734
  }
721
735
  } else if (mode === SceneMode.SCENE3D) {
722
736
  const cameraPositionNormal = Cartesian3.normalize(
723
737
  camera.position,
724
- scratchCameraPositionNormal
738
+ scratchCameraPositionNormal,
725
739
  );
726
740
  if (
727
741
  object._cameraUnderground ||
@@ -740,7 +754,7 @@ function handleZoom(
740
754
  const centerPosition = pickPosition(
741
755
  object,
742
756
  centerPixel,
743
- scratchCenterPosition
757
+ scratchCenterPosition,
744
758
  );
745
759
  // If centerPosition is not defined, it means the globe does not cover the center position of screen
746
760
 
@@ -772,7 +786,7 @@ function handleZoom(
772
786
  Cartesian3.add(
773
787
  cameraPosition,
774
788
  Cartesian3.multiplyByScalar(forward, 1000, scratchCartesian),
775
- center
789
+ center,
776
790
  );
777
791
 
778
792
  const positionToTarget = scratchPositionToTarget;
@@ -783,7 +797,7 @@ function handleZoom(
783
797
 
784
798
  const alphaDot = Cartesian3.dot(
785
799
  cameraPositionNormal,
786
- positionToTargetNormal
800
+ positionToTargetNormal,
787
801
  );
788
802
  if (alphaDot >= 0.0) {
789
803
  // We zoomed past the target, and this zoom is not valid anymore.
@@ -795,23 +809,22 @@ function handleZoom(
795
809
  const cameraDistance = Cartesian3.magnitude(cameraPosition);
796
810
  const targetDistance = Cartesian3.magnitude(target);
797
811
  const remainingDistance = cameraDistance - distance;
798
- const positionToTargetDistance = Cartesian3.magnitude(
799
- positionToTarget
800
- );
812
+ const positionToTargetDistance =
813
+ Cartesian3.magnitude(positionToTarget);
801
814
 
802
815
  const gamma = Math.asin(
803
816
  CesiumMath.clamp(
804
817
  (positionToTargetDistance / targetDistance) * Math.sin(alpha),
805
818
  -1.0,
806
- 1.0
807
- )
819
+ 1.0,
820
+ ),
808
821
  );
809
822
  const delta = Math.asin(
810
823
  CesiumMath.clamp(
811
824
  (remainingDistance / targetDistance) * Math.sin(alpha),
812
825
  -1.0,
813
- 1.0
814
- )
826
+ 1.0,
827
+ ),
815
828
  );
816
829
  const beta = gamma - delta + alpha;
817
830
 
@@ -823,20 +836,20 @@ function handleZoom(
823
836
 
824
837
  Cartesian3.normalize(
825
838
  Cartesian3.cross(up, right, scratchCartesian),
826
- forward
839
+ forward,
827
840
  );
828
841
 
829
842
  // Calculate new position to move to
830
843
  Cartesian3.multiplyByScalar(
831
844
  Cartesian3.normalize(center, scratchCartesian),
832
845
  Cartesian3.magnitude(center) - distance,
833
- center
846
+ center,
834
847
  );
835
848
  Cartesian3.normalize(cameraPosition, cameraPosition);
836
849
  Cartesian3.multiplyByScalar(
837
850
  cameraPosition,
838
851
  remainingDistance,
839
- cameraPosition
852
+ cameraPosition,
840
853
  );
841
854
 
842
855
  // Pan
@@ -846,24 +859,24 @@ function handleZoom(
846
859
  Cartesian3.multiplyByScalar(
847
860
  up,
848
861
  Math.cos(beta) - 1,
849
- scratchCartesianTwo
862
+ scratchCartesianTwo,
850
863
  ),
851
864
  Cartesian3.multiplyByScalar(
852
865
  forward,
853
866
  Math.sin(beta),
854
- scratchCartesianThree
867
+ scratchCartesianThree,
855
868
  ),
856
- scratchCartesian
869
+ scratchCartesian,
857
870
  ),
858
871
  remainingDistance,
859
- pMid
872
+ pMid,
860
873
  );
861
874
  Cartesian3.add(cameraPosition, pMid, cameraPosition);
862
875
 
863
876
  Cartesian3.normalize(center, up);
864
877
  Cartesian3.normalize(
865
878
  Cartesian3.cross(up, right, scratchCartesian),
866
- forward
879
+ forward,
867
880
  );
868
881
 
869
882
  const cMid = scratchCenterMovement;
@@ -872,17 +885,17 @@ function handleZoom(
872
885
  Cartesian3.multiplyByScalar(
873
886
  up,
874
887
  Math.cos(beta) - 1,
875
- scratchCartesianTwo
888
+ scratchCartesianTwo,
876
889
  ),
877
890
  Cartesian3.multiplyByScalar(
878
891
  forward,
879
892
  Math.sin(beta),
880
- scratchCartesianThree
893
+ scratchCartesianThree,
881
894
  ),
882
- scratchCartesian
895
+ scratchCartesian,
883
896
  ),
884
897
  Cartesian3.magnitude(center),
885
- cMid
898
+ cMid,
886
899
  );
887
900
  Cartesian3.add(center, cMid, center);
888
901
 
@@ -894,7 +907,7 @@ function handleZoom(
894
907
  // Set new direction
895
908
  Cartesian3.normalize(
896
909
  Cartesian3.subtract(center, cameraPosition, scratchCartesian),
897
- camera.direction
910
+ camera.direction,
898
911
  );
899
912
  Cartesian3.clone(camera.direction, camera.direction);
900
913
 
@@ -908,11 +921,11 @@ function handleZoom(
908
921
  } else {
909
922
  const positionNormal = Cartesian3.normalize(
910
923
  centerPosition,
911
- scratchPositionNormal
924
+ scratchPositionNormal,
912
925
  );
913
926
  const pickedNormal = Cartesian3.normalize(
914
927
  object._zoomWorldPosition,
915
- scratchPickNormal
928
+ scratchPickNormal,
916
929
  );
917
930
  const dotProduct = Cartesian3.dot(pickedNormal, positionNormal);
918
931
 
@@ -921,7 +934,7 @@ function handleZoom(
921
934
  const axis = Cartesian3.cross(
922
935
  pickedNormal,
923
936
  positionNormal,
924
- scratchZoomAxis
937
+ scratchZoomAxis,
925
938
  );
926
939
 
927
940
  const denom =
@@ -943,7 +956,7 @@ function handleZoom(
943
956
  const zoomMouseStart = SceneTransforms.worldToWindowCoordinates(
944
957
  scene,
945
958
  object._zoomWorldPosition,
946
- scratchZoomOffset
959
+ scratchZoomOffset,
947
960
  );
948
961
  if (
949
962
  mode !== SceneMode.COLUMBUS_VIEW &&
@@ -961,7 +974,7 @@ function handleZoom(
961
974
  rayDirection.y,
962
975
  rayDirection.z,
963
976
  rayDirection.x,
964
- rayDirection
977
+ rayDirection,
965
978
  );
966
979
  }
967
980
 
@@ -984,8 +997,10 @@ const scratchTranslateP0 = new Cartesian3();
984
997
  function translate2D(controller, startPosition, movement) {
985
998
  const scene = controller._scene;
986
999
  const camera = scene.camera;
987
- let start = camera.getPickRay(movement.startPosition, translate2DStart)
988
- .origin;
1000
+ let start = camera.getPickRay(
1001
+ movement.startPosition,
1002
+ translate2DStart,
1003
+ ).origin;
989
1004
  let end = camera.getPickRay(movement.endPosition, translate2DEnd).origin;
990
1005
 
991
1006
  start = Cartesian3.fromElements(start.y, start.z, start.x, start);
@@ -1013,7 +1028,7 @@ function zoom2D(controller, startPosition, movement) {
1013
1028
  startPosition,
1014
1029
  movement,
1015
1030
  controller.zoomFactor,
1016
- camera.getMagnitude()
1031
+ camera.getMagnitude(),
1017
1032
  );
1018
1033
  }
1019
1034
 
@@ -1089,7 +1104,7 @@ function update2D(controller) {
1089
1104
  controller.zoomEventTypes,
1090
1105
  zoom2D,
1091
1106
  controller.inertiaZoom,
1092
- "_lastInertiaZoomMovement"
1107
+ "_lastInertiaZoomMovement",
1093
1108
  );
1094
1109
  if (rotatable2D) {
1095
1110
  reactToInput(
@@ -1098,7 +1113,7 @@ function update2D(controller) {
1098
1113
  controller.translateEventTypes,
1099
1114
  twist2D,
1100
1115
  controller.inertiaSpin,
1101
- "_lastInertiaSpinMovement"
1116
+ "_lastInertiaSpinMovement",
1102
1117
  );
1103
1118
  }
1104
1119
  } else {
@@ -1108,7 +1123,7 @@ function update2D(controller) {
1108
1123
  controller.translateEventTypes,
1109
1124
  translate2D,
1110
1125
  controller.inertiaTranslate,
1111
- "_lastInertiaTranslateMovement"
1126
+ "_lastInertiaTranslateMovement",
1112
1127
  );
1113
1128
  reactToInput(
1114
1129
  controller,
@@ -1116,7 +1131,7 @@ function update2D(controller) {
1116
1131
  controller.zoomEventTypes,
1117
1132
  zoom2D,
1118
1133
  controller.inertiaZoom,
1119
- "_lastInertiaZoomMovement"
1134
+ "_lastInertiaZoomMovement",
1120
1135
  );
1121
1136
  if (rotatable2D) {
1122
1137
  reactToInput(
@@ -1125,7 +1140,7 @@ function update2D(controller) {
1125
1140
  controller.tiltEventTypes,
1126
1141
  twist2D,
1127
1142
  controller.inertiaSpin,
1128
- "_lastInertiaTiltMovement"
1143
+ "_lastInertiaTiltMovement",
1129
1144
  );
1130
1145
  }
1131
1146
  }
@@ -1144,7 +1159,7 @@ function pickPosition(controller, mousePosition, result) {
1144
1159
  if (scene.pickPositionSupported) {
1145
1160
  depthIntersection = scene.pickPositionWorldCoordinates(
1146
1161
  mousePosition,
1147
- scratchDepthIntersection
1162
+ scratchDepthIntersection,
1148
1163
  );
1149
1164
  }
1150
1165
 
@@ -1158,7 +1173,7 @@ function pickPosition(controller, mousePosition, result) {
1158
1173
  ray,
1159
1174
  scene,
1160
1175
  cullBackFaces,
1161
- scratchRayIntersection
1176
+ scratchRayIntersection,
1162
1177
  );
1163
1178
 
1164
1179
  const pickDistance = defined(depthIntersection)
@@ -1187,7 +1202,7 @@ function getDistanceFromSurface(controller) {
1187
1202
  if (mode === SceneMode.SCENE3D) {
1188
1203
  const cartographic = ellipsoid.cartesianToCartographic(
1189
1204
  camera.position,
1190
- scratchDistanceCartographic
1205
+ scratchDistanceCartographic,
1191
1206
  );
1192
1207
  if (defined(cartographic)) {
1193
1208
  height = cartographic.height;
@@ -1222,7 +1237,7 @@ function getTiltCenterUnderground(controller, ray, pickedPosition, result) {
1222
1237
  const maximumDistance = CesiumMath.clamp(
1223
1238
  distanceFromSurface * 5.0,
1224
1239
  controller._minimumUndergroundPickDistance,
1225
- controller._maximumUndergroundPickDistance
1240
+ controller._maximumUndergroundPickDistance,
1226
1241
  );
1227
1242
 
1228
1243
  if (distance > maximumDistance) {
@@ -1238,7 +1253,7 @@ function getStrafeStartPositionUnderground(
1238
1253
  controller,
1239
1254
  ray,
1240
1255
  pickedPosition,
1241
- result
1256
+ result,
1242
1257
  ) {
1243
1258
  let distance;
1244
1259
  if (!defined(pickedPosition)) {
@@ -1263,7 +1278,7 @@ function continueStrafing(controller, movement) {
1263
1278
  const inertialDelta = Cartesian2.subtract(
1264
1279
  movement.endPosition,
1265
1280
  movement.startPosition,
1266
- scratchInertialDelta
1281
+ scratchInertialDelta,
1267
1282
  );
1268
1283
  const endPosition = controller._strafeEndMousePosition;
1269
1284
  Cartesian2.add(endPosition, inertialDelta, endPosition);
@@ -1306,7 +1321,7 @@ function translateCV(controller, startPosition, movement) {
1306
1321
  const cameraUnderground = controller._cameraUnderground;
1307
1322
  const startMouse = Cartesian2.clone(
1308
1323
  movement.startPosition,
1309
- translateCVStartMouse
1324
+ translateCVStartMouse,
1310
1325
  );
1311
1326
  const endMouse = Cartesian2.clone(movement.endPosition, translateCVEndMouse);
1312
1327
  let startRay = camera.getPickRay(startMouse, translateCVStartRay);
@@ -1333,7 +1348,7 @@ function translateCV(controller, startPosition, movement) {
1333
1348
  controller,
1334
1349
  startRay,
1335
1350
  globePos,
1336
- translateCVStartPos
1351
+ translateCVStartPos,
1337
1352
  );
1338
1353
  }
1339
1354
  Cartesian2.clone(startPosition, controller._strafeMousePosition);
@@ -1350,14 +1365,14 @@ function translateCV(controller, startPosition, movement) {
1350
1365
  const startPlanePos = IntersectionTests.rayPlane(
1351
1366
  startRay,
1352
1367
  plane,
1353
- translateCVStartPos
1368
+ translateCVStartPos,
1354
1369
  );
1355
1370
 
1356
1371
  const endRay = camera.getPickRay(endMouse, translateCVEndRay);
1357
1372
  const endPlanePos = IntersectionTests.rayPlane(
1358
1373
  endRay,
1359
1374
  plane,
1360
- translateCVEndPos
1375
+ translateCVEndPos,
1361
1376
  );
1362
1377
 
1363
1378
  if (!defined(startPlanePos) || !defined(endPlanePos)) {
@@ -1370,7 +1385,7 @@ function translateCV(controller, startPosition, movement) {
1370
1385
  const diff = Cartesian3.subtract(
1371
1386
  startPlanePos,
1372
1387
  endPlanePos,
1373
- translateCVDifference
1388
+ translateCVDifference,
1374
1389
  );
1375
1390
  const temp = diff.x;
1376
1391
  diff.x = diff.y;
@@ -1467,7 +1482,7 @@ function rotateCVOnPlane(controller, startPosition, movement) {
1467
1482
  const transform = Transforms.eastNorthUpToFixedFrame(
1468
1483
  center,
1469
1484
  ellipsoid,
1470
- rotateCVTransform
1485
+ rotateCVTransform,
1471
1486
  );
1472
1487
 
1473
1488
  const oldGlobe = controller._globe;
@@ -1554,7 +1569,7 @@ function rotateCVOnTerrain(controller, startPosition, movement) {
1554
1569
  const verticalCenter = IntersectionTests.rayPlane(
1555
1570
  ray,
1556
1571
  plane,
1557
- rotateCVVerticalCenter
1572
+ rotateCVVerticalCenter,
1558
1573
  );
1559
1574
 
1560
1575
  const projection = camera._projection;
@@ -1567,7 +1582,7 @@ function rotateCVOnTerrain(controller, startPosition, movement) {
1567
1582
  const transform = Transforms.eastNorthUpToFixedFrame(
1568
1583
  center,
1569
1584
  ellipsoid,
1570
- rotateCVTransform
1585
+ rotateCVTransform,
1571
1586
  );
1572
1587
 
1573
1588
  let verticalTransform;
@@ -1576,7 +1591,7 @@ function rotateCVOnTerrain(controller, startPosition, movement) {
1576
1591
  verticalCenter.y,
1577
1592
  verticalCenter.z,
1578
1593
  verticalCenter.x,
1579
- verticalCenter
1594
+ verticalCenter,
1580
1595
  );
1581
1596
  cart = projection.unproject(verticalCenter, rotateCVCart);
1582
1597
  ellipsoid.cartographicToCartesian(cart, verticalCenter);
@@ -1584,7 +1599,7 @@ function rotateCVOnTerrain(controller, startPosition, movement) {
1584
1599
  verticalTransform = Transforms.eastNorthUpToFixedFrame(
1585
1600
  verticalCenter,
1586
1601
  ellipsoid,
1587
- rotateCVVerticalTransform
1602
+ rotateCVVerticalTransform,
1588
1603
  );
1589
1604
  } else {
1590
1605
  verticalTransform = transform;
@@ -1605,7 +1620,7 @@ function rotateCVOnTerrain(controller, startPosition, movement) {
1605
1620
  const tangent = Cartesian3.cross(
1606
1621
  Cartesian3.UNIT_Z,
1607
1622
  Cartesian3.normalize(camera.position, rotateCVCartesian3),
1608
- rotateCVCartesian3
1623
+ rotateCVCartesian3,
1609
1624
  );
1610
1625
  const dot = Cartesian3.dot(camera.right, tangent);
1611
1626
 
@@ -1636,7 +1651,7 @@ function rotateCVOnTerrain(controller, startPosition, movement) {
1636
1651
  const right = Cartesian3.cross(
1637
1652
  camera.direction,
1638
1653
  camera.constrainedAxis,
1639
- tilt3DCartesian3
1654
+ tilt3DCartesian3,
1640
1655
  );
1641
1656
  if (
1642
1657
  !Cartesian3.equalsEpsilon(right, Cartesian3.ZERO, CesiumMath.EPSILON6)
@@ -1663,7 +1678,7 @@ function rotateCVOnTerrain(controller, startPosition, movement) {
1663
1678
 
1664
1679
  const originalPosition = Cartesian3.clone(
1665
1680
  camera.positionWC,
1666
- rotateCVCartesian3
1681
+ rotateCVCartesian3,
1667
1682
  );
1668
1683
 
1669
1684
  if (controller.enableCollisionDetection) {
@@ -1680,7 +1695,7 @@ function rotateCVOnTerrain(controller, startPosition, movement) {
1680
1695
  Cartesian3.multiplyByScalar(
1681
1696
  camera.position,
1682
1697
  Math.sqrt(magSqrd),
1683
- camera.position
1698
+ camera.position,
1684
1699
  );
1685
1700
  }
1686
1701
 
@@ -1688,14 +1703,14 @@ function rotateCVOnTerrain(controller, startPosition, movement) {
1688
1703
  const axis = Cartesian3.cross(
1689
1704
  originalPosition,
1690
1705
  camera.position,
1691
- originalPosition
1706
+ originalPosition,
1692
1707
  );
1693
1708
  Cartesian3.normalize(axis, axis);
1694
1709
 
1695
1710
  const quaternion = Quaternion.fromAxisAngle(
1696
1711
  axis,
1697
1712
  angle,
1698
- rotateCVQuaternion
1713
+ rotateCVQuaternion,
1699
1714
  );
1700
1715
  const rotation = Matrix3.fromQuaternion(quaternion, rotateCVMatrix);
1701
1716
  Matrix3.multiplyByVector(rotation, camera.direction, camera.direction);
@@ -1751,7 +1766,7 @@ function zoomCV(controller, startPosition, movement) {
1751
1766
  const distanceUnderground = getZoomDistanceUnderground(
1752
1767
  controller,
1753
1768
  ray,
1754
- height
1769
+ height,
1755
1770
  );
1756
1771
  if (defined(distance)) {
1757
1772
  distance = Math.min(distance, distanceUnderground);
@@ -1771,7 +1786,7 @@ function zoomCV(controller, startPosition, movement) {
1771
1786
  startPosition,
1772
1787
  movement,
1773
1788
  controller.zoomFactor,
1774
- distance
1789
+ distance,
1775
1790
  );
1776
1791
  }
1777
1792
 
@@ -1786,7 +1801,7 @@ function updateCV(controller) {
1786
1801
  controller.rotateEventTypes,
1787
1802
  rotate3D,
1788
1803
  controller.inertiaSpin,
1789
- "_lastInertiaSpinMovement"
1804
+ "_lastInertiaSpinMovement",
1790
1805
  );
1791
1806
  reactToInput(
1792
1807
  controller,
@@ -1794,7 +1809,7 @@ function updateCV(controller) {
1794
1809
  controller.zoomEventTypes,
1795
1810
  zoom3D,
1796
1811
  controller.inertiaZoom,
1797
- "_lastInertiaZoomMovement"
1812
+ "_lastInertiaZoomMovement",
1798
1813
  );
1799
1814
  } else {
1800
1815
  const tweens = controller._tweens;
@@ -1809,7 +1824,7 @@ function updateCV(controller) {
1809
1824
  controller.tiltEventTypes,
1810
1825
  rotateCV,
1811
1826
  controller.inertiaSpin,
1812
- "_lastInertiaTiltMovement"
1827
+ "_lastInertiaTiltMovement",
1813
1828
  );
1814
1829
  reactToInput(
1815
1830
  controller,
@@ -1817,7 +1832,7 @@ function updateCV(controller) {
1817
1832
  controller.translateEventTypes,
1818
1833
  translateCV,
1819
1834
  controller.inertiaTranslate,
1820
- "_lastInertiaTranslateMovement"
1835
+ "_lastInertiaTranslateMovement",
1821
1836
  );
1822
1837
  reactToInput(
1823
1838
  controller,
@@ -1825,13 +1840,13 @@ function updateCV(controller) {
1825
1840
  controller.zoomEventTypes,
1826
1841
  zoomCV,
1827
1842
  controller.inertiaZoom,
1828
- "_lastInertiaZoomMovement"
1843
+ "_lastInertiaZoomMovement",
1829
1844
  );
1830
1845
  reactToInput(
1831
1846
  controller,
1832
1847
  controller.enableLook,
1833
1848
  controller.lookEventTypes,
1834
- look3D
1849
+ look3D,
1835
1850
  );
1836
1851
 
1837
1852
  if (
@@ -1839,7 +1854,7 @@ function updateCV(controller) {
1839
1854
  !tweens.contains(controller._tween)
1840
1855
  ) {
1841
1856
  const tween = camera.createCorrectPositionTween(
1842
- controller.bounceAnimationTime
1857
+ controller.bounceAnimationTime,
1843
1858
  );
1844
1859
  if (defined(tween)) {
1845
1860
  controller._tween = tweens.add(tween);
@@ -1869,12 +1884,12 @@ function strafe(controller, movement, strafeStartPosition) {
1869
1884
  const plane = Plane.fromPointNormal(
1870
1885
  strafeStartPosition,
1871
1886
  direction,
1872
- scratchStrafePlane
1887
+ scratchStrafePlane,
1873
1888
  );
1874
1889
  const intersection = IntersectionTests.rayPlane(
1875
1890
  ray,
1876
1891
  plane,
1877
- scratchStrafeIntersection
1892
+ scratchStrafeIntersection,
1878
1893
  );
1879
1894
  if (!defined(intersection)) {
1880
1895
  return;
@@ -1941,7 +1956,7 @@ function spin3D(controller, startPosition, movement) {
1941
1956
 
1942
1957
  const height = ellipsoid.cartesianToCartographic(
1943
1958
  camera.positionWC,
1944
- scratchCartographic
1959
+ scratchCartographic,
1945
1960
  ).height;
1946
1961
  const globe = controller._globe;
1947
1962
 
@@ -1949,13 +1964,13 @@ function spin3D(controller, startPosition, movement) {
1949
1964
  const mousePos = pickPosition(
1950
1965
  controller,
1951
1966
  movement.startPosition,
1952
- scratchMousePosition
1967
+ scratchMousePosition,
1953
1968
  );
1954
1969
  if (defined(mousePos)) {
1955
1970
  let strafing = false;
1956
1971
  const ray = camera.getPickRay(
1957
1972
  movement.startPosition,
1958
- pickGlobeScratchRay
1973
+ pickGlobeScratchRay,
1959
1974
  );
1960
1975
 
1961
1976
  if (cameraUnderground) {
@@ -1998,8 +2013,8 @@ function spin3D(controller, startPosition, movement) {
1998
2013
  camera.pickEllipsoid(
1999
2014
  movement.startPosition,
2000
2015
  controller._ellipsoid,
2001
- spin3DPick
2002
- )
2016
+ spin3DPick,
2017
+ ),
2003
2018
  )
2004
2019
  ) {
2005
2020
  pan3D(controller, startPosition, movement, controller._ellipsoid);
@@ -2021,7 +2036,7 @@ function rotate3D(
2021
2036
  movement,
2022
2037
  constrainedAxis,
2023
2038
  rotateOnlyVertical,
2024
- rotateOnlyHorizontal
2039
+ rotateOnlyHorizontal,
2025
2040
  ) {
2026
2041
  rotateOnlyVertical = defaultValue(rotateOnlyVertical, false);
2027
2042
  rotateOnlyHorizontal = defaultValue(rotateOnlyHorizontal, false);
@@ -2054,11 +2069,20 @@ function rotate3D(
2054
2069
  phiWindowRatio = Math.min(phiWindowRatio, controller.maximumMovementRatio);
2055
2070
  thetaWindowRatio = Math.min(
2056
2071
  thetaWindowRatio,
2057
- controller.maximumMovementRatio
2072
+ controller.maximumMovementRatio,
2058
2073
  );
2059
2074
 
2060
2075
  const deltaPhi = rotateRate * phiWindowRatio * Math.PI * 2.0;
2061
- const deltaTheta = rotateRate * thetaWindowRatio * Math.PI;
2076
+ let deltaTheta = rotateRate * thetaWindowRatio * Math.PI;
2077
+
2078
+ if (defined(constrainedAxis) && defined(controller.maximumTiltAngle)) {
2079
+ const maximumTiltAngle = controller.maximumTiltAngle;
2080
+ const dotProduct = Cartesian3.dot(camera.direction, constrainedAxis);
2081
+ const tilt = Math.PI - Math.acos(dotProduct) + deltaTheta;
2082
+ if (tilt > maximumTiltAngle) {
2083
+ deltaTheta -= tilt - maximumTiltAngle;
2084
+ }
2085
+ }
2062
2086
 
2063
2087
  if (!rotateOnlyVertical) {
2064
2088
  camera.rotateRight(deltaPhi);
@@ -2089,15 +2113,15 @@ function pan3D(controller, startPosition, movement, ellipsoid) {
2089
2113
 
2090
2114
  const startMousePosition = Cartesian2.clone(
2091
2115
  movement.startPosition,
2092
- pan3DStartMousePosition
2116
+ pan3DStartMousePosition,
2093
2117
  );
2094
2118
  const endMousePosition = Cartesian2.clone(
2095
2119
  movement.endPosition,
2096
- pan3DEndMousePosition
2120
+ pan3DEndMousePosition,
2097
2121
  );
2098
2122
  const height = ellipsoid.cartesianToCartographic(
2099
2123
  camera.positionWC,
2100
- scratchCartographic
2124
+ scratchCartographic,
2101
2125
  ).height;
2102
2126
 
2103
2127
  let p0, p1;
@@ -2113,7 +2137,7 @@ function pan3D(controller, startPosition, movement, ellipsoid) {
2113
2137
  !defined(controller._globe) &&
2114
2138
  !Cartesian2.equalsEpsilon(
2115
2139
  startMousePosition,
2116
- controller._panLastMousePosition
2140
+ controller._panLastMousePosition,
2117
2141
  )
2118
2142
  ) {
2119
2143
  p0 = pickPosition(controller, startMousePosition, pan3DP0);
@@ -2124,7 +2148,7 @@ function pan3D(controller, startPosition, movement, ellipsoid) {
2124
2148
  const toCenterProj = Cartesian3.multiplyByScalar(
2125
2149
  camera.directionWC,
2126
2150
  Cartesian3.dot(camera.directionWC, toCenter),
2127
- pan3DTemp1
2151
+ pan3DTemp1,
2128
2152
  );
2129
2153
  const distanceToNearPlane = Cartesian3.magnitude(toCenterProj);
2130
2154
  const pixelDimensions = camera.frustum.getPixelDimensions(
@@ -2132,33 +2156,35 @@ function pan3D(controller, startPosition, movement, ellipsoid) {
2132
2156
  scene.drawingBufferHeight,
2133
2157
  distanceToNearPlane,
2134
2158
  scene.pixelRatio,
2135
- pan3DPixelDimensions
2159
+ pan3DPixelDimensions,
2136
2160
  );
2137
2161
 
2138
2162
  const dragDelta = Cartesian2.subtract(
2139
2163
  endMousePosition,
2140
2164
  startMousePosition,
2141
- pan3DDiffMousePosition
2165
+ pan3DDiffMousePosition,
2142
2166
  );
2143
2167
 
2144
2168
  // Move the camera to the the distance the cursor moved in worldspace
2145
2169
  const right = Cartesian3.multiplyByScalar(
2146
2170
  camera.rightWC,
2147
2171
  dragDelta.x * pixelDimensions.x,
2148
- pan3DTemp1
2172
+ pan3DTemp1,
2149
2173
  );
2150
2174
 
2151
2175
  // Move the camera towards the picked position in worldspace as the camera is pointed towards a horizon view
2152
2176
  const cameraPositionNormal = Cartesian3.normalize(
2153
2177
  camera.positionWC,
2154
- scratchCameraPositionNormal
2178
+ scratchCameraPositionNormal,
2155
2179
  );
2156
- const endPickDirection = camera.getPickRay(endMousePosition, panRay)
2157
- .direction;
2180
+ const endPickDirection = camera.getPickRay(
2181
+ endMousePosition,
2182
+ panRay,
2183
+ ).direction;
2158
2184
  const endPickProj = Cartesian3.subtract(
2159
2185
  endPickDirection,
2160
2186
  Cartesian3.projectVector(endPickDirection, camera.rightWC, pan3DTemp2),
2161
- pan3DTemp2
2187
+ pan3DTemp2,
2162
2188
  );
2163
2189
  const angle = Cartesian3.angleBetween(endPickProj, camera.directionWC);
2164
2190
  let forward = 1.0;
@@ -2166,7 +2192,7 @@ function pan3D(controller, startPosition, movement, ellipsoid) {
2166
2192
  forward = Math.max(Math.tan(angle), 0.1); // Clamp so we don't make the magnitude infinitely large when the angle is small
2167
2193
  }
2168
2194
  let dot = Math.abs(
2169
- Cartesian3.dot(camera.directionWC, cameraPositionNormal)
2195
+ Cartesian3.dot(camera.directionWC, cameraPositionNormal),
2170
2196
  );
2171
2197
  const magnitude =
2172
2198
  ((-dragDelta.y * pixelDimensions.y * 2.0) / Math.sqrt(forward)) *
@@ -2174,7 +2200,7 @@ function pan3D(controller, startPosition, movement, ellipsoid) {
2174
2200
  const direction = Cartesian3.multiplyByScalar(
2175
2201
  endPickDirection,
2176
2202
  magnitude,
2177
- pan3DTemp2
2203
+ pan3DTemp2,
2178
2204
  );
2179
2205
 
2180
2206
  // Move the camera up the distance the cursor moved in worldspace as the camera is pointed towards the center
@@ -2182,7 +2208,7 @@ function pan3D(controller, startPosition, movement, ellipsoid) {
2182
2208
  const up = Cartesian3.multiplyByScalar(
2183
2209
  camera.upWC,
2184
2210
  -dragDelta.y * (1.0 - dot) * pixelDimensions.y,
2185
- pan3DTemp3
2211
+ pan3DTemp3,
2186
2212
  );
2187
2213
 
2188
2214
  p1 = Cartesian3.add(p0, right, pan3DP1);
@@ -2267,11 +2293,11 @@ function pan3D(controller, startPosition, movement, ellipsoid) {
2267
2293
  const planeNormal = Cartesian3.cross(basis0, east, pan3DTemp0);
2268
2294
  const side0 = Cartesian3.dot(
2269
2295
  planeNormal,
2270
- Cartesian3.subtract(p0, basis0, pan3DTemp1)
2296
+ Cartesian3.subtract(p0, basis0, pan3DTemp1),
2271
2297
  );
2272
2298
  const side1 = Cartesian3.dot(
2273
2299
  planeNormal,
2274
- Cartesian3.subtract(p1, basis0, pan3DTemp1)
2300
+ Cartesian3.subtract(p1, basis0, pan3DTemp1),
2275
2301
  );
2276
2302
 
2277
2303
  let deltaTheta;
@@ -2325,7 +2351,7 @@ function zoom3D(controller, startPosition, movement) {
2325
2351
  let intersection;
2326
2352
  const height = ellipsoid.cartesianToCartographic(
2327
2353
  camera.position,
2328
- zoom3DCartographic
2354
+ zoom3DCartographic,
2329
2355
  ).height;
2330
2356
 
2331
2357
  const approachingCollision =
@@ -2349,7 +2375,7 @@ function zoom3D(controller, startPosition, movement) {
2349
2375
  const distanceUnderground = getZoomDistanceUnderground(
2350
2376
  controller,
2351
2377
  ray,
2352
- height
2378
+ height,
2353
2379
  );
2354
2380
  if (defined(distance)) {
2355
2381
  distance = Math.min(distance, distanceUnderground);
@@ -2364,7 +2390,7 @@ function zoom3D(controller, startPosition, movement) {
2364
2390
 
2365
2391
  const unitPosition = Cartesian3.normalize(
2366
2392
  camera.position,
2367
- zoom3DUnitPosition
2393
+ zoom3DUnitPosition,
2368
2394
  );
2369
2395
  handleZoom(
2370
2396
  controller,
@@ -2372,7 +2398,7 @@ function zoom3D(controller, startPosition, movement) {
2372
2398
  movement,
2373
2399
  controller.zoomFactor,
2374
2400
  distance,
2375
- Cartesian3.dot(unitPosition, camera.direction)
2401
+ Cartesian3.dot(unitPosition, camera.direction),
2376
2402
  );
2377
2403
  }
2378
2404
 
@@ -2408,7 +2434,7 @@ function tilt3D(controller, startPosition, movement) {
2408
2434
  if (controller._looking) {
2409
2435
  const up = controller._ellipsoid.geodeticSurfaceNormal(
2410
2436
  camera.position,
2411
- tilt3DLookUp
2437
+ tilt3DLookUp,
2412
2438
  );
2413
2439
  look3D(controller, startPosition, movement, up);
2414
2440
  return;
@@ -2417,7 +2443,7 @@ function tilt3D(controller, startPosition, movement) {
2417
2443
  const ellipsoid = controller._ellipsoid;
2418
2444
  const cartographic = ellipsoid.cartesianToCartographic(
2419
2445
  camera.position,
2420
- tilt3DCart
2446
+ tilt3DCart,
2421
2447
  );
2422
2448
 
2423
2449
  if (
@@ -2440,7 +2466,7 @@ function tilt3DOnEllipsoid(controller, startPosition, movement) {
2440
2466
  const minHeight = controller.minimumZoomDistance * 0.25;
2441
2467
  const height = ellipsoid.cartesianToCartographic(
2442
2468
  camera.positionWC,
2443
- tilt3DOnEllipsoidCartographic
2469
+ tilt3DOnEllipsoidCartographic,
2444
2470
  ).height;
2445
2471
  if (
2446
2472
  height - minHeight - 1.0 < CesiumMath.EPSILON3 &&
@@ -2463,25 +2489,25 @@ function tilt3DOnEllipsoid(controller, startPosition, movement) {
2463
2489
  } else if (height > controller._minimumTrackBallHeight) {
2464
2490
  const grazingAltitudeLocation = IntersectionTests.grazingAltitudeLocation(
2465
2491
  ray,
2466
- ellipsoid
2492
+ ellipsoid,
2467
2493
  );
2468
2494
  if (!defined(grazingAltitudeLocation)) {
2469
2495
  return;
2470
2496
  }
2471
2497
  const grazingAltitudeCart = ellipsoid.cartesianToCartographic(
2472
2498
  grazingAltitudeLocation,
2473
- tilt3DCart
2499
+ tilt3DCart,
2474
2500
  );
2475
2501
  grazingAltitudeCart.height = 0.0;
2476
2502
  center = ellipsoid.cartographicToCartesian(
2477
2503
  grazingAltitudeCart,
2478
- tilt3DCenter
2504
+ tilt3DCenter,
2479
2505
  );
2480
2506
  } else {
2481
2507
  controller._looking = true;
2482
2508
  const up = controller._ellipsoid.geodeticSurfaceNormal(
2483
2509
  camera.position,
2484
- tilt3DLookUp
2510
+ tilt3DLookUp,
2485
2511
  );
2486
2512
  look3D(controller, startPosition, movement, up);
2487
2513
  Cartesian2.clone(startPosition, controller._tiltCenterMousePosition);
@@ -2491,7 +2517,7 @@ function tilt3DOnEllipsoid(controller, startPosition, movement) {
2491
2517
  const transform = Transforms.eastNorthUpToFixedFrame(
2492
2518
  center,
2493
2519
  ellipsoid,
2494
- tilt3DTransform
2520
+ tilt3DTransform,
2495
2521
  );
2496
2522
 
2497
2523
  const oldGlobe = controller._globe;
@@ -2536,13 +2562,13 @@ function tilt3DOnTerrain(controller, startPosition, movement) {
2536
2562
  if (!defined(intersection)) {
2537
2563
  const cartographic = ellipsoid.cartesianToCartographic(
2538
2564
  camera.position,
2539
- tilt3DCart
2565
+ tilt3DCart,
2540
2566
  );
2541
2567
  if (cartographic.height <= controller._minimumTrackBallHeight) {
2542
2568
  controller._looking = true;
2543
2569
  const up = controller._ellipsoid.geodeticSurfaceNormal(
2544
2570
  camera.position,
2545
- tilt3DLookUp
2571
+ tilt3DLookUp,
2546
2572
  );
2547
2573
  look3D(controller, startPosition, movement, up);
2548
2574
  Cartesian2.clone(startPosition, controller._tiltCenterMousePosition);
@@ -2588,12 +2614,12 @@ function tilt3DOnTerrain(controller, startPosition, movement) {
2588
2614
  const transform = Transforms.eastNorthUpToFixedFrame(
2589
2615
  center,
2590
2616
  ellipsoid,
2591
- tilt3DTransform
2617
+ tilt3DTransform,
2592
2618
  );
2593
2619
  const verticalTransform = Transforms.eastNorthUpToFixedFrame(
2594
2620
  verticalCenter,
2595
2621
  newEllipsoid,
2596
- tilt3DVerticalTransform
2622
+ tilt3DVerticalTransform,
2597
2623
  );
2598
2624
 
2599
2625
  const oldGlobe = controller._globe;
@@ -2611,7 +2637,7 @@ function tilt3DOnTerrain(controller, startPosition, movement) {
2611
2637
  const tangent = Cartesian3.cross(
2612
2638
  verticalCenter,
2613
2639
  camera.positionWC,
2614
- tilt3DCartesian3
2640
+ tilt3DCartesian3,
2615
2641
  );
2616
2642
  const dot = Cartesian3.dot(camera.rightWC, tangent);
2617
2643
 
@@ -2642,7 +2668,7 @@ function tilt3DOnTerrain(controller, startPosition, movement) {
2642
2668
  const right = Cartesian3.cross(
2643
2669
  camera.direction,
2644
2670
  camera.constrainedAxis,
2645
- tilt3DCartesian3
2671
+ tilt3DCartesian3,
2646
2672
  );
2647
2673
  if (
2648
2674
  !Cartesian3.equalsEpsilon(right, Cartesian3.ZERO, CesiumMath.EPSILON6)
@@ -2669,7 +2695,7 @@ function tilt3DOnTerrain(controller, startPosition, movement) {
2669
2695
 
2670
2696
  const originalPosition = Cartesian3.clone(
2671
2697
  camera.positionWC,
2672
- tilt3DCartesian3
2698
+ tilt3DCartesian3,
2673
2699
  );
2674
2700
 
2675
2701
  if (controller.enableCollisionDetection) {
@@ -2686,7 +2712,7 @@ function tilt3DOnTerrain(controller, startPosition, movement) {
2686
2712
  Cartesian3.multiplyByScalar(
2687
2713
  camera.position,
2688
2714
  Math.sqrt(magSqrd),
2689
- camera.position
2715
+ camera.position,
2690
2716
  );
2691
2717
  }
2692
2718
 
@@ -2694,7 +2720,7 @@ function tilt3DOnTerrain(controller, startPosition, movement) {
2694
2720
  const axis = Cartesian3.cross(
2695
2721
  originalPosition,
2696
2722
  camera.position,
2697
- originalPosition
2723
+ originalPosition,
2698
2724
  );
2699
2725
  Cartesian3.normalize(axis, axis);
2700
2726
 
@@ -2805,17 +2831,17 @@ function look3D(controller, startPosition, movement, rotationAxis) {
2805
2831
  const direction = camera.direction;
2806
2832
  const negativeRotationAxis = Cartesian3.negate(
2807
2833
  rotationAxis,
2808
- look3DNegativeRot
2834
+ look3DNegativeRot,
2809
2835
  );
2810
2836
  const northParallel = Cartesian3.equalsEpsilon(
2811
2837
  direction,
2812
2838
  rotationAxis,
2813
- CesiumMath.EPSILON2
2839
+ CesiumMath.EPSILON2,
2814
2840
  );
2815
2841
  const southParallel = Cartesian3.equalsEpsilon(
2816
2842
  direction,
2817
2843
  negativeRotationAxis,
2818
- CesiumMath.EPSILON2
2844
+ CesiumMath.EPSILON2,
2819
2845
  );
2820
2846
  if (!northParallel && !southParallel) {
2821
2847
  dot = Cartesian3.dot(direction, rotationAxis);
@@ -2847,7 +2873,7 @@ function update3D(controller) {
2847
2873
  controller.rotateEventTypes,
2848
2874
  spin3D,
2849
2875
  controller.inertiaSpin,
2850
- "_lastInertiaSpinMovement"
2876
+ "_lastInertiaSpinMovement",
2851
2877
  );
2852
2878
  reactToInput(
2853
2879
  controller,
@@ -2855,7 +2881,7 @@ function update3D(controller) {
2855
2881
  controller.zoomEventTypes,
2856
2882
  zoom3D,
2857
2883
  controller.inertiaZoom,
2858
- "_lastInertiaZoomMovement"
2884
+ "_lastInertiaZoomMovement",
2859
2885
  );
2860
2886
  reactToInput(
2861
2887
  controller,
@@ -2863,13 +2889,13 @@ function update3D(controller) {
2863
2889
  controller.tiltEventTypes,
2864
2890
  tilt3D,
2865
2891
  controller.inertiaSpin,
2866
- "_lastInertiaTiltMovement"
2892
+ "_lastInertiaTiltMovement",
2867
2893
  );
2868
2894
  reactToInput(
2869
2895
  controller,
2870
2896
  controller.enableLook,
2871
2897
  controller.lookEventTypes,
2872
- look3D
2898
+ look3D,
2873
2899
  );
2874
2900
  }
2875
2901
 
@@ -2944,7 +2970,7 @@ function adjustHeightForTerrain(controller, cameraChanged) {
2944
2970
  Cartesian3.multiplyByScalar(
2945
2971
  camera.position,
2946
2972
  Math.max(mag, controller.minimumZoomDistance),
2947
- camera.position
2973
+ camera.position,
2948
2974
  );
2949
2975
  Cartesian3.normalize(camera.direction, camera.direction);
2950
2976
  Cartesian3.cross(camera.direction, camera.up, camera.right);
@@ -2993,17 +3019,17 @@ ScreenSpaceCameraController.prototype.update = function () {
2993
3019
  this._minimumCollisionTerrainHeight = VerticalExaggeration.getHeight(
2994
3020
  this.minimumCollisionTerrainHeight,
2995
3021
  verticalExaggeration,
2996
- verticalExaggerationRelativeHeight
3022
+ verticalExaggerationRelativeHeight,
2997
3023
  );
2998
3024
  this._minimumPickingTerrainHeight = VerticalExaggeration.getHeight(
2999
3025
  this.minimumPickingTerrainHeight,
3000
3026
  verticalExaggeration,
3001
- verticalExaggerationRelativeHeight
3027
+ verticalExaggerationRelativeHeight,
3002
3028
  );
3003
3029
  this._minimumTrackBallHeight = VerticalExaggeration.getHeight(
3004
3030
  this.minimumTrackBallHeight,
3005
3031
  verticalExaggeration,
3006
- verticalExaggerationRelativeHeight
3032
+ verticalExaggerationRelativeHeight,
3007
3033
  );
3008
3034
 
3009
3035
  this._cameraUnderground = scene.cameraUnderground && defined(this._globe);
@@ -3015,11 +3041,11 @@ ScreenSpaceCameraController.prototype.update = function () {
3015
3041
  this._adjustedHeightForTerrain = false;
3016
3042
  const previousPosition = Cartesian3.clone(
3017
3043
  camera.positionWC,
3018
- scratchPreviousPosition
3044
+ scratchPreviousPosition,
3019
3045
  );
3020
3046
  const previousDirection = Cartesian3.clone(
3021
3047
  camera.directionWC,
3022
- scratchPreviousDirection
3048
+ scratchPreviousDirection,
3023
3049
  );
3024
3050
 
3025
3051
  if (mode === SceneMode.SCENE2D) {