@cesium/engine 14.0.0 → 16.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 (578) hide show
  1. package/Build/Workers/{chunk-WVNLSTOF.js → chunk-2TQ64T4I.js} +2 -2
  2. package/Build/Workers/{chunk-ED6GLQTK.js → chunk-34EWMUFG.js} +1 -1
  3. package/Build/Workers/{chunk-HEZHXDYB.js → chunk-4LHK6E47.js} +1 -1
  4. package/Build/Workers/{chunk-7EO56M5R.js → chunk-5TN3LG2T.js} +2 -2
  5. package/Build/Workers/{chunk-7ZB2RVIQ.js → chunk-6B7KGA5P.js} +16 -19
  6. package/Build/Workers/{chunk-3QLSKXKF.js → chunk-B75OO2DU.js} +7 -10
  7. package/Build/Workers/{chunk-Q4ZVWJXX.js → chunk-COOLDICB.js} +9 -11
  8. package/Build/Workers/{chunk-3PIZQT3I.js → chunk-CQNYYX3N.js} +4 -4
  9. package/Build/Workers/{chunk-JPDKYBLF.js → chunk-CUJH7PS5.js} +27 -29
  10. package/Build/Workers/{chunk-CI2HEJFC.js → chunk-EAWYQ44R.js} +39 -41
  11. package/Build/Workers/{chunk-SDIDRZDG.js → chunk-EJJDBH5W.js} +7 -7
  12. package/Build/Workers/{chunk-5KWRW7YL.js → chunk-EO44CO62.js} +2 -2
  13. package/Build/Workers/{chunk-N2XAJBC6.js → chunk-EOIUWEAK.js} +26 -28
  14. package/Build/Workers/{chunk-YJX7X577.js → chunk-ERKJ7IWJ.js} +21 -23
  15. package/Build/Workers/{chunk-J7IH4EYI.js → chunk-ESED7XBA.js} +13 -16
  16. package/Build/Workers/{chunk-F4CUH4MR.js → chunk-FW2OX42E.js} +18 -21
  17. package/Build/Workers/{chunk-FX4R4MTH.js → chunk-GH6I7PBY.js} +6 -9
  18. package/Build/Workers/{chunk-FYGLNDKG.js → chunk-GQVSADCI.js} +19 -22
  19. package/Build/Workers/{chunk-TY4DKOWR.js → chunk-ICU72UPR.js} +4 -4
  20. package/Build/Workers/{chunk-DT5NFR5C.js → chunk-ILVAXLMC.js} +7 -7
  21. package/Build/Workers/{chunk-ZGFIT57T.js → chunk-KKV6XBF5.js} +27 -23
  22. package/Build/Workers/{chunk-HKHQ3EDR.js → chunk-KV6TEHXY.js} +4 -4
  23. package/Build/Workers/{chunk-B4GSRXE3.js → chunk-LCSH4ZOB.js} +7 -10
  24. package/Build/Workers/{chunk-LNSWJ43X.js → chunk-M5J3S3HY.js} +17 -26
  25. package/Build/Workers/{chunk-LJBJM6VI.js → chunk-NB6D74SQ.js} +6 -6
  26. package/Build/Workers/{chunk-4CHMVQTQ.js → chunk-NREPBWCX.js} +14 -14
  27. package/Build/Workers/{chunk-PWF4EY5P.js → chunk-OD4Q7HE5.js} +4 -4
  28. package/Build/Workers/{chunk-77XPS7ZA.js → chunk-OMFZ4IN6.js} +15 -24
  29. package/Build/Workers/{chunk-HUFQVUMY.js → chunk-OMZGZVHI.js} +12 -17
  30. package/Build/Workers/{chunk-LOZ4NKY3.js → chunk-ORIMMEHO.js} +18 -20
  31. package/Build/Workers/{chunk-5S5OOA6U.js → chunk-OWLBD6BL.js} +1 -1
  32. package/Build/Workers/{chunk-VCNOFQYH.js → chunk-PB6SE3SZ.js} +9 -12
  33. package/Build/Workers/{chunk-3JBEPBPL.js → chunk-PT6U7UNY.js} +25 -30
  34. package/Build/Workers/{chunk-G3BVMPWG.js → chunk-RWAFHSX3.js} +2 -2
  35. package/Build/Workers/{chunk-KHWLAQVA.js → chunk-S2NKKWYE.js} +1 -1
  36. package/Build/Workers/{chunk-FFBJDW4A.js → chunk-S3IQBSIB.js} +6 -6
  37. package/Build/Workers/{chunk-3LYROPON.js → chunk-SCUQTTCN.js} +16 -19
  38. package/Build/Workers/{chunk-ZMNLEL6W.js → chunk-TBSA4MNF.js} +5 -8
  39. package/Build/Workers/{chunk-EWDGNOJE.js → chunk-TEUGW455.js} +9 -12
  40. package/Build/Workers/{chunk-XK4OP6VA.js → chunk-TL5YKZJF.js} +33 -41
  41. package/Build/Workers/{chunk-KM6MITPF.js → chunk-V4Y7C25O.js} +46 -42
  42. package/Build/Workers/{chunk-OMXHEJTK.js → chunk-VNDECE6N.js} +2 -2
  43. package/Build/Workers/{chunk-LS3KVHYY.js → chunk-VVTAI2TN.js} +6 -9
  44. package/Build/Workers/{chunk-WEHZP4SE.js → chunk-VXAAIRJ7.js} +129 -146
  45. package/Build/Workers/{chunk-MVM4JV5U.js → chunk-WGIOUM2S.js} +9 -12
  46. package/Build/Workers/{chunk-JHBPC4LK.js → chunk-XF6EBVKV.js} +7 -7
  47. package/Build/Workers/{chunk-D7ZBZPHV.js → chunk-XMKE4XB2.js} +5 -5
  48. package/Build/Workers/{chunk-7UHKH6M3.js → chunk-YA4XALD5.js} +34 -36
  49. package/Build/Workers/{chunk-KSYBJA4M.js → chunk-YFXXUW6U.js} +6 -12
  50. package/Build/Workers/{chunk-Z3QWTHI7.js → chunk-YL26OJCG.js} +21 -23
  51. package/Build/Workers/{chunk-K4AH3TDT.js → chunk-ZLJDDRGB.js} +14 -17
  52. package/Build/Workers/combineGeometry.js +21 -22
  53. package/Build/Workers/createBoxGeometry.js +15 -16
  54. package/Build/Workers/createBoxOutlineGeometry.js +20 -25
  55. package/Build/Workers/createCircleGeometry.js +26 -28
  56. package/Build/Workers/createCircleOutlineGeometry.js +19 -21
  57. package/Build/Workers/createCoplanarPolygonGeometry.js +38 -42
  58. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +34 -36
  59. package/Build/Workers/createCorridorGeometry.js +42 -49
  60. package/Build/Workers/createCorridorOutlineGeometry.js +36 -43
  61. package/Build/Workers/createCylinderGeometry.js +17 -18
  62. package/Build/Workers/createCylinderOutlineGeometry.js +23 -25
  63. package/Build/Workers/createEllipseGeometry.js +23 -24
  64. package/Build/Workers/createEllipseOutlineGeometry.js +16 -17
  65. package/Build/Workers/createEllipsoidGeometry.js +16 -17
  66. package/Build/Workers/createEllipsoidOutlineGeometry.js +15 -16
  67. package/Build/Workers/createFrustumGeometry.js +15 -16
  68. package/Build/Workers/createFrustumOutlineGeometry.js +18 -21
  69. package/Build/Workers/createGeometry.js +22 -25
  70. package/Build/Workers/createGroundPolylineGeometry.js +34 -42
  71. package/Build/Workers/createPlaneGeometry.js +19 -21
  72. package/Build/Workers/createPlaneOutlineGeometry.js +12 -13
  73. package/Build/Workers/createPolygonGeometry.js +45 -50
  74. package/Build/Workers/createPolygonOutlineGeometry.js +39 -44
  75. package/Build/Workers/createPolylineGeometry.js +33 -40
  76. package/Build/Workers/createPolylineVolumeGeometry.js +37 -44
  77. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +32 -39
  78. package/Build/Workers/createRectangleGeometry.js +41 -51
  79. package/Build/Workers/createRectangleOutlineGeometry.js +28 -33
  80. package/Build/Workers/createSimplePolylineGeometry.js +29 -34
  81. package/Build/Workers/createSphereGeometry.js +17 -20
  82. package/Build/Workers/createSphereOutlineGeometry.js +16 -19
  83. package/Build/Workers/createTaskProcessorWorker.js +3 -3
  84. package/Build/Workers/createVectorTileClampedPolylines.js +12 -13
  85. package/Build/Workers/createVectorTileGeometries.js +21 -22
  86. package/Build/Workers/createVectorTilePoints.js +11 -12
  87. package/Build/Workers/createVectorTilePolygons.js +19 -20
  88. package/Build/Workers/createVectorTilePolylines.js +12 -13
  89. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +20 -23
  90. package/Build/Workers/createVerticesFromHeightmap.js +31 -58
  91. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +17 -18
  92. package/Build/Workers/createWallGeometry.js +30 -35
  93. package/Build/Workers/createWallOutlineGeometry.js +28 -33
  94. package/Build/Workers/decodeDraco.js +10 -11
  95. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
  96. package/Build/Workers/decodeI3S.js +10 -16
  97. package/Build/Workers/transcodeKTX2.js +50 -46
  98. package/Build/Workers/transferTypedArrayTest.js +1 -1
  99. package/Build/Workers/upsampleQuantizedTerrainMesh.js +19 -20
  100. package/Source/Core/ApproximateTerrainHeights.js +2 -3
  101. package/Source/Core/ArcGISTiledElevationTerrainProvider.js +6 -6
  102. package/Source/Core/AxisAlignedBoundingBox.js +2 -3
  103. package/Source/Core/BingMapsGeocoderService.js +2 -2
  104. package/Source/Core/BoundingRectangle.js +7 -8
  105. package/Source/Core/BoundingSphere.js +10 -11
  106. package/Source/Core/BoxGeometry.js +7 -7
  107. package/Source/Core/BoxOutlineGeometry.js +7 -9
  108. package/Source/Core/Cartesian2.js +4 -5
  109. package/Source/Core/Cartesian3.js +7 -8
  110. package/Source/Core/Cartesian4.js +6 -7
  111. package/Source/Core/Cartographic.js +5 -6
  112. package/Source/Core/CatmullRomSpline.js +2 -2
  113. package/Source/Core/CesiumTerrainProvider.js +11 -14
  114. package/Source/Core/CircleGeometry.js +2 -2
  115. package/Source/Core/CircleOutlineGeometry.js +2 -2
  116. package/Source/Core/Clock.js +7 -10
  117. package/Source/Core/Color.js +28 -28
  118. package/Source/Core/ColorGeometryInstanceAttribute.js +4 -5
  119. package/Source/Core/ComponentDatatype.js +4 -6
  120. package/Source/Core/CoplanarPolygonGeometry.js +8 -10
  121. package/Source/Core/CoplanarPolygonOutlineGeometry.js +5 -5
  122. package/Source/Core/CorridorGeometry.js +15 -20
  123. package/Source/Core/CorridorOutlineGeometry.js +10 -15
  124. package/Source/Core/Credit.js +1 -2
  125. package/Source/Core/CullingVolume.js +1 -2
  126. package/Source/Core/CustomHeightmapTerrainProvider.js +3 -3
  127. package/Source/Core/CylinderGeometry.js +7 -7
  128. package/Source/Core/CylinderOutlineGeometry.js +7 -7
  129. package/Source/Core/DistanceDisplayCondition.js +4 -5
  130. package/Source/Core/DistanceDisplayConditionGeometryInstanceAttribute.js +2 -3
  131. package/Source/Core/EarthOrientationParameters.js +4 -4
  132. package/Source/Core/EllipseGeometry.js +17 -23
  133. package/Source/Core/EllipseOutlineGeometry.js +12 -15
  134. package/Source/Core/Ellipsoid.js +7 -8
  135. package/Source/Core/EllipsoidGeodesic.js +1 -2
  136. package/Source/Core/EllipsoidGeometry.js +15 -15
  137. package/Source/Core/EllipsoidOutlineGeometry.js +15 -15
  138. package/Source/Core/EllipsoidRhumbLine.js +3 -4
  139. package/Source/Core/EllipsoidTangentPlane.js +1 -2
  140. package/Source/Core/EllipsoidTerrainProvider.js +4 -4
  141. package/Source/Core/EllipsoidalOccluder.js +2 -3
  142. package/Source/Core/FeatureDetection.js +1 -2
  143. package/Source/Core/Frozen.js +24 -0
  144. package/Source/Core/FrustumGeometry.js +7 -8
  145. package/Source/Core/FrustumOutlineGeometry.js +3 -4
  146. package/Source/Core/GeographicProjection.js +1 -2
  147. package/Source/Core/GeographicTilingScheme.js +6 -12
  148. package/Source/Core/Geometry.js +4 -7
  149. package/Source/Core/GeometryAttribute.js +3 -3
  150. package/Source/Core/GeometryAttributes.js +2 -2
  151. package/Source/Core/GeometryInstance.js +4 -6
  152. package/Source/Core/GeometryInstanceAttribute.js +3 -3
  153. package/Source/Core/GeometryPipeline.js +3 -4
  154. package/Source/Core/GoogleEarthEnterpriseMetadata.js +13 -24
  155. package/Source/Core/GoogleEarthEnterpriseTerrainData.js +9 -12
  156. package/Source/Core/GoogleEarthEnterpriseTerrainProvider.js +3 -3
  157. package/Source/Core/GoogleGeocoderService.js +2 -2
  158. package/Source/Core/GregorianDate.js +8 -9
  159. package/Source/Core/GroundPolylineGeometry.js +8 -8
  160. package/Source/Core/HeadingPitchRange.js +3 -4
  161. package/Source/Core/HeadingPitchRoll.js +3 -4
  162. package/Source/Core/Heap.js +3 -4
  163. package/Source/Core/HeightmapTerrainData.js +22 -38
  164. package/Source/Core/HeightmapTessellator.js +21 -37
  165. package/Source/Core/HermitePolynomialApproximation.js +1 -2
  166. package/Source/Core/HermiteSpline.js +5 -5
  167. package/Source/Core/ITwinPlatform.js +66 -12
  168. package/Source/Core/Iau2006XysData.js +8 -10
  169. package/Source/Core/IntersectionTests.js +1 -2
  170. package/Source/Core/Interval.js +2 -4
  171. package/Source/Core/Ion.js +1 -1
  172. package/Source/Core/IonGeocoderService.js +6 -10
  173. package/Source/Core/IonResource.js +6 -6
  174. package/Source/Core/JulianDate.js +11 -12
  175. package/Source/Core/LinearSpline.js +2 -2
  176. package/Source/Core/ManagedArray.js +2 -3
  177. package/Source/Core/Math.js +36 -27
  178. package/Source/Core/Matrix2.js +7 -8
  179. package/Source/Core/Matrix3.js +12 -13
  180. package/Source/Core/Matrix4.js +28 -28
  181. package/Source/Core/MorphWeightSpline.js +2 -2
  182. package/Source/Core/NearFarScalar.js +6 -7
  183. package/Source/Core/Occluder.js +1 -2
  184. package/Source/Core/OffsetGeometryInstanceAttribute.js +3 -4
  185. package/Source/Core/OpenCageGeocoderService.js +1 -2
  186. package/Source/Core/OrientedBoundingBox.js +7 -8
  187. package/Source/Core/OrthographicFrustum.js +6 -6
  188. package/Source/Core/OrthographicOffCenterFrustum.js +4 -4
  189. package/Source/Core/PerspectiveFrustum.js +8 -8
  190. package/Source/Core/PerspectiveOffCenterFrustum.js +4 -4
  191. package/Source/Core/PlaneGeometry.js +5 -5
  192. package/Source/Core/PolygonGeometry.js +16 -19
  193. package/Source/Core/PolygonGeometryLibrary.js +27 -6
  194. package/Source/Core/PolygonOutlineGeometry.js +11 -14
  195. package/Source/Core/PolygonPipeline.js +5 -6
  196. package/Source/Core/PolylineGeometry.js +10 -15
  197. package/Source/Core/PolylinePipeline.js +7 -14
  198. package/Source/Core/PolylineVolumeGeometry.js +8 -13
  199. package/Source/Core/PolylineVolumeOutlineGeometry.js +7 -12
  200. package/Source/Core/QuantizedMeshTerrainData.js +12 -16
  201. package/Source/Core/Quaternion.js +7 -8
  202. package/Source/Core/QuaternionSpline.js +2 -2
  203. package/Source/Core/Ray.js +2 -3
  204. package/Source/Core/Rectangle.js +18 -19
  205. package/Source/Core/RectangleGeometry.js +17 -25
  206. package/Source/Core/RectangleGeometryLibrary.js +1 -1
  207. package/Source/Core/RectangleOutlineGeometry.js +10 -13
  208. package/Source/Core/Request.js +6 -6
  209. package/Source/Core/RequestScheduler.js +4 -6
  210. package/Source/Core/Resource.js +13 -16
  211. package/Source/Core/S2Cell.js +2 -3
  212. package/Source/Core/ScreenSpaceEventHandler.js +1 -2
  213. package/Source/Core/ShowGeometryInstanceAttribute.js +1 -2
  214. package/Source/Core/Simon1994PlanetaryPositions.js +9 -9
  215. package/Source/Core/SimplePolylineGeometry.js +8 -11
  216. package/Source/Core/SphereGeometry.js +1 -2
  217. package/Source/Core/SphereOutlineGeometry.js +1 -2
  218. package/Source/Core/Spherical.js +4 -5
  219. package/Source/Core/Spline.js +1 -2
  220. package/Source/Core/SteppedSpline.js +2 -2
  221. package/Source/Core/TaskProcessor.js +2 -9
  222. package/Source/Core/TerrainData.js +1 -1
  223. package/Source/Core/TerrainEncoding.js +4 -11
  224. package/Source/Core/TerrainMesh.js +1 -3
  225. package/Source/Core/TerrainProvider.js +1 -1
  226. package/Source/Core/TexturePacker.js +166 -0
  227. package/Source/Core/TileProviderError.js +1 -2
  228. package/Source/Core/TimeInterval.js +7 -7
  229. package/Source/Core/TimeIntervalCollection.js +7 -7
  230. package/Source/Core/Tipsify.js +5 -5
  231. package/Source/Core/Transforms.js +10 -15
  232. package/Source/Core/TranslationRotationScale.js +3 -6
  233. package/Source/Core/VRTheWorldTerrainProvider.js +5 -5
  234. package/Source/Core/VertexFormat.js +10 -10
  235. package/Source/Core/VerticalExaggeration.js +1 -1
  236. package/Source/Core/VideoSynchronizer.js +6 -6
  237. package/Source/Core/WallGeometry.js +8 -11
  238. package/Source/Core/WallOutlineGeometry.js +7 -10
  239. package/Source/Core/WebMercatorProjection.js +1 -2
  240. package/Source/Core/WebMercatorTilingScheme.js +5 -11
  241. package/Source/Core/arrayRemoveDuplicates.js +1 -2
  242. package/Source/Core/clone.js +1 -3
  243. package/Source/Core/combine.js +1 -2
  244. package/Source/Core/createWorldBathymetryAsync.js +3 -3
  245. package/Source/Core/createWorldTerrainAsync.js +4 -4
  246. package/Source/Core/defaultValue.js +20 -1
  247. package/Source/Core/destroyObject.js +1 -5
  248. package/Source/Core/getAbsoluteUri.js +1 -2
  249. package/Source/Core/getMagic.js +1 -2
  250. package/Source/Core/getStringFromTypedArray.js +2 -3
  251. package/Source/Core/loadImageFromTypedArray.js +2 -6
  252. package/Source/Core/oneTimeWarning.js +1 -2
  253. package/Source/Core/writeTextToCanvas.js +10 -13
  254. package/Source/DataSources/BillboardGraphics.js +27 -53
  255. package/Source/DataSources/BillboardVisualizer.js +3 -3
  256. package/Source/DataSources/BoxGraphics.js +13 -18
  257. package/Source/DataSources/CallbackPositionProperty.js +1 -2
  258. package/Source/DataSources/Cesium3DTilesetGraphics.js +6 -8
  259. package/Source/DataSources/CheckerboardMaterialProperty.js +2 -2
  260. package/Source/DataSources/CompositePositionProperty.js +1 -2
  261. package/Source/DataSources/ConstantPositionProperty.js +1 -2
  262. package/Source/DataSources/CorridorGraphics.js +23 -35
  263. package/Source/DataSources/CylinderGraphics.js +18 -25
  264. package/Source/DataSources/CzmlDataSource.js +34 -60
  265. package/Source/DataSources/DataSourceClock.js +12 -13
  266. package/Source/DataSources/DataSourceCollection.js +2 -3
  267. package/Source/DataSources/DataSourceDisplay.js +2 -5
  268. package/Source/DataSources/EllipseGraphics.js +26 -40
  269. package/Source/DataSources/EllipsoidGeometryUpdater.js +1 -2
  270. package/Source/DataSources/EllipsoidGraphics.js +21 -32
  271. package/Source/DataSources/Entity.js +7 -9
  272. package/Source/DataSources/EntityCluster.js +53 -28
  273. package/Source/DataSources/EntityView.js +1 -2
  274. package/Source/DataSources/GeoJsonDataSource.js +12 -12
  275. package/Source/DataSources/GeometryUpdater.js +12 -17
  276. package/Source/DataSources/GeometryVisualizer.js +2 -3
  277. package/Source/DataSources/GpxDataSource.js +4 -7
  278. package/Source/DataSources/GridMaterialProperty.js +2 -2
  279. package/Source/DataSources/GroundGeometryUpdater.js +1 -2
  280. package/Source/DataSources/ImageMaterialProperty.js +2 -2
  281. package/Source/DataSources/KmlDataSource.js +84 -158
  282. package/Source/DataSources/LabelGraphics.js +27 -56
  283. package/Source/DataSources/LabelVisualizer.js +1 -2
  284. package/Source/DataSources/ModelGraphics.js +29 -63
  285. package/Source/DataSources/ModelVisualizer.js +1 -2
  286. package/Source/DataSources/NodeTransformationProperty.js +2 -2
  287. package/Source/DataSources/PathGraphics.js +10 -12
  288. package/Source/DataSources/PlaneGraphics.js +13 -15
  289. package/Source/DataSources/PointGraphics.js +17 -32
  290. package/Source/DataSources/PolygonGraphics.js +28 -45
  291. package/Source/DataSources/PolylineDashMaterialProperty.js +2 -2
  292. package/Source/DataSources/PolylineGeometryUpdater.js +9 -14
  293. package/Source/DataSources/PolylineGlowMaterialProperty.js +2 -2
  294. package/Source/DataSources/PolylineGraphics.js +16 -23
  295. package/Source/DataSources/PolylineOutlineMaterialProperty.js +2 -2
  296. package/Source/DataSources/PolylineVisualizer.js +2 -3
  297. package/Source/DataSources/PolylineVolumeGraphics.js +15 -17
  298. package/Source/DataSources/PositionPropertyArray.js +1 -2
  299. package/Source/DataSources/Property.js +1 -2
  300. package/Source/DataSources/PropertyBag.js +1 -2
  301. package/Source/DataSources/RectangleGraphics.js +23 -35
  302. package/Source/DataSources/Rotation.js +4 -5
  303. package/Source/DataSources/SampledPositionProperty.js +2 -3
  304. package/Source/DataSources/SampledProperty.js +6 -11
  305. package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +1 -2
  306. package/Source/DataSources/StripeMaterialProperty.js +2 -2
  307. package/Source/DataSources/TimeIntervalCollectionPositionProperty.js +1 -2
  308. package/Source/DataSources/VelocityOrientationProperty.js +1 -2
  309. package/Source/DataSources/VelocityVectorProperty.js +1 -2
  310. package/Source/DataSources/WallGraphics.js +15 -23
  311. package/Source/DataSources/createPropertyDescriptor.js +2 -3
  312. package/Source/DataSources/exportKml.js +11 -14
  313. package/Source/Renderer/Buffer.js +5 -5
  314. package/Source/Renderer/ClearCommand.js +2 -2
  315. package/Source/Renderer/ComputeCommand.js +3 -3
  316. package/Source/Renderer/Context.js +22 -37
  317. package/Source/Renderer/CubeMap.js +6 -6
  318. package/Source/Renderer/CubeMapFace.js +11 -12
  319. package/Source/Renderer/DrawCommand.js +14 -25
  320. package/Source/Renderer/Framebuffer.js +3 -3
  321. package/Source/Renderer/FramebufferManager.js +25 -39
  322. package/Source/Renderer/MultisampleFramebuffer.js +2 -2
  323. package/Source/Renderer/RenderState.js +63 -92
  324. package/Source/Renderer/Renderbuffer.js +4 -4
  325. package/Source/Renderer/Sampler.js +2 -2
  326. package/Source/Renderer/ShaderBuilder.js +2 -3
  327. package/Source/Renderer/ShaderProgram.js +3 -3
  328. package/Source/Renderer/ShaderSource.js +3 -3
  329. package/Source/Renderer/Texture.js +16 -15
  330. package/Source/Renderer/TextureAtlas.js +802 -0
  331. package/Source/Renderer/UniformState.js +6 -11
  332. package/Source/Renderer/VertexArray.js +14 -23
  333. package/Source/Renderer/VertexArrayFacade.js +7 -11
  334. package/Source/Scene/Appearance.js +4 -4
  335. package/Source/Scene/ArcGisMapServerImageryProvider.js +23 -37
  336. package/Source/Scene/ArcGisMapService.js +1 -1
  337. package/Source/Scene/B3dmParser.js +2 -3
  338. package/Source/Scene/BatchTableHierarchy.js +6 -13
  339. package/Source/Scene/Billboard.js +105 -182
  340. package/Source/Scene/BillboardCollection.js +140 -224
  341. package/Source/Scene/BillboardLoadState.js +44 -0
  342. package/Source/Scene/BillboardTexture.js +348 -0
  343. package/Source/Scene/BingMapsImageryProvider.js +6 -6
  344. package/Source/Scene/BoxEmitter.js +1 -2
  345. package/Source/Scene/BufferLoader.js +2 -2
  346. package/Source/Scene/Camera.js +45 -64
  347. package/Source/Scene/CameraFlightPath.js +6 -6
  348. package/Source/Scene/Cesium3DContentGroup.js +2 -2
  349. package/Source/Scene/Cesium3DTile.js +3 -4
  350. package/Source/Scene/Cesium3DTileBatchTable.js +6 -49
  351. package/Source/Scene/Cesium3DTileFeatureTable.js +2 -3
  352. package/Source/Scene/Cesium3DTilePointFeature.js +10 -18
  353. package/Source/Scene/Cesium3DTileStyle.js +4 -7
  354. package/Source/Scene/Cesium3DTilesVoxelProvider.js +419 -137
  355. package/Source/Scene/Cesium3DTileset.js +77 -143
  356. package/Source/Scene/Cesium3DTilesetMetadata.js +3 -3
  357. package/Source/Scene/Cesium3DTilesetStatistics.js +0 -1
  358. package/Source/Scene/CircleEmitter.js +2 -3
  359. package/Source/Scene/ClassificationPrimitive.js +15 -26
  360. package/Source/Scene/ClippingPlaneCollection.js +7 -12
  361. package/Source/Scene/ClippingPolygon.js +1 -2
  362. package/Source/Scene/ClippingPolygonCollection.js +4 -4
  363. package/Source/Scene/CloudCollection.js +9 -11
  364. package/Source/Scene/Composite3DTileContent.js +1 -2
  365. package/Source/Scene/ConeEmitter.js +1 -2
  366. package/Source/Scene/ContentMetadata.js +2 -2
  367. package/Source/Scene/CreditDisplay.js +5 -9
  368. package/Source/Scene/CumulusCloud.js +9 -15
  369. package/Source/Scene/DebugAppearance.js +7 -7
  370. package/Source/Scene/DebugCameraPrimitive.js +5 -5
  371. package/Source/Scene/DebugModelMatrixPrimitive.js +6 -8
  372. package/Source/Scene/DepthPlane.js +1 -2
  373. package/Source/Scene/DirectionalLight.js +2 -3
  374. package/Source/Scene/DiscardMissingTileImagePolicy.js +2 -2
  375. package/Source/Scene/DynamicEnvironmentMapManager.js +15 -24
  376. package/Source/Scene/EllipsoidPrimitive.js +11 -19
  377. package/Source/Scene/EllipsoidSurfaceAppearance.js +11 -15
  378. package/Source/Scene/Expression.js +1 -0
  379. package/Source/Scene/FrameRateMonitor.js +12 -21
  380. package/Source/Scene/FrustumCommands.js +2 -3
  381. package/Source/Scene/Geometry3DTileContent.js +9 -16
  382. package/Source/Scene/Globe.js +3 -4
  383. package/Source/Scene/GlobeSurfaceTileProvider.js +9 -18
  384. package/Source/Scene/GlobeTranslucencyState.js +12 -25
  385. package/Source/Scene/GltfBufferViewLoader.js +4 -4
  386. package/Source/Scene/GltfDracoLoader.js +2 -2
  387. package/Source/Scene/GltfImageLoader.js +2 -2
  388. package/Source/Scene/GltfIndexBufferLoader.js +5 -5
  389. package/Source/Scene/GltfJsonLoader.js +2 -2
  390. package/Source/Scene/GltfLoader.js +22 -37
  391. package/Source/Scene/GltfLoaderUtil.js +11 -11
  392. package/Source/Scene/GltfPipeline/addDefaults.js +37 -64
  393. package/Source/Scene/GltfPipeline/addToArray.js +1 -3
  394. package/Source/Scene/GltfPipeline/moveTechniqueRenderStates.js +2 -5
  395. package/Source/Scene/GltfPipeline/parseGlb.js +1 -5
  396. package/Source/Scene/GltfPipeline/removeUnusedElements.js +1 -2
  397. package/Source/Scene/GltfPipeline/updateVersion.js +28 -49
  398. package/Source/Scene/GltfStructuralMetadataLoader.js +5 -6
  399. package/Source/Scene/GltfTextureLoader.js +3 -3
  400. package/Source/Scene/GltfVertexBufferLoader.js +5 -5
  401. package/Source/Scene/GoogleEarthEnterpriseImageryProvider.js +2 -2
  402. package/Source/Scene/GoogleEarthEnterpriseMapsProvider.js +3 -4
  403. package/Source/Scene/GridImageryProvider.js +10 -13
  404. package/Source/Scene/GroundPolylinePrimitive.js +11 -22
  405. package/Source/Scene/GroundPrimitive.js +13 -24
  406. package/Source/Scene/GroupMetadata.js +2 -2
  407. package/Source/Scene/I3SDataProvider.js +10 -15
  408. package/Source/Scene/I3SNode.js +1 -6
  409. package/Source/Scene/I3SSublayer.js +1 -2
  410. package/Source/Scene/I3SSymbology.js +2 -3
  411. package/Source/Scene/I3dmParser.js +1 -2
  412. package/Source/Scene/ITwinData.js +11 -6
  413. package/Source/Scene/ImageBasedLighting.js +2 -2
  414. package/Source/Scene/ImageryLayer.js +42 -71
  415. package/Source/Scene/ImageryLayerCollection.js +2 -3
  416. package/Source/Scene/Implicit3DTileContent.js +3 -4
  417. package/Source/Scene/ImplicitAvailabilityBitstream.js +2 -5
  418. package/Source/Scene/ImplicitMetadataView.js +2 -2
  419. package/Source/Scene/ImplicitSubtree.js +10 -15
  420. package/Source/Scene/ImplicitSubtreeCache.js +3 -3
  421. package/Source/Scene/ImplicitSubtreeMetadata.js +2 -2
  422. package/Source/Scene/InstanceAttributeSemantic.js +1 -1
  423. package/Source/Scene/IonImageryProvider.js +3 -3
  424. package/Source/Scene/KeyframeNode.js +16 -2
  425. package/Source/Scene/Label.js +19 -36
  426. package/Source/Scene/LabelCollection.js +218 -196
  427. package/Source/Scene/MapboxImageryProvider.js +4 -4
  428. package/Source/Scene/MapboxStyleImageryProvider.js +5 -5
  429. package/Source/Scene/Material.js +14 -20
  430. package/Source/Scene/MaterialAppearance.js +12 -18
  431. package/Source/Scene/Megatexture.js +145 -82
  432. package/Source/Scene/MetadataClass.js +4 -4
  433. package/Source/Scene/MetadataClassProperty.js +11 -14
  434. package/Source/Scene/MetadataEnum.js +4 -7
  435. package/Source/Scene/MetadataEnumValue.js +2 -2
  436. package/Source/Scene/MetadataSchema.js +4 -4
  437. package/Source/Scene/MetadataSchemaLoader.js +2 -2
  438. package/Source/Scene/MetadataTable.js +2 -2
  439. package/Source/Scene/MetadataTableProperty.js +17 -31
  440. package/Source/Scene/Model/AlphaPipelineStage.js +1 -2
  441. package/Source/Scene/Model/B3dmLoader.js +15 -26
  442. package/Source/Scene/Model/BatchTexturePipelineStage.js +1 -2
  443. package/Source/Scene/Model/ClassificationModelDrawCommand.js +2 -2
  444. package/Source/Scene/Model/CustomShader.js +10 -14
  445. package/Source/Scene/Model/Extensions/Gpm/GltfMeshPrimitiveGpmLoader.js +3 -3
  446. package/Source/Scene/Model/FeatureIdPipelineStage.js +1 -5
  447. package/Source/Scene/Model/GeoJsonLoader.js +5 -8
  448. package/Source/Scene/Model/I3dmLoader.js +13 -21
  449. package/Source/Scene/Model/MaterialPipelineStage.js +1 -2
  450. package/Source/Scene/Model/Model.js +41 -63
  451. package/Source/Scene/Model/ModelAnimation.js +5 -6
  452. package/Source/Scene/Model/ModelAnimationChannel.js +2 -2
  453. package/Source/Scene/Model/ModelAnimationCollection.js +4 -4
  454. package/Source/Scene/Model/ModelArticulation.js +2 -2
  455. package/Source/Scene/Model/ModelArticulationStage.js +2 -2
  456. package/Source/Scene/Model/ModelDrawCommand.js +3 -3
  457. package/Source/Scene/Model/ModelFeatureTable.js +3 -9
  458. package/Source/Scene/Model/ModelLightingOptions.js +3 -3
  459. package/Source/Scene/Model/ModelNode.js +1 -1
  460. package/Source/Scene/Model/ModelRuntimeNode.js +2 -2
  461. package/Source/Scene/Model/ModelRuntimePrimitive.js +2 -2
  462. package/Source/Scene/Model/ModelSceneGraph.js +2 -2
  463. package/Source/Scene/Model/ModelSkin.js +2 -2
  464. package/Source/Scene/Model/ModelUtility.js +5 -1
  465. package/Source/Scene/Model/PickingPipelineStage.js +1 -2
  466. package/Source/Scene/Model/PntsLoader.js +6 -6
  467. package/Source/Scene/Model/PointCloudStylingPipelineStage.js +1 -5
  468. package/Source/Scene/Model/PrimitiveOutlineGenerator.js +2 -2
  469. package/Source/Scene/Model/SelectedFeatureIdPipelineStage.js +2 -3
  470. package/Source/Scene/Model/TextureUniform.js +5 -8
  471. package/Source/Scene/Model/VaryingType.js +2 -2
  472. package/Source/Scene/Model/pickModel.js +4 -5
  473. package/Source/Scene/Moon.js +5 -5
  474. package/Source/Scene/OpenStreetMapImageryProvider.js +7 -7
  475. package/Source/Scene/OrderedGroundPrimitiveCollection.js +1 -2
  476. package/Source/Scene/Particle.js +11 -17
  477. package/Source/Scene/ParticleBurst.js +5 -5
  478. package/Source/Scene/ParticleSystem.js +24 -54
  479. package/Source/Scene/PerInstanceColorAppearance.js +8 -8
  480. package/Source/Scene/PerformanceDisplay.js +3 -3
  481. package/Source/Scene/PickFramebuffer.js +4 -5
  482. package/Source/Scene/Picking.js +3 -4
  483. package/Source/Scene/PntsParser.js +1 -2
  484. package/Source/Scene/PointCloud.js +6 -12
  485. package/Source/Scene/PointCloudShading.js +9 -18
  486. package/Source/Scene/PointPrimitive.js +11 -21
  487. package/Source/Scene/PointPrimitiveCollection.js +6 -14
  488. package/Source/Scene/Polyline.js +5 -5
  489. package/Source/Scene/PolylineCollection.js +5 -10
  490. package/Source/Scene/PolylineColorAppearance.js +7 -11
  491. package/Source/Scene/PolylineMaterialAppearance.js +7 -11
  492. package/Source/Scene/PostProcessStage.js +2 -2
  493. package/Source/Scene/PostProcessStageComposite.js +3 -6
  494. package/Source/Scene/Primitive.js +21 -42
  495. package/Source/Scene/PrimitiveCollection.js +4 -4
  496. package/Source/Scene/PrimitivePipeline.js +1 -2
  497. package/Source/Scene/PropertyAttribute.js +2 -2
  498. package/Source/Scene/PropertyAttributeProperty.js +4 -4
  499. package/Source/Scene/PropertyTable.js +2 -2
  500. package/Source/Scene/PropertyTexture.js +2 -2
  501. package/Source/Scene/PropertyTextureProperty.js +4 -4
  502. package/Source/Scene/QuadtreePrimitive.js +84 -66
  503. package/Source/Scene/QuadtreeTile.js +170 -0
  504. package/Source/Scene/ResourceCache.js +11 -11
  505. package/Source/Scene/ResourceCacheKey.js +11 -11
  506. package/Source/Scene/Scene.js +66 -40
  507. package/Source/Scene/ScreenSpaceCameraController.js +10 -20
  508. package/Source/Scene/ShadowMap.js +15 -15
  509. package/Source/Scene/ShadowVolumeAppearance.js +1 -2
  510. package/Source/Scene/SingleTileImageryProvider.js +4 -4
  511. package/Source/Scene/SkyAtmosphere.js +1 -2
  512. package/Source/Scene/SkyBox.js +1 -2
  513. package/Source/Scene/SpatialNode.js +4 -11
  514. package/Source/Scene/SphereEmitter.js +2 -3
  515. package/Source/Scene/StructuralMetadata.js +2 -2
  516. package/Source/Scene/SunLight.js +4 -4
  517. package/Source/Scene/SupportedImageFormats.js +4 -4
  518. package/Source/Scene/TileBoundingRegion.js +4 -5
  519. package/Source/Scene/TileBoundingS2Cell.js +3 -4
  520. package/Source/Scene/TileCoordinatesImageryProvider.js +5 -5
  521. package/Source/Scene/TileMapServiceImageryProvider.js +18 -27
  522. package/Source/Scene/TileMetadata.js +2 -2
  523. package/Source/Scene/TilesetMetadata.js +2 -2
  524. package/Source/Scene/TimeDynamicImagery.js +2 -2
  525. package/Source/Scene/TimeDynamicPointCloud.js +8 -10
  526. package/Source/Scene/TweenCollection.js +13 -16
  527. package/Source/Scene/UrlTemplateImageryProvider.js +11 -15
  528. package/Source/Scene/Vector3DTileClampedPolylines.js +1 -2
  529. package/Source/Scene/Vector3DTileContent.js +16 -20
  530. package/Source/Scene/Vector3DTileGeometry.js +1 -2
  531. package/Source/Scene/Vector3DTilePoints.js +2 -5
  532. package/Source/Scene/Vector3DTilePolygons.js +2 -3
  533. package/Source/Scene/Vector3DTilePolylines.js +1 -2
  534. package/Source/Scene/Vector3DTilePrimitive.js +9 -13
  535. package/Source/Scene/VoxelBoxShape.js +14 -8
  536. package/Source/Scene/VoxelCell.js +6 -5
  537. package/Source/Scene/VoxelContent.js +171 -107
  538. package/Source/Scene/VoxelCylinderShape.js +69 -69
  539. package/Source/Scene/VoxelEllipsoidShape.js +17 -8
  540. package/Source/Scene/VoxelMetadataOrder.js +24 -0
  541. package/Source/Scene/VoxelPrimitive.js +134 -79
  542. package/Source/Scene/VoxelProvider.js +22 -29
  543. package/Source/Scene/VoxelRenderResources.js +26 -7
  544. package/Source/Scene/VoxelShape.js +10 -3
  545. package/Source/Scene/VoxelTraversal.js +260 -180
  546. package/Source/Scene/WebMapServiceImageryProvider.js +17 -24
  547. package/Source/Scene/WebMapTileServiceImageryProvider.js +7 -10
  548. package/Source/Scene/createElevationBandMaterial.js +4 -4
  549. package/Source/Scene/createGooglePhotorealistic3DTileset.js +8 -16
  550. package/Source/Scene/createOsmBuildingsAsync.js +3 -6
  551. package/Source/Scene/createTangentSpaceDebugPrimitive.js +4 -6
  552. package/Source/Scene/createWorldImageryAsync.js +3 -3
  553. package/Source/Scene/findContentMetadata.js +2 -5
  554. package/Source/Scene/findTileMetadata.js +2 -5
  555. package/Source/Scene/parseBatchTable.js +1 -5
  556. package/Source/Scene/parseFeatureMetadataLegacy.js +2 -2
  557. package/Source/Scene/parseStructuralMetadata.js +2 -2
  558. package/Source/Scene/processVoxelProperties.js +3 -0
  559. package/Source/Shaders/GlobeFS.glsl +10 -1
  560. package/Source/Shaders/GlobeFS.js +10 -1
  561. package/Source/Shaders/Voxels/Megatexture.glsl +4 -16
  562. package/Source/Shaders/Voxels/Megatexture.js +4 -16
  563. package/Source/Shaders/Voxels/Octree.glsl +44 -7
  564. package/Source/Shaders/Voxels/Octree.js +44 -7
  565. package/Source/Shaders/Voxels/VoxelFS.glsl +9 -15
  566. package/Source/Shaders/Voxels/VoxelFS.js +9 -15
  567. package/Source/Shaders/Voxels/convertUvToCylinder.glsl +15 -15
  568. package/Source/Shaders/Voxels/convertUvToCylinder.js +15 -15
  569. package/Source/Widget/CesiumWidget.js +17 -25
  570. package/Source/Workers/createGeometry.js +1 -2
  571. package/Source/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +1 -2
  572. package/Source/Workers/decodeI3S.js +1 -5
  573. package/Source/Workers/transcodeKTX2.js +1 -2
  574. package/index.d.ts +231 -92
  575. package/index.js +315 -310
  576. package/package.json +3 -3
  577. package/Build/Workers/chunk-TVL3F7IU.js +0 -39
  578. package/Source/Scene/TextureAtlas.js +0 -558
