@hztxi/cesium-engine 25.0.7 → 26.2.2

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 (471) hide show
  1. package/Build/Workers/chunk-2FNKHQL3.js +754 -0
  2. package/Build/Workers/chunk-2NCNUVAT.js +56 -0
  3. package/Build/Workers/chunk-2ZYRUVVU.js +301 -0
  4. package/Build/Workers/chunk-36IU7N4V.js +1284 -0
  5. package/Build/Workers/chunk-3BDLET5S.js +198 -0
  6. package/Build/Workers/chunk-3JZXI44G.js +3822 -0
  7. package/Build/Workers/chunk-3N2UNLWJ.js +101 -0
  8. package/Build/Workers/chunk-3NCG2YYR.js +58 -0
  9. package/Build/Workers/chunk-3PRHI4KX.js +241 -0
  10. package/Build/Workers/chunk-3R6E2SH4.js +672 -0
  11. package/Build/Workers/chunk-3ZKKXEXL.js +415 -0
  12. package/Build/Workers/chunk-47KVKPTO.js +415 -0
  13. package/Build/Workers/chunk-4FFIJ7ZV.js +56 -0
  14. package/Build/Workers/chunk-4N227IPR.js +973 -0
  15. package/Build/Workers/chunk-4P6OAPBM.js +97 -0
  16. package/Build/Workers/chunk-4XR3K4GD.js +280 -0
  17. package/Build/Workers/chunk-4Z2JINRS.js +519 -0
  18. package/Build/Workers/chunk-4ZOLEPZK.js +519 -0
  19. package/Build/Workers/chunk-5EF3WWQG.js +352 -0
  20. package/Build/Workers/chunk-5I76476T.js +288 -0
  21. package/Build/Workers/chunk-5PBZKBAP.js +511 -0
  22. package/Build/Workers/chunk-5RVAAW26.js +82 -0
  23. package/Build/Workers/chunk-5VWK76PO.js +511 -0
  24. package/Build/Workers/chunk-6SEICASZ.js +241 -0
  25. package/Build/Workers/chunk-77DBX23X.js +455 -0
  26. package/Build/Workers/chunk-7C2D3DTI.js +959 -0
  27. package/Build/Workers/chunk-7GQOWCSN.js +959 -0
  28. package/Build/Workers/chunk-7J2ONMKC.js +198 -0
  29. package/Build/Workers/chunk-7MHUHXZZ.js +219 -0
  30. package/Build/Workers/chunk-7MQPHOAS.js +455 -0
  31. package/Build/Workers/chunk-7NJ5O7TP.js +387 -0
  32. package/Build/Workers/chunk-7T4MW2W4.js +368 -0
  33. package/Build/Workers/chunk-7UXZUGUZ.js +82 -0
  34. package/Build/Workers/chunk-7Y642MCO.js +352 -0
  35. package/Build/Workers/chunk-7ZFKBLUE.js +1054 -0
  36. package/Build/Workers/chunk-A2UHPWPL.js +38 -0
  37. package/Build/Workers/chunk-A7LGY5XS.js +140 -0
  38. package/Build/Workers/chunk-AN2NVYL6.js +1483 -0
  39. package/Build/Workers/chunk-AS2QC7H2.js +219 -0
  40. package/Build/Workers/chunk-AVOLMIGJ.js +57 -0
  41. package/Build/Workers/chunk-B7PT2VL5.js +630 -0
  42. package/Build/Workers/chunk-BHRHMUDM.js +147 -0
  43. package/Build/Workers/chunk-BUWAHRK5.js +672 -0
  44. package/Build/Workers/chunk-C5ET5HON.js +198 -0
  45. package/Build/Workers/chunk-C6XQGBPV.js +476 -0
  46. package/Build/Workers/chunk-C7B672RR.js +73 -0
  47. package/Build/Workers/chunk-CAEC5DA2.js +57 -0
  48. package/Build/Workers/chunk-CBCOHH5O.js +837 -0
  49. package/Build/Workers/chunk-CEMXKBQO.js +1800 -0
  50. package/Build/Workers/chunk-CKW3STKA.js +1067 -0
  51. package/Build/Workers/chunk-CV5RICKT.js +1992 -0
  52. package/Build/Workers/chunk-DBWSISJT.js +56 -0
  53. package/Build/Workers/chunk-DCMOBPLG.js +352 -0
  54. package/Build/Workers/chunk-DSBSPPPJ.js +1344 -0
  55. package/Build/Workers/chunk-DSGLDRTI.js +278 -0
  56. package/Build/Workers/chunk-DXD7OPSP.js +1992 -0
  57. package/Build/Workers/chunk-DXECZBSA.js +368 -0
  58. package/Build/Workers/chunk-DZIRO6ZK.js +682 -0
  59. package/Build/Workers/chunk-E4CRPGX5.js +140 -0
  60. package/Build/Workers/chunk-E4IVMEBH.js +52 -0
  61. package/Build/Workers/chunk-E6IPM6HP.js +56 -0
  62. package/Build/Workers/chunk-EB2HAHRY.js +1054 -0
  63. package/Build/Workers/chunk-ECDCQXCO.js +1992 -0
  64. package/Build/Workers/chunk-ECN3VUMA.js +73 -0
  65. package/Build/Workers/chunk-ECSKVHUB.js +476 -0
  66. package/Build/Workers/chunk-EIENGLA5.js +278 -0
  67. package/Build/Workers/chunk-EK5CWDW2.js +476 -0
  68. package/Build/Workers/chunk-EL4B5CSQ.js +162 -0
  69. package/Build/Workers/chunk-EUCUBIEZ.js +97 -0
  70. package/Build/Workers/chunk-FAYBQGKO.js +219 -0
  71. package/Build/Workers/chunk-FGCXPEZM.js +3201 -0
  72. package/Build/Workers/chunk-FHCRXPA6.js +44 -0
  73. package/Build/Workers/chunk-FM6EQUFX.js +1800 -0
  74. package/Build/Workers/chunk-FPFGGQ4X.js +301 -0
  75. package/Build/Workers/chunk-FQ42MT7M.js +58 -0
  76. package/Build/Workers/chunk-FQDYQG4P.js +1284 -0
  77. package/Build/Workers/chunk-FQTV6W3I.js +973 -0
  78. package/Build/Workers/chunk-FTCBY5HH.js +138 -0
  79. package/Build/Workers/chunk-GI5RWJAY.js +101 -0
  80. package/Build/Workers/chunk-GNLMSDRO.js +945 -0
  81. package/Build/Workers/chunk-GTA727KQ.js +140 -0
  82. package/Build/Workers/chunk-GVUJ6O3R.js +73 -0
  83. package/Build/Workers/chunk-GXTM7AG3.js +1483 -0
  84. package/Build/Workers/chunk-HAXQB2FS.js +2719 -0
  85. package/Build/Workers/chunk-HCGU7OCG.js +97 -0
  86. package/Build/Workers/chunk-HRIPVWSC.js +58 -0
  87. package/Build/Workers/chunk-IC3BR6SC.js +102 -0
  88. package/Build/Workers/chunk-IEPPOHF3.js +44 -0
  89. package/Build/Workers/chunk-IU3YAYPT.js +1344 -0
  90. package/Build/Workers/chunk-J3AXZ4WC.js +124 -0
  91. package/Build/Workers/chunk-J7MZR7B2.js +1483 -0
  92. package/Build/Workers/chunk-KBNW776Q.js +305 -0
  93. package/Build/Workers/chunk-KBSWXVSY.js +837 -0
  94. package/Build/Workers/chunk-KEYTLNVK.js +1067 -0
  95. package/Build/Workers/chunk-KN3RQWUA.js +3201 -0
  96. package/Build/Workers/chunk-KSIEJYNL.js +3822 -0
  97. package/Build/Workers/chunk-KT3GG7AW.js +754 -0
  98. package/Build/Workers/chunk-KYCEM22I.js +1800 -0
  99. package/Build/Workers/chunk-L2TFZKN6.js +455 -0
  100. package/Build/Workers/chunk-LHKE2VUR.js +945 -0
  101. package/Build/Workers/chunk-LJTQW46H.js +57 -0
  102. package/Build/Workers/chunk-LMQGYJME.js +672 -0
  103. package/Build/Workers/chunk-LOBYJQA4.js +76 -0
  104. package/Build/Workers/chunk-LOF32O7F.js +163 -0
  105. package/Build/Workers/chunk-LOTIJA7D.js +124 -0
  106. package/Build/Workers/chunk-M7Z3MPAX.js +973 -0
  107. package/Build/Workers/chunk-MHNLTQHO.js +3201 -0
  108. package/Build/Workers/chunk-MICPAD7R.js +398 -0
  109. package/Build/Workers/chunk-ML7OMD72.js +2342 -0
  110. package/Build/Workers/chunk-MPJ73WMH.js +138 -0
  111. package/Build/Workers/chunk-MUTHG7T7.js +171 -0
  112. package/Build/Workers/chunk-NBTGXEMT.js +945 -0
  113. package/Build/Workers/chunk-NQZC37F7.js +38 -0
  114. package/Build/Workers/chunk-O3X3D2Z3.js +352 -0
  115. package/Build/Workers/chunk-OBUIHPKF.js +352 -0
  116. package/Build/Workers/chunk-PAEWNYIV.js +138 -0
  117. package/Build/Workers/chunk-PANJ7YH6.js +102 -0
  118. package/Build/Workers/chunk-PCL3Y7H5.js +82 -0
  119. package/Build/Workers/chunk-PHUELDXQ.js +76 -0
  120. package/Build/Workers/chunk-PIIUGRQD.js +387 -0
  121. package/Build/Workers/chunk-POKD22OT.js +2719 -0
  122. package/Build/Workers/chunk-PQMA7MFS.js +9237 -0
  123. package/Build/Workers/chunk-PQZW2QZG.js +163 -0
  124. package/Build/Workers/chunk-PURIPUSY.js +682 -0
  125. package/Build/Workers/chunk-QQZPPXY4.js +3822 -0
  126. package/Build/Workers/chunk-QXLQLGL2.js +1067 -0
  127. package/Build/Workers/chunk-R2JQAAU7.js +630 -0
  128. package/Build/Workers/chunk-RC4YC3VU.js +278 -0
  129. package/Build/Workers/chunk-RGNNWVR6.js +171 -0
  130. package/Build/Workers/chunk-RUOETBWP.js +288 -0
  131. package/Build/Workers/chunk-RV4EPLBO.js +2342 -0
  132. package/Build/Workers/chunk-SBBIEHYT.js +44 -0
  133. package/Build/Workers/chunk-SBEQLEO5.js +352 -0
  134. package/Build/Workers/chunk-SGC2GT3Y.js +1284 -0
  135. package/Build/Workers/chunk-SKLK4CBL.js +162 -0
  136. package/Build/Workers/chunk-SWVZTU6X.js +305 -0
  137. package/Build/Workers/chunk-T3EUPM5A.js +454 -0
  138. package/Build/Workers/chunk-TA6IU2XL.js +171 -0
  139. package/Build/Workers/chunk-TLSGD5TR.js +280 -0
  140. package/Build/Workers/chunk-TNDQT5AB.js +682 -0
  141. package/Build/Workers/chunk-TOXDLWKZ.js +368 -0
  142. package/Build/Workers/chunk-TZBM6TAB.js +124 -0
  143. package/Build/Workers/chunk-U2OY6MX6.js +398 -0
  144. package/Build/Workers/chunk-UCY4B5EV.js +288 -0
  145. package/Build/Workers/chunk-V52FEPCV.js +754 -0
  146. package/Build/Workers/chunk-VBEXZBG5.js +147 -0
  147. package/Build/Workers/chunk-VC76B6GM.js +959 -0
  148. package/Build/Workers/chunk-VCUOYHWC.js +519 -0
  149. package/Build/Workers/chunk-VDBQVKTF.js +387 -0
  150. package/Build/Workers/chunk-VJIL5H6K.js +2719 -0
  151. package/Build/Workers/chunk-VJLDRHKN.js +511 -0
  152. package/Build/Workers/chunk-VMF7KOGY.js +162 -0
  153. package/Build/Workers/chunk-W3X2ZAEJ.js +52 -0
  154. package/Build/Workers/chunk-W5OCKMPJ.js +101 -0
  155. package/Build/Workers/chunk-X4VZ33YL.js +454 -0
  156. package/Build/Workers/chunk-XDM5A6C4.js +102 -0
  157. package/Build/Workers/chunk-XHT5SVP4.js +52 -0
  158. package/Build/Workers/chunk-XITBARMZ.js +2342 -0
  159. package/Build/Workers/chunk-XLQZNQ4Z.js +163 -0
  160. package/Build/Workers/chunk-XZ6HDXKM.js +76 -0
  161. package/Build/Workers/chunk-Y6AQK4FY.js +1344 -0
  162. package/Build/Workers/chunk-Y7NDFEQ3.js +398 -0
  163. package/Build/Workers/chunk-YBBQDYX2.js +301 -0
  164. package/Build/Workers/chunk-YHPYPVAB.js +837 -0
  165. package/Build/Workers/chunk-YJBPRW4A.js +415 -0
  166. package/Build/Workers/chunk-YNKK6BXY.js +454 -0
  167. package/Build/Workers/chunk-YRAJ74HR.js +305 -0
  168. package/Build/Workers/chunk-YULTZK5O.js +147 -0
  169. package/Build/Workers/chunk-YUNQYP3Z.js +9237 -0
  170. package/Build/Workers/chunk-YX2FOQMF.js +9237 -0
  171. package/Build/Workers/chunk-Z7BONRW2.js +241 -0
  172. package/Build/Workers/chunk-ZK2R3DEJ.js +1054 -0
  173. package/Build/Workers/combineGeometry.js +24 -24
  174. package/Build/Workers/createBoxGeometry.js +18 -18
  175. package/Build/Workers/createBoxOutlineGeometry.js +18 -18
  176. package/Build/Workers/createCircleGeometry.js +26 -26
  177. package/Build/Workers/createCircleOutlineGeometry.js +19 -19
  178. package/Build/Workers/createCoplanarPolygonGeometry.js +39 -39
  179. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +33 -33
  180. package/Build/Workers/createCorridorGeometry.js +36 -37
  181. package/Build/Workers/createCorridorOutlineGeometry.js +34 -35
  182. package/Build/Workers/createCylinderGeometry.js +20 -20
  183. package/Build/Workers/createCylinderOutlineGeometry.js +20 -20
  184. package/Build/Workers/createEllipseGeometry.js +26 -26
  185. package/Build/Workers/createEllipseOutlineGeometry.js +19 -19
  186. package/Build/Workers/createEllipsoidGeometry.js +19 -19
  187. package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -18
  188. package/Build/Workers/createFrustumGeometry.js +18 -18
  189. package/Build/Workers/createFrustumOutlineGeometry.js +20 -20
  190. package/Build/Workers/createGeometry.js +25 -24
  191. package/Build/Workers/createGroundPolylineGeometry.js +26 -26
  192. package/Build/Workers/createMvtTile.js +111 -19
  193. package/Build/Workers/createPlaneGeometry.js +18 -18
  194. package/Build/Workers/createPlaneOutlineGeometry.js +17 -17
  195. package/Build/Workers/createPolygonGeometry.js +36 -36
  196. package/Build/Workers/createPolygonOutlineGeometry.js +33 -33
  197. package/Build/Workers/createPolylineGeometry.js +28 -28
  198. package/Build/Workers/createPolylineVolumeGeometry.js +38 -36
  199. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +32 -31
  200. package/Build/Workers/createRectangleGeometry.js +29 -29
  201. package/Build/Workers/createRectangleOutlineGeometry.js +23 -23
  202. package/Build/Workers/createSimplePolylineGeometry.js +26 -26
  203. package/Build/Workers/createSphereGeometry.js +19 -19
  204. package/Build/Workers/createSphereOutlineGeometry.js +18 -18
  205. package/Build/Workers/createTaskProcessorWorker.js +3 -3
  206. package/Build/Workers/createVectorTileClampedPolylines.js +14 -14
  207. package/Build/Workers/createVectorTileGeometries.js +24 -24
  208. package/Build/Workers/createVectorTilePoints.js +13 -13
  209. package/Build/Workers/createVectorTilePolygons.js +22 -22
  210. package/Build/Workers/createVectorTilePolylines.js +14 -14
  211. package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +26 -26
  212. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +23 -23
  213. package/Build/Workers/createVerticesFromHeightmap.js +23 -23
  214. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +21 -21
  215. package/Build/Workers/createWallGeometry.js +26 -26
  216. package/Build/Workers/createWallOutlineGeometry.js +26 -26
  217. package/Build/Workers/decodeDraco.js +10 -10
  218. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +993 -2334
  219. package/Build/Workers/decodeI3S.js +10 -10
  220. package/Build/Workers/gaussianSplatSorter.js +4 -4
  221. package/Build/Workers/gaussianSplatTextureGenerator.js +4 -4
  222. package/Build/Workers/incrementallyBuildTerrainPicker.js +10 -10
  223. package/Build/Workers/transcodeKTX2.js +6 -6
  224. package/Build/Workers/transferTypedArrayTest.js +1 -1
  225. package/Build/Workers/upsampleQuantizedTerrainMesh.js +23 -23
  226. package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +26 -26
  227. package/Source/Core/ArcGISTiledElevationTerrainProvider.js +1 -5
  228. package/Source/Core/BoundingRectangle.js +6 -8
  229. package/Source/Core/BoundingSphere.js +0 -3
  230. package/Source/Core/Cartesian2.js +1 -1
  231. package/Source/Core/Cartesian3.js +1 -1
  232. package/Source/Core/Cartesian4.js +1 -1
  233. package/Source/Core/Cesium3DTilesTerrainGeometryProcessor.js +3 -4
  234. package/Source/Core/Color.js +1 -0
  235. package/Source/Core/ComponentDatatype.js +35 -0
  236. package/Source/Core/CoplanarPolygonGeometry.js +2 -2
  237. package/Source/Core/CorridorGeometry.js +2 -4
  238. package/Source/Core/CorridorOutlineGeometry.js +1 -3
  239. package/Source/Core/EarthOrientationParameters.js +2 -2
  240. package/Source/Core/EllipseGeometryLibrary.js +2 -2
  241. package/Source/Core/EllipsoidGeodesic.js +3 -3
  242. package/Source/Core/EllipsoidRhumbLine.js +1 -1
  243. package/Source/Core/Heap.js +1 -1
  244. package/Source/Core/HermitePolynomialApproximation.js +215 -179
  245. package/Source/Core/InterpolationAlgorithm.js +58 -50
  246. package/Source/Core/Ion.js +1 -1
  247. package/Source/Core/JulianDate.js +1 -1
  248. package/Source/Core/LagrangePolynomialApproximation.js +55 -52
  249. package/Source/Core/LinearApproximation.js +69 -66
  250. package/Source/Core/MapProjection.js +1 -0
  251. package/Source/Core/Math.js +59 -0
  252. package/Source/Core/Matrix2.js +3 -3
  253. package/Source/Core/Matrix3.js +3 -3
  254. package/Source/Core/Matrix4.js +1 -1
  255. package/Source/Core/OrthographicFrustum.js +1 -1
  256. package/Source/Core/PerspectiveFrustum.js +1 -1
  257. package/Source/Core/PolygonGeometry.js +2 -2
  258. package/Source/Core/PolygonGeometryLibrary.js +1 -1
  259. package/Source/Core/PolygonOutlineGeometry.js +1 -1
  260. package/Source/Core/PolylineGeometry.js +1 -1
  261. package/Source/Core/PolylineVolumeGeometryLibrary.js +1 -1
  262. package/Source/Core/Rectangle.js +7 -1
  263. package/Source/Core/RectangleOutlineGeometry.js +1 -1
  264. package/Source/Core/Resource.js +1 -1
  265. package/Source/Core/ScreenSpaceEventHandler.js +51 -41
  266. package/Source/Core/SimplePolylineGeometry.js +1 -1
  267. package/Source/Core/TerrainEncoding.js +2 -2
  268. package/Source/Core/TerrainMesh.js +3 -3
  269. package/Source/Core/TerrainPicker.js +180 -168
  270. package/Source/Core/TimeIntervalCollection.js +1 -3
  271. package/Source/Core/Tipsify.js +1 -1
  272. package/Source/Core/Transforms.js +5 -1
  273. package/Source/Core/VectorPipeline.js +1117 -0
  274. package/Source/Core/VectorProvider.js +429 -0
  275. package/Source/Core/WallOutlineGeometry.js +1 -1
  276. package/Source/Core/createColorRamp.js +37 -0
  277. package/Source/Core/getTimestamp.js +4 -2
  278. package/Source/Core/globalTypes.js +25 -0
  279. package/Source/Core/writeTextToCanvas.js +1 -0
  280. package/Source/DataSources/CompositeEntityCollection.js +0 -1
  281. package/Source/DataSources/CzmlDataSource.js +14 -0
  282. package/Source/DataSources/DataSourceDisplay.js +1 -1
  283. package/Source/DataSources/GeoJsonDataSource.js +0 -1
  284. package/Source/DataSources/GeometryVisualizer.js +1 -1
  285. package/Source/DataSources/KmlDataSource.js +529 -557
  286. package/Source/DataSources/PathGraphics.js +8 -1
  287. package/Source/DataSources/PathMode.js +27 -0
  288. package/Source/DataSources/PathVisualizer.js +298 -1
  289. package/Source/DataSources/PolylineVisualizer.js +1 -1
  290. package/Source/DataSources/StaticOutlineGeometryBatch.js +1 -1
  291. package/Source/Renderer/AutomaticUniforms.js +23 -0
  292. package/Source/Renderer/Context.js +9 -3
  293. package/Source/Renderer/DrawCommand.js +22 -0
  294. package/Source/Renderer/Framebuffer.js +4 -0
  295. package/Source/Renderer/Pass.js +11 -9
  296. package/Source/Renderer/Texture.js +12 -1
  297. package/Source/Renderer/UniformState.js +7 -0
  298. package/Source/Renderer/VertexArray.js +1 -1
  299. package/Source/Renderer/createUniform.js +346 -239
  300. package/Source/Renderer/createUniformArray.js +494 -381
  301. package/Source/Scene/ArcGisMapServerImageryProvider.js +0 -5
  302. package/Source/Scene/ArcGisMapService.js +1 -1
  303. package/Source/Scene/Billboard.js +2 -1
  304. package/Source/Scene/BillboardCollection.js +15 -5
  305. package/Source/Scene/BillboardTexture.js +5 -3
  306. package/Source/Scene/BufferPointCollection.js +11 -1
  307. package/Source/Scene/BufferPolygonCollection.js +26 -0
  308. package/Source/Scene/BufferPolylineCollection.js +2 -0
  309. package/Source/Scene/BufferPrimitiveCollection.js +105 -32
  310. package/Source/Scene/Camera.js +85 -9
  311. package/Source/Scene/CameraEventAggregator.js +30 -18
  312. package/Source/Scene/CameraFlightPath.js +7 -4
  313. package/Source/Scene/Cesium3DTile.js +102 -4
  314. package/Source/Scene/Cesium3DTileContent.js +195 -254
  315. package/Source/Scene/Cesium3DTileContentFactory.js +10 -2
  316. package/Source/Scene/Cesium3DTileOptimizations.js +4 -6
  317. package/Source/Scene/Cesium3DTileStyle.js +40 -0
  318. package/Source/Scene/Cesium3DTileset.js +213 -8
  319. package/Source/Scene/Cesium3DTilesetTraversal.js +14 -0
  320. package/Source/Scene/ClippingPlaneCollection.js +4 -4
  321. package/Source/Scene/ClippingPolygon.js +2 -0
  322. package/Source/Scene/ClippingPolygonCollection.js +2 -2
  323. package/Source/Scene/Composite3DTileContent.js +254 -292
  324. package/Source/Scene/Controllers/Controller.js +63 -0
  325. package/Source/Scene/Controllers/ControllerHost.js +78 -0
  326. package/Source/Scene/Controllers/HybridScreenSpacePanCameraController.js +106 -0
  327. package/Source/Scene/Controllers/MouseButton.js +32 -0
  328. package/Source/Scene/Controllers/ScreenSpaceElevatorCameraController.js +295 -0
  329. package/Source/Scene/Controllers/ScreenSpaceInputBindings.js +154 -0
  330. package/Source/Scene/Controllers/ScreenSpaceMapCameraController.js +310 -0
  331. package/Source/Scene/Controllers/ScreenSpaceTiltOrbitCameraController.js +642 -0
  332. package/Source/Scene/Controllers/ScreenSpaceZoomCameraController.js +431 -0
  333. package/Source/Scene/Controllers/defaultPickWorldPosition.js +84 -0
  334. package/Source/Scene/DerivedCommand.js +98 -0
  335. package/Source/Scene/EdgeDisplayMode.js +50 -0
  336. package/Source/Scene/EdgeFramebuffer.js +1 -5
  337. package/Source/Scene/Empty3DTileContent.js +100 -132
  338. package/Source/Scene/Expression.js +6 -8
  339. package/Source/Scene/FrameState.js +17 -0
  340. package/Source/Scene/GaussianSplat3DTileContent.js +436 -478
  341. package/Source/Scene/GeoJsonPrimitive.js +874 -0
  342. package/Source/Scene/Geometry3DTileContent.js +151 -185
  343. package/Source/Scene/Globe.js +22 -1
  344. package/Source/Scene/GlobeDepth.js +27 -1
  345. package/Source/Scene/GlobeSurfaceShaderSet.js +637 -540
  346. package/Source/Scene/GlobeSurfaceTile.js +575 -398
  347. package/Source/Scene/GlobeSurfaceTileProvider.js +1412 -1184
  348. package/Source/Scene/GltfBufferViewLoader.js +3 -3
  349. package/Source/Scene/GltfLoader.js +146 -3
  350. package/Source/Scene/GltfLoaderUtil.js +20 -4
  351. package/Source/Scene/GltfPipeline/forEachTextureInMaterial.js +10 -0
  352. package/Source/Scene/GltfPipeline/removeUnusedElements.js +21 -11
  353. package/Source/Scene/GltfSpzLoader.js +1 -1
  354. package/Source/Scene/GltfVertexBufferLoader.js +6 -3
  355. package/Source/Scene/I3SDataProvider.js +1 -1
  356. package/Source/Scene/I3SLayer.js +1 -1
  357. package/Source/Scene/I3SNode.js +2 -2
  358. package/Source/Scene/ImageryLayer.js +2 -2
  359. package/Source/Scene/ImageryLayerCollection.js +190 -6
  360. package/Source/Scene/Implicit3DTileContent.js +192 -216
  361. package/Source/Scene/ImplicitTileCoordinates.js +17 -0
  362. package/Source/Scene/IonImageryProvider.js +1 -5
  363. package/Source/Scene/Label.js +4 -4
  364. package/Source/Scene/LabelCollection.js +4 -1
  365. package/Source/Scene/MVTDataProvider.js +555 -0
  366. package/Source/Scene/Material.js +1 -0
  367. package/Source/Scene/Model/B3dmLoader.js +1 -2
  368. package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +82 -312
  369. package/Source/Scene/Model/Extensions/Gpm/GltfGpmLoader.js +4 -0
  370. package/Source/Scene/Model/I3dmLoader.js +1 -1
  371. package/Source/Scene/Model/InstancingPipelineStage.js +4 -7
  372. package/Source/Scene/Model/MaterialPipelineStage.js +124 -1
  373. package/Source/Scene/Model/Model.js +45 -10
  374. package/Source/Scene/Model/Model3DTileContent.js +424 -458
  375. package/Source/Scene/Model/ModelClippingPlanesPipelineStage.js +28 -1
  376. package/Source/Scene/Model/ModelDrawCommand.js +180 -8
  377. package/Source/Scene/Model/ModelDrawCommands.js +4 -0
  378. package/Source/Scene/Model/ModelSceneGraph.js +21 -0
  379. package/Source/Scene/Model/ModelUtility.js +5 -0
  380. package/Source/Scene/Model/PickingPipelineStage.js +29 -0
  381. package/Source/Scene/Model/PrimitiveRenderResources.js +24 -0
  382. package/Source/Scene/Model/createVectorTileBuffersFromModelComponents.js +645 -153
  383. package/Source/Scene/ModelComponents.js +112 -0
  384. package/Source/Scene/Multiple3DTileContent.js +291 -334
  385. package/Source/Scene/MvtLabelCandidates.js +295 -0
  386. package/Source/Scene/MvtLabelManager.js +1069 -0
  387. package/Source/Scene/Picking.js +19 -3
  388. package/Source/Scene/PlanarFillIdFramebuffer.js +172 -0
  389. package/Source/Scene/PntsParser.js +1 -1
  390. package/Source/Scene/PolylineCollection.js +5 -3
  391. package/Source/Scene/PostProcessStage.js +4 -2
  392. package/Source/Scene/QuadtreePrimitive.js +3 -2
  393. package/Source/Scene/ResourceCache.js +7 -4
  394. package/Source/Scene/ResourceCacheKey.js +21 -18
  395. package/Source/Scene/Scene.js +237 -11
  396. package/Source/Scene/SceneTransforms.js +6 -5
  397. package/Source/Scene/ShadowMap.js +9 -3
  398. package/Source/Scene/ShadowMapShader.js +50 -2
  399. package/Source/Scene/SnapFramebuffer.js +121 -0
  400. package/Source/Scene/Snapping.js +184 -0
  401. package/Source/Scene/TerrainFillMesh.js +3 -2
  402. package/Source/Scene/Tileset3DTileContent.js +113 -146
  403. package/Source/Scene/UrlTemplate3DTilesDataProvider.js +543 -0
  404. package/Source/Scene/Vector3DTileContent.js +207 -237
  405. package/Source/Scene/VectorGltf3DTileContent.js +185 -45
  406. package/Source/Scene/View.js +10 -8
  407. package/Source/Scene/VoxelPrimitive.js +159 -175
  408. package/Source/Scene/VoxelProvider.js +64 -91
  409. package/Source/Scene/VoxelTraversal.js +1 -1
  410. package/Source/Scene/buildVectorGltfFromMVT.js +1208 -0
  411. package/Source/Scene/buildVoxelCustomShader.js +199 -0
  412. package/Source/Scene/createElevationBandMaterial.js +1 -1
  413. package/Source/Scene/decodeMVT.js +877 -0
  414. package/Source/Scene/findMeshoptExtension.js +23 -0
  415. package/Source/Scene/renderBufferPointCollection.js +114 -64
  416. package/Source/Scene/renderBufferPolygonCollection.js +245 -53
  417. package/Source/Scene/renderBufferPolylineCollection.js +271 -145
  418. package/Source/Shaders/BillboardCollectionVS.glsl +23 -25
  419. package/Source/Shaders/BillboardCollectionVS.js +23 -25
  420. package/Source/Shaders/BufferPointMaterialFS.glsl +1 -0
  421. package/Source/Shaders/BufferPointMaterialFS.js +1 -0
  422. package/Source/Shaders/BufferPointMaterialVS.glsl +19 -9
  423. package/Source/Shaders/BufferPointMaterialVS.js +20 -10
  424. package/Source/Shaders/BufferPolygonMaterialFS.glsl +13 -0
  425. package/Source/Shaders/BufferPolygonMaterialFS.js +13 -0
  426. package/Source/Shaders/BufferPolygonMaterialVS.glsl +22 -4
  427. package/Source/Shaders/BufferPolygonMaterialVS.js +23 -5
  428. package/Source/Shaders/BufferPolylineMaterialVS.glsl +16 -2
  429. package/Source/Shaders/BufferPolylineMaterialVS.js +17 -3
  430. package/Source/Shaders/Builtin/Constants/passCesium3DTile.glsl +1 -1
  431. package/Source/Shaders/Builtin/Constants/passCesium3DTile.js +1 -1
  432. package/Source/Shaders/Builtin/Constants/passCesium3DTileClassification.glsl +1 -1
  433. package/Source/Shaders/Builtin/Constants/passCesium3DTileClassification.js +1 -1
  434. package/Source/Shaders/Builtin/Constants/passCesium3DTileClassificationIgnoreShow.glsl +1 -1
  435. package/Source/Shaders/Builtin/Constants/passCesium3DTileClassificationIgnoreShow.js +1 -1
  436. package/Source/Shaders/Builtin/Constants/passCesium3DTileEdgesDirect.glsl +9 -0
  437. package/Source/Shaders/Builtin/Constants/passCesium3DTileEdgesDirect.js +11 -0
  438. package/Source/Shaders/Builtin/Constants/passCesium3DTilePlanarFillId.glsl +9 -0
  439. package/Source/Shaders/Builtin/Constants/passCesium3DTilePlanarFillId.js +11 -0
  440. package/Source/Shaders/Builtin/Constants/passClassification.glsl +1 -1
  441. package/Source/Shaders/Builtin/Constants/passClassification.js +1 -1
  442. package/Source/Shaders/Builtin/Constants/passGaussianSplats.glsl +1 -1
  443. package/Source/Shaders/Builtin/Constants/passGaussianSplats.js +1 -1
  444. package/Source/Shaders/Builtin/Constants/passOpaque.glsl +1 -1
  445. package/Source/Shaders/Builtin/Constants/passOpaque.js +1 -1
  446. package/Source/Shaders/Builtin/Constants/passOverlay.glsl +1 -1
  447. package/Source/Shaders/Builtin/Constants/passOverlay.js +1 -1
  448. package/Source/Shaders/Builtin/Constants/passTranslucent.glsl +1 -1
  449. package/Source/Shaders/Builtin/Constants/passTranslucent.js +1 -1
  450. package/Source/Shaders/Builtin/Constants/passVoxels.glsl +1 -1
  451. package/Source/Shaders/Builtin/Constants/passVoxels.js +1 -1
  452. package/Source/Shaders/Builtin/CzmBuiltins.js +4 -0
  453. package/Source/Shaders/GlobeFS.glsl +10 -6
  454. package/Source/Shaders/GlobeFS.js +10 -6
  455. package/Source/Shaders/Materials/PolylineGlowMaterial.glsl +1 -1
  456. package/Source/Shaders/Materials/PolylineGlowMaterial.js +1 -1
  457. package/Source/Shaders/Model/EdgeVisibilityStageVS.glsl +0 -1
  458. package/Source/Shaders/Model/EdgeVisibilityStageVS.js +0 -1
  459. package/Source/Shaders/Model/MaterialStageFS.glsl +8 -2
  460. package/Source/Shaders/Model/MaterialStageFS.js +8 -2
  461. package/Source/Shaders/Model/ModelFS.glsl +105 -0
  462. package/Source/Shaders/Model/ModelFS.js +105 -0
  463. package/Source/Shaders/VectorCommon.glsl +178 -0
  464. package/Source/Shaders/VectorCommon.js +180 -0
  465. package/Source/ThirdParty/zip-module.wasm +0 -0
  466. package/Source/Widget/CesiumWidget.js +30 -0
  467. package/Source/Workers/createMvtTile.js +39 -0
  468. package/Source/Workers/decodeGoogleEarthEnterprisePacket.js +2 -2
  469. package/Source/Workers/incrementallyBuildTerrainPicker.js +2 -0
  470. package/index.js +214 -184
  471. package/package.json +13 -13
