@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
@@ -20,40 +20,50 @@ import BufferPolygonMaterialFS from "../Shaders/BufferPolygonMaterialFS.js";
20
20
  import EncodedCartesian3 from "../Core/EncodedCartesian3.js";
21
21
  import AttributeCompression from "../Core/AttributeCompression.js";
22
22
  import IndexDatatype from "../Core/IndexDatatype.js";
23
- import BoundingSphere from "../Core/BoundingSphere.js";
24
- import Matrix4 from "../Core/Matrix4.js";
25
23
  import BufferPolygonMaterial from "./BufferPolygonMaterial.js";
24
+ import BlendOption from "./BlendOption.js";
26
25
 
27
- /** @import {Destroyable, TypedArray} from "../Core/globalTypes.js"; */
26
+ /** @import {TypedArray} from "../Core/globalTypes.js"; */
28
27
  /** @import FrameState from "./FrameState.js"; */
29
28
  /** @import BufferPolygonCollection from "./BufferPolygonCollection.js"; */
30
29
 
31
30
  /**
32
31
  * TODO(PR#13211): Need 'keyof' syntax to avoid duplicating attribute names.
33
- * @typedef {'positionHigh' | 'positionLow' | 'pickColor' | 'showAndColor'} BufferPolygonAttribute
32
+ * @typedef {'positionHigh' | 'positionLow' | 'pickColor' | 'showColorAlpha'} BufferPolygonAttribute
34
33
  * @ignore
35
34
  */
36
35
 
37
36
  /**
37
+ * Attribute locations when using 64-bit position precision.
38
38
  * @type {Record<BufferPolygonAttribute, number>}
39
39
  * @ignore
40
40
  */
