@cesium/engine 23.0.1 → 25.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 (398) hide show
  1. package/Build/Workers/{chunk-ZEMJQKHD.js → chunk-35H3UBIO.js} +13 -12
  2. package/Build/Workers/{chunk-PQTSXJBJ.js → chunk-3LSD7OOA.js} +16 -16
  3. package/Build/Workers/{chunk-PUO7BYDY.js → chunk-3RFFPH4M.js} +1 -1
  4. package/Build/Workers/{chunk-PBECJOWF.js → chunk-3TKLDHV3.js} +2 -2
  5. package/Build/Workers/{chunk-TMCTZ5E3.js → chunk-3VDDRF2E.js} +14 -14
  6. package/Build/Workers/{chunk-FKU77FNM.js → chunk-3XY3MVPG.js} +4 -4
  7. package/Build/Workers/{chunk-2OBWHTIC.js → chunk-4GF4MVPY.js} +7 -7
  8. package/Build/Workers/{chunk-JUKGMJX7.js → chunk-4MTRQFJP.js} +3 -2
  9. package/Build/Workers/{chunk-66OWUDO7.js → chunk-4QQXGTCE.js} +8 -8
  10. package/Build/Workers/{chunk-ALTCIHRH.js → chunk-4XXHJI6Y.js} +17 -17
  11. package/Build/Workers/{chunk-K7UTK4OM.js → chunk-5T6QQAJW.js} +3 -2
  12. package/Build/Workers/{chunk-IJ3SUMK3.js → chunk-6SDGQI27.js} +3 -2
  13. package/Build/Workers/{chunk-FXSRA5UG.js → chunk-77RL3MBD.js} +6 -5
  14. package/Build/Workers/{chunk-G6MJ3ZW3.js → chunk-7LSFAEWF.js} +12 -11
  15. package/Build/Workers/{chunk-C6HHBKT5.js → chunk-A7A433MD.js} +5 -5
  16. package/Build/Workers/{chunk-PGZ3B6CB.js → chunk-A7ZBMVFS.js} +14 -14
  17. package/Build/Workers/{chunk-OZYB3AOR.js → chunk-ACFFCHHZ.js} +11 -11
  18. package/Build/Workers/{chunk-DNMASBMH.js → chunk-AEAVLYPS.js} +2 -2
  19. package/Build/Workers/{chunk-VPWYHFQA.js → chunk-AWFZHD2B.js} +4 -4
  20. package/Build/Workers/{chunk-TFPG3ZKW.js → chunk-BTX2NL3P.js} +59 -46
  21. package/Build/Workers/{chunk-TNXOPEIG.js → chunk-BVAIWR7O.js} +12 -12
  22. package/Build/Workers/chunk-CKQP3DSS.js +973 -0
  23. package/Build/Workers/{chunk-N6HRZLS6.js → chunk-CZ23Y3RM.js} +2 -2
  24. package/Build/Workers/{chunk-EIC3VAOZ.js → chunk-DFEI5MAV.js} +7 -7
  25. package/Build/Workers/{chunk-BTP3634E.js → chunk-DH26SNAB.js} +4 -1
  26. package/Build/Workers/{chunk-TXYQNXNW.js → chunk-DYT5NR6P.js} +3 -3
  27. package/Build/Workers/{chunk-O67UP5YO.js → chunk-EZARA5FJ.js} +13 -13
  28. package/Build/Workers/{chunk-YSJRB2UZ.js → chunk-FIBS5S7R.js} +2 -2
  29. package/Build/Workers/{chunk-2M7DKGLW.js → chunk-FVLVVOBQ.js} +10 -10
  30. package/Build/Workers/{chunk-B2VA6IEL.js → chunk-GL7DNVUS.js} +5 -5
  31. package/Build/Workers/{chunk-77DJBHMI.js → chunk-GPIGURCG.js} +59 -32
  32. package/Build/Workers/{chunk-QPXGGVHC.js → chunk-H2A4USJR.js} +10 -10
  33. package/Build/Workers/chunk-HSVQATK2.js +147 -0
  34. package/Build/Workers/{chunk-HXEPZWJN.js → chunk-HVMG6AG4.js} +11 -10
  35. package/Build/Workers/{chunk-H3TVRJLY.js → chunk-I3A6DXYZ.js} +4 -4
  36. package/Build/Workers/{chunk-UEWYSOFD.js → chunk-ITD2IN7N.js} +2 -2
  37. package/Build/Workers/{chunk-CYOPNGPX.js → chunk-J3OFS2RD.js} +12 -12
  38. package/Build/Workers/{chunk-RZX6LOG6.js → chunk-J647NNZW.js} +6 -6
  39. package/Build/Workers/{chunk-GLCPE2BJ.js → chunk-J7KQEKPK.js} +13 -13
  40. package/Build/Workers/{chunk-XPMXRJDD.js → chunk-K6NFIRFB.js} +5 -5
  41. package/Build/Workers/{chunk-CID5SY7L.js → chunk-LH5SF3XV.js} +7 -6
  42. package/Build/Workers/{chunk-UOQB7XQI.js → chunk-ND3NTTOF.js} +713 -435
  43. package/Build/Workers/chunk-QO2CGXMP.js +2342 -0
  44. package/Build/Workers/chunk-QSDY4NS7.js +1287 -0
  45. package/Build/Workers/chunk-QXNQQYPV.js +3201 -0
  46. package/Build/Workers/{chunk-CJ7ZDY77.js → chunk-ST2UWDUU.js} +5 -5
  47. package/Build/Workers/{chunk-YDR5LX5Z.js → chunk-TA777BGS.js} +3 -2
  48. package/Build/Workers/{chunk-U4SWB6TI.js → chunk-TAI4HLII.js} +4 -4
  49. package/Build/Workers/{chunk-VX774SWE.js → chunk-URUCCIPS.js} +6 -6
  50. package/Build/Workers/{chunk-MNSNOONX.js → chunk-VQKLRBIK.js} +7 -7
  51. package/Build/Workers/{chunk-CVAAIRNP.js → chunk-WC57YYBN.js} +2 -2
  52. package/Build/Workers/{chunk-QNABVTTP.js → chunk-WN6P5UDH.js} +12 -12
  53. package/Build/Workers/{chunk-CNLXMOPM.js → chunk-WNN5D4W3.js} +12 -11
  54. package/Build/Workers/{chunk-4JJQRZYL.js → chunk-WTQGE7Q6.js} +17 -17
  55. package/Build/Workers/{chunk-FCJQO4NC.js → chunk-WUBKZFF6.js} +2213 -1349
  56. package/Build/Workers/{chunk-3UQ2YMPP.js → chunk-ZAPOS52G.js} +12 -10
  57. package/Build/Workers/{chunk-LHFC4R7Z.js → chunk-ZCCIIBZT.js} +6 -6
  58. package/Build/Workers/combineGeometry.js +24 -24
  59. package/Build/Workers/createBoxGeometry.js +18 -18
  60. package/Build/Workers/createBoxOutlineGeometry.js +16 -16
  61. package/Build/Workers/createCircleGeometry.js +26 -26
  62. package/Build/Workers/createCircleOutlineGeometry.js +19 -19
  63. package/Build/Workers/createCoplanarPolygonGeometry.js +33 -33
  64. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +31 -31
  65. package/Build/Workers/createCorridorGeometry.js +29 -29
  66. package/Build/Workers/createCorridorOutlineGeometry.js +28 -28
  67. package/Build/Workers/createCylinderGeometry.js +20 -20
  68. package/Build/Workers/createCylinderOutlineGeometry.js +18 -18
  69. package/Build/Workers/createEllipseGeometry.js +26 -26
  70. package/Build/Workers/createEllipseOutlineGeometry.js +19 -19
  71. package/Build/Workers/createEllipsoidGeometry.js +19 -19
  72. package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -18
  73. package/Build/Workers/createFrustumGeometry.js +18 -18
  74. package/Build/Workers/createFrustumOutlineGeometry.js +18 -18
  75. package/Build/Workers/createGeometry.js +24 -24
  76. package/Build/Workers/createGroundPolylineGeometry.js +175 -118
  77. package/Build/Workers/createPlaneGeometry.js +16 -16
  78. package/Build/Workers/createPlaneOutlineGeometry.js +15 -15
  79. package/Build/Workers/createPolygonGeometry.js +32 -32
  80. package/Build/Workers/createPolygonOutlineGeometry.js +30 -30
  81. package/Build/Workers/createPolylineGeometry.js +25 -25
  82. package/Build/Workers/createPolylineVolumeGeometry.js +31 -31
  83. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +27 -27
  84. package/Build/Workers/createRectangleGeometry.js +27 -27
  85. package/Build/Workers/createRectangleOutlineGeometry.js +20 -20
  86. package/Build/Workers/createSimplePolylineGeometry.js +23 -23
  87. package/Build/Workers/createSphereGeometry.js +19 -19
  88. package/Build/Workers/createSphereOutlineGeometry.js +18 -18
  89. package/Build/Workers/createTaskProcessorWorker.js +3 -3
  90. package/Build/Workers/createVectorTileClampedPolylines.js +14 -14
  91. package/Build/Workers/createVectorTileGeometries.js +24 -24
  92. package/Build/Workers/createVectorTilePoints.js +13 -13
  93. package/Build/Workers/createVectorTilePolygons.js +22 -22
  94. package/Build/Workers/createVectorTilePolylines.js +14 -14
  95. package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +25 -25
  96. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +22 -22
  97. package/Build/Workers/createVerticesFromHeightmap.js +24 -23
  98. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +20 -20
  99. package/Build/Workers/createWallGeometry.js +25 -25
  100. package/Build/Workers/createWallOutlineGeometry.js +24 -24
  101. package/Build/Workers/decodeDraco.js +10 -10
  102. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
  103. package/Build/Workers/decodeI3S.js +12 -12
  104. package/Build/Workers/gaussianSplatSorter.js +4 -4
  105. package/Build/Workers/gaussianSplatTextureGenerator.js +4 -4
  106. package/Build/Workers/incrementallyBuildTerrainPicker.js +10 -10
  107. package/Build/Workers/transcodeKTX2.js +12 -9
  108. package/Build/Workers/transferTypedArrayTest.js +1 -1
  109. package/Build/Workers/upsampleQuantizedTerrainMesh.js +22 -22
  110. package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +25 -25
  111. package/Source/Core/ArcType.js +6 -1
  112. package/Source/Core/ArticulationStageType.js +5 -1
  113. package/Source/Core/AssociativeArray.js +100 -94
  114. package/Source/Core/BoundingSphere.js +1296 -1300
  115. package/Source/Core/Cartesian2.js +7 -5
  116. package/Source/Core/Cartesian3.js +9 -8
  117. package/Source/Core/Cartesian4.js +8 -6
  118. package/Source/Core/Cartographic.js +257 -249
  119. package/Source/Core/ClockRange.js +6 -1
  120. package/Source/Core/ClockStep.js +6 -1
  121. package/Source/Core/Color.js +846 -835
  122. package/Source/Core/ComponentDatatype.js +4 -1
  123. package/Source/Core/CornerType.js +6 -1
  124. package/Source/Core/Credit.js +121 -124
  125. package/Source/Core/DeveloperError.js +2 -1
  126. package/Source/Core/Ellipsoid.js +637 -660
  127. package/Source/Core/ExtrapolationType.js +6 -1
  128. package/Source/Core/GeocodeType.js +6 -1
  129. package/Source/Core/GeographicProjection.js +74 -74
  130. package/Source/Core/GeographicTilingScheme.js +179 -198
  131. package/Source/Core/GeometryOffsetAttribute.js +7 -1
  132. package/Source/Core/GeometryType.js +7 -1
  133. package/Source/Core/HeightmapEncoding.js +6 -1
  134. package/Source/Core/ITwinPlatform.js +1 -0
  135. package/Source/Core/Iau2006XysData.js +24 -13
  136. package/Source/Core/IndexDatatype.js +3 -1
  137. package/Source/Core/InterpolationType.js +5 -1
  138. package/Source/Core/Intersect.js +6 -1
  139. package/Source/Core/Ion.js +1 -1
  140. package/Source/Core/IonGeocodeProviderType.js +5 -1
  141. package/Source/Core/JulianDate.js +850 -848
  142. package/Source/Core/KeyboardEventModifier.js +6 -1
  143. package/Source/Core/MapProjection.js +39 -44
  144. package/Source/Core/Matrix2.js +906 -893
  145. package/Source/Core/Matrix3.js +1643 -1575
  146. package/Source/Core/Matrix4.js +2903 -2872
  147. package/Source/Core/PixelFormat.js +3 -1
  148. package/Source/Core/PrimitiveType.js +11 -1
  149. package/Source/Core/Ray.js +62 -60
  150. package/Source/Core/Rectangle.js +913 -904
  151. package/Source/Core/ReferenceFrame.js +6 -1
  152. package/Source/Core/RequestScheduler.js +8 -3
  153. package/Source/Core/RequestState.js +6 -1
  154. package/Source/Core/RequestType.js +6 -1
  155. package/Source/Core/S2Cell.js +2 -2
  156. package/Source/Core/ScreenSpaceEventType.js +6 -1
  157. package/Source/Core/TerrainMesh.js +10 -1
  158. package/Source/Core/TerrainPicker.js +1 -0
  159. package/Source/Core/TerrainQuantization.js +6 -1
  160. package/Source/Core/TilingScheme.js +100 -98
  161. package/Source/Core/TimeConstants.js +6 -1
  162. package/Source/Core/TimeStandard.js +6 -1
  163. package/Source/Core/TrackingReferenceFrame.js +6 -1
  164. package/Source/Core/Visibility.js +6 -1
  165. package/Source/Core/VulkanConstants.js +6 -1
  166. package/Source/Core/WallGeometry.js +1 -1
  167. package/Source/Core/WallOutlineGeometry.js +1 -1
  168. package/Source/Core/WebGLConstants.js +6 -1
  169. package/Source/Core/WebMercatorProjection.js +108 -109
  170. package/Source/Core/WebMercatorTilingScheme.js +246 -242
  171. package/Source/Core/WindingOrder.js +3 -1
  172. package/Source/Core/assert.js +27 -0
  173. package/Source/Core/globalTypes.js +4 -0
  174. package/Source/DataSources/CzmlDataSource.js +9 -0
  175. package/Source/DataSources/PathGraphics.js +13 -0
  176. package/Source/DataSources/PathVisualizer.js +330 -18
  177. package/Source/DataSources/StaticGeometryColorBatch.js +7 -2
  178. package/Source/DataSources/StaticGeometryPerMaterialBatch.js +7 -2
  179. package/Source/DataSources/StaticGroundGeometryPerMaterialBatch.js +4 -1
  180. package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +4 -1
  181. package/Source/DataSources/StripeOrientation.js +6 -1
  182. package/Source/Renderer/BufferUsage.js +20 -9
  183. package/Source/Renderer/Context.js +2 -29
  184. package/Source/Renderer/DrawCommand.js +435 -403
  185. package/Source/Renderer/MipmapHint.js +5 -1
  186. package/Source/Renderer/Pass.js +7 -1
  187. package/Source/Renderer/PickId.js +44 -0
  188. package/Source/Renderer/PixelDatatype.js +3 -1
  189. package/Source/Renderer/RenderState.js +2 -2
  190. package/Source/Renderer/RenderbufferFormat.js +5 -1
  191. package/Source/Renderer/ShaderDestination.js +4 -1
  192. package/Source/Renderer/TextureMagnificationFilter.js +3 -1
  193. package/Source/Renderer/TextureMinificationFilter.js +3 -1
  194. package/Source/Renderer/TextureWrap.js +5 -1
  195. package/Source/Renderer/VertexArray.js +80 -0
  196. package/Source/Scene/AlphaMode.js +5 -1
  197. package/Source/Scene/ArcGisBaseMapType.js +6 -1
  198. package/Source/Scene/ArcGisMapService.js +1 -1
  199. package/Source/Scene/AttributeType.js +3 -1
  200. package/Source/Scene/Axis.js +3 -1
  201. package/Source/Scene/BillboardCollection.js +65 -364
  202. package/Source/Scene/BingMapsStyle.js +6 -1
  203. package/Source/Scene/BlendEquation.js +6 -1
  204. package/Source/Scene/BlendFunction.js +6 -1
  205. package/Source/Scene/BlendOption.js +6 -1
  206. package/Source/Scene/BlendingState.js +6 -1
  207. package/Source/Scene/BufferLoader.js +0 -2
  208. package/Source/Scene/BufferPoint.js +148 -0
  209. package/Source/Scene/BufferPointCollection.js +138 -0
  210. package/Source/Scene/BufferPointMaterial.js +95 -0
  211. package/Source/Scene/BufferPolygon.js +516 -0
  212. package/Source/Scene/BufferPolygonCollection.js +370 -0
  213. package/Source/Scene/BufferPolygonMaterial.js +41 -0
  214. package/Source/Scene/BufferPolyline.js +185 -0
  215. package/Source/Scene/BufferPolylineCollection.js +138 -0
  216. package/Source/Scene/BufferPolylineMaterial.js +93 -0
  217. package/Source/Scene/BufferPrimitive.js +347 -0
  218. package/Source/Scene/BufferPrimitiveCollection.js +818 -0
  219. package/Source/Scene/BufferPrimitiveMaterial.js +140 -0
  220. package/Source/Scene/CameraEventType.js +6 -1
  221. package/Source/Scene/Cesium3DTileColorBlendMode.js +6 -1
  222. package/Source/Scene/Cesium3DTileContent.js +5 -1
  223. package/Source/Scene/Cesium3DTileContentFactory.js +9 -0
  224. package/Source/Scene/Cesium3DTileContentState.js +6 -1
  225. package/Source/Scene/Cesium3DTileContentType.js +3 -1
  226. package/Source/Scene/Cesium3DTileFeature.js +289 -306
  227. package/Source/Scene/Cesium3DTileOptimizationHint.js +6 -1
  228. package/Source/Scene/Cesium3DTilePass.js +5 -1
  229. package/Source/Scene/Cesium3DTilePointFeature.js +433 -511
  230. package/Source/Scene/Cesium3DTileRefine.js +6 -1
  231. package/Source/Scene/Cesium3DTileStyle.js +22 -0
  232. package/Source/Scene/Cesium3DTileVectorFeature.js +586 -0
  233. package/Source/Scene/Cesium3DTileset.js +2 -1
  234. package/Source/Scene/ClassificationType.js +3 -1
  235. package/Source/Scene/ClippingPolygonCollection.js +270 -101
  236. package/Source/Scene/CloudType.js +3 -1
  237. package/Source/Scene/ColorBlendMode.js +4 -1
  238. package/Source/Scene/CubeMapPanorama.js +4 -4
  239. package/Source/Scene/CullFace.js +6 -1
  240. package/Source/Scene/DepthFunction.js +6 -1
  241. package/Source/Scene/DynamicAtmosphereLightingType.js +3 -1
  242. package/Source/Scene/EquirectangularPanorama.js +1 -0
  243. package/Source/Scene/ExpressionNodeType.js +6 -1
  244. package/Source/Scene/GaussianSplat3DTileContent.js +40 -46
  245. package/Source/Scene/GaussianSplatPrimitive.js +413 -70
  246. package/Source/Scene/GetFeatureInfoFormat.js +3 -3
  247. package/Source/Scene/GltfBufferViewLoader.js +0 -2
  248. package/Source/Scene/GltfDracoLoader.js +0 -2
  249. package/Source/Scene/GltfImageLoader.js +0 -3
  250. package/Source/Scene/GltfIndexBufferLoader.js +0 -4
  251. package/Source/Scene/GltfJsonLoader.js +0 -2
  252. package/Source/Scene/GltfLoader.js +215 -39
  253. package/Source/Scene/GltfLoaderUtil.js +14 -0
  254. package/Source/Scene/GltfSpzLoader.js +109 -2
  255. package/Source/Scene/GltfStructuralMetadataLoader.js +0 -2
  256. package/Source/Scene/GltfTextureLoader.js +0 -2
  257. package/Source/Scene/GltfVertexBufferLoader.js +0 -4
  258. package/Source/Scene/HeightReference.js +5 -1
  259. package/Source/Scene/HorizontalOrigin.js +6 -1
  260. package/Source/Scene/ITwinData.js +1 -0
  261. package/Source/Scene/ImageryProvider.js +1 -1
  262. package/Source/Scene/ImageryState.js +6 -1
  263. package/Source/Scene/ImplicitSubdivisionScheme.js +3 -1
  264. package/Source/Scene/InstanceAttributeSemantic.js +3 -1
  265. package/Source/Scene/IonWorldImageryStyle.js +6 -1
  266. package/Source/Scene/JobType.js +6 -1
  267. package/Source/Scene/Label.js +32 -0
  268. package/Source/Scene/LabelCollection.js +14 -13
  269. package/Source/Scene/LabelStyle.js +6 -1
  270. package/Source/Scene/MapMode2D.js +6 -1
  271. package/Source/Scene/Material.js +2 -0
  272. package/Source/Scene/Megatexture.js +1 -0
  273. package/Source/Scene/MetadataClassProperty.js +24 -10
  274. package/Source/Scene/MetadataComponentType.js +118 -24
  275. package/Source/Scene/MetadataSchemaLoader.js +0 -2
  276. package/Source/Scene/MetadataSemantic.js +6 -2
  277. package/Source/Scene/MetadataType.js +3 -1
  278. package/Source/Scene/Model/B3dmLoader.js +0 -3
  279. package/Source/Scene/Model/CustomShaderMode.js +3 -1
  280. package/Source/Scene/Model/CustomShaderPipelineStage.js +3 -1
  281. package/Source/Scene/Model/CustomShaderTranslucencyMode.js +5 -1
  282. package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +735 -264
  283. package/Source/Scene/Model/Extensions/Gpm/PpeSource.js +5 -1
  284. package/Source/Scene/Model/Extensions/Gpm/StorageType.js +5 -1
  285. package/Source/Scene/Model/GeoJsonLoader.js +0 -2
  286. package/Source/Scene/Model/I3dmLoader.js +0 -3
  287. package/Source/Scene/Model/InstancingPipelineStage.js +1 -1
  288. package/Source/Scene/Model/LightingModel.js +5 -1
  289. package/Source/Scene/Model/MaterialPipelineStage.js +331 -3
  290. package/Source/Scene/Model/MetadataPipelineStage.js +3 -3
  291. package/Source/Scene/Model/ModelDrawCommand.js +6 -0
  292. package/Source/Scene/Model/ModelReader.js +475 -4
  293. package/Source/Scene/Model/ModelRuntimePrimitive.js +2 -1
  294. package/Source/Scene/Model/ModelType.js +3 -1
  295. package/Source/Scene/Model/ModelUtility.js +3 -1
  296. package/Source/Scene/Model/PntsLoader.js +4 -3
  297. package/Source/Scene/Model/StyleCommandsNeeded.js +3 -1
  298. package/Source/Scene/Model/UniformType.js +5 -1
  299. package/Source/Scene/Model/VaryingType.js +5 -1
  300. package/Source/Scene/Model/createVectorTileBuffersFromModelComponents.js +375 -0
  301. package/Source/Scene/Model/pickModel.js +94 -299
  302. package/Source/Scene/ModelAnimationLoop.js +6 -1
  303. package/Source/Scene/ModelAnimationState.js +6 -1
  304. package/Source/Scene/ModelComponents.js +1639 -1542
  305. package/Source/Scene/PickedMetadataInfo.js +1 -0
  306. package/Source/Scene/PrimitiveState.js +7 -1
  307. package/Source/Scene/QuadtreeOccluders.js +20 -15
  308. package/Source/Scene/QuadtreeTile.js +547 -541
  309. package/Source/Scene/QuadtreeTileLoadState.js +6 -1
  310. package/Source/Scene/QuadtreeTileProvider.js +159 -175
  311. package/Source/Scene/ResourceLoader.js +0 -1
  312. package/Source/Scene/ResourceLoaderState.js +7 -1
  313. package/Source/Scene/SceneMode.js +4 -1
  314. package/Source/Scene/ScreenSpaceCameraController.js +13 -0
  315. package/Source/Scene/ShadowMode.js +3 -1
  316. package/Source/Scene/SkyBox.js +17 -8
  317. package/Source/Scene/SplitDirection.js +6 -1
  318. package/Source/Scene/StencilFunction.js +6 -1
  319. package/Source/Scene/StencilOperation.js +6 -1
  320. package/Source/Scene/TerrainState.js +7 -1
  321. package/Source/Scene/TileBoundingRegion.js +1 -1
  322. package/Source/Scene/TileBoundingS2Cell.js +1 -1
  323. package/Source/Scene/TileBoundingSphere.js +1 -1
  324. package/Source/Scene/TileState.js +7 -1
  325. package/Source/Scene/Tonemapper.js +5 -1
  326. package/Source/Scene/TweenCollection.js +7 -0
  327. package/Source/Scene/VectorGltf3DTileContent.js +403 -0
  328. package/Source/Scene/VertexAttributeSemantic.js +17 -1
  329. package/Source/Scene/VerticalOrigin.js +6 -1
  330. package/Source/Scene/VoxelBoxShape.js +12 -6
  331. package/Source/Scene/VoxelContent.js +2 -0
  332. package/Source/Scene/VoxelCylinderShape.js +39 -38
  333. package/Source/Scene/VoxelEllipsoidShape.js +46 -96
  334. package/Source/Scene/VoxelMetadataOrder.js +6 -1
  335. package/Source/Scene/VoxelProvider.js +1 -0
  336. package/Source/Scene/VoxelShapeType.js +3 -1
  337. package/Source/Scene/WebMapServiceImageryProvider.js +2 -2
  338. package/Source/Scene/WebMapTileServiceImageryProvider.js +366 -131
  339. package/Source/Scene/parseStructuralMetadata.js +97 -37
  340. package/Source/Scene/renderBufferPointCollection.js +285 -0
  341. package/Source/Scene/renderBufferPolygonCollection.js +339 -0
  342. package/Source/Scene/renderBufferPolylineCollection.js +478 -0
  343. package/Source/Shaders/BillboardCollectionFS.glsl +2 -77
  344. package/Source/Shaders/BillboardCollectionFS.js +2 -77
  345. package/Source/Shaders/BillboardCollectionVS.glsl +2 -60
  346. package/Source/Shaders/BillboardCollectionVS.js +2 -60
  347. package/Source/Shaders/BufferPointMaterialFS.glsl +27 -0
  348. package/Source/Shaders/BufferPointMaterialFS.js +29 -0
  349. package/Source/Shaders/BufferPointMaterialVS.glsl +48 -0
  350. package/Source/Shaders/BufferPointMaterialVS.js +50 -0
  351. package/Source/Shaders/BufferPolygonMaterialFS.glsl +13 -0
  352. package/Source/Shaders/BufferPolygonMaterialFS.js +15 -0
  353. package/Source/Shaders/BufferPolygonMaterialVS.glsl +30 -0
  354. package/Source/Shaders/BufferPolygonMaterialVS.js +32 -0
  355. package/Source/Shaders/BufferPolylineMaterialFS.glsl +13 -0
  356. package/Source/Shaders/BufferPolylineMaterialFS.js +15 -0
  357. package/Source/Shaders/BufferPolylineMaterialVS.glsl +49 -0
  358. package/Source/Shaders/BufferPolylineMaterialVS.js +51 -0
  359. package/Source/Shaders/Builtin/CzmBuiltins.js +2 -0
  360. package/Source/Shaders/Builtin/Functions/computeTextureTransform.glsl +24 -0
  361. package/Source/Shaders/Builtin/Functions/computeTextureTransform.js +25 -0
  362. package/Source/Shaders/Model/ConstantLodStageFS.glsl +60 -0
  363. package/Source/Shaders/Model/ConstantLodStageFS.js +62 -0
  364. package/Source/Shaders/Model/ConstantLodStageVS.glsl +12 -0
  365. package/Source/Shaders/Model/ConstantLodStageVS.js +13 -0
  366. package/Source/Shaders/Model/EdgeVisibilityStageFS.glsl +34 -48
  367. package/Source/Shaders/Model/EdgeVisibilityStageFS.js +34 -49
  368. package/Source/Shaders/Model/EdgeVisibilityStageVS.glsl +98 -0
  369. package/Source/Shaders/Model/EdgeVisibilityStageVS.js +100 -0
  370. package/Source/Shaders/Model/MaterialStageFS.glsl +46 -20
  371. package/Source/Shaders/Model/MaterialStageFS.js +46 -20
  372. package/Source/Shaders/Model/ModelFS.glsl +15 -0
  373. package/Source/Shaders/Model/ModelFS.js +15 -0
  374. package/Source/Shaders/Model/ModelVS.glsl +8 -0
  375. package/Source/Shaders/Model/ModelVS.js +8 -0
  376. package/Source/Shaders/PolygonSignedDistanceFS.glsl +64 -33
  377. package/Source/Shaders/PolygonSignedDistanceFS.js +64 -33
  378. package/Source/Shaders/PrimitiveGaussianSplatVS.glsl +9 -2
  379. package/Source/Shaders/PrimitiveGaussianSplatVS.js +9 -2
  380. package/Source/Shaders/Voxels/VoxelFS.glsl +1 -1
  381. package/Source/Shaders/Voxels/VoxelFS.js +1 -1
  382. package/Source/Shaders/Voxels/convertLocalToBoxUv.glsl +0 -1
  383. package/Source/Shaders/Voxels/convertLocalToBoxUv.js +0 -1
  384. package/Source/Shaders/Voxels/convertLocalToCylinderUv.glsl +7 -9
  385. package/Source/Shaders/Voxels/convertLocalToCylinderUv.js +7 -9
  386. package/Source/Shaders/Voxels/convertLocalToEllipsoidUv.glsl +7 -17
  387. package/Source/Shaders/Voxels/convertLocalToEllipsoidUv.js +7 -17
  388. package/Source/Widget/CesiumWidget.js +11 -4
  389. package/Source/Workers/decodeDraco.js +3 -0
  390. package/Source/Workers/decodeI3S.js +5 -2
  391. package/index.d.ts +1332 -402
  392. package/index.js +111 -81
  393. package/package.json +3 -3
  394. package/Build/Workers/chunk-54O3AGOA.js +0 -642
  395. package/Build/Workers/chunk-6U5QMZU3.js +0 -940
  396. package/Build/Workers/chunk-HNDE73JK.js +0 -1829
  397. package/Build/Workers/chunk-PAFMAR7A.js +0 -2357
  398. package/Build/Workers/chunk-S53HSRT6.js +0 -114