@@ -1,5 +1,5 @@
1
1
  import Check from "../Core/Check.js";
2
- import defaultValue from "../Core/defaultValue.js";
2
+ import Frozen from "../Core/Frozen.js";
3
3
  import defined from "../Core/defined.js";
4
4
 
5
5
  /**
@@ -20,7 +20,7 @@ import defined from "../Core/defined.js";
20
20
  * @experimental This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.
21
21
  */
22
22
  function PropertyAttributeProperty(options) {
23
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
23
+ options = options ?? Frozen.EMPTY_OBJECT;
24
24
  const property = options.property;
25
25
  const classProperty = options.classProperty;
26
26
 
@@ -45,8 +45,8 @@ function PropertyAttributeProperty(options) {
45
45
  // the class property. The class property handles setting the default of
46
46
  // identity: (offset 0, scale 1) with the same scalar/vector/matrix types.
47
47
  // array types are disallowed by the spec.
48
- offset = defaultValue(offset, classProperty.offset);
49
- scale = defaultValue(scale, classProperty.scale);
48
+ offset = offset ?? classProperty.offset;
49
+ scale = scale ?? classProperty.scale;
50
50
 
51
51
  // offset and scale are applied on the GPU, so unpack the values
52
52
  // as math types we can use in uniform callbacks.
@@ -1,5 +1,5 @@
1
1
  import Check from "../Core/Check.js";
2
- import defaultValue from "../Core/defaultValue.js";
2
+ import Frozen from "../Core/Frozen.js";
3
3
  import DeveloperError from "../Core/DeveloperError.js";
4
4
  import defined from "../Core/defined.js";
5
5
  import JsonMetadataTable from "./JsonMetadataTable.js";
@@ -38,7 +38,7 @@ import JsonMetadataTable from "./JsonMetadataTable.js";
38
38
  * @experimental This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.
39
39
  */
40
40
  function PropertyTable(options) {
41
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
41
+ options = options ?? Frozen.EMPTY_OBJECT;
42
42
 
43
43
  //>>includeStart('debug', pragmas.debug);
44
44
  Check.typeOf.number("options.count", options.count);
@@ -1,5 +1,5 @@
1
1
  import Check from "../Core/Check.js";
2
- import defaultValue from "../Core/defaultValue.js";
2
+ import Frozen from "../Core/Frozen.js";
3
3
  import defined from "../Core/defined.js";
4
4
  import PropertyTextureProperty from "./PropertyTextureProperty.js";
5
5
 
@@ -24,7 +24,7 @@ import PropertyTextureProperty from "./PropertyTextureProperty.js";
24
24
  * @experimental This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.
25
25
  */
26
26
  function PropertyTexture(options) {
27
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
27
+ options = options ?? Frozen.EMPTY_OBJECT;
28
28
  const propertyTexture = options.propertyTexture;
29
29
  const classDefinition = options.class;
30
30
  const textures = options.textures;
@@ -1,5 +1,5 @@
1
1
  import Check from "../Core/Check.js";
2
- import defaultValue from "../Core/defaultValue.js";
2
+ import Frozen from "../Core/Frozen.js";
3
3
  import defined from "../Core/defined.js";
4
4
  import GltfLoaderUtil from "./GltfLoaderUtil.js";
5
5
  import MetadataType from "./MetadataType.js";
@@ -26,7 +26,7 @@ import oneTimeWarning from "../Core/oneTimeWarning.js";
26
26
  * @experimental This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.
27
27
  */
28
28
  function PropertyTextureProperty(options) {
29
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
29
+ options = options ?? Frozen.EMPTY_OBJECT;
30
30
  const property = options.property;
31
31
  const classProperty = options.classProperty;
32
32
  const textures = options.textures;
@@ -60,8 +60,8 @@ function PropertyTextureProperty(options) {
60
60
  // the class property. The class property handles setting the default of
61
61
  // identity: (offset 0, scale 1) with the same scalar/vector/matrix types.
62
62
  // array types are disallowed by the spec.
63
- offset = defaultValue(offset, classProperty.offset);
64
- scale = defaultValue(scale, classProperty.scale);
63
+ offset = offset ?? classProperty.offset;
64
+ scale = scale ?? classProperty.scale;
65
65
 
66
66
  // offset and scale are applied on the GPU, so unpack the values
67
67
  // as math types we can use in uniform callbacks.
@@ -1,6 +1,5 @@
1
1
  import Cartesian3 from "../Core/Cartesian3.js";
2
2
  import Cartographic from "../Core/Cartographic.js";
3
- import defaultValue from "../Core/defaultValue.js";
4
3
  import defined from "../Core/defined.js";
5
4
  import DeveloperError from "../Core/DeveloperError.js";
6
5
  import Event from "../Core/Event.js";
@@ -108,10 +107,7 @@ function QuadtreePrimitive(options) {
108
107
  * @type {number}
109
108
  * @default 2
110
109
  */
111
- this.maximumScreenSpaceError = defaultValue(
112
- options.maximumScreenSpaceError,
113
- 2,
114
- );
110
+ this.maximumScreenSpaceError = options.maximumScreenSpaceError ?? 2;
115
111
 
116
112
  /**
117
113
  * Gets or sets the maximum number of tiles that will be retained in the tile cache.
@@ -121,7 +117,7 @@ function QuadtreePrimitive(options) {
121
117
  * @type {number}
122
118
  * @default 100
123
119
  */
124
- this.tileCacheSize = defaultValue(options.tileCacheSize, 100);
120
+ this.tileCacheSize = options.tileCacheSize ?? 100;
125
121
 
126
122
  /**
127
123
  * Gets or sets the number of loading descendant tiles that is considered "too many".
@@ -1418,6 +1414,8 @@ function updateHeights(primitive, frameState) {
1418
1414
  ) {
1419
1415
  tryNextFrame.push(tile);
1420
1416
  }
1417
+ // Ensure stale position cache is cleared
1418
+ tile.clearPositionCache();
1421
1419
  tilesToUpdateHeights.shift();
1422
1420
  primitive._lastTileIndex = 0;
1423
1421
  continue;
@@ -1435,77 +1433,97 @@ function updateHeights(primitive, frameState) {
1435
1433
  defined(terrainData) && terrainData.wasCreatedByUpsampling();
1436
1434
 
1437
1435
  if (tile.level > data.level && !upsampledGeometryFromParent) {
1438
- if (!defined(data.positionOnEllipsoidSurface)) {
1439
- // cartesian has to be on the ellipsoid surface for `ellipsoid.geodeticSurfaceNormal`
1440
- data.positionOnEllipsoidSurface = Cartesian3.fromRadians(
1441
- data.positionCartographic.longitude,
1442
- data.positionCartographic.latitude,
1443
- 0.0,
1444
- ellipsoid,
1445
- );
1446
- }
1447
-
1448
- if (mode === SceneMode.SCENE3D) {
1449
- const surfaceNormal = ellipsoid.geodeticSurfaceNormal(
1450
- data.positionOnEllipsoidSurface,
1451
- scratchRay.direction,
1452
- );
1436
+ let position;
1437
+ // find cached entry
1438
+ const cachedData = tile.getPositionCacheEntry(
1439
+ data.positionCartographic,
1440
+ primitive.maximumScreenSpaceError,
1441
+ );
1442
+ if (defined(cachedData)) {
1443
+ // cache hit
1444
+ position = cachedData;
1445
+ } else {
1446
+ if (!defined(data.positionOnEllipsoidSurface)) {
1447
+ // cartesian has to be on the ellipsoid surface for `ellipsoid.geodeticSurfaceNormal`
1448
+ data.positionOnEllipsoidSurface = Cartesian3.fromRadians(
1449
+ data.positionCartographic.longitude,
1450
+ data.positionCartographic.latitude,
1451
+ 0.0,
1452
+ ellipsoid,
1453
+ );
1454
+ }
1453
1455
 
1454
- // compute origin point
1456
+ if (mode === SceneMode.SCENE3D) {
1457
+ const surfaceNormal = ellipsoid.geodeticSurfaceNormal(
1458
+ data.positionOnEllipsoidSurface,
1459
+ scratchRay.direction,
1460
+ );
1455
1461
 
1456
- // Try to find the intersection point between the surface normal and z-axis.
1457
- // minimum height (-11500.0) for the terrain set, need to get this information from the terrain provider
1458
- const rayOrigin = ellipsoid.getSurfaceNormalIntersectionWithZAxis(
1459
- data.positionOnEllipsoidSurface,
1460
- 11500.0,
1461
- scratchRay.origin,
1462
- );
1462
+ // compute origin point
1463
1463
 
1464
- // Theoretically, not with Earth datums, the intersection point can be outside the ellipsoid
1465
- if (!defined(rayOrigin)) {
1466
- // intersection point is outside the ellipsoid, try other value
1464
+ // Try to find the intersection point between the surface normal and z-axis.
1467
1465
  // minimum height (-11500.0) for the terrain set, need to get this information from the terrain provider
1468
- let minimumHeight = 0.0;
1469
- if (defined(tile.data.tileBoundingRegion)) {
1470
- minimumHeight = tile.data.tileBoundingRegion.minimumHeight;
1471
- }
1472
- const magnitude = Math.min(minimumHeight, -11500.0);
1473
-
1474
- // multiply by the *positive* value of the magnitude
1475
- const vectorToMinimumPoint = Cartesian3.multiplyByScalar(
1476
- surfaceNormal,
1477
- Math.abs(magnitude) + 1,
1478
- scratchPosition,
1479
- );
1480
- Cartesian3.subtract(
1466
+ const rayOrigin = ellipsoid.getSurfaceNormalIntersectionWithZAxis(
1481
1467
  data.positionOnEllipsoidSurface,
1482
- vectorToMinimumPoint,
1468
+ 11500.0,
1483
1469
  scratchRay.origin,
1484
1470
  );
1471
+
1472
+ // Theoretically, not with Earth datums, the intersection point can be outside the ellipsoid
1473
+ if (!defined(rayOrigin)) {
1474
+ // intersection point is outside the ellipsoid, try other value
1475
+ // minimum height (-11500.0) for the terrain set, need to get this information from the terrain provider
1476
+ let minimumHeight = 0.0;
1477
+ if (defined(tile.data.tileBoundingRegion)) {
1478
+ minimumHeight = tile.data.tileBoundingRegion.minimumHeight;
1479
+ }
1480
+ const magnitude = Math.min(minimumHeight, -11500.0);
1481
+
1482
+ // multiply by the *positive* value of the magnitude
1483
+ const vectorToMinimumPoint = Cartesian3.multiplyByScalar(
1484
+ surfaceNormal,
1485
+ Math.abs(magnitude) + 1,
1486
+ scratchPosition,
1487
+ );
1488
+ Cartesian3.subtract(
1489
+ data.positionOnEllipsoidSurface,
1490
+ vectorToMinimumPoint,
1491
+ scratchRay.origin,
1492
+ );
1493
+ }
1494
+ } else {
1495
+ Cartographic.clone(data.positionCartographic, scratchCartographic);
1496
+
1497
+ // minimum height for the terrain set, need to get this information from the terrain provider
1498
+ scratchCartographic.height = -11500.0;
1499
+ projection.project(scratchCartographic, scratchPosition);
1500
+ Cartesian3.fromElements(
1501
+ scratchPosition.z,
1502
+ scratchPosition.x,
1503
+ scratchPosition.y,
1504
+ scratchPosition,
1505
+ );
1506
+ Cartesian3.clone(scratchPosition, scratchRay.origin);
1507
+ Cartesian3.clone(Cartesian3.UNIT_X, scratchRay.direction);
1485
1508
  }
1486
- } else {
1487
- Cartographic.clone(data.positionCartographic, scratchCartographic);
1488
-
1489
- // minimum height for the terrain set, need to get this information from the terrain provider
1490
- scratchCartographic.height = -11500.0;
1491
- projection.project(scratchCartographic, scratchPosition);
1492
- Cartesian3.fromElements(
1493
- scratchPosition.z,
1494
- scratchPosition.x,
1495
- scratchPosition.y,
1509
+
1510
+ position = tile.data.pick(
1511
+ scratchRay,
1512
+ mode,
1513
+ projection,
1514
+ false,
1496
1515
  scratchPosition,
1497
1516
  );
1498
- Cartesian3.clone(scratchPosition, scratchRay.origin);
1499
- Cartesian3.clone(Cartesian3.UNIT_X, scratchRay.direction);
1500
- }
1501
1517
 
1502
- const position = tile.data.pick(
1503
- scratchRay,
1504
- mode,
1505
- projection,
1506
- false,
1507
- scratchPosition,
1508
- );
1518
+ if (defined(position)) {
1519
+ // Store the computed position in the cache for future reuse
1520
+ tile.setPositionCacheEntry(
1521
+ data.positionCartographic,
1522
+ primitive.maximumScreenSpaceError,
1523
+ position,
1524
+ );
1525
+ }
1526
+ }
1509
1527
  if (defined(position)) {
1510
1528
  if (defined(data.callback)) {
1511
1529
  data.callback(position);
@@ -4,6 +4,45 @@ import Rectangle from "../Core/Rectangle.js";
4
4
  import QuadtreeTileLoadState from "./QuadtreeTileLoadState.js";
5
5
  import TileSelectionResult from "./TileSelectionResult.js";
6
6
 
7
+ /**
8
+ * A simple Least Recently Used (LRU) cache implementation.
9
+ */
10
+ class LRUCache {
11
+ constructor(maxSize) {
12
+ this.maxSize = maxSize;
13
+ this.cache = new Map();
14
+ }
15
+
16
+ get(key) {
17
+ if (!this.cache.has(key)) {
18
+ return undefined;
19
+ }
20
+ // Move accessed item to the end (most recently used)
21
+ const value = this.cache.get(key);
22
+ this.cache.delete(key);
23
+ this.cache.set(key, value);
24
+ return value;
25
+ }
26
+
27
+ set(key, value) {
28
+ if (this.cache.has(key)) {
29
+ this.cache.delete(key);
30
+ } else if (this.cache.size >= this.maxSize) {
31
+ // Remove the least recently used (first entry)
32
+ const firstKey = this.cache.keys().next().value;
33
+ this.cache.delete(firstKey);
34
+ }
35
+ this.cache.set(key, value);
36
+ }
37
+
38
+ clear() {
39
+ this.cache.clear();
40
+ }
41
+ }
42
+
43
+ // Maximum cache entries per tile
44
+ const MAX_CACHE_ENTRIES = 1000;
45
+
7
46
  /**
8
47
  * A single tile in a {@link QuadtreePrimitive}.
9
48
  *
@@ -74,6 +113,9 @@ function QuadtreeTile(options) {
74
113
  this._lastSelectionResultFrame = undefined;
75
114
  this._loadedCallbacks = {};
76
115
 
116
+ // Cache for storing computed position values per tile to avoid redundant calculations
117
+ this._positionCache = new LRUCache(MAX_CACHE_ENTRIES);
118
+
77
119
  /**
78
120
  * Gets or sets the current state of the tile in the tile load pipeline.
79
121
  * @type {QuadtreeTileLoadState}
@@ -143,6 +185,132 @@ QuadtreeTile.createLevelZeroTiles = function (tilingScheme) {
143
185
  return result;
144
186
  };
145
187
 
188
+ /**
189
+ * Creates a spatial hash key for the given longitude, latitude, and tile level.
190
+ * The precision is adjusted based on the tile level and extent to achieve finer precision at higher levels.
191
+ *
192
+ * This function calculates the spatial hash key by first determining the precision at the given tile for the current maximum screenspace error (MAX_ERROR_PX),
193
+ * and then rounding the longitude and latitude to that precision for consistency.
194
+ *
195
+ * The steps for computing the level precision are as follows:
196
+ *
197
+ * 1. Compute the resolution (meters per pixel) at the given level:
198
+ * level_resolution_m = (2 * PI * RADIUS) / (2^level * TILE_SIZE)
199
+ *
200
+ * 2. Compute the target precision in meters:
201
+ * level_precision_m = level_resolution_m * MAX_ERROR_PX
202
+ *
203
+ * 3. Compute the target precision to radians:
204
+ * level_precision_rad = level_precision_m / BODY_RADIUS
205
+ *
206
+ * This simplifies to:
207
+ * level_precision_rad = (2 * PI * MAX_ERROR_PX) / (2^level * TILE_SIZE)
208
+ * which can also be written as:
209
+ * level_precision_rad = (PI * MAX_ERROR_PX) / (2^(level-1) * TILE_SIZE)
210
+ *
211
+ * The computed level_precision_rad is then used to round the input longitude and latitude,
212
+ * ensuring that positions that fall within the same spatial bin produce the same hash key.
213
+ *
214
+ * The constants below are computed once since they are fixed for the given configuration.
215
+ *
216
+ * @param {number} longitude - The longitude in radians.
217
+ * @param {number} latitude - The latitude in radians.
218
+ * @param {Rectangle} rectangle - The quadtree tile extents.
219
+ * @returns {string} A string representing the spatial hash key.
220
+ */
221
+ const TILE_SIZE = 256;
222
+
223
+ function createSpatialHashKey(
224
+ longitude,
225
+ latitude,
226
+ rectangle,
227
+ maximumScreenSpaceError,
228
+ ) {
229
+ // Adjust precision based on quadtree level - higher levels get finer precision
230
+ const maxError = (rectangle.width / TILE_SIZE) * maximumScreenSpaceError;
231
+ // Round to the grid precision
232
+ const lonGrid = Math.floor(longitude / maxError) * maxError;
233
+ const latGrid = Math.floor(latitude / maxError) * maxError;
234
+ return `${lonGrid.toFixed(10)},${latGrid.toFixed(10)}`;
235
+ }
236
+
237
+ /**
238
+ * Generates a unique cache key for a given cartographic position.
239
+ * @memberof QuadtreeTile
240
+ *
241
+ * @param {Cartographic} cartographic The cartographic coordinates.
242
+ * @param {number} maximumScreenSpaceError The maximum screen-space error, in pixels, that is allowed.
243
+ * A higher maximum error will render fewer tiles and improve performance, while a lower
244
+ * value will improve visual quality.
245
+ * @returns {string} A string representing the spatial hash key.
246
+ */
247
+ QuadtreeTile.prototype._getCacheKey = function (
248
+ cartographic,
249
+ maximumScreenSpaceError,
250
+ ) {
251
+ return createSpatialHashKey(
252
+ cartographic.longitude,
253
+ cartographic.latitude,
254
+ this._rectangle,
255
+ maximumScreenSpaceError,
256
+ );
257
+ };
258
+
259
+ /**
260
+ * Retrieves a cached position for the specified cartographic position.
261
+ *
262
+ * @memberof QuadtreeTile
263
+ *
264
+ * @param {Cartographic} cartographic - The cartographic coordinates.
265
+ * @param {number} maximumScreenSpaceError The maximum screen-space error, in pixels, that is allowed.
266
+ * A higher maximum error will render fewer tiles and improve performance, while a lower
267
+ * value will improve visual quality.
268
+ * @returns {Object|undefined} The cached position data or undefined if not found.
269
+ */
270
+ QuadtreeTile.prototype.getPositionCacheEntry = function (
271
+ cartographic,
272
+ maximumScreenSpaceError,
273
+ ) {
274
+ return this._positionCache.get(
275
+ this._getCacheKey(cartographic, maximumScreenSpaceError),
276
+ );
277
+ };
278
+
279
+ /**
280
+ * Sets a position on the cache for this tile.
281
+ *
282
+ * @memberof QuadtreeTile
283
+ *
284
+ * @param {Cartographic} cartographic - The cartographic coordinates.
285
+ * @param {number} maximumScreenSpaceError The maximum screen-space error, in pixels, that is allowed.
286
+ * A higher maximum error will render fewer tiles and improve performance, while a lower
287
+ * value will improve visual quality.
288
+ * @param {Object} value - The object to be cached.
289
+ */
290
+ QuadtreeTile.prototype.setPositionCacheEntry = function (
291
+ cartographic,
292
+ maximumScreenSpaceError,
293
+ value,
294
+ ) {
295
+ this._positionCache.set(
296
+ this._getCacheKey(cartographic, maximumScreenSpaceError),
297
+ value,
298
+ );
299
+ };
300
+
301
+ /**
302
+ * Clears the position cache for this tile.
303
+ * This function removes all cached positions that were previously stored
304
+ * to optimize height computations.
305
+ *
306
+ * @memberof QuadtreeTile
307
+ */
308
+ QuadtreeTile.prototype.clearPositionCache = function () {
309
+ if (this._positionCache.size > 0) {
310
+ this._positionCache.clear();
311
+ }
312
+ };
313
+
146
314
  QuadtreeTile.prototype._updateCustomData = function (
147
315
  frameNumber,
148
316
  added,
@@ -513,6 +681,8 @@ QuadtreeTile.prototype.findTileToNorth = function (levelZeroTiles) {
513
681
  * @memberof QuadtreeTile
514
682
  */
515
683
  QuadtreeTile.prototype.freeResources = function () {
684
+ // Clears cached heights when the tile is freed
685
+ this.clearPositionCache();
516
686
  this.state = QuadtreeTileLoadState.START;
517
687
  this.renderable = false;
518
688
  this.upsampledFromParent = false;
@@ -1,5 +1,5 @@
1
1
  import Check from "../Core/Check.js";
2
- import defaultValue from "../Core/defaultValue.js";
2
+ import Frozen from "../Core/Frozen.js";
3
3
  import defined from "../Core/defined.js";
4
4
  import DeveloperError from "../Core/DeveloperError.js";
5
5
  import BufferLoader from "./BufferLoader.js";
@@ -145,7 +145,7 @@ ResourceCache.unload = function (resourceLoader) {
145
145
  * @private
146
146
  */
147
147
  ResourceCache.getSchemaLoader = function (options) {
148
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
148
+ options = options ?? Frozen.EMPTY_OBJECT;
149
149
  const { schema, resource } = options;
150
150
 
151
151
  //>>includeStart('debug', pragmas.debug);
@@ -187,7 +187,7 @@ ResourceCache.getSchemaLoader = function (options) {
187
187
  * @private
188
188
  */
189
189
  ResourceCache.getEmbeddedBufferLoader = function (options) {
190
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
190
+ options = options ?? Frozen.EMPTY_OBJECT;
191
191
  const { parentResource, bufferId, typedArray } = options;
192
192
 
193
193
  //>>includeStart('debug', pragmas.debug);
@@ -227,7 +227,7 @@ ResourceCache.getEmbeddedBufferLoader = function (options) {
227
227
  * @private
228
228
  */
229
229
  ResourceCache.getExternalBufferLoader = function (options) {
230
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
230
+ options = options ?? Frozen.EMPTY_OBJECT;
231
231
  const { resource } = options;
232
232
 
233
233
  //>>includeStart('debug', pragmas.debug);
@@ -264,7 +264,7 @@ ResourceCache.getExternalBufferLoader = function (options) {
264
264
  * @private
265
265
  */
266
266
  ResourceCache.getGltfJsonLoader = function (options) {
267
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
267
+ options = options ?? Frozen.EMPTY_OBJECT;
268
268
  const { gltfResource, baseResource, typedArray, gltfJson } = options;
269
269
 
270
270
  //>>includeStart('debug', pragmas.debug);
@@ -306,7 +306,7 @@ ResourceCache.getGltfJsonLoader = function (options) {
306
306
  * @private
307
307
  */
308
308
  ResourceCache.getBufferViewLoader = function (options) {
309
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
309
+ options = options ?? Frozen.EMPTY_OBJECT;
310
310
  const { gltf, bufferViewId, gltfResource, baseResource } = options;
311
311
 
312
312
  //>>includeStart('debug', pragmas.debug);
@@ -354,7 +354,7 @@ ResourceCache.getBufferViewLoader = function (options) {
354
354
  * @private
355
355
  */
356
356
  ResourceCache.getDracoLoader = function (options) {
357
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
357
+ options = options ?? Frozen.EMPTY_OBJECT;
358
358
  const { gltf, primitive, draco, gltfResource, baseResource } = options;
359
359
 
360
360
  //>>includeStart('debug', pragmas.debug);
@@ -415,7 +415,7 @@ ResourceCache.getDracoLoader = function (options) {
415
415
  * @private
416
416
  */
417
417
  ResourceCache.getVertexBufferLoader = function (options) {
418
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
418
+ options = options ?? Frozen.EMPTY_OBJECT;
419
419
  const {
420
420
  gltf,
421
421
  gltfResource,
@@ -544,7 +544,7 @@ function hasDracoCompression(draco, semantic) {
544
544
  * @private
545
545
  */
546
546
  ResourceCache.getIndexBufferLoader = function (options) {
547
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
547
+ options = options ?? Frozen.EMPTY_OBJECT;
548
548
  const {
549
549
  gltf,
550
550
  accessorId,
@@ -617,7 +617,7 @@ ResourceCache.getIndexBufferLoader = function (options) {
617
617
  * @private
618
618
  */
619
619
  ResourceCache.getImageLoader = function (options) {
620
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
620
+ options = options ?? Frozen.EMPTY_OBJECT;
621
621
  const { gltf, imageId, gltfResource, baseResource } = options;
622
622
 
623
623
  //>>includeStart('debug', pragmas.debug);
@@ -667,7 +667,7 @@ ResourceCache.getImageLoader = function (options) {
667
667
  * @private
668
668
  */
669
669
  ResourceCache.getTextureLoader = function (options) {
670
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
670
+ options = options ?? Frozen.EMPTY_OBJECT;
671
671
  const {
672
672
  gltf,
673
673
  textureInfo,
@@ -1,5 +1,5 @@
1
1
  import Check from "../Core/Check.js";
2
- import defaultValue from "../Core/defaultValue.js";
2
+ import Frozen from "../Core/Frozen.js";
3
3
  import defined from "../Core/defined.js";
4
4
  import DeveloperError from "../Core/DeveloperError.js";
5
5
  import getAbsoluteUri from "../Core/getAbsoluteUri.js";
@@ -24,7 +24,7 @@ function getBufferViewCacheKey(bufferView) {
24
24
 
25
25
  if (hasExtension(bufferView, "EXT_meshopt_compression")) {
26
26
  const meshopt = bufferView.extensions.EXT_meshopt_compression;
27
- byteOffset = defaultValue(meshopt.byteOffset, 0);
27
+ byteOffset = meshopt.byteOffset ?? 0;
28
28
  byteLength = meshopt.byteLength;
29
29
  }
30
30
 
@@ -148,7 +148,7 @@ ResourceCacheKey.getSchemaCacheKey = function (options) {
148
148
  * @private
149
149
  */
150
150
  ResourceCacheKey.getExternalBufferCacheKey = function (options) {
151
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
151
+ options = options ?? Frozen.EMPTY_OBJECT;
152
152
  const { resource } = options;
153
153
 
154
154
  //>>includeStart('debug', pragmas.debug);
@@ -169,7 +169,7 @@ ResourceCacheKey.getExternalBufferCacheKey = function (options) {
169
169
  * @private
170
170
  */
171
171
  ResourceCacheKey.getEmbeddedBufferCacheKey = function (options) {
172
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
172
+ options = options ?? Frozen.EMPTY_OBJECT;
173
173
  const { parentResource, bufferId } = options;
174
174
 
175
175
  //>>includeStart('debug', pragmas.debug);
@@ -193,7 +193,7 @@ ResourceCacheKey.getEmbeddedBufferCacheKey = function (options) {
193
193
  * @private
194
194
  */
195
195
  ResourceCacheKey.getGltfCacheKey = function (options) {
196
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
196
+ options = options ?? Frozen.EMPTY_OBJECT;
197
197
  const { gltfResource } = options;
198
198
 
199
199
  //>>includeStart('debug', pragmas.debug);
@@ -216,7 +216,7 @@ ResourceCacheKey.getGltfCacheKey = function (options) {
216
216
  * @private
217
217
  */
218
218
  ResourceCacheKey.getBufferViewCacheKey = function (options) {
219
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
219
+ options = options ?? Frozen.EMPTY_OBJECT;
220
220
  const { gltf, bufferViewId, gltfResource, baseResource } = options;
221
221
 
222
222
  //>>includeStart('debug', pragmas.debug);
@@ -259,7 +259,7 @@ ResourceCacheKey.getBufferViewCacheKey = function (options) {
259
259
  * @private
260
260
  */
261
261
  ResourceCacheKey.getDracoCacheKey = function (options) {
262
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
262
+ options = options ?? Frozen.EMPTY_OBJECT;
263
263
  const { gltf, draco, gltfResource, baseResource } = options;
264
264
 
265
265
  //>>includeStart('debug', pragmas.debug);
@@ -293,7 +293,7 @@ ResourceCacheKey.getDracoCacheKey = function (options) {
293
293
  * @private
294
294
  */
295
295
  ResourceCacheKey.getVertexBufferCacheKey = function (options) {
296
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
296
+ options = options ?? Frozen.EMPTY_OBJECT;
297
297
  const {
298
298
  gltf,
299
299
  gltfResource,
@@ -406,7 +406,7 @@ function hasDracoCompression(draco, semantic) {
406
406
  * @private
407
407
  */
408
408
  ResourceCacheKey.getIndexBufferCacheKey = function (options) {
409
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
409
+ options = options ?? Frozen.EMPTY_OBJECT;
410
410
  const {
411
411
  gltf,
412
412
  accessorId,
@@ -483,7 +483,7 @@ ResourceCacheKey.getIndexBufferCacheKey = function (options) {
483
483
  * @private
484
484
  */
485
485
  ResourceCacheKey.getImageCacheKey = function (options) {
486
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
486
+ options = options ?? Frozen.EMPTY_OBJECT;
487
487
  const { gltf, imageId, gltfResource, baseResource } = options;
488
488
 
489
489
  //>>includeStart('debug', pragmas.debug);
@@ -518,7 +518,7 @@ ResourceCacheKey.getImageCacheKey = function (options) {
518
518
  * @private
519
519
  */
520
520
  ResourceCacheKey.getTextureCacheKey = function (options) {
521
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
521
+ options = options ?? Frozen.EMPTY_OBJECT;
522
522
  const {
523
523
  gltf,
524
524
  textureInfo,