@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
@@ -2,9 +2,13 @@ import defined from "../../Core/defined.js";
2
2
  import Cartesian3 from "../../Core/Cartesian3.js";
3
3
  import Cartesian4 from "../../Core/Cartesian4.js";
4
4
  import Matrix3 from "../../Core/Matrix3.js";
5
+ import Matrix4 from "../../Core/Matrix4.js";
6
+ import Transforms from "../../Core/Transforms.js";
5
7
  import ShaderDestination from "../../Renderer/ShaderDestination.js";
6
8
  import Pass from "../../Renderer/Pass.js";
7
9
  import MaterialStageFS from "../../Shaders/Model/MaterialStageFS.js";
10
+ import ConstantLodStageVS from "../../Shaders/Model/ConstantLodStageVS.js";
11
+ import ConstantLodStageFS from "../../Shaders/Model/ConstantLodStageFS.js";
8
12
  import AlphaMode from "../AlphaMode.js";
9
13
  import ModelComponents from "../ModelComponents.js";
10
14
  import VertexAttributeSemantic from "../VertexAttributeSemantic.js";
@@ -61,6 +65,25 @@ MaterialPipelineStage.process = function (
61
65
  const material = primitive.material;
62
66
  const { model, uniformMap, shaderBuilder } = renderResources;
63
67
 
68
+ if (!defined(uniformMap.u_constantLodDistance)) {
69
+ uniformMap.u_constantLodDistance = function () {
70
+ const boundingSphere = model.boundingSphere;
71
+ const camera = frameState.camera;
72
+
73
+ if (defined(boundingSphere) && defined(camera)) {
74
+ const distance = Cartesian3.distance(
75
+ camera.positionWC,
76
+ boundingSphere.center,
77
+ );
78
+ // Clamp to a minimum small distance to avoid calling log2(0) in shader
79
+ return Math.max(distance, 0.1);
80
+ }
81
+
82
+ // Return a fallback distance before camera/bounding sphere are available
83
+ return 1.0;
84
+ };
85
+ }
86
+
64
87
  // Classification models only use position and feature ID attributes,
65
88
  // so textures should be disabled to avoid compile errors.
66
89
  const hasClassification = defined(model.classificationType);
@@ -78,6 +101,7 @@ MaterialPipelineStage.process = function (
78
101
  defaultNormalTexture,
79
102
  defaultEmissiveTexture,
80
103
  disableTextures,
104
+ renderResources,
81
105
  );
82
106
 
83
107
  if (defined(material.specularGlossiness)) {
@@ -87,6 +111,7 @@ MaterialPipelineStage.process = function (
87
111
  shaderBuilder,
88
112
  defaultTexture,
89
113
  disableTextures,
114
+ renderResources,
90
115
  );
91
116
  } else {
92
117
  if (
@@ -131,6 +156,7 @@ MaterialPipelineStage.process = function (
131
156
  shaderBuilder,
132
157
  defaultTexture,
133
158
  disableTextures,
159
+ renderResources,
134
160
  );
135
161
  }
136
162
 
@@ -206,6 +232,112 @@ MaterialPipelineStage.process = function (
206
232
  }
207
233
  };
208
234
 
235
+ /**
236
+ * Process constant LOD extension for a texture
237
+ *
238
+ * @param {ShaderBuilder} shaderBuilder The shader builder to modify
239
+ * @param {Object<string, Function>} uniformMap The uniform map to modify.
240
+ * @param {ModelComponents.TextureReader} textureReader The texture to add to the shader
241
+ * @param {string} uniformName The name of the sampler uniform
242
+ * @param {string} defineName The name of the texture for use in the defines
243
+ * @param {PrimitiveRenderResources|undefined} renderResources The render resources
244
+ * @private
245
+ */
246
+ function processConstantLod(
247
+ shaderBuilder,
248
+ uniformMap,
249
+ textureReader,
250
+ uniformName,
251
+ defineName,
252
+ renderResources,
253
+ ) {
254
+ const constantLod = textureReader.constantLod;
255
+
256
+ if (!defined(constantLod)) {
257
+ return;
258
+ }
259
+
260
+ // renderResources is required for constant LOD to transform from ECEF/world coordinates to ENU
261
+ if (!defined(renderResources)) {
262
+ return;
263
+ }
264
+
265
+ const constantLodDefine = `HAS_${defineName}_CONSTANT_LOD`;
266
+ shaderBuilder.addDefine(constantLodDefine, undefined, ShaderDestination.BOTH);
267
+
268
+ if (!defined(uniformMap.u_constantLodOffset)) {
269
+ shaderBuilder.addDefine(
270
+ "HAS_CONSTANT_LOD",
271
+ undefined,
272
+ ShaderDestination.BOTH,
273
+ );
274
+
275
+ shaderBuilder.addVarying("vec3", "v_constantLodUvCustom");
276
+
277
+ shaderBuilder.addUniform(
278
+ "vec2",
279
+ "u_constantLodOffset",
280
+ ShaderDestination.VERTEX,
281
+ );
282
+
283
+ shaderBuilder.addUniform(
284
+ "float",
285
+ "u_constantLodDistance",
286
+ ShaderDestination.VERTEX,
287
+ );
288
+
289
+ shaderBuilder.addUniform(
290
+ "mat4",
291
+ "u_constantLodWorldToEnu",
292
+ ShaderDestination.VERTEX,
293
+ );
294
+
295
+ shaderBuilder.addFragmentLines(ConstantLodStageFS);
296
+
297
+ const constantLodLines = ConstantLodStageVS.split("\n").filter((line) => {
298
+ return !line.trim().startsWith("//") || line.includes("#");
299
+ });
300
+ shaderBuilder.addFunctionLines("setDynamicVaryingsVS", constantLodLines);
301
+ }
302
+
303
+ const paramsUniformName = `${uniformName}ConstantLodParams`;
304
+ shaderBuilder.addUniform(
305
+ "vec3",
306
+ paramsUniformName,
307
+ ShaderDestination.FRAGMENT,
308
+ );
309
+
310
+ uniformMap[paramsUniformName] = function () {
311
+ return new Cartesian3(
312
+ constantLod.minClampDistance,
313
+ constantLod.maxClampDistance,
314
+ constantLod.repetitions,
315
+ );
316
+ };
317
+
318
+ if (!defined(uniformMap.u_constantLodOffset)) {
319
+ uniformMap.u_constantLodOffset = function () {
320
+ return constantLod.offset;
321
+ };
322
+
323
+ const enuMatrixInverse = Matrix4.clone(Matrix4.IDENTITY);
324
+ let matrixComputed = false;
325
+
326
+ uniformMap.u_constantLodWorldToEnu = function () {
327
+ if (!matrixComputed) {
328
+ const boundingSphere = renderResources.model.boundingSphere;
329
+ if (defined(boundingSphere)) {
330
+ const modelCenter = boundingSphere.center;
331
+ const enuFrame = Transforms.eastNorthUpToFixedFrame(modelCenter);
332
+ Matrix4.inverse(enuFrame, enuMatrixInverse);
333
+ matrixComputed = true;
334
+ }
335
+ }
336
+ return matrixComputed ? enuMatrixInverse : Matrix4.IDENTITY;
337
+ };
338
+ }
339
+ }
340
+
209
341
  /**
210
342
  * Add uniforms and defines for the BENTLEY_materials_line_style extension.
211
343
  *
@@ -426,6 +558,8 @@ function processTextureScale(
426
558
  * @param {ModelComponents.TextureReader} textureReader The texture to add to the shader
427
559
  * @param {string} uniformName The name of the sampler uniform such as <code>u_baseColorTexture</code>
428
560
  * @param {string} defineName The name of the texture for use in the defines, minus any prefix or suffix. For example, "BASE_COLOR" or "EMISSIVE"
561
+ * @param {Texture} defaultTexture The default texture to use as a fallback if the texture is not yet loaded
562
+ * @param {PrimitiveRenderResources|undefined} renderResources The render resources
429
563
  *
430
564
  * @private
431
565
  */
@@ -436,6 +570,7 @@ function processTexture(
436
570
  uniformName,
437
571
  defineName,
438
572
  defaultTexture,
573
+ renderResources,
439
574
  ) {
440
575
  // Add a uniform for the texture itself
441
576
  shaderBuilder.addUniform(
@@ -487,6 +622,16 @@ function processTexture(
487
622
  defineName,
488
623
  );
489
624
  }
625
+
626
+ // Process constant LOD extension if present
627
+ processConstantLod(
628
+ shaderBuilder,
629
+ uniformMap,
630
+ textureReader,
631
+ uniformName,
632
+ defineName,
633
+ renderResources,
634
+ );
490
635
  }
491
636
 
492
637
  function processMaterialUniforms(
@@ -497,6 +642,7 @@ function processMaterialUniforms(
497
642
  defaultNormalTexture,
498
643
  defaultEmissiveTexture,
499
644
  disableTextures,
645
+ renderResources,
500
646
  ) {
501
647
  const { emissiveFactor, emissiveTexture, normalTexture, occlusionTexture } =
502
648
  material;
@@ -531,14 +677,43 @@ function processMaterialUniforms(
531
677
  }
532
678
  }
533
679
 
680
+ // Extract base color constant LOD to apply to normal texture
681
+ let baseColorConstantLod;
682
+ if (
683
+ defined(material.metallicRoughness) &&
684
+ defined(material.metallicRoughness.baseColorTexture) &&
685
+ defined(material.metallicRoughness.baseColorTexture.constantLod)
686
+ ) {
687
+ baseColorConstantLod =
688
+ material.metallicRoughness.baseColorTexture.constantLod;
689
+ } else if (
690
+ defined(material.specularGlossiness) &&
691
+ defined(material.specularGlossiness.diffuseTexture) &&
692
+ defined(material.specularGlossiness.diffuseTexture.constantLod)
693
+ ) {
694
+ baseColorConstantLod =
695
+ material.specularGlossiness.diffuseTexture.constantLod;
696
+ }
697
+
534
698
  if (defined(normalTexture) && !disableTextures) {
699
+ // If normal texture AND base color have constant LOD, use base color's constant LOD properties to keep textures in sync
700
+ let normalTextureToProcess = normalTexture;
701
+ if (defined(normalTexture.constantLod) && defined(baseColorConstantLod)) {
702
+ normalTextureToProcess = Object.create(
703
+ Object.getPrototypeOf(normalTexture),
704
+ );
705
+ Object.assign(normalTextureToProcess, normalTexture);
706
+ normalTextureToProcess.constantLod = baseColorConstantLod;
707
+ }
708
+
535
709
  processTexture(
536
710
  shaderBuilder,
537
711
  uniformMap,
538
- normalTexture,
712
+ normalTextureToProcess,
539
713
  "u_normalTexture",
540
714
  "NORMAL",
541
715
  defaultNormalTexture,
716
+ renderResources,
542
717
  );
543
718
  }
544
719
 
@@ -560,8 +735,9 @@ function processMaterialUniforms(
560
735
  * @param {ModelComponents.SpecularGlossiness} specularGlossiness
561
736
  * @param {Object<string, Function>} uniformMap The uniform map to modify.
562
737
  * @param {ShaderBuilder} shaderBuilder
563
- * @param {Texture} defaultTexture
738
+ * @param {Texture} defaultTexture The default texture to use as a fallback if the texture is not yet loaded
564
739
  * @param {boolean} disableTextures
740
+ * @param {PrimitiveRenderResources|undefined} renderResources The render resources for the primitive
565
741
  * @private
566
742
  */
567
743
  function processSpecularGlossinessUniforms(
@@ -570,6 +746,7 @@ function processSpecularGlossinessUniforms(
570
746
  shaderBuilder,
571
747
  defaultTexture,
572
748
  disableTextures,
749
+ renderResources,
573
750
  ) {
574
751
  const {
575
752
  diffuseTexture,
@@ -593,6 +770,7 @@ function processSpecularGlossinessUniforms(
593
770
  "u_diffuseTexture",
594
771
  "DIFFUSE",
595
772
  defaultTexture,
773
+ renderResources,
596
774
  );
597
775
  }
598
776
 
@@ -925,8 +1103,9 @@ function processClearcoatUniforms(
925
1103
  * @param {ModelComponents.MetallicRoughness} metallicRoughness
926
1104
  * @param {Object<string, Function>} uniformMap The uniform map to modify.
927
1105
  * @param {ShaderBuilder} shaderBuilder
928
- * @param {Texture} defaultTexture
1106
+ * @param {Texture} defaultTexture The default texture to use as a fallback if the texture is not yet loaded
929
1107
  * @param {boolean} disableTextures
1108
+ * @param {PrimitiveRenderResources|undefined} renderResources The render resources for the primitive
930
1109
  * @private
931
1110
  */
932
1111
  function processMetallicRoughnessUniforms(
@@ -935,6 +1114,7 @@ function processMetallicRoughnessUniforms(
935
1114
  shaderBuilder,
936
1115
  defaultTexture,
937
1116
  disableTextures,
1117
+ renderResources,
938
1118
  ) {
939
1119
  shaderBuilder.addDefine(
940
1120
  "USE_METALLIC_ROUGHNESS",
@@ -951,6 +1131,7 @@ function processMetallicRoughnessUniforms(
951
1131
  "u_baseColorTexture",
952
1132
  "BASE_COLOR",
953
1133
  defaultTexture,
1134
+ renderResources,
954
1135
  );
955
1136
  }
956
1137
 
@@ -20,6 +20,7 @@ import ClippingPlaneCollection from "../ClippingPlaneCollection.js";
20
20
  import ClippingPolygonCollection from "../ClippingPolygonCollection.js";
21
21
  import DynamicEnvironmentMapManager from "../DynamicEnvironmentMapManager.js";
22
22
  import ColorBlendMode from "../ColorBlendMode.js";
23
+ import EdgeDisplayMode from "../EdgeDisplayMode.js";
23
24
  import GltfLoader from "../GltfLoader.js";
24
25
  import HeightReference, {
25
26
  isHeightReferenceRelative,
@@ -75,6 +76,11 @@ import ModelImagery from "./ModelImagery.js";
75
76
  * {@link https://github.com/KhronosGroup/glTF/pull/2514|EXT_mesh_primitive_restart}
76
77
  * </li>
77
78
  * <li>
79
+ * {@link https://github.com/KhronosGroup/glTF/pull/2479|EXT_mesh_primitive_edge_visibility}
80
+ * (edges are hidden by default; set {@link EdgeDisplayMode} via
81
+ * {@link Model#edgeDisplayMode} or {@link Cesium3DTileset#edgeDisplayMode} to display them)
82
+ * </li>
83
+ * <li>
78
84
  * {@link https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Vendor/EXT_meshopt_compression|EXT_meshopt_compression}
79
85
  * </li>
80
86
  * <li>
@@ -151,6 +157,7 @@ import ModelImagery from "./ModelImagery.js";
151
157
  * @privateParam {Color} [options.color] A color that blends with the model's rendered color.
152
158
  * @privateParam {ColorBlendMode} [options.colorBlendMode=ColorBlendMode.HIGHLIGHT] Defines how the color blends with the model.
153
159
  * @privateParam {number} [options.colorBlendAmount=0.5] Value used to determine the color strength when the <code>colorBlendMode</code> is <code>MIX</code>. A value of 0.0 results in the model's rendered color while a value of 1.0 results in a solid color, with any value in-between resulting in a mix of the two.
160
+ * @privateParam {EdgeDisplayMode} [options.edgeDisplayMode=EdgeDisplayMode.SURFACES_ONLY] Controls how edges from the {@link https://github.com/KhronosGroup/glTF/pull/2479|EXT_mesh_primitive_edge_visibility} extension are rendered relative to surface geometry.
154
161
  * @privateParam {Color} [options.silhouetteColor=Color.RED] The silhouette color. If more than 256 models have silhouettes enabled, there is a small chance that overlapping models will have minor artifacts.
155
162
  * @privateParam {number} [options.silhouetteSize=0.0] The size of the silhouette in pixels.
156
163
  * @privateParam {boolean} [options.enableShowOutline=true] Whether to enable outlines for models using the {@link https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/CESIUM_primitive_outline|CESIUM_primitive_outline} extension. This can be set to false to avoid the additional processing of geometry at load time. When false, the showOutlines and outlineColor options are ignored.
@@ -417,6 +424,8 @@ function Model(options) {
417
424
  this._enableDebugWireframe = options.enableDebugWireframe ?? false;
418
425
  this._enableShowOutline = options.enableShowOutline ?? true;
419
426
  this._debugWireframe = options.debugWireframe ?? false;
427
+ this._edgeDisplayMode =
428
+ options.edgeDisplayMode ?? EdgeDisplayMode.SURFACES_ONLY;
420
429
 
421
430
  // Warning for improper setup of debug wireframe
422
431
  if (
@@ -1204,6 +1213,29 @@ Object.defineProperties(Model.prototype, {
1204
1213
  },
1205
1214
  },
1206
1215
 
1216
+ /**
1217
+ * Controls how edges from the
1218
+ * {@link https://github.com/KhronosGroup/glTF/pull/2479|EXT_mesh_primitive_edge_visibility}
1219
+ * glTF extension are rendered relative to surface geometry. Primitives that
1220
+ * do not declare the extension are unaffected by this setting.
1221
+ *
1222
+ * @memberof Model.prototype
1223
+ *
1224
+ * @type {EdgeDisplayMode}
1225
+ *
1226
+ * @default EdgeDisplayMode.SURFACES_ONLY
1227
+ *
1228
+ * @experimental This feature is using part of the glTF spec that is not yet final and is subject to change without Cesium's standard deprecation policy.
1229
+ */
1230
+ edgeDisplayMode: {
1231
+ get: function () {
1232
+ return this._edgeDisplayMode;
1233
+ },
1234
+ set: function (value) {
1235
+ this._edgeDisplayMode = value;
1236
+ },
1237
+ },
1238
+
1207
1239
  /**
1208
1240
  * Whether or not to render the model.
1209
1241
  *
@@ -2941,6 +2973,7 @@ Model.prototype.destroyModelResources = function () {
2941
2973
  * @param {Color} [options.color] A color that blends with the model's rendered color.
2942
2974
  * @param {ColorBlendMode} [options.colorBlendMode=ColorBlendMode.HIGHLIGHT] Defines how the color blends with the model.
2943
2975
  * @param {number} [options.colorBlendAmount=0.5] Value used to determine the color strength when the <code>colorBlendMode</code> is <code>MIX</code>. A value of 0.0 results in the model's rendered color while a value of 1.0 results in a solid color, with any value in-between resulting in a mix of the two.
2976
+ * @param {EdgeDisplayMode} [options.edgeDisplayMode=EdgeDisplayMode.SURFACES_ONLY] Controls how edges from the {@link https://github.com/KhronosGroup/glTF/pull/2479|EXT_mesh_primitive_edge_visibility} extension are rendered relative to surface geometry.
2944
2977
  * @param {Color} [options.silhouetteColor=Color.RED] The silhouette color. If more than 256 models have silhouettes enabled, there is a small chance that overlapping models will have minor artifacts.
2945
2978
  * @param {number} [options.silhouetteSize=0.0] The size of the silhouette in pixels.
2946
2979
  * @param {boolean} [options.enableShowOutline=true] Whether to enable outlines for models using the {@link https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/CESIUM_primitive_outline|CESIUM_primitive_outline} extension. This can be set false to avoid post-processing geometry at load time. When false, the showOutlines and outlineColor options are ignored.
@@ -3307,6 +3340,7 @@ function makeModelOptions(loader, modelType, options) {
3307
3340
  color: options.color,
3308
3341
  colorBlendAmount: options.colorBlendAmount,
3309
3342
  colorBlendMode: options.colorBlendMode,
3343
+ edgeDisplayMode: options.edgeDisplayMode,
3310
3344
  silhouetteColor: options.silhouetteColor,
3311
3345
  silhouetteSize: options.silhouetteSize,
3312
3346
  enableShowOutline: options.enableShowOutline,