@cesium/engine 26.2.0 → 26.3.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 (366) hide show
  1. package/Build/ThirdParty/Workers/zip-web-worker.js +656 -518
  2. package/Build/Workers/{chunk-FU4BGABC.js → chunk-2DKJSPYF.js} +14 -14
  3. package/Build/Workers/{chunk-NCL22ZUX.js → chunk-2PWVICP6.js} +1 -1
  4. package/Build/Workers/{chunk-ILME5BXA.js → chunk-2YY724ZX.js} +8 -8
  5. package/Build/Workers/{chunk-IJZJMIUY.js → chunk-4DMAXPKB.js} +11 -11
  6. package/Build/Workers/{chunk-IMBVP57H.js → chunk-4LRFYRBX.js} +2 -2
  7. package/Build/Workers/{chunk-76FDC45O.js → chunk-5JCZHJUU.js} +13 -13
  8. package/Build/Workers/{chunk-5LSOO2KD.js → chunk-5KG7KDDW.js} +7 -7
  9. package/Build/Workers/{chunk-UAZUP4I5.js → chunk-6BSNYZZG.js} +5 -5
  10. package/Build/Workers/{chunk-D6AY775A.js → chunk-6R6SGKYN.js} +6 -6
  11. package/Build/Workers/{chunk-3PSS3T43.js → chunk-6V2KDEHL.js} +4 -4
  12. package/Build/Workers/{chunk-GHXVQVUM.js → chunk-75BC2IHI.js} +7 -7
  13. package/Build/Workers/{chunk-SMTGMFBL.js → chunk-7SESBH2I.js} +4 -4
  14. package/Build/Workers/{chunk-NEFDMMLY.js → chunk-7WXBTNRV.js} +8 -8
  15. package/Build/Workers/{chunk-NXGQBQWE.js → chunk-A7SMPV6B.js} +12 -12
  16. package/Build/Workers/{chunk-O3XFXGPZ.js → chunk-ATSXKJ3L.js} +7 -7
  17. package/Build/Workers/{chunk-AHWAZRBV.js → chunk-B4AVL7VI.js} +1 -1
  18. package/Build/Workers/{chunk-OZGPS7FB.js → chunk-B7Q2WF6Q.js} +4 -4
  19. package/Build/Workers/{chunk-2RGJPWQX.js → chunk-BNDSDQ7D.js} +9 -9
  20. package/Build/Workers/{chunk-2Z4ZLVOD.js → chunk-CKK6CUXK.js} +6 -6
  21. package/Build/Workers/{chunk-FCP2QY4G.js → chunk-COKOYTRS.js} +5 -5
  22. package/Build/Workers/{chunk-6FZDPMTO.js → chunk-CQ4TZXAT.js} +6 -6
  23. package/Build/Workers/{chunk-HDL4HOXZ.js → chunk-DKSANM4A.js} +12 -12
  24. package/Build/Workers/{chunk-XCBZVTIV.js → chunk-DZK34ZVD.js} +1 -1
  25. package/Build/Workers/{chunk-N7CCOFLX.js → chunk-E7G32DWL.js} +1 -1
  26. package/Build/Workers/{chunk-XDWCTQCZ.js → chunk-EDETO6NY.js} +2 -2
  27. package/Build/Workers/{chunk-NSKZ6SBK.js → chunk-F34TJJLA.js} +14 -14
  28. package/Build/Workers/{chunk-GXWQZBAI.js → chunk-GLHDTTTO.js} +2 -2
  29. package/Build/Workers/{chunk-SJYSIOEM.js → chunk-GS7RY2DH.js} +11 -11
  30. package/Build/Workers/{chunk-5YPQBFRD.js → chunk-HDD3RFLT.js} +3 -3
  31. package/Build/Workers/{chunk-36NI5E6W.js → chunk-HDPNFEPP.js} +18 -18
  32. package/Build/Workers/{chunk-DSGLDRTI.js → chunk-JBJ6BRIM.js} +4 -4
  33. package/Build/Workers/{chunk-DZUFEE4L.js → chunk-JKTWW7IO.js} +5 -5
  34. package/Build/Workers/{chunk-O3DKEX7Q.js → chunk-JL4NWWQY.js} +5 -5
  35. package/Build/Workers/{chunk-I74ZH5LK.js → chunk-JMUUAW4X.js} +10 -10
  36. package/Build/Workers/{chunk-SXSP3JHS.js → chunk-KBGAHN5R.js} +1 -1
  37. package/Build/Workers/{chunk-GVA7XQI2.js → chunk-KEWK6VZL.js} +12 -12
  38. package/Build/Workers/{chunk-EOWDZN5S.js → chunk-L73K5UPP.js} +10 -10
  39. package/Build/Workers/{chunk-J73T2VOY.js → chunk-LL2SGJYH.js} +6 -6
  40. package/Build/Workers/{chunk-QFSSCLLZ.js → chunk-LYJUL4XQ.js} +6 -6
  41. package/Build/Workers/{chunk-MAAHFYPC.js → chunk-M6W46OAP.js} +7 -7
  42. package/Build/Workers/{chunk-FX3VEAIU.js → chunk-MDDKCLMF.js} +16 -16
  43. package/Build/Workers/{chunk-M6QKXVAU.js → chunk-MUW4DJV7.js} +17 -17
  44. package/Build/Workers/{chunk-EZGQPOIG.js → chunk-N5YK44FS.js} +5 -5
  45. package/Build/Workers/{chunk-27FWRTJI.js → chunk-NZQUP52G.js} +9 -9
  46. package/Build/Workers/{chunk-A62YI6S6.js → chunk-PKZA44LH.js} +4 -4
  47. package/Build/Workers/{chunk-7MM3N2VE.js → chunk-Q2JS5LCB.js} +17 -17
  48. package/Build/Workers/{chunk-KGXSYGBG.js → chunk-QTAEVUED.js} +13 -13
  49. package/Build/Workers/{chunk-KP5QD7WU.js → chunk-SEJIXZZ4.js} +10 -10
  50. package/Build/Workers/{chunk-PRWUMCXF.js → chunk-SL2HCFYW.js} +10 -10
  51. package/Build/Workers/{chunk-NJVBJG63.js → chunk-SLHK3KAR.js} +5 -5
  52. package/Build/Workers/{chunk-JKXV6PG5.js → chunk-UZY5XRL2.js} +1 -1
  53. package/Build/Workers/{chunk-LDRQSYBN.js → chunk-VRECSMG3.js} +2 -2
  54. package/Build/Workers/{chunk-NLLCQBX3.js → chunk-X27HKF5E.js} +2 -2
  55. package/Build/Workers/{chunk-B3QHNA4A.js → chunk-XBY3354M.js} +6 -6
  56. package/Build/Workers/{chunk-CRCGE4J4.js → chunk-XRZCS3HE.js} +8 -8
  57. package/Build/Workers/{chunk-XLQZNQ4Z.js → chunk-XSIUYAT6.js} +2 -2
  58. package/Build/Workers/{chunk-SA2A2AN5.js → chunk-Z2DW5NM2.js} +4 -4
  59. package/Build/Workers/combineGeometry.js +24 -24
  60. package/Build/Workers/createBoxGeometry.js +18 -18
  61. package/Build/Workers/createBoxOutlineGeometry.js +16 -16
  62. package/Build/Workers/createCircleGeometry.js +26 -26
  63. package/Build/Workers/createCircleOutlineGeometry.js +19 -19
  64. package/Build/Workers/createCoplanarPolygonGeometry.js +33 -33
  65. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +31 -31
  66. package/Build/Workers/createCorridorGeometry.js +29 -29
  67. package/Build/Workers/createCorridorOutlineGeometry.js +28 -28
  68. package/Build/Workers/createCylinderGeometry.js +20 -20
  69. package/Build/Workers/createCylinderOutlineGeometry.js +18 -18
  70. package/Build/Workers/createEllipseGeometry.js +26 -26
  71. package/Build/Workers/createEllipseOutlineGeometry.js +19 -19
  72. package/Build/Workers/createEllipsoidGeometry.js +19 -19
  73. package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -18
  74. package/Build/Workers/createFrustumGeometry.js +18 -18
  75. package/Build/Workers/createFrustumOutlineGeometry.js +18 -18
  76. package/Build/Workers/createGeometry.js +24 -24
  77. package/Build/Workers/createGroundPolylineGeometry.js +22 -22
  78. package/Build/Workers/createPlaneGeometry.js +16 -16
  79. package/Build/Workers/createPlaneOutlineGeometry.js +15 -15
  80. package/Build/Workers/createPolygonGeometry.js +32 -32
  81. package/Build/Workers/createPolygonOutlineGeometry.js +30 -30
  82. package/Build/Workers/createPolylineGeometry.js +25 -25
  83. package/Build/Workers/createPolylineVolumeGeometry.js +31 -31
  84. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +27 -27
  85. package/Build/Workers/createRectangleGeometry.js +27 -27
  86. package/Build/Workers/createRectangleOutlineGeometry.js +20 -20
  87. package/Build/Workers/createSimplePolylineGeometry.js +23 -23
  88. package/Build/Workers/createSphereGeometry.js +19 -19
  89. package/Build/Workers/createSphereOutlineGeometry.js +18 -18
  90. package/Build/Workers/createTaskProcessorWorker.js +3 -3
  91. package/Build/Workers/createVectorTileClampedPolylines.js +14 -14
  92. package/Build/Workers/createVectorTileGeometries.js +24 -24
  93. package/Build/Workers/createVectorTilePoints.js +13 -13
  94. package/Build/Workers/createVectorTilePolygons.js +22 -22
  95. package/Build/Workers/createVectorTilePolylines.js +14 -14
  96. package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +25 -25
  97. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +22 -22
  98. package/Build/Workers/createVerticesFromHeightmap.js +22 -22
  99. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +20 -20
  100. package/Build/Workers/createWallGeometry.js +24 -24
  101. package/Build/Workers/createWallOutlineGeometry.js +23 -23
  102. package/Build/Workers/decodeDraco.js +10 -10
  103. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
  104. package/Build/Workers/decodeI3S.js +10 -10
  105. package/Build/Workers/gaussianSplatSorter.js +4 -4
  106. package/Build/Workers/gaussianSplatTextureGenerator.js +4 -4
  107. package/Build/Workers/incrementallyBuildTerrainPicker.js +10 -10
  108. package/Build/Workers/transcodeKTX2.js +6 -6
  109. package/Build/Workers/transferTypedArrayTest.js +1 -1
  110. package/Build/Workers/upsampleQuantizedTerrainMesh.js +22 -22
  111. package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +25 -25
  112. package/Source/Core/Ion.js +1 -1
  113. package/Source/Core/IonResource.js +5 -0
  114. package/Source/Core/IonSnapGeometryType.js +59 -0
  115. package/Source/Core/IonSnapHeat.js +33 -0
  116. package/Source/Core/IonSnapMode.js +45 -0
  117. package/Source/Core/IonSnapParentGeometryType.js +52 -0
  118. package/Source/Core/IonSnapService.js +369 -0
  119. package/Source/Core/SnapService.js +63 -0
  120. package/Source/Core/VectorPipeline.js +139 -45
  121. package/Source/Core/VectorProvider.js +311 -71
  122. package/Source/Renderer/AutomaticUniforms.js +44 -2
  123. package/Source/Renderer/ShaderBuilder.js +1 -1
  124. package/Source/Renderer/UniformState.js +47 -1
  125. package/Source/Scene/ArcGisMapService.js +1 -1
  126. package/Source/Scene/BufferPointCollection.js +4 -7
  127. package/Source/Scene/BufferPolygonCollection.js +56 -27
  128. package/Source/Scene/BufferPolylineCollection.js +61 -8
  129. package/Source/Scene/BufferPolylineMaterial.js +6 -5
  130. package/Source/Scene/BufferPrimitiveCollection.js +199 -29
  131. package/Source/Scene/Cesium3DTile.js +12 -0
  132. package/Source/Scene/Cesium3DTileset.js +61 -8
  133. package/Source/Scene/Cesium3DTilesetBaseTraversal.js +15 -3
  134. package/Source/Scene/Cesium3DTilesetCache.js +15 -0
  135. package/Source/Scene/ClippingPolygon.js +154 -100
  136. package/Source/Scene/ClippingPolygonCollection.js +352 -694
  137. package/Source/Scene/CreditDisplay.js +62 -0
  138. package/Source/Scene/GeoJsonPrimitive.js +114 -24
  139. package/Source/Scene/GlobeSurfaceShaderSet.js +33 -54
  140. package/Source/Scene/GlobeSurfaceTile.js +14 -1
  141. package/Source/Scene/GlobeSurfaceTileProvider.js +232 -25
  142. package/Source/Scene/GltfLoader.js +56 -6
  143. package/Source/Scene/HeightReference.js +1 -1
  144. package/Source/Scene/MVTDataProvider.js +9 -0
  145. package/Source/Scene/Model/Model.js +242 -16
  146. package/Source/Scene/Model/Model3DTileContent.js +5 -0
  147. package/Source/Scene/Model/ModelClippingPolygonsPipelineStage.js +54 -19
  148. package/Source/Scene/Model/ModelRenderResources.js +2 -3
  149. package/Source/Scene/Model/ModelSceneGraph.js +10 -1
  150. package/Source/Scene/Model/ModelVectorLookupPipelineStage.js +205 -0
  151. package/Source/Scene/Model/PickingPipelineStage.js +4 -0
  152. package/Source/Scene/PostProcessStage.js +22 -3
  153. package/Source/Scene/Scene.js +56 -1
  154. package/Source/Scene/Snapping.js +57 -0
  155. package/Source/Scene/UrlTemplate3DTilesDataProvider.js +12 -1
  156. package/Source/Scene/VectorGltf3DTileContent.js +10 -2
  157. package/Source/Scene/WebMapServiceImageryProvider.js +5 -1
  158. package/Source/Scene/WebMapTileServiceImageryProvider.js +6 -1
  159. package/Source/Scene/renderBufferPolylineCollection.js +5 -1
  160. package/Source/Shaders/BufferPolylineMaterialVS.glsl +14 -2
  161. package/Source/Shaders/BufferPolylineMaterialVS.js +14 -2
  162. package/Source/Shaders/Builtin/CzmBuiltins.js +2 -4
  163. package/Source/Shaders/Builtin/Functions/eyeToCartographicDelta.glsl +74 -0
  164. package/Source/Shaders/Builtin/Functions/eyeToCartographicDelta.js +76 -0
  165. package/Source/Shaders/GlobeFS.glsl +10 -9
  166. package/Source/Shaders/GlobeFS.js +11 -9
  167. package/Source/Shaders/GlobeVS.glsl +0 -32
  168. package/Source/Shaders/GlobeVS.js +0 -32
  169. package/Source/Shaders/Model/ModelClippingPolygonsStageFS.glsl +15 -3
  170. package/Source/Shaders/Model/ModelClippingPolygonsStageFS.js +15 -3
  171. package/Source/Shaders/Model/ModelClippingPolygonsStageVS.glsl +20 -24
  172. package/Source/Shaders/Model/ModelClippingPolygonsStageVS.js +20 -24
  173. package/Source/Shaders/Model/ModelFS.glsl +4 -0
  174. package/Source/Shaders/Model/ModelFS.js +4 -0
  175. package/Source/Shaders/Model/ModelVS.glsl +7 -2
  176. package/Source/Shaders/Model/ModelVS.js +7 -2
  177. package/Source/Shaders/Model/ModelVectorLookupStageFS.glsl +6 -0
  178. package/Source/Shaders/Model/ModelVectorLookupStageFS.js +8 -0
  179. package/Source/Shaders/Model/ModelVectorLookupStageVS.glsl +15 -0
  180. package/Source/Shaders/Model/ModelVectorLookupStageVS.js +17 -0
  181. package/Source/Shaders/Model/VerticalExaggerationStageVS.glsl +9 -10
  182. package/Source/Shaders/Model/VerticalExaggerationStageVS.js +9 -11
  183. package/Source/Shaders/VectorCommon.glsl +177 -50
  184. package/Source/Shaders/VectorCommon.js +251 -19
  185. package/Source/ThirdParty/Workers/zip-web-worker.js +1 -1
  186. package/index.d.ts +556 -55
  187. package/index.js +20 -13
  188. package/package.json +6 -6
  189. package/Build/Workers/chunk-2EFYUSUY.js +0 -1483
  190. package/Build/Workers/chunk-2H5264K7.js +0 -1284
  191. package/Build/Workers/chunk-2H73KDBM.js +0 -511
  192. package/Build/Workers/chunk-2ZKH2QZB.js +0 -387
  193. package/Build/Workers/chunk-37SW7SYS.js +0 -778
  194. package/Build/Workers/chunk-3GHVJ3SO.js +0 -455
  195. package/Build/Workers/chunk-3LB4UVPU.js +0 -387
  196. package/Build/Workers/chunk-3PONLKEL.js +0 -778
  197. package/Build/Workers/chunk-3QR662HH.js +0 -3820
  198. package/Build/Workers/chunk-3SX2WYSO.js +0 -973
  199. package/Build/Workers/chunk-3UDN6LYX.js +0 -476
  200. package/Build/Workers/chunk-47MCBSXI.js +0 -9237
  201. package/Build/Workers/chunk-4E626OCE.js +0 -1067
  202. package/Build/Workers/chunk-4NW2MJKH.js +0 -455
  203. package/Build/Workers/chunk-52YK5BSN.js +0 -198
  204. package/Build/Workers/chunk-5RNAQZK6.js +0 -9234
  205. package/Build/Workers/chunk-6FHT43QR.js +0 -140
  206. package/Build/Workers/chunk-6HK6IXK2.js +0 -138
  207. package/Build/Workers/chunk-6R5X2GUA.js +0 -1284
  208. package/Build/Workers/chunk-6YR6JBMY.js +0 -163
  209. package/Build/Workers/chunk-7A2OGDHT.js +0 -305
  210. package/Build/Workers/chunk-7CGEQUM2.js +0 -305
  211. package/Build/Workers/chunk-7D2HZKH7.js +0 -455
  212. package/Build/Workers/chunk-7I325HV6.js +0 -1344
  213. package/Build/Workers/chunk-7KVKHY7O.js +0 -147
  214. package/Build/Workers/chunk-7TKLTCZW.js +0 -219
  215. package/Build/Workers/chunk-7UUKBDH6.js +0 -1054
  216. package/Build/Workers/chunk-7W6DUHAB.js +0 -693
  217. package/Build/Workers/chunk-7XM5JK5F.js +0 -162
  218. package/Build/Workers/chunk-7YG3ND3P.js +0 -454
  219. package/Build/Workers/chunk-A3O6EDBK.js +0 -73
  220. package/Build/Workers/chunk-A6X24AZI.js +0 -1992
  221. package/Build/Workers/chunk-A7TTWVTF.js +0 -2719
  222. package/Build/Workers/chunk-ACTVJHSP.js +0 -519
  223. package/Build/Workers/chunk-ADX3CBKD.js +0 -9234
  224. package/Build/Workers/chunk-AF7DTMJ7.js +0 -398
  225. package/Build/Workers/chunk-AJSFRY4U.js +0 -1344
  226. package/Build/Workers/chunk-ARZICEEP.js +0 -301
  227. package/Build/Workers/chunk-B4CQSLZJ.js +0 -305
  228. package/Build/Workers/chunk-BKPQFCXH.js +0 -511
  229. package/Build/Workers/chunk-BSPCI2LO.js +0 -959
  230. package/Build/Workers/chunk-BUJWSX5S.js +0 -301
  231. package/Build/Workers/chunk-C7JQVRLM.js +0 -497
  232. package/Build/Workers/chunk-C7QDUNI3.js +0 -138
  233. package/Build/Workers/chunk-CDJDJ5LK.js +0 -44
  234. package/Build/Workers/chunk-CEEZE3YZ.js +0 -476
  235. package/Build/Workers/chunk-CIV5DJOQ.js +0 -778
  236. package/Build/Workers/chunk-CLCTQVVL.js +0 -241
  237. package/Build/Workers/chunk-CQNFIAZU.js +0 -56
  238. package/Build/Workers/chunk-CUTRKXUQ.js +0 -288
  239. package/Build/Workers/chunk-DBD5WWG2.js +0 -959
  240. package/Build/Workers/chunk-DIGUUD6G.js +0 -171
  241. package/Build/Workers/chunk-DZBQUULR.js +0 -138
  242. package/Build/Workers/chunk-E2NKV5YT.js +0 -3820
  243. package/Build/Workers/chunk-E7NZJOK7.js +0 -3792
  244. package/Build/Workers/chunk-EB3Y5P3A.js +0 -368
  245. package/Build/Workers/chunk-EHTS2YPT.js +0 -2719
  246. package/Build/Workers/chunk-ELE6SC2C.js +0 -837
  247. package/Build/Workers/chunk-ENNFMWDW.js +0 -789
  248. package/Build/Workers/chunk-ERKUET22.js +0 -3201
  249. package/Build/Workers/chunk-F2IMBMZY.js +0 -241
  250. package/Build/Workers/chunk-F4CSNRZO.js +0 -219
  251. package/Build/Workers/chunk-FBP4DUQJ.js +0 -693
  252. package/Build/Workers/chunk-FDK4K5IA.js +0 -280
  253. package/Build/Workers/chunk-FGQFQHN5.js +0 -1054
  254. package/Build/Workers/chunk-FJWZMGOQ.js +0 -1992
  255. package/Build/Workers/chunk-FQ42MT7M.js +0 -58
  256. package/Build/Workers/chunk-GGNWQWSB.js +0 -301
  257. package/Build/Workers/chunk-GNKXEN4C.js +0 -682
  258. package/Build/Workers/chunk-GSWMAFTE.js +0 -9230
  259. package/Build/Workers/chunk-GXDHRC4J.js +0 -1344
  260. package/Build/Workers/chunk-GYSYP6PC.js +0 -1067
  261. package/Build/Workers/chunk-H2WCFXLP.js +0 -241
  262. package/Build/Workers/chunk-HHV3MCGV.js +0 -162
  263. package/Build/Workers/chunk-HLW2ZRVK.js +0 -368
  264. package/Build/Workers/chunk-HS6AD4P2.js +0 -398
  265. package/Build/Workers/chunk-HT6FASOT.js +0 -973
  266. package/Build/Workers/chunk-IDVHUDZT.js +0 -352
  267. package/Build/Workers/chunk-IGAZBTFZ.js +0 -3201
  268. package/Build/Workers/chunk-IOO7Z2AV.js +0 -57
  269. package/Build/Workers/chunk-IUIFLOYO.js +0 -44
  270. package/Build/Workers/chunk-JALGQYDY.js +0 -288
  271. package/Build/Workers/chunk-JW6OZT4R.js +0 -288
  272. package/Build/Workers/chunk-JXYLJCTC.js +0 -124
  273. package/Build/Workers/chunk-K27QOAW6.js +0 -97
  274. package/Build/Workers/chunk-KMV25A63.js +0 -789
  275. package/Build/Workers/chunk-KZWFWJML.js +0 -2719
  276. package/Build/Workers/chunk-LCXRRALY.js +0 -387
  277. package/Build/Workers/chunk-LD64RPYV.js +0 -368
  278. package/Build/Workers/chunk-LGNDTZVX.js +0 -97
  279. package/Build/Workers/chunk-LNSQVXFH.js +0 -1800
  280. package/Build/Workers/chunk-M4JZ6TSZ.js +0 -959
  281. package/Build/Workers/chunk-MCJDRDJQ.js +0 -102
  282. package/Build/Workers/chunk-MEENMEAH.js +0 -198
  283. package/Build/Workers/chunk-NAWU5RF4.js +0 -162
  284. package/Build/Workers/chunk-NIWITKQK.js +0 -693
  285. package/Build/Workers/chunk-OA6MYL2C.js +0 -837
  286. package/Build/Workers/chunk-OBEU25PI.js +0 -1067
  287. package/Build/Workers/chunk-OHP4ELS7.js +0 -198
  288. package/Build/Workers/chunk-PCL3Y7H5.js +0 -82
  289. package/Build/Workers/chunk-PD4GK4EM.js +0 -57
  290. package/Build/Workers/chunk-PEDU33QG.js +0 -2342
  291. package/Build/Workers/chunk-PVTSNNVI.js +0 -288
  292. package/Build/Workers/chunk-QHPZH22L.js +0 -241
  293. package/Build/Workers/chunk-QIZDWZK6.js +0 -301
  294. package/Build/Workers/chunk-QV6DG2YX.js +0 -1483
  295. package/Build/Workers/chunk-QVLAFFJY.js +0 -56
  296. package/Build/Workers/chunk-R4FPNAZ2.js +0 -352
  297. package/Build/Workers/chunk-R4K7EHOU.js +0 -171
  298. package/Build/Workers/chunk-R7JGHDD6.js +0 -789
  299. package/Build/Workers/chunk-RASQEYD4.js +0 -1483
  300. package/Build/Workers/chunk-RG4F5R57.js +0 -454
  301. package/Build/Workers/chunk-RW6ITX7Q.js +0 -3820
  302. package/Build/Workers/chunk-RYSQVJR6.js +0 -398
  303. package/Build/Workers/chunk-S6RJU5NM.js +0 -1054
  304. package/Build/Workers/chunk-SDFHDNS4.js +0 -147
  305. package/Build/Workers/chunk-SF6K72D7.js +0 -124
  306. package/Build/Workers/chunk-SGRGNDOD.js +0 -682
  307. package/Build/Workers/chunk-SM2CDCYF.js +0 -198
  308. package/Build/Workers/chunk-SS5ABQGY.js +0 -102
  309. package/Build/Workers/chunk-T5QBPLE3.js +0 -414
  310. package/Build/Workers/chunk-TN35HP5B.js +0 -1067
  311. package/Build/Workers/chunk-TNWKJNUZ.js +0 -454
  312. package/Build/Workers/chunk-TOAF47AQ.js +0 -102
  313. package/Build/Workers/chunk-TQ4QCOXT.js +0 -2719
  314. package/Build/Workers/chunk-TSDSILQB.js +0 -124
  315. package/Build/Workers/chunk-TVZD72WJ.js +0 -778
  316. package/Build/Workers/chunk-U5LV3F3Z.js +0 -1054
  317. package/Build/Workers/chunk-UEY73NRN.js +0 -38
  318. package/Build/Workers/chunk-UF46SZEZ.js +0 -789
  319. package/Build/Workers/chunk-UNRTMCET.js +0 -398
  320. package/Build/Workers/chunk-UTB7U3O6.js +0 -1992
  321. package/Build/Workers/chunk-UVO6COT2.js +0 -352
  322. package/Build/Workers/chunk-V46YGZE6.js +0 -352
  323. package/Build/Workers/chunk-VAL7DYNR.js +0 -278
  324. package/Build/Workers/chunk-VDGOCROW.js +0 -57
  325. package/Build/Workers/chunk-VFWSSBPT.js +0 -511
  326. package/Build/Workers/chunk-VVYMXI3I.js +0 -1284
  327. package/Build/Workers/chunk-VXWHPYQM.js +0 -837
  328. package/Build/Workers/chunk-VXYUBRSB.js +0 -219
  329. package/Build/Workers/chunk-VZLDLEWI.js +0 -387
  330. package/Build/Workers/chunk-W5OCKMPJ.js +0 -101
  331. package/Build/Workers/chunk-WBSY7HDY.js +0 -837
  332. package/Build/Workers/chunk-WN3F4CVG.js +0 -3201
  333. package/Build/Workers/chunk-WPRUWXGV.js +0 -693
  334. package/Build/Workers/chunk-WTO2ERBP.js +0 -414
  335. package/Build/Workers/chunk-WVHMDVG4.js +0 -959
  336. package/Build/Workers/chunk-XGA23TAX.js +0 -73
  337. package/Build/Workers/chunk-XLXSDIP5.js +0 -973
  338. package/Build/Workers/chunk-XQ3SKCMM.js +0 -140
  339. package/Build/Workers/chunk-XQH66YJC.js +0 -147
  340. package/Build/Workers/chunk-XTA7BXJG.js +0 -682
  341. package/Build/Workers/chunk-XTIDAFRS.js +0 -476
  342. package/Build/Workers/chunk-XUEDWBUD.js +0 -682
  343. package/Build/Workers/chunk-XYFLRH3H.js +0 -124
  344. package/Build/Workers/chunk-Y7JRTRTO.js +0 -305
  345. package/Build/Workers/chunk-Y7QSMDCJ.js +0 -352
  346. package/Build/Workers/chunk-YCB5TYTR.js +0 -1483
  347. package/Build/Workers/chunk-YEYOSTJX.js +0 -219
  348. package/Build/Workers/chunk-YGFVAGYF.js +0 -630
  349. package/Build/Workers/chunk-YIIACKQO.js +0 -368
  350. package/Build/Workers/chunk-YJGSP6PE.js +0 -511
  351. package/Build/Workers/chunk-YKU2Q3A2.js +0 -1287
  352. package/Build/Workers/chunk-Z4LR5EHE.js +0 -454
  353. package/Build/Workers/chunk-Z66EVE2A.js +0 -44
  354. package/Build/Workers/chunk-ZHIHHHTB.js +0 -414
  355. package/Build/Workers/chunk-ZMBHFYOX.js +0 -1344
  356. package/Build/Workers/chunk-ZNWHFSLE.js +0 -171
  357. package/Build/Workers/chunk-ZQLZG4IN.js +0 -2342
  358. package/Build/Workers/chunk-ZRTSMUZ2.js +0 -414
  359. package/Build/Workers/chunk-ZSGUV73H.js +0 -2342
  360. package/Build/Workers/chunk-ZZUVT5BM.js +0 -476
  361. package/Source/Shaders/Builtin/Functions/clipPolygons.glsl +0 -37
  362. package/Source/Shaders/Builtin/Functions/clipPolygons.js +0 -39
  363. package/Source/Shaders/Builtin/Functions/unpackClippingExtents.glsl +0 -14
  364. package/Source/Shaders/Builtin/Functions/unpackClippingExtents.js +0 -15
  365. package/Source/Shaders/PolygonSignedDistanceFS.glsl +0 -131
  366. 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
  */
