@cesium/engine 24.0.0 → 26.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 (362) hide show
  1. package/Build/Workers/{chunk-6WLHJFD3.js → chunk-3VFEWOBI.js} +59 -32
  2. package/Build/Workers/{chunk-UQU4RXLT.js → chunk-424RNO3D.js} +50 -45
  3. package/Build/Workers/chunk-4MGMYHOO.js +147 -0
  4. package/Build/Workers/{chunk-AMIHNSST.js → chunk-4S7IE3LB.js} +2 -2
  5. package/Build/Workers/{chunk-J6AW5YHS.js → chunk-52JDLOEM.js} +14 -14
  6. package/Build/Workers/{chunk-6RMS4S72.js → chunk-54I6Y66F.js} +6 -6
  7. package/Build/Workers/{chunk-C6P4IG5P.js → chunk-6YEE6JDR.js} +6 -6
  8. package/Build/Workers/{chunk-72VYSVEW.js → chunk-7J2HKPRH.js} +11 -10
  9. package/Build/Workers/{chunk-7O5XJTVE.js → chunk-7WM2PX4V.js} +5 -5
  10. package/Build/Workers/{chunk-5A2SW66E.js → chunk-ACXQXN46.js} +16 -16
  11. package/Build/Workers/{chunk-VLDEUTOP.js → chunk-AYKR4VBR.js} +2 -2
  12. package/Build/Workers/{chunk-YQFTYQMZ.js → chunk-C6J67V5A.js} +3 -2
  13. package/Build/Workers/{chunk-D4EJ2NXG.js → chunk-C6KNZ7T4.js} +17 -17
  14. package/Build/Workers/{chunk-7MDYBRYJ.js → chunk-CFQP6LYM.js} +4 -4
  15. package/Build/Workers/{chunk-YAOZMOFL.js → chunk-CXOYE2WM.js} +5 -5
  16. package/Build/Workers/{chunk-B6SCUUFP.js → chunk-CZEYZU4N.js} +10 -10
  17. package/Build/Workers/{chunk-NPF7SSHZ.js → chunk-DBOEKL43.js} +7 -7
  18. package/Build/Workers/{chunk-44EMEGKW.js → chunk-DDWSZVMY.js} +5 -5
  19. package/Build/Workers/{chunk-7X322WP2.js → chunk-DOBXCNC3.js} +13 -13
  20. package/Build/Workers/{chunk-JCI63T3K.js → chunk-E7VQ76KE.js} +6 -6
  21. package/Build/Workers/{chunk-7TYLCBGK.js → chunk-EBSIOBXY.js} +12 -10
  22. package/Build/Workers/{chunk-GQUNK2XC.js → chunk-EF2QYXGA.js} +14 -14
  23. package/Build/Workers/{chunk-BJD6QGXZ.js → chunk-EPYXRCDB.js} +12 -12
  24. package/Build/Workers/{chunk-63SIWPLS.js → chunk-F6QDY6HU.js} +13 -13
  25. package/Build/Workers/{chunk-XY6HMDGI.js → chunk-FRQZECAO.js} +5 -5
  26. package/Build/Workers/{chunk-VMVOUQ5J.js → chunk-G7PXZRVF.js} +7 -7
  27. package/Build/Workers/{chunk-N65BAKSH.js → chunk-INUEEEQA.js} +8 -8
  28. package/Build/Workers/{chunk-7QRFIKWQ.js → chunk-IRBKFCEJ.js} +2 -2
  29. package/Build/Workers/{chunk-UIGVOKKI.js → chunk-IYOUHCZB.js} +3 -2
  30. package/Build/Workers/{chunk-5GXYJQ2K.js → chunk-J6BWOHUF.js} +3 -3
  31. package/Build/Workers/{chunk-A47HVBC5.js → chunk-KFSTQKNM.js} +7 -7
  32. package/Build/Workers/{chunk-EV3VGO6Y.js → chunk-KKOSKAZB.js} +17 -17
  33. package/Build/Workers/{chunk-6MPGQEHA.js → chunk-KSSWJIZW.js} +2 -2
  34. package/Build/Workers/{chunk-DHKPFLSJ.js → chunk-M3B5JKSM.js} +3 -2
  35. package/Build/Workers/chunk-MPZHGZU6.js +2342 -0
  36. package/Build/Workers/{chunk-YJZGW74L.js → chunk-MYP774IS.js} +2213 -1349
  37. package/Build/Workers/{chunk-LIB2H534.js → chunk-O3EA5HS7.js} +12 -11
  38. package/Build/Workers/{chunk-ILMFADZA.js → chunk-P3CK7MCY.js} +27 -5
  39. package/Build/Workers/chunk-Q3PY526V.js +3201 -0
  40. package/Build/Workers/chunk-QN67VG36.js +973 -0
  41. package/Build/Workers/{chunk-XJRBB253.js → chunk-QRWGUWI6.js} +11 -11
  42. package/Build/Workers/{chunk-AF3MU2RL.js → chunk-S4MCOY6I.js} +7 -6
  43. package/Build/Workers/{chunk-Y7HNNPNK.js → chunk-SMQZZOW6.js} +10 -10
  44. package/Build/Workers/{chunk-PVV64VFW.js → chunk-TKKIREQ6.js} +3 -2
  45. package/Build/Workers/{chunk-MKM27KGV.js → chunk-U3ZA64U7.js} +2 -2
  46. package/Build/Workers/{chunk-2N4KDHS3.js → chunk-UA25D5MX.js} +12 -11
  47. package/Build/Workers/{chunk-RQNJD3O4.js → chunk-UOOIQ3KX.js} +12 -12
  48. package/Build/Workers/{chunk-GOQBUCXH.js → chunk-V7VQKN6N.js} +709 -431
  49. package/Build/Workers/{chunk-LXMCPFFS.js → chunk-VQYETPWC.js} +4 -4
  50. package/Build/Workers/{chunk-NKT5K3K3.js → chunk-VWV2IJRB.js} +13 -12
  51. package/Build/Workers/chunk-XZMBNNDX.js +1287 -0
  52. package/Build/Workers/{chunk-ISY4EZCA.js → chunk-Y57HREW5.js} +4 -4
  53. package/Build/Workers/{chunk-EDXL4W76.js → chunk-Y5BF6AFU.js} +2 -2
  54. package/Build/Workers/{chunk-Q3C6VQH6.js → chunk-YLY7NKAB.js} +4 -4
  55. package/Build/Workers/{chunk-4TIG36AW.js → chunk-ZK3CF7ZD.js} +12 -12
  56. package/Build/Workers/{chunk-AJLTU6PF.js → chunk-ZP7JMQV4.js} +4 -1
  57. package/Build/Workers/{chunk-HXJMS2ZI.js → chunk-ZZ46LWL6.js} +1 -1
  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 +24 -24
  100. package/Build/Workers/createWallOutlineGeometry.js +23 -23
  101. package/Build/Workers/decodeDraco.js +10 -10
  102. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
  103. package/Build/Workers/decodeI3S.js +10 -10
  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 +1 -1
  116. package/Source/Core/Cartesian3.js +2 -3
  117. package/Source/Core/Cartesian4.js +1 -1
  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 +844 -835
  122. package/Source/Core/ComponentDatatype.js +39 -1
  123. package/Source/Core/CornerType.js +6 -1
  124. package/Source/Core/Credit.js +121 -124
  125. package/Source/Core/Ellipsoid.js +637 -660
  126. package/Source/Core/ExtrapolationType.js +6 -1
  127. package/Source/Core/GeocodeType.js +6 -1
  128. package/Source/Core/GeographicProjection.js +74 -74
  129. package/Source/Core/GeographicTilingScheme.js +179 -198
  130. package/Source/Core/GeometryOffsetAttribute.js +7 -1
  131. package/Source/Core/GeometryType.js +7 -1
  132. package/Source/Core/HeightmapEncoding.js +6 -1
  133. package/Source/Core/Iau2006XysData.js +24 -13
  134. package/Source/Core/IndexDatatype.js +3 -1
  135. package/Source/Core/InterpolationType.js +5 -1
  136. package/Source/Core/Intersect.js +6 -1
  137. package/Source/Core/Ion.js +1 -1
  138. package/Source/Core/IonGeocodeProviderType.js +5 -1
  139. package/Source/Core/JulianDate.js +850 -848
  140. package/Source/Core/KeyboardEventModifier.js +6 -1
  141. package/Source/Core/MapProjection.js +40 -44
  142. package/Source/Core/Matrix2.js +906 -893
  143. package/Source/Core/Matrix3.js +1643 -1575
  144. package/Source/Core/Matrix4.js +2903 -2872
  145. package/Source/Core/PixelFormat.js +3 -1
  146. package/Source/Core/PrimitiveType.js +11 -1
  147. package/Source/Core/Ray.js +62 -60
  148. package/Source/Core/Rectangle.js +913 -904
  149. package/Source/Core/ReferenceFrame.js +6 -1
  150. package/Source/Core/RequestScheduler.js +8 -3
  151. package/Source/Core/RequestState.js +6 -1
  152. package/Source/Core/RequestType.js +6 -1
  153. package/Source/Core/Resource.js +1 -1
  154. package/Source/Core/ScreenSpaceEventHandler.js +51 -41
  155. package/Source/Core/ScreenSpaceEventType.js +6 -1
  156. package/Source/Core/TerrainQuantization.js +6 -1
  157. package/Source/Core/TilingScheme.js +100 -98
  158. package/Source/Core/TimeConstants.js +6 -1
  159. package/Source/Core/TimeStandard.js +6 -1
  160. package/Source/Core/TrackingReferenceFrame.js +6 -1
  161. package/Source/Core/Visibility.js +6 -1
  162. package/Source/Core/VulkanConstants.js +6 -1
  163. package/Source/Core/WebGLConstants.js +6 -1
  164. package/Source/Core/WebMercatorProjection.js +108 -109
  165. package/Source/Core/WebMercatorTilingScheme.js +246 -242
  166. package/Source/Core/WindingOrder.js +3 -1
  167. package/Source/Core/createColorRamp.js +37 -0
  168. package/Source/Core/globalTypes.js +25 -0
  169. package/Source/DataSources/StaticGroundGeometryPerMaterialBatch.js +1 -0
  170. package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +1 -0
  171. package/Source/DataSources/StripeOrientation.js +6 -1
  172. package/Source/Renderer/BufferUsage.js +20 -9
  173. package/Source/Renderer/Context.js +2 -29
  174. package/Source/Renderer/DrawCommand.js +435 -403
  175. package/Source/Renderer/MipmapHint.js +5 -1
  176. package/Source/Renderer/Pass.js +10 -3
  177. package/Source/Renderer/PickId.js +44 -0
  178. package/Source/Renderer/PixelDatatype.js +3 -1
  179. package/Source/Renderer/RenderbufferFormat.js +5 -1
  180. package/Source/Renderer/ShaderDestination.js +4 -1
  181. package/Source/Renderer/TextureMagnificationFilter.js +3 -1
  182. package/Source/Renderer/TextureMinificationFilter.js +3 -1
  183. package/Source/Renderer/TextureWrap.js +5 -1
  184. package/Source/Renderer/createUniform.js +346 -239
  185. package/Source/Renderer/createUniformArray.js +494 -381
  186. package/Source/Scene/AlphaMode.js +5 -1
  187. package/Source/Scene/ArcGisBaseMapType.js +6 -1
  188. package/Source/Scene/ArcGisMapService.js +1 -1
  189. package/Source/Scene/AttributeType.js +3 -1
  190. package/Source/Scene/Axis.js +3 -1
  191. package/Source/Scene/BingMapsStyle.js +6 -1
  192. package/Source/Scene/BlendEquation.js +6 -1
  193. package/Source/Scene/BlendFunction.js +6 -1
  194. package/Source/Scene/BlendOption.js +6 -1
  195. package/Source/Scene/BlendingState.js +6 -1
  196. package/Source/Scene/BufferLoader.js +0 -2
  197. package/Source/Scene/BufferPoint.js +1 -0
  198. package/Source/Scene/BufferPointCollection.js +17 -1
  199. package/Source/Scene/BufferPolygon.js +3 -2
  200. package/Source/Scene/BufferPolygonCollection.js +13 -1
  201. package/Source/Scene/BufferPolyline.js +1 -0
  202. package/Source/Scene/BufferPolylineCollection.js +5 -1
  203. package/Source/Scene/BufferPrimitiveCollection.js +210 -43
  204. package/Source/Scene/CameraEventAggregator.js +30 -18
  205. package/Source/Scene/CameraEventType.js +6 -1
  206. package/Source/Scene/Cesium3DTile.js +54 -1
  207. package/Source/Scene/Cesium3DTileColorBlendMode.js +6 -1
  208. package/Source/Scene/Cesium3DTileContent.js +195 -254
  209. package/Source/Scene/Cesium3DTileContentFactory.js +10 -2
  210. package/Source/Scene/Cesium3DTileContentState.js +6 -1
  211. package/Source/Scene/Cesium3DTileContentType.js +3 -1
  212. package/Source/Scene/Cesium3DTileFeature.js +289 -306
  213. package/Source/Scene/Cesium3DTileOptimizationHint.js +6 -1
  214. package/Source/Scene/Cesium3DTilePass.js +5 -1
  215. package/Source/Scene/Cesium3DTilePointFeature.js +433 -511
  216. package/Source/Scene/Cesium3DTileRefine.js +6 -1
  217. package/Source/Scene/Cesium3DTileVectorFeature.js +586 -0
  218. package/Source/Scene/Cesium3DTileset.js +46 -6
  219. package/Source/Scene/ClassificationType.js +3 -1
  220. package/Source/Scene/CloudType.js +3 -1
  221. package/Source/Scene/ColorBlendMode.js +4 -1
  222. package/Source/Scene/Composite3DTileContent.js +254 -292
  223. package/Source/Scene/CullFace.js +6 -1
  224. package/Source/Scene/DepthFunction.js +6 -1
  225. package/Source/Scene/DynamicAtmosphereLightingType.js +3 -1
  226. package/Source/Scene/EdgeDisplayMode.js +50 -0
  227. package/Source/Scene/Empty3DTileContent.js +100 -132
  228. package/Source/Scene/EquirectangularPanorama.js +1 -0
  229. package/Source/Scene/ExpressionNodeType.js +6 -1
  230. package/Source/Scene/GaussianSplat3DTileContent.js +436 -478
  231. package/Source/Scene/GeoJsonPrimitive.js +874 -0
  232. package/Source/Scene/Geometry3DTileContent.js +151 -185
  233. package/Source/Scene/GltfBufferViewLoader.js +0 -2
  234. package/Source/Scene/GltfDracoLoader.js +0 -2
  235. package/Source/Scene/GltfImageLoader.js +0 -3
  236. package/Source/Scene/GltfIndexBufferLoader.js +0 -4
  237. package/Source/Scene/GltfJsonLoader.js +0 -2
  238. package/Source/Scene/GltfLoader.js +109 -5
  239. package/Source/Scene/GltfLoaderUtil.js +14 -0
  240. package/Source/Scene/GltfSpzLoader.js +0 -2
  241. package/Source/Scene/GltfStructuralMetadataLoader.js +0 -2
  242. package/Source/Scene/GltfTextureLoader.js +0 -2
  243. package/Source/Scene/GltfVertexBufferLoader.js +0 -4
  244. package/Source/Scene/HeightReference.js +5 -1
  245. package/Source/Scene/HorizontalOrigin.js +6 -1
  246. package/Source/Scene/ImageryProvider.js +1 -1
  247. package/Source/Scene/ImageryState.js +6 -1
  248. package/Source/Scene/Implicit3DTileContent.js +179 -214
  249. package/Source/Scene/ImplicitSubdivisionScheme.js +3 -1
  250. package/Source/Scene/InstanceAttributeSemantic.js +3 -1
  251. package/Source/Scene/IonWorldImageryStyle.js +6 -1
  252. package/Source/Scene/JobType.js +6 -1
  253. package/Source/Scene/LabelStyle.js +6 -1
  254. package/Source/Scene/MVTDataProvider.js +147 -0
  255. package/Source/Scene/MapMode2D.js +6 -1
  256. package/Source/Scene/MetadataComponentType.js +3 -1
  257. package/Source/Scene/MetadataSchemaLoader.js +0 -2
  258. package/Source/Scene/MetadataSemantic.js +6 -2
  259. package/Source/Scene/MetadataType.js +3 -1
  260. package/Source/Scene/Model/B3dmLoader.js +0 -3
  261. package/Source/Scene/Model/CustomShaderMode.js +3 -1
  262. package/Source/Scene/Model/CustomShaderTranslucencyMode.js +5 -1
  263. package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +78 -337
  264. package/Source/Scene/Model/Extensions/Gpm/PpeSource.js +5 -1
  265. package/Source/Scene/Model/Extensions/Gpm/StorageType.js +5 -1
  266. package/Source/Scene/Model/GeoJsonLoader.js +0 -2
  267. package/Source/Scene/Model/I3dmLoader.js +0 -3
  268. package/Source/Scene/Model/InstancingPipelineStage.js +1 -1
  269. package/Source/Scene/Model/LightingModel.js +5 -1
  270. package/Source/Scene/Model/MaterialPipelineStage.js +184 -3
  271. package/Source/Scene/Model/Model.js +34 -0
  272. package/Source/Scene/Model/Model3DTileContent.js +424 -458
  273. package/Source/Scene/Model/ModelDrawCommand.js +31 -3
  274. package/Source/Scene/Model/ModelReader.js +474 -3
  275. package/Source/Scene/Model/ModelRuntimePrimitive.js +2 -1
  276. package/Source/Scene/Model/ModelType.js +3 -1
  277. package/Source/Scene/Model/ModelUtility.js +4 -0
  278. package/Source/Scene/Model/PntsLoader.js +4 -3
  279. package/Source/Scene/Model/StyleCommandsNeeded.js +3 -1
  280. package/Source/Scene/Model/UniformType.js +5 -1
  281. package/Source/Scene/Model/VaryingType.js +5 -1
  282. package/Source/Scene/Model/createVectorTileBuffersFromModelComponents.js +500 -139
  283. package/Source/Scene/Model/pickModel.js +94 -299
  284. package/Source/Scene/ModelAnimationLoop.js +6 -1
  285. package/Source/Scene/ModelAnimationState.js +6 -1
  286. package/Source/Scene/ModelComponents.js +47 -2
  287. package/Source/Scene/Multiple3DTileContent.js +291 -334
  288. package/Source/Scene/PrimitiveState.js +7 -1
  289. package/Source/Scene/QuadtreeOccluders.js +20 -15
  290. package/Source/Scene/QuadtreeTile.js +547 -541
  291. package/Source/Scene/QuadtreeTileLoadState.js +6 -1
  292. package/Source/Scene/QuadtreeTileProvider.js +159 -175
  293. package/Source/Scene/ResourceLoader.js +0 -1
  294. package/Source/Scene/ResourceLoaderState.js +7 -1
  295. package/Source/Scene/Scene.js +26 -0
  296. package/Source/Scene/SceneMode.js +4 -1
  297. package/Source/Scene/ShadowMode.js +3 -1
  298. package/Source/Scene/SkyBox.js +1 -1
  299. package/Source/Scene/SplitDirection.js +6 -1
  300. package/Source/Scene/StencilFunction.js +6 -1
  301. package/Source/Scene/StencilOperation.js +6 -1
  302. package/Source/Scene/TerrainState.js +7 -1
  303. package/Source/Scene/TileState.js +7 -1
  304. package/Source/Scene/Tileset3DTileContent.js +113 -146
  305. package/Source/Scene/Tonemapper.js +5 -1
  306. package/Source/Scene/UrlTemplate3DTilesDataProvider.js +499 -0
  307. package/Source/Scene/Vector3DTileContent.js +205 -234
  308. package/Source/Scene/VectorGltf3DTileContent.js +131 -61
  309. package/Source/Scene/VertexAttributeSemantic.js +3 -1
  310. package/Source/Scene/VerticalOrigin.js +6 -1
  311. package/Source/Scene/VoxelBoxShape.js +12 -6
  312. package/Source/Scene/VoxelContent.js +2 -0
  313. package/Source/Scene/VoxelCylinderShape.js +39 -38
  314. package/Source/Scene/VoxelEllipsoidShape.js +46 -96
  315. package/Source/Scene/VoxelMetadataOrder.js +6 -1
  316. package/Source/Scene/VoxelPrimitive.js +159 -175
  317. package/Source/Scene/VoxelProvider.js +64 -90
  318. package/Source/Scene/VoxelShapeType.js +3 -1
  319. package/Source/Scene/buildVectorGltfFromMVT.js +1059 -0
  320. package/Source/Scene/buildVoxelCustomShader.js +199 -0
  321. package/Source/Scene/decodeMVT.js +634 -0
  322. package/Source/Scene/renderBufferPointCollection.js +124 -127
  323. package/Source/Scene/renderBufferPolygonCollection.js +122 -122
  324. package/Source/Scene/renderBufferPolylineCollection.js +386 -238
  325. package/Source/Shaders/BufferPointMaterialFS.glsl +1 -0
  326. package/Source/Shaders/BufferPointMaterialFS.js +1 -0
  327. package/Source/Shaders/BufferPointMaterialVS.glsl +19 -9
  328. package/Source/Shaders/BufferPointMaterialVS.js +20 -10
  329. package/Source/Shaders/BufferPolygonMaterialVS.glsl +13 -4
  330. package/Source/Shaders/BufferPolygonMaterialVS.js +14 -5
  331. package/Source/Shaders/BufferPolylineMaterialVS.glsl +16 -2
  332. package/Source/Shaders/BufferPolylineMaterialVS.js +17 -3
  333. package/Source/Shaders/Builtin/Constants/passCesium3DTileEdgesDirect.glsl +9 -0
  334. package/Source/Shaders/Builtin/Constants/passCesium3DTileEdgesDirect.js +11 -0
  335. package/Source/Shaders/Builtin/Constants/passOverlay.glsl +1 -1
  336. package/Source/Shaders/Builtin/Constants/passOverlay.js +1 -1
  337. package/Source/Shaders/Builtin/CzmBuiltins.js +4 -0
  338. package/Source/Shaders/Builtin/Functions/computeTextureTransform.glsl +24 -0
  339. package/Source/Shaders/Builtin/Functions/computeTextureTransform.js +25 -0
  340. package/Source/Shaders/Model/ConstantLodStageFS.glsl +60 -0
  341. package/Source/Shaders/Model/ConstantLodStageFS.js +62 -0
  342. package/Source/Shaders/Model/ConstantLodStageVS.glsl +12 -0
  343. package/Source/Shaders/Model/ConstantLodStageVS.js +13 -0
  344. package/Source/Shaders/Model/EdgeVisibilityStageVS.glsl +0 -1
  345. package/Source/Shaders/Model/EdgeVisibilityStageVS.js +0 -1
  346. package/Source/Shaders/Model/MaterialStageFS.glsl +46 -20
  347. package/Source/Shaders/Model/MaterialStageFS.js +46 -20
  348. package/Source/Shaders/Voxels/convertLocalToBoxUv.glsl +0 -1
  349. package/Source/Shaders/Voxels/convertLocalToBoxUv.js +0 -1
  350. package/Source/Shaders/Voxels/convertLocalToCylinderUv.glsl +7 -9
  351. package/Source/Shaders/Voxels/convertLocalToCylinderUv.js +7 -9
  352. package/Source/Shaders/Voxels/convertLocalToEllipsoidUv.glsl +7 -17
  353. package/Source/Shaders/Voxels/convertLocalToEllipsoidUv.js +7 -17
  354. package/Source/Widget/CesiumWidget.js +11 -4
  355. package/index.d.ts +595 -343
  356. package/index.js +392 -378
  357. package/package.json +3 -3
  358. package/Build/Workers/chunk-DVB56LG7.js +0 -114
  359. package/Build/Workers/chunk-HKUES6UG.js +0 -2357
  360. package/Build/Workers/chunk-HRHRYFHS.js +0 -940
  361. package/Build/Workers/chunk-KLPGTXS3.js +0 -642
  362. package/Build/Workers/chunk-ZBZRTRJB.js +0 -1829
