@cesium/engine 26.2.0 → 26.3.1-wasm.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (393) hide show
  1. package/Build/ThirdParty/Workers/zip-web-worker.js +707 -600
  2. package/Build/Workers/chunk-2P3WKV6V.js +290 -0
  3. package/Build/Workers/{chunk-M6QKXVAU.js → chunk-2U5272QU.js} +17 -17
  4. package/Build/Workers/{chunk-NEFDMMLY.js → chunk-4KCOC6OZ.js} +8 -10
  5. package/Build/Workers/{chunk-SJYSIOEM.js → chunk-5FULJNWY.js} +11 -13
  6. package/Build/Workers/{chunk-NCL22ZUX.js → chunk-65ZF23AQ.js} +1 -1
  7. package/Build/Workers/{chunk-KP5QD7WU.js → chunk-6D5534B7.js} +10 -12
  8. package/Build/Workers/{chunk-FX3VEAIU.js → chunk-6GFMBHBD.js} +19 -19
  9. package/Build/Workers/{chunk-A62YI6S6.js → chunk-6VRGQF3D.js} +4 -4
  10. package/Build/Workers/{chunk-DSGLDRTI.js → chunk-6XUIECFB.js} +4 -6
  11. package/Build/Workers/{chunk-HDL4HOXZ.js → chunk-7KWUH6RK.js} +14 -14
  12. package/Build/Workers/{chunk-UAZUP4I5.js → chunk-7ZBJRQQT.js} +7 -7
  13. package/Build/Workers/{chunk-CRCGE4J4.js → chunk-AEHANE5A.js} +991 -5612
  14. package/Build/Workers/chunk-AUU74SIZ.js +2420 -0
  15. package/Build/Workers/{chunk-ARZICEEP.js → chunk-B6V5NMIE.js} +13 -11
  16. package/Build/Workers/{chunk-76FDC45O.js → chunk-BRQ52ASU.js} +15 -17
  17. package/Build/Workers/{chunk-SA2A2AN5.js → chunk-FVLSQBPH.js} +7 -14
  18. package/Build/Workers/{chunk-CUTRKXUQ.js → chunk-IFKM2GZR.js} +12 -12
  19. package/Build/Workers/{chunk-NSKZ6SBK.js → chunk-KF6OEWVT.js} +17 -17
  20. package/Build/Workers/{chunk-O3DKEX7Q.js → chunk-KOAXSU77.js} +5 -7
  21. package/Build/Workers/{chunk-2Z4ZLVOD.js → chunk-KRVYCMGN.js} +6 -6
  22. package/Build/Workers/{chunk-SXSP3JHS.js → chunk-LTZRLNQP.js} +1 -1
  23. package/Build/Workers/{chunk-6FZDPMTO.js → chunk-M7WEAGWT.js} +8 -8
  24. package/Build/Workers/{chunk-NXGQBQWE.js → chunk-MJTLGN63.js} +14 -14
  25. package/Build/Workers/{chunk-XCBZVTIV.js → chunk-MUNZ77KV.js} +1 -1
  26. package/Build/Workers/{chunk-NLLCQBX3.js → chunk-NC5BUJEF.js} +2 -2
  27. package/Build/Workers/chunk-NYKURYFR.js +2131 -0
  28. package/Build/Workers/{chunk-5LSOO2KD.js → chunk-NZAQG57U.js} +7 -7
  29. package/Build/Workers/{chunk-DZUFEE4L.js → chunk-O5GUOP2G.js} +5 -7
  30. package/Build/Workers/{chunk-D6AY775A.js → chunk-OQUOLQTN.js} +8 -10
  31. package/Build/Workers/{chunk-CDJDJ5LK.js → chunk-OUG5JB2K.js} +16 -14
  32. package/Build/Workers/{chunk-ACTVJHSP.js → chunk-P4SDLSGF.js} +13 -6
  33. package/Build/Workers/{chunk-MAAHFYPC.js → chunk-P6PC2OIM.js} +7 -7
  34. package/Build/Workers/{chunk-6YR6JBMY.js → chunk-PPRK3XQU.js} +31 -35
  35. package/Build/Workers/{chunk-IMBVP57H.js → chunk-QGTYLWOT.js} +2 -2
  36. package/Build/Workers/{chunk-FCP2QY4G.js → chunk-QHTLIQUH.js} +5 -7
  37. package/Build/Workers/{chunk-EZGQPOIG.js → chunk-ROHWZQZ5.js} +5 -5
  38. package/Build/Workers/{chunk-B3QHNA4A.js → chunk-SNUWISJO.js} +6 -8
  39. package/Build/Workers/{chunk-XDWCTQCZ.js → chunk-T67YY3KP.js} +4 -2
  40. package/Build/Workers/{chunk-IJZJMIUY.js → chunk-TF5473GK.js} +13 -13
  41. package/Build/Workers/{chunk-OZGPS7FB.js → chunk-THHFTMAL.js} +4 -6
  42. package/Build/Workers/{chunk-PRWUMCXF.js → chunk-UFCZ62WM.js} +15 -13
  43. package/Build/Workers/{chunk-27FWRTJI.js → chunk-UV2YC2Q5.js} +11 -11
  44. package/Build/Workers/{chunk-N7CCOFLX.js → chunk-V4ICCWYA.js} +1 -1
  45. package/Build/Workers/{chunk-GHXVQVUM.js → chunk-VC6XXI2Z.js} +9 -9
  46. package/Build/Workers/{chunk-I74ZH5LK.js → chunk-VXJ6P4UI.js} +10 -10
  47. package/Build/Workers/{chunk-KGXSYGBG.js → chunk-W2BKP7G7.js} +15 -17
  48. package/Build/Workers/{chunk-LDRQSYBN.js → chunk-WMVGNBSH.js} +2 -2
  49. package/Build/Workers/{chunk-SMTGMFBL.js → chunk-XFZMQZSZ.js} +4 -4
  50. package/Build/Workers/{chunk-7MM3N2VE.js → chunk-XJ532R6R.js} +20 -20
  51. package/Build/Workers/{chunk-NJVBJG63.js → chunk-YJNU4SM4.js} +5 -5
  52. package/Build/Workers/{chunk-DIGUUD6G.js → chunk-YJRDTEHQ.js} +8 -8
  53. package/Build/Workers/chunk-YUICDZKO.js +2660 -0
  54. package/Build/Workers/{chunk-O3XFXGPZ.js → chunk-Z3DEVGJV.js} +7 -7
  55. package/Build/Workers/{chunk-3PSS3T43.js → chunk-ZECGI7UZ.js} +4 -4
  56. package/Build/Workers/{chunk-QFSSCLLZ.js → chunk-ZFLPVPUJ.js} +6 -8
  57. package/Build/Workers/{chunk-2RGJPWQX.js → chunk-ZIM5H2DB.js} +11 -11
  58. package/Build/Workers/{chunk-GVA7XQI2.js → chunk-ZSQMGGSB.js} +14 -16
  59. package/Build/Workers/{chunk-FU4BGABC.js → chunk-ZWYRGMBK.js} +16 -18
  60. package/Build/Workers/{chunk-JKXV6PG5.js → chunk-ZY733NZA.js} +1 -1
  61. package/Build/Workers/combineGeometry.js +24 -24
  62. package/Build/Workers/createBoxGeometry.js +18 -18
  63. package/Build/Workers/createBoxOutlineGeometry.js +20 -19
  64. package/Build/Workers/createCircleGeometry.js +28 -27
  65. package/Build/Workers/createCircleOutlineGeometry.js +21 -20
  66. package/Build/Workers/createCoplanarPolygonGeometry.js +34 -34
  67. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +33 -32
  68. package/Build/Workers/createCorridorGeometry.js +31 -31
  69. package/Build/Workers/createCorridorOutlineGeometry.js +30 -30
  70. package/Build/Workers/createCylinderGeometry.js +20 -20
  71. package/Build/Workers/createCylinderOutlineGeometry.js +22 -21
  72. package/Build/Workers/createEllipseGeometry.js +26 -26
  73. package/Build/Workers/createEllipseOutlineGeometry.js +19 -19
  74. package/Build/Workers/createEllipsoidGeometry.js +19 -19
  75. package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -18
  76. package/Build/Workers/createFrustumGeometry.js +18 -18
  77. package/Build/Workers/createFrustumOutlineGeometry.js +18 -18
  78. package/Build/Workers/createGeometry.js +27 -26
  79. package/Build/Workers/createGroundPolylineGeometry.js +27 -26
  80. package/Build/Workers/createPlaneGeometry.js +18 -17
  81. package/Build/Workers/createPlaneOutlineGeometry.js +15 -15
  82. package/Build/Workers/createPolygonGeometry.js +35 -35
  83. package/Build/Workers/createPolygonOutlineGeometry.js +34 -34
  84. package/Build/Workers/createPolylineGeometry.js +28 -29
  85. package/Build/Workers/createPolylineVolumeGeometry.js +34 -35
  86. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +30 -31
  87. package/Build/Workers/createRectangleGeometry.js +30 -30
  88. package/Build/Workers/createRectangleOutlineGeometry.js +23 -24
  89. package/Build/Workers/createSimplePolylineGeometry.js +26 -27
  90. package/Build/Workers/createSphereGeometry.js +19 -19
  91. package/Build/Workers/createSphereOutlineGeometry.js +18 -18
  92. package/Build/Workers/createTaskProcessorWorker.js +3 -3
  93. package/Build/Workers/createVectorTileClampedPolylines.js +17 -16
  94. package/Build/Workers/createVectorTileGeometries.js +24 -24
  95. package/Build/Workers/createVectorTilePoints.js +13 -13
  96. package/Build/Workers/createVectorTilePolygons.js +22 -22
  97. package/Build/Workers/createVectorTilePolylines.js +17 -16
  98. package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +36 -26
  99. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +24 -24
  100. package/Build/Workers/createVerticesFromHeightmap.js +24 -25
  101. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +20 -20
  102. package/Build/Workers/createWallGeometry.js +27 -28
  103. package/Build/Workers/createWallOutlineGeometry.js +26 -27
  104. package/Build/Workers/decodeDraco.js +16 -12
  105. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +336 -337
  106. package/Build/Workers/decodeI3S.js +17 -12
  107. package/Build/Workers/{chunk-GXWQZBAI.js → decodeMeshopt.js} +23 -29
  108. package/Build/Workers/decodeSpz.js +1960 -0
  109. package/Build/Workers/gaussianSplatSorter.js +13 -6
  110. package/Build/Workers/gaussianSplatTextureGenerator.js +13 -6
  111. package/Build/Workers/incrementallyBuildTerrainPicker.js +9 -10
  112. package/Build/Workers/transcodeKTX2.js +26 -12
  113. package/Build/Workers/transferTypedArrayTest.js +1 -1
  114. package/Build/Workers/upsampleQuantizedTerrainMesh.js +24 -24
  115. package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +25 -25
  116. package/Source/Core/Cesium3DTilesTerrainData.js +11 -1
  117. package/Source/Core/Cesium3DTilesTerrainGeometryProcessor.js +33 -23
  118. package/Source/Core/Ion.js +1 -1
  119. package/Source/Core/IonResource.js +5 -0
  120. package/Source/Core/IonSnapGeometryType.js +59 -0
  121. package/Source/Core/IonSnapHeat.js +33 -0
  122. package/Source/Core/IonSnapMode.js +45 -0
  123. package/Source/Core/IonSnapParentGeometryType.js +52 -0
  124. package/Source/Core/IonSnapService.js +369 -0
  125. package/Source/Core/KTX2Transcoder.js +99 -5
  126. package/Source/Core/Resource.js +2 -0
  127. package/Source/Core/SnapService.js +63 -0
  128. package/Source/Core/TaskProcessor.js +249 -129
  129. package/Source/Core/TrustedServers.js +34 -1
  130. package/Source/Core/VectorPipeline.js +139 -45
  131. package/Source/Core/VectorProvider.js +311 -71
  132. package/Source/Core/WebAssemblyWorkerInitializer.js +125 -0
  133. package/Source/Core/fetchWebAssemblyBinary.js +52 -0
  134. package/Source/Renderer/AutomaticUniforms.js +44 -2
  135. package/Source/Renderer/ShaderBuilder.js +1 -1
  136. package/Source/Renderer/UniformState.js +47 -1
  137. package/Source/Scene/ArcGisMapService.js +1 -1
  138. package/Source/Scene/BufferPointCollection.js +4 -7
  139. package/Source/Scene/BufferPolygonCollection.js +56 -27
  140. package/Source/Scene/BufferPolylineCollection.js +61 -8
  141. package/Source/Scene/BufferPolylineMaterial.js +6 -5
  142. package/Source/Scene/BufferPrimitiveCollection.js +199 -29
  143. package/Source/Scene/Cesium3DTile.js +12 -0
  144. package/Source/Scene/Cesium3DTileset.js +61 -8
  145. package/Source/Scene/Cesium3DTilesetBaseTraversal.js +15 -3
  146. package/Source/Scene/Cesium3DTilesetCache.js +15 -0
  147. package/Source/Scene/ClippingPolygon.js +154 -100
  148. package/Source/Scene/ClippingPolygonCollection.js +352 -694
  149. package/Source/Scene/CreditDisplay.js +62 -0
  150. package/Source/Scene/GaussianSplatPrimitive.js +153 -66
  151. package/Source/Scene/GeoJsonPrimitive.js +114 -24
  152. package/Source/Scene/GlobeSurfaceShaderSet.js +33 -54
  153. package/Source/Scene/GlobeSurfaceTile.js +14 -1
  154. package/Source/Scene/GlobeSurfaceTileProvider.js +232 -25
  155. package/Source/Scene/GltfBufferViewLoader.js +25 -13
  156. package/Source/Scene/GltfLoader.js +56 -6
  157. package/Source/Scene/GltfSpzLoader.js +5 -4
  158. package/Source/Scene/HeightReference.js +1 -1
  159. package/Source/Scene/MVTDataProvider.js +9 -0
  160. package/Source/Scene/Model/Model.js +242 -16
  161. package/Source/Scene/Model/Model3DTileContent.js +5 -0
  162. package/Source/Scene/Model/ModelClippingPolygonsPipelineStage.js +54 -19
  163. package/Source/Scene/Model/ModelRenderResources.js +2 -3
  164. package/Source/Scene/Model/ModelSceneGraph.js +10 -1
  165. package/Source/Scene/Model/ModelVectorLookupPipelineStage.js +205 -0
  166. package/Source/Scene/Model/PickingPipelineStage.js +4 -0
  167. package/Source/Scene/PostProcessStage.js +22 -3
  168. package/Source/Scene/Scene.js +56 -1
  169. package/Source/Scene/Snapping.js +57 -0
  170. package/Source/Scene/SpzDecoder.js +106 -0
  171. package/Source/Scene/UrlTemplate3DTilesDataProvider.js +12 -1
  172. package/Source/Scene/VectorGltf3DTileContent.js +10 -2
  173. package/Source/Scene/WebMapServiceImageryProvider.js +5 -1
  174. package/Source/Scene/WebMapTileServiceImageryProvider.js +6 -1
  175. package/Source/Scene/renderBufferPolylineCollection.js +5 -1
  176. package/Source/Shaders/BufferPolylineMaterialVS.glsl +14 -2
  177. package/Source/Shaders/BufferPolylineMaterialVS.js +14 -2
  178. package/Source/Shaders/Builtin/CzmBuiltins.js +2 -4
  179. package/Source/Shaders/Builtin/Functions/eyeToCartographicDelta.glsl +74 -0
  180. package/Source/Shaders/Builtin/Functions/eyeToCartographicDelta.js +76 -0
  181. package/Source/Shaders/GlobeFS.glsl +10 -9
  182. package/Source/Shaders/GlobeFS.js +11 -9
  183. package/Source/Shaders/GlobeVS.glsl +0 -32
  184. package/Source/Shaders/GlobeVS.js +0 -32
  185. package/Source/Shaders/Model/ModelClippingPolygonsStageFS.glsl +15 -3
  186. package/Source/Shaders/Model/ModelClippingPolygonsStageFS.js +15 -3
  187. package/Source/Shaders/Model/ModelClippingPolygonsStageVS.glsl +20 -24
  188. package/Source/Shaders/Model/ModelClippingPolygonsStageVS.js +20 -24
  189. package/Source/Shaders/Model/ModelFS.glsl +4 -0
  190. package/Source/Shaders/Model/ModelFS.js +4 -0
  191. package/Source/Shaders/Model/ModelVS.glsl +7 -2
  192. package/Source/Shaders/Model/ModelVS.js +7 -2
  193. package/Source/Shaders/Model/ModelVectorLookupStageFS.glsl +6 -0
  194. package/Source/Shaders/Model/ModelVectorLookupStageFS.js +8 -0
  195. package/Source/Shaders/Model/ModelVectorLookupStageVS.glsl +15 -0
  196. package/Source/Shaders/Model/ModelVectorLookupStageVS.js +17 -0
  197. package/Source/Shaders/Model/VerticalExaggerationStageVS.glsl +9 -10
  198. package/Source/Shaders/Model/VerticalExaggerationStageVS.js +9 -11
  199. package/Source/Shaders/VectorCommon.glsl +177 -50
  200. package/Source/Shaders/VectorCommon.js +251 -19
  201. package/Source/ThirdParty/Workers/zip-web-worker.js +1 -1
  202. package/Source/ThirdParty/zip-module.wasm +0 -0
  203. package/Source/Workers/createTaskProcessorWorker.js +2 -0
  204. package/Source/Workers/createVerticesFromCesium3DTilesTerrain.js +13 -1
  205. package/Source/Workers/decodeDraco.js +7 -3
  206. package/Source/Workers/decodeI3S.js +7 -3
  207. package/Source/Workers/decodeMeshopt.js +21 -0
  208. package/Source/Workers/decodeSpz.js +20 -0
  209. package/Source/Workers/gaussianSplatSorter.js +7 -3
  210. package/Source/Workers/gaussianSplatTextureGenerator.js +7 -3
  211. package/Source/Workers/transcodeKTX2.js +22 -5
  212. package/index.d.ts +649 -55
  213. package/index.js +23 -13
  214. package/package.json +6 -6
  215. package/Build/Workers/chunk-2EFYUSUY.js +0 -1483
  216. package/Build/Workers/chunk-2H5264K7.js +0 -1284
  217. package/Build/Workers/chunk-2H73KDBM.js +0 -511
  218. package/Build/Workers/chunk-2ZKH2QZB.js +0 -387
  219. package/Build/Workers/chunk-36NI5E6W.js +0 -3820
  220. package/Build/Workers/chunk-37SW7SYS.js +0 -778
  221. package/Build/Workers/chunk-3GHVJ3SO.js +0 -455
  222. package/Build/Workers/chunk-3LB4UVPU.js +0 -387
  223. package/Build/Workers/chunk-3PONLKEL.js +0 -778
  224. package/Build/Workers/chunk-3QR662HH.js +0 -3820
  225. package/Build/Workers/chunk-3SX2WYSO.js +0 -973
  226. package/Build/Workers/chunk-3UDN6LYX.js +0 -476
  227. package/Build/Workers/chunk-47MCBSXI.js +0 -9237
  228. package/Build/Workers/chunk-4E626OCE.js +0 -1067
  229. package/Build/Workers/chunk-4NW2MJKH.js +0 -455
  230. package/Build/Workers/chunk-52YK5BSN.js +0 -198
  231. package/Build/Workers/chunk-5RNAQZK6.js +0 -9234
  232. package/Build/Workers/chunk-5YPQBFRD.js +0 -519
  233. package/Build/Workers/chunk-6FHT43QR.js +0 -140
  234. package/Build/Workers/chunk-6HK6IXK2.js +0 -138
  235. package/Build/Workers/chunk-6R5X2GUA.js +0 -1284
  236. package/Build/Workers/chunk-7A2OGDHT.js +0 -305
  237. package/Build/Workers/chunk-7CGEQUM2.js +0 -305
  238. package/Build/Workers/chunk-7D2HZKH7.js +0 -455
  239. package/Build/Workers/chunk-7I325HV6.js +0 -1344
  240. package/Build/Workers/chunk-7KVKHY7O.js +0 -147
  241. package/Build/Workers/chunk-7TKLTCZW.js +0 -219
  242. package/Build/Workers/chunk-7UUKBDH6.js +0 -1054
  243. package/Build/Workers/chunk-7W6DUHAB.js +0 -693
  244. package/Build/Workers/chunk-7XM5JK5F.js +0 -162
  245. package/Build/Workers/chunk-7YG3ND3P.js +0 -454
  246. package/Build/Workers/chunk-A3O6EDBK.js +0 -73
  247. package/Build/Workers/chunk-A6X24AZI.js +0 -1992
  248. package/Build/Workers/chunk-A7TTWVTF.js +0 -2719
  249. package/Build/Workers/chunk-ADX3CBKD.js +0 -9234
  250. package/Build/Workers/chunk-AF7DTMJ7.js +0 -398
  251. package/Build/Workers/chunk-AHWAZRBV.js +0 -82
  252. package/Build/Workers/chunk-AJSFRY4U.js +0 -1344
  253. package/Build/Workers/chunk-B4CQSLZJ.js +0 -305
  254. package/Build/Workers/chunk-BKPQFCXH.js +0 -511
  255. package/Build/Workers/chunk-BSPCI2LO.js +0 -959
  256. package/Build/Workers/chunk-BUJWSX5S.js +0 -301
  257. package/Build/Workers/chunk-C7JQVRLM.js +0 -497
  258. package/Build/Workers/chunk-C7QDUNI3.js +0 -138
  259. package/Build/Workers/chunk-CEEZE3YZ.js +0 -476
  260. package/Build/Workers/chunk-CIV5DJOQ.js +0 -778
  261. package/Build/Workers/chunk-CLCTQVVL.js +0 -241
  262. package/Build/Workers/chunk-CQNFIAZU.js +0 -56
  263. package/Build/Workers/chunk-DBD5WWG2.js +0 -959
  264. package/Build/Workers/chunk-DZBQUULR.js +0 -138
  265. package/Build/Workers/chunk-E2NKV5YT.js +0 -3820
  266. package/Build/Workers/chunk-E7NZJOK7.js +0 -3792
  267. package/Build/Workers/chunk-EB3Y5P3A.js +0 -368
  268. package/Build/Workers/chunk-EHTS2YPT.js +0 -2719
  269. package/Build/Workers/chunk-ELE6SC2C.js +0 -837
  270. package/Build/Workers/chunk-ENNFMWDW.js +0 -789
  271. package/Build/Workers/chunk-EOWDZN5S.js +0 -288
  272. package/Build/Workers/chunk-ERKUET22.js +0 -3201
  273. package/Build/Workers/chunk-F2IMBMZY.js +0 -241
  274. package/Build/Workers/chunk-F4CSNRZO.js +0 -219
  275. package/Build/Workers/chunk-FBP4DUQJ.js +0 -693
  276. package/Build/Workers/chunk-FDK4K5IA.js +0 -280
  277. package/Build/Workers/chunk-FGQFQHN5.js +0 -1054
  278. package/Build/Workers/chunk-FJWZMGOQ.js +0 -1992
  279. package/Build/Workers/chunk-FQ42MT7M.js +0 -58
  280. package/Build/Workers/chunk-GGNWQWSB.js +0 -301
  281. package/Build/Workers/chunk-GNKXEN4C.js +0 -682
  282. package/Build/Workers/chunk-GSWMAFTE.js +0 -9230
  283. package/Build/Workers/chunk-GXDHRC4J.js +0 -1344
  284. package/Build/Workers/chunk-GYSYP6PC.js +0 -1067
  285. package/Build/Workers/chunk-H2WCFXLP.js +0 -241
  286. package/Build/Workers/chunk-HHV3MCGV.js +0 -162
  287. package/Build/Workers/chunk-HLW2ZRVK.js +0 -368
  288. package/Build/Workers/chunk-HS6AD4P2.js +0 -398
  289. package/Build/Workers/chunk-HT6FASOT.js +0 -973
  290. package/Build/Workers/chunk-IDVHUDZT.js +0 -352
  291. package/Build/Workers/chunk-IGAZBTFZ.js +0 -3201
  292. package/Build/Workers/chunk-ILME5BXA.js +0 -301
  293. package/Build/Workers/chunk-IOO7Z2AV.js +0 -57
  294. package/Build/Workers/chunk-IUIFLOYO.js +0 -44
  295. package/Build/Workers/chunk-J73T2VOY.js +0 -171
  296. package/Build/Workers/chunk-JALGQYDY.js +0 -288
  297. package/Build/Workers/chunk-JW6OZT4R.js +0 -288
  298. package/Build/Workers/chunk-JXYLJCTC.js +0 -124
  299. package/Build/Workers/chunk-K27QOAW6.js +0 -97
  300. package/Build/Workers/chunk-KMV25A63.js +0 -789
  301. package/Build/Workers/chunk-KZWFWJML.js +0 -2719
  302. package/Build/Workers/chunk-LCXRRALY.js +0 -387
  303. package/Build/Workers/chunk-LD64RPYV.js +0 -368
  304. package/Build/Workers/chunk-LGNDTZVX.js +0 -97
  305. package/Build/Workers/chunk-LNSQVXFH.js +0 -1800
  306. package/Build/Workers/chunk-M4JZ6TSZ.js +0 -959
  307. package/Build/Workers/chunk-MCJDRDJQ.js +0 -102
  308. package/Build/Workers/chunk-MEENMEAH.js +0 -198
  309. package/Build/Workers/chunk-NAWU5RF4.js +0 -162
  310. package/Build/Workers/chunk-NIWITKQK.js +0 -693
  311. package/Build/Workers/chunk-OA6MYL2C.js +0 -837
  312. package/Build/Workers/chunk-OBEU25PI.js +0 -1067
  313. package/Build/Workers/chunk-OHP4ELS7.js +0 -198
  314. package/Build/Workers/chunk-PCL3Y7H5.js +0 -82
  315. package/Build/Workers/chunk-PD4GK4EM.js +0 -57
  316. package/Build/Workers/chunk-PEDU33QG.js +0 -2342
  317. package/Build/Workers/chunk-PVTSNNVI.js +0 -288
  318. package/Build/Workers/chunk-QHPZH22L.js +0 -241
  319. package/Build/Workers/chunk-QIZDWZK6.js +0 -301
  320. package/Build/Workers/chunk-QV6DG2YX.js +0 -1483
  321. package/Build/Workers/chunk-QVLAFFJY.js +0 -56
  322. package/Build/Workers/chunk-R4FPNAZ2.js +0 -352
  323. package/Build/Workers/chunk-R4K7EHOU.js +0 -171
  324. package/Build/Workers/chunk-R7JGHDD6.js +0 -789
  325. package/Build/Workers/chunk-RASQEYD4.js +0 -1483
  326. package/Build/Workers/chunk-RG4F5R57.js +0 -454
  327. package/Build/Workers/chunk-RW6ITX7Q.js +0 -3820
  328. package/Build/Workers/chunk-RYSQVJR6.js +0 -398
  329. package/Build/Workers/chunk-S6RJU5NM.js +0 -1054
  330. package/Build/Workers/chunk-SDFHDNS4.js +0 -147
  331. package/Build/Workers/chunk-SF6K72D7.js +0 -124
  332. package/Build/Workers/chunk-SGRGNDOD.js +0 -682
  333. package/Build/Workers/chunk-SM2CDCYF.js +0 -198
  334. package/Build/Workers/chunk-SS5ABQGY.js +0 -102
  335. package/Build/Workers/chunk-T5QBPLE3.js +0 -414
  336. package/Build/Workers/chunk-TN35HP5B.js +0 -1067
  337. package/Build/Workers/chunk-TNWKJNUZ.js +0 -454
  338. package/Build/Workers/chunk-TOAF47AQ.js +0 -102
  339. package/Build/Workers/chunk-TQ4QCOXT.js +0 -2719
  340. package/Build/Workers/chunk-TSDSILQB.js +0 -124
  341. package/Build/Workers/chunk-TVZD72WJ.js +0 -778
  342. package/Build/Workers/chunk-U5LV3F3Z.js +0 -1054
  343. package/Build/Workers/chunk-UEY73NRN.js +0 -38
  344. package/Build/Workers/chunk-UF46SZEZ.js +0 -789
  345. package/Build/Workers/chunk-UNRTMCET.js +0 -398
  346. package/Build/Workers/chunk-UTB7U3O6.js +0 -1992
  347. package/Build/Workers/chunk-UVO6COT2.js +0 -352
  348. package/Build/Workers/chunk-V46YGZE6.js +0 -352
  349. package/Build/Workers/chunk-VAL7DYNR.js +0 -278
  350. package/Build/Workers/chunk-VDGOCROW.js +0 -57
  351. package/Build/Workers/chunk-VFWSSBPT.js +0 -511
  352. package/Build/Workers/chunk-VVYMXI3I.js +0 -1284
  353. package/Build/Workers/chunk-VXWHPYQM.js +0 -837
  354. package/Build/Workers/chunk-VXYUBRSB.js +0 -219
  355. package/Build/Workers/chunk-VZLDLEWI.js +0 -387
  356. package/Build/Workers/chunk-W5OCKMPJ.js +0 -101
  357. package/Build/Workers/chunk-WBSY7HDY.js +0 -837
  358. package/Build/Workers/chunk-WN3F4CVG.js +0 -3201
  359. package/Build/Workers/chunk-WPRUWXGV.js +0 -693
  360. package/Build/Workers/chunk-WTO2ERBP.js +0 -414
  361. package/Build/Workers/chunk-WVHMDVG4.js +0 -959
  362. package/Build/Workers/chunk-XGA23TAX.js +0 -73
  363. package/Build/Workers/chunk-XLQZNQ4Z.js +0 -163
  364. package/Build/Workers/chunk-XLXSDIP5.js +0 -973
  365. package/Build/Workers/chunk-XQ3SKCMM.js +0 -140
  366. package/Build/Workers/chunk-XQH66YJC.js +0 -147
  367. package/Build/Workers/chunk-XTA7BXJG.js +0 -682
  368. package/Build/Workers/chunk-XTIDAFRS.js +0 -476
  369. package/Build/Workers/chunk-XUEDWBUD.js +0 -682
  370. package/Build/Workers/chunk-XYFLRH3H.js +0 -124
  371. package/Build/Workers/chunk-Y7JRTRTO.js +0 -305
  372. package/Build/Workers/chunk-Y7QSMDCJ.js +0 -352
  373. package/Build/Workers/chunk-YCB5TYTR.js +0 -1483
  374. package/Build/Workers/chunk-YEYOSTJX.js +0 -219
  375. package/Build/Workers/chunk-YGFVAGYF.js +0 -630
  376. package/Build/Workers/chunk-YIIACKQO.js +0 -368
  377. package/Build/Workers/chunk-YJGSP6PE.js +0 -511
  378. package/Build/Workers/chunk-YKU2Q3A2.js +0 -1287
  379. package/Build/Workers/chunk-Z4LR5EHE.js +0 -454
  380. package/Build/Workers/chunk-Z66EVE2A.js +0 -44
  381. package/Build/Workers/chunk-ZHIHHHTB.js +0 -414
  382. package/Build/Workers/chunk-ZMBHFYOX.js +0 -1344
  383. package/Build/Workers/chunk-ZNWHFSLE.js +0 -171
  384. package/Build/Workers/chunk-ZQLZG4IN.js +0 -2342
  385. package/Build/Workers/chunk-ZRTSMUZ2.js +0 -414
  386. package/Build/Workers/chunk-ZSGUV73H.js +0 -2342
  387. package/Build/Workers/chunk-ZZUVT5BM.js +0 -476
  388. package/Source/Shaders/Builtin/Functions/clipPolygons.glsl +0 -37
  389. package/Source/Shaders/Builtin/Functions/clipPolygons.js +0 -39
  390. package/Source/Shaders/Builtin/Functions/unpackClippingExtents.glsl +0 -14
  391. package/Source/Shaders/Builtin/Functions/unpackClippingExtents.js +0 -15
  392. package/Source/Shaders/PolygonSignedDistanceFS.glsl +0 -131
  393. package/Source/Shaders/PolygonSignedDistanceFS.js +0 -132