@@ -16393,6 +16639,61 @@ export class SimplePolylineGeometry {
16393
16639
  static createGeometry(simplePolylineGeometry: SimplePolylineGeometry): Geometry | undefined;
16394
16640
  }
16395
16641
 
16642
+ export namespace SnapService {
16643
+ /**
16644
+ * The result of a successful {@link SnapService#snap}.
16645
+ *
16646
+ * Implementations may return additional properties beyond those listed here.
16647
+ * @property [snapPoint] - The snapped point. This is the point to consume.
16648
+ * @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.
16649
+ */
16650
+ type Result = {
16651
+ snapPoint?: Cartesian3;
16652
+ hitPoint?: Cartesian3;
16653
+ };
16654
+ }
16655
+
16656
+ /**
16657
+ * Provides snap-to-geometry through an external service, which snaps against
16658
+ * source geometry hosted remotely rather than geometry loaded in the scene.
16659
+ * This type describes an interface and is not intended to be used.
16660
+ */
16661
+ export class SnapService {
16662
+ /**
16663
+ * Requests a snap against geometry known to the service.
16664
+ *
16665
+ * The camera and canvas dimensions describe the current view so the
16666
+ * implementation can perform view-dependent snapping (nearest ordering,
16667
+ * pixel apertures, surface tracking) correctly.
16668
+ *
16669
+ * Implementations may accept additional options beyond those listed here.
16670
+ * @param options - Object with the following properties:
16671
+ * @param options.elementId - An implementation-defined identifier of the geometry to snap to.
16672
+ * @param options.testPoint - The point to snap from, typically the picked cursor position.
16673
+ * @param options.camera - The camera defining the current view.
16674
+ * @param options.canvasWidth - The canvas width in CSS pixels.
16675
+ * @param options.canvasHeight - The canvas height in CSS pixels.
16676
+ * @param [options.closePoint = options.testPoint] - A reference point near the target geometry that seeds the snap search.
16677
+ * @param [options.snapAperture = SnapService.DEFAULT_SNAP_APERTURE] - The snap tolerance in CSS pixels.
16678
+ * @returns The snap result, or <code>undefined</code> if no snap was possible.
16679
+ */
16680
+ snap(options: {
16681
+ elementId: string;
16682
+ testPoint: Cartesian3;
16683
+ camera: Camera;
16684
+ canvasWidth: number;
16685
+ canvasHeight: number;
16686
+ closePoint?: Cartesian3;
16687
+ snapAperture?: number;
16688
+ }): Promise<SnapService.Result | undefined>;
16689
+ /**
16690
+ * The default snap tolerance used by {@link SnapService#snap} when
16691
+ * <code>options.snapAperture</code> is not provided, in CSS pixels.
16692
+ * The value is implementation-defined.
16693
+ */
16694
+ static readonly DEFAULT_SNAP_APERTURE: number;
16695
+ }
16696
+
16396
16697
  /**
16397
16698
  * A description of a sphere centered at the origin.
16398
16699
  * @example
@@ -27971,6 +28272,38 @@ export type BufferPolygonOptions = {
27971
28272
  triangles?: TypedArray;
27972
28273
  };
27973
28274
 
28275
+ /**
28276
+ * @property [primitiveCountMax = BufferPrimitiveCollection.DEFAULT_CAPACITY] - Maximum number of polygons.
28277
+ * @property [vertexCountMax = BufferPrimitiveCollection.DEFAULT_CAPACITY] - Maximum number of vertices.
28278
+ * @property [holeCountMax = BufferPrimitiveCollection.DEFAULT_CAPACITY] - Maximum number of holes.
28279
+ * @property [triangleCountMax = BufferPrimitiveCollection.DEFAULT_CAPACITY] - Maximum number of triangles.
28280
+ * @property [positionDatatype = ComponentDatatype.DOUBLE] - The component datatype used to store position values.
28281
+ * @property [positionNormalized = false] - When <code>true</code>, integer position values are treated as normalized,
28282
+ * where the full integer range maps to [-1, 1] (signed) or [0, 1] (unsigned). Only relevant for integer position datatypes
28283
+ * (BYTE, UNSIGNED_BYTE, SHORT, UNSIGNED_SHORT).
28284
+ * @property [allowPicking = true] - When <code>true</code>, primitives are pickable with {@link Scene#pick}. When <code>false</code>, memory and initialization cost are lower.
28285
+ * @property [boundingVolume] - Bounding volume, in world space, for the collection. When
28286
+ * unspecified, a bounding volume is computed automatically and updated when primitive positions change. When
28287
+ * specified, users are responsible for updating bounding volume as needed. Pre-computing the bounding volume
28288
+ * manually, and updating it only as needed, will improve performance for larger dynamic collections.
28289
+ * @property [heightReference = HeightReference.NONE] - When set to a clamping value, the
28290
+ * collection is draped onto terrain and/or 3D Tiles, rather than drawn as geometry of its own.
28291
+ */
28292
+ export type BufferPolygonCollectionOptions = {
28293
+ primitiveCountMax?: number;
28294
+ vertexCountMax?: number;
28295
+ holeCountMax?: number;
28296
+ triangleCountMax?: number;
28297
+ positionDatatype?: ComponentDatatype;
28298
+ positionNormalized?: boolean;
28299
+ show?: boolean;
28300
+ allowPicking?: boolean;
28301
+ boundingVolume?: BoundingSphere;
28302
+ debugShowBoundingVolume?: boolean;
28303
+ blendOption?: BlendOption;
28304
+ heightReference?: HeightReference;
28305
+ };
28306
+
27974
28307
  /**
27975
28308
  * Collection of polygons held in ArrayBuffer storage for performance and memory optimization.
27976
28309
  *
@@ -28006,26 +28339,9 @@ export type BufferPolygonOptions = {
28006
28339
  * collection.get(i, polygon);
28007
28340
  * polygon.setMaterial(material);
28008
28341
  * }
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
28342
  */