@@ -19,40 +19,51 @@ import BufferPointMaterialVS from "../Shaders/BufferPointMaterialVS.js";
19
19
  import BufferPointMaterialFS from "../Shaders/BufferPointMaterialFS.js";
20
20
  import EncodedCartesian3 from "../Core/EncodedCartesian3.js";
21
21
  import AttributeCompression from "../Core/AttributeCompression.js";
22
- import Matrix4 from "../Core/Matrix4.js";
23
- import BoundingSphere from "../Core/BoundingSphere.js";
24
22
  import BufferPointMaterial from "./BufferPointMaterial.js";
23
+ import BlendOption from "./BlendOption.js";
25
24
 
26
25
  /** @import FrameState from "./FrameState.js"; */
27
26
  /** @import BufferPointCollection from "./BufferPointCollection.js"; */
28
- /** @import {Destroyable, TypedArray} from "../Core/globalTypes.js"; */
27
+ /** @import {TypedArray} from "../Core/globalTypes.js"; */
29
28
 
30
29
  /**
31
30
  * TODO(PR#13211): Need 'keyof' syntax to avoid duplicating attribute names.
32
- * @typedef {'positionHigh' | 'positionLow' | 'pickColor' | 'showSizeAndColor' | 'outlineWidthAndOutlineColor'} BufferPointAttribute
31
+ * @typedef {'positionHigh' | 'positionLow' | 'pickColor' | 'showSizeColorAlpha' | 'outlineWidthColorAlpha'} BufferPointAttribute
33
32
  * @ignore
34
33
  */