@@ -135,7 +135,6 @@ class GltfVertexBufferLoader extends ResourceLoader {
135
135
  /**
136
136
  * The cache key of the resource.
137
137
  *
138
- * @memberof GltfVertexBufferLoader.prototype
139
138
  *
140
139
  * @type {string}
141
140
  * @readonly
@@ -148,7 +147,6 @@ class GltfVertexBufferLoader extends ResourceLoader {
148
147
  /**
149
148
  * The vertex buffer. This is only defined when <code>loadAsTypedArray</code> is false.
150
149
  *
151
- * @memberof GltfVertexBufferLoader.prototype
152
150
  *
153
151
  * @type {Buffer}
154
152
  * @readonly
@@ -161,7 +159,6 @@ class GltfVertexBufferLoader extends ResourceLoader {
161
159
  /**
162
160
  * The typed array containing vertex buffer data. This is only defined when <code>loadAsTypedArray</code> is true.
163
161
  *
164
- * @memberof GltfVertexBufferLoader.prototype
165
162
  *
166
163
  * @type {Uint8Array}
167
164
  * @readonly
@@ -174,7 +171,6 @@ class GltfVertexBufferLoader extends ResourceLoader {
174
171
  /**
175
172
  * Information about the quantized vertex attribute after Draco decode.
176
173
  *
177
- * @memberof GltfVertexBufferLoader.prototype
178
174
  *
179
175
  * @type {ModelComponents.Quantization}
180
176
  * @readonly
@@ -1,3 +1,5 @@
1
+ // @ts-check
2
+
1
3
  /**
2
4
  * Represents the position relative to the terrain.
3
5
  *
@@ -54,7 +56,9 @@ const HeightReference = {
54
56
  RELATIVE_TO_3D_TILE: 6,
55
57
  };
56
58
 
57
- export default Object.freeze(HeightReference);
59
+ Object.freeze(HeightReference);
60
+
61
+ export default HeightReference;
58
62
 
59
63
  /**
60
64
  * Returns true if the height should be clamped to the surface
@@ -1,3 +1,5 @@
1
+ // @ts-check
2
+
1
3
  /**
2
4
  * The horizontal location of an origin relative to an object, e.g., a {@link Billboard}
3
5
  * or {@link Label}. For example, setting the horizontal origin to <code>LEFT</code>
@@ -38,4 +40,7 @@ const HorizontalOrigin = {
38
40
  */
39
41
  RIGHT: -1,
40
42
  };
