@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
@@ -13,147 +13,172 @@ import Vector3DTileGeometry from "./Vector3DTileGeometry.js";
13
13
  * Implements the {@link Cesium3DTileContent} interface.
14
14
  * </p>
15
15
  *
16
- * @alias Geometry3DTileContent
17
- * @constructor
18
- *
16
+ * @implements Cesium3DTileContent
19
17
  * @private
20
18
  */
21
- function Geometry3DTileContent(
22
- tileset,
23
- tile,
24
- resource,
25
- arrayBuffer,
26
- byteOffset,
27
- ) {
28
- this._tileset = tileset;
29
- this._tile = tile;
30
- this._resource = resource;
31
- this._geometries = undefined;
32
-
33
- this._metadata = undefined;
34
-
35
- this._batchTable = undefined;
36
- this._features = undefined;
19
+ class Geometry3DTileContent {
20
+ constructor(tileset, tile, resource, arrayBuffer, byteOffset) {
21
+ this._tileset = tileset;
22
+ this._tile = tile;
23
+ this._resource = resource;
24
+ this._geometries = undefined;
37
25
 
38
- /**
39
- * Part of the {@link Cesium3DTileContent} interface.
40
- */
41
- this.featurePropertiesDirty = false;
42
- this._group = undefined;
26
+ this._metadata = undefined;
43
27
 
44
- this._ready = false;
28
+ this._batchTable = undefined;
29
+ this._features = undefined;
45
30
 
46
- initialize(this, arrayBuffer, byteOffset);
47
- }
31
+ /**
32
+ * Part of the {@link Cesium3DTileContent} interface.
33
+ */
34
+ this.featurePropertiesDirty = false;
35
+ this._group = undefined;
48
36
 
49
- Object.defineProperties(Geometry3DTileContent.prototype, {
50
- featuresLength: {
51
- get: function () {
52
- return defined(this._batchTable) ? this._batchTable.featuresLength : 0;
53
- },
54
- },
55
-
56
- pointsLength: {
57
- get: function () {
58
- return 0;
59
- },
60
- },
61
-
62
- trianglesLength: {
63
- get: function () {
64
- if (defined(this._geometries)) {
65
- return this._geometries.trianglesLength;
66
- }
67
- return 0;
68
- },
69
- },
70
-
71
- geometryByteLength: {
72
- get: function () {
73
- if (defined(this._geometries)) {
74
- return this._geometries.geometryByteLength;
75
- }
76
- return 0;
77
- },
78
- },
79
-
80
- texturesByteLength: {
81
- get: function () {
82
- return 0;
83
- },
84
- },
85
-
86
- batchTableByteLength: {
87
- get: function () {
88
- return defined(this._batchTable)
89
- ? this._batchTable.batchTableByteLength
90
- : 0;
91
- },
92
- },
93
-
94
- innerContents: {
95
- get: function () {
96
- return undefined;
97
- },
98
- },
37
+ this._ready = false;
38
+
39
+ initialize(this, arrayBuffer, byteOffset);
40
+ }
41
+
42
+ get featuresLength() {
43
+ return defined(this._batchTable) ? this._batchTable.featuresLength : 0;
44
+ }
45
+
46
+ get pointsLength() {
47
+ return 0;
48
+ }
49
+
50
+ get trianglesLength() {
51
+ if (defined(this._geometries)) {
52
+ return this._geometries.trianglesLength;
53
+ }
54
+ return 0;
55
+ }
56
+
57
+ get geometryByteLength() {
58
+ if (defined(this._geometries)) {
59
+ return this._geometries.geometryByteLength;
60
+ }
61
+ return 0;
62
+ }
63
+
64
+ get texturesByteLength() {
65
+ return 0;
66
+ }
67
+
68
+ get batchTableByteLength() {
69
+ return defined(this._batchTable)
70
+ ? this._batchTable.batchTableByteLength
71
+ : 0;
72
+ }
73
+
74
+ get innerContents() {
75
+ return undefined;
76
+ }
99
77
 
100
78
  /**
101
79
  * Returns true when the tile's content is ready to render; otherwise false
102
80
  *
103
- * @memberof Geometry3DTileContent.prototype
104
81
  *
105
82
  * @type {boolean}
106
83
  * @readonly
107
84
  * @private
108
85
  */
109
- ready: {
110
- get: function () {
111
- return this._ready;
112
- },
113
- },
114
-
115
- tileset: {
116
- get: function () {
117
- return this._tileset;
118
- },
119
- },
120
-
121
- tile: {
122
- get: function () {
123
- return this._tile;
124
- },
125
- },
126
-
127
- url: {
128
- get: function () {
129
- return this._resource.getUrlComponent(true);
130
- },
131
- },
132
-
133
- metadata: {
134
- get: function () {
135
- return this._metadata;
136
- },
137
- set: function (value) {
138
- this._metadata = value;
139
- },
140
- },
141
-
142
- batchTable: {
143
- get: function () {
144
- return this._batchTable;
145
- },
146
- },
147
-
148
- group: {
149
- get: function () {
150
- return this._group;
151
- },
152
- set: function (value) {
153
- this._group = value;
154
- },
155
- },
156
- });
86
+ get ready() {
87
+ return this._ready;
88
+ }
89
+
90
+ get tileset() {
91
+ return this._tileset;
92
+ }
93
+
94
+ get tile() {
95
+ return this._tile;
96
+ }
97
+
98
+ get url() {
99
+ return this._resource.getUrlComponent(true);
100
+ }
101
+
102
+ get metadata() {
103
+ return this._metadata;
104
+ }
105
+
106
+ set metadata(value) {
107
+ this._metadata = value;
108
+ }
109
+
110
+ get batchTable() {
111
+ return this._batchTable;
112
+ }
113
+
114
+ get group() {
115
+ return this._group;
116
+ }
117
+
118
+ set group(value) {
119
+ this._group = value;
120
+ }
121
+
122
+ hasProperty(batchId, name) {
123
+ return this._batchTable.hasProperty(batchId, name);
124
+ }
125
+
126
+ getFeature(batchId) {
127
+ //>>includeStart('debug', pragmas.debug);
128
+ const featuresLength = this.featuresLength;
129
+ if (!defined(batchId) || batchId < 0 || batchId >= featuresLength) {
130
+ throw new DeveloperError(
131
+ `batchId is required and between zero and featuresLength - 1 (${
132
+ featuresLength - 1
133
+ }).`,
134
+ );
135
+ }
136
+ //>>includeEnd('debug');
137
+
138
+ createFeatures(this);
139
+ return this._features[batchId];
140
+ }
141
+
142
+ applyDebugSettings(enabled, color) {
143
+ if (defined(this._geometries)) {
144
+ this._geometries.applyDebugSettings(enabled, color);
145
+ }
146
+ }
147
+
148
+ applyStyle(style) {
149
+ createFeatures(this);
150
+ if (defined(this._geometries)) {
151
+ this._geometries.applyStyle(style, this._features);
152
+ }
153
+ }
154
+
155
+ update(tileset, frameState) {
156
+ if (defined(this._geometries)) {
157
+ this._geometries.classificationType = this._tileset.classificationType;
158
+ this._geometries.debugWireframe = this._tileset.debugWireframe;
159
+ this._geometries.update(frameState);
160
+ }
161
+
162
+ if (defined(this._batchTable) && this._geometries.ready) {
163
+ this._batchTable.update(tileset, frameState);
164
+ this._ready = true;
165
+ }
166
+ }
167
+
168
+ pick(ray, frameState, result) {
169
+ return undefined;
170
+ }
171
+
172
+ isDestroyed() {
173
+ return false;
174
+ }
175
+
176
+ destroy() {
177
+ this._geometries = this._geometries && this._geometries.destroy();
178
+ this._batchTable = this._batchTable && this._batchTable.destroy();
179
+ return destroyObject(this);
180
+ }
181
+ }
157
182
 
