@hztxi/cesium-engine 25.0.7 → 26.2.1

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 (412) hide show
  1. package/Build/Workers/chunk-2NCNUVAT.js +56 -0
  2. package/Build/Workers/chunk-2ZYRUVVU.js +301 -0
  3. package/Build/Workers/chunk-36IU7N4V.js +1284 -0
  4. package/Build/Workers/chunk-3BDLET5S.js +198 -0
  5. package/Build/Workers/chunk-3PRHI4KX.js +241 -0
  6. package/Build/Workers/chunk-3R6E2SH4.js +672 -0
  7. package/Build/Workers/chunk-3ZKKXEXL.js +415 -0
  8. package/Build/Workers/chunk-47KVKPTO.js +415 -0
  9. package/Build/Workers/chunk-4N227IPR.js +973 -0
  10. package/Build/Workers/chunk-4P6OAPBM.js +97 -0
  11. package/Build/Workers/chunk-4ZOLEPZK.js +519 -0
  12. package/Build/Workers/chunk-5EF3WWQG.js +352 -0
  13. package/Build/Workers/chunk-5I76476T.js +288 -0
  14. package/Build/Workers/chunk-5PBZKBAP.js +511 -0
  15. package/Build/Workers/chunk-5RVAAW26.js +82 -0
  16. package/Build/Workers/chunk-5VWK76PO.js +511 -0
  17. package/Build/Workers/chunk-77DBX23X.js +455 -0
  18. package/Build/Workers/chunk-7GQOWCSN.js +959 -0
  19. package/Build/Workers/chunk-7J2ONMKC.js +198 -0
  20. package/Build/Workers/chunk-7MHUHXZZ.js +219 -0
  21. package/Build/Workers/chunk-7MQPHOAS.js +455 -0
  22. package/Build/Workers/chunk-7NJ5O7TP.js +387 -0
  23. package/Build/Workers/chunk-7Y642MCO.js +352 -0
  24. package/Build/Workers/chunk-7ZFKBLUE.js +1054 -0
  25. package/Build/Workers/chunk-A7LGY5XS.js +140 -0
  26. package/Build/Workers/chunk-AN2NVYL6.js +1483 -0
  27. package/Build/Workers/chunk-B7PT2VL5.js +630 -0
  28. package/Build/Workers/chunk-C6XQGBPV.js +476 -0
  29. package/Build/Workers/chunk-CAEC5DA2.js +57 -0
  30. package/Build/Workers/chunk-CBCOHH5O.js +837 -0
  31. package/Build/Workers/chunk-CEMXKBQO.js +1800 -0
  32. package/Build/Workers/chunk-CKW3STKA.js +1067 -0
  33. package/Build/Workers/chunk-CV5RICKT.js +1992 -0
  34. package/Build/Workers/chunk-DBWSISJT.js +56 -0
  35. package/Build/Workers/chunk-DSBSPPPJ.js +1344 -0
  36. package/Build/Workers/chunk-DSGLDRTI.js +278 -0
  37. package/Build/Workers/chunk-DXD7OPSP.js +1992 -0
  38. package/Build/Workers/chunk-DXECZBSA.js +368 -0
  39. package/Build/Workers/chunk-DZIRO6ZK.js +682 -0
  40. package/Build/Workers/chunk-E4CRPGX5.js +140 -0
  41. package/Build/Workers/chunk-E4IVMEBH.js +52 -0
  42. package/Build/Workers/chunk-ECN3VUMA.js +73 -0
  43. package/Build/Workers/chunk-ECSKVHUB.js +476 -0
  44. package/Build/Workers/chunk-EL4B5CSQ.js +162 -0
  45. package/Build/Workers/chunk-FAYBQGKO.js +219 -0
  46. package/Build/Workers/chunk-FGCXPEZM.js +3201 -0
  47. package/Build/Workers/chunk-FHCRXPA6.js +44 -0
  48. package/Build/Workers/chunk-FQ42MT7M.js +58 -0
  49. package/Build/Workers/chunk-FQDYQG4P.js +1284 -0
  50. package/Build/Workers/chunk-FTCBY5HH.js +138 -0
  51. package/Build/Workers/chunk-GI5RWJAY.js +101 -0
  52. package/Build/Workers/chunk-GNLMSDRO.js +945 -0
  53. package/Build/Workers/chunk-GVUJ6O3R.js +73 -0
  54. package/Build/Workers/chunk-HCGU7OCG.js +97 -0
  55. package/Build/Workers/chunk-HRIPVWSC.js +58 -0
  56. package/Build/Workers/chunk-IC3BR6SC.js +102 -0
  57. package/Build/Workers/chunk-IU3YAYPT.js +1344 -0
  58. package/Build/Workers/chunk-J7MZR7B2.js +1483 -0
  59. package/Build/Workers/chunk-KSIEJYNL.js +3822 -0
  60. package/Build/Workers/chunk-KT3GG7AW.js +754 -0
  61. package/Build/Workers/chunk-KYCEM22I.js +1800 -0
  62. package/Build/Workers/chunk-LJTQW46H.js +57 -0
  63. package/Build/Workers/chunk-LMQGYJME.js +672 -0
  64. package/Build/Workers/chunk-LOBYJQA4.js +76 -0
  65. package/Build/Workers/chunk-LOF32O7F.js +163 -0
  66. package/Build/Workers/chunk-LOTIJA7D.js +124 -0
  67. package/Build/Workers/chunk-M7Z3MPAX.js +973 -0
  68. package/Build/Workers/chunk-MHNLTQHO.js +3201 -0
  69. package/Build/Workers/chunk-ML7OMD72.js +2342 -0
  70. package/Build/Workers/chunk-NBTGXEMT.js +945 -0
  71. package/Build/Workers/chunk-NQZC37F7.js +38 -0
  72. package/Build/Workers/chunk-O3X3D2Z3.js +352 -0
  73. package/Build/Workers/chunk-OBUIHPKF.js +352 -0
  74. package/Build/Workers/chunk-PAEWNYIV.js +138 -0
  75. package/Build/Workers/chunk-PANJ7YH6.js +102 -0
  76. package/Build/Workers/chunk-PCL3Y7H5.js +82 -0
  77. package/Build/Workers/chunk-PIIUGRQD.js +387 -0
  78. package/Build/Workers/chunk-POKD22OT.js +2719 -0
  79. package/Build/Workers/chunk-PQMA7MFS.js +9237 -0
  80. package/Build/Workers/chunk-PURIPUSY.js +682 -0
  81. package/Build/Workers/chunk-QQZPPXY4.js +3822 -0
  82. package/Build/Workers/chunk-QXLQLGL2.js +1067 -0
  83. package/Build/Workers/chunk-RC4YC3VU.js +278 -0
  84. package/Build/Workers/chunk-RGNNWVR6.js +171 -0
  85. package/Build/Workers/chunk-SBBIEHYT.js +44 -0
  86. package/Build/Workers/chunk-SWVZTU6X.js +305 -0
  87. package/Build/Workers/chunk-T3EUPM5A.js +454 -0
  88. package/Build/Workers/chunk-TA6IU2XL.js +171 -0
  89. package/Build/Workers/chunk-TLSGD5TR.js +280 -0
  90. package/Build/Workers/chunk-TOXDLWKZ.js +368 -0
  91. package/Build/Workers/chunk-TZBM6TAB.js +124 -0
  92. package/Build/Workers/chunk-U2OY6MX6.js +398 -0
  93. package/Build/Workers/chunk-UCY4B5EV.js +288 -0
  94. package/Build/Workers/chunk-V52FEPCV.js +754 -0
  95. package/Build/Workers/chunk-VBEXZBG5.js +147 -0
  96. package/Build/Workers/chunk-VC76B6GM.js +959 -0
  97. package/Build/Workers/chunk-VCUOYHWC.js +519 -0
  98. package/Build/Workers/chunk-VJIL5H6K.js +2719 -0
  99. package/Build/Workers/chunk-VMF7KOGY.js +162 -0
  100. package/Build/Workers/chunk-W5OCKMPJ.js +101 -0
  101. package/Build/Workers/chunk-XHT5SVP4.js +52 -0
  102. package/Build/Workers/chunk-XITBARMZ.js +2342 -0
  103. package/Build/Workers/chunk-XLQZNQ4Z.js +163 -0
  104. package/Build/Workers/chunk-XZ6HDXKM.js +76 -0
  105. package/Build/Workers/chunk-Y7NDFEQ3.js +398 -0
  106. package/Build/Workers/chunk-YBBQDYX2.js +301 -0
  107. package/Build/Workers/chunk-YHPYPVAB.js +837 -0
  108. package/Build/Workers/chunk-YNKK6BXY.js +454 -0
  109. package/Build/Workers/chunk-YRAJ74HR.js +305 -0
  110. package/Build/Workers/chunk-YULTZK5O.js +147 -0
  111. package/Build/Workers/chunk-YUNQYP3Z.js +9237 -0
  112. package/Build/Workers/chunk-Z7BONRW2.js +241 -0
  113. package/Build/Workers/chunk-ZK2R3DEJ.js +1054 -0
  114. package/Build/Workers/combineGeometry.js +24 -24
  115. package/Build/Workers/createBoxGeometry.js +18 -18
  116. package/Build/Workers/createBoxOutlineGeometry.js +18 -18
  117. package/Build/Workers/createCircleGeometry.js +26 -26
  118. package/Build/Workers/createCircleOutlineGeometry.js +19 -19
  119. package/Build/Workers/createCoplanarPolygonGeometry.js +39 -39
  120. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +33 -33
  121. package/Build/Workers/createCorridorGeometry.js +36 -37
  122. package/Build/Workers/createCorridorOutlineGeometry.js +34 -35
  123. package/Build/Workers/createCylinderGeometry.js +20 -20
  124. package/Build/Workers/createCylinderOutlineGeometry.js +20 -20
  125. package/Build/Workers/createEllipseGeometry.js +26 -26
  126. package/Build/Workers/createEllipseOutlineGeometry.js +19 -19
  127. package/Build/Workers/createEllipsoidGeometry.js +19 -19
  128. package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -18
  129. package/Build/Workers/createFrustumGeometry.js +18 -18
  130. package/Build/Workers/createFrustumOutlineGeometry.js +20 -20
  131. package/Build/Workers/createGeometry.js +25 -24
  132. package/Build/Workers/createGroundPolylineGeometry.js +26 -26
  133. package/Build/Workers/createMvtTile.js +111 -19
  134. package/Build/Workers/createPlaneGeometry.js +18 -18
  135. package/Build/Workers/createPlaneOutlineGeometry.js +17 -17
  136. package/Build/Workers/createPolygonGeometry.js +36 -36
  137. package/Build/Workers/createPolygonOutlineGeometry.js +33 -33
  138. package/Build/Workers/createPolylineGeometry.js +28 -28
  139. package/Build/Workers/createPolylineVolumeGeometry.js +38 -36
  140. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +32 -31
  141. package/Build/Workers/createRectangleGeometry.js +29 -29
  142. package/Build/Workers/createRectangleOutlineGeometry.js +23 -23
  143. package/Build/Workers/createSimplePolylineGeometry.js +26 -26
  144. package/Build/Workers/createSphereGeometry.js +19 -19
  145. package/Build/Workers/createSphereOutlineGeometry.js +18 -18
  146. package/Build/Workers/createTaskProcessorWorker.js +3 -3
  147. package/Build/Workers/createVectorTileClampedPolylines.js +14 -14
  148. package/Build/Workers/createVectorTileGeometries.js +24 -24
  149. package/Build/Workers/createVectorTilePoints.js +13 -13
  150. package/Build/Workers/createVectorTilePolygons.js +22 -22
  151. package/Build/Workers/createVectorTilePolylines.js +14 -14
  152. package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +26 -26
  153. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +23 -23
  154. package/Build/Workers/createVerticesFromHeightmap.js +23 -23
  155. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +21 -21
  156. package/Build/Workers/createWallGeometry.js +26 -26
  157. package/Build/Workers/createWallOutlineGeometry.js +26 -26
  158. package/Build/Workers/decodeDraco.js +10 -10
  159. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +993 -2334
  160. package/Build/Workers/decodeI3S.js +10 -10
  161. package/Build/Workers/gaussianSplatSorter.js +4 -4
  162. package/Build/Workers/gaussianSplatTextureGenerator.js +4 -4
  163. package/Build/Workers/incrementallyBuildTerrainPicker.js +10 -10
  164. package/Build/Workers/transcodeKTX2.js +6 -6
  165. package/Build/Workers/transferTypedArrayTest.js +1 -1
  166. package/Build/Workers/upsampleQuantizedTerrainMesh.js +23 -23
  167. package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +26 -26
  168. package/Source/Core/ArcGISTiledElevationTerrainProvider.js +1 -5
  169. package/Source/Core/BoundingRectangle.js +6 -8
  170. package/Source/Core/BoundingSphere.js +0 -3
  171. package/Source/Core/Cartesian2.js +1 -1
  172. package/Source/Core/Cartesian3.js +1 -1
  173. package/Source/Core/Cartesian4.js +1 -1
  174. package/Source/Core/Cesium3DTilesTerrainGeometryProcessor.js +3 -4
  175. package/Source/Core/Color.js +1 -0
  176. package/Source/Core/ComponentDatatype.js +35 -0
  177. package/Source/Core/CoplanarPolygonGeometry.js +2 -2
  178. package/Source/Core/CorridorGeometry.js +2 -4
  179. package/Source/Core/CorridorOutlineGeometry.js +1 -3
  180. package/Source/Core/EarthOrientationParameters.js +2 -2
  181. package/Source/Core/EllipseGeometryLibrary.js +2 -2
  182. package/Source/Core/EllipsoidGeodesic.js +3 -3
  183. package/Source/Core/EllipsoidRhumbLine.js +1 -1
  184. package/Source/Core/Heap.js +1 -1
  185. package/Source/Core/HermitePolynomialApproximation.js +215 -179
  186. package/Source/Core/InterpolationAlgorithm.js +58 -50
  187. package/Source/Core/Ion.js +1 -1
  188. package/Source/Core/JulianDate.js +1 -1
  189. package/Source/Core/LagrangePolynomialApproximation.js +55 -52
  190. package/Source/Core/LinearApproximation.js +69 -66
  191. package/Source/Core/MapProjection.js +1 -0
  192. package/Source/Core/Math.js +59 -0
  193. package/Source/Core/Matrix2.js +3 -3
  194. package/Source/Core/Matrix3.js +3 -3
  195. package/Source/Core/Matrix4.js +1 -1
  196. package/Source/Core/OrthographicFrustum.js +1 -1
  197. package/Source/Core/PerspectiveFrustum.js +1 -1
  198. package/Source/Core/PolygonGeometry.js +2 -2
  199. package/Source/Core/PolygonGeometryLibrary.js +1 -1
  200. package/Source/Core/PolygonOutlineGeometry.js +1 -1
  201. package/Source/Core/PolylineGeometry.js +1 -1
  202. package/Source/Core/PolylineVolumeGeometryLibrary.js +1 -1
  203. package/Source/Core/Rectangle.js +7 -1
  204. package/Source/Core/RectangleOutlineGeometry.js +1 -1
  205. package/Source/Core/Resource.js +1 -1
  206. package/Source/Core/ScreenSpaceEventHandler.js +51 -41
  207. package/Source/Core/SimplePolylineGeometry.js +1 -1
  208. package/Source/Core/TerrainEncoding.js +2 -2
  209. package/Source/Core/TerrainMesh.js +3 -3
  210. package/Source/Core/TerrainPicker.js +180 -168
  211. package/Source/Core/TimeIntervalCollection.js +1 -3
  212. package/Source/Core/Tipsify.js +1 -1
  213. package/Source/Core/Transforms.js +5 -1
  214. package/Source/Core/VectorPipeline.js +1117 -0
  215. package/Source/Core/VectorProvider.js +429 -0
  216. package/Source/Core/WallOutlineGeometry.js +1 -1
  217. package/Source/Core/createColorRamp.js +37 -0
  218. package/Source/Core/getTimestamp.js +4 -2
  219. package/Source/Core/globalTypes.js +25 -0
  220. package/Source/Core/writeTextToCanvas.js +1 -0
  221. package/Source/DataSources/CompositeEntityCollection.js +0 -1
  222. package/Source/DataSources/CzmlDataSource.js +14 -0
  223. package/Source/DataSources/DataSourceDisplay.js +1 -1
  224. package/Source/DataSources/GeoJsonDataSource.js +0 -1
  225. package/Source/DataSources/GeometryVisualizer.js +1 -1
  226. package/Source/DataSources/KmlDataSource.js +529 -557
  227. package/Source/DataSources/PathGraphics.js +8 -1
  228. package/Source/DataSources/PathMode.js +27 -0
  229. package/Source/DataSources/PathVisualizer.js +298 -1
  230. package/Source/DataSources/PolylineVisualizer.js +1 -1
  231. package/Source/DataSources/StaticOutlineGeometryBatch.js +1 -1
  232. package/Source/Renderer/AutomaticUniforms.js +23 -0
  233. package/Source/Renderer/Context.js +9 -3
  234. package/Source/Renderer/DrawCommand.js +22 -0
  235. package/Source/Renderer/Framebuffer.js +4 -0
  236. package/Source/Renderer/Pass.js +11 -9
  237. package/Source/Renderer/Texture.js +12 -1
  238. package/Source/Renderer/UniformState.js +7 -0
  239. package/Source/Renderer/VertexArray.js +1 -1
  240. package/Source/Renderer/createUniform.js +346 -239
  241. package/Source/Renderer/createUniformArray.js +494 -381
  242. package/Source/Scene/ArcGisMapServerImageryProvider.js +0 -5
  243. package/Source/Scene/ArcGisMapService.js +1 -1
  244. package/Source/Scene/Billboard.js +2 -1
  245. package/Source/Scene/BillboardCollection.js +15 -5
  246. package/Source/Scene/BillboardTexture.js +5 -3
  247. package/Source/Scene/BufferPointCollection.js +11 -1
  248. package/Source/Scene/BufferPolygonCollection.js +26 -0
  249. package/Source/Scene/BufferPolylineCollection.js +2 -0
  250. package/Source/Scene/BufferPrimitiveCollection.js +105 -32
  251. package/Source/Scene/Camera.js +85 -9
  252. package/Source/Scene/CameraEventAggregator.js +30 -18
  253. package/Source/Scene/CameraFlightPath.js +7 -4
  254. package/Source/Scene/Cesium3DTile.js +102 -4
  255. package/Source/Scene/Cesium3DTileContent.js +195 -254
  256. package/Source/Scene/Cesium3DTileContentFactory.js +10 -2
  257. package/Source/Scene/Cesium3DTileOptimizations.js +4 -6
  258. package/Source/Scene/Cesium3DTileStyle.js +40 -0
  259. package/Source/Scene/Cesium3DTileset.js +213 -8
  260. package/Source/Scene/Cesium3DTilesetTraversal.js +14 -0
  261. package/Source/Scene/ClippingPlaneCollection.js +4 -4
  262. package/Source/Scene/ClippingPolygon.js +2 -0
  263. package/Source/Scene/ClippingPolygonCollection.js +2 -2
  264. package/Source/Scene/Composite3DTileContent.js +254 -292
  265. package/Source/Scene/Controllers/Controller.js +63 -0
  266. package/Source/Scene/Controllers/ControllerHost.js +78 -0
  267. package/Source/Scene/Controllers/HybridScreenSpacePanCameraController.js +106 -0
  268. package/Source/Scene/Controllers/MouseButton.js +32 -0
  269. package/Source/Scene/Controllers/ScreenSpaceElevatorCameraController.js +295 -0
  270. package/Source/Scene/Controllers/ScreenSpaceInputBindings.js +154 -0
  271. package/Source/Scene/Controllers/ScreenSpaceMapCameraController.js +310 -0
  272. package/Source/Scene/Controllers/ScreenSpaceTiltOrbitCameraController.js +642 -0
  273. package/Source/Scene/Controllers/ScreenSpaceZoomCameraController.js +431 -0
  274. package/Source/Scene/Controllers/defaultPickWorldPosition.js +84 -0
  275. package/Source/Scene/DerivedCommand.js +98 -0
  276. package/Source/Scene/EdgeDisplayMode.js +50 -0
  277. package/Source/Scene/EdgeFramebuffer.js +1 -5
  278. package/Source/Scene/Empty3DTileContent.js +100 -132
  279. package/Source/Scene/Expression.js +6 -8
  280. package/Source/Scene/FrameState.js +17 -0
  281. package/Source/Scene/GaussianSplat3DTileContent.js +436 -478
  282. package/Source/Scene/GeoJsonPrimitive.js +874 -0
  283. package/Source/Scene/Geometry3DTileContent.js +151 -185
  284. package/Source/Scene/Globe.js +22 -1
  285. package/Source/Scene/GlobeDepth.js +27 -1
  286. package/Source/Scene/GlobeSurfaceShaderSet.js +637 -540
  287. package/Source/Scene/GlobeSurfaceTile.js +575 -398
  288. package/Source/Scene/GlobeSurfaceTileProvider.js +1412 -1184
  289. package/Source/Scene/GltfBufferViewLoader.js +3 -3
  290. package/Source/Scene/GltfLoader.js +146 -3
  291. package/Source/Scene/GltfLoaderUtil.js +20 -4
  292. package/Source/Scene/GltfPipeline/forEachTextureInMaterial.js +10 -0
  293. package/Source/Scene/GltfPipeline/removeUnusedElements.js +21 -11
  294. package/Source/Scene/GltfSpzLoader.js +1 -1
  295. package/Source/Scene/GltfVertexBufferLoader.js +6 -3
  296. package/Source/Scene/I3SDataProvider.js +1 -1
  297. package/Source/Scene/I3SLayer.js +1 -1
  298. package/Source/Scene/I3SNode.js +2 -2
  299. package/Source/Scene/ImageryLayer.js +2 -2
  300. package/Source/Scene/ImageryLayerCollection.js +190 -6
  301. package/Source/Scene/Implicit3DTileContent.js +192 -216
  302. package/Source/Scene/ImplicitTileCoordinates.js +17 -0
  303. package/Source/Scene/IonImageryProvider.js +1 -5
  304. package/Source/Scene/Label.js +4 -4
  305. package/Source/Scene/LabelCollection.js +4 -1
  306. package/Source/Scene/MVTDataProvider.js +555 -0
  307. package/Source/Scene/Material.js +1 -0
  308. package/Source/Scene/Model/B3dmLoader.js +1 -2
  309. package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +82 -312
  310. package/Source/Scene/Model/Extensions/Gpm/GltfGpmLoader.js +4 -0
  311. package/Source/Scene/Model/I3dmLoader.js +1 -1
  312. package/Source/Scene/Model/InstancingPipelineStage.js +4 -7
  313. package/Source/Scene/Model/MaterialPipelineStage.js +124 -1
  314. package/Source/Scene/Model/Model.js +45 -10
  315. package/Source/Scene/Model/Model3DTileContent.js +424 -458
  316. package/Source/Scene/Model/ModelClippingPlanesPipelineStage.js +28 -1
  317. package/Source/Scene/Model/ModelDrawCommand.js +180 -8
  318. package/Source/Scene/Model/ModelDrawCommands.js +4 -0
  319. package/Source/Scene/Model/ModelSceneGraph.js +21 -0
  320. package/Source/Scene/Model/ModelUtility.js +5 -0
  321. package/Source/Scene/Model/PickingPipelineStage.js +29 -0
  322. package/Source/Scene/Model/PrimitiveRenderResources.js +24 -0
  323. package/Source/Scene/Model/createVectorTileBuffersFromModelComponents.js +645 -153
  324. package/Source/Scene/ModelComponents.js +112 -0
  325. package/Source/Scene/Multiple3DTileContent.js +291 -334
  326. package/Source/Scene/MvtLabelCandidates.js +295 -0
  327. package/Source/Scene/MvtLabelManager.js +1069 -0
  328. package/Source/Scene/Picking.js +19 -3
  329. package/Source/Scene/PlanarFillIdFramebuffer.js +172 -0
  330. package/Source/Scene/PntsParser.js +1 -1
  331. package/Source/Scene/PolylineCollection.js +5 -3
  332. package/Source/Scene/PostProcessStage.js +4 -2
  333. package/Source/Scene/QuadtreePrimitive.js +3 -2
  334. package/Source/Scene/ResourceCache.js +7 -4
  335. package/Source/Scene/ResourceCacheKey.js +21 -18
  336. package/Source/Scene/Scene.js +237 -11
  337. package/Source/Scene/SceneTransforms.js +6 -5
  338. package/Source/Scene/ShadowMap.js +9 -3
  339. package/Source/Scene/ShadowMapShader.js +50 -2
  340. package/Source/Scene/SnapFramebuffer.js +121 -0
  341. package/Source/Scene/Snapping.js +184 -0
  342. package/Source/Scene/TerrainFillMesh.js +3 -2
  343. package/Source/Scene/Tileset3DTileContent.js +113 -146
  344. package/Source/Scene/UrlTemplate3DTilesDataProvider.js +543 -0
  345. package/Source/Scene/Vector3DTileContent.js +207 -237
  346. package/Source/Scene/VectorGltf3DTileContent.js +185 -45
  347. package/Source/Scene/View.js +10 -8
  348. package/Source/Scene/VoxelPrimitive.js +159 -175
  349. package/Source/Scene/VoxelProvider.js +64 -91
  350. package/Source/Scene/VoxelTraversal.js +1 -1
  351. package/Source/Scene/buildVectorGltfFromMVT.js +1208 -0
  352. package/Source/Scene/buildVoxelCustomShader.js +199 -0
  353. package/Source/Scene/createElevationBandMaterial.js +1 -1
  354. package/Source/Scene/decodeMVT.js +877 -0
  355. package/Source/Scene/findMeshoptExtension.js +23 -0
  356. package/Source/Scene/renderBufferPointCollection.js +114 -64
  357. package/Source/Scene/renderBufferPolygonCollection.js +245 -53
  358. package/Source/Scene/renderBufferPolylineCollection.js +271 -145
  359. package/Source/Shaders/BillboardCollectionVS.glsl +23 -25
  360. package/Source/Shaders/BillboardCollectionVS.js +23 -25
  361. package/Source/Shaders/BufferPointMaterialFS.glsl +1 -0
  362. package/Source/Shaders/BufferPointMaterialFS.js +1 -0
  363. package/Source/Shaders/BufferPointMaterialVS.glsl +19 -9
  364. package/Source/Shaders/BufferPointMaterialVS.js +20 -10
  365. package/Source/Shaders/BufferPolygonMaterialFS.glsl +13 -0
  366. package/Source/Shaders/BufferPolygonMaterialFS.js +13 -0
  367. package/Source/Shaders/BufferPolygonMaterialVS.glsl +22 -4
  368. package/Source/Shaders/BufferPolygonMaterialVS.js +23 -5
  369. package/Source/Shaders/BufferPolylineMaterialVS.glsl +16 -2
  370. package/Source/Shaders/BufferPolylineMaterialVS.js +17 -3
  371. package/Source/Shaders/Builtin/Constants/passCesium3DTile.glsl +1 -1
  372. package/Source/Shaders/Builtin/Constants/passCesium3DTile.js +1 -1
  373. package/Source/Shaders/Builtin/Constants/passCesium3DTileClassification.glsl +1 -1
  374. package/Source/Shaders/Builtin/Constants/passCesium3DTileClassification.js +1 -1
  375. package/Source/Shaders/Builtin/Constants/passCesium3DTileClassificationIgnoreShow.glsl +1 -1
  376. package/Source/Shaders/Builtin/Constants/passCesium3DTileClassificationIgnoreShow.js +1 -1
  377. package/Source/Shaders/Builtin/Constants/passCesium3DTileEdgesDirect.glsl +9 -0
  378. package/Source/Shaders/Builtin/Constants/passCesium3DTileEdgesDirect.js +11 -0
  379. package/Source/Shaders/Builtin/Constants/passCesium3DTilePlanarFillId.glsl +9 -0
  380. package/Source/Shaders/Builtin/Constants/passCesium3DTilePlanarFillId.js +11 -0
  381. package/Source/Shaders/Builtin/Constants/passClassification.glsl +1 -1
  382. package/Source/Shaders/Builtin/Constants/passClassification.js +1 -1
  383. package/Source/Shaders/Builtin/Constants/passGaussianSplats.glsl +1 -1
  384. package/Source/Shaders/Builtin/Constants/passGaussianSplats.js +1 -1
  385. package/Source/Shaders/Builtin/Constants/passOpaque.glsl +1 -1
  386. package/Source/Shaders/Builtin/Constants/passOpaque.js +1 -1
  387. package/Source/Shaders/Builtin/Constants/passOverlay.glsl +1 -1
  388. package/Source/Shaders/Builtin/Constants/passOverlay.js +1 -1
  389. package/Source/Shaders/Builtin/Constants/passTranslucent.glsl +1 -1
  390. package/Source/Shaders/Builtin/Constants/passTranslucent.js +1 -1
  391. package/Source/Shaders/Builtin/Constants/passVoxels.glsl +1 -1
  392. package/Source/Shaders/Builtin/Constants/passVoxels.js +1 -1
  393. package/Source/Shaders/Builtin/CzmBuiltins.js +4 -0
  394. package/Source/Shaders/GlobeFS.glsl +10 -6
  395. package/Source/Shaders/GlobeFS.js +10 -6
  396. package/Source/Shaders/Materials/PolylineGlowMaterial.glsl +1 -1
  397. package/Source/Shaders/Materials/PolylineGlowMaterial.js +1 -1
  398. package/Source/Shaders/Model/EdgeVisibilityStageVS.glsl +0 -1
  399. package/Source/Shaders/Model/EdgeVisibilityStageVS.js +0 -1
  400. package/Source/Shaders/Model/MaterialStageFS.glsl +8 -2
  401. package/Source/Shaders/Model/MaterialStageFS.js +8 -2
  402. package/Source/Shaders/Model/ModelFS.glsl +105 -0
  403. package/Source/Shaders/Model/ModelFS.js +105 -0
  404. package/Source/Shaders/VectorCommon.glsl +178 -0
  405. package/Source/Shaders/VectorCommon.js +180 -0
  406. package/Source/ThirdParty/zip-module.wasm +0 -0
  407. package/Source/Widget/CesiumWidget.js +30 -0
  408. package/Source/Workers/createMvtTile.js +39 -0
  409. package/Source/Workers/decodeGoogleEarthEnterprisePacket.js +2 -2
  410. package/Source/Workers/incrementallyBuildTerrainPicker.js +2 -0
  411. package/index.js +113 -83
  412. package/package.json +13 -13