package/index.d.ts CHANGED
@@ -9164,6 +9164,252 @@ export class IonResource extends Resource {
9164
9164
  }): Promise<ImageBitmap | HTMLImageElement> | undefined;
9165
9165
  }
9166
9166
 
9167
+ /**
9168
+ * The type of geometry a snap resolved to, reported by {@link IonSnapService#snap}
9169
+ * as {@link IonSnapService.Result} <code>geometryType</code>. Values match the iTwin.js
9170
+ * {@link https://www.itwinjs.org/reference/core-frontend/locatingelements/hitgeomtype/|HitGeomType} enum.
9171
+ */
9172
+ export enum IonSnapGeometryType {
9173
+ /**
9174
+ * No geometry type.
9175
+ */
9176
+ NONE = 0,
9177
+ /**
9178
+ * A point.
9179
+ */
9180
+ POINT = 1,
9181
+ /**
9182
+ * A line segment.
9183
+ */
9184
+ SEGMENT = 2,
9185
+ /**
9186
+ * A curve.
9187
+ */
9188
+ CURVE = 3,
9189
+ /**
9190
+ * An arc.
9191
+ */
9192
+ ARC = 4,
9193
+ /**
9194
+ * A surface.
9195
+ * <p>
9196
+ * With {@link IonSnapMode} <code>NEAREST</code>, this value indicates
9197
+ * the snap tracked the surface under the cursor because no edge was within
9198
+ * the snap aperture. This means the snap point was not pulled to an edge.
9199
+ * Edge snaps report one of the other types along with the edge geometry in
9200
+ * {@link IonSnapService.Result} <code>curve</code>, which is absent when
9201
+ * tracking a surface.
9202
+ * </p>
9203
+ */
9204
+ SURFACE = 5
9205
+ }
9206
+
9207
+ /**
9208
+ * How close a snap result is to the cursor, reported by {@link IonSnapService#snap}
9209
+ * as {@link IonSnapService.Result} <code>heat</code>. Values match the iTwin.js
9210
+ * {@link https://www.itwinjs.org/reference/core-frontend/locatingelements/snapheat/|SnapHeat} enum.
9211
+ */
9212
+ export enum IonSnapHeat {
9213
+ /**
9214
+ * The snap is not close to the cursor.
9215
+ */
9216
+ NONE = 0,
9217
+ /**
9218
+ * The snap is of interest, but outside the snap aperture.
9219
+ */
9220
+ NOT_IN_RANGE = 1,
9221
+ /**
9222
+ * The snap point is within the snap aperture of the close point in view space.
9223
+ */
9224
+ IN_RANGE = 2
9225
+ }
9226
+
9227
+ /**
9228
+ * The snap modes supported by {@link IonSnapService#snap}. These follow the
9229
+ * MicroStation snap mode semantics; see the
9230
+ * {@link https://docs.bentley.com/LiveContent/web/MicroStation%20Help-v27/en/GUID-77D54C0B-D6FF-13DA-5EC8-3196330F5244.html|MicroStation documentation}
9231
+ * for reference.
9232
+ */
9233
+ export enum IonSnapMode {
9234
+ /**
9235
+ * Snaps to the point on the element nearest to the cursor. When the cursor
9236
+ * is farther than the snap aperture from an edge, tracks the surface under
9237
+ * the cursor instead.
9238
+ */
9239
+ NEAREST = 1,
9240
+ /**
9241
+ * Snaps to the nearest of the element's keypoints. Keypoints are defined by
9242
+ * the element's geometry type and the snap divisor.
9243
+ * <p>
9244
+ * On linear elements, keypoints are regularly spaced along each segment:
9245
+ * the number of keypoints on a segment is one greater than the snap
9246
+ * divisor, and a segment's midpoint is a keypoint only when the divisor is
9247
+ * even. The ion API does not currently accept a snap divisor, so the
9248
+ * server's default divisor applies.
9249
+ * </p>
9250
+ */
9251
+ NEAREST_KEYPOINT = 2,
9252
+ /**
9253
+ * Snaps to the center of elements that have centers (such as circles and
9254
+ * arcs). For other elements, may snap to the centroid.
9255
+ */
9256
+ CENTER = 8
9257
+ }
9258
+
9259
+ /**
9260
+ * The type of the parent geometry a snap resolved to, reported by
9261
+ * {@link IonSnapService#snap} as {@link IonSnapService.Result} <code>parentGeometryType</code>.
9262
+ * Values match the iTwin.js
9263
+ * {@link https://www.itwinjs.org/reference/core-frontend/locatingelements/hitparentgeomtype/|HitParentGeomType} enum.
9264
+ */
9265
+ export enum IonSnapParentGeometryType {
9266
+ /**
9267
+ * No parent geometry type.
9268
+ */
9269
+ NONE = 0,
9270
+ /**
9271
+ * A wire body.
9272
+ */
9273
+ WIRE = 1,
9274
+ /**
9275
+ * A sheet body.
9276
+ */
9277
+ SHEET = 2,
9278
+ /**
9279
+ * A solid body.
9280
+ */
9281
+ SOLID = 3,
9282
+ /**
9283
+ * A mesh.
9284
+ */
9285
+ MESH = 4,
9286
+ /**
9287
+ * Text.
9288
+ */
9289
+ TEXT = 5
9290
+ }
9291
+
9292
+ export namespace IonSnapService {
9293
+ /**
9294
+ * The result of a successful {@link IonSnapService#snap}. Extends
9295
+ * {@link SnapService.Result} with ion-specific fields.
9296
+ * @property [snapPoint] - The snapped point. This is the point to consume.
9297
+ * @property [hitPoint] - The point where the cursor hit the geometry: the nearest edge point when within the snap aperture, otherwise the surface point under the cursor.
9298
+ * @property [heat] - How close the snap point is to the close point in view space.
9299
+ * @property [geometryType] - The type of geometry snapped to.
9300
+ * @property [parentGeometryType] - The type of the parent geometry snapped to.
9301
+ * @property [normal] - The surface normal at the snap point, in the model's local cartesian frame.
9302
+ * @property [curve] - The curve geometry near the snap point, with points as WGS84 degrees objects.
9303
+ */
9304
+ type Result = {
9305
+ snapPoint?: Cartesian3;
9306
+ hitPoint?: Cartesian3;
9307
+ heat?: IonSnapHeat;
9308
+ geometryType?: IonSnapGeometryType;
9309
+ parentGeometryType?: IonSnapParentGeometryType;
9310
+ normal?: any;
9311
+ curve?: any;
9312
+ };
9313
+ }
9314
+
9315
+ /**
9316
+ * Provides interactive snap-to-geometry against a Cesium ion 3D Tiles asset
9317
+ * backed by a BIM/CAD Database model, using the ion REST API's element snap
9318
+ * endpoint.
9319
+ *
9320
+ * This class handles conversions between the reference frame of a
9321
+ * source BIM/CAD Database and the view-dependent screen space pixel
9322
+ * coordinates. Each snap, it transforms using the ion asset's source
9323
+ * reference frame, the camera's transform, and the canvas
9324
+ * dimensions so that view-dependent features— such as the pixel aperture,
9325
+ * nearest position, or surface tracking— behave correctly.
9326
+ *
9327
+ * This object is normally not instantiated directly, use {@link IonSnapService.fromAssetId}.
9328
+ * @example
9329
+ * const snapper = await Cesium.IonSnapService.fromAssetId(123456);
9330
+ * const canvas = viewer.scene.canvas;
9331
+ * const result = await snapper.snap({
9332
+ * elementId: "0x30000000df2",
9333
+ * testPoint: pickedPosition,
9334
+ * camera: viewer.camera,
9335
+ * canvasWidth: canvas.clientWidth,
9336
+ * canvasHeight: canvas.clientHeight,
9337
+ * });
9338
+ * if (Cesium.defined(result)) {
9339
+ * console.log("snapped to", result.snapPoint);
9340
+ * }
9341
+ * @param options - Object with the following properties:
9342
+ * @param options.assetId - The ion asset id.
9343
+ * @param options.resource - The asset's ion API resource.
9344
+ * @param options.ecefTransform - A 4x4 transformation matrix from the source BIM/CAD Database reference frame local to the world's fixed reference frame.
9345
+ */
9346
+ export class IonSnapService {
9347
+ constructor(options: {
9348
+ assetId: number;
9349
+ resource: Resource;
9350
+ ecefTransform: Matrix4;
9351
+ });
9352
+ /**
9353
+ * A 4x4 transformation matrix from the source BIM/CAD Database reference frame local to the world's fixed reference frame.
9354
+ */
9355
+ readonly ecefTransform: Matrix4;
9356
+ /**
9357
+ * The ion asset id this snapper operates on.
9358
+ */
9359
+ readonly assetId: number;
9360
+ /**
9361
+ * Creates an {@link IonSnapService} for the given ion asset, fetching
9362
+ * the asset's ECEF transform from the ion REST API.
9363
+ * @param assetId - The ion ID of a 3D Tiles asset backed by a BIM/CAD Database model.
9364
+ * @param [options] - Object with the following properties:
9365
+ * @param [options.accessToken = Ion.defaultAccessToken] - The ion access token to use.
9366
+ * @param [options.server = Ion.defaultServer] - The ion API server to use.
9367
+ * @returns A snapper bound to the asset.
9368
+ */
9369
+ static fromAssetId(assetId: number, options?: {
9370
+ accessToken?: string;
9371
+ server?: string | Resource;
9372
+ }): Promise<IonSnapService>;
9373
+ /**
9374
+ * Requests a snap against an element of this asset.
9375
+ *
9376
+ * A view-correct world-to-view matrix is composed from
9377
+ * <code>options.camera</code>, <code>options.canvasWidth</code>, and
9378
+ * <code>options.canvasHeight</code> so view-dependent snapping (nearest
9379
+ * ordering, pixel apertures, surface tracking) matches the current view.
9380
+ *
9381
+ * Only 3D views are supported: the camera must be viewing in
9382
+ * {@link SceneMode.SCENE3D}.
9383
+ * @param options - Object with the following properties:
9384
+ * @param options.elementId - The element id to snap to, as a hex string, e.g. <code>"0x30000000df2"</code>.
9385
+ * @param options.testPoint - The point to snap from, typically the picked cursor position.
9386
+ * @param options.camera - The camera defining the current view. Must be viewing in {@link SceneMode.SCENE3D}.
9387
+ * @param options.canvasWidth - The canvas width in CSS pixels.
9388
+ * @param options.canvasHeight - The canvas height in CSS pixels.
9389
+ * @param [options.closePoint = options.testPoint] - A reference point near the target geometry that seeds the snap search.
9390
+ * @param [options.snapAperture = IonSnapService.DEFAULT_SNAP_APERTURE] - The snap tolerance in CSS pixels of the world-to-view output space.
9391
+ * @param [options.snapMode = IonSnapMode.NEAREST] - The type of snap to perform.
9392
+ * @returns The snap result, or <code>undefined</code> if the element was not found or no snap was possible for it.
9393
+ */
9394
+ snap(options: {
9395
+ elementId: string;
9396
+ testPoint: Cartesian3;
9397
+ camera: Camera;
9398
+ canvasWidth: number;
9399
+ canvasHeight: number;
9400
+ closePoint?: Cartesian3;
9401
+ snapAperture?: number;
9402
+ snapMode?: IonSnapMode;
9403
+ }): Promise<IonSnapService.Result | undefined>;
9404
+ /**
9405
+ * The default snap tolerance used by {@link IonSnapService#snap} when
9406
+ * <code>options.snapAperture</code> is not provided, in CSS pixels of the
9407
+ * world-to-view output space. This is {@link SnapService}'s
9408
+ * <code>DEFAULT_SNAP_APERTURE</code> for this implementation.
9409
+ */
9410
+ static readonly DEFAULT_SNAP_APERTURE: number;
9411
+ }
9412
+
9167
9413
  /**
9168
9414
  * Constants related to ISO8601 support.
9169
9415
  */