28015
28343
  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
- });
28344
+ constructor(options?: BufferPolygonCollectionOptions);
28029
28345
  /**
28030
28346
  * Duplicates the contents of this collection into the result collection.
28031
28347
  * Result collection is not resized, and must contain enough space for all
@@ -28037,8 +28353,18 @@ export class BufferPolygonCollection extends BufferPrimitiveCollection<BufferPol
28037
28353
  * @example
28038
28354
  * const result = new BufferPolygonCollection({ ... }); // allocate larger 'result' collection
28039
28355
  * BufferPolygonCollection.clone(collection, result); // copy polygons from 'collection' into 'result'
28356
+ * @param [predicate] - When provided, only polygons for which this returns <code>true</code> are copied. Surviving polygons are compacted into contiguous indices.
28040
28357
  */
28041
- static clone(collection: BufferPolygonCollection, result: BufferPolygonCollection): BufferPolygonCollection;
28358
+ static clone(collection: BufferPolygonCollection, result: BufferPolygonCollection, predicate?: (...params: any[]) => any): BufferPolygonCollection;
28359
+ /**
28360
+ * Returns a copy of the given collection, overriding any constructor options
28361
+ * provided. Omitted options are inherited from the source collection. Any
28362
+ * resized buffers must be large enough to hold every polygon.
28363
+ * @param collection - Source collection to copy.
28364
+ * @param [options] - Constructor options to override. Omitted options are inherited from the source collection.
28365
+ * @param [predicate] - When provided, only polygons for which this returns <code>true</code> are copied. Surviving polygons are compacted into contiguous indices.
28366
+ */
28367
+ static fromCollection(collection: BufferPolygonCollection, options?: BufferPolygonCollectionOptions, predicate?: (...params: any[]) => any): BufferPolygonCollection;
28042
28368
  /**
28043
28369
  * Adds a new polygon to the collection, with the specified options. A
28044
28370
  * {@link BufferPolygon} instance is linked to the new polygon, using
@@ -28190,8 +28516,34 @@ export type BufferPolylineOptions = {
28190
28516
  * collection.get(i, polyline);
28191
28517
  * polyline.setMaterial(material);
28192
28518
  * }
28519
+ * @param [options.modelMatrix = Matrix4.IDENTITY] - Transforms geometry from model to world coordinates.
28520
+ * @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.
28521
+ * @param [options.boundingVolume] - Bounding volume, in world space, for the collection.
28522
+ * @param [options.widthUnits = "pixels"] - Unit of polyline widths in this collection:
28523
+ * <code>"pixels"</code> on the screen, or <code>"meters"</code> in world space. A clamped
28524
+ * {@link HeightReference} measures those meters on the ellipsoid surface, so elevation and terrain
28525
+ * slope stretch the drawn width.
28193
28526
  */
