@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
@@ -0,0 +1,499 @@
1
+ // @ts-check
2
+
3
+ import Cartographic from "../Core/Cartographic.js";
4
+ import Cesium3DTileset from "./Cesium3DTileset.js";
5
+ import DeveloperError from "../Core/DeveloperError.js";
6
+ import Ellipsoid from "../Core/Ellipsoid.js";
7
+ import Rectangle from "../Core/Rectangle.js";
8
+ import Resource from "../Core/Resource.js";
9
+ import getAbsoluteUri from "../Core/getAbsoluteUri.js";
10
+ import WebMercatorTilingScheme from "../Core/WebMercatorTilingScheme.js";
11
+ import defined from "../Core/defined.js";
12
+ import destroyObject from "../Core/destroyObject.js";
13
+ import CesiumMath from "../Core/Math.js";
14
+
15
+ /** @import FrameState from "./FrameState.js"; */
16
+ /** @import PassState from "../Renderer/PassState.js"; */
17
+ /** @import TilingScheme from "../Core/TilingScheme.js"; */
18
+
19
+ /**
20
+ * @typedef {object} TilesetJsonRoot
21
+ * @property {object} [boundingVolume]
22
+ * @property {number} [geometricError]
23
+ * @property {"REPLACE"|"ADD"} [refine]
24
+ * @property {unknown} [content]
25
+ * @property {unknown[]} [children]
26
+ * @ignore
27
+ */
28
+
29
+ const DEFAULT_MIN_ZOOM = 0;
30
+ const DEFAULT_MAX_ZOOM = 14;
31
+ const DEFAULT_REGION_MINIMUM_HEIGHT = -1000.0;
32
+ const DEFAULT_REGION_MAXIMUM_HEIGHT = 10000.0;
33
+ const EARTH_CIRCUMFERENCE_METERS =
34
+ 2.0 * Math.PI * Ellipsoid.WGS84.maximumRadius;
35
+ const WEB_MERCATOR_TILE_SIZE = 256.0;
36
+
37
+ const scratchTileRectangle = new Rectangle();
38
+ const scratchIntersectionRectangle = new Rectangle();
39
+
40
+ /**
41
+ * Base provider for URL-template vector sources that are rendered through a
42
+ * runtime-generated 3D Tiles tileset.
43
+ *
44
+ * @private
45
+ */
46
+ class UrlTemplate3DTilesDataProvider {
47
+ /**
48
+ * @param {Resource|string} urlTemplate URL template containing {z}, {x}, and {y} placeholders.
49
+ * @param {object} [options] Provider options.
50
+ * @param {number} [options.minZoom=0] Minimum zoom level represented in the generated tileset.
51
+ * @param {number} [options.maxZoom=14] Maximum zoom level represented in the generated tileset.
52
+ * @param {Rectangle} [options.extent] Optional geographic extent in radians to constrain the generated tile tree.
53
+ * @param {string} [options.featureIdProperty] Feature property name to use as feature ID when supported by content decoding.
54
+ */
55
+ constructor(urlTemplate, options) {
56
+ options = options ?? {};
57
+ this._resource = Resource.createIfNeeded(urlTemplate);
58
+ // @ts-expect-error Missing types.
59
+ this._urlTemplate = this._resource.url;
60
+ this._extent = Rectangle.clone(options.extent);
61
+ this._minZoom = options.minZoom ?? DEFAULT_MIN_ZOOM;
62
+ this._maxZoom = options.maxZoom ?? DEFAULT_MAX_ZOOM;
63
+ this._featureIdProperty = options.featureIdProperty;
64
+ this._show = true;
65
+ this._tileset = undefined;
66
+ this._tilesetJsonUrl = undefined;
67
+ }
68
+
69
+ /**
70
+ * Creates a provider from a URL template.
71
+ *
72
+ * @param {Resource|string} url URL template containing {z}, {x}, and {y} placeholders.
73
+ * @param {object} [options] Provider options.
74
+ * @returns {Promise<UrlTemplate3DTilesDataProvider>}
75
+ */
76
+ static async fromUrl(url, options) {
77
+ const provider = new this(url, options);
78
+ await provider._initializeTileset();
79
+ return provider;
80
+ }
81
+
82
+ /**
83
+ * URL template containing {z}/{x}/{y}.
84
+ *
85
+ * @type {string}
86
+ * @readonly
87
+ */
88
+ get urlTemplate() {
89
+ return this._urlTemplate;
90
+ }
91
+
92
+ /**
93
+ * Resource derived from the URL template.
94
+ *
95
+ * @type {Resource}
96
+ * @readonly
97
+ */
98
+ get resource() {
99
+ return this._resource;
100
+ }
101
+
102
+ /**
103
+ * Optional geographic extent in radians used to generate tile headers.
104
+ *
105
+ * @type {Rectangle|undefined}
106
+ * @readonly
107
+ */
108
+ get extent() {
109
+ return this._extent;
110
+ }
111
+
112
+ /**
113
+ * Backing 3D Tileset.
114
+ *
115
+ * @type {Cesium3DTileset|undefined}
116
+ * @readonly
117
+ */
118
+ get tileset() {
119
+ return this._tileset;
120
+ }
121
+
122
+ /**
123
+ * Determines if the generated tileset is shown.
124
+ *
125
+ * @type {boolean}
126
+ */
127
+ get show() {
128
+ return this._show;
129
+ }
130
+
131
+ set show(value) {
132
+ this._show = value;
133
+ if (defined(this._tileset)) {
134
+ this._tileset.show = value;
135
+ }
136
+ }
137
+
138
+ /** @protected */
139
+ _createRuntimeTilesetOptions() {
140
+ return {
141
+ minZoom: this._minZoom,
142
+ maxZoom: this._maxZoom,
143
+ extent: this._extent,
144
+ };
145
+ }
146
+
147
+ /**
148
+ * @protected
149
+ * @returns {object}
150
+ */
151
+ _createTilesetLoadOptions() {
152
+ return {};
153
+ }
154
+
155
+ /**
156
+ * @protected
157
+ * @param {Cesium3DTileset} _tileset
158
+ */
159
+ _configureTileset(_tileset) {}
160
+
161
+ /**
162
+ * Subclasses must return a runtime content codec describing how to turn
163
+ * a downloaded tile payload into a {@link Cesium3DTileContent}. See
164
+ * {@link Cesium3DTileset#_runtimeContentCodec} for the expected shape.
165
+ *
166
+ * @protected
167
+ * @returns {object}
168
+ */
169
+ _createCodec() {
170
+ //>>includeStart('debug', pragmas.debug);
171
+ throw new DeveloperError(
172
+ "UrlTemplate3DTilesDataProvider subclasses must implement _createCodec().",
173
+ );
174
+ //>>includeEnd('debug');
175
+ }
176
+
177
+ /**
178
+ * @private
179
+ */
180
+ async _initializeTileset() {
181
+ const tilesetJson = buildRuntimeTilesetJson(
182
+ this._resource,
183
+ this._createRuntimeTilesetOptions(),
184
+ );
185
+ const tilesetBlob = new Blob([JSON.stringify(tilesetJson)], {
186
+ type: "application/json",
187
+ });
188
+ const tilesetUrl = URL.createObjectURL(tilesetBlob);
189
+ this._tilesetJsonUrl = tilesetUrl;
190
+
191
+ try {
192
+ this._tileset = await Cesium3DTileset.fromUrl(
193
+ tilesetUrl,
194
+ this._createTilesetLoadOptions(),
195
+ );
196
+ } catch (error) {
197
+ URL.revokeObjectURL(tilesetUrl);
198
+ this._tilesetJsonUrl = undefined;
199
+ throw error;
200
+ }
201
+ URL.revokeObjectURL(tilesetUrl);
202
+ this._tilesetJsonUrl = undefined;
203
+
204
+ this._configureTileset(this._tileset);
205
+ this._tileset._runtimeContentCodec = this._createCodec();
206
+ this._tileset.show = this._show;
207
+ }
208
+
209
+ /**
210
+ * @private
211
+ * @param {FrameState} frameState
212
+ */
213
+ update(frameState) {
214
+ if (defined(this._tileset)) {
215
+ this._tileset.update(frameState);
216
+ }
217
+ }
218
+
219
+ /**
220
+ * @private
221
+ * @param {FrameState} frameState
222
+ */
223
+ prePassesUpdate(frameState) {
224
+ if (defined(this._tileset)) {
225
+ this._tileset.prePassesUpdate(frameState);
226
+ }
227
+ }
228
+
229
+ /**
230
+ * @private
231
+ * @param {FrameState} frameState
232
+ */
233
+ postPassesUpdate(frameState) {
234
+ if (defined(this._tileset)) {
235
+ this._tileset.postPassesUpdate(frameState);
236
+ }
237
+ }
238
+
239
+ /**
240
+ * @private
241
+ * @param {FrameState} frameState
242
+ * @param {PassState} passState
243
+ */
244
+ updateForPass(frameState, passState) {
245
+ if (defined(this._tileset)) {
246
+ this._tileset.updateForPass(frameState, passState);
247
+ }
248
+ }
249
+
250
+ isDestroyed() {
251
+ return false;
252
+ }
253
+
254
+ destroy() {
255
+ if (defined(this._tileset)) {
256
+ this._tileset.destroy();
257
+ this._tileset = undefined;
258
+ }
259
+ if (defined(this._tilesetJsonUrl)) {
260
+ URL.revokeObjectURL(this._tilesetJsonUrl);
261
+ this._tilesetJsonUrl = undefined;
262
+ }
263
+ this._resource = undefined;
264
+ this._extent = undefined;
265
+ this._featureIdProperty = undefined;
266
+ return destroyObject(this);
267
+ }
268
+ }
269
+
270
+ /**
271
+ * @param {Resource} resource
272
+ * @param {object} options
273
+ * @param {number} options.minZoom
274
+ * @param {number} options.maxZoom
275
+ * @param {Rectangle} [options.extent]
276
+ * @returns {object}
277
+ * @ignore
278
+ */
279
+ function buildRuntimeTilesetJson(resource, options) {
280
+ const tilingScheme = new WebMercatorTilingScheme();
281
+ const extent = defined(options.extent)
282
+ ? Rectangle.clone(options.extent)
283
+ : Rectangle.clone(tilingScheme.rectangle);
284
+ const minLevelRange = computeTileRangeForExtent(
285
+ tilingScheme,
286
+ extent,
287
+ options.minZoom,
288
+ );
289
+
290
+ /** @type {TilesetJsonRoot} */
291
+ const root = {
292
+ boundingVolume: {
293
+ region: rectangleToRegion(extent),
294
+ },
295
+ // Root has no renderable content, so keep a coarse error to ensure
296
+ // refinement reaches the first renderable zoom even when minZoom is high.
297
+ geometricError: computeGeometricError(0),
298
+ refine: "REPLACE",
299
+ children: [],
300
+ };
301
+ for (let y = minLevelRange.minY; y <= minLevelRange.maxY; y++) {
302
+ for (let x = minLevelRange.minX; x <= minLevelRange.maxX; x++) {
303
+ const child = buildTileNode(
304
+ tilingScheme,
305
+ resource,
306
+ extent,
307
+ options.minZoom,
308
+ options.maxZoom,
309
+ x,
310
+ y,
311
+ );
312
+ if (defined(child)) {
313
+ root.children.push(child);
314
+ }
315
+ }
316
+ }
317
+ if (root.children.length === 0) {
318
+ root.geometricError = 0.0;
319
+ }
320
+ return {
321
+ asset: {
322
+ version: "1.1",
323
+ },
324
+ geometricError: root.geometricError,
325
+ root: root,
326
+ };
327
+ }
328
+
329
+ /**
330
+ * @param {TilingScheme} tilingScheme
331
+ * @param {Resource} resource
332
+ * @param {Rectangle} extent
333
+ * @param {number} level
334
+ * @param {number} maxZoom
335
+ * @param {number} x
336
+ * @param {number} y
337
+ * @ignore
338
+ */
339
+ function buildTileNode(tilingScheme, resource, extent, level, maxZoom, x, y) {
340
+ if (
341
+ !tileIntersectsExtent(
342
+ tilingScheme,
343
+ level,
344
+ x,
345
+ y,
346
+ extent,
347
+ scratchTileRectangle,
348
+ scratchIntersectionRectangle,
349
+ )
350
+ ) {
351
+ return undefined;
352
+ }
353
+ const tileRectangle = tilingScheme.tileXYToRectangle(
354
+ x,
355
+ y,
356
+ level,
357
+ new Rectangle(),
358
+ );
359
+
360
+ /** @type {TilesetJsonRoot} */
361
+ const node = {
362
+ boundingVolume: {
363
+ region: rectangleToRegion(tileRectangle),
364
+ },
365
+ geometricError: level < maxZoom ? computeGeometricError(level) : 0.0,
366
+ refine: "REPLACE",
367
+ content: {
368
+ uri: resolveTileUrl(resource, level, x, y),
369
+ },
370
+ };
371
+ if (level >= maxZoom) {
372
+ return node;
373
+ }
374
+ const childLevel = level + 1;
375
+ const children = [];
376
+ for (let childY = y * 2; childY <= y * 2 + 1; childY++) {
377
+ for (let childX = x * 2; childX <= x * 2 + 1; childX++) {
378
+ const child = buildTileNode(
379
+ tilingScheme,
380
+ resource,
381
+ extent,
382
+ childLevel,
383
+ maxZoom,
384
+ childX,
385
+ childY,
386
+ );
387
+ if (defined(child)) {
388
+ children.push(child);
389
+ }
390
+ }
391
+ }
392
+ if (children.length > 0) {
393
+ node.children = children;
394
+ } else {
395
+ node.geometricError = 0.0;
396
+ }
397
+ return node;
398
+ }
399
+
400
+ /**
401
+ * @param {Resource} resource
402
+ * @param {number} level
403
+ * @param {number} x
404
+ * @param {number} y
405
+ * @ignore
406
+ */
407
+ function resolveTileUrl(resource, level, x, y) {
408
+ // @ts-expect-error Missing types.
409
+ const template = resource.url;
410
+ const tileUrl = template
411
+ .replace(/\{z\}/gi, `${level}`)
412
+ .replace(/\{x\}/gi, `${x}`)
413
+ .replace(/\{y\}/gi, `${y}`);
414
+ return getAbsoluteUri(tileUrl);
415
+ }
416
+
417
+ /**
418
+ * @param {number} level
419
+ * @ignore
420
+ */
421
+ function computeGeometricError(level) {
422
+ return EARTH_CIRCUMFERENCE_METERS / ((1 << level) * WEB_MERCATOR_TILE_SIZE);
423
+ }
424
+
425
+ /**
426
+ * @param {Rectangle} rectangle
427
+ * @returns {number[]}
428
+ * @ignore
429
+ */
430
+ function rectangleToRegion(rectangle) {
431
+ return [
432
+ rectangle.west,
433
+ rectangle.south,
434
+ rectangle.east,
435
+ rectangle.north,
436
+ DEFAULT_REGION_MINIMUM_HEIGHT,
437
+ DEFAULT_REGION_MAXIMUM_HEIGHT,
438
+ ];
439
+ }
440
+
441
+ /**
442
+ * @param {TilingScheme} tilingScheme
443
+ * @param {Rectangle} extent
444
+ * @param {number} level
445
+ * @ignore
446
+ */
447
+ function computeTileRangeForExtent(tilingScheme, extent, level) {
448
+ const maxIndex = (1 << level) - 1;
449
+ const nw = Cartographic.fromRadians(extent.west, extent.north);
450
+ const se = Cartographic.fromRadians(extent.east, extent.south);
451
+ const nwTile = tilingScheme.positionToTileXY(nw, level);
452
+ const seTile = tilingScheme.positionToTileXY(se, level);
453
+ if (!defined(nwTile) || !defined(seTile) || extent.west > extent.east) {
454
+ return {
455
+ minX: 0,
456
+ maxX: maxIndex,
457
+ minY: 0,
458
+ maxY: maxIndex,
459
+ };
460
+ }
461
+ return {
462
+ minX: CesiumMath.clamp(Math.min(nwTile.x, seTile.x), 0, maxIndex),
463
+ maxX: CesiumMath.clamp(Math.max(nwTile.x, seTile.x), 0, maxIndex),
464
+ minY: CesiumMath.clamp(Math.min(nwTile.y, seTile.y), 0, maxIndex),
465
+ maxY: CesiumMath.clamp(Math.max(nwTile.y, seTile.y), 0, maxIndex),
466
+ };
467
+ }
468
+
469
+ /**
470
+ * @param {TilingScheme} tilingScheme
471
+ * @param {number} level
472
+ * @param {number} x
473
+ * @param {number} y
474
+ * @param {Rectangle} extent
475
+ * @param {Rectangle} tileRectangleScratch
476
+ * @param {Rectangle} intersectionScratch
477
+ * @ignore
478
+ */
479
+ function tileIntersectsExtent(
480
+ tilingScheme,
481
+ level,
482
+ x,
483
+ y,
484
+ extent,
485
+ tileRectangleScratch,
486
+ intersectionScratch,
487
+ ) {
488
+ const tileRectangle = tilingScheme.tileXYToRectangle(
489
+ x,
490
+ y,
491
+ level,
492
+ tileRectangleScratch,
493
+ );
494
+ return defined(
495
+ Rectangle.intersection(tileRectangle, extent, intersectionScratch),
496
+ );
497
+ }
498
+
499
+ export default UrlTemplate3DTilesDataProvider;