@@ -9409,6 +9655,53 @@ export class JulianDate {
9409
9655
  static leapSeconds: LeapSecond[];
9410
9656
  }
9411
9657
 
9658
+ /**
9659
+ * Lets applications use their own Basis Universal build to decode KTX2 textures.
9660
+ * Cesium uses its bundled build by default.
9661
+ */
9662
+ export namespace KTX2Transcoder {
9663
+ /**
9664
+ * The two files that make up an application-supplied Basis Universal build.
9665
+ * Both the JavaScript wrapper and Wasm binary must come from the same build.
9666
+ *
9667
+ * The wrapper must be an ES module whose default export is a factory function.
9668
+ * Cesium calls that function in its KTX2 worker with an Emscripten configuration
9669
+ * that contains the binary bytes in <code>wasmBinary</code>.
9670
+ * The function returns a Basis module, or a promise for that module.
9671
+ *
9672
+ * The module must provide <code>initializeBasis</code>, <code>KTX2File</code>,
9673
+ * and <code>transcoder_texture_format</code>. These APIs must be compatible
9674
+ * with Cesium's bundled Basis version.
9675
+ * @property modulePath - The URL of the JavaScript wrapper.
9676
+ * @property wasmBinaryFile - The URL of the matching Wasm binary.
9677
+ */
9678
+ type BasisTranscoderOptions = {
9679
+ modulePath: string;
9680
+ wasmBinaryFile: string;
9681
+ };
9682
+ /**
9683
+ * Uses your own Basis Universal build to decode KTX2 textures.
9684
+ * Leave this undefined to use Cesium's bundled build.
9685
+ *
9686
+ * Before the first KTX2 load, set both the JavaScript wrapper URL and the
9687
+ * matching Wasm binary URL. Relative URLs resolve against the document URL.
9688
+ * Cesium copies the options and rejects changes after loading starts.
9689
+ *
9690
+ * Cesium's existing KTX2 worker loads both files and compiles the Wasm binary.
9691
+ * See {@link KTX2Transcoder.BasisTranscoderOptions} for the wrapper requirements.
9692
+ *
9693
+ * For a Content Security Policy without <code>'unsafe-eval'</code>, use a
9694
+ * compatible Basis build that does not generate JavaScript at runtime.
9695
+ * The worker's policy must allow the wrapper import, binary fetch, and Wasm compilation.
9696
+ * @example
9697
+ * Cesium.KTX2Transcoder.basisTranscoderOptions = {
9698
+ * modulePath: "/decoders/basis_transcoder.js",
9699
+ * wasmBinaryFile: "/decoders/basis_transcoder.wasm",
9700
+ * };
9701
+ */
9702
+ var basisTranscoderOptions: KTX2Transcoder.BasisTranscoderOptions | undefined;
9703
+ }
9704
+
9412
9705
  /**
9413
9706
  * This enumerated type is for representing keyboard modifiers. These are keys
9414
9707
  * that are held down in addition to other event types.
@@ -16393,6 +16686,61 @@ export class SimplePolylineGeometry {
16393
16686
  static createGeometry(simplePolylineGeometry: SimplePolylineGeometry): Geometry | undefined;
16394
16687
  }
16395
16688
 
16689
+ export namespace SnapService {
16690
+ /**
16691
+ * The result of a successful {@link SnapService#snap}.
16692
+ *
16693
+ * Implementations may return additional properties beyond those listed here.
16694
+ * @property [snapPoint] - The snapped point. This is the point to consume.
16695
+ * @property [hitPoint] - The point where the cursor hit the geometry: the nearest edge point when within the snap aperture, otherwise the surface point under the cursor.
16696
+ */
16697
+ type Result = {
16698
+ snapPoint?: Cartesian3;
16699
+ hitPoint?: Cartesian3;
16700
+ };
16701
+ }
16702
+
16703
+ /**
16704
+ * Provides snap-to-geometry through an external service, which snaps against
16705
+ * source geometry hosted remotely rather than geometry loaded in the scene.
16706
+ * This type describes an interface and is not intended to be used.
16707
+ */
16708
+ export class SnapService {
16709
+ /**
16710
+ * Requests a snap against geometry known to the service.
16711
+ *
16712
+ * The camera and canvas dimensions describe the current view so the
16713
+ * implementation can perform view-dependent snapping (nearest ordering,
16714
+ * pixel apertures, surface tracking) correctly.
16715
+ *
16716
+ * Implementations may accept additional options beyond those listed here.
16717
+ * @param options - Object with the following properties:
16718
+ * @param options.elementId - An implementation-defined identifier of the geometry to snap to.
16719
+ * @param options.testPoint - The point to snap from, typically the picked cursor position.
16720
+ * @param options.camera - The camera defining the current view.
16721
+ * @param options.canvasWidth - The canvas width in CSS pixels.
16722
+ * @param options.canvasHeight - The canvas height in CSS pixels.
16723
+ * @param [options.closePoint = options.testPoint] - A reference point near the target geometry that seeds the snap search.
16724
+ * @param [options.snapAperture = SnapService.DEFAULT_SNAP_APERTURE] - The snap tolerance in CSS pixels.
16725
+ * @returns The snap result, or <code>undefined</code> if no snap was possible.
16726
+ */
16727
+ snap(options: {
16728
+ elementId: string;
16729
+ testPoint: Cartesian3;
16730
+ camera: Camera;
16731
+ canvasWidth: number;
16732
+ canvasHeight: number;
16733
+ closePoint?: Cartesian3;
16734
+ snapAperture?: number;
16735
+ }): Promise<SnapService.Result | undefined>;
16736
+ /**
16737
+ * The default snap tolerance used by {@link SnapService#snap} when
16738
+ * <code>options.snapAperture</code> is not provided, in CSS pixels.
16739
+ * The value is implementation-defined.
16740
+ */
16741
+ static readonly DEFAULT_SNAP_APERTURE: number;
16742
+ }
16743
+
16396
16744
  /**
16397
16745
  * A description of a sphere centered at the origin.
16398
16746
  * @example
@@ -16729,6 +17077,9 @@ export class TaskProcessor {
16729
17077
  * Posts a message to a web worker with configuration to initialize loading
16730
17078
  * and compiling a web assembly module asynchronously, as well as an optional
16731
17079
  * fallback JavaScript module to use if Web Assembly is not supported.
17080
+ *
17081
+ * Only the resolved url of the binary is posted. The worker requests and compiles
17082
+ * the bytes itself, so WebAssembly is never fetched or compiled by the document.
16732
17083
  * @param [webAssemblyOptions] - An object with the following properties:
16733
17084
  * @param [webAssemblyOptions.modulePath] - The path of the web assembly JavaScript wrapper module.
16734
17085
  * @param [webAssemblyOptions.wasmBinaryFile] - The path of the web assembly binary file.
@@ -17997,6 +18348,26 @@ export namespace TrustedServers {
17997
18348
  * @returns Returns true if url is trusted, false otherwise.
17998
18349
  */
