@hztxi/cesium-engine 25.0.6 → 26.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (484) hide show
  1. package/Build/Workers/chunk-2GJAWJJT.js +1344 -0
  2. package/Build/Workers/chunk-2J2VS5RI.js +288 -0
  3. package/Build/Workers/chunk-2NCNUVAT.js +56 -0
  4. package/Build/Workers/chunk-2ZYRUVVU.js +301 -0
  5. package/Build/Workers/chunk-36IU7N4V.js +1284 -0
  6. package/Build/Workers/chunk-375SHKGW.js +44 -0
  7. package/Build/Workers/chunk-3BDLET5S.js +198 -0
  8. package/Build/Workers/chunk-3PRHI4KX.js +241 -0
  9. package/Build/Workers/chunk-3R6E2SH4.js +672 -0
  10. package/Build/Workers/chunk-3ZKKXEXL.js +415 -0
  11. package/Build/Workers/chunk-47KVKPTO.js +415 -0
  12. package/Build/Workers/chunk-4N227IPR.js +973 -0
  13. package/Build/Workers/chunk-4P6OAPBM.js +97 -0
  14. package/Build/Workers/chunk-4ZOLEPZK.js +519 -0
  15. package/Build/Workers/chunk-5EF3WWQG.js +352 -0
  16. package/Build/Workers/chunk-5FYUSABU.js +945 -0
  17. package/Build/Workers/chunk-5I76476T.js +288 -0
  18. package/Build/Workers/chunk-5PBZKBAP.js +511 -0
  19. package/Build/Workers/chunk-5RVAAW26.js +82 -0
  20. package/Build/Workers/chunk-5VWK76PO.js +511 -0
  21. package/Build/Workers/chunk-5WU37CUJ.js +630 -0
  22. package/Build/Workers/chunk-6EBDN5WS.js +97 -0
  23. package/Build/Workers/chunk-75HIWCEV.js +301 -0
  24. package/Build/Workers/chunk-77DBX23X.js +455 -0
  25. package/Build/Workers/chunk-7AMVPXZY.js +1992 -0
  26. package/Build/Workers/chunk-7BMDD6SM.js +124 -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-7OME2OKM.js +171 -0
  33. package/Build/Workers/chunk-7Y642MCO.js +352 -0
  34. package/Build/Workers/chunk-7ZFKBLUE.js +1054 -0
  35. package/Build/Workers/chunk-A2BROW3D.js +352 -0
  36. package/Build/Workers/chunk-A7LGY5XS.js +140 -0
  37. package/Build/Workers/chunk-AN2NVYL6.js +1483 -0
  38. package/Build/Workers/chunk-B4XOVZGA.js +476 -0
  39. package/Build/Workers/chunk-B7PT2VL5.js +630 -0
  40. package/Build/Workers/chunk-C6XQGBPV.js +476 -0
  41. package/Build/Workers/chunk-CAEC5DA2.js +57 -0
  42. package/Build/Workers/chunk-CBCOHH5O.js +837 -0
  43. package/Build/Workers/chunk-CDLPLYLV.js +1287 -0
  44. package/Build/Workers/chunk-CEKCKPFN.js +368 -0
  45. package/Build/Workers/chunk-CEMXKBQO.js +1800 -0
  46. package/Build/Workers/chunk-CHMDKP5L.js +2342 -0
  47. package/Build/Workers/chunk-CKW3STKA.js +1067 -0
  48. package/Build/Workers/chunk-CV5RICKT.js +1992 -0
  49. package/Build/Workers/chunk-CWGB3D4Z.js +257 -0
  50. package/Build/Workers/chunk-DBWSISJT.js +56 -0
  51. package/Build/Workers/chunk-DQEUGBGA.js +2719 -0
  52. package/Build/Workers/chunk-DSBSPPPJ.js +1344 -0
  53. package/Build/Workers/chunk-DSGLDRTI.js +278 -0
  54. package/Build/Workers/chunk-DUBE5G2H.js +497 -0
  55. package/Build/Workers/chunk-DXD7OPSP.js +1992 -0
  56. package/Build/Workers/chunk-DXECZBSA.js +368 -0
  57. package/Build/Workers/chunk-DZIRO6ZK.js +682 -0
  58. package/Build/Workers/chunk-E4CRPGX5.js +140 -0
  59. package/Build/Workers/chunk-E4IVMEBH.js +52 -0
  60. package/Build/Workers/chunk-E4PBNWWK.js +58 -0
  61. package/Build/Workers/chunk-E5MWOMVC.js +57 -0
  62. package/Build/Workers/chunk-ECN3VUMA.js +73 -0
  63. package/Build/Workers/chunk-ECSKVHUB.js +476 -0
  64. package/Build/Workers/chunk-EE3XBOQI.js +1483 -0
  65. package/Build/Workers/chunk-EHA2ZDPZ.js +415 -0
  66. package/Build/Workers/chunk-EKEKPAJF.js +454 -0
  67. package/Build/Workers/chunk-EL4B5CSQ.js +162 -0
  68. package/Build/Workers/chunk-EOHKUXPX.js +198 -0
  69. package/Build/Workers/chunk-ERENMHG2.js +754 -0
  70. package/Build/Workers/chunk-ESQGFRLZ.js +163 -0
  71. package/Build/Workers/chunk-FAYBQGKO.js +219 -0
  72. package/Build/Workers/chunk-FGCXPEZM.js +3201 -0
  73. package/Build/Workers/chunk-FHCRXPA6.js +44 -0
  74. package/Build/Workers/chunk-FQ42MT7M.js +58 -0
  75. package/Build/Workers/chunk-FQDYQG4P.js +1284 -0
  76. package/Build/Workers/chunk-FTCBY5HH.js +138 -0
  77. package/Build/Workers/chunk-FV4OWDV4.js +9230 -0
  78. package/Build/Workers/chunk-FYRNNQSL.js +280 -0
  79. package/Build/Workers/chunk-GI5RWJAY.js +101 -0
  80. package/Build/Workers/chunk-GNLMSDRO.js +945 -0
  81. package/Build/Workers/chunk-GVUJ6O3R.js +73 -0
  82. package/Build/Workers/chunk-HCGU7OCG.js +97 -0
  83. package/Build/Workers/chunk-HRIPVWSC.js +58 -0
  84. package/Build/Workers/chunk-IC3BR6SC.js +102 -0
  85. package/Build/Workers/chunk-IU3YAYPT.js +1344 -0
  86. package/Build/Workers/chunk-J7MZR7B2.js +1483 -0
  87. package/Build/Workers/chunk-JMF4ATAS.js +3794 -0
  88. package/Build/Workers/chunk-KEJKMITY.js +82 -0
  89. package/Build/Workers/chunk-KSIEJYNL.js +3822 -0
  90. package/Build/Workers/chunk-KT3GG7AW.js +754 -0
  91. package/Build/Workers/chunk-KW2QZDUS.js +147 -0
  92. package/Build/Workers/chunk-KYCEM22I.js +1800 -0
  93. package/Build/Workers/chunk-L6B5XPBL.js +73 -0
  94. package/Build/Workers/chunk-LGJXN2VP.js +352 -0
  95. package/Build/Workers/chunk-LJTQW46H.js +57 -0
  96. package/Build/Workers/chunk-LMQGYJME.js +672 -0
  97. package/Build/Workers/chunk-LOBYJQA4.js +76 -0
  98. package/Build/Workers/chunk-LOF32O7F.js +163 -0
  99. package/Build/Workers/chunk-LOTIJA7D.js +124 -0
  100. package/Build/Workers/chunk-LY2UG3HV.js +38 -0
  101. package/Build/Workers/chunk-M7Z3MPAX.js +973 -0
  102. package/Build/Workers/chunk-MHNLTQHO.js +3201 -0
  103. package/Build/Workers/chunk-ML7OMD72.js +2342 -0
  104. package/Build/Workers/chunk-NBTGXEMT.js +945 -0
  105. package/Build/Workers/chunk-NCPJBP24.js +140 -0
  106. package/Build/Workers/chunk-NFY5V6MR.js +102 -0
  107. package/Build/Workers/chunk-NQZC37F7.js +38 -0
  108. package/Build/Workers/chunk-O3X3D2Z3.js +352 -0
  109. package/Build/Workers/chunk-OBUIHPKF.js +352 -0
  110. package/Build/Workers/chunk-OYPSUED3.js +1067 -0
  111. package/Build/Workers/chunk-PAEWNYIV.js +138 -0
  112. package/Build/Workers/chunk-PANJ7YH6.js +102 -0
  113. package/Build/Workers/chunk-PCL3Y7H5.js +82 -0
  114. package/Build/Workers/chunk-PIIUGRQD.js +387 -0
  115. package/Build/Workers/chunk-POKD22OT.js +2719 -0
  116. package/Build/Workers/chunk-PQMA7MFS.js +9237 -0
  117. package/Build/Workers/chunk-PURIPUSY.js +682 -0
  118. package/Build/Workers/chunk-QIOOTLWN.js +56 -0
  119. package/Build/Workers/chunk-QQZPPXY4.js +3822 -0
  120. package/Build/Workers/chunk-QUPRALOD.js +101 -0
  121. package/Build/Workers/chunk-QXLQLGL2.js +1067 -0
  122. package/Build/Workers/chunk-RBEVHHXK.js +3201 -0
  123. package/Build/Workers/chunk-RC4YC3VU.js +278 -0
  124. package/Build/Workers/chunk-RGNNWVR6.js +171 -0
  125. package/Build/Workers/chunk-RHO5HV52.js +305 -0
  126. package/Build/Workers/chunk-SBBIEHYT.js +44 -0
  127. package/Build/Workers/chunk-SVCZUP5R.js +837 -0
  128. package/Build/Workers/chunk-SWVZTU6X.js +305 -0
  129. package/Build/Workers/chunk-T3EUPM5A.js +454 -0
  130. package/Build/Workers/chunk-TA6IU2XL.js +171 -0
  131. package/Build/Workers/chunk-TBHW5UME.js +973 -0
  132. package/Build/Workers/chunk-TLSGD5TR.js +280 -0
  133. package/Build/Workers/chunk-TOXDLWKZ.js +368 -0
  134. package/Build/Workers/chunk-TPOX6IOR.js +1054 -0
  135. package/Build/Workers/chunk-TZBM6TAB.js +124 -0
  136. package/Build/Workers/chunk-U2OY6MX6.js +398 -0
  137. package/Build/Workers/chunk-UCY4B5EV.js +288 -0
  138. package/Build/Workers/chunk-ULNBTI6R.js +138 -0
  139. package/Build/Workers/chunk-UMUS2AQQ.js +398 -0
  140. package/Build/Workers/chunk-UZ7GTP2L.js +162 -0
  141. package/Build/Workers/chunk-V52FEPCV.js +754 -0
  142. package/Build/Workers/chunk-VBEXZBG5.js +147 -0
  143. package/Build/Workers/chunk-VC76B6GM.js +959 -0
  144. package/Build/Workers/chunk-VCUOYHWC.js +519 -0
  145. package/Build/Workers/chunk-VJIL5H6K.js +2719 -0
  146. package/Build/Workers/chunk-VMF7KOGY.js +162 -0
  147. package/Build/Workers/chunk-W3C7OHXF.js +387 -0
  148. package/Build/Workers/chunk-W5OCKMPJ.js +101 -0
  149. package/Build/Workers/chunk-WB5GWYDP.js +455 -0
  150. package/Build/Workers/chunk-WN6MAL25.js +682 -0
  151. package/Build/Workers/chunk-WTR7KMQA.js +693 -0
  152. package/Build/Workers/chunk-WTTFMU3P.js +241 -0
  153. package/Build/Workers/chunk-WULONJZC.js +1800 -0
  154. package/Build/Workers/chunk-WZPMAVTV.js +511 -0
  155. package/Build/Workers/chunk-XHT5SVP4.js +52 -0
  156. package/Build/Workers/chunk-XITBARMZ.js +2342 -0
  157. package/Build/Workers/chunk-XLQZNQ4Z.js +163 -0
  158. package/Build/Workers/chunk-XZ6HDXKM.js +76 -0
  159. package/Build/Workers/chunk-Y7KVUJEB.js +219 -0
  160. package/Build/Workers/chunk-Y7NDFEQ3.js +398 -0
  161. package/Build/Workers/chunk-YBBQDYX2.js +301 -0
  162. package/Build/Workers/chunk-YHPYPVAB.js +837 -0
  163. package/Build/Workers/chunk-YNKK6BXY.js +454 -0
  164. package/Build/Workers/chunk-YRAJ74HR.js +305 -0
  165. package/Build/Workers/chunk-YULTZK5O.js +147 -0
  166. package/Build/Workers/chunk-YUNQYP3Z.js +9237 -0
  167. package/Build/Workers/chunk-Z6JV4DZG.js +1046 -0
  168. package/Build/Workers/chunk-Z7BONRW2.js +241 -0
  169. package/Build/Workers/chunk-ZK2R3DEJ.js +1054 -0
  170. package/Build/Workers/chunk-ZTK5EBUI.js +76 -0
  171. package/Build/Workers/chunk-ZZPDORJK.js +56 -0
  172. package/Build/Workers/combineGeometry.js +24 -24
  173. package/Build/Workers/createBoxGeometry.js +18 -18
  174. package/Build/Workers/createBoxOutlineGeometry.js +18 -18
  175. package/Build/Workers/createCircleGeometry.js +26 -26
  176. package/Build/Workers/createCircleOutlineGeometry.js +19 -19
  177. package/Build/Workers/createCoplanarPolygonGeometry.js +39 -39
  178. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +33 -33
  179. package/Build/Workers/createCorridorGeometry.js +36 -37
  180. package/Build/Workers/createCorridorOutlineGeometry.js +34 -35
  181. package/Build/Workers/createCylinderGeometry.js +20 -20
  182. package/Build/Workers/createCylinderOutlineGeometry.js +20 -20
  183. package/Build/Workers/createEllipseGeometry.js +26 -26
  184. package/Build/Workers/createEllipseOutlineGeometry.js +19 -19
  185. package/Build/Workers/createEllipsoidGeometry.js +19 -19
  186. package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -18
  187. package/Build/Workers/createFrustumGeometry.js +18 -18
  188. package/Build/Workers/createFrustumOutlineGeometry.js +20 -20
  189. package/Build/Workers/createGeometry.js +25 -24
  190. package/Build/Workers/createGroundPolylineGeometry.js +98 -34
  191. package/Build/Workers/createMvtTile.js +111 -19
  192. package/Build/Workers/createPlaneGeometry.js +18 -18
  193. package/Build/Workers/createPlaneOutlineGeometry.js +17 -17
  194. package/Build/Workers/createPolygonGeometry.js +36 -36
  195. package/Build/Workers/createPolygonOutlineGeometry.js +33 -33
  196. package/Build/Workers/createPolylineGeometry.js +28 -28
  197. package/Build/Workers/createPolylineVolumeGeometry.js +38 -36
  198. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +32 -31
  199. package/Build/Workers/createRectangleGeometry.js +29 -29
  200. package/Build/Workers/createRectangleOutlineGeometry.js +23 -23
  201. package/Build/Workers/createSimplePolylineGeometry.js +26 -26
  202. package/Build/Workers/createSphereGeometry.js +19 -19
  203. package/Build/Workers/createSphereOutlineGeometry.js +18 -18
  204. package/Build/Workers/createTaskProcessorWorker.js +3 -3
  205. package/Build/Workers/createVectorTileClampedPolylines.js +14 -14
  206. package/Build/Workers/createVectorTileGeometries.js +24 -24
  207. package/Build/Workers/createVectorTilePoints.js +13 -13
  208. package/Build/Workers/createVectorTilePolygons.js +22 -22
  209. package/Build/Workers/createVectorTilePolylines.js +14 -14
  210. package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +26 -26
  211. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +23 -23
  212. package/Build/Workers/createVerticesFromHeightmap.js +23 -23
  213. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +21 -21
  214. package/Build/Workers/createWallGeometry.js +26 -26
  215. package/Build/Workers/createWallOutlineGeometry.js +26 -26
  216. package/Build/Workers/decodeDraco.js +10 -10
  217. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +993 -2334
  218. package/Build/Workers/decodeI3S.js +10 -10
  219. package/Build/Workers/gaussianSplatSorter.js +4 -4
  220. package/Build/Workers/gaussianSplatTextureGenerator.js +4 -4
  221. package/Build/Workers/incrementallyBuildTerrainPicker.js +10 -10
  222. package/Build/Workers/transcodeKTX2.js +6 -6
  223. package/Build/Workers/transferTypedArrayTest.js +1 -1
  224. package/Build/Workers/upsampleQuantizedTerrainMesh.js +23 -23
  225. package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +26 -26
  226. package/Source/Core/ArcGISTiledElevationTerrainProvider.js +1 -5
  227. package/Source/Core/BoundingRectangle.js +6 -8
  228. package/Source/Core/BoundingSphere.js +0 -3
  229. package/Source/Core/Cartesian2.js +1 -1
  230. package/Source/Core/Cartesian3.js +1 -1
  231. package/Source/Core/Cartesian4.js +1 -1
  232. package/Source/Core/Cesium3DTilesTerrainGeometryProcessor.js +3 -4
  233. package/Source/Core/Color.js +1 -0
  234. package/Source/Core/ComponentDatatype.js +35 -0
  235. package/Source/Core/CoplanarPolygonGeometry.js +2 -2
  236. package/Source/Core/CorridorGeometry.js +2 -4
  237. package/Source/Core/CorridorOutlineGeometry.js +1 -3
  238. package/Source/Core/EarthOrientationParameters.js +2 -2
  239. package/Source/Core/EllipseGeometryLibrary.js +2 -2
  240. package/Source/Core/EllipsoidGeodesic.js +3 -3
  241. package/Source/Core/EllipsoidRhumbLine.js +1 -1
  242. package/Source/Core/GroundPolylineGeometry.js +99 -4
  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/PolylinePipeline.js +9 -2
  262. package/Source/Core/PolylineVolumeGeometryLibrary.js +1 -1
  263. package/Source/Core/Rectangle.js +7 -1
  264. package/Source/Core/RectangleOutlineGeometry.js +1 -1
  265. package/Source/Core/Resource.js +1 -1
  266. package/Source/Core/ScreenSpaceEventHandler.js +51 -41
  267. package/Source/Core/SimplePolylineGeometry.js +1 -1
  268. package/Source/Core/TerrainEncoding.js +2 -2
  269. package/Source/Core/TerrainMesh.js +3 -3
  270. package/Source/Core/TerrainPicker.js +180 -168
  271. package/Source/Core/TimeIntervalCollection.js +1 -3
  272. package/Source/Core/Tipsify.js +1 -1
  273. package/Source/Core/Transforms.js +5 -1
  274. package/Source/Core/VectorPipeline.js +1117 -0
  275. package/Source/Core/VectorProvider.js +429 -0
  276. package/Source/Core/WallOutlineGeometry.js +1 -1
  277. package/Source/Core/createColorRamp.js +37 -0
  278. package/Source/Core/getTimestamp.js +4 -2
  279. package/Source/Core/globalTypes.js +25 -0
  280. package/Source/Core/writeTextToCanvas.js +1 -0
  281. package/Source/DataSources/CompositeEntityCollection.js +0 -1
  282. package/Source/DataSources/CzmlDataSource.js +14 -0
  283. package/Source/DataSources/DataSourceDisplay.js +1 -1
  284. package/Source/DataSources/GeoJsonDataSource.js +0 -1
  285. package/Source/DataSources/GeometryVisualizer.js +1 -1
  286. package/Source/DataSources/KmlDataSource.js +529 -557
  287. package/Source/DataSources/PathGraphics.js +8 -1
  288. package/Source/DataSources/PathMode.js +27 -0
  289. package/Source/DataSources/PathVisualizer.js +298 -1
  290. package/Source/DataSources/PolylineGeometryUpdater.js +125 -7
  291. package/Source/DataSources/PolylineVisualizer.js +1 -1
  292. package/Source/DataSources/StaticOutlineGeometryBatch.js +1 -1
  293. package/Source/Renderer/AutomaticUniforms.js +23 -0
  294. package/Source/Renderer/Context.js +9 -3
  295. package/Source/Renderer/DrawCommand.js +22 -0
  296. package/Source/Renderer/Framebuffer.js +4 -0
  297. package/Source/Renderer/Pass.js +11 -9
  298. package/Source/Renderer/Texture.js +12 -1
  299. package/Source/Renderer/UniformState.js +7 -0
  300. package/Source/Renderer/VertexArray.js +1 -1
  301. package/Source/Renderer/createUniform.js +346 -239
  302. package/Source/Renderer/createUniformArray.js +494 -381
  303. package/Source/Scene/ArcGisMapServerImageryProvider.js +0 -5
  304. package/Source/Scene/ArcGisMapService.js +1 -1
  305. package/Source/Scene/Billboard.js +2 -1
  306. package/Source/Scene/BillboardCollection.js +15 -5
  307. package/Source/Scene/BillboardTexture.js +5 -3
  308. package/Source/Scene/BufferPointCollection.js +11 -1
  309. package/Source/Scene/BufferPolygonCollection.js +26 -0
  310. package/Source/Scene/BufferPolylineCollection.js +2 -0
  311. package/Source/Scene/BufferPrimitiveCollection.js +105 -32
  312. package/Source/Scene/Camera.js +137 -8
  313. package/Source/Scene/CameraEventAggregator.js +30 -18
  314. package/Source/Scene/CameraFlightPath.js +17 -0
  315. package/Source/Scene/Cesium3DTile.js +102 -4
  316. package/Source/Scene/Cesium3DTileContent.js +195 -254
  317. package/Source/Scene/Cesium3DTileContentFactory.js +10 -2
  318. package/Source/Scene/Cesium3DTileOptimizations.js +4 -6
  319. package/Source/Scene/Cesium3DTileStyle.js +40 -0
  320. package/Source/Scene/Cesium3DTileset.js +213 -8
  321. package/Source/Scene/Cesium3DTilesetTraversal.js +14 -0
  322. package/Source/Scene/ClippingPlaneCollection.js +4 -4
  323. package/Source/Scene/ClippingPolygon.js +2 -0
  324. package/Source/Scene/ClippingPolygonCollection.js +2 -2
  325. package/Source/Scene/ColumbusWorlds.js +190 -0
  326. package/Source/Scene/Composite3DTileContent.js +254 -292
  327. package/Source/Scene/Controllers/Controller.js +63 -0
  328. package/Source/Scene/Controllers/ControllerHost.js +78 -0
  329. package/Source/Scene/Controllers/HybridScreenSpacePanCameraController.js +106 -0
  330. package/Source/Scene/Controllers/MouseButton.js +32 -0
  331. package/Source/Scene/Controllers/ScreenSpaceElevatorCameraController.js +295 -0
  332. package/Source/Scene/Controllers/ScreenSpaceInputBindings.js +154 -0
  333. package/Source/Scene/Controllers/ScreenSpaceMapCameraController.js +310 -0
  334. package/Source/Scene/Controllers/ScreenSpaceTiltOrbitCameraController.js +642 -0
  335. package/Source/Scene/Controllers/ScreenSpaceZoomCameraController.js +431 -0
  336. package/Source/Scene/Controllers/defaultPickWorldPosition.js +84 -0
  337. package/Source/Scene/DerivedCommand.js +98 -0
  338. package/Source/Scene/EdgeDisplayMode.js +50 -0
  339. package/Source/Scene/EdgeFramebuffer.js +1 -5
  340. package/Source/Scene/Empty3DTileContent.js +100 -132
  341. package/Source/Scene/Expression.js +6 -8
  342. package/Source/Scene/FrameState.js +27 -0
  343. package/Source/Scene/GaussianSplat3DTileContent.js +436 -478
  344. package/Source/Scene/GeoJsonPrimitive.js +874 -0
  345. package/Source/Scene/Geometry3DTileContent.js +151 -185
  346. package/Source/Scene/Globe.js +110 -22
  347. package/Source/Scene/GlobeDepth.js +243 -6
  348. package/Source/Scene/GlobeSurfaceShaderSet.js +637 -540
  349. package/Source/Scene/GlobeSurfaceTile.js +575 -398
  350. package/Source/Scene/GlobeSurfaceTileProvider.js +2289 -1842
  351. package/Source/Scene/GltfBufferViewLoader.js +3 -3
  352. package/Source/Scene/GltfLoader.js +146 -3
  353. package/Source/Scene/GltfLoaderUtil.js +20 -4
  354. package/Source/Scene/GltfPipeline/forEachTextureInMaterial.js +10 -0
  355. package/Source/Scene/GltfPipeline/removeUnusedElements.js +21 -11
  356. package/Source/Scene/GltfSpzLoader.js +1 -1
  357. package/Source/Scene/GltfVertexBufferLoader.js +6 -3
  358. package/Source/Scene/GroundPolylinePrimitive.js +2 -1
  359. package/Source/Scene/I3SDataProvider.js +1 -1
  360. package/Source/Scene/I3SLayer.js +1 -1
  361. package/Source/Scene/I3SNode.js +2 -2
  362. package/Source/Scene/ImageryLayer.js +2 -2
  363. package/Source/Scene/ImageryLayerCollection.js +190 -6
  364. package/Source/Scene/Implicit3DTileContent.js +192 -216
  365. package/Source/Scene/ImplicitTileCoordinates.js +17 -0
  366. package/Source/Scene/IonImageryProvider.js +1 -5
  367. package/Source/Scene/Label.js +4 -4
  368. package/Source/Scene/LabelCollection.js +4 -1
  369. package/Source/Scene/MVTDataProvider.js +555 -0
  370. package/Source/Scene/Material.js +1 -0
  371. package/Source/Scene/Model/B3dmLoader.js +1 -2
  372. package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +82 -312
  373. package/Source/Scene/Model/Extensions/Gpm/GltfGpmLoader.js +4 -0
  374. package/Source/Scene/Model/I3dmLoader.js +1 -1
  375. package/Source/Scene/Model/InstancingPipelineStage.js +4 -7
  376. package/Source/Scene/Model/MaterialPipelineStage.js +124 -1
  377. package/Source/Scene/Model/Model.js +45 -10
  378. package/Source/Scene/Model/Model3DTileContent.js +424 -458
  379. package/Source/Scene/Model/ModelClippingPlanesPipelineStage.js +28 -1
  380. package/Source/Scene/Model/ModelDrawCommand.js +180 -8
  381. package/Source/Scene/Model/ModelDrawCommands.js +4 -0
  382. package/Source/Scene/Model/ModelSceneGraph.js +21 -0
  383. package/Source/Scene/Model/ModelUtility.js +5 -0
  384. package/Source/Scene/Model/PickingPipelineStage.js +29 -0
  385. package/Source/Scene/Model/PrimitiveRenderResources.js +24 -0
  386. package/Source/Scene/Model/createVectorTileBuffersFromModelComponents.js +645 -153
  387. package/Source/Scene/ModelComponents.js +112 -0
  388. package/Source/Scene/Multiple3DTileContent.js +291 -334
  389. package/Source/Scene/MvtLabelCandidates.js +295 -0
  390. package/Source/Scene/MvtLabelManager.js +1069 -0
  391. package/Source/Scene/Picking.js +19 -3
  392. package/Source/Scene/PlanarFillIdFramebuffer.js +172 -0
  393. package/Source/Scene/PntsParser.js +1 -1
  394. package/Source/Scene/Polyline.js +32 -5
  395. package/Source/Scene/PolylineCollection.js +39 -0
  396. package/Source/Scene/PostProcessStage.js +4 -2
  397. package/Source/Scene/Primitive.js +12 -13
  398. package/Source/Scene/PrimitivePipeline.js +158 -28
  399. package/Source/Scene/QuadtreePrimitive.js +3 -2
  400. package/Source/Scene/ResourceCache.js +7 -4
  401. package/Source/Scene/ResourceCacheKey.js +21 -18
  402. package/Source/Scene/Scene.js +655 -6
  403. package/Source/Scene/SceneTransforms.js +18 -0
  404. package/Source/Scene/ScreenSpaceCameraController.js +12 -3
  405. package/Source/Scene/ShadowMap.js +9 -3
  406. package/Source/Scene/ShadowMapShader.js +50 -2
  407. package/Source/Scene/SnapFramebuffer.js +121 -0
  408. package/Source/Scene/Snapping.js +184 -0
  409. package/Source/Scene/TerrainFillMesh.js +3 -2
  410. package/Source/Scene/Tileset3DTileContent.js +113 -146
  411. package/Source/Scene/UrlTemplate3DTilesDataProvider.js +543 -0
  412. package/Source/Scene/Vector3DTileContent.js +207 -237
  413. package/Source/Scene/VectorGltf3DTileContent.js +185 -45
  414. package/Source/Scene/View.js +10 -8
  415. package/Source/Scene/VoxelPrimitive.js +159 -175
  416. package/Source/Scene/VoxelProvider.js +64 -91
  417. package/Source/Scene/VoxelTraversal.js +1 -1
  418. package/Source/Scene/buildVectorGltfFromMVT.js +1208 -0
  419. package/Source/Scene/buildVoxelCustomShader.js +199 -0
  420. package/Source/Scene/createElevationBandMaterial.js +1 -1
  421. package/Source/Scene/decodeMVT.js +877 -0
  422. package/Source/Scene/findMeshoptExtension.js +23 -0
  423. package/Source/Scene/renderBufferPointCollection.js +114 -64
  424. package/Source/Scene/renderBufferPolygonCollection.js +245 -53
  425. package/Source/Scene/renderBufferPolylineCollection.js +271 -145
  426. package/Source/Shaders/BillboardCollectionVS.glsl +23 -25
  427. package/Source/Shaders/BillboardCollectionVS.js +23 -25
  428. package/Source/Shaders/BufferPointMaterialFS.glsl +1 -0
  429. package/Source/Shaders/BufferPointMaterialFS.js +1 -0
  430. package/Source/Shaders/BufferPointMaterialVS.glsl +19 -9
  431. package/Source/Shaders/BufferPointMaterialVS.js +20 -10
  432. package/Source/Shaders/BufferPolygonMaterialFS.glsl +13 -0
  433. package/Source/Shaders/BufferPolygonMaterialFS.js +13 -0
  434. package/Source/Shaders/BufferPolygonMaterialVS.glsl +22 -4
  435. package/Source/Shaders/BufferPolygonMaterialVS.js +23 -5
  436. package/Source/Shaders/BufferPolylineMaterialVS.glsl +16 -2
  437. package/Source/Shaders/BufferPolylineMaterialVS.js +17 -3
  438. package/Source/Shaders/Builtin/Constants/passCesium3DTile.glsl +1 -1
  439. package/Source/Shaders/Builtin/Constants/passCesium3DTile.js +1 -1
  440. package/Source/Shaders/Builtin/Constants/passCesium3DTileClassification.glsl +1 -1
  441. package/Source/Shaders/Builtin/Constants/passCesium3DTileClassification.js +1 -1
  442. package/Source/Shaders/Builtin/Constants/passCesium3DTileClassificationIgnoreShow.glsl +1 -1
  443. package/Source/Shaders/Builtin/Constants/passCesium3DTileClassificationIgnoreShow.js +1 -1
  444. package/Source/Shaders/Builtin/Constants/passCesium3DTileEdgesDirect.glsl +9 -0
  445. package/Source/Shaders/Builtin/Constants/passCesium3DTileEdgesDirect.js +11 -0
  446. package/Source/Shaders/Builtin/Constants/passCesium3DTilePlanarFillId.glsl +9 -0
  447. package/Source/Shaders/Builtin/Constants/passCesium3DTilePlanarFillId.js +11 -0
  448. package/Source/Shaders/Builtin/Constants/passClassification.glsl +1 -1
  449. package/Source/Shaders/Builtin/Constants/passClassification.js +1 -1
  450. package/Source/Shaders/Builtin/Constants/passGaussianSplats.glsl +1 -1
  451. package/Source/Shaders/Builtin/Constants/passGaussianSplats.js +1 -1
  452. package/Source/Shaders/Builtin/Constants/passOpaque.glsl +1 -1
  453. package/Source/Shaders/Builtin/Constants/passOpaque.js +1 -1
  454. package/Source/Shaders/Builtin/Constants/passOverlay.glsl +1 -1
  455. package/Source/Shaders/Builtin/Constants/passOverlay.js +1 -1
  456. package/Source/Shaders/Builtin/Constants/passTranslucent.glsl +1 -1
  457. package/Source/Shaders/Builtin/Constants/passTranslucent.js +1 -1
  458. package/Source/Shaders/Builtin/Constants/passVoxels.glsl +1 -1
  459. package/Source/Shaders/Builtin/Constants/passVoxels.js +1 -1
  460. package/Source/Shaders/Builtin/CzmBuiltins.js +4 -0
  461. package/Source/Shaders/GlobeFS.glsl +10 -6
  462. package/Source/Shaders/GlobeFS.js +10 -6
  463. package/Source/Shaders/Materials/PolylineGlowMaterial.glsl +1 -1
  464. package/Source/Shaders/Materials/PolylineGlowMaterial.js +1 -1
  465. package/Source/Shaders/Model/EdgeVisibilityStageVS.glsl +0 -1
  466. package/Source/Shaders/Model/EdgeVisibilityStageVS.js +0 -1
  467. package/Source/Shaders/Model/MaterialStageFS.glsl +8 -2
  468. package/Source/Shaders/Model/MaterialStageFS.js +8 -2
  469. package/Source/Shaders/Model/ModelFS.glsl +105 -0
  470. package/Source/Shaders/Model/ModelFS.js +105 -0
  471. package/Source/Shaders/PolylineShadowVolumeFS.glsl +14 -0
  472. package/Source/Shaders/PolylineShadowVolumeFS.js +14 -0
  473. package/Source/Shaders/RestoreDepth.glsl +8 -0
  474. package/Source/Shaders/RestoreDepth.js +10 -0
  475. package/Source/Shaders/VectorCommon.glsl +178 -0
  476. package/Source/Shaders/VectorCommon.js +180 -0
  477. package/Source/ThirdParty/zip-module.wasm +0 -0
  478. package/Source/Widget/CesiumWidget.js +30 -0
  479. package/Source/Workers/createMvtTile.js +39 -0
  480. package/Source/Workers/decodeGoogleEarthEnterprisePacket.js +2 -2
  481. package/Source/Workers/incrementallyBuildTerrainPicker.js +2 -0
  482. package/index.d.ts +535 -1393
  483. package/index.js +125 -93
  484. package/package.json +13 -13