28194
28527
  export class BufferPolylineCollection extends BufferPrimitiveCollection<BufferPolyline> {
28528
+ constructor(options?: {
28529
+ modelMatrix?: Matrix4;
28530
+ primitiveCountMax?: number;
28531
+ vertexCountMax?: number;
28532
+ show?: boolean;
28533
+ positionDatatype?: ComponentDatatype;
28534
+ positionNormalized?: boolean;
28535
+ allowPicking?: boolean;
28536
+ boundingVolume?: BoundingSphere;
28537
+ debugShowBoundingVolume?: boolean;
28538
+ blendOption?: BlendOption;
28539
+ heightReference?: HeightReference;
28540
+ widthUnits?: "pixels" | "meters";
28541
+ });
28542
+ /**
28543
+ * Unit of polyline widths in this collection: <code>"pixels"</code> on the screen, or
28544
+ * <code>"meters"</code> in world space, measured on the ellipsoid surface when clamped.
28545
+ */
28546
+ readonly widthUnits: "pixels" | "meters";
28195
28547
  /**
28196
28548
  * Adds a new polyline to the collection, with the specified options. A
28197
28549
  * {@link BufferPolyline} instance is linked to the new polyline, using
@@ -28206,7 +28558,8 @@ export class BufferPolylineCollection extends BufferPrimitiveCollection<BufferPo
28206
28558
  * @property [color = Color.WHITE] - Color of fill.
28207
28559
  * @property [outlineColor = Color.WHITE] - Color of outline.
28208
28560
  * @property [outlineWidth = 0.0] - Width of outline, 0-255px.
28209
- * @property [width = 1.0] - Width of line, 0-255px.
28561
+ * @property [width = 1.0] - Width of line, in the unit selected by
28562
+ * {@link BufferPolylineCollection#widthUnits}.
28210
28563
  */
28211
28564
  export type BufferPolylineMaterialOptions = {
28212
28565
  color?: Color;
@@ -28225,7 +28578,7 @@ export type BufferPolylineMaterialOptions = {
28225
28578
  export class BufferPolylineMaterial extends BufferPrimitiveMaterial {
28226
28579
  constructor(options?: BufferPolylineMaterialOptions);
28227
28580
  /**
28228
- * Width of polyline, 0–255px.
28581
+ * Width of polyline, in the unit selected by {@link BufferPolylineCollection#widthUnits}.
28229
28582
  */
28230
28583
  width: number;
28231
28584
  static pack(material: BufferPolylineMaterial, view: DataView, byteOffset: number): void;
@@ -28296,6 +28649,39 @@ export type BufferPrimitiveOptions = {
28296
28649
  pickObject?: any;
28297
28650
  };
28298
28651
 
28652
+ /**
28653
+ * @property [modelMatrix = Matrix4.IDENTITY] - Transforms geometry from model to world coordinates.
28654
+ * @property [primitiveCountMax = BufferPrimitiveCollection.DEFAULT_CAPACITY] - Maximum number of primitives.
28655
+ * @property [vertexCountMax = BufferPrimitiveCollection.DEFAULT_CAPACITY] - Maximum number of vertices.
28656
+ * @property [positionDatatype = ComponentDatatype.DOUBLE] - The component datatype used to store position values.
28657
+ * @property [positionNormalized = false] - When <code>true</code>, integer position values are treated as normalized,
28658
+ * where the full integer range maps to [-1, 1] (signed) or [0, 1] (unsigned). Only relevant for integer position datatypes
28659
+ * (BYTE, UNSIGNED_BYTE, SHORT, UNSIGNED_SHORT).
28660
+ * @property [allowPicking = false] - When <code>true</code>, primitives are pickable with {@link Scene#pick}. When <code>false</code>, memory and initialization cost are lower.
28661
+ * @property [boundingVolume] - Bounding volume, in world space, for the collection. When
28662
+ * unspecified, a bounding volume is computed automatically and updated when primitive positions change. When
28663
+ * specified, users are responsible for updating bounding volume as needed. Pre-computing the bounding volume
28664
+ * manually, and updating it only as needed, will improve performance for larger dynamic collections.
28665
+ * @property [options.heightReference = HeightReference.NONE] - When set to a clamping value, the
28666
+ * collection is draped onto the surfaces selected by the value: {@link HeightReference.CLAMP_TO_TERRAIN} drapes
28667
+ * onto the globe, {@link HeightReference.CLAMP_TO_3D_TILE} drapes onto 3D Tiles, and
28668
+ * {@link HeightReference.CLAMP_TO_GROUND} drapes onto both. Only {@link BufferPolylineCollection} and
28669
+ * {@link BufferPolygonCollection} support draping, and only once the collection has been added to
28670
+ * {@link Scene#primitives}. A draped collection is not also drawn as geometry of its own.
28671
+ */
28672
+ export type BufferPrimitiveCollectionOptions = {
28673
+ modelMatrix?: Matrix4;
28674
+ primitiveCountMax?: number;
28675
+ vertexCountMax?: number;
28676
+ show?: boolean;
28677
+ positionDatatype?: ComponentDatatype;
28678
+ positionNormalized?: boolean;
28679
+ allowPicking?: boolean;
28680
+ boundingVolume?: BoundingSphere;
28681
+ debugShowBoundingVolume?: boolean;
28682
+ blendOption?: BlendOption;
28683
+ };
28684
+
28299
28685
  /**
28300
28686
  * Collection of primitives held in ArrayBuffer storage for performance and memory optimization.
28301
28687
  *
@@ -28303,33 +28689,14 @@ export type BufferPrimitiveOptions = {
28303
28689
  * be careful to avoid allocating "N" instances of any related JavaScript object. {@link BufferPrimitive},
28304
28690
  * {@link Color}, {@link Cartesian3}, and other objects can all be reused when working with large collections,
28305
28691
  * 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
28692
  */
28316
28693
  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
- });
28694
+ constructor(options?: BufferPrimitiveCollectionOptions);
28329
28695
  /**
28330
28696
  * Determines if primitives in this collection will be shown.
28331
28697
  */
28332
28698
  show: boolean;
28699
+ protected readonly _heightReference: HeightReference;
28333
28700
  /**
28334
28701
  * Transforms geometry from model to world coordinates.
28335
28702
  */
@@ -28373,8 +28740,37 @@ export class BufferPrimitiveCollection<T extends BufferPrimitive> {
28373
28740
  * @example
28374
28741
  * const result = new BufferPrimitiveCollection({ ... }); // allocate larger 'result' collection
28375
28742
  * BufferPrimitiveCollection.clone(collection, result); // copy primitives from 'collection' into 'result'
28743
+ * @param [predicate] - When provided, only primitives for which this returns <code>true</code> are copied. Surviving primitives are compacted into contiguous indices.
28744
+ */
28745
+ static clone<T extends BufferPrimitive>(collection: BufferPrimitiveCollection<T>, result: BufferPrimitiveCollection<T>, predicate?: (...params: any[]) => any): void;
28746
+ /**
28747
+ * Returns a copy of the given collection, overriding any constructor options
28748
+ * provided. Omitted options are inherited from the source collection. Any
28749
+ * resized buffers must be large enough to hold every primitive.
28750
+ *
28751
+ * <p>Collection-level state (model matrix, blend option, picking, bounding-volume
28752
+ * mode, etc.) is carried over, but GPU resources are not: the source collection
28753
+ * retains ownership of its renderer resources, so the caller is responsible for
28754
+ * calling {@link BufferPrimitiveCollection#destroy} on the source once it is no
28755
+ * longer needed.</p>
28756
+ * @example
28757
+ * const grown = BufferPrimitiveCollection.fromCollection(collection, {
28758
+ * primitiveCountMax: collection.primitiveCountMax * 2,
28759
+ * vertexCountMax: collection.vertexCountMax * 2,
28760
+ * });
28761
+ * collection.destroy(); // release the source collection's GPU resources
28762
+ * @example
28763
+ * // Grow while dropping hidden primitives.
28764
+ * const compacted = BufferPrimitiveCollection.fromCollection(
28765
+ * collection,
28766
+ * { primitiveCountMax: collection.primitiveCountMax * 2 },
28767
+ * (primitive) => primitive.show,
28768
+ * );
28769
+ * @param collection - Source collection to copy.
28770
+ * @param [options] - Constructor options to override. Omitted options are inherited from the source collection.
28771
+ * @param [predicate] - When provided, only primitives for which this returns <code>true</code> are copied. Surviving primitives are compacted into contiguous indices.
28376
28772
  */
28377
- static clone<T extends BufferPrimitive>(collection: BufferPrimitiveCollection<T>, result: BufferPrimitiveCollection<T>): void;
28773
+ static fromCollection<T extends BufferPrimitive>(collection: BufferPrimitiveCollection<T>, options?: BufferPrimitiveCollectionOptions, predicate?: (...params: any[]) => any): BufferPrimitiveCollection<T>;
28378
28774
  /**
28379
28775
  * Makes the given {@link BufferPrimitive} a view onto this collection's
28380
28776
  * primitive at the given index, for use when reading/writing primitive
@@ -28444,6 +28840,12 @@ export class BufferPrimitiveCollection<T extends BufferPrimitive> {
28444
28840
  * (unsigned).
28445
28841
  */
28446
28842
  readonly positionNormalized: boolean;
28843
+ /**
28844
+ * Determines which surfaces the collection is draped onto, in addition to
28845
+ * being drawn as standalone geometry. Draping requires that the collection
28846
+ * has been added to {@link Scene#primitives}.
28847
+ */
28848
+ readonly heightReference: HeightReference;
28447
28849
  /**
28448
28850
  * Returns a JSON-serializable array representing the collection. This encoding
28449
28851
  * is not memory-efficient, and should generally be used for debugging and
@@ -32160,26 +32562,66 @@ export class ClippingPlaneCollection {
32160
32562
  * const polygon = new Cesium.ClippingPolygon({
32161
32563
  * positions: positions
32162
32564
  * });
32565
+ * @example
32566
+ * // A clipping polygon with two holes. Regions inside the holes are not clipped.
32567
+ * const outerRing = Cesium.Cartesian3.fromDegreesArray([
32568
+ * -100.0, 40.0,
32569
+ * -90.0, 40.0,
32570
+ * -90.0, 50.0,
32571
+ * -100.0, 50.0,
32572
+ * ]);
32573
+ *
32574
+ * const firstHole = Cesium.Cartesian3.fromDegreesArray([
32575
+ * -98.0, 42.0,
32576
+ * -96.0, 42.0,
32577
+ * -96.0, 44.0,
32578
+ * -98.0, 44.0,
32579
+ * ]);
32580
+ *
32581
+ * const secondHole = Cesium.Cartesian3.fromDegreesArray([
32582
+ * -94.0, 46.0,
32583
+ * -92.0, 46.0,
32584
+ * -92.0, 48.0,
32585
+ * -94.0, 48.0,
32586
+ * ]);
32587
+ *
32588
+ * const polygonWithHoles = new Cesium.ClippingPolygon({
32589
+ * positions: outerRing,
32590
+ * holes: [firstHole, secondHole],
32591
+ * });
32163
32592
  * @param options - Object with the following properties:
32164
32593
  * @param options.positions - A list of three or more Cartesian coordinates defining the outer ring of the clipping polygon.
32594
+ * @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
32595
  */
32166
32596
  export class ClippingPolygon {
32167
32597
  constructor(options: {
32168
32598
  positions: Cartesian3[];
32599
+ holes?: Cartesian3[][];
32169
32600
  ellipsoid?: Ellipsoid;
32170
32601
  });
32171
32602
  /**
32172
- * Returns the total number of positions in the polygon, include any holes.
32603
+ * Returns the total number of positions in the polygon, including any holes.
32173
32604
  */
32174
32605
  readonly length: number;
32175
32606
  /**
32176
- * Returns the outer ring of positions.
32607
+ * Returns the outer ring of positions. A ClippingPolygon's geometry is
32608
+ * immutable; the returned array and its coordinates are frozen.
32177
32609
  */
32178
32610
  readonly positions: Cartesian3[];
32611
+ /**
32612
+ * Returns the interior rings (holes) of the polygon, each a list of positions.
32613
+ */
32614
+ readonly holes: Cartesian3[][];
32179
32615
  /**
32180
32616
  * Returns the ellipsoid used to project the polygon onto surfaces when clipping.
32181
32617
  */
32182
32618
  readonly ellipsoid: Ellipsoid;
32619
+ /**
32620
+ * Returns the cartographic rectangle enclosing the polygon, computed once on
32621
+ * construction. Since a ClippingPolygon's geometry is immutable, this rectangle
32622
+ * never changes.
32623
+ */
32624
+ readonly rectangle: Rectangle;
32183
32625
  /**
32184
32626
  * Clones the ClippingPolygon without setting its ownership.
32185
32627
  * @param polygon - The ClippingPolygon to be cloned
@@ -32203,6 +32645,8 @@ export class ClippingPolygon {
32203
32645
  computeRectangle(result?: Rectangle): Rectangle;
32204
32646
  }
32205
32647
 
32648
+ export const bufferPolygonScratch: any;
32649
+
32206
32650
  /**
32207
32651
  * Specifies a set of clipping polygons. Clipping polygons selectively disable rendering in a region
32208
32652
  * inside or outside the specified list of {@link ClippingPolygon} objects for a single glTF model, 3D Tileset, or the globe.
@@ -32233,7 +32677,8 @@ export class ClippingPolygon {
32233
32677
  * @param [options.polygons = []] - An array of {@link ClippingPolygon} objects used to selectively disable rendering on the inside of each polygon.
32234
32678
  * @param [options.enabled = true] - Determines whether the clipping polygons are active.
32235
32679
  * @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.
32680
+ * @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>
32681
+ * @param [options.ellipsoid = Ellipsoid.default] - The ellipsoid to use to project the clipping polygons onto the globe.
32237
32682
  */
32238
32683
  export class ClippingPolygonCollection {
32239
32684
  constructor(options?: {
@@ -32241,6 +32686,7 @@ export class ClippingPolygonCollection {
32241
32686
  enabled?: boolean;
32242
32687
  inverse?: boolean;
32243
32688
  quality?: number;
32689
+ ellipsoid?: Ellipsoid;
32244
32690
  });
32245
32691
  /**
32246
32692
  * If true, clipping will be enabled.
@@ -32252,11 +32698,6 @@ export class ClippingPolygonCollection {
32252
32698
  * inside of any polygon.
32253
32699
  */
32254
32700
  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
32701
  /**
32261
32702
  * An event triggered when a new clipping polygon is added to the collection. Event handlers
32262
32703
  * are passed the new polygon and the index at which it was added.
@@ -32267,12 +32708,24 @@ export class ClippingPolygonCollection {
32267
32708
  * are passed the new polygon and the index from which it was removed.
32268
32709
  */
32269
32710
  polygonRemoved: Event;
32711
+ /**
32712
+ * The ellipsoid to use to project the clipping polygons onto the globe.
32713
+ */
32714
+ ellipsoid: Ellipsoid;
32270
32715
  /**
32271
32716
  * Returns the number of polygons in this collection. This is commonly used with
32272
32717
  * {@link ClippingPolygonCollection#get} to iterate over all the polygons
32273
32718
  * in the collection.
32274
32719
  */
32275
32720
  readonly length: number;
32721
+ /**
32722
+ * If true, a debug texture visualizing the signed distance field is shown.
32723
+ */
32724
+ debugShowDistanceTexture: boolean;
32725
+ /**
32726
+ * A scalar that controlled the resolution of the signed distance texture used for clipping.
32727
+ */
32728
+ quality: number;
32276
32729
  /**
32277
32730
  * Adds the specified {@link ClippingPolygon} to the collection to be used to selectively disable rendering
32278
32731
  * on the inside of each polygon. Use {@link ClippingPolygonCollection#unionClippingRegions} to modify
@@ -34617,6 +35070,11 @@ export class GaussianSplat3DTileContent implements Cesium3DTileContent {
34617
35070
  getFeature(batchId: number): Cesium3DTileFeature;
34618
35071
  }
34619
35072
 
35073
+ /**
35074
+ * @property [heightReference = HeightReference.NONE] - Allows clamping (draping)
35075
+ * polylines and polygons on terrain and 3D Tiles. Point clamping is not currently supported.
35076
+ * @property [scene] - Required for primitives that use a clamping {@link HeightReference}.
35077
+ */
34620
35078
  export type GeoJsonPrimitiveConstructorOptions = {
34621
35079
  geoJson?: any;
34622
35080
  url?: Resource | string;
@@ -34624,6 +35082,8 @@ export type GeoJsonPrimitiveConstructorOptions = {
34624
35082
  allowPicking?: boolean;
34625
35083
  show?: boolean;
34626
35084
  pickObjectFactory?: (...params: any[]) => any;
35085
+ heightReference?: HeightReference;
35086
+ scene?: Scene;
34627
35087
  };
34628
35088
 
34629
35089
  /**
@@ -34635,14 +35095,33 @@ export type GeoJsonPrimitiveConstructorOptions = {
34635
35095
  * Instead, it exposes high-throughput buffer primitive collections that can be
34636
35096
  * added directly to {@link Scene#primitives}.
34637
35097
  * @example
35098
+ * // Load GeoJSON
34638
35099
  * const loader = await Cesium.GeoJsonPrimitive.fromUrl("./data.geojson");
34639
35100
  * viewer.scene.primitives.add(loader);
34640
- *
35101
+ * @example
35102
+ * // Access GeoJSON features and properties
34641
35103
  * loader.points; // BufferPointCollection | undefined
34642
35104
  * loader.polylines; // BufferPolylineCollection | undefined
34643
35105
  * loader.polygons; // BufferPolygonCollection | undefined
34644
35106
  * loader.ids; // source feature IDs
34645
35107
  * loader.properties; // source feature properties
35108
+ * @example
35109
+ * // Style GeoJSON
35110
+ * const material = new Cesium.BufferPolylineMaterial({
35111
+ * color: Cesium.Color.RED,
35112
+ * width: 4,
35113
+ * });
35114
+ *
35115
+ * const polyline = new Cesium.BufferPolyline();
35116
+ * const count = primitive.polylines.primitiveCount;
35117
+ * for (let i = 0; i < count; i++) {
35118
+ * primitive.polylines.get(i, polyline);
35119
+ *
35120
+ * const properties = primitive.getProperties(polyline.featureId);
35121
+ * if (properties.myCustomProperty === true) {
35122
+ * polyline.setMaterial(material);
35123
+ * }
35124
+ * }
34646
35125
  */
34647
35126
  export class GeoJsonPrimitive {
34648
35127
  constructor(options?: GeoJsonPrimitiveConstructorOptions);
@@ -36302,7 +36781,7 @@ export enum HeightReference {
36302
36781
  */
36303
36782
  RELATIVE_TO_GROUND = 2,
36304
36783
  /**
36305
- * The position is clamped to terain.
36784
+ * The position is clamped to terrain.
36306
36785
  */
36307
36786
  CLAMP_TO_TERRAIN = 3,
36308
36787
  /**
@@ -38406,12 +38885,20 @@ export class MVTDataProvider extends UrlTemplate3DTilesDataProvider {
38406
38885
  * @param [options.maxZoom = 14] - Maximum zoom level represented in the generated tileset.
38407
38886
  * @param [options.extent] - Optional geographic extent in radians to constrain the generated tile tree.
38408
38887
  * @param [options.featureIdProperty] - MVT property name to use as feature ID.
38888
+ * @param [options.heightReference] - Drapes the decoded points, lines and polygons onto the
38889
+ * surfaces selected by the value: {@link HeightReference.CLAMP_TO_TERRAIN} drapes onto the globe,
38890
+ * {@link HeightReference.CLAMP_TO_3D_TILE} drapes onto 3D Tiles and models, and
38891
+ * {@link HeightReference.CLAMP_TO_GROUND} drapes onto both. Requires <code>options.scene</code>.
38892
+ * @param [options.scene] - The scene the generated tileset is rendered in, required when
38893
+ * <code>options.heightReference</code> is a clamping value.
38409
38894
  */
38410
38895
  static fromUrl(url: Resource | string, options?: {
38411
38896
  minZoom?: number;
38412
38897
  maxZoom?: number;
38413
38898
  extent?: Rectangle;
38414
38899
  featureIdProperty?: string;
38900
+ heightReference?: HeightReference;
38901
+ scene?: Scene;
38415
38902
  }): Promise<MVTDataProvider>;
38416
38903
  }
38417
38904
 
@@ -44722,12 +45209,14 @@ export class Scene {
44722
45209
  * The result of a snap operation. See {@link Scene#snap}.
44723
45210
  * @property object - The snapped primitive or feature.
44724
45211
  * @property position - The world-space position of the snap point, un-projected from the snap framebuffer's eye-space depth.
45212
+ * @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
45213
  * @property screenPosition - The window coordinates of the snap point.
44726
45214
  * @property isEdge - <code>true</code> if the snap point lies on an edge; <code>false</code> if it lies on a surface.
44727
45215
  */
44728
45216
  export type SceneSnapResult = {
44729
45217
  object: any;
44730
45218
  position: Cartesian3;
45219
+ surfacePosition: Cartesian3 | undefined;
44731
45220
  screenPosition: Cartesian2;
44732
45221
  isEdge: boolean;
44733
45222
  };
@@ -46137,6 +46626,10 @@ export enum Tonemapper {
46137
46626
  * @param [options.maxZoom = 14] - Maximum zoom level represented in the generated tileset.
46138
46627
  * @param [options.extent] - Optional geographic extent in radians to constrain the generated tile tree.
46139
46628
  * @param [options.featureIdProperty] - Feature property name to use as feature ID when supported by content decoding.
46629
+ * @param [options.heightReference] - Drapes the vector content onto the surfaces selected by the
46630
+ * value. Requires <code>options.scene</code>.
46631
+ * @param [options.scene] - The scene the generated tileset is rendered in, required when
46632
+ * <code>options.heightReference</code> is a clamping value.
46140
46633
  */
46141
46634
  export class UrlTemplate3DTilesDataProvider {
46142
46635
  constructor(urlTemplate: Resource | string, options?: {
@@ -46144,6 +46637,8 @@ export class UrlTemplate3DTilesDataProvider {
46144
46637
  maxZoom?: number;
46145
46638
  extent?: Rectangle;
46146
46639
  featureIdProperty?: string;
46640
+ heightReference?: HeightReference;
46641
+ scene?: Scene;
46147
46642
  });
46148
46643
  /**
46149
46644
  * Creates a provider from a URL template.
@@ -47030,7 +47525,10 @@ export namespace WebMapServiceImageryProvider {
47030
47525
  * @property [getFeatureInfoParameters = WebMapServiceImageryProvider.GetFeatureInfoDefaultParameters] - Additional parameters to pass to the WMS server in the GetFeatureInfo URL.
47031
47526
  * @property [getFeatureInfoUrl] - The getFeatureInfo URL of the WMS service. If the property is not defined then we use the property value of url.
47032
47527
  * @property [getFeatureInfoFormats = WebMapServiceImageryProvider.DefaultGetFeatureInfoFormats] - The formats
47033
- * in which to try WMS GetFeatureInfo requests.
47528
+ * in which to try WMS GetFeatureInfo requests. Since feature info responses vary across WMS services,
47529
+ * you may need to supply a custom format and parsing callback; see the
47530
+ * {@link https://sandcastle.cesium.com/?id=web-map-tile-service-picking|Sandcastle example} for a complete
47531
+ * example of writing your own callback.
47034
47532
  * @property [rectangle = Rectangle.MAX_VALUE] - The rectangle of the layer.
47035
47533
  * @property [tilingScheme = new GeographicTilingScheme()] - The tiling scheme to use to divide the world into tiles.
47036
47534
  * @property [ellipsoid] - The ellipsoid. If the tilingScheme is specified,
@@ -47241,7 +47739,10 @@ export namespace WebMapTileServiceImageryProvider {
47241
47739
  * @property [getFeatureInfoParameters] - Additional parameters to include in GetFeatureInfo requests. Keys are lowercased internally.
47242
47740
  * @property [getFeatureInfoUrl] - The GetFeatureInfo URL of the WMTS service. If not specified, the value of <code>url</code> is used.
47243
47741
  * @property [getFeatureInfoFormats = WebMapTileServiceImageryProvider.DefaultGetFeatureInfoFormats] - The formats
47244
- * in which to try WMTS GetFeatureInfo requests.
47742
+ * in which to try WMTS GetFeatureInfo requests. Since feature info responses vary across WMTS services,
47743
+ * you may need to supply a custom format and parsing callback; see the
47744
+ * {@link https://sandcastle.cesium.com/?id=web-map-tile-service-picking|Sandcastle example} for a complete
47745
+ * example of writing your own callback.
47245
47746
  * @property [rectangle = Rectangle.MAX_VALUE] - The rectangle covered by the layer.
47246
47747
  * @property [tilingScheme] - The tiling scheme corresponding to the organization of the tiles in the TileMatrixSet.
47247
47748
  * @property [ellipsoid] - The ellipsoid. If not specified, the WGS84 ellipsoid is used.