@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
@@ -1,7 +1,7 @@
1
1
  import Check from "../Core/Check.js";
2
2
  import Frozen from "../Core/Frozen.js";
3
3
  import defined from "../Core/defined.js";
4
- import hasExtension from "./hasExtension.js";
4
+ import findMeshoptExtension from "./findMeshoptExtension.js";
5
5
  import { MeshoptDecoder } from "meshoptimizer";
6
6
  import ResourceLoader from "./ResourceLoader.js";
7
7
  import ResourceLoaderState from "./ResourceLoaderState.js";
@@ -54,8 +54,8 @@ class GltfBufferViewLoader extends ResourceLoader {
54
54
  let meshoptMode;
55
55
  let meshoptFilter;
56
56
 
57
- if (hasExtension(bufferView, "EXT_meshopt_compression")) {
58
- const meshopt = bufferView.extensions.EXT_meshopt_compression;
57
+ const meshopt = findMeshoptExtension(bufferView);
58
+ if (defined(meshopt)) {
59
59
  bufferId = meshopt.buffer;
60
60
  byteOffset = meshopt.byteOffset ?? 0;
61
61
  byteLength = meshopt.byteLength;
@@ -61,9 +61,11 @@ const {
61
61
  Specular,
62
62
  Anisotropy,
63
63
  Clearcoat,
64
+ PlanarFill,
64
65
  LineStyle,
65
66
  Material,
66
67
  Vector,
68
+ Polygon,
67
69
  } = ModelComponents;
68
70
 
69
71
  /**
@@ -533,6 +535,7 @@ class GltfLoader extends ResourceLoader {
533
535
 
534
536
  /**
535
537
  * Loads the gltf object
538
+ * @ignore
536
539
  */
537
540
  async function loadGltfJson(loader) {
538
541
  loader._state = GltfLoaderState.LOADING;
@@ -899,6 +902,38 @@ function loadAccessor(loader, accessor, useQuaternion) {
899
902
  return loadDefaultAccessorValues(accessor, values);
900
903
  }
901
904
 
905
+ function loadAccessorTypedArray(loader, accessor) {
906
+ const values = ComponentDatatype.createTypedArray(
907
+ accessor.componentType,
908
+ accessor.count * AttributeType.getNumberOfComponents(accessor.type),
909
+ );
910
+
911
+ if (!defined(accessor.bufferView)) {
912
+ return values;
913
+ }
914
+
915
+ const bufferViewLoader = getBufferViewLoader(loader, accessor.bufferView);
916
+
917
+ // Save a link to the gltfJson, which is removed after bufferViewLoader.load()
918
+ const { gltfJson } = loader;
919
+
920
+ const promise = bufferViewLoader.load().then(() => {
921
+ if (loader.isDestroyed()) {
922
+ return;
923
+ }
924
+ const result = getPackedTypedArray(
925
+ gltfJson,
926
+ accessor,
927
+ bufferViewLoader.typedArray,
928
+ );
929
+ values.set(result);
930
+ });
931
+
932
+ loader._loaderPromises.push(promise);
933
+
934
+ return values;
935
+ }
936
+
902
937
  function fromArray(MathType, values) {
903
938
  if (!defined(values)) {
904
939
  return undefined;
@@ -1753,6 +1788,23 @@ function loadClearcoat(loader, clearcoatInfo, frameState) {
1753
1788
  return clearcoat;
1754
1789
  }
1755
1790
 
1791
+ /**
1792
+ * Load properties for the BENTLEY_materials_planar_fill extension.
1793
+ *
1794
+ * Note: The wireframeFill property is loaded but is currently a NO-OP in the
1795
+ * rendering pipeline. CesiumJS does not yet have a proper wireframe rendering
1796
+ * mode, so this value is stored for completeness but has no effect on rendering.
1797
+ * See https://github.com/CesiumGS/cesium/issues/13620 and
1798
+ * MaterialPipelineStage.js for more details.
1799
+ *
1800
+ * @param {object} planarFillInfo The contents of the BENTLEY_materials_planar_fill extension in the parsed glTF JSON
1801
+ * @returns {ModelComponents.PlanarFill}
1802
+ * @private
1803
+ */
1804
+ function loadPlanarFill(planarFillInfo) {
1805
+ return new PlanarFill(planarFillInfo);
1806
+ }
1807
+
1756
1808
  function loadLineStyle(lineStyleInfo) {
1757
1809
  if (!defined(lineStyleInfo)) {
1758
1810
  return undefined;
@@ -1799,6 +1851,7 @@ function loadMaterial(loader, gltfMaterial, frameState) {
1799
1851
  const pbrAnisotropy = extensions.KHR_materials_anisotropy;
1800
1852
  const pbrClearcoat = extensions.KHR_materials_clearcoat;
1801
1853
  const pbrMetallicRoughness = gltfMaterial.pbrMetallicRoughness;
1854
+ const planarFill = extensions.BENTLEY_materials_planar_fill;
1802
1855
 
1803
1856
  material.unlit = defined(extensions.KHR_materials_unlit);
1804
1857
 
@@ -1855,6 +1908,11 @@ function loadMaterial(loader, gltfMaterial, frameState) {
1855
1908
  material.alphaCutoff = gltfMaterial.alphaCutoff;
1856
1909
  material.doubleSided = gltfMaterial.doubleSided;
1857
1910
 
1911
+ // BENTLEY_materials_planar_fill extension
1912
+ if (defined(planarFill)) {
1913
+ material.planarFill = loadPlanarFill(planarFill);
1914
+ }
1915
+
1858
1916
  // BENTLEY_materials_point_style extension
1859
1917
  const pointStyleExtension = extensions.BENTLEY_materials_point_style;
1860
1918
  if (defined(pointStyleExtension) && defined(pointStyleExtension.diameter)) {
@@ -2122,7 +2180,7 @@ function loadEdgeVisibilityLineStrings(
2122
2180
  throw new RuntimeError("Edge visibility line string accessor not found!");
2123
2181
  }
2124
2182
 
2125
- const indices = loadAccessor(loader, accessor);
2183
+ const indices = loadAccessorTypedArray(loader, accessor);
2126
2184
  const restartIndex = getLineStringPrimitiveRestartValue(
2127
2185
  accessor.componentType,
2128
2186
  );
@@ -2154,7 +2212,10 @@ function loadEdgeVisibility(loader, edgeVisibilityExtension) {
2154
2212
  if (!defined(visibilityAccessor)) {
2155
2213
  throw new RuntimeError("Edge visibility accessor not found!");
2156
2214
  }
2157
- edgeVisibility.visibility = loadAccessor(loader, visibilityAccessor);
2215
+ edgeVisibility.visibility = loadAccessorTypedArray(
2216
+ loader,
2217
+ visibilityAccessor,
2218
+ );
2158
2219
  }
2159
2220
 
2160
2221
  edgeVisibility.materialColor = getEdgeVisibilityMaterialColor(
@@ -2166,7 +2227,9 @@ function loadEdgeVisibility(loader, edgeVisibilityExtension) {
2166
2227
  const silhouetteNormalsAccessor =
2167
2228
  loader.gltfJson.accessors[edgeVisibilityExtension.silhouetteNormals];
2168
2229
  if (defined(silhouetteNormalsAccessor)) {
2169
- edgeVisibility.silhouetteNormals = loadAccessor(
2230
+ // Packed typed array (x0,y0,z0, x1,y1,z1, ...), not an array of
2231
+ // Cartesian3s. Avoids a large JS heap cost for edge-heavy tiles.
2232
+ edgeVisibility.silhouetteNormals = loadAccessorTypedArray(
2170
2233
  loader,
2171
2234
  silhouetteNormalsAccessor,
2172
2235
  );
@@ -2208,6 +2271,17 @@ function loadPrimitive(loader, gltfPrimitive, hasInstances, frameState) {
2208
2271
  }
2209
2272
 
2210
2273
  const extensions = gltfPrimitive.extensions ?? Frozen.EMPTY_OBJECT;
2274
+
2275
+ const polygonExtension = extensions.EXT_mesh_polygon;
2276
+ if (defined(polygonExtension)) {
2277
+ primitive.polygon = loadMeshPolygonExtension(
2278
+ loader,
2279
+ gltfPrimitive,
2280
+ polygonExtension,
2281
+ );
2282
+ }
2283
+
2284
+ // @deprecated CESIUM_mesh_vector to be removed after v1.142 release.
2211
2285
  const meshVectorExtension = extensions.CESIUM_mesh_vector;
2212
2286
  if (defined(meshVectorExtension)) {
2213
2287
  primitive.vector = loadMeshVectorExtension(loader, meshVectorExtension);
@@ -2365,12 +2439,77 @@ function loadPrimitiveOutline(loader, outlineExtension) {
2365
2439
  return loadAccessor(loader, accessor, useQuaternion);
2366
2440
  }
2367
2441
 
2442
+ /**
2443
+ * @typedef {object} EXTMeshPolygonExtension
2444
+ * @property {number} count
2445
+ * @property {number} indicesOffsets
2446
+ * @property {number} [loopIndices]
2447
+ * @property {number} [loopIndicesOffsets]
2448
+ * @property {number} [triangleIndices]
2449
+ * @property {number} [triangleIndicesOffsets]
2450
+ */
2451
+
2452
+ /**
2453
+ * Load EXT_mesh_polygon.
2454
+ * @param {GltfLoader} loader
2455
+ * @param {object} gltfPrimitive
2456
+ * @param {EXTMeshPolygonExtension} polygonExtension
2457
+ * @returns {ModelComponents.Polygon}
2458
+ * @ignore
2459
+ */
2460
+ function loadMeshPolygonExtension(loader, gltfPrimitive, polygonExtension) {
2461
+ const result = new Polygon();
2462
+ const accessors = loader.gltfJson.accessors;
2463
+
2464
+ result.count = polygonExtension.count;
2465
+
2466
+ // See ModelComponents.Polygon definition.
2467
+ if (gltfPrimitive.mode === PrimitiveType.LINE_LOOP) {
2468
+ result.loopIndices = loadAccessorTypedArray(
2469
+ loader,
2470
+ accessors[gltfPrimitive.indices],
2471
+ );
2472
+ result.loopIndicesOffsets = loadAccessorTypedArray(
2473
+ loader,
2474
+ accessors[polygonExtension.indicesOffsets],
2475
+ );
2476
+ result.triangleIndices = loadAccessorTypedArray(
2477
+ loader,
2478
+ accessors[polygonExtension.triangleIndices],
2479
+ );
2480
+ result.triangleIndicesOffsets = loadAccessorTypedArray(
2481
+ loader,
2482
+ accessors[polygonExtension.triangleIndicesOffsets],
2483
+ );
2484
+ } else if (gltfPrimitive.mode === PrimitiveType.TRIANGLES) {
2485
+ result.loopIndices = loadAccessorTypedArray(
2486
+ loader,
2487
+ accessors[polygonExtension.loopIndices],
2488
+ );
2489
+ result.loopIndicesOffsets = loadAccessorTypedArray(
2490
+ loader,
2491
+ accessors[polygonExtension.loopIndicesOffsets],
2492
+ );
2493
+ result.triangleIndices = loadAccessorTypedArray(
2494
+ loader,
2495
+ accessors[gltfPrimitive.indices],
2496
+ );
2497
+ result.triangleIndicesOffsets = loadAccessorTypedArray(
2498
+ loader,
2499
+ accessors[polygonExtension.indicesOffsets],
2500
+ );
2501
+ }
2502
+
2503
+ return result;
2504
+ }
2505
+
2368
2506
  /**
2369
2507
  * Load CESIUM_mesh_vector.
2370
2508
  * @param {GltfLoader} loader
2371
2509
  * @param {*} meshVectorExtension
2372
2510
  * @returns {ModelComponents.Vector}
2373
2511
  * @ignore
2512
+ * @deprecated
2374
2513
  */
2375
2514
  function loadMeshVectorExtension(loader, meshVectorExtension) {
2376
2515
  if (!defined(meshVectorExtension)) {
@@ -2405,6 +2544,10 @@ function loadMeshVectorExtension(loader, meshVectorExtension) {
2405
2544
  meshVectorExtension.polygonIndicesOffsets,
2406
2545
  "polygonIndicesOffsets",
2407
2546
  );
2547
+ result.polygonTileBoundaryFlags = loadVectorAccessor(
2548
+ meshVectorExtension.polygonTileBoundaryFlags,
2549
+ "polygonTileBoundaryFlags",
2550
+ );
2408
2551
 
2409
2552
  return result;
2410
2553
  }
@@ -111,6 +111,22 @@ GltfLoaderUtil.createSampler = function (options) {
111
111
  }
112
112
  }
113
113
 
114
+ if (!TextureWrap.validate(wrapS)) {
115
+ wrapS = TextureWrap.REPEAT;
116
+ }
117
+
118
+ if (!TextureWrap.validate(wrapT)) {
119
+ wrapT = TextureWrap.REPEAT;
120
+ }
121
+
122
+ if (!TextureMinificationFilter.validate(minFilter)) {
123
+ minFilter = TextureMinificationFilter.LINEAR;
124
+ }
125
+
126
+ if (!TextureMagnificationFilter.validate(magFilter)) {
127
+ magFilter = TextureMagnificationFilter.LINEAR;
128
+ }
129
+
114
130
  return new Sampler({
115
131
  wrapS: wrapS,
116
132
  wrapT: wrapT,
@@ -164,10 +180,10 @@ GltfLoaderUtil.createModelTextureReader = function (options) {
164
180
 
165
181
  // prettier-ignore
166
182
  transform = new Matrix3(
167
- Math.cos(rotation) * scale.x, -Math.sin(rotation) * scale.y, offset.x,
168
- Math.sin(rotation) * scale.x, Math.cos(rotation) * scale.y, offset.y,
169
- 0.0, 0.0, 1.0
170
- );
183
+ Math.cos(rotation) * scale.x, -Math.sin(rotation) * scale.y, offset.x,
184
+ Math.sin(rotation) * scale.x, Math.cos(rotation) * scale.y, offset.y,
185
+ 0.0, 0.0, 1.0
186
+ );
171
187
  }
172
188
 
173
189
  const modelTextureReader = new ModelComponents.TextureReader();
@@ -73,6 +73,16 @@ function forEachTextureInMaterial(material, handler) {
73
73
  }
74
74
  }
75
75
 
76
+ // Transmission extension
77
+ const transmission = extensions.KHR_materials_transmission;
78
+ if (defined(transmission) && defined(transmission.transmissionTexture)) {
79
+ const textureInfo = transmission.transmissionTexture;
80
+ const value = handler(textureInfo.index, textureInfo);
81
+ if (defined(value)) {
82
+ return value;
83
+ }
84
+ }
85
+
76
86
  // Materials common extension (may be present in models converted from glTF 1.0)
77
87
  const materialsCommon = extensions.KHR_materials_common;
78
88
  if (defined(materialsCommon) && defined(materialsCommon.values)) {
@@ -148,11 +148,16 @@ Remove.buffer = function (gltf, bufferId) {
148
148
  bufferView.buffer--;
149
149
  }
150
150
 
151
- if (
152
- defined(bufferView.extensions) &&
153
- defined(bufferView.extensions.EXT_meshopt_compression)
154
- ) {
155
- bufferView.extensions.EXT_meshopt_compression.buffer--;
151
+ const extensions = bufferView.extensions;
152
+ if (defined(extensions)) {
153
+ const ext = extensions.EXT_meshopt_compression;
154
+ if (defined(ext) && ext.buffer > bufferId) {
155
+ ext.buffer--;
156
+ }
157
+ const khr = extensions.KHR_meshopt_compression;
158
+ if (defined(khr) && khr.buffer > bufferId) {
159
+ khr.buffer--;
160
+ }
156
161
  }
157
162
  });
158
163
  };
@@ -583,12 +588,17 @@ getListOfElementsIdsInUse.buffer = function (gltf) {
583
588
  if (defined(bufferView.buffer)) {
584
589
  usedBufferIds[bufferView.buffer] = true;
585
590
  }
586
- if (
587
- defined(bufferView.extensions) &&
588
- defined(bufferView.extensions.EXT_meshopt_compression)
589
- ) {
590
- usedBufferIds[bufferView.extensions.EXT_meshopt_compression.buffer] =
591
- true;
591
+
592
+ const extensions = bufferView.extensions;
593
+ if (defined(extensions)) {
594
+ const ext = extensions.EXT_meshopt_compression;
595
+ if (defined(ext)) {
596
+ usedBufferIds[ext.buffer] = true;
597
+ }
598
+ const khr = extensions.KHR_meshopt_compression;
599
+ if (defined(khr)) {
600
+ usedBufferIds[khr.buffer] = true;
601
+ }
592
602
  }
593
603
  });
594
604
 
@@ -267,7 +267,7 @@ async function loadResources(loader) {
267
267
  try {
268
268
  const bufferViewLoader = resourceCache.getBufferViewLoader({
269
269
  gltf: loader._gltf,
270
- bufferViewId: 0,
270
+ bufferViewId: loader._spz.bufferView,
271
271
  gltfResource: loader._gltfResource,
272
272
  baseResource: loader._baseResource,
273
273
  });
@@ -29,6 +29,7 @@ class GltfVertexBufferLoader extends ResourceLoader {
29
29
  * @param {number} [options.bufferViewId] The bufferView ID corresponding to the vertex buffer.
30
30
  * @param {object} [options.primitive] The primitive containing the Draco extension.
31
31
  * @param {object} [options.draco] The Draco extension object.
32
+ * @param {object} [options.spz] The SPZ extension object.
32
33
  * @param {string} [options.attributeSemantic] The attribute semantic, e.g. POSITION or NORMAL.
33
34
  * @param {number} [options.accessorId] The accessor id.
34
35
  * @param {string} [options.cacheKey] The cache key of the resource.
@@ -36,7 +37,7 @@ class GltfVertexBufferLoader extends ResourceLoader {
36
37
  * @param {boolean} [options.loadBuffer=false] Load vertex buffer as a GPU vertex buffer.
37
38
  * @param {boolean} [options.loadTypedArray=false] Load vertex buffer as a typed array.
38
39
  *
39
- * @exception {DeveloperError} One of options.bufferViewId and options.draco must be defined.
40
+ * @exception {DeveloperError} Exactly one vertex buffer source must be effective: options.bufferViewId, options.spz, or options.draco for options.attributeSemantic.
40
41
  * @exception {DeveloperError} When options.draco is defined options.attributeSemantic must also be defined.
41
42
  * @exception {DeveloperError} When options.draco is defined options.accessorId must also be defined.
42
43
  */
@@ -76,9 +77,11 @@ class GltfVertexBufferLoader extends ResourceLoader {
76
77
  const hasAttributeSemantic = defined(attributeSemantic);
77
78
  const hasAccessorId = defined(accessorId);
78
79
  const hasSpz = defined(spz);
79
- if (hasBufferViewId === (hasDraco !== hasSpz)) {
80
+ const sourceCount =
81
+ Number(hasBufferViewId) + Number(hasDraco) + Number(hasSpz);
82
+ if (sourceCount !== 1) {
80
83
  throw new DeveloperError(
81
- "One of options.bufferViewId, options.draco, or options.spz must be defined.",
84
+ "Exactly one vertex buffer source must be effective: options.bufferViewId, options.spz, or options.draco for options.attributeSemantic.",
82
85
  );
83
86
  }
84
87
 
@@ -182,7 +182,7 @@ function GroundPolylinePrimitive(options) {
182
182
 
183
183
  this._retainedGeometryInstances = undefined;
184
184
 
185
- /** @private Root {@link GroundPolylineGeometry} ref from the last inner {@link Primitive} build. */
185
+ /** Root {@link GroundPolylineGeometry} ref from the last inner {@link Primitive} build. @private */
186
186
  this._lastGroundPolylineRootGeometry = undefined;
187
187
 
188
188
  this._ready = false;
@@ -816,6 +816,7 @@ GroundPolylinePrimitive.prototype.update = function (frameState) {
816
816
  GroundPolylineGeometry.setProjectionAndEllipsoid(
817
817
  geometryInstance.geometry,
818
818
  frameState.mapProjection,
819
+ frameState.columbusRepeatWorlds,
819
820
  );
820
821
  geometryInstance.geometry._verticalExaggeration =
821
822
  frameState.verticalExaggeration;
@@ -408,7 +408,7 @@ I3SDataProvider.prototype.updateForPass = function (frameState, passState) {
408
408
  function buildLayerUrl(provider, layerId) {
409
409
  const dataProviderUrl = provider.resource.getUrlComponent();
410
410
 
411
- let layerUrl = "";
411
+ let layerUrl;
412
412
  if (dataProviderUrl.match(/layers\/\d/)) {
413
413
  layerUrl = `${dataProviderUrl}`.replace(/\/+$/, "");
414
414
  } else {
@@ -31,7 +31,7 @@ function I3SLayer(dataProvider, layerData, parent) {
31
31
 
32
32
  const parentUrl = this._parent.resource.getUrlComponent();
33
33
 
34
- let tilesetUrl = "";
34
+ let tilesetUrl;
35
35
  if (parentUrl.match(/layers\/\d/)) {
36
36
  tilesetUrl = `${parentUrl}`.replace(/\/+$/, "");
37
37
  } else {
@@ -474,9 +474,9 @@ I3SNode.prototype._create3DTileDefinition = function () {
474
474
  }
475
475
  }
476
476
 
477
- let boundingVolume = {};
477
+ let boundingVolume;
478
478
  let position;
479
- let span = 0;
479
+ let span;
480
480
  if (defined(obb)) {
481
481
  boundingVolume = {
482
482
  box: [
@@ -867,11 +867,11 @@ ImageryLayer.prototype.getImageryRectangle = function () {
867
867
  * Create skeletons for the imagery tiles that partially or completely overlap a given terrain
868
868
  * tile.
869
869
  *
870
- * @private
870
+ * @ignore
871
871
  *
872
872
  * @param {QuadtreeTile} tile The terrain tile.
873
873
  * @param {TerrainProvider|undefined} terrainProvider The terrain provider associated with the terrain tile.
874
- * @param {number} insertionPoint The position to insert new skeletons before in the tile's imagery list.
874
+ * @param {number} [insertionPoint] The position to insert new skeletons before in the tile's imagery list.
875
875
  * @returns {boolean} true if this layer overlaps any portion of the terrain tile; otherwise, false.
876
876
  */
877
877
  ImageryLayer.prototype._createTileImagerySkeletons = function (