@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
@@ -13,147 +13,172 @@ import Vector3DTileGeometry from "./Vector3DTileGeometry.js";
13
13
  * Implements the {@link Cesium3DTileContent} interface.
14
14
  * </p>
15
15
  *
16
- * @alias Geometry3DTileContent
17
- * @constructor
18
- *
16
+ * @implements Cesium3DTileContent
19
17
  * @private
20
18
  */
21
- function Geometry3DTileContent(
22
- tileset,
23
- tile,
24
- resource,
25
- arrayBuffer,
26
- byteOffset,
27
- ) {
28
- this._tileset = tileset;
29
- this._tile = tile;
30
- this._resource = resource;
31
- this._geometries = undefined;
32
-
33
- this._metadata = undefined;
34
-
35
- this._batchTable = undefined;
36
- this._features = undefined;
19
+ class Geometry3DTileContent {
20
+ constructor(tileset, tile, resource, arrayBuffer, byteOffset) {
21
+ this._tileset = tileset;
22
+ this._tile = tile;
23
+ this._resource = resource;
24
+ this._geometries = undefined;
37
25
 
38
- /**
39
- * Part of the {@link Cesium3DTileContent} interface.
40
- */
41
- this.featurePropertiesDirty = false;
42
- this._group = undefined;
26
+ this._metadata = undefined;
43
27
 
44
- this._ready = false;
28
+ this._batchTable = undefined;
29
+ this._features = undefined;
45
30
 
46
- initialize(this, arrayBuffer, byteOffset);
47
- }
31
+ /**
32
+ * Part of the {@link Cesium3DTileContent} interface.
33
+ */
34
+ this.featurePropertiesDirty = false;
35
+ this._group = undefined;
48
36
 
49
- Object.defineProperties(Geometry3DTileContent.prototype, {
50
- featuresLength: {
51
- get: function () {
52
- return defined(this._batchTable) ? this._batchTable.featuresLength : 0;
53
- },
54
- },
55
-
56
- pointsLength: {
57
- get: function () {
58
- return 0;
59
- },
60
- },
61
-
62
- trianglesLength: {
63
- get: function () {
64
- if (defined(this._geometries)) {
65
- return this._geometries.trianglesLength;
66
- }
67
- return 0;
68
- },
69
- },
70
-
71
- geometryByteLength: {
72
- get: function () {
73
- if (defined(this._geometries)) {
74
- return this._geometries.geometryByteLength;
75
- }
76
- return 0;
77
- },
78
- },
79
-
80
- texturesByteLength: {
81
- get: function () {
82
- return 0;
83
- },
84
- },
85
-
86
- batchTableByteLength: {
87
- get: function () {
88
- return defined(this._batchTable)
89
- ? this._batchTable.batchTableByteLength
90
- : 0;
91
- },
92
- },
93
-
94
- innerContents: {
95
- get: function () {
96
- return undefined;
97
- },
98
- },
37
+ this._ready = false;
38
+
39
+ initialize(this, arrayBuffer, byteOffset);
40
+ }
41
+
42
+ get featuresLength() {
43
+ return defined(this._batchTable) ? this._batchTable.featuresLength : 0;
44
+ }
45
+
46
+ get pointsLength() {
47
+ return 0;
48
+ }
49
+
50
+ get trianglesLength() {
51
+ if (defined(this._geometries)) {
52
+ return this._geometries.trianglesLength;
53
+ }
54
+ return 0;
55
+ }
56
+
57
+ get geometryByteLength() {
58
+ if (defined(this._geometries)) {
59
+ return this._geometries.geometryByteLength;
60
+ }
61
+ return 0;
62
+ }
63
+
64
+ get texturesByteLength() {
65
+ return 0;
66
+ }
67
+
68
+ get batchTableByteLength() {
69
+ return defined(this._batchTable)
70
+ ? this._batchTable.batchTableByteLength
71
+ : 0;
72
+ }
73
+
74
+ get innerContents() {
75
+ return undefined;
76
+ }
99
77
 
100
78
  /**
101
79
  * Returns true when the tile's content is ready to render; otherwise false
102
80
  *
103
- * @memberof Geometry3DTileContent.prototype
104
81
  *
105
82
  * @type {boolean}
106
83
  * @readonly
107
84
  * @private
108
85
  */
109
- ready: {
110
- get: function () {
111
- return this._ready;
112
- },
113
- },
114
-
115
- tileset: {
116
- get: function () {
117
- return this._tileset;
118
- },
119
- },
120
-
121
- tile: {
122
- get: function () {
123
- return this._tile;
124
- },
125
- },
126
-
127
- url: {
128
- get: function () {
129
- return this._resource.getUrlComponent(true);
130
- },
131
- },
132
-
133
- metadata: {
134
- get: function () {
135
- return this._metadata;
136
- },
137
- set: function (value) {
138
- this._metadata = value;
139
- },
140
- },
141
-
142
- batchTable: {
143
- get: function () {
144
- return this._batchTable;
145
- },
146
- },
147
-
148
- group: {
149
- get: function () {
150
- return this._group;
151
- },
152
- set: function (value) {
153
- this._group = value;
154
- },
155
- },
156
- });
86
+ get ready() {
87
+ return this._ready;
88
+ }
89
+
90
+ get tileset() {
91
+ return this._tileset;
92
+ }
93
+
94
+ get tile() {
95
+ return this._tile;
96
+ }
97
+
98
+ get url() {
99
+ return this._resource.getUrlComponent(true);
100
+ }
101
+
102
+ get metadata() {
103
+ return this._metadata;
104
+ }
105
+
106
+ set metadata(value) {
107
+ this._metadata = value;
108
+ }
109
+
110
+ get batchTable() {
111
+ return this._batchTable;
112
+ }
113
+
114
+ get group() {
115
+ return this._group;
116
+ }
117
+
118
+ set group(value) {
119
+ this._group = value;
120
+ }
121
+
122
+ hasProperty(batchId, name) {
123
+ return this._batchTable.hasProperty(batchId, name);
124
+ }
125
+
126
+ getFeature(batchId) {
127
+ //>>includeStart('debug', pragmas.debug);
128
+ const featuresLength = this.featuresLength;
129
+ if (!defined(batchId) || batchId < 0 || batchId >= featuresLength) {
130
+ throw new DeveloperError(
131
+ `batchId is required and between zero and featuresLength - 1 (${
132
+ featuresLength - 1
133
+ }).`,
134
+ );
135
+ }
136
+ //>>includeEnd('debug');
137
+
138
+ createFeatures(this);
139
+ return this._features[batchId];
140
+ }
141
+
142
+ applyDebugSettings(enabled, color) {
143
+ if (defined(this._geometries)) {
144
+ this._geometries.applyDebugSettings(enabled, color);
145
+ }
146
+ }
147
+
148
+ applyStyle(style) {
149
+ createFeatures(this);
150
+ if (defined(this._geometries)) {
151
+ this._geometries.applyStyle(style, this._features);
152
+ }
153
+ }
154
+
155
+ update(tileset, frameState) {
156
+ if (defined(this._geometries)) {
157
+ this._geometries.classificationType = this._tileset.classificationType;
158
+ this._geometries.debugWireframe = this._tileset.debugWireframe;
159
+ this._geometries.update(frameState);
160
+ }
161
+
162
+ if (defined(this._batchTable) && this._geometries.ready) {
163
+ this._batchTable.update(tileset, frameState);
164
+ this._ready = true;
165
+ }
166
+ }
167
+
168
+ pick(ray, frameState, result) {
169
+ return undefined;
170
+ }
171
+
172
+ isDestroyed() {
173
+ return false;
174
+ }
175
+
176
+ destroy() {
177
+ this._geometries = this._geometries && this._geometries.destroy();
178
+ this._batchTable = this._batchTable && this._batchTable.destroy();
179
+ return destroyObject(this);
180
+ }
181
+ }
157
182
 
