@cesium/engine 10.1.0 → 11.1.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 (845) hide show
  1. package/Build/Workers/{chunk-EB7PNZTK.js → chunk-26GA3JAM.js} +6 -5
  2. package/Build/Workers/{chunk-RZLZWKFN.js → chunk-27HUZ7SA.js} +4 -4
  3. package/Build/Workers/{chunk-A5CODJ4M.js → chunk-2ZGOQXYU.js} +6 -6
  4. package/Build/Workers/{chunk-TF776XCO.js → chunk-3Q2L65QU.js} +7 -7
  5. package/Build/Workers/{chunk-NVOABL76.js → chunk-472HQ3EH.js} +5 -5
  6. package/Build/Workers/{chunk-QX5XS4LC.js → chunk-5ODQSF26.js} +2 -2
  7. package/Build/Workers/{chunk-4YSNMHZ4.js → chunk-5OOFQLKF.js} +6 -6
  8. package/Build/Workers/{chunk-OXALEQPI.js → chunk-5PTXS2GO.js} +49 -23
  9. package/Build/Workers/{chunk-T77JILCU.js → chunk-6CHGCNMW.js} +2 -2
  10. package/Build/Workers/{chunk-FEVVHITK.js → chunk-76BYBWHP.js} +4 -4
  11. package/Build/Workers/{chunk-65MZOUNU.js → chunk-7BMOHCPM.js} +13 -13
  12. package/Build/Workers/{chunk-VE7BFUIX.js → chunk-7JO7GPJN.js} +1 -1
  13. package/Build/Workers/{chunk-5BLJ5ZM6.js → chunk-7KTQP4VB.js} +5 -5
  14. package/Build/Workers/{chunk-G5V4GPZE.js → chunk-7O373FFS.js} +8 -34
  15. package/Build/Workers/{chunk-S3PI2KFM.js → chunk-AD63PIY6.js} +2 -2
  16. package/Build/Workers/{chunk-6D66DPRV.js → chunk-BHQJ2NT7.js} +6 -6
  17. package/Build/Workers/{chunk-I2RC4XVN.js → chunk-C6YYBQXW.js} +4 -4
  18. package/Build/Workers/{chunk-X2ZQ7RJR.js → chunk-CKY7HOHV.js} +9 -9
  19. package/Build/Workers/{chunk-TO2PVHKI.js → chunk-DHYHSFFJ.js} +2 -2
  20. package/Build/Workers/{chunk-R6B7UCQB.js → chunk-DI5NGJUP.js} +2 -2
  21. package/Build/Workers/{chunk-X23FRWHJ.js → chunk-E27BLMDD.js} +7 -9
  22. package/Build/Workers/{chunk-N4QEHO3U.js → chunk-E63IIM5T.js} +1 -1
  23. package/Build/Workers/{chunk-BY3E4ONI.js → chunk-E6V6SQZW.js} +6 -6
  24. package/Build/Workers/{chunk-LSSWVB2X.js → chunk-EJZTDTUH.js} +4 -4
  25. package/Build/Workers/{chunk-XLTOBCDI.js → chunk-FDOV2LBJ.js} +7 -7
  26. package/Build/Workers/{chunk-ACRTCBN5.js → chunk-FIGIZHAQ.js} +11 -11
  27. package/Build/Workers/{chunk-4RMIRG6T.js → chunk-GESF4OXQ.js} +2 -2
  28. package/Build/Workers/{chunk-PNFHVBSF.js → chunk-GGZJN2TI.js} +16 -15
  29. package/Build/Workers/{chunk-KV4EQHK4.js → chunk-GNBFYG7F.js} +83 -79
  30. package/Build/Workers/{chunk-FOZWUH4T.js → chunk-GWCFU2SA.js} +7 -7
  31. package/Build/Workers/{chunk-Q55ECN3Y.js → chunk-I2ITFFPX.js} +1 -1
  32. package/Build/Workers/{chunk-XQI7XZHX.js → chunk-IBLIYJZR.js} +6 -6
  33. package/Build/Workers/{chunk-D2U4RI64.js → chunk-JW4FOI6M.js} +7 -7
  34. package/Build/Workers/{chunk-2J3JKXCP.js → chunk-K4GQUNB5.js} +9 -5
  35. package/Build/Workers/{chunk-POSRARY7.js → chunk-M3GMB5OP.js} +10 -10
  36. package/Build/Workers/{chunk-OOK53QUQ.js → chunk-MXIZJAPH.js} +1 -1
  37. package/Build/Workers/{chunk-OWGTMVDB.js → chunk-N5KJGGCM.js} +18 -20
  38. package/Build/Workers/{chunk-J7MQUQJY.js → chunk-NGPPMXRM.js} +12 -7
  39. package/Build/Workers/{chunk-OOMCT7OL.js → chunk-O3E4OAOE.js} +13 -13
  40. package/Build/Workers/{chunk-C3Z23UUJ.js → chunk-PGRPDNHG.js} +19 -23
  41. package/Build/Workers/{chunk-4VFBBNQ3.js → chunk-PRGYLLJT.js} +1 -1
  42. package/Build/Workers/{chunk-XZZNKIEV.js → chunk-S6MRMMQU.js} +6 -6
  43. package/Build/Workers/{chunk-76BYYG7N.js → chunk-SMDOP47J.js} +10 -10
  44. package/Build/Workers/{chunk-ZU334IDQ.js → chunk-TGONEMZO.js} +11 -11
  45. package/Build/Workers/{chunk-VRZ46QZ5.js → chunk-TKVT5GQM.js} +13 -13
  46. package/Build/Workers/{chunk-FDCLACT5.js → chunk-U72QNFOJ.js} +15 -25
  47. package/Build/Workers/{chunk-F3NDOSTZ.js → chunk-VJZB3WAV.js} +7 -7
  48. package/Build/Workers/{chunk-GPJR7MPQ.js → chunk-VU2MNO7L.js} +7 -7
  49. package/Build/Workers/{chunk-R4OIEIPE.js → chunk-XY4BATBS.js} +4 -4
  50. package/Build/Workers/{chunk-T6LPN7RI.js → chunk-YFXQECWV.js} +5 -5
  51. package/Build/Workers/{chunk-UCIPJSZX.js → chunk-YSGTGQQO.js} +14 -14
  52. package/Build/Workers/{chunk-BGE4QVG7.js → chunk-YZ733KKS.js} +12 -12
  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 +26 -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 +28 -5
  97. package/Build/Workers/decodeI3S.js +10 -10
  98. package/Build/Workers/transcodeKTX2.js +19 -18
  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 +44 -44
  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 +11 -8
  122. package/Source/Core/ColorGeometryInstanceAttribute.js +1 -1
  123. package/Source/Core/ComponentDatatype.js +4 -4
  124. package/Source/Core/CompressedTextureBuffer.js +13 -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 +45 -45
  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 +54 -55
  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 +17 -16
  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 +14 -14
  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 +11 -18
  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 +4 -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 +7 -21
  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 +51 -51
  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 +3 -3
  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/CallbackProperty.js +8 -2
  284. package/Source/DataSources/Cesium3DTilesetGraphics.js +1 -1
  285. package/Source/DataSources/Cesium3DTilesetVisualizer.js +6 -6
  286. package/Source/DataSources/CheckerboardMaterialProperty.js +9 -3
  287. package/Source/DataSources/ColorMaterialProperty.js +8 -2
  288. package/Source/DataSources/CompositeEntityCollection.js +14 -15
  289. package/Source/DataSources/CompositeMaterialProperty.js +10 -11
  290. package/Source/DataSources/CompositePositionProperty.js +11 -6
  291. package/Source/DataSources/CompositeProperty.js +7 -7
  292. package/Source/DataSources/ConstantPositionProperty.js +9 -3
  293. package/Source/DataSources/CorridorGeometryUpdater.js +61 -56
  294. package/Source/DataSources/CorridorGraphics.js +6 -6
  295. package/Source/DataSources/CylinderGeometryUpdater.js +42 -40
  296. package/Source/DataSources/CylinderGraphics.js +4 -4
  297. package/Source/DataSources/CzmlDataSource.js +365 -368
  298. package/Source/DataSources/DataSourceCollection.js +1 -1
  299. package/Source/DataSources/DataSourceDisplay.js +23 -23
  300. package/Source/DataSources/DynamicGeometryBatch.js +2 -2
  301. package/Source/DataSources/DynamicGeometryUpdater.js +14 -18
  302. package/Source/DataSources/EllipseGeometryUpdater.js +67 -63
  303. package/Source/DataSources/EllipseGraphics.js +7 -7
  304. package/Source/DataSources/EllipsoidGeometryUpdater.js +88 -86
  305. package/Source/DataSources/EllipsoidGraphics.js +5 -5
  306. package/Source/DataSources/Entity.js +14 -14
  307. package/Source/DataSources/EntityCluster.js +29 -27
  308. package/Source/DataSources/EntityCollection.js +7 -7
  309. package/Source/DataSources/EntityView.js +23 -23
  310. package/Source/DataSources/GeoJsonDataSource.js +25 -25
  311. package/Source/DataSources/GeometryUpdater.js +9 -10
  312. package/Source/DataSources/GeometryUpdaterSet.js +3 -3
  313. package/Source/DataSources/GeometryVisualizer.js +65 -71
  314. package/Source/DataSources/GpxDataSource.js +10 -10
  315. package/Source/DataSources/GridMaterialProperty.js +12 -6
  316. package/Source/DataSources/GroundGeometryUpdater.js +6 -6
  317. package/Source/DataSources/ImageMaterialProperty.js +10 -3
  318. package/Source/DataSources/KmlDataSource.js +212 -212
  319. package/Source/DataSources/LabelGraphics.js +14 -14
  320. package/Source/DataSources/LabelVisualizer.js +24 -24
  321. package/Source/DataSources/MaterialProperty.js +7 -1
  322. package/Source/DataSources/ModelGraphics.js +37 -17
  323. package/Source/DataSources/ModelVisualizer.js +41 -32
  324. package/Source/DataSources/NodeTransformationProperty.js +10 -4
  325. package/Source/DataSources/PathGraphics.js +2 -2
  326. package/Source/DataSources/PathVisualizer.js +99 -35
  327. package/Source/DataSources/PlaneGeometryUpdater.js +38 -37
  328. package/Source/DataSources/PlaneGraphics.js +2 -2
  329. package/Source/DataSources/PointGraphics.js +8 -8
  330. package/Source/DataSources/PointVisualizer.js +29 -29
  331. package/Source/DataSources/PolygonGeometryUpdater.js +68 -64
  332. package/Source/DataSources/PolygonGraphics.js +9 -9
  333. package/Source/DataSources/PolylineArrowMaterialProperty.js +8 -2
  334. package/Source/DataSources/PolylineDashMaterialProperty.js +11 -5
  335. package/Source/DataSources/PolylineGeometryUpdater.js +39 -44
  336. package/Source/DataSources/PolylineGlowMaterialProperty.js +10 -4
  337. package/Source/DataSources/PolylineGraphics.js +4 -4
  338. package/Source/DataSources/PolylineOutlineMaterialProperty.js +10 -4
  339. package/Source/DataSources/PolylineVisualizer.js +39 -43
  340. package/Source/DataSources/PolylineVolumeGeometryUpdater.js +70 -68
  341. package/Source/DataSources/PolylineVolumeGraphics.js +2 -2
  342. package/Source/DataSources/PositionProperty.js +5 -4
  343. package/Source/DataSources/PositionPropertyArray.js +10 -4
  344. package/Source/DataSources/Property.js +2 -2
  345. package/Source/DataSources/PropertyArray.js +6 -6
  346. package/Source/DataSources/PropertyBag.js +10 -9
  347. package/Source/DataSources/RectangleGeometryUpdater.js +68 -63
  348. package/Source/DataSources/RectangleGraphics.js +6 -6
  349. package/Source/DataSources/ReferenceProperty.js +13 -7
  350. package/Source/DataSources/Rotation.js +2 -2
  351. package/Source/DataSources/SampledPositionProperty.js +13 -7
  352. package/Source/DataSources/SampledProperty.js +22 -20
  353. package/Source/DataSources/ScaledPositionProperty.js +8 -2
  354. package/Source/DataSources/StaticGeometryColorBatch.js +41 -41
  355. package/Source/DataSources/StaticGeometryPerMaterialBatch.js +40 -40
  356. package/Source/DataSources/StaticGroundGeometryColorBatch.js +26 -27
  357. package/Source/DataSources/StaticGroundGeometryPerMaterialBatch.js +46 -44
  358. package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +44 -43
  359. package/Source/DataSources/StaticOutlineGeometryBatch.js +28 -29
  360. package/Source/DataSources/StripeMaterialProperty.js +9 -3
  361. package/Source/DataSources/TerrainOffsetProperty.js +20 -11
  362. package/Source/DataSources/TimeIntervalCollectionPositionProperty.js +35 -31
  363. package/Source/DataSources/TimeIntervalCollectionProperty.js +6 -6
  364. package/Source/DataSources/VelocityOrientationProperty.js +9 -4
  365. package/Source/DataSources/VelocityVectorProperty.js +7 -9
  366. package/Source/DataSources/WallGeometryUpdater.js +25 -25
  367. package/Source/DataSources/WallGraphics.js +4 -4
  368. package/Source/DataSources/createPropertyDescriptor.js +3 -3
  369. package/Source/DataSources/exportKml.js +90 -86
  370. package/Source/DataSources/getElement.js +1 -1
  371. package/Source/DataSources/heightReferenceOnEntityPropertyChanged.js +4 -4
  372. package/Source/Renderer/AutomaticUniforms.js +3 -18
  373. package/Source/Renderer/Buffer.js +18 -18
  374. package/Source/Renderer/ClearCommand.js +1 -1
  375. package/Source/Renderer/ComputeEngine.js +1 -1
  376. package/Source/Renderer/Context.js +55 -40
  377. package/Source/Renderer/CubeMap.js +332 -354
  378. package/Source/Renderer/CubeMapFace.js +43 -65
  379. package/Source/Renderer/DrawCommand.js +50 -5
  380. package/Source/Renderer/Framebuffer.js +48 -49
  381. package/Source/Renderer/FramebufferManager.js +40 -34
  382. package/Source/Renderer/MultisampleFramebuffer.js +35 -14
  383. package/Source/Renderer/PixelDatatype.js +23 -0
  384. package/Source/Renderer/RenderState.js +36 -36
  385. package/Source/Renderer/Renderbuffer.js +3 -3
  386. package/Source/Renderer/Sampler.js +9 -15
  387. package/Source/Renderer/ShaderBuilder.js +8 -8
  388. package/Source/Renderer/ShaderCache.js +11 -15
  389. package/Source/Renderer/ShaderFunction.js +1 -1
  390. package/Source/Renderer/ShaderProgram.js +22 -15
  391. package/Source/Renderer/ShaderSource.js +40 -40
  392. package/Source/Renderer/Texture.js +455 -380
  393. package/Source/Renderer/UniformState.js +68 -80
  394. package/Source/Renderer/VertexArray.js +20 -20
  395. package/Source/Renderer/VertexArrayFacade.js +15 -16
  396. package/Source/Renderer/createUniform.js +1 -1
  397. package/Source/Renderer/createUniformArray.js +4 -4
  398. package/Source/Renderer/demodernizeShader.js +7 -5
  399. package/Source/Renderer/loadCubeMap.js +3 -8
  400. package/Source/Scene/ArcGisMapServerImageryProvider.js +39 -45
  401. package/Source/Scene/ArcGisMapService.js +4 -7
  402. package/Source/Scene/AutoExposure.js +4 -5
  403. package/Source/Scene/Axis.js +6 -6
  404. package/Source/Scene/B3dmParser.js +9 -9
  405. package/Source/Scene/BatchTable.js +7 -7
  406. package/Source/Scene/BatchTableHierarchy.js +62 -59
  407. package/Source/Scene/BatchTexture.js +2 -2
  408. package/Source/Scene/Billboard.js +45 -43
  409. package/Source/Scene/BillboardCollection.js +81 -83
  410. package/Source/Scene/BingMapsImageryProvider.js +13 -13
  411. package/Source/Scene/BoundingVolumeSemantics.js +10 -10
  412. package/Source/Scene/BoxEmitter.js +1 -1
  413. package/Source/Scene/BufferLoader.js +1 -1
  414. package/Source/Scene/Camera.js +161 -164
  415. package/Source/Scene/CameraEventAggregator.js +67 -23
  416. package/Source/Scene/CameraFlightPath.js +25 -25
  417. package/Source/Scene/Cesium3DTile.js +89 -95
  418. package/Source/Scene/Cesium3DTileBatchTable.js +61 -61
  419. package/Source/Scene/Cesium3DTileContentFactory.js +7 -7
  420. package/Source/Scene/Cesium3DTileFeature.js +1 -1
  421. package/Source/Scene/Cesium3DTileFeatureTable.js +8 -8
  422. package/Source/Scene/Cesium3DTileOptimizations.js +1 -1
  423. package/Source/Scene/Cesium3DTilePointFeature.js +11 -11
  424. package/Source/Scene/Cesium3DTileStyle.js +26 -24
  425. package/Source/Scene/Cesium3DTilesVoxelProvider.js +14 -20
  426. package/Source/Scene/Cesium3DTileset.js +81 -83
  427. package/Source/Scene/Cesium3DTilesetBaseTraversal.js +8 -16
  428. package/Source/Scene/Cesium3DTilesetCache.js +2 -2
  429. package/Source/Scene/Cesium3DTilesetHeatmap.js +5 -5
  430. package/Source/Scene/Cesium3DTilesetMetadata.js +2 -2
  431. package/Source/Scene/Cesium3DTilesetMostDetailedTraversal.js +2 -2
  432. package/Source/Scene/Cesium3DTilesetSkipTraversal.js +8 -12
  433. package/Source/Scene/Cesium3DTilesetStatistics.js +1 -1
  434. package/Source/Scene/Cesium3DTilesetTraversal.js +8 -10
  435. package/Source/Scene/ClassificationPrimitive.js +70 -69
  436. package/Source/Scene/ClippingPlaneCollection.js +39 -41
  437. package/Source/Scene/ClippingPolygon.js +8 -8
  438. package/Source/Scene/ClippingPolygonCollection.js +62 -63
  439. package/Source/Scene/CloudCollection.js +3 -10
  440. package/Source/Scene/Composite3DTileContent.js +6 -6
  441. package/Source/Scene/ConditionsExpression.js +5 -5
  442. package/Source/Scene/ContentMetadata.js +4 -4
  443. package/Source/Scene/CreditDisplay.js +8 -8
  444. package/Source/Scene/CumulusCloud.js +4 -4
  445. package/Source/Scene/DebugAppearance.js +2 -2
  446. package/Source/Scene/DebugCameraPrimitive.js +2 -2
  447. package/Source/Scene/DebugInspector.js +3 -3
  448. package/Source/Scene/DebugModelMatrixPrimitive.js +4 -4
  449. package/Source/Scene/DepthPlane.js +7 -7
  450. package/Source/Scene/DerivedCommand.js +422 -238
  451. package/Source/Scene/DiscardMissingTileImagePolicy.js +1 -1
  452. package/Source/Scene/DracoLoader.js +3 -3
  453. package/Source/Scene/EllipsoidPrimitive.js +7 -7
  454. package/Source/Scene/EllipsoidSurfaceAppearance.js +3 -3
  455. package/Source/Scene/Empty3DTileContent.js +1 -1
  456. package/Source/Scene/Expression.js +91 -91
  457. package/Source/Scene/Fog.js +8 -41
  458. package/Source/Scene/FrameRateMonitor.js +22 -22
  459. package/Source/Scene/FrameState.js +31 -0
  460. package/Source/Scene/Geometry3DTileContent.js +20 -20
  461. package/Source/Scene/GetFeatureInfoFormat.js +15 -14
  462. package/Source/Scene/Globe.js +33 -28
  463. package/Source/Scene/GlobeDepth.js +95 -66
  464. package/Source/Scene/GlobeSurfaceShaderSet.js +41 -34
  465. package/Source/Scene/GlobeSurfaceTile.js +33 -33
  466. package/Source/Scene/GlobeSurfaceTileProvider.js +132 -127
  467. package/Source/Scene/GlobeTranslucency.js +4 -4
  468. package/Source/Scene/GlobeTranslucencyFramebuffer.js +9 -9
  469. package/Source/Scene/GlobeTranslucencyState.js +53 -55
  470. package/Source/Scene/GltfBufferViewLoader.js +2 -2
  471. package/Source/Scene/GltfIndexBufferLoader.js +5 -5
  472. package/Source/Scene/GltfJsonLoader.js +2 -2
  473. package/Source/Scene/GltfLoader.js +177 -100
  474. package/Source/Scene/GltfStructuralMetadataLoader.js +9 -8
  475. package/Source/Scene/GltfTextureLoader.js +5 -5
  476. package/Source/Scene/GltfVertexBufferLoader.js +12 -13
  477. package/Source/Scene/GoogleEarthEnterpriseImageryProvider.js +9 -9
  478. package/Source/Scene/GoogleEarthEnterpriseMapsProvider.js +9 -9
  479. package/Source/Scene/GridImageryProvider.js +2 -2
  480. package/Source/Scene/GroundPolylinePrimitive.js +38 -39
  481. package/Source/Scene/GroundPrimitive.js +47 -45
  482. package/Source/Scene/GroupMetadata.js +4 -4
  483. package/Source/Scene/I3SDataProvider.js +12 -12
  484. package/Source/Scene/I3SDecoder.js +7 -8
  485. package/Source/Scene/I3SField.js +8 -8
  486. package/Source/Scene/I3SGeometry.js +14 -14
  487. package/Source/Scene/I3SLayer.js +26 -20
  488. package/Source/Scene/I3SNode.js +17 -17
  489. package/Source/Scene/I3SSublayer.js +4 -4
  490. package/Source/Scene/I3SSymbology.js +8 -8
  491. package/Source/Scene/I3dmParser.js +9 -9
  492. package/Source/Scene/ImageBasedLighting.js +58 -56
  493. package/Source/Scene/Imagery.js +3 -3
  494. package/Source/Scene/ImageryLayer.js +64 -66
  495. package/Source/Scene/ImageryLayerCollection.js +13 -15
  496. package/Source/Scene/ImageryLayerFeatureInfo.js +19 -20
  497. package/Source/Scene/ImageryProvider.js +1 -1
  498. package/Source/Scene/Implicit3DTileContent.js +34 -37
  499. package/Source/Scene/ImplicitAvailabilityBitstream.js +2 -2
  500. package/Source/Scene/ImplicitMetadataView.js +2 -2
  501. package/Source/Scene/ImplicitSubtree.js +29 -30
  502. package/Source/Scene/ImplicitSubtreeCache.js +1 -1
  503. package/Source/Scene/ImplicitSubtreeMetadata.js +5 -5
  504. package/Source/Scene/ImplicitTileCoordinates.js +11 -11
  505. package/Source/Scene/ImplicitTileset.js +2 -2
  506. package/Source/Scene/InvertClassification.js +7 -7
  507. package/Source/Scene/IonImageryProvider.js +6 -6
  508. package/Source/Scene/JobScheduler.js +4 -4
  509. package/Source/Scene/Label.js +31 -31
  510. package/Source/Scene/LabelCollection.js +17 -15
  511. package/Source/Scene/MapboxImageryProvider.js +3 -3
  512. package/Source/Scene/MapboxStyleImageryProvider.js +4 -4
  513. package/Source/Scene/Material.js +50 -29
  514. package/Source/Scene/MaterialAppearance.js +4 -4
  515. package/Source/Scene/Megatexture.js +21 -24
  516. package/Source/Scene/MetadataClassProperty.js +11 -11
  517. package/Source/Scene/MetadataComponentType.js +1 -1
  518. package/Source/Scene/MetadataEntity.js +8 -8
  519. package/Source/Scene/MetadataEnum.js +1 -1
  520. package/Source/Scene/MetadataPicking.js +305 -0
  521. package/Source/Scene/MetadataSchemaLoader.js +1 -1
  522. package/Source/Scene/MetadataTable.js +2 -2
  523. package/Source/Scene/MetadataTableProperty.js +22 -22
  524. package/Source/Scene/Model/AlphaPipelineStage.js +2 -2
  525. package/Source/Scene/Model/AtmospherePipelineStage.js +3 -3
  526. package/Source/Scene/Model/B3dmLoader.js +8 -8
  527. package/Source/Scene/Model/BatchTexturePipelineStage.js +2 -2
  528. package/Source/Scene/Model/CPUStylingPipelineStage.js +4 -4
  529. package/Source/Scene/Model/ClassificationModelDrawCommand.js +8 -8
  530. package/Source/Scene/Model/ClassificationPipelineStage.js +5 -5
  531. package/Source/Scene/Model/CustomShader.js +9 -9
  532. package/Source/Scene/Model/CustomShaderPipelineStage.js +37 -38
  533. package/Source/Scene/Model/DequantizationPipelineStage.js +5 -5
  534. package/Source/Scene/Model/Extensions/Gpm/AnchorPointDirect.js +61 -0
  535. package/Source/Scene/Model/Extensions/Gpm/AnchorPointIndirect.js +77 -0
  536. package/Source/Scene/Model/Extensions/Gpm/CorrelationGroup.js +81 -0
  537. package/Source/Scene/Model/Extensions/Gpm/GltfGpmLoader.js +248 -0
  538. package/Source/Scene/Model/Extensions/Gpm/GltfGpmLocal.js +179 -0
  539. package/Source/Scene/Model/Extensions/Gpm/GltfMeshPrimitiveGpmLoader.js +548 -0
  540. package/Source/Scene/Model/Extensions/Gpm/MeshPrimitiveGpmLocal.js +28 -0
  541. package/Source/Scene/Model/Extensions/Gpm/PpeMetadata.js +79 -0
  542. package/Source/Scene/Model/Extensions/Gpm/PpeSource.js +75 -0
  543. package/Source/Scene/Model/Extensions/Gpm/PpeTexture.js +127 -0
  544. package/Source/Scene/Model/Extensions/Gpm/Spdcf.js +103 -0
  545. package/Source/Scene/Model/Extensions/Gpm/StorageType.js +30 -0
  546. package/Source/Scene/Model/FeatureIdPipelineStage.js +40 -40
  547. package/Source/Scene/Model/GeoJsonLoader.js +17 -17
  548. package/Source/Scene/Model/GeometryPipelineStage.js +23 -24
  549. package/Source/Scene/Model/I3dmLoader.js +36 -36
  550. package/Source/Scene/Model/ImageBasedLightingPipelineStage.js +22 -30
  551. package/Source/Scene/Model/InstancingPipelineStage.js +86 -86
  552. package/Source/Scene/Model/LightingPipelineStage.js +4 -4
  553. package/Source/Scene/Model/MaterialPipelineStage.js +78 -93
  554. package/Source/Scene/Model/MetadataPickingPipelineStage.js +96 -0
  555. package/Source/Scene/Model/MetadataPipelineStage.js +39 -47
  556. package/Source/Scene/Model/Model.js +134 -54
  557. package/Source/Scene/Model/Model3DTileContent.js +32 -13
  558. package/Source/Scene/Model/ModelAnimationChannel.js +2 -2
  559. package/Source/Scene/Model/ModelAnimationCollection.js +9 -9
  560. package/Source/Scene/Model/ModelArticulation.js +2 -2
  561. package/Source/Scene/Model/ModelArticulationStage.js +4 -4
  562. package/Source/Scene/Model/ModelClippingPlanesPipelineStage.js +11 -11
  563. package/Source/Scene/Model/ModelClippingPolygonsPipelineStage.js +6 -6
  564. package/Source/Scene/Model/ModelColorPipelineStage.js +12 -13
  565. package/Source/Scene/Model/ModelDrawCommand.js +5 -5
  566. package/Source/Scene/Model/{buildDrawCommand.js → ModelDrawCommands.js} +85 -28
  567. package/Source/Scene/Model/ModelFeatureTable.js +5 -5
  568. package/Source/Scene/Model/ModelMatrixUpdateStage.js +24 -12
  569. package/Source/Scene/Model/ModelRenderResources.js +1 -1
  570. package/Source/Scene/Model/ModelRuntimeNode.js +15 -15
  571. package/Source/Scene/Model/ModelRuntimePrimitive.js +8 -5
  572. package/Source/Scene/Model/ModelSceneGraph.js +42 -43
  573. package/Source/Scene/Model/ModelSilhouettePipelineStage.js +4 -4
  574. package/Source/Scene/Model/ModelSkin.js +4 -4
  575. package/Source/Scene/Model/ModelSplitterPipelineStage.js +8 -9
  576. package/Source/Scene/Model/ModelUtility.js +5 -5
  577. package/Source/Scene/Model/MorphTargetsPipelineStage.js +18 -18
  578. package/Source/Scene/Model/NodeRenderResources.js +1 -1
  579. package/Source/Scene/Model/NodeStatisticsPipelineStage.js +1 -1
  580. package/Source/Scene/Model/PickingPipelineStage.js +5 -5
  581. package/Source/Scene/Model/PntsLoader.js +7 -7
  582. package/Source/Scene/Model/PointCloudStylingPipelineStage.js +22 -23
  583. package/Source/Scene/Model/PrimitiveOutlineGenerator.js +6 -6
  584. package/Source/Scene/Model/PrimitiveOutlinePipelineStage.js +7 -7
  585. package/Source/Scene/Model/PrimitiveRenderResources.js +3 -3
  586. package/Source/Scene/Model/PrimitiveStatisticsPipelineStage.js +1 -1
  587. package/Source/Scene/Model/SceneMode2DPipelineStage.js +23 -23
  588. package/Source/Scene/Model/SelectedFeatureIdPipelineStage.js +10 -14
  589. package/Source/Scene/Model/SkinningPipelineStage.js +5 -5
  590. package/Source/Scene/Model/StyleCommandsNeeded.js +1 -1
  591. package/Source/Scene/Model/TextureManager.js +2 -2
  592. package/Source/Scene/Model/TextureUniform.js +3 -3
  593. package/Source/Scene/Model/TilesetPipelineStage.js +2 -2
  594. package/Source/Scene/Model/VerticalExaggerationPipelineStage.js +4 -4
  595. package/Source/Scene/Model/WireframePipelineStage.js +7 -7
  596. package/Source/Scene/Model/pickModel.js +26 -26
  597. package/Source/Scene/ModelComponents.js +13 -4
  598. package/Source/Scene/Moon.js +6 -5
  599. package/Source/Scene/Multiple3DTileContent.js +15 -14
  600. package/Source/Scene/OIT.js +48 -97
  601. package/Source/Scene/OpenStreetMapImageryProvider.js +8 -7
  602. package/Source/Scene/OrderedGroundPrimitiveCollection.js +2 -2
  603. package/Source/Scene/Particle.js +3 -3
  604. package/Source/Scene/ParticleEmitter.js +1 -1
  605. package/Source/Scene/ParticleSystem.js +32 -32
  606. package/Source/Scene/PerInstanceColorAppearance.js +1 -1
  607. package/Source/Scene/PickDepth.js +16 -4
  608. package/Source/Scene/PickDepthFramebuffer.js +1 -1
  609. package/Source/Scene/PickFramebuffer.js +24 -12
  610. package/Source/Scene/PickedMetadataInfo.js +39 -0
  611. package/Source/Scene/Picking.js +270 -120
  612. package/Source/Scene/PntsParser.js +28 -28
  613. package/Source/Scene/PointCloud.js +39 -38
  614. package/Source/Scene/PointCloudEyeDomeLighting.js +6 -6
  615. package/Source/Scene/PointCloudShading.js +3 -3
  616. package/Source/Scene/PointPrimitive.js +31 -28
  617. package/Source/Scene/PointPrimitiveCollection.js +34 -33
  618. package/Source/Scene/Polyline.js +9 -9
  619. package/Source/Scene/PolylineCollection.js +55 -57
  620. package/Source/Scene/PolylineColorAppearance.js +3 -3
  621. package/Source/Scene/PolylineMaterialAppearance.js +3 -3
  622. package/Source/Scene/PostProcessStage.js +95 -115
  623. package/Source/Scene/PostProcessStageCollection.js +73 -49
  624. package/Source/Scene/PostProcessStageComposite.js +2 -2
  625. package/Source/Scene/PostProcessStageLibrary.js +30 -4
  626. package/Source/Scene/PostProcessStageTextureCache.js +10 -10
  627. package/Source/Scene/Primitive.js +93 -93
  628. package/Source/Scene/PrimitiveCollection.js +1 -1
  629. package/Source/Scene/PrimitiveLoadPlan.js +1 -1
  630. package/Source/Scene/PrimitivePipeline.js +30 -30
  631. package/Source/Scene/PropertyTable.js +5 -5
  632. package/Source/Scene/PropertyTextureProperty.js +36 -7
  633. package/Source/Scene/QuadtreePrimitive.js +56 -58
  634. package/Source/Scene/QuadtreeTile.js +4 -4
  635. package/Source/Scene/QuadtreeTileProvider.js +1 -1
  636. package/Source/Scene/ResourceCache.js +7 -7
  637. package/Source/Scene/ResourceCacheKey.js +15 -15
  638. package/Source/Scene/Scene.js +897 -677
  639. package/Source/Scene/SceneFramebuffer.js +2 -2
  640. package/Source/Scene/SceneTransforms.js +30 -92
  641. package/Source/Scene/SceneTransitioner.js +47 -47
  642. package/Source/Scene/ScreenSpaceCameraController.js +171 -157
  643. package/Source/Scene/SensorVolumePortionToDisplay.js +1 -1
  644. package/Source/Scene/ShadowMap.js +71 -72
  645. package/Source/Scene/ShadowMapShader.js +9 -9
  646. package/Source/Scene/ShadowVolumeAppearance.js +39 -39
  647. package/Source/Scene/SingleTileImageryProvider.js +3 -3
  648. package/Source/Scene/SkyAtmosphere.js +8 -8
  649. package/Source/Scene/SkyBox.js +17 -24
  650. package/Source/Scene/SpatialNode.js +13 -13
  651. package/Source/Scene/SpecularEnvironmentCubeMap.js +240 -0
  652. package/Source/Scene/SphereEmitter.js +1 -1
  653. package/Source/Scene/StructuralMetadata.js +1 -1
  654. package/Source/Scene/StyleExpression.js +1 -1
  655. package/Source/Scene/Sun.js +11 -7
  656. package/Source/Scene/SunPostProcess.js +6 -6
  657. package/Source/Scene/TerrainFillMesh.js +157 -156
  658. package/Source/Scene/TextureAtlas.js +11 -11
  659. package/Source/Scene/TileBoundingRegion.js +31 -31
  660. package/Source/Scene/TileBoundingS2Cell.js +37 -40
  661. package/Source/Scene/TileBoundingSphere.js +2 -2
  662. package/Source/Scene/TileCoordinatesImageryProvider.js +3 -3
  663. package/Source/Scene/TileImagery.js +7 -11
  664. package/Source/Scene/TileMapServiceImageryProvider.js +26 -25
  665. package/Source/Scene/TileMetadata.js +4 -4
  666. package/Source/Scene/TileOrientedBoundingBox.js +6 -6
  667. package/Source/Scene/Tileset3DTileContent.js +1 -1
  668. package/Source/Scene/TilesetMetadata.js +4 -4
  669. package/Source/Scene/TimeDynamicImagery.js +3 -3
  670. package/Source/Scene/TimeDynamicPointCloud.js +9 -9
  671. package/Source/Scene/Tonemapper.js +35 -23
  672. package/Source/Scene/TranslucentTileClassification.js +48 -58
  673. package/Source/Scene/TweenCollection.js +9 -9
  674. package/Source/Scene/UrlTemplateImageryProvider.js +23 -23
  675. package/Source/Scene/Vector3DTileClampedPolylines.js +21 -21
  676. package/Source/Scene/Vector3DTileContent.js +38 -39
  677. package/Source/Scene/Vector3DTileGeometry.js +11 -8
  678. package/Source/Scene/Vector3DTilePoints.js +18 -22
  679. package/Source/Scene/Vector3DTilePolygons.js +6 -6
  680. package/Source/Scene/Vector3DTilePolylines.js +8 -8
  681. package/Source/Scene/Vector3DTilePrimitive.js +30 -31
  682. package/Source/Scene/View.js +111 -80
  683. package/Source/Scene/VoxelBoxShape.js +34 -34
  684. package/Source/Scene/VoxelCell.js +7 -7
  685. package/Source/Scene/VoxelContent.js +1 -1
  686. package/Source/Scene/VoxelCylinderShape.js +48 -48
  687. package/Source/Scene/VoxelEllipsoidShape.js +83 -97
  688. package/Source/Scene/VoxelPrimitive.js +80 -109
  689. package/Source/Scene/VoxelRenderResources.js +13 -16
  690. package/Source/Scene/VoxelTraversal.js +41 -41
  691. package/Source/Scene/WebMapServiceImageryProvider.js +12 -12
  692. package/Source/Scene/WebMapTileServiceImageryProvider.js +8 -8
  693. package/Source/Scene/buildVoxelDrawCommands.js +10 -14
  694. package/Source/Scene/computeFlyToLocationForRectangle.js +7 -5
  695. package/Source/Scene/createBillboardPointCallback.js +2 -2
  696. package/Source/Scene/createElevationBandMaterial.js +8 -8
  697. package/Source/Scene/createGooglePhotorealistic3DTileset.js +1 -1
  698. package/Source/Scene/createOsmBuildingsAsync.js +1 -1
  699. package/Source/Scene/createTangentSpaceDebugPrimitive.js +7 -7
  700. package/Source/Scene/findContentMetadata.js +2 -2
  701. package/Source/Scene/findTileMetadata.js +2 -2
  702. package/Source/Scene/getBinaryAccessor.js +1 -1
  703. package/Source/Scene/getClipAndStyleCode.js +1 -1
  704. package/Source/Scene/getClippingFunction.js +1 -1
  705. package/Source/Scene/getMetadataClassProperty.js +43 -0
  706. package/Source/Scene/parseBatchTable.js +21 -24
  707. package/Source/Scene/parseFeatureMetadataLegacy.js +3 -3
  708. package/Source/Scene/parseStructuralMetadata.js +3 -3
  709. package/Source/Scene/processVoxelProperties.js +28 -33
  710. package/Source/Shaders/Builtin/CzmBuiltins.js +2 -2
  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/pbrLighting.glsl +2 -2
  714. package/Source/Shaders/Builtin/Functions/pbrLighting.js +2 -2
  715. package/Source/Shaders/Builtin/Functions/pbrNeutralTonemapping.glsl +23 -0
  716. package/Source/Shaders/Builtin/Functions/pbrNeutralTonemapping.js +25 -0
  717. package/Source/Shaders/Builtin/Functions/textureCube.glsl +21 -2
  718. package/Source/Shaders/Builtin/Functions/textureCube.js +21 -2
  719. package/Source/Shaders/Builtin/Functions/unpackDepth.glsl +3 -3
  720. package/Source/Shaders/Builtin/Functions/unpackDepth.js +3 -3
  721. package/Source/Shaders/Builtin/Functions/windowToEyeCoordinates.glsl +1 -1
  722. package/Source/Shaders/Builtin/Functions/windowToEyeCoordinates.js +1 -1
  723. package/Source/Shaders/Builtin/Functions/writeLogDepth.glsl +2 -2
  724. package/Source/Shaders/Builtin/Functions/writeLogDepth.js +2 -2
  725. package/Source/Shaders/Builtin/Structs/materialInput.glsl +2 -0
  726. package/Source/Shaders/Builtin/Structs/materialInput.js +2 -0
  727. package/Source/Shaders/DepthPlaneVS.glsl +1 -1
  728. package/Source/Shaders/DepthPlaneVS.js +1 -1
  729. package/Source/Shaders/GlobeFS.glsl +10 -4
  730. package/Source/Shaders/GlobeFS.js +10 -4
  731. package/Source/Shaders/Materials/WaterMaskMaterial.glsl +15 -0
  732. package/Source/Shaders/Materials/WaterMaskMaterial.js +17 -0
  733. package/Source/Shaders/Model/AtmosphereStageFS.glsl +1 -1
  734. package/Source/Shaders/Model/AtmosphereStageFS.js +1 -1
  735. package/Source/Shaders/Model/ImageBasedLightingStageFS.glsl +40 -29
  736. package/Source/Shaders/Model/ImageBasedLightingStageFS.js +40 -29
  737. package/Source/Shaders/Model/LightingStageFS.glsl +2 -2
  738. package/Source/Shaders/Model/LightingStageFS.js +2 -2
  739. package/Source/Shaders/Model/ModelFS.glsl +26 -0
  740. package/Source/Shaders/Model/ModelFS.js +26 -0
  741. package/Source/Shaders/PostProcessStages/AcesTonemappingStage.glsl +4 -0
  742. package/Source/Shaders/PostProcessStages/AcesTonemappingStage.js +4 -0
  743. package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.glsl +59 -59
  744. package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.js +60 -60
  745. package/Source/Shaders/PostProcessStages/FilmicTonemapping.glsl +4 -0
  746. package/Source/Shaders/PostProcessStages/FilmicTonemapping.js +4 -0
  747. package/Source/Shaders/PostProcessStages/ModifiedReinhardTonemapping.glsl +4 -0
  748. package/Source/Shaders/PostProcessStages/ModifiedReinhardTonemapping.js +4 -0
  749. package/Source/Shaders/PostProcessStages/PbrNeutralTonemapping.glsl +25 -0
  750. package/Source/Shaders/PostProcessStages/PbrNeutralTonemapping.js +27 -0
  751. package/Source/Shaders/PostProcessStages/ReinhardTonemapping.glsl +4 -0
  752. package/Source/Shaders/PostProcessStages/ReinhardTonemapping.js +4 -0
  753. package/Source/Shaders/SkyAtmosphereFS.glsl +1 -1
  754. package/Source/Shaders/SkyAtmosphereFS.js +1 -1
  755. package/Source/Widget/CesiumWidget.js +10 -9
  756. package/Source/Workers/combineGeometry.js +3 -4
  757. package/Source/Workers/createCircleGeometry.js +2 -2
  758. package/Source/Workers/createCircleOutlineGeometry.js +2 -2
  759. package/Source/Workers/createCoplanarPolygonOutlineGeometry.js +1 -1
  760. package/Source/Workers/createCorridorOutlineGeometry.js +2 -2
  761. package/Source/Workers/createEllipsoidOutlineGeometry.js +1 -1
  762. package/Source/Workers/createGeometry.js +4 -5
  763. package/Source/Workers/createGroundPolylineGeometry.js +1 -1
  764. package/Source/Workers/createPolylineVolumeGeometry.js +2 -2
  765. package/Source/Workers/createPolylineVolumeOutlineGeometry.js +4 -4
  766. package/Source/Workers/createRectangleOutlineGeometry.js +1 -1
  767. package/Source/Workers/createSimplePolylineGeometry.js +2 -2
  768. package/Source/Workers/createTaskProcessorWorker.js +1 -1
  769. package/Source/Workers/createVectorTileClampedPolylines.js +30 -30
  770. package/Source/Workers/createVectorTileGeometries.js +18 -18
  771. package/Source/Workers/createVectorTilePoints.js +3 -3
  772. package/Source/Workers/createVectorTilePolygons.js +11 -11
  773. package/Source/Workers/createVectorTilePolylines.js +7 -7
  774. package/Source/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +29 -30
  775. package/Source/Workers/createVerticesFromQuantizedTerrainMesh.js +60 -60
  776. package/Source/Workers/decodeDraco.js +23 -23
  777. package/Source/Workers/decodeGoogleEarthEnterprisePacket.js +3 -3
  778. package/Source/Workers/decodeI3S.js +53 -53
  779. package/Source/Workers/transcodeKTX2.js +9 -9
  780. package/Source/Workers/transferTypedArrayTest.js +1 -1
  781. package/Source/Workers/upsampleQuantizedTerrainMesh.js +37 -36
  782. package/index.d.ts +620 -136
  783. package/index.js +221 -205
  784. package/package.json +3 -3
  785. package/Build/Workers/chunk-2GEAGYUY.js +0 -1477
  786. package/Build/Workers/chunk-3WUV74WM.js +0 -1800
  787. package/Build/Workers/chunk-4MSUJ4I7.js +0 -456
  788. package/Build/Workers/chunk-5KWHSZYL.js +0 -834
  789. package/Build/Workers/chunk-5O6JWQ4E.js +0 -398
  790. package/Build/Workers/chunk-6OFDHMHR.js +0 -1258
  791. package/Build/Workers/chunk-AA4GZKOT.js +0 -75
  792. package/Build/Workers/chunk-B75IEX2S.js +0 -390
  793. package/Build/Workers/chunk-BAVI3ZS2.js +0 -39
  794. package/Build/Workers/chunk-BBDZYSZB.js +0 -287
  795. package/Build/Workers/chunk-C45MU4GZ.js +0 -220
  796. package/Build/Workers/chunk-CF7P7K7E.js +0 -684
  797. package/Build/Workers/chunk-D4K27X2M.js +0 -305
  798. package/Build/Workers/chunk-DKVHRNFY.js +0 -100
  799. package/Build/Workers/chunk-ELI4BUOT.js +0 -963
  800. package/Build/Workers/chunk-FQPSOOPH.js +0 -258
  801. package/Build/Workers/chunk-GNHZH7HP.js +0 -37
  802. package/Build/Workers/chunk-GWT64LKY.js +0 -171
  803. package/Build/Workers/chunk-HGEEOMSC.js +0 -157
  804. package/Build/Workers/chunk-IUROUBPA.js +0 -300
  805. package/Build/Workers/chunk-JNLWLSTP.js +0 -476
  806. package/Build/Workers/chunk-JYQNWIQQ.js +0 -44
  807. package/Build/Workers/chunk-KUN2ZA5X.js +0 -138
  808. package/Build/Workers/chunk-LXQ5QAEJ.js +0 -196
  809. package/Build/Workers/chunk-MBZH7YZ7.js +0 -945
  810. package/Build/Workers/chunk-MKXWJTFQ.js +0 -781
  811. package/Build/Workers/chunk-MMV6TO3P.js +0 -101
  812. package/Build/Workers/chunk-MSKXMXJI.js +0 -500
  813. package/Build/Workers/chunk-OAPA2RTG.js +0 -239
  814. package/Build/Workers/chunk-OE4MCOC7.js +0 -421
  815. package/Build/Workers/chunk-OJF4RTJG.js +0 -634
  816. package/Build/Workers/chunk-OXSI7N4C.js +0 -768
  817. package/Build/Workers/chunk-PYHLO636.js +0 -2857
  818. package/Build/Workers/chunk-QD4KM3GO.js +0 -138
  819. package/Build/Workers/chunk-QMLTCCYG.js +0 -55
  820. package/Build/Workers/chunk-QYQIVZBU.js +0 -117
  821. package/Build/Workers/chunk-R3TKLC6E.js +0 -1075
  822. package/Build/Workers/chunk-R4ZEWO4I.js +0 -122
  823. package/Build/Workers/chunk-RCK55EDX.js +0 -691
  824. package/Build/Workers/chunk-RHBWXX7C.js +0 -629
  825. package/Build/Workers/chunk-SAPFXU5X.js +0 -102
  826. package/Build/Workers/chunk-TBBFDFCS.js +0 -368
  827. package/Build/Workers/chunk-TGY6H6N6.js +0 -163
  828. package/Build/Workers/chunk-UOEUCKKU.js +0 -59
  829. package/Build/Workers/chunk-VFBNELXB.js +0 -353
  830. package/Build/Workers/chunk-VYWUFRRR.js +0 -1052
  831. package/Build/Workers/chunk-WVSELU6O.js +0 -2716
  832. package/Build/Workers/chunk-X43SJLQL.js +0 -10364
  833. package/Build/Workers/chunk-XUOJCLOH.js +0 -511
  834. package/Build/Workers/chunk-YLYBLJ3Y.js +0 -73
  835. package/Build/Workers/chunk-ZEE2EIFD.js +0 -430
  836. package/Build/Workers/chunk-ZIKGV7EL.js +0 -58
  837. package/Source/Scene/OctahedralProjectedCubeMap.js +0 -444
  838. package/Source/Shaders/Builtin/Functions/sampleOctahedralProjection.glsl +0 -78
  839. package/Source/Shaders/Builtin/Functions/sampleOctahedralProjection.js +0 -80
  840. package/Source/Shaders/OctahedralProjectionAtlasFS.glsl +0 -89
  841. package/Source/Shaders/OctahedralProjectionAtlasFS.js +0 -91
  842. package/Source/Shaders/OctahedralProjectionFS.glsl +0 -14
  843. package/Source/Shaders/OctahedralProjectionFS.js +0 -16
  844. package/Source/Shaders/OctahedralProjectionVS.glsl +0 -10
  845. package/Source/Shaders/OctahedralProjectionVS.js +0 -12