41
- export default Object.freeze(HorizontalOrigin);
43
+
44
+ Object.freeze(HorizontalOrigin);
45
+
46
+ export default HorizontalOrigin;
@@ -138,6 +138,7 @@ ITwinData.createTilesetForRealityDataId = async function ({
138
138
  ITwinPlatform.RealityDataType.PNTS,
139
139
  ITwinPlatform.RealityDataType.RealityMesh3DTiles,
140
140
  ITwinPlatform.RealityDataType.Terrain3DTiles,
141
+ ITwinPlatform.RealityDataType.GaussianSplat3DTiles,
141
142
  ];
142
143
 
143
144
  if (!supportedRealityDataTypes.includes(type)) {
@@ -5,7 +5,7 @@ import loadKTX2 from "../Core/loadKTX2.js";
5
5
  import Resource from "../Core/Resource.js";
6
6
 
7
7
  /**
8
- * @typedef {HTMLImageElement|HTMLCanvasElement|ImageBitmap} ImageryTypes
8
+ * @typedef {HTMLImageElement|HTMLCanvasElement|ImageBitmap|OffscreenCanvas} ImageryTypes
9
9
  *
10
10
  * The format in which {@link ImageryProvider} methods return an image may
11
11
  * vary by provider, configuration, or server settings. Most common are
@@ -1,3 +1,5 @@
1
+ // @ts-check
2
+
1
3
  /**
2
4
  * @private
3
5
  */
@@ -11,4 +13,7 @@ const ImageryState = {
11
13
  INVALID: 6,
12
14
  PLACEHOLDER: 7,
13
15
  };
14
- export default Object.freeze(ImageryState);
16
+
17
+ Object.freeze(ImageryState);
18
+
19
+ export default ImageryState;
@@ -45,4 +45,6 @@ ImplicitSubdivisionScheme.getBranchingFactor = function (subdivisionScheme) {
45
45
  }
46
46
  };
47
47
 
48
- export default Object.freeze(ImplicitSubdivisionScheme);
48
+ Object.freeze(ImplicitSubdivisionScheme);
49
+
50
+ export default ImplicitSubdivisionScheme;
@@ -76,4 +76,6 @@ InstanceAttributeSemantic.fromGltfSemantic = function (gltfSemantic) {
76
76
  return undefined;
77
77
  };
78
78
 
79
- export default Object.freeze(InstanceAttributeSemantic);
79
+ Object.freeze(InstanceAttributeSemantic);
80
+
81
+ export default InstanceAttributeSemantic;
@@ -1,3 +1,5 @@
1
+ // @ts-check
2
+
1
3
  // Note, these values map directly to ion asset ids.
2
4
 
3
5
  /**
@@ -30,4 +32,7 @@ const IonWorldImageryStyle = {
30
32
  */
31
33
  ROAD: 4,
32
34
  };
