@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 Credit from "../Core/Credit.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 Resource from "../Core/Resource.js";
@@ -47,7 +47,7 @@ const defaultCredit = new Credit(
47
47
  * @see {@link https://docs.mapbox.com/api/accounts/tokens/}
48
48
  */
49
49
  function MapboxImageryProvider(options) {
50
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
50
+ options = options ?? Frozen.EMPTY_OBJECT;
51
51
  const mapId = options.mapId;
52
52
  //>>includeStart('debug', pragmas.debug);
53
53
  if (!defined(mapId)) {
@@ -74,13 +74,13 @@ function MapboxImageryProvider(options) {
74
74
  this._defaultMagnificationFilter = undefined;
75
75
 
76
76
  const resource = Resource.createIfNeeded(
77
- defaultValue(options.url, "https://{s}.tiles.mapbox.com/v4/"),
77
+ options.url ?? "https://{s}.tiles.mapbox.com/v4/",
78
78
  );
79
79
 
80
80
  this._mapId = mapId;
81
81
  this._accessToken = accessToken;
82
82
 
83
- let format = defaultValue(options.format, "png");
83
+ let format = options.format ?? "png";
84
84
  if (!/\./.test(format)) {
85
85
  format = `.${format}`;
86
86
  }
@@ -1,5 +1,5 @@
1
1
  import Credit from "../Core/Credit.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 Resource from "../Core/Resource.js";
@@ -49,7 +49,7 @@ const defaultCredit = new Credit(
49
49
  * @see {@link https://docs.mapbox.com/api/#access-tokens-and-token-scopes}
50
50
  */
51
51
  function MapboxStyleImageryProvider(options) {
52
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
52
+ options = options ?? Frozen.EMPTY_OBJECT;
53
53
  const styleId = options.styleId;
54
54
  //>>includeStart('debug', pragmas.debug);
55
55
  if (!defined(styleId)) {
@@ -76,16 +76,16 @@ function MapboxStyleImageryProvider(options) {
76
76
  this._defaultMagnificationFilter = undefined;
77
77
 
78
78
  const resource = Resource.createIfNeeded(
79
- defaultValue(options.url, "https://api.mapbox.com/styles/v1/"),
79
+ options.url ?? "https://api.mapbox.com/styles/v1/",
80
80
  );
81
81
 
82
82
  this._styleId = styleId;
83
83
  this._accessToken = accessToken;
84
84
 
85
- const tilesize = defaultValue(options.tilesize, 512);
85
+ const tilesize = options.tilesize ?? 512;
86
86
  this._tilesize = tilesize;
87
87
 
88
- const username = defaultValue(options.username, "mapbox");
88
+ const username = options.username ?? "mapbox";
89
89
  this._username = username;
90
90
 
91
91
  const scaleFactor = defined(options.scaleFactor) ? "@2x" : "";
@@ -3,7 +3,7 @@ import clone from "../Core/clone.js";
3
3
  import Color from "../Core/Color.js";
4
4
  import combine from "../Core/combine.js";
5
5
  import createGuid from "../Core/createGuid.js";
6
- import defaultValue from "../Core/defaultValue.js";
6
+ import Frozen from "../Core/Frozen.js";
7
7
  import defined from "../Core/defined.js";
8
8
  import destroyObject from "../Core/destroyObject.js";
9
9
  import DeveloperError from "../Core/DeveloperError.js";
@@ -308,14 +308,10 @@ function Material(options) {
308
308
  */
309
309
  this.translucent = undefined;
310
310
 
311
- this._minificationFilter = defaultValue(
312
- options.minificationFilter,
313
- TextureMinificationFilter.LINEAR,
314
- );
315
- this._magnificationFilter = defaultValue(
316
- options.magnificationFilter,
317
- TextureMagnificationFilter.LINEAR,
318
- );
311
+ this._minificationFilter =
312
+ options.minificationFilter ?? TextureMinificationFilter.LINEAR;
313
+ this._magnificationFilter =
314
+ options.magnificationFilter ?? TextureMagnificationFilter.LINEAR;
319
315
 
320
316
  this._strict = undefined;
321
317
  this._template = undefined;
@@ -586,17 +582,15 @@ Material.prototype.destroy = function () {
586
582
  };
587
583
 
588
584
  function initializeMaterial(options, result) {
589
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
590
- result._strict = defaultValue(options.strict, false);
591
- result._count = defaultValue(options.count, 0);
592
- result._template = clone(
593
- defaultValue(options.fabric, defaultValue.EMPTY_OBJECT),
594
- );
585
+ options = options ?? Frozen.EMPTY_OBJECT;
586
+ result._strict = options.strict ?? false;
587
+ result._count = options.count ?? 0;
588
+ result._template = clone(options.fabric ?? Frozen.EMPTY_OBJECT);
595
589
  result._template.uniforms = clone(
596
- defaultValue(result._template.uniforms, defaultValue.EMPTY_OBJECT),
590
+ result._template.uniforms ?? Frozen.EMPTY_OBJECT,
597
591
  );
598
592
  result._template.materials = clone(
599
- defaultValue(result._template.materials, defaultValue.EMPTY_OBJECT),
593
+ result._template.materials ?? Frozen.EMPTY_OBJECT,
600
594
  );
601
595
 
602
596
  result.type = defined(result._template.type)
@@ -633,8 +627,8 @@ function initializeMaterial(options, result) {
633
627
 
634
628
  const defaultTranslucent =
635
629
  result._translucentFunctions.length === 0 ? true : undefined;
636
- translucent = defaultValue(translucent, defaultTranslucent);
637
- translucent = defaultValue(options.translucent, translucent);
630
+ translucent = translucent ?? defaultTranslucent;
631
+ translucent = options.translucent ?? translucent;
638
632
 
639
633
  if (defined(translucent)) {
640
634
  if (typeof translucent === "function") {
@@ -1185,7 +1179,7 @@ function createSubMaterials(material) {
1185
1179
  // If excludePeriod is true, do not accept tokens that are preceded by periods.
1186
1180
  // http://stackoverflow.com/questions/641407/javascript-negative-lookbehind-equivalent
1187
1181
  function replaceToken(material, token, newToken, excludePeriod) {
1188
- excludePeriod = defaultValue(excludePeriod, true);
1182
+ excludePeriod = excludePeriod ?? true;
1189
1183
  let count = 0;
1190
1184
  const suffixChars = "([\\w])?";
1191
1185
  const prefixChars = `([\\w${excludePeriod ? "." : ""}])?`;
@@ -1,4 +1,4 @@
1
- import defaultValue from "../Core/defaultValue.js";
1
+ import Frozen from "../Core/Frozen.js";
2
2
  import defined from "../Core/defined.js";
3
3
  import VertexFormat from "../Core/VertexFormat.js";
4
4
  import AllMaterialAppearanceFS from "../Shaders/Appearances/AllMaterialAppearanceFS.js";
@@ -47,14 +47,12 @@ import Material from "./Material.js";
47
47
  * });
48
48
  */
49
49
  function MaterialAppearance(options) {
50
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
50
+ options = options ?? Frozen.EMPTY_OBJECT;
51
51
 
52
- const translucent = defaultValue(options.translucent, true);
53
- const closed = defaultValue(options.closed, false);
54
- const materialSupport = defaultValue(
55
- options.materialSupport,
56
- MaterialAppearance.MaterialSupport.TEXTURED,
57
- );
52
+ const translucent = options.translucent ?? true;
53
+ const closed = options.closed ?? false;
54
+ const materialSupport =
55
+ options.materialSupport ?? MaterialAppearance.MaterialSupport.TEXTURED;
58
56
 
59
57
  /**
60
58
  * The material used to determine the fragment color. Unlike other {@link MaterialAppearance}
@@ -79,14 +77,10 @@ function MaterialAppearance(options) {
79
77
  */
80
78
  this.translucent = translucent;
81
79
 
82
- this._vertexShaderSource = defaultValue(
83
- options.vertexShaderSource,
84
- materialSupport.vertexShaderSource,
85
- );
86
- this._fragmentShaderSource = defaultValue(
87
- options.fragmentShaderSource,
88
- materialSupport.fragmentShaderSource,
89
- );
80
+ this._vertexShaderSource =
81
+ options.vertexShaderSource ?? materialSupport.vertexShaderSource;
82
+ this._fragmentShaderSource =
83
+ options.fragmentShaderSource ?? materialSupport.fragmentShaderSource;
90
84
  this._renderState = Appearance.getDefaultRenderState(
91
85
  translucent,
92
86
  closed,
@@ -98,8 +92,8 @@ function MaterialAppearance(options) {
98
92
 
99
93
  this._materialSupport = materialSupport;
100
94
  this._vertexFormat = materialSupport.vertexFormat;
101
- this._flat = defaultValue(options.flat, false);
102
- this._faceForward = defaultValue(options.faceForward, !closed);
95
+ this._flat = options.flat ?? false;
96
+ this._faceForward = options.faceForward ?? !closed;
103
97
  }
104
98
 
105
99
  Object.defineProperties(MaterialAppearance.prototype, {
@@ -2,7 +2,6 @@ import Cartesian2 from "../Core/Cartesian2.js";
2
2
  import Cartesian3 from "../Core/Cartesian3.js";
3
3
  import ComponentDatatype from "../Core/ComponentDatatype.js";
4
4
  import ContextLimits from "../Renderer/ContextLimits.js";
5
- import defaultValue from "../Core/defaultValue.js";
6
5
  import defined from "../Core/defined.js";
7
6
  import destroyObject from "../Core/destroyObject.js";
8
7
  import DeveloperError from "../Core/DeveloperError.js";
@@ -21,11 +20,11 @@ import TextureWrap from "../Renderer/TextureWrap.js";
21
20
  * @alias Megatexture
22
21
  * @constructor
23
22
  *
24
- * @param {Context} context
25
- * @param {Cartesian3} dimensions
26
- * @param {number} channelCount
27
- * @param {MetadataComponentType} componentType
28
- * @param {number} [textureMemoryByteLength]
23
+ * @param {Context} context The context in which to create GPU resources.
24
+ * @param {Cartesian3} dimensions The number of voxels in each dimension of the tile.
25
+ * @param {number} channelCount The number of channels in the metadata.
26
+ * @param {MetadataComponentType} componentType The component type of the metadata.
27
+ * @param {number} [availableTextureMemoryBytes=134217728] An upper limit on the texture memory size in bytes.
29
28
  *
30
29
  * @private
31
30
  */
@@ -34,59 +33,35 @@ function Megatexture(
34
33
  dimensions,
35
34
  channelCount,
36
35
  componentType,
37
- textureMemoryByteLength,
36
+ availableTextureMemoryBytes,
38
37
  ) {
38
+ const maximumTextureMemoryByteLength = 512 * 1024 * 1024;
39
+ availableTextureMemoryBytes = Math.min(
40
+ availableTextureMemoryBytes ?? 128 * 1024 * 1024,
41
+ maximumTextureMemoryByteLength,
42
+ );
43
+
39
44
  // TODO there are a lot of texture packing rules, see https://github.com/CesiumGS/cesium/issues/9572
40
45
  // Unsigned short textures not allowed in webgl 1, so treat as float
41
46
  if (componentType === MetadataComponentType.UNSIGNED_SHORT) {
42
47
  componentType = MetadataComponentType.FLOAT32;
43
48
  }
44
49
 
45
- const supportsFloatingPointTexture = context.floatingPointTexture;
46
50
  if (
47
51
  componentType === MetadataComponentType.FLOAT32 &&
48
- !supportsFloatingPointTexture
52
+ !context.floatingPointTexture
49
53
  ) {
50
54
  throw new RuntimeError("Floating point texture not supported");
51
55
  }
52
56
 
53
- // TODO support more
54
- let pixelType;
55
- if (
56
- componentType === MetadataComponentType.FLOAT32 ||
57
- componentType === MetadataComponentType.FLOAT64
58
- ) {
59
- pixelType = PixelDatatype.FLOAT;
60
- } else if (componentType === MetadataComponentType.UINT8) {
61
- pixelType = PixelDatatype.UNSIGNED_BYTE;
62
- }
63
-
64
- let pixelFormat;
65
- if (channelCount === 1) {
66
- pixelFormat = context.webgl2 ? PixelFormat.RED : PixelFormat.LUMINANCE;
67
- } else if (channelCount === 2) {
68
- pixelFormat = context.webgl2 ? PixelFormat.RG : PixelFormat.LUMINANCE_ALPHA;
69
- } else if (channelCount === 3) {
70
- pixelFormat = PixelFormat.RGB;
71
- } else if (channelCount === 4) {
72
- pixelFormat = PixelFormat.RGBA;
73
- }
74
-
75
- const maximumTextureMemoryByteLength = 512 * 1024 * 1024;
76
- const defaultTextureMemoryByteLength = 128 * 1024 * 1024;
77
- textureMemoryByteLength = Math.min(
78
- defaultValue(textureMemoryByteLength, defaultTextureMemoryByteLength),
79
- maximumTextureMemoryByteLength,
80
- );
81
- const maximumTextureDimensionContext = ContextLimits.maximumTextureSize;
57
+ const pixelDataType = getPixelDataType(componentType);
58
+ const pixelFormat = getPixelFormat(channelCount, context.webgl2);
82
59
  const componentTypeByteLength =
83
60
  MetadataComponentType.getSizeInBytes(componentType);
84
- const texelCount = Math.floor(
85
- textureMemoryByteLength / (channelCount * componentTypeByteLength),
86
- );
87
- const textureDimension = Math.min(
88
- maximumTextureDimensionContext,
89
- CesiumMath.previousPowerOfTwo(Math.floor(Math.sqrt(texelCount))),
61
+ const textureDimension = getTextureDimension(
62
+ availableTextureMemoryBytes,
63
+ channelCount,
64
+ componentTypeByteLength,
90
65
  );
91
66
 
92
67
  const sliceCountPerRegionX = Math.ceil(Math.sqrt(dimensions.x));
@@ -116,6 +91,13 @@ function Megatexture(
116
91
  */
117
92
  this.componentType = componentType;
118
93
 
94
+ /**
95
+ * @type {number}
96
+ * @readonly
97
+ */
98
+ this.textureMemoryByteLength =
99
+ componentTypeByteLength * channelCount * textureDimension ** 2;
100
+
119
101
  /**
120
102
  * @type {Cartesian3}
121
103
  * @readonly
@@ -190,7 +172,7 @@ function Megatexture(
190
172
  this.texture = new Texture({
191
173
  context: context,
192
174
  pixelFormat: pixelFormat,
193
- pixelDatatype: pixelType,
175
+ pixelDatatype: pixelDataType,
194
176
  flipY: false,
195
177
  width: textureDimension,
196
178
  height: textureDimension,
@@ -249,6 +231,73 @@ function Megatexture(
249
231
  this.occupiedCount = 0;
250
232
  }
251
233
 
234
+ /**
235
+ * Get the pixel data type to use in a megatexture.
236
+ * TODO support more
237
+ *
238
+ * @param {MetadataComponentType} componentType The component type of the metadata.
239
+ * @returns {PixelDatatype} The pixel datatype to use for a megatexture.
240
+ *
241
+ * @private
242
+ */
243
+ function getPixelDataType(componentType) {
244
+ if (
245
+ componentType === MetadataComponentType.FLOAT32 ||
246
+ componentType === MetadataComponentType.FLOAT64
247
+ ) {
248
+ return PixelDatatype.FLOAT;
249
+ } else if (componentType === MetadataComponentType.UINT8) {
250
+ return PixelDatatype.UNSIGNED_BYTE;
251
+ }
252
+ }
253
+
254
+ /**
255
+ * Get the pixel format to use for a megatexture.
256
+ *
257
+ * @param {number} channelCount The number of channels in the metadata. Must be 1 to 4.
258
+ * @param {boolean} webgl2 true if the context is using webgl2
259
+ * @returns {PixelFormat} The pixel format to use for a megatexture.
260
+ *
261
+ * @private
262
+ */
263
+ function getPixelFormat(channelCount, webgl2) {
264
+ if (channelCount === 1) {
265
+ return webgl2 ? PixelFormat.RED : PixelFormat.LUMINANCE;
266
+ } else if (channelCount === 2) {
267
+ return webgl2 ? PixelFormat.RG : PixelFormat.LUMINANCE_ALPHA;
268
+ } else if (channelCount === 3) {
269
+ return PixelFormat.RGB;
270
+ } else if (channelCount === 4) {
271
+ return PixelFormat.RGBA;
272
+ }
273
+ }
274
+
275
+ /**
276
+ * Compute the largest size of a square texture that will fit in the available memory.
277
+ *
278
+ * @param {number} availableTextureMemoryBytes An upper limit on the texture memory size.
279
+ * @param {number} channelCount The number of metadata channels per texel.
280
+ * @param {number} componentByteLength The byte length of each component of the metadata.
281
+ * @returns {number} The dimension of the square texture to use for the megatexture.
282
+ *
283
+ * @private
284
+ */
285
+ function getTextureDimension(
286
+ availableTextureMemoryBytes,
287
+ channelCount,
288
+ componentByteLength,
289
+ ) {
290
+ // Compute how many texels will fit in the available memory
291
+ const texelCount = Math.floor(
292
+ availableTextureMemoryBytes / (channelCount * componentByteLength),
293
+ );
294
+ // Return the largest power of two texture size that will fit in memory
295
+ return Math.min(
296
+ ContextLimits.maximumTextureSize,
297
+ CesiumMath.previousPowerOfTwo(Math.floor(Math.sqrt(texelCount))),
298
+ );
299
+ }
300
+
252
301
  /**
253
302
  * @alias MegatextureNode
254
303
  * @constructor
@@ -275,8 +324,9 @@ function MegatextureNode(index) {
275
324
  }
276
325
 
277
326
  /**
278
- * @param {Array} data
279
- * @returns {number}
327
+ * Add an array of tile metadata to the megatexture.
328
+ * @param {Array} data The data to be added.
329
+ * @returns {number} The index of the tile's location in the megatexture.
280
330
  */
281
331
  Megatexture.prototype.add = function (data) {
282
332
  if (this.isFull()) {
@@ -339,10 +389,10 @@ Megatexture.prototype.isFull = function () {
339
389
  };
340
390
 
341
391
  /**
342
- * @param {number} tileCount
343
- * @param {Cartesian3} dimensions
344
- * @param {number} channelCount number of channels in the metadata. Must be 1 to 4.
345
- * @param {MetadataComponentType} componentType
392
+ * @param {number} tileCount The total number of tiles in the tileset.
393
+ * @param {Cartesian3} dimensions The number of voxels in each dimension of the tile.
394
+ * @param {number} channelCount The number of channels in the metadata.
395
+ * @param {MetadataComponentType} componentType The type of one channel of the metadata.
346
396
  * @returns {number}
347
397
  */
348
398
  Megatexture.getApproximateTextureMemoryByteLength = function (
@@ -390,55 +440,52 @@ Megatexture.getApproximateTextureMemoryByteLength = function (
390
440
  };
391
441
 
392
442
  /**
393
- * @param {number} index
394
- * @param {Float32Array|Uint16Array|Uint8Array} data
443
+ * Write an array of tile metadata to the megatexture.
444
+ * @param {number} index The index of the tile's location in the megatexture.
445
+ * @param {Float32Array|Uint16Array|Uint8Array} data The data to be written.
395
446
  */
396
447
  Megatexture.prototype.writeDataToTexture = function (index, data) {
397
448
  // Unsigned short textures not allowed in webgl 1, so treat as float
398
449
  const tileData =
399
450
  data.constructor === Uint16Array ? new Float32Array(data) : data;
400
451
 
401
- const voxelDimensionsPerTile = this.voxelCountPerTile;
402
- const sliceDimensionsPerRegion = this.sliceCountPerRegion;
403
- const voxelDimensionsPerRegion = this.voxelCountPerRegion;
404
- const channelCount = this.channelCount;
405
-
406
- const tileVoxelData = this.tileVoxelDataTemp;
407
- for (let z = 0; z < voxelDimensionsPerTile.z; z++) {
408
- const sliceVoxelOffsetX =
409
- (z % sliceDimensionsPerRegion.x) * voxelDimensionsPerTile.x;
452
+ const {
453
+ tileVoxelDataTemp,
454
+ voxelCountPerTile,
455
+ sliceCountPerRegion,
456
+ voxelCountPerRegion,
457
+ channelCount,
458
+ regionCountPerMegatexture,
459
+ } = this;
460
+
461
+ for (let z = 0; z < voxelCountPerTile.z; z++) {
462
+ const sliceVoxelOffsetX = (z % sliceCountPerRegion.x) * voxelCountPerTile.x;
410
463
  const sliceVoxelOffsetY =
411
- Math.floor(z / sliceDimensionsPerRegion.x) * voxelDimensionsPerTile.y;
412
- for (let y = 0; y < voxelDimensionsPerTile.y; y++) {
413
- for (let x = 0; x < voxelDimensionsPerTile.x; x++) {
414
- const readIndex =
415
- z * voxelDimensionsPerTile.y * voxelDimensionsPerTile.x +
416
- y * voxelDimensionsPerTile.x +
417
- x;
418
- const writeIndex =
419
- (sliceVoxelOffsetY + y) * voxelDimensionsPerRegion.x +
420
- (sliceVoxelOffsetX + x);
464
+ Math.floor(z / sliceCountPerRegion.x) * voxelCountPerTile.y;
465
+ for (let y = 0; y < voxelCountPerTile.y; y++) {
466
+ const readOffset = getReadOffset(voxelCountPerTile, y, z);
467
+ const writeOffset =
468
+ (sliceVoxelOffsetY + y) * voxelCountPerRegion.x + sliceVoxelOffsetX;
469
+ for (let x = 0; x < voxelCountPerTile.x; x++) {
470
+ const readIndex = readOffset + x;
471
+ const writeIndex = writeOffset + x;
421
472
  for (let c = 0; c < channelCount; c++) {
422
- tileVoxelData[writeIndex * channelCount + c] =
473
+ tileVoxelDataTemp[writeIndex * channelCount + c] =
423
474
  tileData[readIndex * channelCount + c];
424
475
  }
425
476
  }
426
477
  }
427
478
  }
428
479
 
429
- const regionDimensionsPerMegatexture = this.regionCountPerMegatexture;
430
- const voxelWidth = voxelDimensionsPerRegion.x;
431
- const voxelHeight = voxelDimensionsPerRegion.y;
432
480
  const voxelOffsetX =
433
- (index % regionDimensionsPerMegatexture.x) * voxelDimensionsPerRegion.x;
481
+ (index % regionCountPerMegatexture.x) * voxelCountPerRegion.x;
434
482
  const voxelOffsetY =
435
- Math.floor(index / regionDimensionsPerMegatexture.x) *
436
- voxelDimensionsPerRegion.y;
483
+ Math.floor(index / regionCountPerMegatexture.x) * voxelCountPerRegion.y;
437
484
 
438
485
  const source = {
439
- arrayBufferView: tileVoxelData,
440
- width: voxelWidth,
441
- height: voxelHeight,
486
+ arrayBufferView: tileVoxelDataTemp,
487
+ width: voxelCountPerRegion.x,
488
+ height: voxelCountPerRegion.y,
442
489
  };
443
490
 
444
491
  const copyOptions = {
@@ -450,6 +497,22 @@ Megatexture.prototype.writeDataToTexture = function (index, data) {
450
497
  this.texture.copyFrom(copyOptions);
451
498
  };
452
499
 
500
+ /**
501
+ * Get the offset into the data array for a given row of contiguous voxel data.
502
+ *
503
+ * @param {Cartesian3} dimensions The number of voxels in each dimension of the tile.
504
+ * @param {number} y The y index of the voxel row
505
+ * @param {number} z The z index of the voxel row
506
+ * @returns {number} The offset into the data array
507
+ * @private
508
+ */
509
+ function getReadOffset(dimensions, y, z) {
510
+ const voxelsPerInputSlice = dimensions.y * dimensions.x;
511
+ const sliceIndex = z;
512
+ const rowIndex = y;
513
+ return sliceIndex * voxelsPerInputSlice + rowIndex * dimensions.x;
514
+ }
515
+
453
516
  /**
454
517
  * Returns true if this object was destroyed; otherwise, false.
455
518
  * <br /><br />
@@ -1,6 +1,6 @@
1
1
  import Check from "../Core/Check.js";
2
2
  import clone from "../Core/clone.js";
3
- import defaultValue from "../Core/defaultValue.js";
3
+ import Frozen from "../Core/Frozen.js";
4
4
  import defined from "../Core/defined.js";
5
5
  import MetadataClassProperty from "./MetadataClassProperty.js";
6
6
 
@@ -24,14 +24,14 @@ import MetadataClassProperty from "./MetadataClassProperty.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 MetadataClass(options) {
27
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
27
+ options = options ?? Frozen.EMPTY_OBJECT;
28
28
  const id = options.id;
29
29
 
30
30
  //>>includeStart('debug', pragmas.debug);
31
31
  Check.typeOf.string("options.id", id);
32
32
  //>>includeEnd('debug');
33
33
 
34
- const properties = defaultValue(options.properties, {});
34
+ const properties = options.properties ?? {};
35
35
  const propertiesBySemantic = {};
36
36
  for (const propertyId in properties) {
37
37
  if (properties.hasOwnProperty(propertyId)) {
@@ -65,7 +65,7 @@ function MetadataClass(options) {
65
65
  * @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.
66
66
  */
67
67
  MetadataClass.fromJson = function (options) {
68
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
68
+ options = options ?? Frozen.EMPTY_OBJECT;
69
69
  const id = options.id;
70
70
  const classDefinition = options.class;
71
71
 
@@ -3,7 +3,7 @@ import Cartesian3 from "../Core/Cartesian3.js";
3
3
  import Cartesian4 from "../Core/Cartesian4.js";
4
4
  import Check from "../Core/Check.js";
5
5
  import clone from "../Core/clone.js";
6
- import defaultValue from "../Core/defaultValue.js";
6
+ import Frozen from "../Core/Frozen.js";
7
7
  import defined from "../Core/defined.js";
8
8
  import DeveloperError from "../Core/DeveloperError.js";
9
9
  import Matrix2 from "../Core/Matrix2.js";
@@ -45,7 +45,7 @@ import MetadataComponentType from "./MetadataComponentType.js";
45
45
  * @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.
46
46
  */
47
47
  function MetadataClassProperty(options) {
48
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
48
+ options = options ?? Frozen.EMPTY_OBJECT;
49
49
  const id = options.id;
50
50
  const type = options.type;
51
51
 
@@ -60,7 +60,7 @@ function MetadataClassProperty(options) {
60
60
  const normalized =
61
61
  defined(componentType) &&
62
62
  MetadataComponentType.isIntegerType(componentType) &&
63
- defaultValue(options.normalized, false);
63
+ (options.normalized ?? false);
64
64
 
65
65
  // Basic information about this property
66
66
  this._id = id;
@@ -78,11 +78,8 @@ function MetadataClassProperty(options) {
78
78
  this._valueType = defined(enumType) ? enumType.valueType : componentType;
79
79
 
80
80
  // Details about arrays
81
- this._isArray = defaultValue(options.isArray, false);
82
- this._isVariableLengthArray = defaultValue(
83
- options.isVariableLengthArray,
84
- false,
85
- );
81
+ this._isArray = options.isArray ?? false;
82
+ this._isVariableLengthArray = options.isVariableLengthArray ?? false;
86
83
  this._arrayLength = options.arrayLength;
87
84
 
88
85
  // min and max allowed values
@@ -115,7 +112,7 @@ function MetadataClassProperty(options) {
115
112
  // For vector and array types, this is stored as an array of values.
116
113
  this._default = clone(options.default, true);
117
114
 
118
- this._required = defaultValue(options.required, true);
115
+ this._required = options.required ?? true;
119
116
 
120
117
  // extras and extensions
121
118
  this._extras = clone(options.extras, true);
@@ -136,7 +133,7 @@ function MetadataClassProperty(options) {
136
133
  * @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.
137
134
  */
138
135
  MetadataClassProperty.fromJson = function (options) {
139
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
136
+ options = options ?? Frozen.EMPTY_OBJECT;
140
137
  const id = options.id;
141
138
  const property = options.property;
142
139
 
@@ -164,7 +161,7 @@ MetadataClassProperty.fromJson = function (options) {
164
161
  } else if (isLegacyExtension) {
165
162
  required = defined(property.optional) ? !property.optional : true;
166
163
  } else {
167
- required = defaultValue(property.required, false);
164
+ required = property.required ?? false;
168
165
  }
169
166
 
170
167
  return new MetadataClassProperty({
@@ -790,7 +787,7 @@ MetadataClassProperty.prototype.expandConstant = function (
790
787
  constant,
791
788
  enableNestedArrays,
792
789
  ) {
793
- enableNestedArrays = defaultValue(enableNestedArrays, false);
790
+ enableNestedArrays = enableNestedArrays ?? false;
794
791
  const isArray = this._isArray;
795
792
  const arrayLength = this._arrayLength;
796
793
  const componentCount = MetadataType.getComponentCount(this._type);
@@ -881,7 +878,7 @@ MetadataClassProperty.prototype.unpackVectorAndMatrixTypes = function (
881
878
  value,
882
879
  enableNestedArrays,
883
880
  ) {
884
- enableNestedArrays = defaultValue(enableNestedArrays, false);
881
+ enableNestedArrays = enableNestedArrays ?? false;
885
882
  const MathType = MetadataType.getMathType(this._type);
886
883
  const isArray = this._isArray;
887
884
  const componentCount = MetadataType.getComponentCount(this._type);
@@ -920,7 +917,7 @@ MetadataClassProperty.prototype.packVectorAndMatrixTypes = function (
920
917
  value,
921
918
  enableNestedArrays,
922
919
  ) {
923
- enableNestedArrays = defaultValue(enableNestedArrays, false);
920
+ enableNestedArrays = enableNestedArrays ?? false;
924
921
  const MathType = MetadataType.getMathType(this._type);
925
922
  const isArray = this._isArray;
926
923
  const componentCount = MetadataType.getComponentCount(this._type);