@@ -10,16 +10,17 @@ import BufferPolyline from "./BufferPolyline.js";
10
10
  import BufferPolylineCollection from "./BufferPolylineCollection.js";
11
11
  import BufferPolylineMaterial from "./BufferPolylineMaterial.js";
12
12
  import Cesium3DTileStyle from "./Cesium3DTileStyle.js";
13
- import Color from "../Core/Color.js";
14
13
  import Matrix4 from "../Core/Matrix4.js";
15
14
  import Model from "./Model/Model.js";
16
15
  import ModelUtility from "./Model/ModelUtility.js";
17
16
  import Pass from "../Renderer/Pass.js";
17
+ import SceneMode from "./SceneMode.js";
18
18
  import createVectorTileBuffersFromModelComponents from "./Model/createVectorTileBuffersFromModelComponents.js";
19
19
  import defined from "../Core/defined.js";
20
20
  import destroyObject from "../Core/destroyObject.js";
21
21
  import DeveloperError from "../Core/DeveloperError.js";
22
- import Check from "../Core/Check.js";
22
+ import { isHeightReferenceClamp } from "./HeightReference.js";
23
+ import { getMvtLabelCandidatesByteLength } from "./MvtLabelCandidates.js";
23
24
 
24
25
  /** @import BufferPrimitive from "./BufferPrimitive.js"; */