35
34
 
36
35
  /**
36
+ * Attribute locations when using 64-bit position precision.
37
37
  * @type {Record<BufferPointAttribute, number>}
38
38
  * @ignore
39
39
  */
40
- const BufferPointAttributeLocations = {
40
+ const BufferPointAttributeLocationsFloat64 = {
41
41
  positionHigh: 0,
42
42
  positionLow: 1,
43
43
  pickColor: 2,
44
- showSizeAndColor: 3,
45
- outlineWidthAndOutlineColor: 4,
44
+ showSizeColorAlpha: 3,
45
+ outlineWidthColorAlpha: 4,
46
+ };
47
+
48
+ /**
49
+ * Attribute locations when using <= 32-bit position precision.
50
+ * @type {Record<string, number>}
51
+ * @ignore
52
+ */
53
+ const BufferPointAttributeLocations = {
54
+ position: 0,
55
+ pickColor: 1,
56
+ showSizeColorAlpha: 2,
57
+ outlineWidthColorAlpha: 3,
46
58
  };
47
59
 
48
60
  /**
49
61
  * @typedef {object} BufferPointRenderContext
50
62
  * @property {VertexArray} [vertexArray]
51
- * @property {Record<BufferPointAttribute, TypedArray>} [attributeArrays]
63
+ * @property {Record<string, TypedArray>} [attributeArrays]
52
64
  * @property {RenderState} [renderState]
53
65
  * @property {ShaderProgram} [shaderProgram]
54
66
  * @property {DrawCommand} [command]
55
- * @property {Destroyable[]} [pickIds] Unordered list of collection PickIds.
56
67
  * @property {Function} destroy
57
68
  * @ignore
58
69
  */
@@ -74,32 +85,33 @@ const encodedCartesian = new EncodedCartesian3();
74
85
  function renderBufferPointCollection(collection, frameState, renderContext) {
75
86
  const context = frameState.context;
76
87
  renderContext = renderContext || { destroy: destroyRenderContext };
88
+ const useFloat64 = collection._positionDatatype === ComponentDatatype.DOUBLE;
89
+ const attributeLocations = useFloat64
90
+ ? BufferPointAttributeLocationsFloat64
91
+ : BufferPointAttributeLocations;
77
92
 
78
93
  if (!defined(renderContext.attributeArrays)) {
79
94
  const featureCountMax = collection.primitiveCountMax;
80
95
 
81
96
  renderContext.attributeArrays = {
82
- positionHigh: new Float32Array(featureCountMax * 3),
83
- positionLow: new Float32Array(featureCountMax * 3),
97
+ ...(useFloat64
98
+ ? {
99
+ positionHigh: new Float32Array(featureCountMax * 3),
100
+ positionLow: new Float32Array(featureCountMax * 3),
101
+ }
102
+ : { position: collection._positionView }),
84
103
  pickColor: new Uint8Array(featureCountMax * 4),
85
- showSizeAndColor: new Float32Array(featureCountMax * 3),
86
- outlineWidthAndOutlineColor: new Float32Array(featureCountMax * 2),
104
+ showSizeColorAlpha: new Float32Array(featureCountMax * 4),
105
+ outlineWidthColorAlpha: new Float32Array(featureCountMax * 3),
87
106
  };
88
107
  }
89
108
 
90
- if (!defined(renderContext.pickIds)) {
91
- renderContext.pickIds = [];
92
- }
93
-
94
109
  if (collection._dirtyCount > 0) {
95
- const { attributeArrays, pickIds } = renderContext;
110
+ const { attributeArrays } = renderContext;
96
111
 
97
- const positionHighArray = attributeArrays.positionHigh;
98
- const positionLowArray = attributeArrays.positionLow;
99
112
  const pickColorArray = attributeArrays.pickColor;
100
- const showSizeAndColorArray = attributeArrays.showSizeAndColor;
101
- const outlineWidthAndOutlineColorArray =
102
- attributeArrays.outlineWidthAndOutlineColor;
113
+ const showSizeColorAlphaArray = attributeArrays.showSizeColorAlpha;
114
+ const outlineWidthColorAlphaArray = attributeArrays.outlineWidthColorAlpha;
103
115
 
104
116
  const { _dirtyOffset, _dirtyCount } = collection;
105
117
 
@@ -110,46 +122,37 @@ function renderBufferPointCollection(collection, frameState, renderContext) {
110
122
  continue;
111
123
  }
112
124
 
113
- if (collection._allowPicking && point._pickId === 0) {
114
- const pickId = context.createPickId({
115
- collection,
116
- index: i,
117
- get primitive() {
118
- // Cannot reuse primitives; scene.drillPick() appends to a list.
119
- return collection.get(this.index, new BufferPoint());
120
- },
121
- });
122
- point._pickId = pickId.key;
123
- pickIds.push(pickId);
125
+ if (useFloat64) {
126
+ point.getPosition(cartesian);
127
+ EncodedCartesian3.fromCartesian(cartesian, encodedCartesian);
128
+ attributeArrays.positionHigh[i * 3] = encodedCartesian.high.x;
129
+ attributeArrays.positionHigh[i * 3 + 1] = encodedCartesian.high.y;
130
+ attributeArrays.positionHigh[i * 3 + 2] = encodedCartesian.high.z;
131
+ attributeArrays.positionLow[i * 3] = encodedCartesian.low.x;
132
+ attributeArrays.positionLow[i * 3 + 1] = encodedCartesian.low.y;
133
+ attributeArrays.positionLow[i * 3 + 2] = encodedCartesian.low.z;
124
134
  }
125
135
 
126
- point.getPosition(cartesian);
127
- EncodedCartesian3.fromCartesian(cartesian, encodedCartesian);
128
136
  point.getMaterial(material);
129
137
  Color.fromRgba(point._pickId, pickColor);
130
138
 
131
- positionHighArray[i * 3] = encodedCartesian.high.x;
132
- positionHighArray[i * 3 + 1] = encodedCartesian.high.y;
133
- positionHighArray[i * 3 + 2] = encodedCartesian.high.z;
134
-
135
- positionLowArray[i * 3] = encodedCartesian.low.x;
136
- positionLowArray[i * 3 + 1] = encodedCartesian.low.y;
137
- positionLowArray[i * 3 + 2] = encodedCartesian.low.z;
138
-
139
139
  pickColorArray[i * 4] = Color.floatToByte(pickColor.red);
140
140
  pickColorArray[i * 4 + 1] = Color.floatToByte(pickColor.green);
141
141
  pickColorArray[i * 4 + 2] = Color.floatToByte(pickColor.blue);
142
142
  pickColorArray[i * 4 + 3] = Color.floatToByte(pickColor.alpha);
143
143
 
144
- showSizeAndColorArray[i * 3] = point.show ? 1 : 0;
145
- showSizeAndColorArray[i * 3 + 1] = material.size;
146
- showSizeAndColorArray[i * 3 + 2] = AttributeCompression.encodeRGB8(
144
+ showSizeColorAlphaArray[i * 4] = point.show ? 1 : 0;
145
+ showSizeColorAlphaArray[i * 4 + 1] = material.size;
146
+ showSizeColorAlphaArray[i * 4 + 2] = AttributeCompression.encodeRGB8(
147
147
  material.color,
148
148
  );
149
+ showSizeColorAlphaArray[i * 4 + 3] = material.color.alpha;
149
150
 
150
- outlineWidthAndOutlineColorArray[i * 2] = material.outlineWidth;
151
- outlineWidthAndOutlineColorArray[i * 2 + 1] =
152
- AttributeCompression.encodeRGB8(material.outlineColor);
151
+ outlineWidthColorAlphaArray[i * 3] = material.outlineWidth;
152
+ outlineWidthColorAlphaArray[i * 3 + 1] = AttributeCompression.encodeRGB8(
153
+ material.outlineColor,
154
+ );
155
+ outlineWidthColorAlphaArray[i * 3 + 2] = material.outlineColor.alpha;
153
156
 
154
157
  point._dirty = false;
155
158
  }
@@ -161,69 +164,80 @@ function renderBufferPointCollection(collection, frameState, renderContext) {
161
164
  renderContext.vertexArray = new VertexArray({
162
165
  context,
163
166
  attributes: [
167
+ ...(!useFloat64
168
+ ? [
169
+ {
170
+ index: BufferPointAttributeLocations.position,
171
+ componentDatatype: collection._positionDatatype,
172
+ componentsPerAttribute: 3,
173
+ normalize: collection._positionNormalized,
174
+ vertexBuffer: Buffer.createVertexBuffer({
175
+ typedArray: collection._positionView,
176
+ context,
177
+ usage: BufferUsage.STATIC_DRAW,
178
+ }),
179
+ },
180
+ ]
181
+ : [
182
+ {
183
+ index: BufferPointAttributeLocationsFloat64.positionHigh,
184
+ componentDatatype: ComponentDatatype.FLOAT,
185
+ componentsPerAttribute: 3,
186
+ vertexBuffer: Buffer.createVertexBuffer({
187
+ typedArray: attributeArrays.positionHigh,
188
+ context,
189
+ usage: BufferUsage.STATIC_DRAW,
190
+ }),
191
+ },
192
+ {
193
+ index: BufferPointAttributeLocationsFloat64.positionLow,
194
+ componentDatatype: ComponentDatatype.FLOAT,
195
+ componentsPerAttribute: 3,
196
+ vertexBuffer: Buffer.createVertexBuffer({
197
+ typedArray: attributeArrays.positionLow,
198
+ context,
199
+ usage: BufferUsage.STATIC_DRAW,
200
+ }),
201
+ },
202
+ ]),
164
203
  {
165
- index: BufferPointAttributeLocations.positionHigh,
166
- componentDatatype: ComponentDatatype.FLOAT,
167
- componentsPerAttribute: 3,
168
- vertexBuffer: Buffer.createVertexBuffer({
169
- typedArray: attributeArrays.positionHigh,
170
- context,
171
- // @ts-expect-error Requires https://github.com/CesiumGS/cesium/pull/13203.
172
- usage: BufferUsage.STATIC_DRAW,
173
- }),
174
- },
175
- {
176
- index: BufferPointAttributeLocations.positionLow,
177
- componentDatatype: ComponentDatatype.FLOAT,
178
- componentsPerAttribute: 3,
179
- vertexBuffer: Buffer.createVertexBuffer({
180
- typedArray: attributeArrays.positionLow,
181
- context,
182
- // @ts-expect-error Requires https://github.com/CesiumGS/cesium/pull/13203.
183
- usage: BufferUsage.STATIC_DRAW,
184
- }),
185
- },
186
- {
187
- index: BufferPointAttributeLocations.pickColor,
204
+ index: attributeLocations.pickColor,
188
205
  componentDatatype: ComponentDatatype.UNSIGNED_BYTE,
189
206
  componentsPerAttribute: 4,
190
207
  vertexBuffer: Buffer.createVertexBuffer({
191
208
  typedArray: attributeArrays.pickColor,
192
209
  context,
193
- // @ts-expect-error Requires https://github.com/CesiumGS/cesium/pull/13203.
194
210
  usage: BufferUsage.STATIC_DRAW,
195
211
  }),
196
212
  },
197
213
  {
198
- index: BufferPointAttributeLocations.showSizeAndColor,
214
+ index: attributeLocations.showSizeColorAlpha,
199
215
  componentDatatype: ComponentDatatype.FLOAT,
200
- componentsPerAttribute: 3,
216
+ componentsPerAttribute: 4,
201
217
  vertexBuffer: Buffer.createVertexBuffer({
202
- typedArray: attributeArrays.showSizeAndColor,
218
+ typedArray: attributeArrays.showSizeColorAlpha,
203
219
  context,
204
- // @ts-expect-error Requires https://github.com/CesiumGS/cesium/pull/13203.
205
220
  usage: BufferUsage.STATIC_DRAW,
206
221
  }),
207
222
  },
208
223
  {
209
- index: BufferPointAttributeLocations.outlineWidthAndOutlineColor,
224
+ index: attributeLocations.outlineWidthColorAlpha,
210
225
  componentDatatype: ComponentDatatype.FLOAT,
211
- componentsPerAttribute: 2,
226
+ componentsPerAttribute: 3,
212
227
  vertexBuffer: Buffer.createVertexBuffer({
213
- typedArray: attributeArrays.outlineWidthAndOutlineColor,
228
+ typedArray: attributeArrays.outlineWidthColorAlpha,
214
229
  context,
215
- // @ts-expect-error Requires https://github.com/CesiumGS/cesium/pull/13203.
216
230
  usage: BufferUsage.STATIC_DRAW,
217
231
  }),
218
232
  },
219
233
  ],
220
234
  });
221
235
  } else if (collection._dirtyCount > 0) {
222
- for (const key in BufferPointAttributeLocations) {
223
- if (Object.hasOwn(BufferPointAttributeLocations, key)) {
236
+ for (const key in attributeLocations) {
237
+ if (Object.hasOwn(attributeLocations, key)) {
224
238
  const attribute = /** @type {BufferPointAttribute} */ (key);
225
239
  renderContext.vertexArray.copyAttributeFromRange(
226
- BufferPointAttributeLocations[attribute],
240
+ attributeLocations[attribute],
227
241
  renderContext.attributeArrays[attribute],
228
242
  collection._dirtyOffset,
229
243
  collection._dirtyCount,
@@ -234,7 +248,10 @@ function renderBufferPointCollection(collection, frameState, renderContext) {
234
248
 
235
249
  if (!defined(renderContext.renderState)) {
236
250
  renderContext.renderState = RenderState.fromCache({
237
- blending: BlendingState.ALPHA_BLEND,
251
+ blending:
252
+ collection._blendOption === BlendOption.OPAQUE
253
+ ? BlendingState.DISABLED
254
+ : BlendingState.ALPHA_BLEND,
238
255
  depthTest: { enabled: true },
239
256
  });
240
257
  }
@@ -244,34 +261,45 @@ function renderBufferPointCollection(collection, frameState, renderContext) {
244
261
  context,
245
262
  vertexShaderSource: new ShaderSource({
246
263
  sources: [BufferPointMaterialVS],
264
+ defines: useFloat64 ? ["USE_FLOAT64"] : [],
247
265
  }),
248
266
  fragmentShaderSource: new ShaderSource({
249
267
  sources: [BufferPointMaterialFS],
250
268
  }),
251
- attributeLocations: BufferPointAttributeLocations,
269
+ attributeLocations,
252
270
  });
253
271
  }
254
272
 
255
- if (
256
- !defined(renderContext.command) ||
257
- isCommandDirty(collection, renderContext.command)
258
- ) {
273
+ if (!defined(renderContext.command)) {
259
274
  renderContext.command = new DrawCommand({
260
275
  vertexArray: renderContext.vertexArray,
261
276
  renderState: renderContext.renderState,
262
277
  shaderProgram: renderContext.shaderProgram,
263
278
  primitiveType: PrimitiveType.POINTS,
264
- pass: Pass.OPAQUE,
265
- pickId: "v_pickColor",
279
+ pass:
280
+ collection._blendOption === BlendOption.OPAQUE
281
+ ? Pass.OPAQUE
282
+ : Pass.TRANSLUCENT,
283
+ pickId: collection._allowPicking ? "v_pickColor" : undefined,
266
284
  owner: collection,
267
285
  count: collection.primitiveCount,
268
- modelMatrix: collection.modelMatrix,
269
- boundingVolume: collection.boundingVolumeWC,
286
+ modelMatrix: collection.modelMatrix, // shared reference
287
+ boundingVolume: collection.boundingVolume, // shared reference
270
288
  debugShowBoundingVolume: collection.debugShowBoundingVolume,
271
289
  });
272
290
  }
273
291
 
274
- frameState.commandList.push(renderContext.command);
292
+ const command = renderContext.command;
293
+
294
+ if (command.count !== collection.primitiveCount) {
295
+ command.count = collection.primitiveCount;
296
+ }
297
+
298
+ if (command.debugShowBoundingVolume !== collection.debugShowBoundingVolume) {
299
+ command.debugShowBoundingVolume = collection.debugShowBoundingVolume;
300
+ }
301
+
302
+ frameState.commandList.push(command);
275
303
 
276
304
  collection._dirtyCount = 0;
277
305
  collection._dirtyOffset = 0;
@@ -279,31 +307,6 @@ function renderBufferPointCollection(collection, frameState, renderContext) {
279
307
  return renderContext;
280
308
  }
281
309
 
282
- /**
283
- * Returns true if DrawCommand is out of date for the given collection.
284
- * @param {BufferPointCollection} collection
285
- * @param {DrawCommand} command
286
- * @ignore
287
- */
288
- function isCommandDirty(collection, command) {
289
- const isModelMatrixEqual = Matrix4.equals(
290
- collection.modelMatrix,
291
- command._modelMatrix,
292
- );
293
-
294
- const isBoundingVolumeEqual = BoundingSphere.equals(
295
- collection.boundingVolumeWC,
296
- command._boundingVolume,
297
- );
298
-
299
- return (
300
- collection.primitiveCount !== command._count ||
301
- collection.debugShowBoundingVolume !== command.debugShowBoundingVolume ||
302
- !isModelMatrixEqual ||
303
- !isBoundingVolumeEqual
304
- );
305
- }
306
-
307
310
  /**
308
311
  * Destroys render context resources. Deleting properties from the context
309
312
  * object isn't necessary, as collection.destroy() will discard the object.
@@ -323,12 +326,6 @@ function destroyRenderContext() {
323
326
  if (defined(context.renderState)) {
324
327
  RenderState.removeFromCache(context.renderState);
325
328
  }
326
-
327
- if (defined(context.pickIds)) {
328
- for (const pickId of context.pickIds) {
329
- pickId.destroy();
330
- }
331
- }
332
329
  }
333
330
 
334
331
  export default renderBufferPointCollection;