33
- export default Object.freeze(IonWorldImageryStyle);
35
+
36
+ Object.freeze(IonWorldImageryStyle);
37
+
38
+ export default IonWorldImageryStyle;
@@ -1,3 +1,5 @@
1
+ // @ts-check
2
+
1
3
  /**
2
4
  * @private
3
5
  */
@@ -7,4 +9,7 @@ const JobType = {
7
9
  BUFFER: 2,
8
10
  NUMBER_OF_JOB_TYPES: 3,
9
11
  };
10
- export default Object.freeze(JobType);
12
+
13
+ Object.freeze(JobType);
14
+
15
+ export default JobType;
@@ -1186,6 +1186,38 @@ Object.defineProperties(Label.prototype, {
1186
1186
  }
1187
1187
  },
1188
1188
  },
1189
+
1190
+ /**
1191
+ * When <code>true</code>, this label is ready to render, i.e., the glyphs have been mapped and the WebGL resources are created. This property is exposed for testing purposes.
1192
+ * @memberof Label.prototype
1193
+ * @type {boolean}
1194
+ * @readonly
1195
+ * @private
1196
+ */
1197
+ ready: {
1198
+ get: function () {
1199
+ if (this._rebindAllGlyphs || this._repositionAllGlyphs) {
1200
+ return false;
1201
+ }
1202
+
1203
+ if (
1204
+ defined(this._backgroundBillboard) &&
1205
+ !this._backgroundBillboard.ready
1206
+ ) {
1207
+ return false;
1208
+ }
1209
+
1210
+ const glyphs = this._glyphs;
1211
+ for (let i = 0, len = glyphs.length; i < len; i++) {
1212
+ const glyph = glyphs[i];
1213
+ if (defined(glyph.billboard) && !glyph.billboard.ready) {
1214
+ return false;
1215
+ }
1216
+ }
1217
+
1218
+ return true;
1219
+ },
1220
+ },
1189
1221
  });