25
26
  /** @import BufferPrimitiveCollection from "./BufferPrimitiveCollection.js"; */
@@ -29,11 +30,20 @@ import Check from "../Core/Check.js";
29
30
  /** @import Cesium3DTileBatchTable from "./Cesium3DTileBatchTable.js"; */
30
31
  /** @import Cesium3DTileVectorFeature from "./Cesium3DTileVectorFeature.js";*/
31
32
  /** @import Cesium3DTileset from "./Cesium3DTileset.js"; */
33
+ /** @import Color from "../Core/Color.js"; */
32
34
  /** @import FrameState from "./FrameState.js"; */
33
35
  /** @import ImplicitMetadataView from "./ImplicitMetadataView.js"; */
34
36
  /** @import Ray from "../Core/Ray.js"; */
35
37
  /** @import Resource from "../Core/Resource.js"; */
36
38
 
39
+ /**
40
+ * @typedef {object} VectorGltfModelStatistics
41
+ * @property {number} geometryByteLength
42
+ * @property {number} texturesByteLength
43
+ */
44
+
45
+ /** @typedef {Model & {statistics: VectorGltfModelStatistics}} VectorGltfModel */
46
+
37
47
  /** @ignore */
38
48
  const point = new BufferPoint();
39
49
  /** @ignore */