158
183
  function createColorChangedCallback(content) {
159
184
  return function (batchId, color) {
@@ -472,63 +497,4 @@ function createFeatures(content) {
472
497
  }
473
498
  }
474
499
 
475
- Geometry3DTileContent.prototype.hasProperty = function (batchId, name) {
476
- return this._batchTable.hasProperty(batchId, name);
477
- };
478
-
479
- Geometry3DTileContent.prototype.getFeature = function (batchId) {
480
- //>>includeStart('debug', pragmas.debug);
481
- const featuresLength = this.featuresLength;
482
- if (!defined(batchId) || batchId < 0 || batchId >= featuresLength) {
483
- throw new DeveloperError(
484
- `batchId is required and between zero and featuresLength - 1 (${
485
- featuresLength - 1
486
- }).`,
487
- );
488
- }
489
- //>>includeEnd('debug');
490
-
491
- createFeatures(this);
492
- return this._features[batchId];
493
- };
494
-
495
- Geometry3DTileContent.prototype.applyDebugSettings = function (enabled, color) {
496
- if (defined(this._geometries)) {
497
- this._geometries.applyDebugSettings(enabled, color);
498
- }
499
- };
500
-
501
- Geometry3DTileContent.prototype.applyStyle = function (style) {
502
- createFeatures(this);
503
- if (defined(this._geometries)) {
504
- this._geometries.applyStyle(style, this._features);
505
- }
506
- };
507
-
508
- Geometry3DTileContent.prototype.update = function (tileset, frameState) {
509
- if (defined(this._geometries)) {
510
- this._geometries.classificationType = this._tileset.classificationType;
511
- this._geometries.debugWireframe = this._tileset.debugWireframe;
512
- this._geometries.update(frameState);
513
- }
514
-
515
- if (defined(this._batchTable) && this._geometries.ready) {
516
- this._batchTable.update(tileset, frameState);
517
- this._ready = true;
518
- }
519
- };
520
-
521
- Geometry3DTileContent.prototype.pick = function (ray, frameState, result) {
522
- return undefined;
523
- };
524
-
525
- Geometry3DTileContent.prototype.isDestroyed = function () {
526
- return false;
527
- };
528
-
529
- Geometry3DTileContent.prototype.destroy = function () {
530
- this._geometries = this._geometries && this._geometries.destroy();
531
- this._batchTable = this._batchTable && this._batchTable.destroy();
532
- return destroyObject(this);
533
- };
534
500
  export default Geometry3DTileContent;
@@ -20,6 +20,7 @@ import GlobeFS from "../Shaders/GlobeFS.js";
20
20
  import GlobeVS from "../Shaders/GlobeVS.js";
21
21
  import AtmosphereCommon from "../Shaders/AtmosphereCommon.js";
22
22
  import GroundAtmosphere from "../Shaders/GroundAtmosphere.js";
23
+ import ColumbusWorlds from "./ColumbusWorlds.js";
23
24
  import GlobeSurfaceShaderSet from "./GlobeSurfaceShaderSet.js";
24
25
  import GlobeSurfaceTileProvider from "./GlobeSurfaceTileProvider.js";
25
26
  import GlobeTranslucency from "./GlobeTranslucency.js";
@@ -28,6 +29,7 @@ import QuadtreePrimitive from "./QuadtreePrimitive.js";
28
29
  import SceneMode from "./SceneMode.js";
29
30
  import ShadowMode from "./ShadowMode.js";
30
31
  import CesiumMath from "../Core/Math.js";
32
+ import VectorProvider from "../Core/VectorProvider.js";
31
33
 
32
34
  /**
33
35
  * The globe rendered in the scene, including its terrain ({@link Globe#terrainProvider})
@@ -45,6 +47,9 @@ function Globe(ellipsoid) {
45
47
  ellipsoid: ellipsoid,
46
48
  });
47
49
  const imageryLayerCollection = new ImageryLayerCollection();
50
+ const vectorProvider = new VectorProvider({
51
+ tilingScheme: terrainProvider.tilingScheme,
52
+ });
48
53
 
49
54
  this._ellipsoid = ellipsoid;
50
55
  this._imageryLayerCollection = imageryLayerCollection;
@@ -57,12 +62,15 @@ function Globe(ellipsoid) {
57
62
  terrainProvider: terrainProvider,
58
63
  imageryLayers: imageryLayerCollection,
59
64
  surfaceShaderSet: this._surfaceShaderSet,
65
+ vectorProvider,
60
66
  }),
61
67
  });
62
68
 
63
69
  this._terrainProvider = terrainProvider;
64
70
  this._terrainProviderChanged = new Event();
65
71
 
72
+ this._vectorProvider = vectorProvider;
73
+
66
74
  this._undergroundColor = Color.clone(Color.BLACK);
67
75
  this._undergroundColorAlphaByDistance = new NearFarScalar(
68
76
  ellipsoid.maximumRadius / 1000.0,
@@ -569,6 +577,9 @@ Object.defineProperties(Globe.prototype, {
569
577
  set: function (value) {
570
578
  if (value !== this._terrainProvider) {
571
579
  this._terrainProvider = value;
580
+ if (defined(value)) {
581
+ this._vectorProvider.tilingScheme = value.tilingScheme;
582
+ }
572
583
  this._terrainProviderChanged.raiseEvent(value);
573
584
  if (defined(this._material)) {
574
585
  makeShadersDirty(this);
@@ -588,6 +599,16 @@ Object.defineProperties(Globe.prototype, {
588
599
  return this._terrainProviderChanged;
589
600
  },
590
601
  },
602
+ /**
603
+ * @memberof Globe.prototype
604
+ * @type {VectorProvider}
605
+ * @ignore
606
+ */
607
+ vectorProvider: {
608
+ get: function () {
609
+ return this._vectorProvider;
610
+ },
611
+ },
591
612
  /**
592
613
  * Gets an event that's raised when the length of the tile load queue has changed since the last render frame. When the load queue is empty,
593
614
  * all terrain and imagery for the current view have been loaded. The event passes the new length of the tile load queue.
@@ -724,24 +745,28 @@ function makeShadersDirty(globe) {
724
745
 
725
746
  function createComparePickTileFunction(rayOrigin) {
726
747
  return function (a, b) {
727
- const aDist = BoundingSphere.distanceSquaredTo(
728
- a.pickBoundingSphere,
729
- rayOrigin,
730
- );
731
- const bDist = BoundingSphere.distanceSquaredTo(
732
- b.pickBoundingSphere,
733
- rayOrigin,
734
- );
748
+ const aDist = BoundingSphere.distanceSquaredTo(a.sphere, rayOrigin);
749
+ const bDist = BoundingSphere.distanceSquaredTo(b.sphere, rayOrigin);
735
750
 
736
751
  return aDist - bDist;
737
752
  };
738
753
  }
739
754
 
755
+ // Columbus repeat worlds: how many translated world copies to test on either
756
+ // side of the pick ray's own world when repeat worlds are enabled.
757
+ const GLOBE_COLUMBUS_MAX_EXTRA_WORLDS = 2;
758
+
759
+ function getGlobeColumbusWorldWidth(projection) {
760
+ return ColumbusWorlds.getWorldWidth(projection);
761
+ }
762
+
740
763
  const scratchArray = [];
741
764
  const scratchSphereIntersectionResult = {
742
765
  start: 0.0,
743
766
  stop: 0.0,
744
767
  };
768
+ const scratchPickOffsetSphere = new BoundingSphere();
769
+ const scratchColumbusPickRay = new Ray();
745
770
 
746
771
  /**
747
772
  * Find an intersection between a ray and the globe surface that was rendered. The ray must be given in world coordinates.
@@ -774,6 +799,13 @@ Globe.prototype.pickWorldCoordinates = function (
774
799
  const mode = scene.mode;
775
800
  const projection = scene.mapProjection;
776
801
 
802
+ const repeatWorlds =
803
+ scene.columbusRepeatWorlds === true &&
804
+ (mode === SceneMode.SCENE2D || mode === SceneMode.COLUMBUS_VIEW);
805
+ const worldWidth = repeatWorlds
806
+ ? getGlobeColumbusWorldWidth(projection)
807
+ : 0.0;
808
+
777
809
  const sphereIntersections = scratchArray;
778
810
  sphereIntersections.length = 0;
779
811
 
@@ -810,13 +842,48 @@ Globe.prototype.pickWorldCoordinates = function (
810
842
  continue;
811
843
  }
812
844
 
813
- const boundingSphereIntersection = IntersectionTests.raySphere(
814
- ray,
815
- boundingVolume,
816
- scratchSphereIntersectionResult,
817
- );
818
- if (defined(boundingSphereIntersection)) {
819
- sphereIntersections.push(surfaceTile);
845
+ if (!repeatWorlds) {
846
+ const boundingSphereIntersection = IntersectionTests.raySphere(
847
+ ray,
848
+ boundingVolume,
849
+ scratchSphereIntersectionResult,
850
+ );
851
+ if (defined(boundingSphereIntersection)) {
852
+ sphereIntersections.push({
853
+ surfaceTile,
854
+ sphere: boundingVolume,
855
+ offset: 0.0,
856
+ });
857
+ }
858
+ continue;
859
+ }
860
+
861
+ // Columbus repeat worlds: a translated copy of this tile may be hit even
862
+ // when the primary sphere is not. Test the copies around the ray's own
863
+ // world so points beyond the ±180° meridian pick correctly.
864
+ const rayWorld = Math.round(ray.origin.y / worldWidth);
865
+ for (
866
+ let w = rayWorld - GLOBE_COLUMBUS_MAX_EXTRA_WORLDS;
867
+ w <= rayWorld + GLOBE_COLUMBUS_MAX_EXTRA_WORLDS;
868
+ ++w
869
+ ) {
870
+ const offset = w * worldWidth;
871
+ const offsetSphere = scratchPickOffsetSphere;
872
+ Cartesian3.clone(boundingVolume.center, offsetSphere.center);
873
+ offsetSphere.center.y += offset;
874
+ offsetSphere.radius = boundingVolume.radius;
875
+ const boundingSphereIntersection = IntersectionTests.raySphere(
876
+ ray,
877
+ offsetSphere,
878
+ scratchSphereIntersectionResult,
879
+ );
880
+ if (defined(boundingSphereIntersection)) {
881
+ sphereIntersections.push({
882
+ surfaceTile,
883
+ sphere: BoundingSphere.clone(offsetSphere, new BoundingSphere()),
884
+ offset,
885
+ });
886
+ }
820
887
  }
821
888
  }
822
889
 
@@ -825,13 +892,34 @@ Globe.prototype.pickWorldCoordinates = function (
825
892
  let intersection;
826
893
  const length = sphereIntersections.length;
827
894
  for (let i = 0; i < length; ++i) {
828
- intersection = sphereIntersections[i].pick(
829
- ray,
830
- scene.mode,
831
- scene.mapProjection,
832
- cullBackFaces,
833
- result,
834
- );
895
+ const candidate = sphereIntersections[i];
896
+ const offset = candidate.offset;
897
+ if (offset === 0.0) {
898
+ intersection = candidate.surfaceTile.pick(
899
+ ray,
900
+ scene.mode,
901
+ scene.mapProjection,
902
+ cullBackFaces,
903
+ result,
904
+ );
905
+ } else {
906
+ // Pick against the copy by shifting the ray into the primary world,
907
+ // then shifting the hit point back onto the copy.
908
+ const pickRay = scratchColumbusPickRay;
909
+ Cartesian3.clone(ray.origin, pickRay.origin);
910
+ pickRay.origin.y -= offset;
911
+ Cartesian3.clone(ray.direction, pickRay.direction);
912
+ intersection = candidate.surfaceTile.pick(
913
+ pickRay,
914
+ scene.mode,
915
+ scene.mapProjection,
916
+ cullBackFaces,
917
+ result,
918
+ );
919
+ if (defined(intersection)) {
920
+ intersection.y += offset;
921
+ }
922
+ }
835
923
  if (defined(intersection)) {
836
924
  break;
837
925
  }