@cesium/engine 26.0.0 → 26.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (471) hide show
  1. package/Build/ThirdParty/Workers/zip-web-worker.js +586 -480
  2. package/Build/Workers/{chunk-7J2HKPRH.js → chunk-27FWRTJI.js} +9 -9
  3. package/Build/Workers/{chunk-EF2QYXGA.js → chunk-2EFYUSUY.js} +14 -14
  4. package/Build/Workers/chunk-2H5264K7.js +1284 -0
  5. package/Build/Workers/{chunk-DOBXCNC3.js → chunk-2H73KDBM.js} +13 -13
  6. package/Build/Workers/chunk-2RGJPWQX.js +1284 -0
  7. package/Build/Workers/chunk-2Z4ZLVOD.js +352 -0
  8. package/Build/Workers/{chunk-F6QDY6HU.js → chunk-2ZKH2QZB.js} +13 -13
  9. package/Build/Workers/chunk-36NI5E6W.js +3820 -0
  10. package/Build/Workers/{chunk-ZK3CF7ZD.js → chunk-37SW7SYS.js} +12 -12
  11. package/Build/Workers/chunk-3GHVJ3SO.js +455 -0
  12. package/Build/Workers/chunk-3LB4UVPU.js +387 -0
  13. package/Build/Workers/chunk-3PONLKEL.js +778 -0
  14. package/Build/Workers/{chunk-Y57HREW5.js → chunk-3PSS3T43.js} +4 -4
  15. package/Build/Workers/chunk-3QR662HH.js +3820 -0
  16. package/Build/Workers/{chunk-QN67VG36.js → chunk-3SX2WYSO.js} +6 -6
  17. package/Build/Workers/{chunk-G7PXZRVF.js → chunk-3UDN6LYX.js} +7 -7
  18. package/Build/Workers/chunk-47MCBSXI.js +9237 -0
  19. package/Build/Workers/{chunk-KKOSKAZB.js → chunk-4E626OCE.js} +17 -17
  20. package/Build/Workers/chunk-4NW2MJKH.js +455 -0
  21. package/Build/Workers/{chunk-DBOEKL43.js → chunk-52YK5BSN.js} +7 -7
  22. package/Build/Workers/{chunk-KFSTQKNM.js → chunk-5LSOO2KD.js} +7 -7
  23. package/Build/Workers/chunk-5RNAQZK6.js +9234 -0
  24. package/Build/Workers/chunk-5YPQBFRD.js +519 -0
  25. package/Build/Workers/{chunk-S4MCOY6I.js → chunk-6FHT43QR.js} +5 -5
  26. package/Build/Workers/chunk-6FZDPMTO.js +455 -0
  27. package/Build/Workers/{chunk-VQYETPWC.js → chunk-6HK6IXK2.js} +4 -4
  28. package/Build/Workers/chunk-6R5X2GUA.js +1284 -0
  29. package/Build/Workers/{chunk-AYKR4VBR.js → chunk-6YR6JBMY.js} +2 -2
  30. package/Build/Workers/chunk-76FDC45O.js +511 -0
  31. package/Build/Workers/chunk-7A2OGDHT.js +305 -0
  32. package/Build/Workers/chunk-7CGEQUM2.js +305 -0
  33. package/Build/Workers/{chunk-54I6Y66F.js → chunk-7D2HZKH7.js} +6 -6
  34. package/Build/Workers/{chunk-3VFEWOBI.js → chunk-7I325HV6.js} +7 -7
  35. package/Build/Workers/{chunk-4MGMYHOO.js → chunk-7KVKHY7O.js} +6 -6
  36. package/Build/Workers/chunk-7MM3N2VE.js +1067 -0
  37. package/Build/Workers/chunk-7TKLTCZW.js +219 -0
  38. package/Build/Workers/chunk-7UUKBDH6.js +1054 -0
  39. package/Build/Workers/chunk-7W6DUHAB.js +693 -0
  40. package/Build/Workers/{chunk-DDWSZVMY.js → chunk-7XM5JK5F.js} +5 -5
  41. package/Build/Workers/chunk-7YG3ND3P.js +454 -0
  42. package/Build/Workers/{chunk-IRBKFCEJ.js → chunk-A3O6EDBK.js} +2 -2
  43. package/Build/Workers/chunk-A62YI6S6.js +305 -0
  44. package/Build/Workers/{chunk-V7VQKN6N.js → chunk-A6X24AZI.js} +5 -5
  45. package/Build/Workers/chunk-A7TTWVTF.js +2719 -0
  46. package/Build/Workers/chunk-ACTVJHSP.js +519 -0
  47. package/Build/Workers/chunk-ADX3CBKD.js +9234 -0
  48. package/Build/Workers/{chunk-52JDLOEM.js → chunk-AF7DTMJ7.js} +14 -14
  49. package/Build/Workers/{chunk-ZP7JMQV4.js → chunk-AHWAZRBV.js} +6 -2
  50. package/Build/Workers/chunk-AJSFRY4U.js +1344 -0
  51. package/Build/Workers/{chunk-EBSIOBXY.js → chunk-ARZICEEP.js} +8 -8
  52. package/Build/Workers/chunk-B3QHNA4A.js +147 -0
  53. package/Build/Workers/{chunk-YLY7NKAB.js → chunk-B4CQSLZJ.js} +4 -4
  54. package/Build/Workers/chunk-BKPQFCXH.js +511 -0
  55. package/Build/Workers/{chunk-O3EA5HS7.js → chunk-BSPCI2LO.js} +10 -10
  56. package/Build/Workers/chunk-BUJWSX5S.js +301 -0
  57. package/Build/Workers/{chunk-J6BWOHUF.js → chunk-C7JQVRLM.js} +3 -3
  58. package/Build/Workers/chunk-C7QDUNI3.js +138 -0
  59. package/Build/Workers/{chunk-KSSWJIZW.js → chunk-CDJDJ5LK.js} +2 -2
  60. package/Build/Workers/chunk-CEEZE3YZ.js +476 -0
  61. package/Build/Workers/chunk-CIV5DJOQ.js +778 -0
  62. package/Build/Workers/{chunk-INUEEEQA.js → chunk-CLCTQVVL.js} +8 -8
  63. package/Build/Workers/{chunk-C6J67V5A.js → chunk-CQNFIAZU.js} +1 -1
  64. package/Build/Workers/chunk-CRCGE4J4.js +9237 -0
  65. package/Build/Workers/{chunk-SMQZZOW6.js → chunk-CUTRKXUQ.js} +10 -10
  66. package/Build/Workers/{chunk-Q3PY526V.js → chunk-D6AY775A.js} +6 -6
  67. package/Build/Workers/chunk-DBD5WWG2.js +959 -0
  68. package/Build/Workers/{chunk-E7VQ76KE.js → chunk-DIGUUD6G.js} +6 -6
  69. package/Build/Workers/{chunk-P3CK7MCY.js → chunk-DSGLDRTI.js} +4 -4
  70. package/Build/Workers/chunk-DZBQUULR.js +138 -0
  71. package/Build/Workers/chunk-DZUFEE4L.js +140 -0
  72. package/Build/Workers/chunk-E2NKV5YT.js +3820 -0
  73. package/Build/Workers/{chunk-424RNO3D.js → chunk-E7NZJOK7.js} +196 -22
  74. package/Build/Workers/{chunk-UOOIQ3KX.js → chunk-EB3Y5P3A.js} +12 -12
  75. package/Build/Workers/{chunk-ACXQXN46.js → chunk-EHTS2YPT.js} +16 -16
  76. package/Build/Workers/{chunk-EPYXRCDB.js → chunk-ELE6SC2C.js} +12 -12
  77. package/Build/Workers/{chunk-VWV2IJRB.js → chunk-ENNFMWDW.js} +11 -11
  78. package/Build/Workers/chunk-EOWDZN5S.js +288 -0
  79. package/Build/Workers/chunk-ERKUET22.js +3201 -0
  80. package/Build/Workers/chunk-EZGQPOIG.js +162 -0
  81. package/Build/Workers/chunk-F2IMBMZY.js +241 -0
  82. package/Build/Workers/chunk-F4CSNRZO.js +219 -0
  83. package/Build/Workers/chunk-FBP4DUQJ.js +693 -0
  84. package/Build/Workers/{chunk-FRQZECAO.js → chunk-FCP2QY4G.js} +5 -5
  85. package/Build/Workers/{chunk-ZZ46LWL6.js → chunk-FDK4K5IA.js} +1 -1
  86. package/Build/Workers/{chunk-C6KNZ7T4.js → chunk-FGQFQHN5.js} +17 -17
  87. package/Build/Workers/chunk-FJWZMGOQ.js +1992 -0
  88. package/Build/Workers/{chunk-Y5BF6AFU.js → chunk-FQ42MT7M.js} +2 -2
  89. package/Build/Workers/chunk-FU4BGABC.js +398 -0
  90. package/Build/Workers/chunk-FX3VEAIU.js +2719 -0
  91. package/Build/Workers/chunk-GGNWQWSB.js +301 -0
  92. package/Build/Workers/chunk-GHXVQVUM.js +1344 -0
  93. package/Build/Workers/{chunk-CZEYZU4N.js → chunk-GNKXEN4C.js} +10 -10
  94. package/Build/Workers/{chunk-MYP774IS.js → chunk-GSWMAFTE.js} +8 -8
  95. package/Build/Workers/chunk-GVA7XQI2.js +368 -0
  96. package/Build/Workers/chunk-GXDHRC4J.js +1344 -0
  97. package/Build/Workers/chunk-GXWQZBAI.js +58 -0
  98. package/Build/Workers/chunk-GYSYP6PC.js +1067 -0
  99. package/Build/Workers/chunk-H2WCFXLP.js +241 -0
  100. package/Build/Workers/chunk-HDL4HOXZ.js +778 -0
  101. package/Build/Workers/chunk-HHV3MCGV.js +162 -0
  102. package/Build/Workers/chunk-HLW2ZRVK.js +368 -0
  103. package/Build/Workers/chunk-HS6AD4P2.js +398 -0
  104. package/Build/Workers/chunk-HT6FASOT.js +973 -0
  105. package/Build/Workers/chunk-I74ZH5LK.js +959 -0
  106. package/Build/Workers/{chunk-7WM2PX4V.js → chunk-IDVHUDZT.js} +5 -5
  107. package/Build/Workers/chunk-IGAZBTFZ.js +3201 -0
  108. package/Build/Workers/chunk-IJZJMIUY.js +789 -0
  109. package/Build/Workers/chunk-ILME5BXA.js +301 -0
  110. package/Build/Workers/chunk-IMBVP57H.js +44 -0
  111. package/Build/Workers/chunk-IOO7Z2AV.js +57 -0
  112. package/Build/Workers/chunk-IUIFLOYO.js +44 -0
  113. package/Build/Workers/chunk-J73T2VOY.js +171 -0
  114. package/Build/Workers/chunk-JALGQYDY.js +288 -0
  115. package/Build/Workers/chunk-JKXV6PG5.js +56 -0
  116. package/Build/Workers/chunk-JW6OZT4R.js +288 -0
  117. package/Build/Workers/{chunk-CXOYE2WM.js → chunk-JXYLJCTC.js} +5 -5
  118. package/Build/Workers/{chunk-CFQP6LYM.js → chunk-K27QOAW6.js} +4 -4
  119. package/Build/Workers/chunk-KGXSYGBG.js +387 -0
  120. package/Build/Workers/chunk-KMV25A63.js +789 -0
  121. package/Build/Workers/chunk-KP5QD7WU.js +693 -0
  122. package/Build/Workers/chunk-KZWFWJML.js +2719 -0
  123. package/Build/Workers/chunk-LCXRRALY.js +387 -0
  124. package/Build/Workers/chunk-LD64RPYV.js +368 -0
  125. package/Build/Workers/{chunk-U3ZA64U7.js → chunk-LDRQSYBN.js} +2 -2
  126. package/Build/Workers/chunk-LGNDTZVX.js +97 -0
  127. package/Build/Workers/chunk-LNSQVXFH.js +1800 -0
  128. package/Build/Workers/chunk-M4JZ6TSZ.js +959 -0
  129. package/Build/Workers/chunk-M6QKXVAU.js +1054 -0
  130. package/Build/Workers/chunk-MAAHFYPC.js +198 -0
  131. package/Build/Workers/chunk-MCJDRDJQ.js +102 -0
  132. package/Build/Workers/chunk-MEENMEAH.js +198 -0
  133. package/Build/Workers/{chunk-TKKIREQ6.js → chunk-N7CCOFLX.js} +1 -1
  134. package/Build/Workers/chunk-NAWU5RF4.js +162 -0
  135. package/Build/Workers/{chunk-M3B5JKSM.js → chunk-NCL22ZUX.js} +1 -1
  136. package/Build/Workers/chunk-NEFDMMLY.js +241 -0
  137. package/Build/Workers/{chunk-UA25D5MX.js → chunk-NIWITKQK.js} +10 -10
  138. package/Build/Workers/chunk-NJVBJG63.js +124 -0
  139. package/Build/Workers/chunk-NLLCQBX3.js +73 -0
  140. package/Build/Workers/chunk-NSKZ6SBK.js +1483 -0
  141. package/Build/Workers/chunk-NXGQBQWE.js +837 -0
  142. package/Build/Workers/chunk-O3DKEX7Q.js +352 -0
  143. package/Build/Workers/chunk-O3XFXGPZ.js +476 -0
  144. package/Build/Workers/chunk-OA6MYL2C.js +837 -0
  145. package/Build/Workers/chunk-OBEU25PI.js +1067 -0
  146. package/Build/Workers/chunk-OHP4ELS7.js +198 -0
  147. package/Build/Workers/chunk-OZGPS7FB.js +138 -0
  148. package/Build/Workers/chunk-PCL3Y7H5.js +82 -0
  149. package/Build/Workers/chunk-PD4GK4EM.js +57 -0
  150. package/Build/Workers/chunk-PEDU33QG.js +2342 -0
  151. package/Build/Workers/chunk-PRWUMCXF.js +682 -0
  152. package/Build/Workers/chunk-PVTSNNVI.js +288 -0
  153. package/Build/Workers/chunk-QFSSCLLZ.js +973 -0
  154. package/Build/Workers/chunk-QHPZH22L.js +241 -0
  155. package/Build/Workers/chunk-QIZDWZK6.js +301 -0
  156. package/Build/Workers/chunk-QV6DG2YX.js +1483 -0
  157. package/Build/Workers/chunk-QVLAFFJY.js +56 -0
  158. package/Build/Workers/{chunk-6YEE6JDR.js → chunk-R4FPNAZ2.js} +6 -6
  159. package/Build/Workers/chunk-R4K7EHOU.js +171 -0
  160. package/Build/Workers/chunk-R7JGHDD6.js +789 -0
  161. package/Build/Workers/chunk-RASQEYD4.js +1483 -0
  162. package/Build/Workers/chunk-RG4F5R57.js +454 -0
  163. package/Build/Workers/chunk-RW6ITX7Q.js +3820 -0
  164. package/Build/Workers/chunk-RYSQVJR6.js +398 -0
  165. package/Build/Workers/chunk-S6RJU5NM.js +1054 -0
  166. package/Build/Workers/chunk-SA2A2AN5.js +2342 -0
  167. package/Build/Workers/chunk-SDFHDNS4.js +147 -0
  168. package/Build/Workers/chunk-SF6K72D7.js +124 -0
  169. package/Build/Workers/chunk-SGRGNDOD.js +682 -0
  170. package/Build/Workers/{chunk-QRWGUWI6.js → chunk-SJYSIOEM.js} +11 -11
  171. package/Build/Workers/chunk-SM2CDCYF.js +198 -0
  172. package/Build/Workers/chunk-SMTGMFBL.js +97 -0
  173. package/Build/Workers/chunk-SS5ABQGY.js +102 -0
  174. package/Build/Workers/{chunk-IYOUHCZB.js → chunk-SXSP3JHS.js} +1 -1
  175. package/Build/Workers/chunk-T5QBPLE3.js +414 -0
  176. package/Build/Workers/chunk-TN35HP5B.js +1067 -0
  177. package/Build/Workers/chunk-TNWKJNUZ.js +454 -0
  178. package/Build/Workers/chunk-TOAF47AQ.js +102 -0
  179. package/Build/Workers/chunk-TQ4QCOXT.js +2719 -0
  180. package/Build/Workers/chunk-TSDSILQB.js +124 -0
  181. package/Build/Workers/chunk-TVZD72WJ.js +778 -0
  182. package/Build/Workers/chunk-U5LV3F3Z.js +1054 -0
  183. package/Build/Workers/chunk-UAZUP4I5.js +1992 -0
  184. package/Build/Workers/chunk-UEY73NRN.js +38 -0
  185. package/Build/Workers/chunk-UF46SZEZ.js +789 -0
  186. package/Build/Workers/chunk-UNRTMCET.js +398 -0
  187. package/Build/Workers/chunk-UTB7U3O6.js +1992 -0
  188. package/Build/Workers/chunk-UVO6COT2.js +352 -0
  189. package/Build/Workers/chunk-V46YGZE6.js +352 -0
  190. package/Build/Workers/chunk-VAL7DYNR.js +278 -0
  191. package/Build/Workers/chunk-VDGOCROW.js +57 -0
  192. package/Build/Workers/chunk-VFWSSBPT.js +511 -0
  193. package/Build/Workers/chunk-VVYMXI3I.js +1284 -0
  194. package/Build/Workers/chunk-VXWHPYQM.js +837 -0
  195. package/Build/Workers/chunk-VXYUBRSB.js +219 -0
  196. package/Build/Workers/chunk-VZLDLEWI.js +387 -0
  197. package/Build/Workers/{chunk-4S7IE3LB.js → chunk-W5OCKMPJ.js} +2 -2
  198. package/Build/Workers/chunk-WBSY7HDY.js +837 -0
  199. package/Build/Workers/chunk-WN3F4CVG.js +3201 -0
  200. package/Build/Workers/chunk-WPRUWXGV.js +693 -0
  201. package/Build/Workers/chunk-WTO2ERBP.js +414 -0
  202. package/Build/Workers/chunk-WVHMDVG4.js +959 -0
  203. package/Build/Workers/chunk-XCBZVTIV.js +280 -0
  204. package/Build/Workers/chunk-XDWCTQCZ.js +101 -0
  205. package/Build/Workers/chunk-XGA23TAX.js +73 -0
  206. package/Build/Workers/chunk-XLQZNQ4Z.js +163 -0
  207. package/Build/Workers/chunk-XLXSDIP5.js +973 -0
  208. package/Build/Workers/chunk-XQ3SKCMM.js +140 -0
  209. package/Build/Workers/chunk-XQH66YJC.js +147 -0
  210. package/Build/Workers/chunk-XTA7BXJG.js +682 -0
  211. package/Build/Workers/chunk-XTIDAFRS.js +476 -0
  212. package/Build/Workers/chunk-XUEDWBUD.js +682 -0
  213. package/Build/Workers/chunk-XYFLRH3H.js +124 -0
  214. package/Build/Workers/chunk-Y7JRTRTO.js +305 -0
  215. package/Build/Workers/chunk-Y7QSMDCJ.js +352 -0
  216. package/Build/Workers/chunk-YCB5TYTR.js +1483 -0
  217. package/Build/Workers/chunk-YEYOSTJX.js +219 -0
  218. package/Build/Workers/chunk-YGFVAGYF.js +630 -0
  219. package/Build/Workers/chunk-YIIACKQO.js +368 -0
  220. package/Build/Workers/chunk-YJGSP6PE.js +511 -0
  221. package/Build/Workers/{chunk-XZMBNNDX.js → chunk-YKU2Q3A2.js} +9 -9
  222. package/Build/Workers/chunk-Z4LR5EHE.js +454 -0
  223. package/Build/Workers/chunk-Z66EVE2A.js +44 -0
  224. package/Build/Workers/chunk-ZHIHHHTB.js +414 -0
  225. package/Build/Workers/chunk-ZMBHFYOX.js +1344 -0
  226. package/Build/Workers/chunk-ZNWHFSLE.js +171 -0
  227. package/Build/Workers/chunk-ZQLZG4IN.js +2342 -0
  228. package/Build/Workers/chunk-ZRTSMUZ2.js +414 -0
  229. package/Build/Workers/{chunk-MPZHGZU6.js → chunk-ZSGUV73H.js} +4 -4
  230. package/Build/Workers/chunk-ZZUVT5BM.js +476 -0
  231. package/Build/Workers/combineGeometry.js +24 -24
  232. package/Build/Workers/createBoxGeometry.js +18 -18
  233. package/Build/Workers/createBoxOutlineGeometry.js +16 -16
  234. package/Build/Workers/createCircleGeometry.js +26 -26
  235. package/Build/Workers/createCircleOutlineGeometry.js +19 -19
  236. package/Build/Workers/createCoplanarPolygonGeometry.js +35 -35
  237. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +31 -31
  238. package/Build/Workers/createCorridorGeometry.js +31 -33
  239. package/Build/Workers/createCorridorOutlineGeometry.js +29 -31
  240. package/Build/Workers/createCylinderGeometry.js +20 -20
  241. package/Build/Workers/createCylinderOutlineGeometry.js +18 -18
  242. package/Build/Workers/createEllipseGeometry.js +26 -26
  243. package/Build/Workers/createEllipseOutlineGeometry.js +19 -19
  244. package/Build/Workers/createEllipsoidGeometry.js +19 -19
  245. package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -18
  246. package/Build/Workers/createFrustumGeometry.js +18 -18
  247. package/Build/Workers/createFrustumOutlineGeometry.js +18 -18
  248. package/Build/Workers/createGeometry.js +24 -24
  249. package/Build/Workers/createGroundPolylineGeometry.js +24 -24
  250. package/Build/Workers/createPlaneGeometry.js +16 -16
  251. package/Build/Workers/createPlaneOutlineGeometry.js +15 -15
  252. package/Build/Workers/createPolygonGeometry.js +34 -34
  253. package/Build/Workers/createPolygonOutlineGeometry.js +31 -31
  254. package/Build/Workers/createPolylineGeometry.js +26 -26
  255. package/Build/Workers/createPolylineVolumeGeometry.js +31 -31
  256. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +27 -27
  257. package/Build/Workers/createRectangleGeometry.js +27 -27
  258. package/Build/Workers/createRectangleOutlineGeometry.js +21 -21
  259. package/Build/Workers/createSimplePolylineGeometry.js +24 -24
  260. package/Build/Workers/createSphereGeometry.js +19 -19
  261. package/Build/Workers/createSphereOutlineGeometry.js +18 -18
  262. package/Build/Workers/createTaskProcessorWorker.js +3 -3
  263. package/Build/Workers/createVectorTileClampedPolylines.js +14 -14
  264. package/Build/Workers/createVectorTileGeometries.js +24 -24
  265. package/Build/Workers/createVectorTilePoints.js +13 -13
  266. package/Build/Workers/createVectorTilePolygons.js +22 -22
  267. package/Build/Workers/createVectorTilePolylines.js +14 -14
  268. package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +25 -25
  269. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +22 -22
  270. package/Build/Workers/createVerticesFromHeightmap.js +22 -22
  271. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +20 -20
  272. package/Build/Workers/createWallGeometry.js +24 -24
  273. package/Build/Workers/createWallOutlineGeometry.js +24 -24
  274. package/Build/Workers/decodeDraco.js +10 -10
  275. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +987 -2320
  276. package/Build/Workers/decodeI3S.js +10 -10
  277. package/Build/Workers/gaussianSplatSorter.js +4 -4
  278. package/Build/Workers/gaussianSplatTextureGenerator.js +4 -4
  279. package/Build/Workers/incrementallyBuildTerrainPicker.js +10 -10
  280. package/Build/Workers/transcodeKTX2.js +6 -6
  281. package/Build/Workers/transferTypedArrayTest.js +1 -1
  282. package/Build/Workers/upsampleQuantizedTerrainMesh.js +22 -22
  283. package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +25 -25
  284. package/Source/Core/ArcGISTiledElevationTerrainProvider.js +1 -5
  285. package/Source/Core/BoundingRectangle.js +6 -8
  286. package/Source/Core/BoundingSphere.js +0 -3
  287. package/Source/Core/Cesium3DTilesTerrainGeometryProcessor.js +3 -4
  288. package/Source/Core/Color.js +1 -0
  289. package/Source/Core/CoplanarPolygonGeometry.js +2 -2
  290. package/Source/Core/CorridorGeometry.js +2 -4
  291. package/Source/Core/CorridorOutlineGeometry.js +1 -3
  292. package/Source/Core/EarthOrientationParameters.js +2 -2
  293. package/Source/Core/EllipseGeometryLibrary.js +2 -2
  294. package/Source/Core/EllipsoidGeodesic.js +3 -3
  295. package/Source/Core/EllipsoidRhumbLine.js +1 -1
  296. package/Source/Core/GroundPolylineGeometry.js +2 -2
  297. package/Source/Core/Heap.js +1 -1
  298. package/Source/Core/HermitePolynomialApproximation.js +215 -179
  299. package/Source/Core/InterpolationAlgorithm.js +58 -50
  300. package/Source/Core/Ion.js +1 -1
  301. package/Source/Core/JulianDate.js +1 -1
  302. package/Source/Core/LagrangePolynomialApproximation.js +55 -52
  303. package/Source/Core/LinearApproximation.js +69 -66
  304. package/Source/Core/Math.js +59 -0
  305. package/Source/Core/Matrix2.js +2 -2
  306. package/Source/Core/Matrix3.js +2 -2
  307. package/Source/Core/OrthographicFrustum.js +1 -1
  308. package/Source/Core/PerspectiveFrustum.js +1 -1
  309. package/Source/Core/PolygonGeometry.js +2 -2
  310. package/Source/Core/PolygonGeometryLibrary.js +1 -1
  311. package/Source/Core/PolygonOutlineGeometry.js +1 -1
  312. package/Source/Core/PolylineGeometry.js +1 -1
  313. package/Source/Core/PolylineVolumeGeometryLibrary.js +1 -1
  314. package/Source/Core/Rectangle.js +7 -1
  315. package/Source/Core/RectangleOutlineGeometry.js +1 -1
  316. package/Source/Core/SimplePolylineGeometry.js +1 -1
  317. package/Source/Core/TerrainEncoding.js +2 -2
  318. package/Source/Core/TerrainMesh.js +3 -3
  319. package/Source/Core/TerrainPicker.js +180 -168
  320. package/Source/Core/TimeIntervalCollection.js +1 -3
  321. package/Source/Core/Tipsify.js +1 -1
  322. package/Source/Core/Transforms.js +5 -1
  323. package/Source/Core/VectorPipeline.js +1117 -0
  324. package/Source/Core/VectorProvider.js +429 -0
  325. package/Source/Core/WallOutlineGeometry.js +1 -1
  326. package/Source/Core/getTimestamp.js +4 -2
  327. package/Source/Core/writeTextToCanvas.js +1 -0
  328. package/Source/DataSources/CompositeEntityCollection.js +0 -1
  329. package/Source/DataSources/CzmlDataSource.js +14 -0
  330. package/Source/DataSources/DataSourceDisplay.js +1 -1
  331. package/Source/DataSources/GeoJsonDataSource.js +0 -1
  332. package/Source/DataSources/GeometryVisualizer.js +1 -1
  333. package/Source/DataSources/KmlDataSource.js +529 -557
  334. package/Source/DataSources/PathGraphics.js +8 -1
  335. package/Source/DataSources/PathMode.js +27 -0
  336. package/Source/DataSources/PathVisualizer.js +298 -1
  337. package/Source/DataSources/PolylineVisualizer.js +1 -1
  338. package/Source/DataSources/StaticOutlineGeometryBatch.js +1 -1
  339. package/Source/Renderer/AutomaticUniforms.js +23 -0
  340. package/Source/Renderer/Context.js +9 -3
  341. package/Source/Renderer/DrawCommand.js +22 -0
  342. package/Source/Renderer/Framebuffer.js +4 -0
  343. package/Source/Renderer/Pass.js +11 -10
  344. package/Source/Renderer/Texture.js +12 -1
  345. package/Source/Renderer/UniformState.js +7 -0
  346. package/Source/Renderer/VertexArray.js +1 -1
  347. package/Source/Scene/ArcGisMapServerImageryProvider.js +0 -5
  348. package/Source/Scene/ArcGisMapService.js +1 -1
  349. package/Source/Scene/Billboard.js +2 -1
  350. package/Source/Scene/BillboardCollection.js +7 -3
  351. package/Source/Scene/BillboardTexture.js +5 -3
  352. package/Source/Scene/BufferPrimitiveCollection.js +27 -5
  353. package/Source/Scene/Camera.js +71 -5
  354. package/Source/Scene/Cesium3DTileOptimizations.js +4 -6
  355. package/Source/Scene/Cesium3DTileset.js +1 -1
  356. package/Source/Scene/ClippingPlaneCollection.js +4 -4
  357. package/Source/Scene/ClippingPolygon.js +2 -0
  358. package/Source/Scene/ClippingPolygonCollection.js +2 -2
  359. package/Source/Scene/Controllers/Controller.js +63 -0
  360. package/Source/Scene/Controllers/ControllerHost.js +78 -0
  361. package/Source/Scene/Controllers/HybridScreenSpacePanCameraController.js +106 -0
  362. package/Source/Scene/Controllers/MouseButton.js +32 -0
  363. package/Source/Scene/Controllers/ScreenSpaceElevatorCameraController.js +295 -0
  364. package/Source/Scene/Controllers/ScreenSpaceInputBindings.js +154 -0
  365. package/Source/Scene/Controllers/ScreenSpaceMapCameraController.js +310 -0
  366. package/Source/Scene/Controllers/ScreenSpaceTiltOrbitCameraController.js +642 -0
  367. package/Source/Scene/Controllers/ScreenSpaceZoomCameraController.js +431 -0
  368. package/Source/Scene/Controllers/defaultPickWorldPosition.js +84 -0
  369. package/Source/Scene/DerivedCommand.js +98 -0
  370. package/Source/Scene/EdgeFramebuffer.js +1 -5
  371. package/Source/Scene/Expression.js +6 -8
  372. package/Source/Scene/FrameState.js +17 -0
  373. package/Source/Scene/Globe.js +20 -0
  374. package/Source/Scene/GlobeDepth.js +27 -1
  375. package/Source/Scene/GlobeSurfaceShaderSet.js +511 -409
  376. package/Source/Scene/GlobeSurfaceTile.js +575 -398
  377. package/Source/Scene/GlobeSurfaceTileProvider.js +1382 -1151
  378. package/Source/Scene/GltfBufferViewLoader.js +3 -3
  379. package/Source/Scene/GltfLoader.js +33 -3
  380. package/Source/Scene/GltfLoaderUtil.js +20 -4
  381. package/Source/Scene/GltfPipeline/forEachTextureInMaterial.js +10 -0
  382. package/Source/Scene/GltfPipeline/removeUnusedElements.js +21 -11
  383. package/Source/Scene/GltfSpzLoader.js +1 -1
  384. package/Source/Scene/GltfVertexBufferLoader.js +6 -3
  385. package/Source/Scene/I3SDataProvider.js +1 -1
  386. package/Source/Scene/I3SLayer.js +1 -1
  387. package/Source/Scene/I3SNode.js +2 -2
  388. package/Source/Scene/ImageryLayer.js +2 -2
  389. package/Source/Scene/ImageryLayerCollection.js +190 -6
  390. package/Source/Scene/IonImageryProvider.js +1 -5
  391. package/Source/Scene/Label.js +4 -4
  392. package/Source/Scene/LabelCollection.js +1 -1
  393. package/Source/Scene/MVTDataProvider.js +2 -0
  394. package/Source/Scene/Material.js +1 -0
  395. package/Source/Scene/Model/B3dmLoader.js +1 -2
  396. package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +10 -8
  397. package/Source/Scene/Model/Extensions/Gpm/GltfGpmLoader.js +4 -0
  398. package/Source/Scene/Model/I3dmLoader.js +1 -1
  399. package/Source/Scene/Model/InstancingPipelineStage.js +4 -7
  400. package/Source/Scene/Model/MaterialPipelineStage.js +124 -1
  401. package/Source/Scene/Model/Model.js +11 -10
  402. package/Source/Scene/Model/ModelClippingPlanesPipelineStage.js +28 -1
  403. package/Source/Scene/Model/ModelDrawCommand.js +160 -16
  404. package/Source/Scene/Model/ModelDrawCommands.js +4 -0
  405. package/Source/Scene/Model/ModelSceneGraph.js +21 -0
  406. package/Source/Scene/Model/ModelUtility.js +1 -0
  407. package/Source/Scene/Model/PickingPipelineStage.js +29 -0
  408. package/Source/Scene/Model/PrimitiveRenderResources.js +24 -0
  409. package/Source/Scene/ModelComponents.js +71 -0
  410. package/Source/Scene/Picking.js +19 -3
  411. package/Source/Scene/PlanarFillIdFramebuffer.js +172 -0
  412. package/Source/Scene/PntsParser.js +1 -1
  413. package/Source/Scene/PolylineCollection.js +1 -1
  414. package/Source/Scene/PostProcessStage.js +4 -2
  415. package/Source/Scene/QuadtreePrimitive.js +3 -2
  416. package/Source/Scene/ResourceCache.js +7 -4
  417. package/Source/Scene/ResourceCacheKey.js +21 -18
  418. package/Source/Scene/Scene.js +203 -5
  419. package/Source/Scene/ScreenSpaceCameraController.js +1 -2
  420. package/Source/Scene/ShadowMap.js +9 -3
  421. package/Source/Scene/ShadowMapShader.js +50 -2
  422. package/Source/Scene/SnapFramebuffer.js +121 -0
  423. package/Source/Scene/Snapping.js +184 -0
  424. package/Source/Scene/TerrainFillMesh.js +3 -2
  425. package/Source/Scene/UrlTemplate3DTilesDataProvider.js +1 -1
  426. package/Source/Scene/Vector3DTileContent.js +2 -3
  427. package/Source/Scene/VectorGltf3DTileContent.js +23 -3
  428. package/Source/Scene/View.js +10 -8
  429. package/Source/Scene/VoxelTraversal.js +1 -1
  430. package/Source/Scene/createElevationBandMaterial.js +1 -1
  431. package/Source/Scene/findMeshoptExtension.js +23 -0
  432. package/Source/Scene/renderBufferPointCollection.js +14 -10
  433. package/Source/Scene/renderBufferPolygonCollection.js +10 -15
  434. package/Source/Scene/renderBufferPolylineCollection.js +121 -194
  435. package/Source/Shaders/Builtin/Constants/passCesium3DTile.glsl +1 -1
  436. package/Source/Shaders/Builtin/Constants/passCesium3DTile.js +1 -1
  437. package/Source/Shaders/Builtin/Constants/passCesium3DTileClassification.glsl +1 -1
  438. package/Source/Shaders/Builtin/Constants/passCesium3DTileClassification.js +1 -1
  439. package/Source/Shaders/Builtin/Constants/passCesium3DTileClassificationIgnoreShow.glsl +1 -1
  440. package/Source/Shaders/Builtin/Constants/passCesium3DTileClassificationIgnoreShow.js +1 -1
  441. package/Source/Shaders/Builtin/Constants/passCesium3DTilePlanarFillId.glsl +9 -0
  442. package/Source/Shaders/Builtin/Constants/passCesium3DTilePlanarFillId.js +11 -0
  443. package/Source/Shaders/Builtin/Constants/passClassification.glsl +1 -1
  444. package/Source/Shaders/Builtin/Constants/passClassification.js +1 -1
  445. package/Source/Shaders/Builtin/Constants/passGaussianSplats.glsl +1 -1
  446. package/Source/Shaders/Builtin/Constants/passGaussianSplats.js +1 -1
  447. package/Source/Shaders/Builtin/Constants/passOpaque.glsl +1 -1
  448. package/Source/Shaders/Builtin/Constants/passOpaque.js +1 -1
  449. package/Source/Shaders/Builtin/Constants/passTranslucent.glsl +1 -1
  450. package/Source/Shaders/Builtin/Constants/passTranslucent.js +1 -1
  451. package/Source/Shaders/Builtin/Constants/passVoxels.glsl +1 -1
  452. package/Source/Shaders/Builtin/Constants/passVoxels.js +1 -1
  453. package/Source/Shaders/Builtin/CzmBuiltins.js +2 -0
  454. package/Source/Shaders/GlobeFS.glsl +10 -5
  455. package/Source/Shaders/GlobeFS.js +9 -5
  456. package/Source/Shaders/Materials/PolylineGlowMaterial.glsl +1 -1
  457. package/Source/Shaders/Materials/PolylineGlowMaterial.js +1 -1
  458. package/Source/Shaders/Model/MaterialStageFS.glsl +8 -2
  459. package/Source/Shaders/Model/MaterialStageFS.js +8 -2
  460. package/Source/Shaders/Model/ModelFS.glsl +105 -0
  461. package/Source/Shaders/Model/ModelFS.js +105 -0
  462. package/Source/Shaders/VectorCommon.glsl +178 -0
  463. package/Source/Shaders/VectorCommon.js +75 -0
  464. package/Source/ThirdParty/Workers/zip-web-worker.js +1 -1
  465. package/Source/ThirdParty/zip-module.wasm +0 -0
  466. package/Source/Widget/CesiumWidget.js +30 -0
  467. package/Source/Workers/decodeGoogleEarthEnterprisePacket.js +2 -2
  468. package/Source/Workers/incrementallyBuildTerrainPicker.js +2 -0
  469. package/index.d.ts +825 -260
  470. package/index.js +29 -10
  471. package/package.json +4 -4