@@ -71,7 +81,7 @@ class VectorGltf3DTileContent {
71
81
  /** @type {Resource} */
72
82
  this._resource = resource;
73
83
 
74
- /** @type {Model} */
84
+ /** @type {VectorGltfModel} */
75
85
  this._model = undefined;
76
86
 
77
87
  /**
@@ -109,9 +119,16 @@ class VectorGltf3DTileContent {
109
119
 
110
120
  /** @type {boolean} */
111
121
  this._ready = false;
122
+ /** @type {SceneMode|undefined} */
123
+ this._collectionSceneMode = undefined;
112
124
 
113
125
  /** @type {Matrix4} */
114
126
  this._modelMatrix = Matrix4.clone(Matrix4.IDENTITY);
127
+
128
+ this._mvtLabelManager = undefined;
129
+ this._mvtLabelTile = undefined;
130
+ this._mvtLabelByteLength = 0;
131
+ this._renderVectorGeometry = true;
115
132
  }
116
133
 
117
134
  get featuresLength() {
@@ -139,20 +156,24 @@ class VectorGltf3DTileContent {
139
156
  }
140
157
 
141
158
  get geometryByteLength() {
142
- return this._collections.reduce((totalByteLength, collection) => {
143
- return totalByteLength + collection.byteLength;
144
- }, 0);
159
+ // The source glTF model is retained after its components are baked into the
160
+ // vector collections, so its buffers must be reported for the tileset cache
161
+ // to size itself correctly.
162
+ return this._collections.reduce(
163
+ (totalByteLength, collection) => totalByteLength + collection.byteLength,
164
+ this._model?.statistics.geometryByteLength ?? 0,
165
+ );
145
166
  }
146
167
 
147
168
  get texturesByteLength() {
148
- return 0;
169
+ return this._model?.statistics.texturesByteLength ?? 0;
149
170
  }
150
171
 
151
172
  get batchTableByteLength() {
152
173
  return this.batchTables.reduce(
153
174
  // @ts-expect-error Missing types.
154
175
  (acc, batchTable) => acc + batchTable.batchTableByteLength,
155
- 0,
176
+ this._mvtLabelByteLength,
156
177
  );
157
178
  }
158
179
 
@@ -210,21 +231,17 @@ class VectorGltf3DTileContent {
210
231
 
211
232
  /**
212
233
  * @param {number} featureId
213
- * @param {number} featureTableId
234
+ * @param {number} [featureTableId]
214
235
  * @returns {Cesium3DTileVectorFeature}
215
236
  */
216
237
  getFeature(featureId, featureTableId) {
217
- //>>includeStart('debug', pragmas.debug);
218
- Check.typeOf.number("featureTableId", featureTableId);
219
- //>>includeEnd('debug');
220
-
221
238
  return this._featuresByTableId.get(featureTableId)?.get(featureId);
222
239
  }
223
240
 
224
241
  /**
225
242
  * @param {number} featureId
226
243
  * @param {string} name
227
- * @param {number} featureTableId
244
+ * @param {number} [featureTableId]
228
245
  * @returns {boolean}
229
246
  */
230
247
  hasProperty(featureId, name, featureTableId) {
@@ -237,8 +254,10 @@ class VectorGltf3DTileContent {
237
254
  * @param {Color} color
238
255
  */
239
256
  applyDebugSettings(enabled, color) {
240
- color = enabled ? color : Color.WHITE;
241
- this.applyStyle(new Cesium3DTileStyle({ color }));
257
+ const colorString = enabled
258
+ ? `color("${color.toCssHexString()}", 1.0)`
259
+ : 'color("white", 1.0)';
260
+ this.applyStyle(new Cesium3DTileStyle({ color: colorString }));
242
261
  }
243
262
 
244
263
  /**
@@ -258,11 +277,22 @@ class VectorGltf3DTileContent {
258
277
  collection.get(i, point);
259
278
  const feature = this.getFeature(point.featureId, featureTableId);
260
279
 
261
- point.show = style.show?.evaluate(feature) ?? true;
262
- style.color?.evaluate(feature, pointMaterial.color);
263
- pointMaterial.size = style.pointSize?.evaluate(feature);
264
- pointMaterial.outlineWidth = style.pointOutlineWidth?.evaluate(feature);
265
- style.pointOutlineColor?.evaluate(feature, pointMaterial.outlineColor);
280
+ if (defined(style.show)) {
281
+ point.show = style.show.evaluate(feature);
282
+ }
283
+ if (defined(style.color)) {
284
+ style.color.evaluate(feature, pointMaterial.color);
285
+ }
286
+ if (defined(style.pointSize)) {
287
+ pointMaterial.size = style.pointSize.evaluate(feature);
288
+ }
289
+ if (defined(style.pointOutlineWidth)) {
290
+ pointMaterial.outlineWidth =
291
+ style.pointOutlineWidth.evaluate(feature);
292
+ }
293
+ if (defined(style.pointOutlineColor)) {
294
+ style.pointOutlineColor.evaluate(feature, pointMaterial.outlineColor);
295
+ }
266
296
 
267
297
  point.setMaterial(pointMaterial);
268
298
  }
@@ -274,9 +304,15 @@ class VectorGltf3DTileContent {
274
304
  collection.get(i, polyline);
275
305
  const feature = this.getFeature(polyline.featureId, featureTableId);
276
306
 
277
- polyline.show = style.show?.evaluate(feature) ?? true;
278
- style.color?.evaluate(feature, polylineMaterial.color);
279
- polylineMaterial.width = style.lineWidth?.evaluate(feature) ?? 1;
307
+ if (defined(style.show)) {
308
+ polyline.show = style.show.evaluate(feature);
309
+ }
310
+ if (defined(style.color)) {
311
+ style.color.evaluate(feature, polylineMaterial.color);
312
+ }
313
+ if (defined(style.lineWidth)) {
314
+ polylineMaterial.width = style.lineWidth.evaluate(feature);
315
+ }
280
316
 
281
317
  polyline.setMaterial(polylineMaterial);
282
318
  }
@@ -284,12 +320,31 @@ class VectorGltf3DTileContent {
284
320
 
285
321
  for (const collection of this._collections.filter(isPolygonCollection)) {
286
322
  const featureTableId = this._collectionFeatureTableIds.get(collection);
323
+ collection._polygonOutlineEnabled =
324
+ defined(style.polygonOutlineColor) ||
325
+ defined(style.polygonOutlineWidth);
287
326
  for (let i = 0, il = collection.primitiveCount; i < il; i++) {
288
327
  collection.get(i, polygon);
289
328
  const feature = this.getFeature(polygon.featureId, featureTableId);
290
329
 
291
- polygon.show = style.show?.evaluate(feature) ?? true;
292
- style.color?.evaluate(feature, polygonMaterial.color);
330
+ if (defined(style.show)) {
331
+ polygon.show = style.show.evaluate(feature);
332
+ }
333
+ if (defined(style.color)) {
334
+ style.color.evaluate(feature, polygonMaterial.color);
335
+ }
336
+ if (defined(style.polygonOutlineColor)) {
337
+ style.polygonOutlineColor.evaluate(
338
+ feature,
339
+ polygonMaterial.outlineColor,
340
+ );
341
+ }
342
+ if (defined(style.polygonOutlineWidth)) {
343
+ const outlineWidth = style.polygonOutlineWidth.evaluate(feature);
344
+ polygonMaterial.outlineWidth = Number.isFinite(outlineWidth)
345
+ ? Math.max(0, outlineWidth)
346
+ : 0;
347
+ }
293
348
 
294
349
  polygon.setMaterial(polygonMaterial);
295
350
  }
@@ -301,6 +356,9 @@ class VectorGltf3DTileContent {
301
356
  * @param {FrameState} frameState
302
357
  */
303
358
  update(_tileset, frameState) {
359
+ const tileset = this._tileset;
360
+ const vectorProvider = tileset._scene?.vectorProvider;
361
+
304
362
  if (defined(this._model) && !this._ready) {
305
363
  const model = this._model;
306
364
  model.modelMatrix = this._tile.computedTransform;
@@ -308,24 +366,48 @@ class VectorGltf3DTileContent {
308
366
 
309
367
  // @ts-expect-error Requires Model conversion to ES6 class.
310
368
  if (model.ready) {
311
- initializeVectorPrimitives(this);
369
+ initializeVectorPrimitives(this, frameState);
370
+ this._collectionSceneMode = frameState.mode;
312
371
  this._ready = true;
313
372
  }
314
373
  }
315
374
 
316
- Matrix4.multiplyTransformation(
317
- this._tile.computedTransform,
318
- this._modelMatrix,
319
- scratchTileModelMatrix,
320
- );
375
+ if (
376
+ this._ready &&
377
+ frameState.mode !== this._collectionSceneMode &&
378
+ frameState.mode !== SceneMode.MORPHING
379
+ ) {
380
+ rebuildVectorPrimitives(this, frameState);
381
+ }
321
382
 
322
- for (let i = 0; i < this._collections.length; i++) {
383
+ if (this._collectionSceneMode === SceneMode.SCENE3D) {
323
384
  Matrix4.multiplyTransformation(
385
+ this._tile.computedTransform,
386
+ this._modelMatrix,
324
387
  scratchTileModelMatrix,
325
- this._collectionLocalMatrices[i],
326
- this._collections[i].modelMatrix,
327
388
  );
328
- this._collections[i].update(frameState);
389
+ } else {
390
+ Matrix4.clone(Matrix4.IDENTITY, scratchTileModelMatrix);
391
+ }
392
+
393
+ // Only bake collections selected to render this frame (avoids duplicates).
394
+ const isSelected = this._tile._selectedFrame === frameState.frameNumber;
395
+
396
+ if (this._renderVectorGeometry) {
397
+ for (let i = 0; i < this._collections.length; i++) {
398
+ const collection = this._collections[i];
399
+ Matrix4.multiplyTransformation(
400
+ scratchTileModelMatrix,
401
+ this._collectionLocalMatrices[i],
402
+ collection.modelMatrix,
403
+ );
404
+
405
+ if (!isHeightReferenceClamp(tileset._heightReference)) {
406
+ collection.update(frameState);
407
+ } else if (isSelected && defined(vectorProvider)) {
408
+ vectorProvider.markSelected(collection, frameState.frameNumber);
409
+ }
410
+ }
329
411
  }
330
412
  }
331
413
 
@@ -344,9 +426,18 @@ class VectorGltf3DTileContent {
344
426
  }
345
427
 
346
428
  destroy() {
429
+ const vectorProvider = this._tileset._scene?.vectorProvider;
430
+
347
431
  this._model?.destroy();
348
432
  this._model = undefined;
349
- this._collections.forEach((collection) => collection.destroy());
433
+ for (const collection of this._collections) {
434
+ vectorProvider?.remove(collection);
435
+ collection.destroy();
436
+ }
437
+ this._mvtLabelManager?.removeTile(this._mvtLabelTile);
438
+ this._mvtLabelManager = undefined;
439
+ this._mvtLabelTile = undefined;
440
+ this._mvtLabelByteLength = 0;
350
441
  this._collections.length = 0;
351
442
  return destroyObject(this);
352
443
  }
@@ -355,16 +446,42 @@ class VectorGltf3DTileContent {
355
446
  * @param {Cesium3DTileset} tileset
356
447
  * @param {Cesium3DTile} tile
357
448
  * @param {Resource} resource
358
- * @param {unknown} gltf
449
+ * @param {Uint8Array} glb GLB binary produced by buildVectorGltfFromMVT
450
+ * @param {*} [mvtLabelManager]
451
+ * @param {Array<*>} [mvtLabelCandidates]
452
+ * @param {{tileX:number,tileY:number,tileZ:number}} [tileCoordinates]
453
+ * @param {boolean} [renderVectorGeometry=true]
359
454
  * @returns {Promise<VectorGltf3DTileContent>}
360
455
  */
361
- static async fromGltf(tileset, tile, resource, gltf) {
456
+ static async fromGltf(
457
+ tileset,
458
+ tile,
459
+ resource,
460
+ glb,
461
+ mvtLabelManager,
462
+ mvtLabelCandidates,
463
+ tileCoordinates,
464
+ renderVectorGeometry,
465
+ ) {
362
466
  const content = new VectorGltf3DTileContent(tileset, tile, resource);
363
- const modelOptions = makeModelOptions(tileset, tile, content, gltf);
467
+ content._renderVectorGeometry = renderVectorGeometry ?? true;
468
+ const modelOptions = makeModelOptions(tileset, tile, content, glb);
364
469
  const model = await Model.fromGltfAsync(modelOptions);
365
470
  // @ts-expect-error Requires Model conversion to ES6 class.
366
471
  model.show = false;
367
- content._model = model;
472
+ content._model = /** @type {VectorGltfModel} */ (model);
473
+ // Registered only once the load can no longer fail, so a rejected model
474
+ // cannot leave an orphaned tile in the label manager.
475
+ if (defined(mvtLabelManager) && defined(mvtLabelCandidates)) {
476
+ content._mvtLabelManager = mvtLabelManager;
477
+ content._mvtLabelTile = mvtLabelManager.addTile(
478
+ tile,
479
+ tileCoordinates,
480
+ mvtLabelCandidates,
481
+ );
482
+ content._mvtLabelByteLength =
483
+ getMvtLabelCandidatesByteLength(mvtLabelCandidates);
484
+ }
368
485
  return content;
369
486
  }
370
487
  }
@@ -373,13 +490,13 @@ class VectorGltf3DTileContent {
373
490
  * @param {Cesium3DTileset} tileset
374
491
  * @param {Cesium3DTile} tile
375
492
  * @param {VectorGltf3DTileContent} content
376
- * @param {unknown} gltf
493
+ * @param {Uint8Array} glb
377
494
  * @returns {*}
378
495
  * @ignore
379
496
  */
380
- function makeModelOptions(tileset, tile, content, gltf) {
497
+ function makeModelOptions(tileset, tile, content, glb) {
381
498
  return {
382
- gltf: gltf,
499
+ gltf: glb,
383
500
  basePath: content._resource,
384
501
  cull: false,
385
502
  releaseGltfJson: true,
@@ -402,9 +519,10 @@ function makeModelOptions(tileset, tile, content, gltf) {
402
519
 
403
520
  /**
404
521
  * @param {VectorGltf3DTileContent} content
522
+ * @param {FrameState} frameState
405
523
  * @ignore
406
524
  */
407
- function initializeVectorPrimitives(content) {
525
+ function initializeVectorPrimitives(content, frameState) {
408
526
  // @ts-expect-error Requires Model conversion to ES6 class.
409
527
  const components = content._model.sceneGraph.components;
410
528
 
@@ -423,12 +541,34 @@ function initializeVectorPrimitives(content) {
423
541
  const result = createVectorTileBuffersFromModelComponents(
424
542
  content,
425
543
  components,
544
+ frameState,
426
545
  );
427
546
 
428
547
  content._collections = result.collections;
429
548
  content._collectionLocalMatrices = result.collectionLocalMatrices;
430
549
  content._collectionFeatureTableIds = result.collectionFeatureTableIds;
431
550
  content._featuresByTableId = result.featuresByTableId;
551
+ content._collectionSceneMode = frameState.mode;
552
+ }
553
+
554
+ /**
555
+ * @param {VectorGltf3DTileContent} content
556
+ * @param {FrameState} frameState
557
+ * @ignore
558
+ */
559
+ function rebuildVectorPrimitives(content, frameState) {
560
+ const vectorProvider = content._tileset._scene?.vectorProvider;
561
+ for (const collection of content._collections) {
562
+ vectorProvider?.remove(collection);
563
+ collection.destroy();
564
+ }
565
+ content._collections.length = 0;
566
+ content._collectionLocalMatrices.length = 0;
567
+ content._collectionFeatureTableIds.clear();
568
+ content._featuresByTableId.clear();
569
+ initializeVectorPrimitives(content, frameState);
570
+ // @ts-expect-error Requires Cesium3DTileset conversion to ES6 class.
571
+ content.applyStyle(content._tileset.style);
432
572
  }
433
573
 
434
574
  export default VectorGltf3DTileContent;
@@ -11,6 +11,7 @@ import Pass from "../Renderer/Pass.js";
11
11
  import PassState from "../Renderer/PassState.js";
12
12
  import Camera from "./Camera.js";
13
13
  import EdgeFramebuffer from "./EdgeFramebuffer.js";
14
+ import PlanarFillIdFramebuffer from "./PlanarFillIdFramebuffer.js";
14
15
  import FrustumCommands from "./FrustumCommands.js";
15
16
  import GlobeDepth from "./GlobeDepth.js";
16
17
  import GlobeTranslucencyFramebuffer from "./GlobeTranslucencyFramebuffer.js";
@@ -62,9 +63,11 @@ function View(scene, camera, viewport) {
62
63
  this.viewport = viewport;
63
64
  this.passState = passState;
64
65
  this.pickFramebuffer = new PickFramebuffer(context);
66
+ this.snapFramebuffer = undefined;
65
67
  this.pickDepthFramebuffer = new PickDepthFramebuffer();
66
68
  this.sceneFramebuffer = new SceneFramebuffer();
67
69
  this.edgeFramebuffer = new EdgeFramebuffer();
70
+ this.planarFillIdFramebuffer = new PlanarFillIdFramebuffer();
68
71
  this.globeDepth = globeDepth;
69
72
  this.globeTranslucencyFramebuffer = new GlobeTranslucencyFramebuffer();
70
73
  this.oit = oit;
@@ -211,15 +214,11 @@ function updateFrustums(view, scene, near, far) {
211
214
  curNear = Math.max(near, Math.pow(farToNearRatio, m) * near);
212
215
  curFar = Math.min(far, farToNearRatio * curNear);
213
216
  }
214
- let frustumCommands = frustumCommandsList[m];
215
- if (!defined(frustumCommands)) {
216
- frustumCommands = frustumCommandsList[m] = new FrustumCommands(
217
- curNear,
218
- curFar,
219
- );
217
+ if (!defined(frustumCommandsList[m])) {
218
+ frustumCommandsList[m] = new FrustumCommands(curNear, curFar);
220
219
  } else {
221
- frustumCommands.near = curNear;
222
- frustumCommands.far = curFar;
220
+ frustumCommandsList[m].near = curNear;
221
+ frustumCommandsList[m].far = curFar;
223
222
  }
224
223
  }
225
224
  }
@@ -443,11 +442,14 @@ View.prototype.createPotentiallyVisibleSet = function (scene) {
443
442
 
444
443
  View.prototype.destroy = function () {
445
444
  this.pickFramebuffer = this.pickFramebuffer && this.pickFramebuffer.destroy();
445
+ this.snapFramebuffer = this.snapFramebuffer && this.snapFramebuffer.destroy();
446
446
  this.pickDepthFramebuffer =
447
447
  this.pickDepthFramebuffer && this.pickDepthFramebuffer.destroy();
448
448
  this.sceneFramebuffer =
449
449
  this.sceneFramebuffer && this.sceneFramebuffer.destroy();
450
450
  this.edgeFramebuffer = this.edgeFramebuffer && this.edgeFramebuffer.destroy();
451
+ this.planarFillIdFramebuffer =
452
+ this.planarFillIdFramebuffer && this.planarFillIdFramebuffer.destroy();
451
453
  this.globeDepth = this.globeDepth && this.globeDepth.destroy();
452
454
  this.oit = this.oit && this.oit.destroy();
453
455
  this.translucentTileClassification =