@@ -27,219 +27,225 @@ import BoundingVolumeSemantics from "./BoundingVolumeSemantics.js";
27
27
  * </p>
28
28
  * This object is normally not instantiated directly, use {@link Implicit3DTileContent.fromSubtreeJson}.
29
29
  *
30
- * @alias Implicit3DTileContent
31
- * @constructor
32
- *
33
- * @param {Cesium3DTileset} tileset The tileset this content belongs to
34
- * @param {Cesium3DTile} tile The tile this content belongs to.
35
- * @param {Resource} resource The resource for the tileset
36
- * @param {object} [json] The JSON object containing the subtree. Mutually exclusive with arrayBuffer.
37
- * @param {ArrayBuffer} [arrayBuffer] The array buffer that stores the content payload. Mutually exclusive with json.
38
- * @param {number} [byteOffset=0] The offset into the array buffer, if one was provided
39
- *
40
- * @exception {DeveloperError} One of json and arrayBuffer must be defined.
41
- *
30
+ * @implements Cesium3DTileContent
42
31
  * @private
43
32
  * @experimental This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.
44
33
  */
45
- function Implicit3DTileContent(tileset, tile, resource) {
46
- //>>includeStart('debug', pragmas.debug);
47
- Check.defined("tile.implicitTileset", tile.implicitTileset);
48
- Check.defined("tile.implicitCoordinates", tile.implicitCoordinates);
49
- //>>includeEnd('debug');
50
-
51
- const implicitTileset = tile.implicitTileset;
52
- const implicitCoordinates = tile.implicitCoordinates;
53
-
54
- this._implicitTileset = implicitTileset;
55
- this._implicitCoordinates = implicitCoordinates;
56
- this._implicitSubtree = undefined;
57
- this._tileset = tileset;
58
- this._tile = tile;
59
- this._resource = resource;
60
-
61
- this._metadata = undefined;
62
-
63
- this.featurePropertiesDirty = false;
64
- this._group = undefined;
65
-
66
- const templateValues = implicitCoordinates.getTemplateValues();
67
- const subtreeResource = implicitTileset.subtreeUriTemplate.getDerivedResource(
68
- {
69
- templateValues: templateValues,
70
- },
71
- );
72
- this._url = subtreeResource.getUrlComponent(true);
73
-
74
- this._ready = false;
75
- }
34
+ class Implicit3DTileContent {
35
+ /**
36
+ * @param {Cesium3DTileset} tileset The tileset this content belongs to
37
+ * @param {Cesium3DTile} tile The tile this content belongs to.
38
+ * @param {Resource} resource The resource for the tileset
39
+ * @param {object} [json] The JSON object containing the subtree. Mutually exclusive with arrayBuffer.
40
+ * @param {ArrayBuffer} [arrayBuffer] The array buffer that stores the content payload. Mutually exclusive with json.
41
+ * @param {number} [byteOffset=0] The offset into the array buffer, if one was provided
42
+ *
43
+ * @exception {DeveloperError} One of json and arrayBuffer must be defined.
44
+ */
45
+ constructor(tileset, tile, resource) {
46
+ //>>includeStart('debug', pragmas.debug);
47
+ Check.defined("tile.implicitTileset", tile.implicitTileset);
48
+ Check.defined("tile.implicitCoordinates", tile.implicitCoordinates);
49
+ //>>includeEnd('debug');
50
+
51
+ const implicitTileset = tile.implicitTileset;
52
+ const implicitCoordinates = tile.implicitCoordinates;
53
+
54
+ this._implicitTileset = implicitTileset;
55
+ this._implicitCoordinates = implicitCoordinates;
56
+ this._implicitSubtree = undefined;
57
+ this._tileset = tileset;
58
+ this._tile = tile;
59
+ this._resource = resource;
60
+
61
+ this._metadata = undefined;
62
+
63
+ this.featurePropertiesDirty = false;
64
+ this._group = undefined;
65
+
66
+ const templateValues = implicitCoordinates.getTemplateValues();
67
+ const subtreeResource =
68
+ implicitTileset.subtreeUriTemplate.getDerivedResource({
69
+ templateValues: templateValues,
70
+ });
71
+ this._url = subtreeResource.getUrlComponent(true);
72
+
73
+ this._ready = false;
74
+ }
76
75
 
77
- Object.defineProperties(Implicit3DTileContent.prototype, {
78
- featuresLength: {
79
- get: function () {
80
- return 0;
81
- },
82
- },
76
+ get featuresLength() {
77
+ return 0;
78
+ }
83
79
 
84
- pointsLength: {
85
- get: function () {
86
- return 0;
87
- },
88
- },
80
+ get pointsLength() {
81
+ return 0;
82
+ }
89
83
 
90
- trianglesLength: {
91
- get: function () {
92
- return 0;
93
- },
94
- },
84
+ get trianglesLength() {
85
+ return 0;
86
+ }
95
87
 
96
- geometryByteLength: {
97
- get: function () {
98
- return 0;
99
- },
100
- },
88
+ get geometryByteLength() {
89
+ return 0;
90
+ }
101
91
 
102
- texturesByteLength: {
103
- get: function () {
104
- return 0;
105
- },
106
- },
92
+ get texturesByteLength() {
93
+ return 0;
94
+ }
107
95
 
108
- batchTableByteLength: {
109
- get: function () {
110
- return 0;
111
- },
112
- },
96
+ get batchTableByteLength() {
97
+ return 0;
98
+ }
113
99
 
114
- innerContents: {
115
- get: function () {
116
- return undefined;
117
- },
118
- },
100
+ get innerContents() {
101
+ return undefined;
102
+ }
119
103
 
120
104
  /**
121
105
  * Returns true when the tile's content is ready to render; otherwise false
122
106
  *
123
- * @memberof Implicit3DTileContent.prototype
124
107
  *
125
108
  * @type {boolean}
126
109
  * @readonly
127
110
  * @private
128
111
  */
129
- ready: {
130
- get: function () {
131
- return this._ready;
132
- },
133
- },
112
+ get ready() {
113
+ return this._ready;
114
+ }
134
115
 
135
- tileset: {
136
- get: function () {
137
- return this._tileset;
138
- },
139
- },
116
+ get tileset() {
117
+ return this._tileset;
118
+ }
140
119
 
141
- tile: {
142
- get: function () {
143
- return this._tile;
144
- },
145
- },
120
+ get tile() {
121
+ return this._tile;
122
+ }
146
123
 
147
- url: {
148
- get: function () {
149
- return this._url;
150
- },
151
- },
124
+ get url() {
125
+ return this._url;
126
+ }
152
127
 
153
128
  /**
154
129
  * Part of the {@link Cesium3DTileContent} interface. <code>Implicit3DTileContent</code>
155
130
  * always returns <code>undefined</code>. Only transcoded tiles have content metadata.
156
- * @memberof Implicit3DTileContent.prototype
157
131
  * @private
158
132
  */
159
- metadata: {
160
- get: function () {
161
- return undefined;
162
- },
163
- set: function () {
164
- //>>includeStart('debug', pragmas.debug);
165
- throw new DeveloperError("Implicit3DTileContent cannot have metadata");
166
- //>>includeEnd('debug');
167
- },
168
- },
169
-
170
- batchTable: {
171
- get: function () {
172
- return undefined;
173
- },
174
- },
133
+ get metadata() {
134
+ return undefined;
135
+ }
175
136
 
176
- group: {
177
- get: function () {
178
- return this._group;
179
- },
180
- set: function (value) {
181
- this._group = value;
182
- },
183
- },
184
- });
137
+ set metadata(_) {
138
+ //>>includeStart('debug', pragmas.debug);
139
+ throw new DeveloperError("Implicit3DTileContent cannot have metadata");
140
+ //>>includeEnd('debug');
141
+ }
185
142
 
186
- /**
187
- * Initialize the implicit content by parsing the subtree resource and setting
188
- * up a promise chain to expand the immediate subtree.
189
- *
190
- * @param {Cesium3DTileset} tileset The tileset this content belongs to
191
- * @param {Cesium3DTile} tile The tile this content belongs to.
192
- * @param {Resource} resource The resource for the tileset
193
- * @param {object} [json] The JSON containing the subtree. Mutually exclusive with arrayBuffer.
194
- * @param {ArrayBuffer} [arrayBuffer] The ArrayBuffer containing a subtree binary. Mutually exclusive with json.
195
- * @param {number} [byteOffset=0] The byte offset into the arrayBuffer
196
- * @return {Promise<Implicit3DTileContent>}
197
- *
198
- * @exception {DeveloperError} One of json and arrayBuffer must be defined.
199
- *
200
- * @private
201
- */
202
- Implicit3DTileContent.fromSubtreeJson = async function (
203
- tileset,
204
- tile,
205
- resource,
206
- json,
207
- arrayBuffer,
208
- byteOffset,
209
- ) {
210
- //>>includeStart('debug', pragmas.debug);
211
- Check.defined("tile.implicitTileset", tile.implicitTileset);
212
- Check.defined("tile.implicitCoordinates", tile.implicitCoordinates);
213
- if (defined(json) === defined(arrayBuffer)) {
214
- throw new DeveloperError("One of json and arrayBuffer must be defined.");
143
+ get batchTable() {
144
+ return undefined;
215
145
  }
216
- //>>includeEnd('debug');
217
146
 
218
- byteOffset = byteOffset ?? 0;
219
- let uint8Array;
220
- if (defined(arrayBuffer)) {
221
- uint8Array = new Uint8Array(arrayBuffer, byteOffset);
147
+ get group() {
148
+ return this._group;
222
149
  }
223
150
 
224
- const implicitTileset = tile.implicitTileset;
225
- const implicitCoordinates = tile.implicitCoordinates;
151
+ set group(value) {
152
+ this._group = value;
153
+ }
226
154
 
227
- const subtree = await ImplicitSubtree.fromSubtreeJson(
155
+ /**
156
+ * Initialize the implicit content by parsing the subtree resource and setting
157
+ * up a promise chain to expand the immediate subtree.
158
+ *
159
+ * @param {Cesium3DTileset} tileset The tileset this content belongs to
160
+ * @param {Cesium3DTile} tile The tile this content belongs to.
161
+ * @param {Resource} resource The resource for the tileset
162
+ * @param {object} [json] The JSON containing the subtree. Mutually exclusive with arrayBuffer.
163
+ * @param {ArrayBuffer} [arrayBuffer] The ArrayBuffer containing a subtree binary. Mutually exclusive with json.
164
+ * @param {number} [byteOffset=0] The byte offset into the arrayBuffer
165
+ * @return {Promise<Implicit3DTileContent>}
166
+ *
167
+ * @exception {DeveloperError} One of json and arrayBuffer must be defined.
168
+ *
169
+ * @private
170
+ */
171
+ static async fromSubtreeJson(
172
+ tileset,
173
+ tile,
228
174
  resource,
229
175
  json,
230
- uint8Array,
231
- implicitTileset,
232
- implicitCoordinates,
233
- );
176
+ arrayBuffer,
177
+ byteOffset,
178
+ ) {
179
+ //>>includeStart('debug', pragmas.debug);
180
+ Check.defined("tile.implicitTileset", tile.implicitTileset);
181
+ Check.defined("tile.implicitCoordinates", tile.implicitCoordinates);
182
+ if (defined(json) === defined(arrayBuffer)) {
183
+ throw new DeveloperError("One of json and arrayBuffer must be defined.");
184
+ }
185
+ //>>includeEnd('debug');
234
186
 
235
- const content = new Implicit3DTileContent(tileset, tile, resource);
187
+ byteOffset = byteOffset ?? 0;
188
+ let uint8Array;
189
+ if (defined(arrayBuffer)) {
190
+ uint8Array = new Uint8Array(arrayBuffer, byteOffset);
191
+ }
236
192
 
237
- content._implicitSubtree = subtree;
238
- expandSubtree(content, subtree);
239
- content._ready = true;
193
+ const implicitTileset = tile.implicitTileset;
194
+ const implicitCoordinates = tile.implicitCoordinates;
240
195
 
241
- return content;
242
- };
196
+ const subtree = await ImplicitSubtree.fromSubtreeJson(
197
+ resource,
198
+ json,
199
+ uint8Array,
200
+ implicitTileset,
201
+ implicitCoordinates,
202
+ );
203
+
204
+ const content = new Implicit3DTileContent(tileset, tile, resource);
205
+
206
+ content._implicitSubtree = subtree;
207
+ expandSubtree(content, subtree);
208
+ content._ready = true;
209
+
210
+ return content;
211
+ }
212
+
213
+ /**
214
+ * Part of the {@link Cesium3DTileContent} interface. <code>Implicit3DTileContent</code>
215
+ * always returns <code>false</code> since a tile of this type does not have any features.
216
+ * @private
217
+ */
218
+ hasProperty(batchId, name) {
219
+ return false;
220
+ }
221
+
222
+ /**
223
+ * Part of the {@link Cesium3DTileContent} interface. <code>Implicit3DTileContent</code>
224
+ * always returns <code>undefined</code> since a tile of this type does not have any features.
225
+ * @private
226
+ */
227
+ getFeature(batchId) {
228
+ return undefined;
229
+ }
230
+
231
+ applyDebugSettings(enabled, color) {}
232
+ applyStyle(style) {}
233
+ update(tileset, frameState) {}
234
+
235
+ pick(ray, frameState, result) {
236
+ return undefined;
237
+ }
238
+
239
+ isDestroyed() {
240
+ return false;
241
+ }
242
+
243
+ destroy() {
244
+ this._implicitSubtree =
245
+ this._implicitSubtree && this._implicitSubtree.destroy();
246
+ return destroyObject(this);
247
+ }
248
+ }
243
249
 
244
250
  /**
245
251
  * Expand a single subtree placeholder tile. This transcodes the subtree into
@@ -304,7 +310,14 @@ function expandSubtree(content, subtree) {
304
310
  */
305
311
  function listChildSubtrees(content, subtree, bottomRow) {
306
312
  const results = [];
307
- const branchingFactor = content._implicitTileset.branchingFactor;
313
+ const implicitTileset = content._implicitTileset;
314
+ const nextSubtreeLevel =
315
+ content._implicitCoordinates.level + implicitTileset.subtreeLevels;
316
+ if (nextSubtreeLevel >= implicitTileset.availableLevels) {
317
+ return results;
318
+ }
319
+
320
+ const branchingFactor = implicitTileset.branchingFactor;
308
321
  for (let i = 0; i < bottomRow.length; i++) {
309
322
  const leafTile = bottomRow[i];
310
323
  if (!defined(leafTile)) {
@@ -367,7 +380,11 @@ function transcodeSubtreeTiles(content, subtree, placeholderTile, childIndex) {
367
380
  let currentRow = [];
368
381
 
369
382
  const implicitTileset = content._implicitTileset;
370
- for (let level = 1; level < implicitTileset.subtreeLevels; level++) {
383
+ const availableSubtreeLevels = Math.min(
384
+ implicitTileset.subtreeLevels,
385
+ implicitTileset.availableLevels - content._implicitCoordinates.level,
386
+ );
387
+ for (let level = 1; level < availableSubtreeLevels; level++) {
371
388
  const levelOffset = subtree.getLevelOffset(level);
372
389
  const numberOfChildren = implicitTileset.branchingFactor * parentRow.length;
373
390
  for (
@@ -1157,47 +1174,6 @@ function makeTile(content, baseResource, tileJson, parentTile) {
1157
1174
  return new Cesium3DTile(content._tileset, baseResource, tileJson, parentTile);
1158
1175
  }
1159
1176
 
1160
- /**
1161
- * Part of the {@link Cesium3DTileContent} interface. <code>Implicit3DTileContent</code>
1162
- * always returns <code>false</code> since a tile of this type does not have any features.
1163
- * @private
1164
- */
1165
- Implicit3DTileContent.prototype.hasProperty = function (batchId, name) {
1166
- return false;
1167
- };
1168
-
1169
- /**
1170
- * Part of the {@link Cesium3DTileContent} interface. <code>Implicit3DTileContent</code>
1171
- * always returns <code>undefined</code> since a tile of this type does not have any features.
1172
- * @private
1173
- */
1174
- Implicit3DTileContent.prototype.getFeature = function (batchId) {
1175
- return undefined;
1176
- };
1177
-
1178
- Implicit3DTileContent.prototype.applyDebugSettings = function (
1179
- enabled,
1180
- color,
1181
- ) {};
1182
-
1183
- Implicit3DTileContent.prototype.applyStyle = function (style) {};
1184
-
1185
- Implicit3DTileContent.prototype.update = function (tileset, frameState) {};
1186
-
1187
- Implicit3DTileContent.prototype.pick = function (ray, frameState, result) {
1188
- return undefined;
1189
- };
1190
-
1191
- Implicit3DTileContent.prototype.isDestroyed = function () {
1192
- return false;
1193
- };
1194
-
1195
- Implicit3DTileContent.prototype.destroy = function () {
1196
- this._implicitSubtree =
1197
- this._implicitSubtree && this._implicitSubtree.destroy();
1198
- return destroyObject(this);
1199
- };
1200
-
1201
1177
  // Exposed for testing
1202
1178
  Implicit3DTileContent._deriveBoundingBox = deriveBoundingBox;
1203
1179
  Implicit3DTileContent._deriveBoundingRegion = deriveBoundingRegion;
@@ -4,6 +4,8 @@ import DeveloperError from "../Core/DeveloperError.js";
4
4
  import MortonOrder from "../Core/MortonOrder.js";
5
5
  import ImplicitSubdivisionScheme from "./ImplicitSubdivisionScheme.js";
6
6
 
7
+ const webMercatorMaximumLatitude = Math.atan(Math.sinh(Math.PI));
8
+
7
9
  /**
8
10
  * The coordinates for a tile in an implicit tileset. The coordinates
9
11
  * are (level, x, y) for quadtrees or (level, x, y, z) for octrees.
@@ -540,6 +542,7 @@ ImplicitTileCoordinates.prototype.getTemplateValues = function () {
540
542
  level: this.level,
541
543
  x: this.x,
542
544
  y: this.y,
545
+ webMercatorY: getWebMercatorY(this.level, this.y),
543
546
  };
544
547
  if (this.subdivisionScheme === ImplicitSubdivisionScheme.OCTREE) {
545
548
  values.z = this.z;
@@ -548,6 +551,20 @@ ImplicitTileCoordinates.prototype.getTemplateValues = function () {
548
551
  return values;
549
552
  };
550
553
 
554
+ /** @param {number} level @param {number} implicitY */
555
+ function getWebMercatorY(level, implicitY) {
556
+ const dimension = Math.pow(2, level);
557
+ const latitude =
558
+ -webMercatorMaximumLatitude +
559
+ (2.0 * webMercatorMaximumLatitude * (implicitY + 0.5)) / dimension;
560
+ const normalizedY = (1.0 - Math.asinh(Math.tan(latitude)) / Math.PI) * 0.5;
561
+ return CesiumMath.clamp(
562
+ Math.floor(normalizedY * dimension),
563
+ 0,
564
+ dimension - 1,
565
+ );
566
+ }
567
+
551
568
  const scratchCoordinatesArray = [0, 0, 0];
552
569
 
553
570
  /**
@@ -26,17 +26,13 @@ import IonImageryProviderFactory from "./IonImageryProviderFactory.js";
26
26
  * @alias IonImageryProvider
27
27
  * @constructor
28
28
  *
29
- * @param {IonImageryProvider.ConstructorOptions} [options] Object describing initialization options
30
- *
31
29
  * @example
32
30
  * const imageryLayer = Cesium.ImageryLayer.fromProviderAsync(Cesium.IonImageryProvider.fromAssetId(3812));
33
31
  * viewer.imageryLayers.add(imageryLayer);
34
32
  *
35
33
  * @see IonImageryProvider.fromAssetId
36
34
  */
37
- function IonImageryProvider(options) {
38
- options = options ?? Frozen.EMPTY_OBJECT;
39
-
35
+ function IonImageryProvider() {
40
36
  this._defaultAlpha = undefined;
41
37
  this._defaultNightAlpha = undefined;
42
38
  this._defaultDayAlpha = undefined;
@@ -1282,10 +1282,10 @@ Label.getScreenSpaceBoundingBox = function (
1282
1282
  screenSpacePosition,
1283
1283
  result,
1284
1284
  ) {
1285
- let x = 0;
1286
- let y = 0;
1287
- let width = 0;
1288
- let height = 0;
1285
+ let x;
1286
+ let y;
1287
+ let width;
1288
+ let height;
1289
1289
  const scale = label.totalScale;
1290
1290
 
1291
1291
  const backgroundBillboard = label._backgroundBillboard;
@@ -335,7 +335,7 @@ function updateBackgroundBillboard(
335
335
  // Label is shown and background is hidden - remove the background billboard
336
336
  if (label.show && !showBackground) {
337
337
  backgroundBillboardCollection.remove(backgroundBillboard);
338
- label._backgroundBillboard = backgroundBillboard = undefined;
338
+ label._backgroundBillboard = undefined;
339
339
  return;
340
340
  }
341
341
 
@@ -597,6 +597,7 @@ function destroyLabel(labelCollection, label) {
597
597
  * @param {boolean} [options.show=true] Determines if the labels in the collection will be shown.
598
598
  * @param {number} [options.coarseDepthTestDistance] The distance from the camera, beyond which, labels are depth-tested against an approximation of the globe ellipsoid rather than against the full globe depth buffer. If unspecified, the default value is determined relative to the value of {@link Ellipsoid.default}.
599
599
  * @param {number} [options.threePointDepthTestDistance] The distance from the camera, within which, lables with a {@link Label#heightReference} value of {@link HeightReference.CLAMP_TO_GROUND} or {@link HeightReference.CLAMP_TO_TERRAIN} are depth tested against three key points. This ensures that if any key point of the label is visible, the whole label will be visible. If unspecified, the default value is determined relative to the value of {@link Ellipsoid.default}.
600
+ * @param {boolean} [options.alwaysThreePointDepthTest=false] Enables the three-point depth test even when {@link Globe#depthTestAgainstTerrain} is false.
600
601
  * @performance For best performance, prefer a few collections, each with many labels, to
601
602
  * many collections with only a few labels each. Avoid having collections where some
602
603
  * labels change every frame and others do not; instead, create one or more collections
@@ -634,6 +635,7 @@ function LabelCollection(options) {
634
635
  }),
635
636
  coarseDepthTestDistance: options.coarseDepthTestDistance,
636
637
  threePointDepthTestDistance: options.threePointDepthTestDistance,
638
+ alwaysThreePointDepthTest: options.alwaysThreePointDepthTest,
637
639
  });
638
640
  this._backgroundBillboardCollection = backgroundBillboardCollection;
639
641
  this._backgroundBillboardTexture = new BillboardTexture(
@@ -645,6 +647,7 @@ function LabelCollection(options) {
645
647
  batchTable: this._batchTable,
646
648
  coarseDepthTestDistance: options.coarseDepthTestDistance,
647
649
  threePointDepthTestDistance: options.threePointDepthTestDistance,
650
+ alwaysThreePointDepthTest: options.alwaysThreePointDepthTest,
648
651
  });
649
652
  this._glyphBillboardCollection._sdf = true;
650
653