@@ -0,0 +1,429 @@
1
+ // @ts-check
2
+
3
+ import BufferPolygonCollection from "../Scene/BufferPolygonCollection.js";
4
+ import BufferPolylineCollection from "../Scene/BufferPolylineCollection.js";
5
+ import Rectangle from "./Rectangle.js";
6
+ import defined from "./defined.js";
7
+ import VectorPipeline from "./VectorPipeline.js";
8
+
9
+ /** @import BufferPrimitive from "../Scene/BufferPrimitive.js"; */
10
+ /** @import BufferPrimitiveCollection from "../Scene/BufferPrimitiveCollection.js"; */
11
+ /** @import Context from "../Renderer/Context.js"; */
12
+ /** @import Ellipsoid from "./Ellipsoid.js"; */
13
+ /** @import TilingScheme from "./TilingScheme.js"; */
14
+ /** @import { VectorCollectionData, VectorTileData } from "./VectorPipeline.js"; */
15
+
16
+ /** @ignore */
17
+ const scratchTileRectangle = new Rectangle();
18
+ const scratchCollectionRectangle = new Rectangle();
19
+ const scratchIntersectRectangle = new Rectangle();
20
+
21
+ /**
22
+ * Extracts a collection's snapshot of projected positions and per-primitive
23
+ * material properties.
24
+ *
25
+ * @callback PackCollectionData
26
+ * @param {*} collection
27
+ * @param {TilingScheme} tilingScheme
28
+ * @param {VectorCollectionData} [result]
29
+ * @returns {VectorCollectionData}
30
+ * @private
31
+ */
32
+
33
+ /**
34
+ * Packs a collection's primitives into a tile's vector data.
35
+ *
36
+ * @callback PackTilePrimitives
37
+ * @param {*} collection
38
+ * @param {VectorCollectionData} collectionData
39
+ * @param {Rectangle} rectangle
40
+ * @param {VectorTileData} result
41
+ * @returns {void}
42
+ * @private
43
+ */
44
+
45
+ /**
46
+ * Packing functions for a collection type.
47
+ *
48
+ * @typedef {object} CollectionPacker
49
+ * @property {PackCollectionData} packCollectionData Extracts the per-collection snapshot.
50
+ * @property {PackTilePrimitives} packTilePrimitives Packs the collection's primitives into a tile.
51
+ * @private
52
+ */
53
+
54
+ /**
55
+ * Per-type packing functions, keyed by collection class.
56
+ * @type {Map<Function, CollectionPacker>}
57
+ * @private
58
+ */
59
+ const collectionPackers = new Map();
60
+ collectionPackers.set(BufferPolylineCollection, {
61
+ packCollectionData: VectorPipeline.packPolylineCollectionData,
62
+ packTilePrimitives: VectorPipeline.packPolylineSegments,
63
+ });
64
+ collectionPackers.set(BufferPolygonCollection, {
65
+ packCollectionData: VectorPipeline.packPolygonCollectionData,
66
+ packTilePrimitives: VectorPipeline.packPolygonRings,
67
+ });
68
+
69
+ /**
70
+ * @typedef {object} VectorProviderConstructorOptions
71
+ * @property {TilingScheme} tilingScheme
72
+ * @private
73
+ */
74
+
75
+ /**
76
+ * @ignore
77
+ */
78
+ class VectorProvider {
79
+ /** @param {VectorProviderConstructorOptions} options */
80
+ constructor(options) {
81
+ /** @private */
82
+ this._tilingScheme = options.tilingScheme;
83
+
84
+ /**
85
+ * @type {Set<BufferPrimitiveCollection<BufferPrimitive>>}
86
+ * @private
87
+ */
88
+ this._collections = new Set();
89
+
90
+ /**
91
+ * Per-collection snapshot of projected positions and per-primitive
92
+ * material properties, keyed by collection version.
93
+ * @type {WeakMap<BufferPrimitiveCollection<BufferPrimitive>, VectorCollectionData>}
94
+ * @private
95
+ */
96
+ this._collectionDataCache = new WeakMap();
97
+
98
+ /**
99
+ * Collections marked selected this frame (only these are baked).
100
+ * @type {Set<BufferPrimitiveCollection<BufferPrimitive>>}
101
+ * @private
102
+ */
103
+ this._selectedThisFrame = new Set();
104
+
105
+ /**
106
+ * Collections added via markSelected (not add); only these are pruned.
107
+ * @type {Set<BufferPrimitiveCollection<BufferPrimitive>>}
108
+ * @private
109
+ */
110
+ this._selectionDriven = new Set();
111
+
112
+ /** @private */
113
+ this._selectionFrameNumber = -1;
114
+
115
+ /**
116
+ * Cartographic regions changed since the last
117
+ * {@link VectorProvider#makeClean}, so only overlapping terrain
118
+ * tiles are re-baked.
119
+ * @type {Rectangle[]}
120
+ * @private
121
+ */
122
+ this._dirtyRectangles = [];
123
+ }
124
+
125
+ /** @type {TilingScheme} */
126
+ get tilingScheme() {
127
+ return this._tilingScheme;
128
+ }
129
+
130
+ set tilingScheme(value) {
131
+ this._tilingScheme = value;
132
+ }
133
+
134
+ /** @type {Ellipsoid} */
135
+ get ellipsoid() {
136
+ return this._tilingScheme.ellipsoid;
137
+ }
138
+
139
+ /**
140
+ * @param {BufferPrimitiveCollection<BufferPrimitive>} collection
141
+ */
142
+ add(collection) {
143
+ const previousSize = this._collections.size;
144
+ this._collections.add(collection);
145
+ if (this._collections.size !== previousSize) {
146
+ this._markCollectionRegionDirty(collection);
147
+ }
148
+ }
149
+
150
+ /**
151
+ * @param {BufferPrimitiveCollection<BufferPrimitive>} collection
152
+ */
153
+ remove(collection) {
154
+ this._selectedThisFrame.delete(collection);
155
+ this._selectionDriven.delete(collection);
156
+ if (this._collections.delete(collection)) {
157
+ this._markCollectionRegionDirty(collection);
158
+ }
159
+ }
160
+
161
+ /**
162
+ * Marks a collection as selected this frame so it is baked; collections not
163
+ * marked are pruned next frame, keeping the baked set aligned with the
164
+ * rendered LOD.
165
+ *
166
+ * @param {BufferPrimitiveCollection<BufferPrimitive>} collection
167
+ * @param {number} frameNumber
168
+ */
169
+ markSelected(collection, frameNumber) {
170
+ if (frameNumber !== this._selectionFrameNumber) {
171
+ this._commitSelectedFrame();
172
+ this._selectionFrameNumber = frameNumber;
173
+ }
174
+ this._selectedThisFrame.add(collection);
175
+ this._selectionDriven.add(collection);
176
+ const previousSize = this._collections.size;
177
+ this._collections.add(collection);
178
+ if (this._collections.size !== previousSize) {
179
+ this._markCollectionRegionDirty(collection);
180
+ }
181
+ }
182
+
183
+ /**
184
+ * Prunes selection-driven collections not marked in the frame that just ended.
185
+ * @private
186
+ */
187
+ _commitSelectedFrame() {
188
+ for (const collection of this._selectionDriven) {
189
+ if (!this._selectedThisFrame.has(collection)) {
190
+ this._selectionDriven.delete(collection);
191
+ if (this._collections.delete(collection)) {
192
+ this._markCollectionRegionDirty(collection);
193
+ }
194
+ }
195
+ }
196
+ this._selectedThisFrame.clear();
197
+ }
198
+
199
+ /**
200
+ * Records a changed collection's region(s) so the next re-bake only touches
201
+ * overlapping tiles.
202
+ * @param {BufferPrimitiveCollection<BufferPrimitive>} collection
203
+ * @private
204
+ */
205
+ _markCollectionRegionDirty(collection) {
206
+ const collectionRectangle = Rectangle.fromBoundingSphere(
207
+ collection.boundingVolume,
208
+ this._tilingScheme.ellipsoid,
209
+ new Rectangle(),
210
+ );
211
+ this._dirtyRectangles.push(collectionRectangle);
212
+ }
213
+
214
+ /**
215
+ * @param {number} x
216
+ * @param {number} y
217
+ * @param {number} level
218
+ * @param {Context} context
219
+ * @returns {VectorTileData}
220
+ */
221
+ requestTileData(x, y, level, context) {
222
+ const tilingScheme = this._tilingScheme;
223
+ const tileRectangle = tilingScheme.tileXYToRectangle(x, y, level);
224
+
225
+ /** @type {VectorTileData} */
226
+ const result = { show: true };
227
+
228
+ for (const collection of this._collections) {
229
+ const packer = collectionPackers.get(collection.constructor);
230
+ if (!defined(packer)) {
231
+ continue;
232
+ }
233
+
234
+ const collectionRectangle = Rectangle.fromBoundingSphere(
235
+ collection.boundingVolume,
236
+ tilingScheme.ellipsoid,
237
+ scratchCollectionRectangle,
238
+ );
239
+
240
+ const isIntersected = !!Rectangle.intersection(
241
+ tileRectangle,
242
+ collectionRectangle,
243
+ scratchIntersectRectangle,
244
+ );
245
+
246
+ if (!isIntersected) {
247
+ continue;
248
+ }
249
+
250
+ const collectionData = this._getCollectionDataCached(
251
+ collection,
252
+ packer.packCollectionData,
253
+ );
254
+ packer.packTilePrimitives(
255
+ collection,
256
+ collectionData,
257
+ tileRectangle,
258
+ result,
259
+ );
260
+ }
261
+
262
+ const hasPolylines =
263
+ defined(result.polylineSegments) && result.polylineSegments.length > 0;
264
+ const hasPolygons =
265
+ defined(result.polygonRings) && result.polygonRings.length > 0;
266
+
267
+ if (!hasPolylines && !hasPolygons) {
268
+ result.show = false;
269
+ return result;
270
+ }
271
+
272
+ if (hasPolylines) {
273
+ VectorPipeline.packPolylineGrid(result);
274
+ VectorPipeline.packPolylineTextures(context, result);
275
+ }
276
+
277
+ if (hasPolygons) {
278
+ VectorPipeline.packPolygonGrid(result);
279
+ VectorPipeline.packPolygonTextures(context, result);
280
+ }
281
+
282
+ VectorPipeline.packPrimitiveTextures(context, result);
283
+
284
+ return result;
285
+ }
286
+
287
+ /**
288
+ * @param {VectorTileData} data
289
+ */
290
+ releaseTileData(data) {
291
+ VectorPipeline.freeResources(data);
292
+ }
293
+
294
+ /**
295
+ * Re-bakes a tile's vector data if the tile overlaps a region changed since
296
+ * the last {@link VectorProvider#makeClean}, releasing the previous data.
297
+ * Returns the current data unchanged when the tile is outside every changed
298
+ * region.
299
+ *
300
+ * @param {number} x
301
+ * @param {number} y
302
+ * @param {number} level
303
+ * @param {Context} context
304
+ * @param {VectorTileData|undefined} currentData
305
+ * @returns {VectorTileData|undefined}
306
+ */
307
+ updateTileData(x, y, level, context, currentData) {
308
+ const dirtyRectangles = this._dirtyRectangles;
309
+ const tilingScheme = this._tilingScheme;
310
+ if (!intersectRectangles(x, y, level, dirtyRectangles, tilingScheme)) {
311
+ return currentData;
312
+ }
313
+
314
+ if (defined(currentData)) {
315
+ this.releaseTileData(currentData);
316
+ }
317
+
318
+ return this.requestTileData(x, y, level, context);
319
+ }
320
+
321
+ /**
322
+ * Clears the regions recorded as changed. Call once after a re-bake pass has
323
+ * updated the overlapping tiles via {@link VectorProvider#updateTileData}.
324
+ */
325
+ makeClean() {
326
+ this._dirtyRectangles.length = 0;
327
+ }
328
+
329
+ /**
330
+ * Records dirty regions for collections whose content has changed since
331
+ * their last extraction, so overlapping tiles are re-baked. Call once per
332
+ * frame, before {@link VectorProvider#updateTileData}.
333
+ */
334
+ update() {
335
+ for (const collection of this._collections) {
336
+ const cache = this._collectionDataCache.get(collection);
337
+ if (!defined(cache)) {
338
+ // Never extracted; new tiles bake on request.
339
+ continue;
340
+ }
341
+ const changed =
342
+ collection._dirtyCount > 0 || cache.version !== collection._version;
343
+ if (!changed) {
344
+ continue;
345
+ }
346
+ // Re-bake both the previously baked region (content may have moved
347
+ // away from it) and the collection's current region.
348
+ if (defined(cache.rectangle)) {
349
+ this._dirtyRectangles.push(Rectangle.clone(cache.rectangle));
350
+ }
351
+ this._markCollectionRegionDirty(collection);
352
+ }
353
+ }
354
+
355
+ /**
356
+ * Returns the collection's {@link VectorCollectionData} snapshot,
357
+ * re-extracted when the collection has changed. The collection is marked
358
+ * clean only after everything has been read back.
359
+ *
360
+ * @param {BufferPrimitiveCollection<BufferPrimitive>} collection
361
+ * @param {PackCollectionData} packCollectionData
362
+ * @returns {VectorCollectionData}
363
+ * @private
364
+ */
365
+ _getCollectionDataCached(collection, packCollectionData) {
366
+ const cache = this._collectionDataCache.get(collection);
367
+ const dirty = collection._dirtyCount > 0;
368
+ const outdated = cache?.version !== collection._version;
369
+
370
+ if (defined(cache) && !dirty && !outdated) {
371
+ return cache;
372
+ }
373
+
374
+ const data = packCollectionData(collection, this._tilingScheme, cache);
375
+
376
+ // If dirty, the version increments +1 when marked clean below.
377
+ data.version = collection._version + (dirty ? 1 : 0);
378
+ data.rectangle = Rectangle.fromBoundingSphere(
379
+ collection.boundingVolume,
380
+ this.ellipsoid,
381
+ data.rectangle,
382
+ );
383
+ this._collectionDataCache.set(collection, data);
384
+
385
+ collection._makeClean();
386
+
387
+ return data;
388
+ }
389
+ }
390
+
391
+ /**
392
+ * @param {number} x
393
+ * @param {number} y
394
+ * @param {number} level
395
+ * @param {Rectangle[]} rectangles
396
+ * @param {TilingScheme} tilingScheme
397
+ * @returns {boolean}
398
+ * @private
399
+ */
400
+ function intersectRectangles(x, y, level, rectangles, tilingScheme) {
401
+ // No dirty regions recorded — nothing to re-bake. A caller needing a full
402
+ // re-bake should record Rectangle.MAX_VALUE instead.
403
+ if (rectangles.length === 0) {
404
+ return false;
405
+ }
406
+
407
+ const tileRectangle = tilingScheme.tileXYToRectangle(
408
+ x,
409
+ y,
410
+ level,
411
+ scratchTileRectangle,
412
+ );
413
+
414
+ for (let i = 0; i < rectangles.length; i++) {
415
+ const isIntersected = Rectangle.intersection(
416
+ tileRectangle,
417
+ rectangles[i],
418
+ scratchIntersectRectangle,
419
+ );
420
+
421
+ if (isIntersected) {
422
+ return true;
423
+ }
424
+ }
425
+
426
+ return false;
427
+ }
428
+
429
+ export default VectorProvider;
@@ -419,7 +419,7 @@ WallOutlineGeometry.createGeometry = function (wallGeometry) {
419
419
  }