17999
18350
  function contains(url: string): boolean;
18351
+ /**
18352
+ * Packs the registry into an array of trusted `host:port` authorities, so it
18353
+ * can be sent across a realm boundary (e.g. to a Web Worker) and restored
18354
+ * with {@link TrustedServers.unpack}. `TrustedServers` is module state, so a
18355
+ * worker's copy of this module starts with an empty registry even though the
18356
+ * document already called {@link TrustedServers.add}.
18357
+ * @example
18358
+ * // Send the registry to a worker, then restore it there
18359
+ * worker.postMessage({ trustedServers: TrustedServers.pack() });
18360
+ * // In the worker:
18361
+ * TrustedServers.unpack(data.trustedServers);
18362
+ * @returns The packed array of trusted `host:port` authorities.
18363
+ */
18364
+ function pack(): string[];
18365
+ /**
18366
+ * Replaces the registry with the authorities from an array packed by
18367
+ * {@link TrustedServers.pack}.
18368
+ * @param packedAuthorities - The packed array of trusted `host:port` authorities.
18369
+ */
18370
+ function unpack(packedAuthorities: string[]): void;
18000
18371
  /**
18001
18372
  * Clears the registry
18002
18373
  * @example
@@ -27971,6 +28342,38 @@ export type BufferPolygonOptions = {
27971
28342
  triangles?: TypedArray;
27972
28343
  };
27973
28344
 
28345
+ /**
28346
+ * @property [primitiveCountMax = BufferPrimitiveCollection.DEFAULT_CAPACITY] - Maximum number of polygons.
28347
+ * @property [vertexCountMax = BufferPrimitiveCollection.DEFAULT_CAPACITY] - Maximum number of vertices.
28348
+ * @property [holeCountMax = BufferPrimitiveCollection.DEFAULT_CAPACITY] - Maximum number of holes.
28349
+ * @property [triangleCountMax = BufferPrimitiveCollection.DEFAULT_CAPACITY] - Maximum number of triangles.
28350
+ * @property [positionDatatype = ComponentDatatype.DOUBLE] - The component datatype used to store position values.
28351
+ * @property [positionNormalized = false] - When <code>true</code>, integer position values are treated as normalized,
28352
+ * where the full integer range maps to [-1, 1] (signed) or [0, 1] (unsigned). Only relevant for integer position datatypes
28353
+ * (BYTE, UNSIGNED_BYTE, SHORT, UNSIGNED_SHORT).
28354
+ * @property [allowPicking = true] - When <code>true</code>, primitives are pickable with {@link Scene#pick}. When <code>false</code>, memory and initialization cost are lower.
28355
+ * @property [boundingVolume] - Bounding volume, in world space, for the collection. When
28356
+ * unspecified, a bounding volume is computed automatically and updated when primitive positions change. When
28357
+ * specified, users are responsible for updating bounding volume as needed. Pre-computing the bounding volume
28358
+ * manually, and updating it only as needed, will improve performance for larger dynamic collections.
28359
+ * @property [heightReference = HeightReference.NONE] - When set to a clamping value, the
28360
+ * collection is draped onto terrain and/or 3D Tiles, rather than drawn as geometry of its own.
28361
+ */
28362
+ export type BufferPolygonCollectionOptions = {
28363
+ primitiveCountMax?: number;
28364
+ vertexCountMax?: number;
28365
+ holeCountMax?: number;
28366
+ triangleCountMax?: number;
28367
+ positionDatatype?: ComponentDatatype;
28368
+ positionNormalized?: boolean;
28369
+ show?: boolean;
28370
+ allowPicking?: boolean;
28371
+ boundingVolume?: BoundingSphere;
28372
+ debugShowBoundingVolume?: boolean;
28373
+ blendOption?: BlendOption;
28374
+ heightReference?: HeightReference;
28375
+ };
28376
+
27974
28377
  /**
27975
28378
  * Collection of polygons held in ArrayBuffer storage for performance and memory optimization.
27976
28379
  *
@@ -28006,26 +28409,9 @@ export type BufferPolygonOptions = {
28006
28409
  * collection.get(i, polygon);
28007
28410
  * polygon.setMaterial(material);
28008
28411
  * }
28009
- * @param [options.allowPicking = true] - When <code>true</code>, primitives are pickable with {@link Scene#pick}. When <code>false</code>, memory and initialization cost are lower.
28010
- * @param [options.boundingVolume] - Bounding volume, in world space, for the collection. When
28011
- * unspecified, a bounding volume is computed automatically and updated when primitive positions change. When
28012
- * specified, users are responsible for updating bounding volume as needed. Pre-computing the bounding volume
28013
- * manually, and updating it only as needed, will improve performance for larger dynamic collections.
28014
28412
  */