158
183
  function createColorChangedCallback(content) {
159
184
  return function (batchId, color) {
@@ -472,63 +497,4 @@ function createFeatures(content) {
472
497
  }
473
498
  }
474
499
 
475
- Geometry3DTileContent.prototype.hasProperty = function (batchId, name) {
476
- return this._batchTable.hasProperty(batchId, name);
477
- };
478
-
479
- Geometry3DTileContent.prototype.getFeature = function (batchId) {
480
- //>>includeStart('debug', pragmas.debug);
481
- const featuresLength = this.featuresLength;
482
- if (!defined(batchId) || batchId < 0 || batchId >= featuresLength) {
483
- throw new DeveloperError(
484
- `batchId is required and between zero and featuresLength - 1 (${
485
- featuresLength - 1
486
- }).`,
487
- );
488
- }
489
- //>>includeEnd('debug');
490
-
491
- createFeatures(this);
492
- return this._features[batchId];
493
- };
494
-
495
- Geometry3DTileContent.prototype.applyDebugSettings = function (enabled, color) {
496
- if (defined(this._geometries)) {
497
- this._geometries.applyDebugSettings(enabled, color);
498
- }
499
- };
500
-
501
- Geometry3DTileContent.prototype.applyStyle = function (style) {
502
- createFeatures(this);
503
- if (defined(this._geometries)) {
504
- this._geometries.applyStyle(style, this._features);
505
- }
506
- };
507
-
508
- Geometry3DTileContent.prototype.update = function (tileset, frameState) {
509
- if (defined(this._geometries)) {
510
- this._geometries.classificationType = this._tileset.classificationType;
511
- this._geometries.debugWireframe = this._tileset.debugWireframe;
512
- this._geometries.update(frameState);
513
- }
514
-
515
- if (defined(this._batchTable) && this._geometries.ready) {
516
- this._batchTable.update(tileset, frameState);
517
- this._ready = true;
518
- }
519
- };
520
-
521
- Geometry3DTileContent.prototype.pick = function (ray, frameState, result) {
522
- return undefined;
523
- };
524
-
525
- Geometry3DTileContent.prototype.isDestroyed = function () {
526
- return false;
527
- };
528
-
529
- Geometry3DTileContent.prototype.destroy = function () {
530
- this._geometries = this._geometries && this._geometries.destroy();
531
- this._batchTable = this._batchTable && this._batchTable.destroy();
532
- return destroyObject(this);
533
- };
534
500
  export default Geometry3DTileContent;
@@ -29,6 +29,7 @@ import QuadtreePrimitive from "./QuadtreePrimitive.js";
29
29
  import SceneMode from "./SceneMode.js";
30
30
  import ShadowMode from "./ShadowMode.js";
31
31
  import CesiumMath from "../Core/Math.js";
32
+ import VectorProvider from "../Core/VectorProvider.js";
32
33
 
33
34
  /**
34
35
  * The globe rendered in the scene, including its terrain ({@link Globe#terrainProvider})
@@ -46,6 +47,9 @@ function Globe(ellipsoid) {
46
47
  ellipsoid: ellipsoid,
47
48
  });
48
49
  const imageryLayerCollection = new ImageryLayerCollection();
50
+ const vectorProvider = new VectorProvider({
51
+ tilingScheme: terrainProvider.tilingScheme,
52
+ });
49
53
 
50
54
  this._ellipsoid = ellipsoid;
51
55
  this._imageryLayerCollection = imageryLayerCollection;
@@ -58,12 +62,15 @@ function Globe(ellipsoid) {
58
62
  terrainProvider: terrainProvider,
59
63
  imageryLayers: imageryLayerCollection,
60
64
  surfaceShaderSet: this._surfaceShaderSet,
65
+ vectorProvider,
61
66
  }),
62
67
  });
63
68
 
64
69
  this._terrainProvider = terrainProvider;
65
70
  this._terrainProviderChanged = new Event();
66
71
 
72
+ this._vectorProvider = vectorProvider;
73
+
67
74
  this._undergroundColor = Color.clone(Color.BLACK);
68
75
  this._undergroundColorAlphaByDistance = new NearFarScalar(
69
76
  ellipsoid.maximumRadius / 1000.0,
@@ -570,6 +577,9 @@ Object.defineProperties(Globe.prototype, {
570
577
  set: function (value) {
571
578
  if (value !== this._terrainProvider) {
572
579
  this._terrainProvider = value;
580
+ if (defined(value)) {
581
+ this._vectorProvider.tilingScheme = value.tilingScheme;
582
+ }
573
583
  this._terrainProviderChanged.raiseEvent(value);
574
584
  if (defined(this._material)) {
575
585
  makeShadersDirty(this);
@@ -589,6 +599,16 @@ Object.defineProperties(Globe.prototype, {
589
599
  return this._terrainProviderChanged;
590
600
  },
591
601
  },
602
+ /**
603
+ * @memberof Globe.prototype
604
+ * @type {VectorProvider}
605
+ * @ignore
606
+ */
607
+ vectorProvider: {
608
+ get: function () {
609
+ return this._vectorProvider;
610
+ },
611
+ },
592
612
  /**
593
613
  * Gets an event that's raised when the length of the tile load queue has changed since the last render frame. When the load queue is empty,
594
614
  * all terrain and imagery for the current view have been loaded. The event passes the new length of the tile load queue.
@@ -780,7 +800,8 @@ Globe.prototype.pickWorldCoordinates = function (
780
800
  const projection = scene.mapProjection;
781
801
 
782
802
  const repeatWorlds =
783
- scene.columbusRepeatWorlds === true && mode === SceneMode.COLUMBUS_VIEW;
803
+ scene.columbusRepeatWorlds === true &&
804
+ (mode === SceneMode.SCENE2D || mode === SceneMode.COLUMBUS_VIEW);
784
805
  const worldWidth = repeatWorlds
785
806
  ? getGlobeColumbusWorldWidth(projection)
786
807
  : 0.0;
@@ -2,6 +2,7 @@ import BoundingRectangle from "../Core/BoundingRectangle.js";
2
2
  import Color from "../Core/Color.js";
3
3
  import defined from "../Core/defined.js";
4
4
  import destroyObject from "../Core/destroyObject.js";
5
+ import PixelFormat from "../Core/PixelFormat.js";
5
6
  import ClearCommand from "../Renderer/ClearCommand.js";
6
7
  import FramebufferManager from "../Renderer/FramebufferManager.js";
7
8
  import PixelDatatype from "../Renderer/PixelDatatype.js";
@@ -23,6 +24,7 @@ import StencilOperation from "./StencilOperation.js";
23
24
  */
24
25
  function GlobeDepth() {
25
26
  this._picking = false;
27
+ this._snapping = false;
26
28
  this._numSamples = 1;
27
29
  this._tempCopyDepthTexture = undefined;
28
30
 
@@ -30,6 +32,16 @@ function GlobeDepth() {
30
32
  depthStencil: true,
31
33
  supportsDepthTexture: true,
32
34
  });
35
+ // Float twin of the pick color framebuffer, used during a snapping pass
36
+ // (see Scene#snap). RGBA32F so each pixel can carry the snap payload
37
+ // (uint32 pick ID, isEdge flag, eye-space depth). GPU resources are only
38
+ // allocated on first use (FramebufferManager allocates lazily in update).
39
+ this._snapColorFramebuffer = new FramebufferManager({
40
+ depthStencil: true,
41
+ supportsDepthTexture: true,
42
+ pixelDatatype: PixelDatatype.FLOAT,
43
+ pixelFormat: PixelFormat.RGBA,
44
+ });
33
45
  this._outputFramebuffer = new FramebufferManager({
34
46
  depthStencil: true,
35
47
  supportsDepthTexture: true,
@@ -70,6 +82,9 @@ function GlobeDepth() {
70
82
  Object.defineProperties(GlobeDepth.prototype, {
71
83
  colorFramebufferManager: {
72
84
  get: function () {
85
+ if (this._snapping) {
86
+ return this._snapColorFramebuffer;
87
+ }
73
88
  return this._picking
74
89
  ? this._pickColorFramebuffer
75
90
  : this._outputFramebuffer;
@@ -93,6 +108,14 @@ Object.defineProperties(GlobeDepth.prototype, {
93
108
  this._picking = value;
94
109
  },
95
110
  },
111
+ snapping: {
112
+ get: function () {
113
+ return this._snapping;
114
+ },
115
+ set: function (value) {
116
+ this._snapping = value;
117
+ },
118
+ },
96
119
  });
97
120
 
98
121
  function updateCopyCommands(globeDepth, context, width, height, passState) {
@@ -292,7 +315,9 @@ GlobeDepth.prototype.update = function (
292
315
  : PixelDatatype.FLOAT
293
316
  : PixelDatatype.UNSIGNED_BYTE;
294
317
  this._numSamples = numSamples;
295
- if (this.picking) {
318
+ if (this.snapping) {
319
+ this._snapColorFramebuffer.update(context, width, height);
320
+ } else if (this.picking) {
296
321
  this._pickColorFramebuffer.update(context, width, height);
297
322
  } else {
298
323
  this._outputFramebuffer.update(
@@ -567,6 +592,7 @@ GlobeDepth.prototype.isDestroyed = function () {
567
592
 
568
593
  GlobeDepth.prototype.destroy = function () {
569
594
  this._pickColorFramebuffer.destroy();
595
+ this._snapColorFramebuffer.destroy();
570
596
  this._outputFramebuffer.destroy();
571
597
  this._copyDepthFramebuffer.destroy();
572
598
  for (let i = 0; i < this._copyDepthFramebuffers.length; i++) {