1190
1222
 
1191
1223
  Label.prototype._updateClamping = function () {
@@ -85,6 +85,8 @@ function getWhitePixelBillboard(billboardCollection, labelCollection) {
85
85
  });
86
86
 
87
87
  billboard.setImageTexture(billboardTexture);
88
+ billboard._positionFromParent = true;
89
+ billboard._labelTranslate = new Cartesian2();
88
90
 
89
91
  return billboard;
90
92
  }
@@ -288,6 +290,9 @@ function rebindAllGlyphs(labelCollection, label) {
288
290
  billboard.horizontalOrigin = HorizontalOrigin.LEFT;
289
291
  billboard.verticalOrigin = label._verticalOrigin;
290
292
  billboard.heightReference = label._heightReference;
293
+ if (defined(label._clampedPosition)) {
294
+ billboard._clampedPosition = label._clampedPosition;
295
+ }
291
296
  billboard.scale = label.totalScale;
292
297
  billboard.pickPrimitive = label;
293
298
  billboard.id = label._id;
@@ -342,6 +347,9 @@ function updateBackgroundBillboard(
342
347
  backgroundBillboard.horizontalOrigin = HorizontalOrigin.LEFT;
343
348
  backgroundBillboard.verticalOrigin = label._verticalOrigin;
344
349
  backgroundBillboard.heightReference = label._heightReference;
350
+ if (defined(label._clampedPosition)) {
351
+ backgroundBillboard._clampedPosition = label._clampedPosition;
352
+ }
345
353
  backgroundBillboard.scale = label.totalScale;
346
354
  backgroundBillboard.pickPrimitive = label;
347
355
  backgroundBillboard.id = label._id;
@@ -493,6 +501,12 @@ function repositionAllGlyphs(label) {
493
501
  glyph.billboard._labelDimensions.x = totalLineWidth;
494
502
  glyph.billboard._labelDimensions.y = totalLineHeight;
495
503
  glyph.billboard._labelHorizontalOrigin = horizontalOrigin;
504
+ if (isHeightReferenceClamp(label.heightReference)) {
505
+ glyph.billboard._labelTranslate = Cartesian2.clone(
506
+ glyphPixelOffset,
507
+ glyph.billboard._labelTranslate,
508
+ );
509
+ }
496
510
  }
497
511
 
498
512
  //Compute the next x offset taking into account the kerning performed
@@ -536,19 +550,6 @@ function repositionAllGlyphs(label) {
536
550
  backgroundBillboard._labelTranslate,
537
551
  );
538
552
  }
539
-
540
- if (isHeightReferenceClamp(label.heightReference)) {
541
- for (let glyphIndex = 0; glyphIndex < glyphLength; ++glyphIndex) {
542
- const glyph = glyphs[glyphIndex];
543
- const billboard = glyph.billboard;
544
- if (defined(billboard)) {
545
- billboard._labelTranslate = Cartesian2.clone(
546
- glyphPixelOffset,
547
- billboard._labelTranslate,
548
- );
549
- }
550
- }
551
- }
552
553
  }