28015
28413
  export class BufferPolygonCollection extends BufferPrimitiveCollection<BufferPolygon> {
28016
- constructor(options: {
28017
- primitiveCountMax?: number;
28018
- vertexCountMax?: number;
28019
- holeCountMax?: number;
28020
- triangleCountMax?: number;
28021
- positionDatatype?: ComponentDatatype;
28022
- positionNormalized?: boolean;
28023
- show?: boolean;
28024
- allowPicking?: boolean;
28025
- boundingVolume?: BoundingSphere;
28026
- debugShowBoundingVolume?: boolean;
28027
- blendOption?: BlendOption;
28028
- });
28414
+ constructor(options?: BufferPolygonCollectionOptions);
28029
28415
  /**
28030
28416
  * Duplicates the contents of this collection into the result collection.
28031
28417
  * Result collection is not resized, and must contain enough space for all
@@ -28037,8 +28423,18 @@ export class BufferPolygonCollection extends BufferPrimitiveCollection<BufferPol
28037
28423
  * @example
28038
28424
  * const result = new BufferPolygonCollection({ ... }); // allocate larger 'result' collection
28039
28425
  * BufferPolygonCollection.clone(collection, result); // copy polygons from 'collection' into 'result'
28426
+ * @param [predicate] - When provided, only polygons for which this returns <code>true</code> are copied. Surviving polygons are compacted into contiguous indices.
28040
28427
  */
28041
- static clone(collection: BufferPolygonCollection, result: BufferPolygonCollection): BufferPolygonCollection;
28428
+ static clone(collection: BufferPolygonCollection, result: BufferPolygonCollection, predicate?: (...params: any[]) => any): BufferPolygonCollection;
28429
+ /**
28430
+ * Returns a copy of the given collection, overriding any constructor options
28431
+ * provided. Omitted options are inherited from the source collection. Any
28432
+ * resized buffers must be large enough to hold every polygon.
28433
+ * @param collection - Source collection to copy.
28434
+ * @param [options] - Constructor options to override. Omitted options are inherited from the source collection.
28435
+ * @param [predicate] - When provided, only polygons for which this returns <code>true</code> are copied. Surviving polygons are compacted into contiguous indices.
28436
+ */
28437
+ static fromCollection(collection: BufferPolygonCollection, options?: BufferPolygonCollectionOptions, predicate?: (...params: any[]) => any): BufferPolygonCollection;
28042
28438
  /**
28043
28439
  * Adds a new polygon to the collection, with the specified options. A
28044
28440
  * {@link BufferPolygon} instance is linked to the new polygon, using
@@ -28190,8 +28586,34 @@ export type BufferPolylineOptions = {
28190
28586
  * collection.get(i, polyline);
28191
28587
  * polyline.setMaterial(material);
28192
28588
  * }
28589
+ * @param [options.modelMatrix = Matrix4.IDENTITY] - Transforms geometry from model to world coordinates.
28590
+ * @param [options.allowPicking = false] - When <code>true</code>, primitives are pickable with {@link Scene#pick}. When <code>false</code>, memory and initialization cost are lower.
28591
+ * @param [options.boundingVolume] - Bounding volume, in world space, for the collection.
28592
+ * @param [options.widthUnits = "pixels"] - Unit of polyline widths in this collection:
28593
+ * <code>"pixels"</code> on the screen, or <code>"meters"</code> in world space. A clamped
28594
+ * {@link HeightReference} measures those meters on the ellipsoid surface, so elevation and terrain
28595
+ * slope stretch the drawn width.
28193
28596
  */
28194
28597
  export class BufferPolylineCollection extends BufferPrimitiveCollection<BufferPolyline> {
28598
+ constructor(options?: {
28599
+ modelMatrix?: Matrix4;
28600
+ primitiveCountMax?: number;
28601
+ vertexCountMax?: number;
28602
+ show?: boolean;
28603
+ positionDatatype?: ComponentDatatype;
28604
+ positionNormalized?: boolean;
28605
+ allowPicking?: boolean;
28606
+ boundingVolume?: BoundingSphere;
28607
+ debugShowBoundingVolume?: boolean;
28608
+ blendOption?: BlendOption;
28609
+ heightReference?: HeightReference;
28610
+ widthUnits?: "pixels" | "meters";
28611
+ });
28612
+ /**
28613
+ * Unit of polyline widths in this collection: <code>"pixels"</code> on the screen, or
28614
+ * <code>"meters"</code> in world space, measured on the ellipsoid surface when clamped.
28615
+ */
28616
+ readonly widthUnits: "pixels" | "meters";
28195
28617
  /**
28196
28618
  * Adds a new polyline to the collection, with the specified options. A
28197
28619
  * {@link BufferPolyline} instance is linked to the new polyline, using
@@ -28206,7 +28628,8 @@ export class BufferPolylineCollection extends BufferPrimitiveCollection<BufferPo
28206
28628
  * @property [color = Color.WHITE] - Color of fill.
28207
28629
  * @property [outlineColor = Color.WHITE] - Color of outline.
28208
28630
  * @property [outlineWidth = 0.0] - Width of outline, 0-255px.
28209
- * @property [width = 1.0] - Width of line, 0-255px.
28631
+ * @property [width = 1.0] - Width of line, in the unit selected by
28632
+ * {@link BufferPolylineCollection#widthUnits}.
28210
28633
  */
28211
28634
  export type BufferPolylineMaterialOptions = {
28212
28635
  color?: Color;
@@ -28225,7 +28648,7 @@ export type BufferPolylineMaterialOptions = {
28225
28648
  export class BufferPolylineMaterial extends BufferPrimitiveMaterial {
28226
28649
  constructor(options?: BufferPolylineMaterialOptions);
28227
28650
  /**
28228
- * Width of polyline, 0–255px.
28651
+ * Width of polyline, in the unit selected by {@link BufferPolylineCollection#widthUnits}.
28229
28652
  */
28230
28653
  width: number;
28231
28654
  static pack(material: BufferPolylineMaterial, view: DataView, byteOffset: number): void;
@@ -28296,6 +28719,39 @@ export type BufferPrimitiveOptions = {
28296
28719
  pickObject?: any;
28297
28720
  };
28298
28721
 
28722
+ /**
28723
+ * @property [modelMatrix = Matrix4.IDENTITY] - Transforms geometry from model to world coordinates.
28724
+ * @property [primitiveCountMax = BufferPrimitiveCollection.DEFAULT_CAPACITY] - Maximum number of primitives.
28725
+ * @property [vertexCountMax = BufferPrimitiveCollection.DEFAULT_CAPACITY] - Maximum number of vertices.
28726
+ * @property [positionDatatype = ComponentDatatype.DOUBLE] - The component datatype used to store position values.
28727
+ * @property [positionNormalized = false] - When <code>true</code>, integer position values are treated as normalized,
28728
+ * where the full integer range maps to [-1, 1] (signed) or [0, 1] (unsigned). Only relevant for integer position datatypes
28729
+ * (BYTE, UNSIGNED_BYTE, SHORT, UNSIGNED_SHORT).
28730
+ * @property [allowPicking = false] - When <code>true</code>, primitives are pickable with {@link Scene#pick}. When <code>false</code>, memory and initialization cost are lower.
28731
+ * @property [boundingVolume] - Bounding volume, in world space, for the collection. When
28732
+ * unspecified, a bounding volume is computed automatically and updated when primitive positions change. When
28733
+ * specified, users are responsible for updating bounding volume as needed. Pre-computing the bounding volume
28734
+ * manually, and updating it only as needed, will improve performance for larger dynamic collections.
28735
+ * @property [options.heightReference = HeightReference.NONE] - When set to a clamping value, the
28736
+ * collection is draped onto the surfaces selected by the value: {@link HeightReference.CLAMP_TO_TERRAIN} drapes
28737
+ * onto the globe, {@link HeightReference.CLAMP_TO_3D_TILE} drapes onto 3D Tiles, and
28738
+ * {@link HeightReference.CLAMP_TO_GROUND} drapes onto both. Only {@link BufferPolylineCollection} and
28739
+ * {@link BufferPolygonCollection} support draping, and only once the collection has been added to
28740
+ * {@link Scene#primitives}. A draped collection is not also drawn as geometry of its own.
28741
+ */
28742
+ export type BufferPrimitiveCollectionOptions = {
28743
+ modelMatrix?: Matrix4;
28744
+ primitiveCountMax?: number;
28745
+ vertexCountMax?: number;
28746
+ show?: boolean;
28747
+ positionDatatype?: ComponentDatatype;
28748
+ positionNormalized?: boolean;
28749
+ allowPicking?: boolean;
28750
+ boundingVolume?: BoundingSphere;
28751
+ debugShowBoundingVolume?: boolean;
28752
+ blendOption?: BlendOption;
28753
+ };
28754
+
28299
28755
  /**
28300
28756
  * Collection of primitives held in ArrayBuffer storage for performance and memory optimization.
28301
28757
  *
@@ -28303,33 +28759,14 @@ export type BufferPrimitiveOptions = {
28303
28759
  * be careful to avoid allocating "N" instances of any related JavaScript object. {@link BufferPrimitive},
28304
28760
  * {@link Color}, {@link Cartesian3}, and other objects can all be reused when working with large collections,
28305
28761
  * using the {@link https://en.wikipedia.org/wiki/Flyweight_pattern|flyweight pattern}.</p>
28306
- * @param [options.modelMatrix = Matrix4.IDENTITY] - Transforms geometry from model to world coordinates.
28307
- * @param [options.positionNormalized = false] - When <code>true</code>, integer position values are treated as normalized,
28308
- * where the full integer range maps to [-1, 1] (signed) or [0, 1] (unsigned). Only relevant for integer position datatypes
28309
- * (BYTE, UNSIGNED_BYTE, SHORT, UNSIGNED_SHORT).
28310
- * @param [options.allowPicking = false] - When <code>true</code>, primitives are pickable with {@link Scene#pick}. When <code>false</code>, memory and initialization cost are lower.
28311
- * @param [options.boundingVolume] - Bounding volume, in world space, for the collection. When
28312
- * unspecified, a bounding volume is computed automatically and updated when primitive positions change. When
28313
- * specified, users are responsible for updating bounding volume as needed. Pre-computing the bounding volume
28314
- * manually, and updating it only as needed, will improve performance for larger dynamic collections.
28315
28762
  */
28316
28763
  export class BufferPrimitiveCollection<T extends BufferPrimitive> {
28317
- constructor(options: {
28318
- modelMatrix?: Matrix4;
28319
- primitiveCountMax?: number;
28320
- vertexCountMax?: number;
28321
- show?: boolean;
28322
- positionDatatype?: ComponentDatatype;
28323
- positionNormalized?: boolean;
28324
- allowPicking?: boolean;
28325
- boundingVolume?: BoundingSphere;
28326
- debugShowBoundingVolume?: boolean;
28327
- blendOption?: BlendOption;
28328
- });
28764
+ constructor(options?: BufferPrimitiveCollectionOptions);
28329
28765
  /**
28330
28766
  * Determines if primitives in this collection will be shown.
28331
28767
  */
28332
28768
  show: boolean;
28769
+ protected readonly _heightReference: HeightReference;
28333
28770
  /**
28334
28771
  * Transforms geometry from model to world coordinates.
28335
28772
  */
@@ -28373,8 +28810,37 @@ export class BufferPrimitiveCollection<T extends BufferPrimitive> {
28373
28810
  * @example
28374
28811
  * const result = new BufferPrimitiveCollection({ ... }); // allocate larger 'result' collection
28375
28812
  * BufferPrimitiveCollection.clone(collection, result); // copy primitives from 'collection' into 'result'
28813
+ * @param [predicate] - When provided, only primitives for which this returns <code>true</code> are copied. Surviving primitives are compacted into contiguous indices.
28814
+ */
28815
+ static clone<T extends BufferPrimitive>(collection: BufferPrimitiveCollection<T>, result: BufferPrimitiveCollection<T>, predicate?: (...params: any[]) => any): void;
28816
+ /**
28817
+ * Returns a copy of the given collection, overriding any constructor options
28818
+ * provided. Omitted options are inherited from the source collection. Any
28819
+ * resized buffers must be large enough to hold every primitive.
28820
+ *
28821
+ * <p>Collection-level state (model matrix, blend option, picking, bounding-volume
28822
+ * mode, etc.) is carried over, but GPU resources are not: the source collection
28823
+ * retains ownership of its renderer resources, so the caller is responsible for
28824
+ * calling {@link BufferPrimitiveCollection#destroy} on the source once it is no
28825
+ * longer needed.</p>
28826
+ * @example
28827
+ * const grown = BufferPrimitiveCollection.fromCollection(collection, {
28828
+ * primitiveCountMax: collection.primitiveCountMax * 2,
28829
+ * vertexCountMax: collection.vertexCountMax * 2,
28830
+ * });
28831
+ * collection.destroy(); // release the source collection's GPU resources
28832
+ * @example
28833
+ * // Grow while dropping hidden primitives.
28834
+ * const compacted = BufferPrimitiveCollection.fromCollection(
28835
+ * collection,
28836
+ * { primitiveCountMax: collection.primitiveCountMax * 2 },
28837
+ * (primitive) => primitive.show,
28838
+ * );
28839
+ * @param collection - Source collection to copy.
28840
+ * @param [options] - Constructor options to override. Omitted options are inherited from the source collection.
28841
+ * @param [predicate] - When provided, only primitives for which this returns <code>true</code> are copied. Surviving primitives are compacted into contiguous indices.
28376
28842
  */
28377
- static clone<T extends BufferPrimitive>(collection: BufferPrimitiveCollection<T>, result: BufferPrimitiveCollection<T>): void;
28843
+ static fromCollection<T extends BufferPrimitive>(collection: BufferPrimitiveCollection<T>, options?: BufferPrimitiveCollectionOptions, predicate?: (...params: any[]) => any): BufferPrimitiveCollection<T>;
28378
28844
  /**
28379
28845
  * Makes the given {@link BufferPrimitive} a view onto this collection's
28380
28846
  * primitive at the given index, for use when reading/writing primitive
@@ -28444,6 +28910,12 @@ export class BufferPrimitiveCollection<T extends BufferPrimitive> {
28444
28910
  * (unsigned).
28445
28911
  */
28446
28912
  readonly positionNormalized: boolean;
28913
+ /**
28914
+ * Determines which surfaces the collection is draped onto, in addition to
28915
+ * being drawn as standalone geometry. Draping requires that the collection
28916
+ * has been added to {@link Scene#primitives}.
28917
+ */
28918
+ readonly heightReference: HeightReference;
28447
28919
  /**
28448
28920
  * Returns a JSON-serializable array representing the collection. This encoding
28449
28921
  * is not memory-efficient, and should generally be used for debugging and
@@ -32160,26 +32632,66 @@ export class ClippingPlaneCollection {
32160
32632
  * const polygon = new Cesium.ClippingPolygon({
32161
32633
  * positions: positions
32162
32634
  * });
32635
+ * @example
32636
+ * // A clipping polygon with two holes. Regions inside the holes are not clipped.
32637
+ * const outerRing = Cesium.Cartesian3.fromDegreesArray([
32638
+ * -100.0, 40.0,
32639
+ * -90.0, 40.0,
32640
+ * -90.0, 50.0,
32641
+ * -100.0, 50.0,
32642
+ * ]);
32643
+ *
32644
+ * const firstHole = Cesium.Cartesian3.fromDegreesArray([
32645
+ * -98.0, 42.0,
32646
+ * -96.0, 42.0,
32647
+ * -96.0, 44.0,
32648
+ * -98.0, 44.0,
32649
+ * ]);
32650
+ *
32651
+ * const secondHole = Cesium.Cartesian3.fromDegreesArray([
32652
+ * -94.0, 46.0,
32653
+ * -92.0, 46.0,
32654
+ * -92.0, 48.0,
32655
+ * -94.0, 48.0,
32656
+ * ]);
32657
+ *
32658
+ * const polygonWithHoles = new Cesium.ClippingPolygon({
32659
+ * positions: outerRing,
32660
+ * holes: [firstHole, secondHole],
32661
+ * });
32163
32662
  * @param options - Object with the following properties:
32164
32663
  * @param options.positions - A list of three or more Cartesian coordinates defining the outer ring of the clipping polygon.
32664
+ * @param [options.holes] - An array of interior rings (holes), each a list of three or more Cartesian coordinates. Regions inside a hole are excluded from the polygon.
32165
32665
  */
32166
32666
  export class ClippingPolygon {
32167
32667
  constructor(options: {
32168
32668
  positions: Cartesian3[];
32669
+ holes?: Cartesian3[][];
32169
32670
  ellipsoid?: Ellipsoid;
32170
32671
  });
32171
32672
  /**
32172
- * Returns the total number of positions in the polygon, include any holes.
32673
+ * Returns the total number of positions in the polygon, including any holes.
32173
32674
  */
32174
32675
  readonly length: number;
32175
32676
  /**
32176
- * Returns the outer ring of positions.
32677
+ * Returns the outer ring of positions. A ClippingPolygon's geometry is
32678
+ * immutable; the returned array and its coordinates are frozen.
32177
32679
  */
32178
32680
  readonly positions: Cartesian3[];
32681
+ /**
32682
+ * Returns the interior rings (holes) of the polygon, each a list of positions.
32683
+ */
32684
+ readonly holes: Cartesian3[][];
32179
32685
  /**
32180
32686
  * Returns the ellipsoid used to project the polygon onto surfaces when clipping.
32181
32687
  */
32182
32688
  readonly ellipsoid: Ellipsoid;
32689
+ /**
32690
+ * Returns the cartographic rectangle enclosing the polygon, computed once on
32691
+ * construction. Since a ClippingPolygon's geometry is immutable, this rectangle
32692
+ * never changes.
32693
+ */
32694
+ readonly rectangle: Rectangle;
32183
32695
  /**
32184
32696
  * Clones the ClippingPolygon without setting its ownership.
32185
32697
  * @param polygon - The ClippingPolygon to be cloned
@@ -32203,6 +32715,8 @@ export class ClippingPolygon {
32203
32715
  computeRectangle(result?: Rectangle): Rectangle;
32204
32716
  }
32205
32717
 
32718
+ export const bufferPolygonScratch: any;
32719
+
32206
32720
  /**
32207
32721
  * Specifies a set of clipping polygons. Clipping polygons selectively disable rendering in a region
32208
32722
  * inside or outside the specified list of {@link ClippingPolygon} objects for a single glTF model, 3D Tileset, or the globe.
@@ -32233,7 +32747,8 @@ export class ClippingPolygon {
32233
32747
  * @param [options.polygons = []] - An array of {@link ClippingPolygon} objects used to selectively disable rendering on the inside of each polygon.
32234
32748
  * @param [options.enabled = true] - Determines whether the clipping polygons are active.
32235
32749
  * @param [options.inverse = false] - If true, a region will be clipped if it is outside of every polygon in the collection. Otherwise, a region will only be clipped if it is on the inside of any polygon.
32236
- * @param [options.quality = 1.0] - A scalar that controls the resolution of the signed distance texture used for clipping. Values greater than 1.0 increase quality, values less than 1.0 decrease it. Must be greater than 0.0.
32750
+ * @param [options.quality = 1.0] - A scalar that controls the resolution of the signed distance texture used for clipping. Values greater than 1.0 increase quality, values less than 1.0 decrease it. Must be greater than 0.0. <p>Deprecated in CesiumJS 1.145 and will be removed in 1.147. Signed distance field clipping was replaced with vector clipping, so this option no longer has any effect.</p>
32751
+ * @param [options.ellipsoid = Ellipsoid.default] - The ellipsoid to use to project the clipping polygons onto the globe.
32237
32752
  */
32238
32753
  export class ClippingPolygonCollection {
32239
32754
  constructor(options?: {
@@ -32241,6 +32756,7 @@ export class ClippingPolygonCollection {
32241
32756
  enabled?: boolean;
32242
32757
  inverse?: boolean;
32243
32758
  quality?: number;
32759
+ ellipsoid?: Ellipsoid;
32244
32760
  });
32245
32761
  /**
32246
32762
  * If true, clipping will be enabled.
@@ -32252,11 +32768,6 @@ export class ClippingPolygonCollection {
32252
32768
  * inside of any polygon.
32253
32769
  */
32254
32770
  inverse: boolean;
32255
- /**
32256
- * A scalar that controls the resolution of the signed distance texture used for clipping.
32257
- * Values greater than 1.0 increase quality, values less than 1.0 decrease it. Must be greater than 0.0.
32258
- */
32259
- quality: number;
32260
32771
  /**
32261
32772
  * An event triggered when a new clipping polygon is added to the collection. Event handlers
32262
32773
  * are passed the new polygon and the index at which it was added.
@@ -32267,12 +32778,24 @@ export class ClippingPolygonCollection {
32267
32778
  * are passed the new polygon and the index from which it was removed.
32268
32779
  */
32269
32780
  polygonRemoved: Event;
32781
+ /**
32782
+ * The ellipsoid to use to project the clipping polygons onto the globe.
32783
+ */
32784
+ ellipsoid: Ellipsoid;
32270
32785
  /**
32271
32786
  * Returns the number of polygons in this collection. This is commonly used with
32272
32787
  * {@link ClippingPolygonCollection#get} to iterate over all the polygons
32273
32788
  * in the collection.
32274
32789
  */
32275
32790
  readonly length: number;
32791
+ /**
32792
+ * If true, a debug texture visualizing the signed distance field is shown.
32793
+ */
32794
+ debugShowDistanceTexture: boolean;
32795
+ /**
32796
+ * A scalar that controlled the resolution of the signed distance texture used for clipping.
32797
+ */
32798
+ quality: number;
32276
32799
  /**
32277
32800
  * Adds the specified {@link ClippingPolygon} to the collection to be used to selectively disable rendering
32278
32801
  * on the inside of each polygon. Use {@link ClippingPolygonCollection#unionClippingRegions} to modify
@@ -34617,6 +35140,11 @@ export class GaussianSplat3DTileContent implements Cesium3DTileContent {
34617
35140
  getFeature(batchId: number): Cesium3DTileFeature;
34618
35141
  }
34619
35142
 
35143
+ /**
35144
+ * @property [heightReference = HeightReference.NONE] - Allows clamping (draping)
35145
+ * polylines and polygons on terrain and 3D Tiles. Point clamping is not currently supported.
35146
+ * @property [scene] - Required for primitives that use a clamping {@link HeightReference}.
35147
+ */
34620
35148
  export type GeoJsonPrimitiveConstructorOptions = {
34621
35149
  geoJson?: any;
34622
35150
  url?: Resource | string;
@@ -34624,6 +35152,8 @@ export type GeoJsonPrimitiveConstructorOptions = {
34624
35152
  allowPicking?: boolean;
34625
35153
  show?: boolean;
34626
35154
  pickObjectFactory?: (...params: any[]) => any;
35155
+ heightReference?: HeightReference;
35156
+ scene?: Scene;
34627
35157
  };
34628
35158
 
34629
35159
  /**
@@ -34635,14 +35165,33 @@ export type GeoJsonPrimitiveConstructorOptions = {
34635
35165
  * Instead, it exposes high-throughput buffer primitive collections that can be
34636
35166
  * added directly to {@link Scene#primitives}.
34637
35167
  * @example
35168
+ * // Load GeoJSON
34638
35169
  * const loader = await Cesium.GeoJsonPrimitive.fromUrl("./data.geojson");
34639
35170
  * viewer.scene.primitives.add(loader);
34640
- *
35171
+ * @example
35172
+ * // Access GeoJSON features and properties
34641
35173
  * loader.points; // BufferPointCollection | undefined
34642
35174
  * loader.polylines; // BufferPolylineCollection | undefined
34643
35175
  * loader.polygons; // BufferPolygonCollection | undefined
34644
35176
  * loader.ids; // source feature IDs
34645
35177
  * loader.properties; // source feature properties
35178
+ * @example
35179
+ * // Style GeoJSON
35180
+ * const material = new Cesium.BufferPolylineMaterial({
35181
+ * color: Cesium.Color.RED,
35182
+ * width: 4,
35183
+ * });
35184
+ *
35185
+ * const polyline = new Cesium.BufferPolyline();
35186
+ * const count = primitive.polylines.primitiveCount;
35187
+ * for (let i = 0; i < count; i++) {
35188
+ * primitive.polylines.get(i, polyline);
35189
+ *
35190
+ * const properties = primitive.getProperties(polyline.featureId);
35191
+ * if (properties.myCustomProperty === true) {
35192
+ * polyline.setMaterial(material);
35193
+ * }
35194
+ * }
34646
35195
  */
34647
35196
  export class GeoJsonPrimitive {
34648
35197
  constructor(options?: GeoJsonPrimitiveConstructorOptions);
@@ -36302,7 +36851,7 @@ export enum HeightReference {
36302
36851
  */
36303
36852
  RELATIVE_TO_GROUND = 2,
36304
36853
  /**
36305
- * The position is clamped to terain.
36854
+ * The position is clamped to terrain.
36306
36855
  */
36307
36856
  CLAMP_TO_TERRAIN = 3,
36308
36857
  /**
@@ -38406,12 +38955,20 @@ export class MVTDataProvider extends UrlTemplate3DTilesDataProvider {
38406
38955
  * @param [options.maxZoom = 14] - Maximum zoom level represented in the generated tileset.
38407
38956
  * @param [options.extent] - Optional geographic extent in radians to constrain the generated tile tree.
38408
38957
  * @param [options.featureIdProperty] - MVT property name to use as feature ID.
38958
+ * @param [options.heightReference] - Drapes the decoded points, lines and polygons onto the
38959
+ * surfaces selected by the value: {@link HeightReference.CLAMP_TO_TERRAIN} drapes onto the globe,
38960
+ * {@link HeightReference.CLAMP_TO_3D_TILE} drapes onto 3D Tiles and models, and
38961
+ * {@link HeightReference.CLAMP_TO_GROUND} drapes onto both. Requires <code>options.scene</code>.
38962
+ * @param [options.scene] - The scene the generated tileset is rendered in, required when
38963
+ * <code>options.heightReference</code> is a clamping value.
38409
38964
  */
38410
38965
  static fromUrl(url: Resource | string, options?: {
38411
38966
  minZoom?: number;
38412
38967
  maxZoom?: number;
38413
38968
  extent?: Rectangle;
38414
38969
  featureIdProperty?: string;
38970
+ heightReference?: HeightReference;
38971
+ scene?: Scene;
38415
38972
  }): Promise<MVTDataProvider>;
38416
38973
  }
38417
38974
 
@@ -44722,12 +45279,14 @@ export class Scene {
44722
45279
  * The result of a snap operation. See {@link Scene#snap}.
44723
45280
  * @property object - The snapped primitive or feature.
44724
45281
  * @property position - The world-space position of the snap point, un-projected from the snap framebuffer's eye-space depth.
45282
+ * @property surfacePosition - The world-space position of the same object's surface fragment nearest the snap point. For a surface snap this equals <code>position</code>; for an edge snap it is a point on a face of the object rather than on its silhouette, or <code>undefined</code> if no surface fragment of the object is visible in the search region.
44725
45283
  * @property screenPosition - The window coordinates of the snap point.
44726
45284
  * @property isEdge - <code>true</code> if the snap point lies on an edge; <code>false</code> if it lies on a surface.
44727
45285
  */
44728
45286
  export type SceneSnapResult = {
44729
45287
  object: any;
44730
45288
  position: Cartesian3;
45289
+ surfacePosition: Cartesian3 | undefined;
44731
45290
  screenPosition: Cartesian2;
44732
45291
  isEdge: boolean;
44733
45292
  };
@@ -45377,6 +45936,29 @@ export enum SplitDirection {
45377
45936
  RIGHT = 1
45378
45937
  }
45379
45938
 
45939
+ /**
45940
+ * Configures the Web Worker module used to decode SPZ-compressed Gaussian
45941
+ * splats.
45942
+ */
45943
+ export namespace SpzDecoder {
45944
+ /**
45945
+ * The URL of the ECMAScript Web Worker module that decodes SPZ data. Set
45946
+ * this before the first SPZ decode to use a decoder other than Cesium's
45947
+ * bundled <code>Workers/decodeSpz.js</code> worker. Relative URLs are
45948
+ * resolved relative to the document URL.
45949
+ *
45950
+ * To apply a separate Content Security Policy to the decoder, serve the
45951
+ * module as a separate, same-origin resource. Cross-origin URLs use a
45952
+ * <code>blob:</code> worker fallback, which inherits the document's policy.
45953
+ *
45954
+ * The module must use {@link createTaskProcessorWorker}, receive an object
45955
+ * with a <code>spzData</code> {@link Uint8Array}, and return the gcloud
45956
+ * object produced by <code>@spz-loader/core</code>. It must transfer the
45957
+ * buffers for its typed-array attributes.
45958
+ */
45959
+ var workerModuleUrl: string | undefined;
45960
+ }
45961
+
45380
45962
  /**
45381
45963
  * Determines the function used to compare stencil values for the stencil test.
45382
45964
  */
@@ -46137,6 +46719,10 @@ export enum Tonemapper {
46137
46719
  * @param [options.maxZoom = 14] - Maximum zoom level represented in the generated tileset.
46138
46720
  * @param [options.extent] - Optional geographic extent in radians to constrain the generated tile tree.
46139
46721
  * @param [options.featureIdProperty] - Feature property name to use as feature ID when supported by content decoding.
46722
+ * @param [options.heightReference] - Drapes the vector content onto the surfaces selected by the
46723
+ * value. Requires <code>options.scene</code>.
46724
+ * @param [options.scene] - The scene the generated tileset is rendered in, required when
46725
+ * <code>options.heightReference</code> is a clamping value.
46140
46726
  */
46141
46727
  export class UrlTemplate3DTilesDataProvider {
46142
46728
  constructor(urlTemplate: Resource | string, options?: {
@@ -46144,6 +46730,8 @@ export class UrlTemplate3DTilesDataProvider {
46144
46730
  maxZoom?: number;
46145
46731
  extent?: Rectangle;
46146
46732
  featureIdProperty?: string;
46733
+ heightReference?: HeightReference;
46734
+ scene?: Scene;
46147
46735
  });
46148
46736
  /**
46149
46737
  * Creates a provider from a URL template.
@@ -47030,7 +47618,10 @@ export namespace WebMapServiceImageryProvider {
47030
47618
  * @property [getFeatureInfoParameters = WebMapServiceImageryProvider.GetFeatureInfoDefaultParameters] - Additional parameters to pass to the WMS server in the GetFeatureInfo URL.
47031
47619
  * @property [getFeatureInfoUrl] - The getFeatureInfo URL of the WMS service. If the property is not defined then we use the property value of url.
47032
47620
  * @property [getFeatureInfoFormats = WebMapServiceImageryProvider.DefaultGetFeatureInfoFormats] - The formats
47033
- * in which to try WMS GetFeatureInfo requests.
47621
+ * in which to try WMS GetFeatureInfo requests. Since feature info responses vary across WMS services,
47622
+ * you may need to supply a custom format and parsing callback; see the
47623
+ * {@link https://sandcastle.cesium.com/?id=web-map-tile-service-picking|Sandcastle example} for a complete
47624
+ * example of writing your own callback.
47034
47625
  * @property [rectangle = Rectangle.MAX_VALUE] - The rectangle of the layer.
47035
47626
  * @property [tilingScheme = new GeographicTilingScheme()] - The tiling scheme to use to divide the world into tiles.
47036
47627
  * @property [ellipsoid] - The ellipsoid. If the tilingScheme is specified,
@@ -47241,7 +47832,10 @@ export namespace WebMapTileServiceImageryProvider {
47241
47832
  * @property [getFeatureInfoParameters] - Additional parameters to include in GetFeatureInfo requests. Keys are lowercased internally.
47242
47833
  * @property [getFeatureInfoUrl] - The GetFeatureInfo URL of the WMTS service. If not specified, the value of <code>url</code> is used.
47243
47834
  * @property [getFeatureInfoFormats = WebMapTileServiceImageryProvider.DefaultGetFeatureInfoFormats] - The formats
47244
- * in which to try WMTS GetFeatureInfo requests.
47835
+ * in which to try WMTS GetFeatureInfo requests. Since feature info responses vary across WMTS services,
47836
+ * you may need to supply a custom format and parsing callback; see the
47837
+ * {@link https://sandcastle.cesium.com/?id=web-map-tile-service-picking|Sandcastle example} for a complete
47838
+ * example of writing your own callback.
47245
47839
  * @property [rectangle = Rectangle.MAX_VALUE] - The rectangle covered by the layer.
47246
47840
  * @property [tilingScheme] - The tiling scheme corresponding to the organization of the tiles in the TileMatrixSet.
47247
47841
  * @property [ellipsoid] - The ellipsoid. If not specified, the WGS84 ellipsoid is used.