@@ -105,6 +105,9 @@ import pickModel from "./pickModel.js";
105
105
  * <li>
106
106
  * {@link https://github.com/KhronosGroup/glTF/blob/main/extensions/1.0/Vendor/WEB3D_quantized_attributes/README.md|WEB3D_quantized_attributes}
107
107
  * </li>
108
+ * <li>
109
+ * {@link https://nsgreg.nga.mil/csmwg.jsp|NGA_gpm_local (experimental)}
110
+ * </li>
108
111
  * </ul>
109
112
  * </p>
110
113
  * <p>
@@ -123,6 +126,7 @@ import pickModel from "./pickModel.js";
123
126
  * @privateParam {boolean} [options.show=true] Whether or not to render the model.
124
127
  * @privateParam {Matrix4} [options.modelMatrix=Matrix4.IDENTITY] The 4x4 transformation matrix that transforms the model from model to world coordinates.
125
128
  * @privateParam {number} [options.scale=1.0] A uniform scale applied to this model.
129
+ * @privateParam {boolean} [options.enableVerticalExaggeration=true] If <code>true</code>, the model is exaggerated along the ellipsoid normal when {@link Scene.verticalExaggeration} is set to a value other than <code>1.0</code>.
126
130
  * @privateParam {number} [options.minimumPixelSize=0.0] The approximate minimum pixel size of the model regardless of zoom.
127
131
  * @privateParam {number} [options.maximumScale] The maximum scale size of a model. An upper limit for minimumPixelSize.
128
132
  * @privateParam {object} [options.id] A user-defined object to return when the model is picked with {@link Scene#pick}.
@@ -161,7 +165,7 @@ import pickModel from "./pickModel.js";
161
165
  * @privateParam {string|number} [options.instanceFeatureIdLabel="instanceFeatureId_0"] Label of the instance feature ID set used for picking and styling. If instanceFeatureIdLabel is set to an integer N, it is converted to the string "instanceFeatureId_N" automatically. If both per-primitive and per-instance feature IDs are present, the instance feature IDs take priority.
162
166
  * @privateParam {object} [options.pointCloudShading] Options for constructing a {@link PointCloudShading} object to control point attenuation based on geometric error and lighting.
163
167
  * @privateParam {ClassificationType} [options.classificationType] Determines whether terrain, 3D Tiles or both will be classified by this model. This cannot be set after the model has loaded.
164
-
168
+ *
165
169
  *
166
170
  * @see Model.fromGltfAsync
167
171
  *
@@ -209,7 +213,7 @@ function Model(options) {
209
213
  * m.modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(origin);
210
214
  */
211
215
  this.modelMatrix = Matrix4.clone(
212
- defaultValue(options.modelMatrix, Matrix4.IDENTITY)
216
+ defaultValue(options.modelMatrix, Matrix4.IDENTITY),
213
217
  );
214
218
  this._modelMatrix = Matrix4.clone(this.modelMatrix);
215
219
  this._scale = defaultValue(options.scale, 1.0);
@@ -275,7 +279,7 @@ function Model(options) {
275
279
  this._color = Color.clone(options.color);
276
280
  this._colorBlendMode = defaultValue(
277
281
  options.colorBlendMode,
278
- ColorBlendMode.HIGHLIGHT
282
+ ColorBlendMode.HIGHLIGHT,
279
283
  );
280
284
  this._colorBlendAmount = defaultValue(options.colorBlendAmount, 0.5);
281
285
 
@@ -306,7 +310,7 @@ function Model(options) {
306
310
 
307
311
  let instanceFeatureIdLabel = defaultValue(
308
312
  options.instanceFeatureIdLabel,
309
- "instanceFeatureId_0"
313
+ "instanceFeatureId_0",
310
314
  );
311
315
  if (typeof instanceFeatureIdLabel === "number") {
312
316
  instanceFeatureIdLabel = `instanceFeatureId_${instanceFeatureIdLabel}`;
@@ -335,22 +339,25 @@ function Model(options) {
335
339
 
336
340
  this._heightReference = defaultValue(
337
341
  options.heightReference,
338
- HeightReference.NONE
342
+ HeightReference.NONE,
339
343
  );
340
344
  this._heightDirty = this._heightReference !== HeightReference.NONE;
341
345
  this._removeUpdateHeightCallback = undefined;
342
346
 
343
- this._verticalExaggerationOn = false;
347
+ this._enableVerticalExaggeration = defaultValue(
348
+ options.enableVerticalExaggeration,
349
+ true,
350
+ );
351
+ this._hasVerticalExaggeration = false;
344
352
 
345
353
  this._clampedModelMatrix = undefined; // For use with height reference
346
354
 
347
355
  const scene = options.scene;
348
356
  if (defined(scene) && defined(scene.terrainProviderChanged)) {
349
- this._terrainProviderChangedCallback = scene.terrainProviderChanged.addEventListener(
350
- () => {
357
+ this._terrainProviderChangedCallback =
358
+ scene.terrainProviderChanged.addEventListener(() => {
351
359
  this._heightDirty = true;
352
- }
353
- );
360
+ });
354
361
  }
355
362
  this._scene = scene;
356
363
 
@@ -379,7 +386,7 @@ function Model(options) {
379
386
  ClippingPolygonCollection.setOwner(
380
387
  clippingPolygons,
381
388
  this,
382
- "_clippingPolygons"
389
+ "_clippingPolygons",
383
390
  );
384
391
  } else {
385
392
  this._clippingPolygons = clippingPolygons;
@@ -402,12 +409,12 @@ function Model(options) {
402
409
  this._debugShowBoundingVolumeDirty = false;
403
410
  this._debugShowBoundingVolume = defaultValue(
404
411
  options.debugShowBoundingVolume,
405
- false
412
+ false,
406
413
  );
407
414
 
408
415
  this._enableDebugWireframe = defaultValue(
409
416
  options.enableDebugWireframe,
410
- false
417
+ false,
411
418
  );
412
419
  this._enableShowOutline = defaultValue(options.enableShowOutline, true);
413
420
  this._debugWireframe = defaultValue(options.debugWireframe, false);
@@ -420,7 +427,7 @@ function Model(options) {
420
427
  ) {
421
428
  oneTimeWarning(
422
429
  "model-debug-wireframe-ignored",
423
- "enableDebugWireframe must be set to true in Model.fromGltf, otherwise debugWireframe will be ignored."
430
+ "enableDebugWireframe must be set to true in Model.fromGltf, otherwise debugWireframe will be ignored.",
424
431
  );
425
432
  }
426
433
 
@@ -444,7 +451,7 @@ function Model(options) {
444
451
 
445
452
  this._splitDirection = defaultValue(
446
453
  options.splitDirection,
447
- SplitDirection.NONE
454
+ SplitDirection.NONE,
448
455
  );
449
456
 
450
457
  this._enableShowOutline = defaultValue(options.enableShowOutline, true);
@@ -539,7 +546,7 @@ function selectFeatureTableId(components, model) {
539
546
  if (defined(node.instances)) {
540
547
  featureIdAttribute = ModelUtility.getFeatureIdsByLabel(
541
548
  node.instances.featureIds,
542
- instanceFeatureIdLabel
549
+ instanceFeatureIdLabel,
543
550
  );
544
551
  if (
545
552
  defined(featureIdAttribute) &&
@@ -558,7 +565,7 @@ function selectFeatureTableId(components, model) {
558
565
  const primitive = node.primitives[j];
559
566
  const featureIds = ModelUtility.getFeatureIdsByLabel(
560
567
  primitive.featureIds,
561
- featureIdLabel
568
+ featureIdLabel,
562
569
  );
563
570
 
564
571
  if (defined(featureIds)) {
@@ -887,7 +894,7 @@ Object.defineProperties(Model.prototype, {
887
894
  //>>includeEnd('debug');
888
895
  this._distanceDisplayCondition = DistanceDisplayCondition.clone(
889
896
  value,
890
- this._distanceDisplayCondition
897
+ this._distanceDisplayCondition,
891
898
  );
892
899
  },
893
900
  },
@@ -1127,7 +1134,7 @@ Object.defineProperties(Model.prototype, {
1127
1134
  //>>includeStart('debug', pragmas.debug);
1128
1135
  if (!this._ready) {
1129
1136
  throw new DeveloperError(
1130
- "The model is not loaded. Use Model.readyEvent or wait for Model.ready to be true."
1137
+ "The model is not loaded. Use Model.readyEvent or wait for Model.ready to be true.",
1131
1138
  );
1132
1139
  }
1133
1140
  //>>includeEnd('debug');
@@ -1195,7 +1202,7 @@ Object.defineProperties(Model.prototype, {
1195
1202
  ) {
1196
1203
  oneTimeWarning(
1197
1204
  "model-debug-wireframe-ignored",
1198
- "enableDebugWireframe must be set to true in Model.fromGltfAsync, otherwise debugWireframe will be ignored."
1205
+ "enableDebugWireframe must be set to true in Model.fromGltfAsync, otherwise debugWireframe will be ignored.",
1199
1206
  );
1200
1207
  }
1201
1208
  },
@@ -1339,6 +1346,45 @@ Object.defineProperties(Model.prototype, {
1339
1346
  },
1340
1347
  },
1341
1348
 
1349
+ /**
1350
+ * If <code>true</code>, the model is exaggerated along the ellipsoid normal when {@link Scene.verticalExaggeration} is set to a value other than <code>1.0</code>.
1351
+ *
1352
+ * @memberof Model.prototype
1353
+ * @type {boolean}
1354
+ * @default true
1355
+ *
1356
+ * @example
1357
+ * // Exaggerate terrain by a factor of 2, but prevent model exaggeration
1358
+ * scene.verticalExaggeration = 2.0;
1359
+ * model.enableVerticalExaggeration = false;
1360
+ */
1361
+ enableVerticalExaggeration: {
1362
+ get: function () {
1363
+ return this._enableVerticalExaggeration;
1364
+ },
1365
+ set: function (value) {
1366
+ if (value !== this._enableVerticalExaggeration) {
1367
+ this.resetDrawCommands();
1368
+ }
1369
+ this._enableVerticalExaggeration = value;
1370
+ },
1371
+ },
1372
+
1373
+ /**
1374
+ * If <code>true</code>, the model is vertically exaggerated along the ellipsoid normal.
1375
+ *
1376
+ * @memberof Model.prototype
1377
+ * @type {boolean}
1378
+ * @default true
1379
+ * @readonly
1380
+ * @private
1381
+ */
1382
+ hasVerticalExaggeration: {
1383
+ get: function () {
1384
+ return this._hasVerticalExaggeration;
1385
+ },
1386
+ },
1387
+
1342
1388
  /**
1343
1389
  * The light color when shading the model. When <code>undefined</code> the scene's light color is used instead.
1344
1390
  * <p>
@@ -1671,7 +1717,7 @@ Model.prototype.getNode = function (name) {
1671
1717
  //>>includeStart('debug', pragmas.debug);
1672
1718
  if (!this._ready) {
1673
1719
  throw new DeveloperError(
1674
- "The model is not loaded. Use Model.readyEvent or wait for Model.ready to be true."
1720
+ "The model is not loaded. Use Model.readyEvent or wait for Model.ready to be true.",
1675
1721
  );
1676
1722
  }
1677
1723
  Check.typeOf.string("name", name);
@@ -1701,7 +1747,7 @@ Model.prototype.setArticulationStage = function (articulationStageKey, value) {
1701
1747
  Check.typeOf.number("value", value);
1702
1748
  if (!this._ready) {
1703
1749
  throw new DeveloperError(
1704
- "The model is not loaded. Use Model.readyEvent or wait for Model.ready to be true."
1750
+ "The model is not loaded. Use Model.readyEvent or wait for Model.ready to be true.",
1705
1751
  );
1706
1752
  }
1707
1753
  //>>includeEnd('debug');
@@ -1720,7 +1766,7 @@ Model.prototype.applyArticulations = function () {
1720
1766
  //>>includeStart('debug', pragmas.debug);
1721
1767
  if (!this._ready) {
1722
1768
  throw new DeveloperError(
1723
- "The model is not loaded. Use Model.readyEvent or wait for Model.ready to be true."
1769
+ "The model is not loaded. Use Model.readyEvent or wait for Model.ready to be true.",
1724
1770
  );
1725
1771
  }
1726
1772
  //>>includeEnd('debug');
@@ -1728,6 +1774,33 @@ Model.prototype.applyArticulations = function () {
1728
1774
  this._sceneGraph.applyArticulations();
1729
1775
  };
1730
1776
 
1777
+ /**
1778
+ * Returns the object that was created for the given extension.
1779
+ *
1780
+ * The given name may be the name of a glTF extension, like `"EXT_example_extension"`.
1781
+ * If the specified extension was present in the root of the underlying glTF asset,
1782
+ * and a loder for the specified extension has processed the extension data, then
1783
+ * this will return the model representation of the extension.
1784
+ *
1785
+ * @param {string} extensionName The name of the extension
1786
+ * @returns {object|undefined} The object, or `undefined`
1787
+ * @exception {DeveloperError} The model is not loaded. Use Model.readyEvent or wait for Model.ready to be true.
1788
+ *
1789
+ * @experimental This feature is not final and is subject to change without Cesium's standard deprecation policy.
1790
+ */
1791
+ Model.prototype.getExtension = function (extensionName) {
1792
+ //>>includeStart('debug', pragmas.debug);
1793
+ Check.typeOf.string("extensionName", extensionName);
1794
+ if (!this._ready) {
1795
+ throw new DeveloperError(
1796
+ "The model is not loaded. Use Model.readyEvent or wait for Model.ready to be true.",
1797
+ );
1798
+ }
1799
+ //>>includeEnd('debug');
1800
+ const components = this._loader.components;
1801
+ return components.extensions[extensionName];
1802
+ };
1803
+
1731
1804
  /**
1732
1805
  * Marks the model's {@link Model#style} as dirty, which forces all features
1733
1806
  * to re-evaluate the style in the next frame the model is visible.
@@ -1776,7 +1849,7 @@ Model.prototype.update = function (frameState) {
1776
1849
  const runtimeError = ModelUtility.getError(
1777
1850
  "model",
1778
1851
  this._resource,
1779
- error
1852
+ error,
1780
1853
  );
1781
1854
  handleError(this, runtimeError);
1782
1855
  }
@@ -1801,7 +1874,7 @@ Model.prototype.update = function (frameState) {
1801
1874
  const error = ModelUtility.getError(
1802
1875
  "model",
1803
1876
  this._resource,
1804
- new RuntimeError("Failed to load model.")
1877
+ new RuntimeError("Failed to load model."),
1805
1878
  );
1806
1879
  handleError(error);
1807
1880
  this._rejectLoad = this._rejectLoad && this._rejectLoad(error);
@@ -1969,7 +2042,7 @@ function updateStyleCommandsNeeded(model) {
1969
2042
  const featureTable = model.featureTables[model.featureTableId];
1970
2043
  model._styleCommandsNeeded = StyleCommandsNeeded.getStyleCommandsNeeded(
1971
2044
  featureTable.featuresLength,
1972
- featureTable.batchTexture.translucentFeaturesLength
2045
+ featureTable.batchTexture.translucentFeaturesLength,
1973
2046
  );
1974
2047
  }
1975
2048
 
@@ -2062,10 +2135,15 @@ function updateFog(model, frameState) {
2062
2135
  }
2063
2136
 
2064
2137
  function updateVerticalExaggeration(model, frameState) {
2065
- const verticalExaggerationNeeded = frameState.verticalExaggeration !== 1.0;
2066
- if (model._verticalExaggerationOn !== verticalExaggerationNeeded) {
2067
- model.resetDrawCommands();
2068
- model._verticalExaggerationOn = verticalExaggerationNeeded;
2138
+ if (model.enableVerticalExaggeration) {
2139
+ const verticalExaggerationNeeded = frameState.verticalExaggeration !== 1.0;
2140
+ if (model.hasVerticalExaggeration !== verticalExaggerationNeeded) {
2141
+ model.resetDrawCommands();
2142
+ model._hasVerticalExaggeration = verticalExaggerationNeeded;
2143
+ }
2144
+ } else if (model.hasVerticalExaggeration) {
2145
+ model.resetDrawCommands(); //if verticalExaggeration was on, reset.
2146
+ model._hasVerticalExaggeration = false;
2069
2147
  }
2070
2148
  }
2071
2149
 
@@ -2084,7 +2162,7 @@ function updateModelMatrix(model, frameState) {
2084
2162
  //>>includeStart('debug', pragmas.debug);
2085
2163
  if (frameState.mode !== SceneMode.SCENE3D && model._projectTo2D) {
2086
2164
  throw new DeveloperError(
2087
- "Model.modelMatrix cannot be changed in 2D or Columbus View if projectTo2D is true."
2165
+ "Model.modelMatrix cannot be changed in 2D or Columbus View if projectTo2D is true.",
2088
2166
  );
2089
2167
  }
2090
2168
  //>>includeEnd('debug');
@@ -2115,7 +2193,7 @@ function updateClamping(model) {
2115
2193
  //>>includeStart('debug', pragmas.debug);
2116
2194
  if (model.heightReference !== HeightReference.NONE) {
2117
2195
  throw new DeveloperError(
2118
- "Height reference is not supported without a scene."
2196
+ "Height reference is not supported without a scene.",
2119
2197
  );
2120
2198
  }
2121
2199
  //>>includeEnd('debug');
@@ -2140,7 +2218,7 @@ function updateClamping(model) {
2140
2218
  model._removeUpdateHeightCallback = scene.updateHeight(
2141
2219
  cartoPosition,
2142
2220
  getUpdateHeightCallback(model, ellipsoid, cartoPosition),
2143
- model.heightReference
2221
+ model.heightReference,
2144
2222
  );
2145
2223
 
2146
2224
  // Set the correct height now
@@ -2180,14 +2258,14 @@ function updateBoundingSphere(model, modelMatrix) {
2180
2258
  model._boundingSphere.center = Cartesian3.multiplyByScalar(
2181
2259
  model._sceneGraph.boundingSphere.center,
2182
2260
  model._clampedScale,
2183
- model._boundingSphere.center
2261
+ model._boundingSphere.center,
2184
2262
  );
2185
2263
  model._boundingSphere.radius = model._initialRadius * model._clampedScale;
2186
2264
 
2187
2265
  model._boundingSphere = BoundingSphere.transform(
2188
2266
  model._boundingSphere,
2189
2267
  modelMatrix,
2190
- model._boundingSphere
2268
+ model._boundingSphere,
2191
2269
  );
2192
2270
  }
2193
2271
 
@@ -2199,7 +2277,7 @@ function updateComputedScale(model, modelMatrix, frameState) {
2199
2277
  const context = frameState.context;
2200
2278
  const maxPixelSize = Math.max(
2201
2279
  context.drawingBufferWidth,
2202
- context.drawingBufferHeight
2280
+ context.drawingBufferHeight,
2203
2281
  );
2204
2282
 
2205
2283
  Matrix4.getTranslation(modelMatrix, scratchPosition);
@@ -2208,7 +2286,7 @@ function updateComputedScale(model, modelMatrix, frameState) {
2208
2286
  SceneTransforms.computeActualEllipsoidPosition(
2209
2287
  frameState,
2210
2288
  scratchPosition,
2211
- scratchPosition
2289
+ scratchPosition,
2212
2290
  );
2213
2291
  }
2214
2292
 
@@ -2219,7 +2297,7 @@ function updateComputedScale(model, modelMatrix, frameState) {
2219
2297
  const pixelsPerMeter = 1.0 / metersPerPixel;
2220
2298
  const diameterInPixels = Math.min(
2221
2299
  pixelsPerMeter * (2.0 * radius),
2222
- maxPixelSize
2300
+ maxPixelSize,
2223
2301
  );
2224
2302
 
2225
2303
  // Maintain model's minimum pixel size
@@ -2268,20 +2346,20 @@ function updateReferenceMatrices(model, frameState) {
2268
2346
  iblReferenceFrameMatrix4 = Matrix4.multiply(
2269
2347
  context.uniformState.view3D,
2270
2348
  referenceMatrix,
2271
- iblReferenceFrameMatrix4
2349
+ iblReferenceFrameMatrix4,
2272
2350
  );
2273
2351
  iblReferenceFrameMatrix3 = Matrix4.getRotation(
2274
2352
  iblReferenceFrameMatrix4,
2275
- iblReferenceFrameMatrix3
2353
+ iblReferenceFrameMatrix3,
2276
2354
  );
2277
2355
  iblReferenceFrameMatrix3 = Matrix3.transpose(
2278
2356
  iblReferenceFrameMatrix3,
2279
- iblReferenceFrameMatrix3
2357
+ iblReferenceFrameMatrix3,
2280
2358
  );
2281
2359
  model._iblReferenceFrameMatrix = Matrix3.multiply(
2282
2360
  yUpToZUp,
2283
2361
  iblReferenceFrameMatrix3,
2284
- model._iblReferenceFrameMatrix
2362
+ model._iblReferenceFrameMatrix,
2285
2363
  );
2286
2364
  }
2287
2365
 
@@ -2290,16 +2368,16 @@ function updateReferenceMatrices(model, frameState) {
2290
2368
  clippingPlanesMatrix = Matrix4.multiply(
2291
2369
  context.uniformState.view3D,
2292
2370
  referenceMatrix,
2293
- clippingPlanesMatrix
2371
+ clippingPlanesMatrix,
2294
2372
  );
2295
2373
  clippingPlanesMatrix = Matrix4.multiply(
2296
2374
  clippingPlanesMatrix,
2297
2375
  model._clippingPlanes.modelMatrix,
2298
- clippingPlanesMatrix
2376
+ clippingPlanesMatrix,
2299
2377
  );
2300
2378
  model._clippingPlanesMatrix = Matrix4.inverseTranspose(
2301
2379
  clippingPlanesMatrix,
2302
- model._clippingPlanesMatrix
2380
+ model._clippingPlanesMatrix,
2303
2381
  );
2304
2382
  }
2305
2383
  }
@@ -2377,7 +2455,7 @@ function submitDrawCommands(model, frameState) {
2377
2455
 
2378
2456
  const displayConditionPassed = passesDistanceDisplayCondition(
2379
2457
  model,
2380
- frameState
2458
+ frameState,
2381
2459
  );
2382
2460
 
2383
2461
  const invisible = model.isInvisible();
@@ -2410,7 +2488,7 @@ function scaleInPixels(positionWC, radius, frameState) {
2410
2488
  return frameState.camera.getPixelSize(
2411
2489
  scratchBoundingSphere,
2412
2490
  frameState.context.drawingBufferWidth,
2413
- frameState.context.drawingBufferHeight
2491
+ frameState.context.drawingBufferHeight,
2414
2492
  );
2415
2493
  }
2416
2494
 
@@ -2423,7 +2501,7 @@ function getUpdateHeightCallback(model, ellipsoid, originalPostition) {
2423
2501
 
2424
2502
  ellipsoid.cartographicToCartesian(
2425
2503
  clampedPosition,
2426
- scratchUpdateHeightCartesian
2504
+ scratchUpdateHeightCartesian,
2427
2505
  );
2428
2506
 
2429
2507
  const clampedModelMatrix = model._clampedModelMatrix;
@@ -2459,7 +2537,7 @@ function passesDistanceDisplayCondition(model, frameState) {
2459
2537
  // Distance to center of primitive's reference frame
2460
2538
  const position = Matrix4.getTranslation(
2461
2539
  model.modelMatrix,
2462
- scratchDisplayConditionCartesian
2540
+ scratchDisplayConditionCartesian,
2463
2541
  );
2464
2542
 
2465
2543
  // This will project the position if the scene is in Columbus View,
@@ -2467,12 +2545,12 @@ function passesDistanceDisplayCondition(model, frameState) {
2467
2545
  SceneTransforms.computeActualEllipsoidPosition(
2468
2546
  frameState,
2469
2547
  position,
2470
- position
2548
+ position,
2471
2549
  );
2472
2550
 
2473
2551
  distanceSquared = Cartesian3.distanceSquared(
2474
2552
  position,
2475
- frameState.camera.positionWC
2553
+ frameState.camera.positionWC,
2476
2554
  );
2477
2555
  }
2478
2556
 
@@ -2588,7 +2666,7 @@ Model.prototype.pick = function (
2588
2666
  frameState,
2589
2667
  verticalExaggeration,
2590
2668
  relativeHeight,
2591
- result
2669
+ result,
2592
2670
  ) {
2593
2671
  return pickModel(
2594
2672
  this,
@@ -2596,7 +2674,7 @@ Model.prototype.pick = function (
2596
2674
  frameState,
2597
2675
  verticalExaggeration,
2598
2676
  relativeHeight,
2599
- result
2677
+ result,
2600
2678
  );
2601
2679
  };
2602
2680
 
@@ -2748,6 +2826,7 @@ Model.prototype.destroyModelResources = function () {
2748
2826
  * @param {boolean} [options.show=true] Whether or not to render the model.
2749
2827
  * @param {Matrix4} [options.modelMatrix=Matrix4.IDENTITY] The 4x4 transformation matrix that transforms the model from model to world coordinates.
2750
2828
  * @param {number} [options.scale=1.0] A uniform scale applied to this model.
2829
+ * @param {boolean} [options.enableVerticalExaggeration=true] If <code>true</code>, the model is exaggerated along the ellipsoid normal when {@link Scene.verticalExaggeration} is set to a value other than <code>1.0</code>.
2751
2830
  * @param {number} [options.minimumPixelSize=0.0] The approximate minimum pixel size of the model regardless of zoom.
2752
2831
  * @param {number} [options.maximumScale] The maximum scale size of a model. An upper limit for minimumPixelSize.
2753
2832
  * @param {object} [options.id] A user-defined object to return when the model is picked with {@link Scene#pick}.
@@ -3043,7 +3122,7 @@ Model.fromGeoJson = async function (options) {
3043
3122
  const modelOptions = makeModelOptions(
3044
3123
  loader,
3045
3124
  ModelType.TILE_GEOJSON,
3046
- options
3125
+ options,
3047
3126
  );
3048
3127
  const model = new Model(modelOptions);
3049
3128
  return model;
@@ -3116,6 +3195,7 @@ function makeModelOptions(loader, modelType, options) {
3116
3195
  show: options.show,
3117
3196
  modelMatrix: options.modelMatrix,
3118
3197
  scale: options.scale,
3198
+ enableVerticalExaggeration: options.enableVerticalExaggeration,
3119
3199
  minimumPixelSize: options.minimumPixelSize,
3120
3200
  maximumScale: options.maximumScale,
3121
3201
  id: options.id,
@@ -152,6 +152,25 @@ Object.defineProperties(Model3DTileContent.prototype, {
152
152
  },
153
153
  });
154
154
 
155
+ /**
156
+ * Returns the object that was created for the given extension.
157
+ *
158
+ * The given name may be the name of a glTF extension, like `"EXT_example_extension"`.
159
+ * If the specified extension was present in the root of the underlying glTF asset,
160
+ * and a loder for the specified extension has processed the extension data, then
161
+ * this will return the model representation of the extension.
162
+ *
163
+ * @param {string} extensionName The name of the extension
164
+ * @returns {object|undefined} The object, or `undefined`
165
+ *
166
+ * @private
167
+ */
168
+ Model3DTileContent.prototype.getExtension = function (extensionName) {
169
+ const model = this._model;
170
+ const extension = model.getExtension(extensionName);
171
+ return extension;
172
+ };
173
+
155
174
  Model3DTileContent.prototype.getFeature = function (featureId) {
156
175
  const model = this._model;
157
176
  const featureTableId = model.featureTableId;
@@ -159,7 +178,7 @@ Model3DTileContent.prototype.getFeature = function (featureId) {
159
178
  //>>includeStart('debug', pragmas.debug);
160
179
  if (!defined(featureTableId)) {
161
180
  throw new DeveloperError(
162
- "No feature ID set is selected. Make sure Cesium3DTileset.featureIdLabel or Cesium3DTileset.instanceFeatureIdLabel is defined"
181
+ "No feature ID set is selected. Make sure Cesium3DTileset.featureIdLabel or Cesium3DTileset.instanceFeatureIdLabel is defined",
163
182
  );
164
183
  }
165
184
  //>>includeEnd('debug');
@@ -169,7 +188,7 @@ Model3DTileContent.prototype.getFeature = function (featureId) {
169
188
  //>>includeStart('debug', pragmas.debug);
170
189
  if (!defined(featureTable)) {
171
190
  throw new DeveloperError(
172
- "No feature table found for the selected feature ID set"
191
+ "No feature table found for the selected feature ID set",
173
192
  );
174
193
  }
175
194
  //>>includeEnd('debug');
@@ -180,7 +199,7 @@ Model3DTileContent.prototype.getFeature = function (featureId) {
180
199
  throw new DeveloperError(
181
200
  `featureId is required and must be between 0 and featuresLength - 1 (${
182
201
  featuresLength - 1
183
- }).`
202
+ }).`,
184
203
  );
185
204
  }
186
205
  //>>includeEnd('debug');
@@ -309,7 +328,7 @@ Model3DTileContent.fromGltf = async function (tileset, tile, resource, gltf) {
309
328
  tileset,
310
329
  tile,
311
330
  content,
312
- additionalOptions
331
+ additionalOptions,
313
332
  );
314
333
 
315
334
  const classificationType = tileset.vectorClassificationOnly
@@ -329,7 +348,7 @@ Model3DTileContent.fromB3dm = async function (
329
348
  tile,
330
349
  resource,
331
350
  arrayBuffer,
332
- byteOffset
351
+ byteOffset,
333
352
  ) {
334
353
  const content = new Model3DTileContent(tileset, tile, resource);
335
354
 
@@ -343,7 +362,7 @@ Model3DTileContent.fromB3dm = async function (
343
362
  tileset,
344
363
  tile,
345
364
  content,
346
- additionalOptions
365
+ additionalOptions,
347
366
  );
348
367
 
349
368
  const classificationType = tileset.vectorClassificationOnly
@@ -363,7 +382,7 @@ Model3DTileContent.fromI3dm = async function (
363
382
  tile,
364
383
  resource,
365
384
  arrayBuffer,
366
- byteOffset
385
+ byteOffset,
367
386
  ) {
368
387
  const content = new Model3DTileContent(tileset, tile, resource);
369
388
 
@@ -377,7 +396,7 @@ Model3DTileContent.fromI3dm = async function (
377
396
  tileset,
378
397
  tile,
379
398
  content,
380
- additionalOptions
399
+ additionalOptions,
381
400
  );
382
401
 
383
402
  const model = await Model.fromI3dm(modelOptions);
@@ -391,7 +410,7 @@ Model3DTileContent.fromPnts = async function (
391
410
  tile,
392
411
  resource,
393
412
  arrayBuffer,
394
- byteOffset
413
+ byteOffset,
395
414
  ) {
396
415
  const content = new Model3DTileContent(tileset, tile, resource);
397
416
 
@@ -405,7 +424,7 @@ Model3DTileContent.fromPnts = async function (
405
424
  tileset,
406
425
  tile,
407
426
  content,
408
- additionalOptions
427
+ additionalOptions,
409
428
  );
410
429
  const model = await Model.fromPnts(modelOptions);
411
430
  content._model = model;
@@ -417,7 +436,7 @@ Model3DTileContent.fromGeoJson = async function (
417
436
  tileset,
418
437
  tile,
419
438
  resource,
420
- geoJson
439
+ geoJson,
421
440
  ) {
422
441
  const content = new Model3DTileContent(tileset, tile, resource);
423
442
 
@@ -430,7 +449,7 @@ Model3DTileContent.fromGeoJson = async function (
430
449
  tileset,
431
450
  tile,
432
451
  content,
433
- additionalOptions
452
+ additionalOptions,
434
453
  );
435
454
  const model = await Model.fromGeoJson(modelOptions);
436
455
  content._model = model;
@@ -463,7 +482,7 @@ Model3DTileContent.prototype.pick = function (ray, frameState, result) {
463
482
  verticalExaggeration,
464
483
  relativeHeight,
465
484
  Ellipsoid.WGS84,
466
- result
485
+ result,
467
486
  );
468
487
  };
469
488
 
@@ -280,12 +280,12 @@ ModelAnimationChannel.prototype.animate = function (time) {
280
280
  ) {
281
281
  runtimeNode[path] = spline.evaluate(
282
282
  localAnimationTime,
283
- scratchCartesian3
283
+ scratchCartesian3,
284
284
  );
285
285
  } else if (path === AnimatedPropertyType.ROTATION) {
286
286
  runtimeNode[path] = spline.evaluate(
287
287
  localAnimationTime,
288
- scratchQuaternion
288
+ scratchQuaternion,
289
289
  );
290
290
  }
291
291
  }