420
420
 
421
421
  indices[edgeIndex++] = numVertices - 2;
422
- indices[edgeIndex++] = numVertices - 1;
422
+ indices[edgeIndex] = numVertices - 1;
423
423
 
424
424
  return new Geometry({
425
425
  attributes: attributes,
@@ -1,11 +1,12 @@
1
+ // @ts-check
2
+
1
3
  /**
2
4
  * Gets a timestamp that can be used in measuring the time between events. Timestamps
3
5
  * are expressed in milliseconds, but it is not specified what the milliseconds are
4
6
  * measured from. This function uses performance.now() if it is available, or Date.now()
5
7
  * otherwise.
6
- *
8
+ * @type {Function}
7
9
  * @function getTimestamp
8
- *
9
10
  * @returns {number} The timestamp in milliseconds since some unspecified reference time.
10
11
  */
11
12
  let getTimestamp;
@@ -23,4 +24,5 @@ if (
23
24
  return Date.now();
24
25
  };
25
26
  }
27
+
26
28
  export default getTimestamp;
@@ -9,6 +9,7 @@ import DeveloperError from "./DeveloperError.js";
9
9
  * Rounds metrics, excluding width, to whole pixels. This is purely to minimize
10
10
  * rendering differences with migration to in-browser measureText(), and may be
11
11
  * revised in the future. See: github.com/CesiumGS/cesium/pull/13081
12
+ * @ignore
12
13
  */
13
14
  function measureText(context2D, textString) {
14
15
  const metrics = context2D.measureText(textString);
@@ -218,7 +218,6 @@ CompositeEntityCollection.prototype.addCollection = function (
218
218
  //>>includeEnd('debug');
219
219
 
220
220
  if (!hasIndex) {
221
- index = this._collections.length;
222
221
  this._collections.push(collection);
223
222
  } else {
224
223
  this._collections.splice(index, 0, collection);
@@ -65,6 +65,7 @@ import LabelGraphics from "./LabelGraphics.js";
65
65
  import ModelGraphics from "./ModelGraphics.js";
66
66
  import NodeTransformationProperty from "./NodeTransformationProperty.js";
67
67
  import PathGraphics from "./PathGraphics.js";
68
+ import PathMode from "./PathMode.js";
68
69
  import PointGraphics from "./PointGraphics.js";
69
70
  import PolygonGraphics from "./PolygonGraphics.js";
70
71
  import PolylineArrowMaterialProperty from "./PolylineArrowMaterialProperty.js";
@@ -496,6 +497,8 @@ function getPropertyType(czmlInterval) {
496
497
  return Object;
497
498
  } else if (czmlInterval.hasOwnProperty("unitQuaternion")) {
498
499
  return Quaternion;
500
+ } else if (czmlInterval.hasOwnProperty("pathMode")) {
501
+ return PathMode;
499
502
  } else if (czmlInterval.hasOwnProperty("shadowMode")) {
500
503
  return ShadowMode;
501
504
  } else if (czmlInterval.hasOwnProperty("string")) {
@@ -562,6 +565,8 @@ function unwrapInterval(type, czmlInterval, sourceUri) {
562
565
  return czmlInterval.distanceDisplayCondition;
563
566
  case Object:
564
567
  return czmlInterval.object ?? czmlInterval.value ?? czmlInterval;
568
+ case PathMode:
569
+ return PathMode[czmlInterval.pathMode ?? czmlInterval];
565
570
  case Quaternion:
566
571
  return unwrapQuaternionInterval(czmlInterval);
567
572
  case Rotation:
@@ -3654,6 +3659,15 @@ function processPath(entity, packet, entityCollection, sourceUri) {
3654
3659
  sourceUri,
3655
3660
  entityCollection,
3656
3661
  );
3662
+ processPacketData(
3663
+ PathMode,
3664
+ path,
3665
+ "materialMode",
3666
+ pathData.materialMode,
3667
+ interval,
3668
+ sourceUri,
3669
+ entityCollection,
3670
+ );
3657
3671
  }
3658
3672
 
3659
3673
  function processPoint(entity, packet, entityCollection, sourceUri) {
@@ -415,7 +415,7 @@ DataSourceDisplay.prototype.getBoundingSphere = function (
415
415
  const tmp = getBoundingSphereBoundingSphereScratch;
416
416
 
417
417
  let count = 0;
418
- let state = BoundingSphereState.DONE;
418
+ let state;
419
419
  const visualizers = dataSource._visualizers;
420
420
  const visualizersLength = visualizers.length;
421
421
 
@@ -149,7 +149,6 @@ function createObject(geoJson, entityCollection, describe) {
149
149
  const lowerKey = key.toLowerCase();
150
150
 
151
151
  if (namePropertyPrecedence > 1 && lowerKey === "title") {
152
- namePropertyPrecedence = 1;
153
152
  nameProperty = key;
154
153
  break;
155
154
  } else if (namePropertyPrecedence > 2 && lowerKey === "name") {
@@ -336,7 +336,7 @@ GeometryVisualizer.prototype.getBoundingSphere = function (entity, result) {
336
336
  const tmp = getBoundingSphereBoundingSphereScratch;
337
337
 
338
338
  let count = 0;
339
- let state = BoundingSphereState.DONE;
339
+ let state;
340
340
  const batches = this._batches;
341
341
  const batchesLength = batches.length;
342
342