41
- const BufferPolygonAttributeLocations = {
41
+ const BufferPolygonAttributeLocationsFloat64 = {
42
42
  positionHigh: 0,
43
43
  positionLow: 1,
44
44
  pickColor: 2,
45
- showAndColor: 3,
45
+ showColorAlpha: 3,
46
+ };
47
+
48
+ /**
49
+ * Attribute locations when using <= 32-bit position precision.
50
+ * @type {Record<string, number>}
51
+ * @ignore
52
+ */
53
+ const BufferPolygonAttributeLocations = {
54
+ position: 0,
55
+ pickColor: 1,
56
+ showColorAlpha: 2,
46
57
  };
47
58
 
48
59
  /**
49
60
  * @typedef {object} BufferPolygonRenderContext
50
61
  * @property {VertexArray} [vertexArray]
51
- * @property {Record<BufferPolygonAttribute, TypedArray>} [attributeArrays]
62
+ * @property {Record<string, TypedArray>} [attributeArrays]
52
63
  * @property {TypedArray} [indexArray]
53
64
  * @property {RenderState} [renderState]
54
65
  * @property {ShaderProgram} [shaderProgram]
55
66
  * @property {DrawCommand} [command]
56
- * @property {Destroyable[]} [pickIds]
57
67
  * @property {Function} destroy
58
68
  * @ignore
59
69
  */
@@ -75,6 +85,10 @@ const encodedCartesian = new EncodedCartesian3();
75
85
  function renderBufferPolygonCollection(collection, frameState, renderContext) {
76
86
  const context = frameState.context;
77
87
  renderContext = renderContext || { destroy: destroyRenderContext };
88
+ const useFloat64 = collection._positionDatatype === ComponentDatatype.DOUBLE;
89
+ const attributeLocations = useFloat64
90
+ ? BufferPolygonAttributeLocationsFloat64
91
+ : BufferPolygonAttributeLocations;
78
92
 
79
93
  if (
80
94
  !defined(renderContext.attributeArrays) ||
@@ -89,26 +103,24 @@ function renderBufferPolygonCollection(collection, frameState, renderContext) {
89
103
  );
90
104
 
91
105
  renderContext.attributeArrays = {
92
- positionHigh: new Float32Array(vertexCountMax * 3),
93
- positionLow: new Float32Array(vertexCountMax * 3),
106
+ ...(!useFloat64
107
+ ? { position: collection._positionView }
108
+ : {
109
+ positionHigh: new Float32Array(vertexCountMax * 3),
110
+ positionLow: new Float32Array(vertexCountMax * 3),
111
+ }),
94
112
  pickColor: new Uint8Array(vertexCountMax * 4),
95
- showAndColor: new Float32Array(vertexCountMax * 2),
113
+ showColorAlpha: new Float32Array(vertexCountMax * 3),
96
114
  };
97
115
  }
98
116
 
99
- if (!defined(renderContext.pickIds)) {
100
- renderContext.pickIds = [];
101
- }
102
-
103
117
  if (collection._dirtyCount > 0) {
104
- const { attributeArrays, pickIds } = renderContext;
118
+ const { attributeArrays } = renderContext;
105
119
  const { _dirtyOffset, _dirtyCount } = collection;
106
120
 
107
121
  const indexArray = renderContext.indexArray;
108
- const positionHighArray = attributeArrays.positionHigh;
109
- const positionLowArray = attributeArrays.positionLow;
110
122
  const pickColorArray = attributeArrays.pickColor;
111
- const showAndColorArray = attributeArrays.showAndColor;
123
+ const showColorAlphaArray = attributeArrays.showColorAlpha;
112
124
 
113
125
  for (let i = _dirtyOffset, il = _dirtyOffset + _dirtyCount; i < il; i++) {
114
126
  collection.get(i, polygon);
@@ -117,19 +129,6 @@ function renderBufferPolygonCollection(collection, frameState, renderContext) {
117
129
  continue;
118
130
  }
119
131
 
120
- if (collection._allowPicking && polygon._pickId === 0) {
121
- const pickId = context.createPickId({
122
- collection,
123
- index: i,
124
- get primitive() {
125
- // Cannot reuse primitives; scene.drillPick() appends to a list.
126
- return collection.get(i, new BufferPolygon());
127
- },
128
- });
129
- polygon._pickId = pickId.key;
130
- pickIds.push(pickId);
131
- }
132
-
133
132
  let tOffset = polygon.triangleOffset;
134
133
  let vOffset = polygon.vertexOffset;
135
134
 
@@ -145,32 +144,37 @@ function renderBufferPolygonCollection(collection, frameState, renderContext) {
145
144
  }
146
145
 
147
146
  const show = polygon.show;
148
- const cartesianArray = polygon.getPositions();
147
+ const cartesianArray = !useFloat64 ? null : polygon.getPositions();
149
148
  polygon.getMaterial(material);
150
149
  const encodedColor = AttributeCompression.encodeRGB8(material.color);
151
150
  Color.fromRgba(polygon._pickId, pickColor);
152
151
 
153
152
  // Update vertex arrays.
154
153
  for (let j = 0, jl = polygon.vertexCount; j < jl; j++) {
155
- // @ts-expect-error TODO(tsd-jsdoc): See https://github.com/CesiumGS/cesium/pull/13302.
156
- Cartesian3.fromArray(cartesianArray, j * 3, cartesian);
157
- EncodedCartesian3.fromCartesian(cartesian, encodedCartesian);
158
-
159
- positionHighArray[vOffset * 3] = encodedCartesian.high.x;
160
- positionHighArray[vOffset * 3 + 1] = encodedCartesian.high.y;
161
- positionHighArray[vOffset * 3 + 2] = encodedCartesian.high.z;
162
-
163
- positionLowArray[vOffset * 3] = encodedCartesian.low.x;
164
- positionLowArray[vOffset * 3 + 1] = encodedCartesian.low.y;
165
- positionLowArray[vOffset * 3 + 2] = encodedCartesian.low.z;
154
+ if (useFloat64) {
155
+ // @ts-expect-error TODO(tsd-jsdoc): See https://github.com/CesiumGS/cesium/pull/13302.
156
+ Cartesian3.fromArray(cartesianArray, j * 3, cartesian);
157
+ EncodedCartesian3.fromCartesian(cartesian, encodedCartesian);
158
+
159
+ attributeArrays.positionHigh[vOffset * 3] = encodedCartesian.high.x;
160
+ attributeArrays.positionHigh[vOffset * 3 + 1] =
161
+ encodedCartesian.high.y;
162
+ attributeArrays.positionHigh[vOffset * 3 + 2] =
163
+ encodedCartesian.high.z;
164
+
165
+ attributeArrays.positionLow[vOffset * 3] = encodedCartesian.low.x;
166
+ attributeArrays.positionLow[vOffset * 3 + 1] = encodedCartesian.low.y;
167
+ attributeArrays.positionLow[vOffset * 3 + 2] = encodedCartesian.low.z;
168
+ }
166
169
 
167
170
  pickColorArray[vOffset * 4] = Color.floatToByte(pickColor.red);
168
171
  pickColorArray[vOffset * 4 + 1] = Color.floatToByte(pickColor.green);
169
172
  pickColorArray[vOffset * 4 + 2] = Color.floatToByte(pickColor.blue);
170
173
  pickColorArray[vOffset * 4 + 3] = Color.floatToByte(pickColor.alpha);
171
174
 
172
- showAndColorArray[vOffset * 2] = show ? 1 : 0;
173
- showAndColorArray[vOffset * 2 + 1] = encodedColor;
175
+ showColorAlphaArray[vOffset * 3] = show ? 1 : 0;
176
+ showColorAlphaArray[vOffset * 3 + 1] = encodedColor;
177
+ showColorAlphaArray[vOffset * 3 + 2] = material.color.alpha;
174
178
 
175
179
  vOffset++;
176
180
  }
@@ -188,54 +192,65 @@ function renderBufferPolygonCollection(collection, frameState, renderContext) {
188
192
  indexBuffer: Buffer.createIndexBuffer({
189
193
  context,
190
194
  typedArray: renderContext.indexArray,
191
- // @ts-expect-error Requires https://github.com/CesiumGS/cesium/pull/13203.
192
195
  usage: BufferUsage.STATIC_DRAW,
193
- // @ts-expect-error Requires https://github.com/CesiumGS/cesium/pull/13203.
196
+ // @ts-expect-error https://github.com/CesiumGS/cesium/issues/13420
194
197
  indexDatatype: IndexDatatype.fromTypedArray(renderContext.indexArray),
195
198
  }),
196
199
 
197
200
  attributes: [
201
+ ...(!useFloat64
202
+ ? [
203
+ {
204
+ index: BufferPolygonAttributeLocations.position,
205
+ componentDatatype: collection._positionDatatype,
206
+ componentsPerAttribute: 3,
207
+ normalize: collection._positionNormalized,
208
+ vertexBuffer: Buffer.createVertexBuffer({
209
+ typedArray: attributeArrays.position,
210
+ context,
211
+ usage: BufferUsage.STATIC_DRAW,
212
+ }),
213
+ },
214
+ ]
215
+ : [
216
+ {
217
+ index: BufferPolygonAttributeLocationsFloat64.positionHigh,
218
+ componentDatatype: ComponentDatatype.FLOAT,
219
+ componentsPerAttribute: 3,
220
+ vertexBuffer: Buffer.createVertexBuffer({
221
+ typedArray: attributeArrays.positionHigh,
222
+ context,
223
+ usage: BufferUsage.STATIC_DRAW,
224
+ }),
225
+ },
226
+ {
227
+ index: BufferPolygonAttributeLocationsFloat64.positionLow,
228
+ componentDatatype: ComponentDatatype.FLOAT,
229
+ componentsPerAttribute: 3,
230
+ vertexBuffer: Buffer.createVertexBuffer({
231
+ typedArray: attributeArrays.positionLow,
232
+ context,
233
+ usage: BufferUsage.STATIC_DRAW,
234
+ }),
235
+ },
236
+ ]),
198
237
  {
199
- index: BufferPolygonAttributeLocations.positionHigh,
200
- componentDatatype: ComponentDatatype.FLOAT,
201
- componentsPerAttribute: 3,
202
- vertexBuffer: Buffer.createVertexBuffer({
203
- typedArray: attributeArrays.positionHigh,
204
- context,
205
- // @ts-expect-error Requires https://github.com/CesiumGS/cesium/pull/13203.
206
- usage: BufferUsage.STATIC_DRAW,
207
- }),
208
- },
209
- {
210
- index: BufferPolygonAttributeLocations.positionLow,
211
- componentDatatype: ComponentDatatype.FLOAT,
212
- componentsPerAttribute: 3,
213
- vertexBuffer: Buffer.createVertexBuffer({
214
- typedArray: attributeArrays.positionLow,
215
- context,
216
- // @ts-expect-error Requires https://github.com/CesiumGS/cesium/pull/13203.
217
- usage: BufferUsage.STATIC_DRAW,
218
- }),
219
- },
220
- {
221
- index: BufferPolygonAttributeLocations.pickColor,
238
+ index: attributeLocations.pickColor,
222
239
  componentDatatype: ComponentDatatype.UNSIGNED_BYTE,
223
240
  componentsPerAttribute: 4,
224
241
  vertexBuffer: Buffer.createVertexBuffer({
225
242
  typedArray: attributeArrays.pickColor,
226
243
  context,
227
- // @ts-expect-error Requires https://github.com/CesiumGS/cesium/pull/13203.
228
244
  usage: BufferUsage.STATIC_DRAW,
229
245
  }),
230
246
  },
231
247
  {
232
- index: BufferPolygonAttributeLocations.showAndColor,
248
+ index: attributeLocations.showColorAlpha,
233
249
  componentDatatype: ComponentDatatype.FLOAT,
234
- componentsPerAttribute: 2,
250
+ componentsPerAttribute: 3,
235
251
  vertexBuffer: Buffer.createVertexBuffer({
236
- typedArray: attributeArrays.showAndColor,
252
+ typedArray: attributeArrays.showColorAlpha,
237
253
  context,
238
- // @ts-expect-error Requires https://github.com/CesiumGS/cesium/pull/13203.
239
254
  usage: BufferUsage.STATIC_DRAW,
240
255
  }),
241
256
  },
@@ -251,11 +266,11 @@ function renderBufferPolygonCollection(collection, frameState, renderContext) {
251
266
  indexCount,
252
267
  );
253
268
 
254
- for (const key in BufferPolygonAttributeLocations) {
255
- if (Object.hasOwn(BufferPolygonAttributeLocations, key)) {
269
+ for (const key in attributeLocations) {
270
+ if (Object.hasOwn(attributeLocations, key)) {
256
271
  const attribute = /** @type {BufferPolygonAttribute} */ (key);
257
272
  renderContext.vertexArray.copyAttributeFromRange(
258
- BufferPolygonAttributeLocations[attribute],
273
+ attributeLocations[attribute],
259
274
  renderContext.attributeArrays[attribute],
260
275
  vertexOffset,
261
276
  vertexCount,
@@ -266,7 +281,10 @@ function renderBufferPolygonCollection(collection, frameState, renderContext) {
266
281
 
267
282
  if (!defined(renderContext.renderState)) {
268
283
  renderContext.renderState = RenderState.fromCache({
269
- blending: BlendingState.DISABLED,
284
+ blending:
285
+ collection._blendOption === BlendOption.OPAQUE
286
+ ? BlendingState.DISABLED
287
+ : BlendingState.ALPHA_BLEND,
270
288
  depthTest: { enabled: true },
271
289
  });
272
290
  }
@@ -276,34 +294,47 @@ function renderBufferPolygonCollection(collection, frameState, renderContext) {
276
294
  context,
277
295
  vertexShaderSource: new ShaderSource({
278
296
  sources: [BufferPolygonMaterialVS],
297
+ defines: useFloat64 ? ["USE_FLOAT64"] : [],
279
298
  }),
280
299
  fragmentShaderSource: new ShaderSource({
281
300
  sources: [BufferPolygonMaterialFS],
282
301
  }),
283
- attributeLocations: BufferPolygonAttributeLocations,
302
+ attributeLocations,
284
303
  });
285
304
  }
286
305
 
287
- if (
288
- !defined(renderContext.command) ||
289
- isCommandDirty(collection, renderContext.command)
290
- ) {
306
+ const drawCount = collection.triangleCount * 3;
307
+
308
+ if (!defined(renderContext.command)) {
291
309
  renderContext.command = new DrawCommand({
292
310
  vertexArray: renderContext.vertexArray,
293
311
  renderState: renderContext.renderState,
294
312
  shaderProgram: renderContext.shaderProgram,
295
313
  primitiveType: PrimitiveType.TRIANGLES,
296
- pass: Pass.OPAQUE,
297
- pickId: "v_pickColor",
314
+ pass:
315
+ collection._blendOption === BlendOption.OPAQUE
316
+ ? Pass.OPAQUE
317
+ : Pass.TRANSLUCENT,
318
+ pickId: collection._allowPicking ? "v_pickColor" : undefined,
298
319
  owner: collection,
299
- count: collection.triangleCount * 3,
300
- modelMatrix: collection.modelMatrix,
301
- boundingVolume: collection.boundingVolumeWC,
320
+ count: drawCount,
321
+ modelMatrix: collection.modelMatrix, // shared reference
322
+ boundingVolume: collection.boundingVolume, // shared reference
302
323
  debugShowBoundingVolume: collection.debugShowBoundingVolume,
303
324
  });
304
325
  }
305
326
 
306
- frameState.commandList.push(renderContext.command);
327
+ const command = renderContext.command;
328
+
329
+ if (command.count !== drawCount) {
330
+ command.count = drawCount;
331
+ }
332
+
333
+ if (command.debugShowBoundingVolume !== collection.debugShowBoundingVolume) {
334
+ command.debugShowBoundingVolume = collection.debugShowBoundingVolume;
335
+ }
336
+
337
+ frameState.commandList.push(command);
307
338
 
308
339
  collection._dirtyCount = 0;
309
340
  collection._dirtyOffset = 0;
@@ -311,31 +342,6 @@ function renderBufferPolygonCollection(collection, frameState, renderContext) {
311
342
  return renderContext;
312
343
  }
313
344
 
314
- /**
315
- * Returns true if DrawCommand is out of date for the given collection.
316
- * @param {BufferPolygonCollection} collection
317
- * @param {DrawCommand} command
318
- * @ignore
319
- */
320
- function isCommandDirty(collection, command) {
321
- const isModelMatrixEqual = Matrix4.equals(
322
- collection.modelMatrix,
323
- command._modelMatrix,
324
- );
325
-
326
- const isBoundingVolumeEqual = BoundingSphere.equals(
327
- collection.boundingVolumeWC,
328
- command._boundingVolume,
329
- );
330
-
331
- return (
332
- collection.triangleCount * 3 !== command._count ||
333
- collection.debugShowBoundingVolume !== command.debugShowBoundingVolume ||
334
- !isModelMatrixEqual ||
335
- !isBoundingVolumeEqual
336
- );
337
- }
338
-
339
345
  /**
340
346
  * Computes dirty ranges for attribute and index buffers in a collection.
341
347
  * @param {BufferPolygonCollection} collection
@@ -375,12 +381,6 @@ function destroyRenderContext() {
375
381
  if (defined(context.renderState)) {
376
382
  RenderState.removeFromCache(context.renderState);
377
383
  }
378
-
379
- if (defined(context.pickIds)) {
380
- for (const pickId of context.pickIds) {
381
- pickId.destroy();
382
- }
383
- }
384
384
  }
385
385
 
386
386
  export default renderBufferPolygonCollection;