@@ -0,0 +1,23 @@
1
+ import defined from "../Core/defined.js";
2
+
3
+ /**
4
+ * Returns the meshopt compression extension object, KHR_meshopt_compression or
5
+ * EXT_meshopt_compression, on a glTF bufferView or buffer. If both are present,
6
+ * KHR is preferred.
7
+ * @param {object} gltfObject A glTF bufferView or buffer.
8
+ * @returns {object|undefined} The meshopt extension object, or undefined.
9
+ * @private
10
+ */
11
+ function findMeshoptExtension(gltfObject) {
12
+ const extensions = gltfObject?.extensions;
13
+ if (!defined(extensions)) {
14
+ return undefined;
15
+ }
16
+
17
+ return (
18
+ extensions["KHR_meshopt_compression"] ??
19
+ extensions["EXT_meshopt_compression"]
20
+ );
21
+ }
22
+
23
+ export default findMeshoptExtension;
@@ -20,6 +20,7 @@ import BufferPointMaterialFS from "../Shaders/BufferPointMaterialFS.js";
20
20
  import EncodedCartesian3 from "../Core/EncodedCartesian3.js";
21
21
  import AttributeCompression from "../Core/AttributeCompression.js";
22
22
  import BufferPointMaterial from "./BufferPointMaterial.js";