553
554
 
554
555
  function destroyLabel(labelCollection, label) {
@@ -1,3 +1,5 @@
1
+ // @ts-check
2
+
1
3
  /**
2
4
  * Describes how to draw a label.
3
5
  *
@@ -30,4 +32,7 @@ const LabelStyle = {
30
32
  */
31
33
  FILL_AND_OUTLINE: 2,
32
34
  };
33
- export default Object.freeze(LabelStyle);
35
+
36
+ Object.freeze(LabelStyle);
37
+
38
+ export default LabelStyle;
@@ -1,3 +1,5 @@
1
+ // @ts-check
2
+
1
3
  /**
2
4
  * Describes how the map will operate in 2D.
3
5
  *
@@ -20,4 +22,7 @@ const MapMode2D = {
20
22
  */
21
23
  INFINITE_SCROLL: 1,
22
24
  };
23
- export default Object.freeze(MapMode2D);
25
+
26
+ Object.freeze(MapMode2D);
27
+
28
+ export default MapMode2D;
@@ -354,6 +354,7 @@ function Material(options) {
354
354
 
355
355
  /**
356
356
  * The {@link TextureMinificationFilter} to apply to this material's textures.
357
+ * @memberof Material.prototype
357
358
  * @type {TextureMinificationFilter}
358
359
  * @default TextureMinificationFilter.LINEAR
359
360
  */
@@ -368,6 +369,7 @@ function Material(options) {
368
369
 
369
370
  /**
370
371
  * The {@link TextureMagnificationFilter} to apply to this material's textures.
372
+ * @memberof Material.prototype
371
373
  * @type {TextureMagnificationFilter}
372
374
  * @default TextureMagnificationFilter.LINEAR
373
375
  */
@@ -158,6 +158,7 @@ function Megatexture(
158
158
  Object.defineProperties(Megatexture.prototype, {
159
159
  /**
160
160
  * Gets or sets the nearest sampling flag.
161
+ * @memberof Megatexture.prototype
161
162
  * @type {boolean}
162
163
  */
163
164
  nearestSampling: {
@@ -1191,21 +1191,36 @@ MetadataClassProperty.valueTransformInPlace = function (
1191
1191
  };
1192
1192
 
1193
1193
  /**
1194
- * Determines the byte size of a single property element.
1194
+ * Determines the byte size of a single property element, stored on the CPU.
1195
1195
  * For example, if the metadata type is VEC3 and the component type is FLOAT32, this would return 12 bytes.
1196
1196
  *
1197
1197
  * @returns {number} The byte size of a single property element.
1198
1198
  *
1199
1199
  * @private
1200
1200
  */
1201
- MetadataClassProperty.prototype.bytesPerElement = function () {
1202
- const type = this.type;
1203
- const valueType = this.valueType;
1201
+ MetadataClassProperty.prototype.cpuBytesPerElement = function () {
1202
+ return bytesPerElement(this, this.valueType);
1203
+ };
1204
+
1205
+ /**
1206
+ * Determines the byte size of a single property element, stored on the GPU.
1207
+ * This differs from the CPU byte size if the element type is a 64-bit type that can be
1208
+ * downcast to a 32-bit type for texture packing (only relevant for textures created from property tables).
1209
+ *
1210
+ * @returns {number} The byte size of a single property element on the GPU.
1211
+ */
1212
+ MetadataClassProperty.prototype.gpuBytesPerElement = function () {
1213
+ const packedType = MetadataComponentType.gpuComponentType(this.valueType);
1214
+ return bytesPerElement(this, packedType);
1215
+ };
1216
+
1217
+ function bytesPerElement(classProperty, valueType) {
1218
+ const type = classProperty.type;
1204
1219
  const componentCount = MetadataType.getComponentCount(type);
1205
- const arrayLength = this.isArray ? this.arrayLength : 1;
1220
+ const arrayLength = classProperty.isArray ? classProperty.arrayLength : 1;
1206
1221
  const bytesPerComponent = MetadataComponentType.getSizeInBytes(valueType);
1207
1222
  return componentCount * arrayLength * bytesPerComponent;
1208
- };
1223
+ }
1209
1224
 
1210
1225
  /**
1211
1226
  * Determines whether this property can be stored in a texture, given the property's datatype and the number of
@@ -1240,9 +1255,8 @@ MetadataClassProperty.prototype.isGpuCompatible = function (channelsLength) {
1240
1255
  }
1241
1256
 
1242
1257
  // For all other properties, make sure the components fit in the sampled channels.
1243
- // (Note that it's possible to treat 64-bit types as two 32-bit components, but for now that's not supported)
1244
- const elementSizeInBytes = this.bytesPerElement();
1245
- if (elementSizeInBytes > channelsLength) {
1258
+ // (64-bit types can be downcast to 32-bit types for texture packing. In the future, support for full 64-bit types may be added)
1259
+ if (this.gpuBytesPerElement() > channelsLength) {
1246
1260
  return false;
1247
1261
  }
1248
1262
 
@@ -1317,7 +1331,7 @@ MetadataClassProperty.prototype.unpackTextureInShader = function (
1317
1331
  shaderLines,
1318
1332
  ) {
1319
1333
  const glslType = this.getGlslType();
1320
- const valueType = this.valueType;
1334
+ const valueType = MetadataComponentType.gpuComponentType(this.valueType);
1321
1335
  const numChannels = channelsString.length;
1322
1336
  const type = this.type;
1323
1337
 
@@ -139,6 +139,8 @@ MetadataComponentType.typeInfo = {
139
139
  maximumValue: BigInt("9223372036854775807"),
140
140
  minimumValue: BigInt("-9223372036854775808"),
141
141
  category: ScalarCategories.INTEGER,
142
+ downcastFunction: (value) =>
143
+ MetadataComponentType.clampToLimits(value, MetadataComponentType.INT32),
142
144
  },
143
145
  UINT64: {
144
146
  vectorCompatible: false,
@@ -146,6 +148,8 @@ MetadataComponentType.typeInfo = {
146
148
  maximumValue: BigInt("18446744073709551615"),
147
149
  minimumValue: BigInt(0),
148
150
  category: ScalarCategories.UNSIGNED_INTEGER,
151
+ downcastFunction: (value) =>
152
+ MetadataComponentType.clampToLimits(value, MetadataComponentType.UINT32),
149
153
  },
150
154
  FLOAT32: {
151
155
  vectorCompatible: true,
@@ -160,6 +164,7 @@ MetadataComponentType.typeInfo = {
160
164
  maximumValue: Number.MAX_VALUE,
161
165
  minimumValue: -Number.MAX_VALUE,
162
166
  category: ScalarCategories.FLOAT,
167
+ downcastFunction: (value) => Math.fround(value),
163
168
  },
164
169
  };
165
170
 
@@ -283,6 +288,25 @@ MetadataComponentType.category = function (type) {
283
288
  return typeInfo.category;
284
289
  };
285
290
 
291
+ /**
292
+ * Gets the component type as represented on the GPU (that is, taking downcasting into account).
293
+ * This is different from getting the glsl variable type of an entire metadata property. This is only for a component.
294
+ * @param {MetadataComponentType} type The component type.
295
+ * @returns {MetadataComponentType} The GPU component type.
296
+ */
297
+ MetadataComponentType.gpuComponentType = function (type) {
298
+ switch (type) {
299
+ case MetadataComponentType.INT64:
300
+ return "INT32";
301
+ case MetadataComponentType.UINT64:
302
+ return "UINT32";
303
+ case MetadataComponentType.FLOAT64:
304
+ return "FLOAT32";
305
+ default:
306
+ return type;
307
+ }
308
+ };
309
+
286
310
  /**
287
311
  * Normalizes signed integers to the range [-1.0, 1.0] and unsigned integers to
288
312
  * the range [0.0, 1.0].
@@ -401,6 +425,52 @@ MetadataComponentType.getSizeInBytes = function (type) {
401
425
  return MetadataComponentType.typeInfo[type].size;
402
426
  };
403
427
 
428
+ /**
429
+ * Clamps a value to the minimum and maximum limits of the given component type.
430
+ *
431
+ * @param {number|bigint} value The value to clamp.
432
+ * @param {MetadataComponentType} type The component type.
433
+ * @returns {number} The clamped value.
434
+ *
435
+ * @private
436
+ */
437
+ MetadataComponentType.clampToLimits = function (value, type) {
438
+ const min = MetadataComponentType.getMinimum(type);
439
+ const max = MetadataComponentType.getMaximum(type);
440
+
441
+ if (typeof value === "bigint") {
442
+ const minBigInt = BigInt(min);
443
+ const maxBigInt = BigInt(max);
444
+
445
+ if (value < minBigInt) {
446
+ return min;
447
+ }
448
+ if (value > maxBigInt) {
449
+ return max;
450
+ }
451
+
452
+ return Number(value);
453
+ }
454
+
455
+ return Math.max(min, Math.min(max, value));
456
+ };
457
+
458
+ MetadataComponentType.downcastFunction = function (type) {
459
+ const typeInfo = MetadataComponentType.typeInfo[type];
460
+ //>>includeStart('debug', pragmas.debug);
461
+ if (!defined(typeInfo)) {
462
+ throw new DeveloperError("type must be a valid MetadataComponentType");
463
+ }
464
+ //>>includeEnd('debug');
465
+
466
+ const func = typeInfo.downcastFunction;
467
+ if (!defined(func)) {
468
+ return (value) => value;
469
+ }
470
+
471
+ return func;
472
+ };
473
+
404
474
  /**
405
475
  * Gets the {@link MetadataComponentType} from a {@link ComponentDatatype}.
406
476
  *
@@ -468,37 +538,61 @@ MetadataComponentType.toComponentDatatype = function (type) {
468
538
  };
469
539
 
470
540
  /**
471
- * Gets a function for setting values of the given component type on a DataView.
541
+ * Gets functions for getting and setting values of the given component type on a DataView.
472
542
  *
473
543
  * @param {DataView} view The DataView.
474
544
  * @param {MetadataComponentType} componentType The component type.
475
- * @returns {Function} The setter function.
545
+ * @returns {Object} An object containing the getter and setter functions.
476
546
  *
477
547
  * @private
478
548
  */
479
- MetadataComponentType.getDataViewSetter = function (view, componentType) {
480
- const setters = {
481
- [MetadataComponentType.UINT8]: view.setUint8.bind(view),
482
- [MetadataComponentType.INT8]: view.setInt8.bind(view),
483
- [MetadataComponentType.UINT16]: (offset, value) =>
484
- view.setUint16(offset, value, true /* little-endian */),
485
- [MetadataComponentType.INT16]: (offset, value) =>
486
- view.setInt16(offset, value, true),
487
- [MetadataComponentType.UINT32]: (offset, value) =>
488
- view.setUint32(offset, value, true),
489
- [MetadataComponentType.INT32]: (offset, value) =>
490
- view.setInt32(offset, value, true),
491
- [MetadataComponentType.FLOAT32]: (offset, value) =>
492
- view.setFloat32(offset, value, true),
493
- [MetadataComponentType.FLOAT64]: (offset, value) =>
494
- view.setFloat64(offset, value, true),
495
- [MetadataComponentType.UINT64]: (offset, value) =>
496
- view.setBigUint64(offset, BigInt(value), true),
497
- [MetadataComponentType.INT64]: (offset, value) =>
498
- view.setBigInt64(offset, BigInt(value), true),
549
+ MetadataComponentType.getDataViewAccessors = function (view, componentType) {
550
+ const accessors = {
551
+ [MetadataComponentType.UINT8]: {
552
+ get: view.getUint8.bind(view),
553
+ set: view.setUint8.bind(view),
554
+ },
555
+ [MetadataComponentType.INT8]: {
556
+ get: view.getInt8.bind(view),
557
+ set: view.setInt8.bind(view),
558
+ },
559
+ [MetadataComponentType.UINT16]: {
560
+ get: (offset) => view.getUint16(offset, true),
561
+ set: (offset, value) => view.setUint16(offset, value, true),
562
+ },
563
+ [MetadataComponentType.INT16]: {
564
+ get: (offset) => view.getInt16(offset, true),
565
+ set: (offset, value) => view.setInt16(offset, value, true),
566
+ },
567
+ [MetadataComponentType.UINT32]: {
568
+ get: (offset) => view.getUint32(offset, true),
569
+ set: (offset, value) => view.setUint32(offset, value, true),
570
+ },
571
+ [MetadataComponentType.INT32]: {
572
+ get: (offset) => view.getInt32(offset, true),
573
+ set: (offset, value) => view.setInt32(offset, value, true),
574
+ },
575
+ [MetadataComponentType.FLOAT32]: {
576
+ get: (offset) => view.getFloat32(offset, true),
577
+ set: (offset, value) => view.setFloat32(offset, value, true),
578
+ },
579
+ [MetadataComponentType.FLOAT64]: {
580
+ get: (offset) => view.getFloat64(offset, true),
581
+ set: (offset, value) => view.setFloat64(offset, value, true),
582
+ },
583
+ [MetadataComponentType.UINT64]: {
584
+ get: (offset) => view.getBigUint64(offset, true),
585
+ set: (offset, value) => view.setBigUint64(offset, BigInt(value), true),
586
+ },
587
+ [MetadataComponentType.INT64]: {
588
+ get: (offset) => view.getBigInt64(offset, true),
589
+ set: (offset, value) => view.setBigInt64(offset, BigInt(value), true),
590
+ },
499
591
  };
500
592
 
501
- return setters[componentType];
593
+ return accessors[componentType];
502
594
  };
503
595
 
504
- export default Object.freeze(MetadataComponentType);
596
+ Object.freeze(MetadataComponentType);
597
+
598
+ export default MetadataComponentType;
@@ -51,7 +51,6 @@ class MetadataSchemaLoader extends ResourceLoader {
51
51
  /**
52
52
  * The cache key of the resource.
53
53
  *
54
- * @memberof MetadataSchemaLoader.prototype
55
54
  *
56
55
  * @type {string}
57
56
  * @readonly
@@ -64,7 +63,6 @@ class MetadataSchemaLoader extends ResourceLoader {
64
63
  /**
65
64
  * The metadata schema object.
66
65
  *
67
- * @memberof MetadataSchemaLoader.prototype
68
66
  *
69
67
  * @type {MetadataSchema}
70
68
  * @readonly
@@ -1,7 +1,9 @@
1
+ // @ts-check
2
+
1
3
  /**
2
4
  * An enum of built-in semantics.
3
5
  *
4
- * @enum MetadataSemantic
6
+ * @enum {string}
5
7
  *
6
8
  * @private
7
9
  * @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.
@@ -150,4 +152,6 @@ const MetadataSemantic = {
150
152
  CONTENT_HORIZON_OCCLUSION_POINT: "CONTENT_HORIZON_OCCLUSION_POINT",
151
153
  };
152
154
 
153
- export default Object.freeze(MetadataSemantic);
155
+ Object.freeze(MetadataSemantic);
156
+
157
+ export default MetadataSemantic;
@@ -217,4 +217,6 @@ MetadataType.getMathType = function (type) {
217
217
  }
218
218
  };
219
219
 
220
- export default Object.freeze(MetadataType);
220
+ Object.freeze(MetadataType);
221
+
222
+ export default MetadataType;
@@ -118,7 +118,6 @@ class B3dmLoader extends ResourceLoader {
118
118
  /**
119
119
  * true if textures are loaded, useful when incrementallyLoadTextures is true
120
120
  *
121
- * @memberof B3dmLoader.prototype
122
121
  *
123
122
  * @type {boolean}
124
123
  * @readonly
@@ -131,7 +130,6 @@ class B3dmLoader extends ResourceLoader {
131
130
  /**
132
131
  * The cache key of the resource
133
132
  *
134
- * @memberof B3dmLoader.prototype
135
133
  *
136
134
  * @type {string}
137
135
  * @readonly
@@ -144,7 +142,6 @@ class B3dmLoader extends ResourceLoader {
144
142
  /**
145
143
  * The loaded components.
146
144
  *
147
- * @memberof B3dmLoader.prototype
148
145
  *
149
146
  * @type {ModelComponents.Components}
150
147
  * @readonly
@@ -37,4 +37,6 @@ CustomShaderMode.getDefineName = function (customShaderMode) {
37
37
  return `CUSTOM_SHADER_${customShaderMode}`;
38
38
  };
39
39
 
40
- export default Object.freeze(CustomShaderMode);
40
+ Object.freeze(CustomShaderMode);
41
+
42
+ export default CustomShaderMode;
@@ -730,7 +730,9 @@ function getAllPropertyIds(primitive, structuralMetadata) {
730
730
  function addUsedPropertyIds(propertyContainerIds, propertyContainers) {
731
731
  for (const id of propertyContainerIds) {
732
732
  const propertyContainer = propertyContainers[id];
733
- Object.keys(propertyContainer.properties).forEach((propertyId) =>
733
+ const classProperties = propertyContainer.class.properties;
734
+
735
+ Object.keys(classProperties).forEach((propertyId) =>
734
736
  primitivePropertyIds.add(propertyId),
735
737
  );
736
738
  }
@@ -1,3 +1,5 @@
1
+ // @ts-check
2
+
1
3
  /**
2
4
  * An enum for controling how {@link CustomShader} handles translucency compared with the original
3
5
  * primitive.
@@ -32,4 +34,6 @@ const CustomShaderTranslucencyMode = {
32
34
  TRANSLUCENT: 2,
33
35
  };
34
36
 
35
- export default Object.freeze(CustomShaderTranslucencyMode);
37
+ Object.freeze(CustomShaderTranslucencyMode);
38
+
39
+ export default CustomShaderTranslucencyMode;