23
+ import BlendOption from "./BlendOption.js";
23
24
 
24
25
  /** @import FrameState from "./FrameState.js"; */
25
26
  /** @import BufferPointCollection from "./BufferPointCollection.js"; */
@@ -27,26 +28,39 @@ import BufferPointMaterial from "./BufferPointMaterial.js";
27
28
 
28
29
  /**
29
30
  * TODO(PR#13211): Need 'keyof' syntax to avoid duplicating attribute names.
30
- * @typedef {'positionHigh' | 'positionLow' | 'pickColor' | 'showSizeAndColor' | 'outlineWidthAndOutlineColor'} BufferPointAttribute
31
+ * @typedef {'positionHigh' | 'positionLow' | 'pickColor' | 'showSizeColorAlpha' | 'outlineWidthColorAlpha'} BufferPointAttribute
31
32
  * @ignore
32
33
  */
33
34
 
34
35
  /**
36
+ * Attribute locations when using 64-bit position precision.
35
37
  * @type {Record<BufferPointAttribute, number>}
36
38
  * @ignore
37
39
  */
38
- const BufferPointAttributeLocations = {
40
+ const BufferPointAttributeLocationsFloat64 = {
39
41
  positionHigh: 0,
40
42
  positionLow: 1,
41
43
  pickColor: 2,
42
- showSizeAndColor: 3,
43
- outlineWidthAndOutlineColor: 4,
44
+ showSizeColorAlpha: 3,
45
+ outlineWidthColorAlpha: 4,
46
+ };
47
+
48
+ /**
49
+ * Attribute locations when using <= 32-bit position precision.
50
+ * @type {Record<string, number>}
51
+ * @ignore
52
+ */
53
+ const BufferPointAttributeLocations = {
54
+ position: 0,
55
+ pickColor: 1,
56
+ showSizeColorAlpha: 2,
57
+ outlineWidthColorAlpha: 3,
44
58
  };
45
59
 
46
60
  /**
47
61
  * @typedef {object} BufferPointRenderContext
48
62
  * @property {VertexArray} [vertexArray]
49
- * @property {Record<BufferPointAttribute, TypedArray>} [attributeArrays]
63
+ * @property {Record<string, TypedArray>} [attributeArrays]
50
64
  * @property {RenderState} [renderState]
51
65
  * @property {ShaderProgram} [shaderProgram]
52
66
  * @property {DrawCommand} [command]
@@ -71,16 +85,24 @@ const encodedCartesian = new EncodedCartesian3();
71
85
  function renderBufferPointCollection(collection, frameState, renderContext) {
72
86
  const context = frameState.context;
73
87
  renderContext = renderContext || { destroy: destroyRenderContext };
88
+ const useFloat64 = collection._positionDatatype === ComponentDatatype.DOUBLE;
89
+ const attributeLocations = useFloat64
90
+ ? BufferPointAttributeLocationsFloat64
91
+ : BufferPointAttributeLocations;
74
92
 
75
93
  if (!defined(renderContext.attributeArrays)) {
76
94
  const featureCountMax = collection.primitiveCountMax;
77
95
 
78
96
  renderContext.attributeArrays = {
79
- positionHigh: new Float32Array(featureCountMax * 3),
80
- positionLow: new Float32Array(featureCountMax * 3),
97
+ ...(useFloat64
98
+ ? {
99
+ positionHigh: new Float32Array(featureCountMax * 3),
100
+ positionLow: new Float32Array(featureCountMax * 3),
101
+ }
102
+ : { position: collection._positionView }),
81
103
  pickColor: new Uint8Array(featureCountMax * 4),
82
- showSizeAndColor: new Float32Array(featureCountMax * 3),
83
- outlineWidthAndOutlineColor: new Float32Array(featureCountMax * 2),
104
+ showSizeColorAlpha: new Float32Array(featureCountMax * 4),
105
+ outlineWidthColorAlpha: new Float32Array(featureCountMax * 3),
84
106
  };
85
107
  }
86
108
 
@@ -90,9 +112,8 @@ function renderBufferPointCollection(collection, frameState, renderContext) {
90
112
  const positionHighArray = attributeArrays.positionHigh;
91
113
  const positionLowArray = attributeArrays.positionLow;
92
114
  const pickColorArray = attributeArrays.pickColor;
93
- const showSizeAndColorArray = attributeArrays.showSizeAndColor;
94
- const outlineWidthAndOutlineColorArray =
95
- attributeArrays.outlineWidthAndOutlineColor;
115
+ const showSizeColorAlphaArray = attributeArrays.showSizeColorAlpha;
116
+ const outlineWidthColorAlphaArray = attributeArrays.outlineWidthColorAlpha;
96
117
 
97
118
  const { _dirtyOffset, _dirtyCount } = collection;
98
119
 
@@ -103,33 +124,40 @@ function renderBufferPointCollection(collection, frameState, renderContext) {
103
124
  continue;
104
125
  }
105
126
 
106
- point.getPosition(cartesian);
107
- EncodedCartesian3.fromCartesian(cartesian, encodedCartesian);
127
+ if (useFloat64) {
128
+ point.getPosition(cartesian);
129
+ EncodedCartesian3.fromCartesian(cartesian, encodedCartesian);
130
+ // @ts-expect-error https://github.com/CesiumGS/cesium/pull/13302
131
+ Cartesian3.pack(encodedCartesian.high, positionHighArray, i * 3);
132
+ // @ts-expect-error https://github.com/CesiumGS/cesium/pull/13302
133
+ Cartesian3.pack(encodedCartesian.low, positionLowArray, i * 3);
134
+ }
135
+
108
136
  point.getMaterial(material);
109
137
  Color.fromRgba(point._pickId, pickColor);
110
138
 
111
- positionHighArray[i * 3] = encodedCartesian.high.x;
112
- positionHighArray[i * 3 + 1] = encodedCartesian.high.y;
113
- positionHighArray[i * 3 + 2] = encodedCartesian.high.z;
114
-
115
- positionLowArray[i * 3] = encodedCartesian.low.x;
116
- positionLowArray[i * 3 + 1] = encodedCartesian.low.y;
117
- positionLowArray[i * 3 + 2] = encodedCartesian.low.z;
118
-
119
139
  pickColorArray[i * 4] = Color.floatToByte(pickColor.red);
120
140
  pickColorArray[i * 4 + 1] = Color.floatToByte(pickColor.green);
121
141
  pickColorArray[i * 4 + 2] = Color.floatToByte(pickColor.blue);
122
142
  pickColorArray[i * 4 + 3] = Color.floatToByte(pickColor.alpha);
123
143
 
124
- showSizeAndColorArray[i * 3] = point.show ? 1 : 0;
125
- showSizeAndColorArray[i * 3 + 1] = material.size;
126
- showSizeAndColorArray[i * 3 + 2] = AttributeCompression.encodeRGB8(
144
+ showSizeColorAlphaArray[i * 4] = point.show ? 1 : 0;
145
+ showSizeColorAlphaArray[i * 4 + 1] = material.size;
146
+ showSizeColorAlphaArray[i * 4 + 2] = AttributeCompression.encodeRGB8(
127
147
  material.color,
128
148
  );
149
+ showSizeColorAlphaArray[i * 4 + 3] = material.color.alpha;
129
150
 
130
- outlineWidthAndOutlineColorArray[i * 2] = material.outlineWidth;
131
- outlineWidthAndOutlineColorArray[i * 2 + 1] =
132
- AttributeCompression.encodeRGB8(material.outlineColor);
151
+ outlineWidthColorAlphaArray[i * 3] = material.outlineWidth;
152
+ outlineWidthColorAlphaArray[i * 3 + 1] = AttributeCompression.encodeRGB8(
153
+ // When outlineWidth=0, overwrite outlineColor to prevent subpixel bleeding.
154
+ material.outlineWidth > 0 ? material.outlineColor : material.color,
155
+ );
156
+ outlineWidthColorAlphaArray[i * 3 + 2] =
157
+ // When outlineWidth=0, overwrite outlineAlpha to prevent subpixel bleeding.
158
+ material.outlineWidth > 0
159
+ ? material.outlineColor.alpha
160
+ : material.color.alpha;
133
161
 
134
162
  point._dirty = false;
135
163
  }
@@ -141,28 +169,44 @@ function renderBufferPointCollection(collection, frameState, renderContext) {
141
169
  renderContext.vertexArray = new VertexArray({
142
170
  context,
143
171
  attributes: [
172
+ ...(!useFloat64
173
+ ? [
174
+ {
175
+ index: BufferPointAttributeLocations.position,
176
+ componentDatatype: collection._positionDatatype,
177
+ componentsPerAttribute: 3,
178
+ normalize: collection._positionNormalized,
179
+ vertexBuffer: Buffer.createVertexBuffer({
180
+ typedArray: collection._positionView,
181
+ context,
182
+ usage: BufferUsage.STATIC_DRAW,
183
+ }),
184
+ },
185
+ ]
186
+ : [
187
+ {
188
+ index: BufferPointAttributeLocationsFloat64.positionHigh,
189
+ componentDatatype: ComponentDatatype.FLOAT,
190
+ componentsPerAttribute: 3,
191
+ vertexBuffer: Buffer.createVertexBuffer({
192
+ typedArray: attributeArrays.positionHigh,
193
+ context,
194
+ usage: BufferUsage.STATIC_DRAW,
195
+ }),
196
+ },
197
+ {
198
+ index: BufferPointAttributeLocationsFloat64.positionLow,
199
+ componentDatatype: ComponentDatatype.FLOAT,
200
+ componentsPerAttribute: 3,
201
+ vertexBuffer: Buffer.createVertexBuffer({
202
+ typedArray: attributeArrays.positionLow,
203
+ context,
204
+ usage: BufferUsage.STATIC_DRAW,
205
+ }),
206
+ },
207
+ ]),
144
208
  {
145
- index: BufferPointAttributeLocations.positionHigh,
146
- componentDatatype: ComponentDatatype.FLOAT,
147
- componentsPerAttribute: 3,
148
- vertexBuffer: Buffer.createVertexBuffer({
149
- typedArray: attributeArrays.positionHigh,
150
- context,
151
- usage: BufferUsage.STATIC_DRAW,
152
- }),
153
- },
154
- {
155
- index: BufferPointAttributeLocations.positionLow,
156
- componentDatatype: ComponentDatatype.FLOAT,
157
- componentsPerAttribute: 3,
158
- vertexBuffer: Buffer.createVertexBuffer({
159
- typedArray: attributeArrays.positionLow,
160
- context,
161
- usage: BufferUsage.STATIC_DRAW,
162
- }),
163
- },
164
- {
165
- index: BufferPointAttributeLocations.pickColor,
209
+ index: attributeLocations.pickColor,
166
210
  componentDatatype: ComponentDatatype.UNSIGNED_BYTE,
167
211
  componentsPerAttribute: 4,
168
212
  vertexBuffer: Buffer.createVertexBuffer({
@@ -172,21 +216,21 @@ function renderBufferPointCollection(collection, frameState, renderContext) {
172
216
  }),
173
217
  },
174
218
  {
175
- index: BufferPointAttributeLocations.showSizeAndColor,
219
+ index: attributeLocations.showSizeColorAlpha,
176
220
  componentDatatype: ComponentDatatype.FLOAT,
177
- componentsPerAttribute: 3,
221
+ componentsPerAttribute: 4,
178
222
  vertexBuffer: Buffer.createVertexBuffer({
179
- typedArray: attributeArrays.showSizeAndColor,
223
+ typedArray: attributeArrays.showSizeColorAlpha,
180
224
  context,
181
225
  usage: BufferUsage.STATIC_DRAW,
182
226
  }),
183
227
  },
184
228
  {
185
- index: BufferPointAttributeLocations.outlineWidthAndOutlineColor,
229
+ index: attributeLocations.outlineWidthColorAlpha,
186
230
  componentDatatype: ComponentDatatype.FLOAT,
187
- componentsPerAttribute: 2,
231
+ componentsPerAttribute: 3,
188
232
  vertexBuffer: Buffer.createVertexBuffer({
189
- typedArray: attributeArrays.outlineWidthAndOutlineColor,
233
+ typedArray: attributeArrays.outlineWidthColorAlpha,
190
234
  context,
191
235
  usage: BufferUsage.STATIC_DRAW,
192
236
  }),
@@ -194,11 +238,11 @@ function renderBufferPointCollection(collection, frameState, renderContext) {
194
238
  ],
195
239
  });
196
240
  } else if (collection._dirtyCount > 0) {
197
- for (const key in BufferPointAttributeLocations) {
198
- if (Object.hasOwn(BufferPointAttributeLocations, key)) {
241
+ for (const key in attributeLocations) {
242
+ if (Object.hasOwn(attributeLocations, key)) {
199
243
  const attribute = /** @type {BufferPointAttribute} */ (key);
200
244
  renderContext.vertexArray.copyAttributeFromRange(
201
- BufferPointAttributeLocations[attribute],
245
+ attributeLocations[attribute],
202
246
  renderContext.attributeArrays[attribute],
203
247
  collection._dirtyOffset,
204
248
  collection._dirtyCount,
@@ -209,7 +253,10 @@ function renderBufferPointCollection(collection, frameState, renderContext) {
209
253
 
210
254
  if (!defined(renderContext.renderState)) {
211
255
  renderContext.renderState = RenderState.fromCache({
212
- blending: BlendingState.ALPHA_BLEND,
256
+ blending:
257
+ collection._blendOption === BlendOption.OPAQUE
258
+ ? BlendingState.DISABLED
259
+ : BlendingState.ALPHA_BLEND,
213
260
  depthTest: { enabled: true },
214
261
  });
215
262
  }
@@ -219,11 +266,12 @@ function renderBufferPointCollection(collection, frameState, renderContext) {
219
266
  context,
220
267
  vertexShaderSource: new ShaderSource({
221
268
  sources: [BufferPointMaterialVS],
269
+ defines: useFloat64 ? ["USE_FLOAT64"] : [],
222
270
  }),
223
271
  fragmentShaderSource: new ShaderSource({
224
272
  sources: [BufferPointMaterialFS],
225
273
  }),
226
- attributeLocations: BufferPointAttributeLocations,
274
+ attributeLocations,
227
275
  });
228
276
  }
229
277
 
@@ -233,12 +281,15 @@ function renderBufferPointCollection(collection, frameState, renderContext) {
233
281
  renderState: renderContext.renderState,
234
282
  shaderProgram: renderContext.shaderProgram,
235
283
  primitiveType: PrimitiveType.POINTS,
236
- pass: Pass.OPAQUE,
284
+ pass:
285
+ collection._blendOption === BlendOption.OPAQUE
286
+ ? Pass.OPAQUE
287
+ : Pass.TRANSLUCENT,
237
288
  pickId: collection._allowPicking ? "v_pickColor" : undefined,
238
289
  owner: collection,
239
290
  count: collection.primitiveCount,
240
291
  modelMatrix: collection.modelMatrix, // shared reference
241
- boundingVolume: collection.boundingVolumeWC, // shared reference
292
+ boundingVolume: collection.boundingVolume, // shared reference
242
293
  debugShowBoundingVolume: collection.debugShowBoundingVolume,
243
294
  });
244
295
  }
@@ -255,8 +306,7 @@ function renderBufferPointCollection(collection, frameState, renderContext) {
255
306
 
256
307
  frameState.commandList.push(command);
257
308
 
258
- collection._dirtyCount = 0;
259
- collection._dirtyOffset = 0;
309
+ collection._makeClean();
260
310
 
261
311
  return renderContext;
262
312
  }