@cesium/engine 21.0.1 → 22.1.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 (267) hide show
  1. package/Build/ThirdParty/Workers/zip-web-worker.js +10 -7
  2. package/Build/Workers/chunk-23T2IPHV.js +55 -0
  3. package/Build/Workers/{chunk-TGJQMEL4.js → chunk-2AM4E2WD.js} +2 -2
  4. package/Build/Workers/{chunk-4CORGH7N.js → chunk-2MWF4IES.js} +16 -14
  5. package/Build/Workers/{chunk-3RKX3UFI.js → chunk-2RCIRXNI.js} +1 -1
  6. package/Build/Workers/{chunk-LV3G32QE.js → chunk-3YTMGEXW.js} +5 -1424
  7. package/Build/Workers/{chunk-PJAA7QSC.js → chunk-4BHWJWS3.js} +6 -6
  8. package/Build/Workers/{chunk-FE565QHX.js → chunk-5JKH4AMT.js} +2 -2
  9. package/Build/Workers/{chunk-KZ7GDSAJ.js → chunk-6HKAPCSO.js} +1 -1
  10. package/Build/Workers/{chunk-VVALNLSH.js → chunk-A53R2F2L.js} +4 -4
  11. package/Build/Workers/{chunk-KVB73ECP.js → chunk-A6YFUGJO.js} +7 -7
  12. package/Build/Workers/{chunk-QNOIRRJK.js → chunk-AJYWXC6I.js} +4 -4
  13. package/Build/Workers/{chunk-UKA7OISV.js → chunk-AOIO5VUS.js} +282 -2284
  14. package/Build/Workers/{chunk-OBS5EMZ6.js → chunk-B7JRBTT6.js} +10 -10
  15. package/Build/Workers/{chunk-5YXA47QD.js → chunk-CHNDJRYA.js} +20 -18
  16. package/Build/Workers/{chunk-X3ZV3XNO.js → chunk-CJOV55CW.js} +20 -18
  17. package/Build/Workers/{chunk-W6I3LNPF.js → chunk-COGPE5Z2.js} +10 -8
  18. package/Build/Workers/{chunk-2QPH5QDK.js → chunk-CW7W27IZ.js} +14 -10
  19. package/Build/Workers/{chunk-MXOGBWMP.js → chunk-DICY26ID.js} +20 -16
  20. package/Build/Workers/{chunk-W6KMV4F5.js → chunk-DMEFNTUV.js} +69 -7
  21. package/Build/Workers/{chunk-T7HU6E7G.js → chunk-DQSJEOZY.js} +1 -1
  22. package/Build/Workers/{chunk-ASVODZNK.js → chunk-GDU4RZSZ.js} +16 -36
  23. package/Build/Workers/{chunk-MQPDOWGH.js → chunk-GKWOUMYA.js} +1 -1
  24. package/Build/Workers/{chunk-A2SP2EJZ.js → chunk-GTY4K4IA.js} +9 -7
  25. package/Build/Workers/{chunk-KEPPNSBL.js → chunk-H6Q7E4BQ.js} +8 -6
  26. package/Build/Workers/{chunk-JG3C3LPY.js → chunk-HHGOFZVQ.js} +7 -5
  27. package/Build/Workers/chunk-HXKUEOOD.js +352 -0
  28. package/Build/Workers/{chunk-UFSYRVC5.js → chunk-I4REFVXB.js} +4 -4
  29. package/Build/Workers/{chunk-LU7DLY2L.js → chunk-IL5F6WEE.js} +3 -3
  30. package/Build/Workers/{chunk-RVRN4KDB.js → chunk-JKXPC5HD.js} +2 -2
  31. package/Build/Workers/{chunk-CBPNIEGH.js → chunk-KKGD7HAW.js} +13 -11
  32. package/Build/Workers/{chunk-DTKSVIH5.js → chunk-KROSQJUA.js} +2 -2
  33. package/Build/Workers/{chunk-42EJCSIV.js → chunk-L4JLDVCM.js} +5 -5
  34. package/Build/Workers/{chunk-LPKJSIMD.js → chunk-LIYMRHGR.js} +15 -13
  35. package/Build/Workers/{chunk-J2XQVKVH.js → chunk-MKMZHRB3.js} +74 -35
  36. package/Build/Workers/{chunk-CSDYSXBI.js → chunk-MO25ZQ2I.js} +14 -12
  37. package/Build/Workers/{chunk-3YNW5K6O.js → chunk-O6RZEKHZ.js} +12 -12
  38. package/Build/Workers/{chunk-RR3NCT4R.js → chunk-OOCGX2OD.js} +4 -4
  39. package/Build/Workers/{chunk-XG54SG4O.js → chunk-OXFU5HNU.js} +13 -5
  40. package/Build/Workers/{chunk-P2UKEFCK.js → chunk-P5CGIJUY.js} +2 -2
  41. package/Build/Workers/{chunk-DBHL2UVG.js → chunk-QEANVUGT.js} +2 -2
  42. package/Build/Workers/{chunk-2SI7DEW5.js → chunk-QFBCIX7J.js} +8 -6
  43. package/Build/Workers/{chunk-DDXI6UYW.js → chunk-QUAH3XOT.js} +4 -4
  44. package/Build/Workers/{chunk-PZUZCAX3.js → chunk-RXZDTDIY.js} +13 -9
  45. package/Build/Workers/{chunk-YZ3RCE45.js → chunk-SPA2KPH3.js} +14 -12
  46. package/Build/Workers/chunk-TDSVSW5A.js +1460 -0
  47. package/Build/Workers/{chunk-G3CKZ34K.js → chunk-UG2DPFOL.js} +8 -6
  48. package/Build/Workers/{chunk-IKUOV6DO.js → chunk-URGEDZBS.js} +7 -7
  49. package/Build/Workers/{chunk-U2GR5FDL.js → chunk-V35NQOJC.js} +21 -11
  50. package/Build/Workers/chunk-W4XUEDU5.js +2058 -0
  51. package/Build/Workers/chunk-WB4TSSBQ.js +3514 -0
  52. package/Build/Workers/{chunk-EBDZDBJN.js → chunk-WTLYD4FE.js} +19 -15
  53. package/Build/Workers/{chunk-WQZL6CA2.js → chunk-Y4ALZ4SS.js} +9 -7
  54. package/Build/Workers/{chunk-DAJKOQW6.js → chunk-YF2NVO5B.js} +19 -13
  55. package/Build/Workers/{chunk-XJVRYJVZ.js → chunk-YSYSXSHF.js} +1 -1
  56. package/Build/Workers/{chunk-YNOVMSUX.js → chunk-YX562XOB.js} +15 -11
  57. package/Build/Workers/{chunk-J3KPR6DJ.js → chunk-YZWA5B4R.js} +15 -13
  58. package/Build/Workers/{chunk-NYYQZ3LH.js → chunk-Z6DFT4D3.js} +15 -11
  59. package/Build/Workers/combineGeometry.js +24 -21
  60. package/Build/Workers/createBoxGeometry.js +18 -15
  61. package/Build/Workers/createBoxOutlineGeometry.js +16 -13
  62. package/Build/Workers/createCircleGeometry.js +28 -24
  63. package/Build/Workers/createCircleOutlineGeometry.js +21 -17
  64. package/Build/Workers/createCoplanarPolygonGeometry.js +35 -31
  65. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +33 -29
  66. package/Build/Workers/createCorridorGeometry.js +32 -28
  67. package/Build/Workers/createCorridorOutlineGeometry.js +30 -26
  68. package/Build/Workers/createCylinderGeometry.js +20 -17
  69. package/Build/Workers/createCylinderOutlineGeometry.js +20 -16
  70. package/Build/Workers/createEllipseGeometry.js +28 -24
  71. package/Build/Workers/createEllipseOutlineGeometry.js +21 -17
  72. package/Build/Workers/createEllipsoidGeometry.js +19 -16
  73. package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -15
  74. package/Build/Workers/createFrustumGeometry.js +18 -15
  75. package/Build/Workers/createFrustumOutlineGeometry.js +18 -15
  76. package/Build/Workers/createGeometry.js +28 -22
  77. package/Build/Workers/createGroundPolylineGeometry.js +25 -21
  78. package/Build/Workers/createPlaneGeometry.js +16 -13
  79. package/Build/Workers/createPlaneOutlineGeometry.js +15 -12
  80. package/Build/Workers/createPolygonGeometry.js +35 -31
  81. package/Build/Workers/createPolygonOutlineGeometry.js +32 -28
  82. package/Build/Workers/createPolylineGeometry.js +27 -23
  83. package/Build/Workers/createPolylineVolumeGeometry.js +33 -29
  84. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +29 -25
  85. package/Build/Workers/createRectangleGeometry.js +30 -26
  86. package/Build/Workers/createRectangleOutlineGeometry.js +23 -19
  87. package/Build/Workers/createSimplePolylineGeometry.js +25 -21
  88. package/Build/Workers/createSphereGeometry.js +19 -16
  89. package/Build/Workers/createSphereOutlineGeometry.js +18 -15
  90. package/Build/Workers/createTaskProcessorWorker.js +3 -3
  91. package/Build/Workers/createVectorTileClampedPolylines.js +16 -13
  92. package/Build/Workers/createVectorTileGeometries.js +24 -21
  93. package/Build/Workers/createVectorTilePoints.js +15 -12
  94. package/Build/Workers/createVectorTilePolygons.js +24 -20
  95. package/Build/Workers/createVectorTilePolylines.js +16 -13
  96. package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +91 -0
  97. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +28 -23
  98. package/Build/Workers/createVerticesFromHeightmap.js +28 -23
  99. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +26 -279
  100. package/Build/Workers/createWallGeometry.js +26 -22
  101. package/Build/Workers/createWallOutlineGeometry.js +25 -21
  102. package/Build/Workers/decodeDraco.js +10 -10
  103. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
  104. package/Build/Workers/decodeI3S.js +13 -11
  105. package/Build/Workers/gaussianSplatSorter.js +4 -4
  106. package/Build/Workers/gaussianSplatTextureGenerator.js +4 -4
  107. package/Build/Workers/incrementallyBuildTerrainPicker.js +121 -0
  108. package/Build/Workers/transcodeKTX2.js +6 -6
  109. package/Build/Workers/transferTypedArrayTest.js +1 -1
  110. package/Build/Workers/upsampleQuantizedTerrainMesh.js +24 -20
  111. package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +95 -0
  112. package/Source/Core/ArcGISTiledElevationTerrainProvider.js +2 -2
  113. package/Source/Core/AxisAlignedBoundingBox.js +36 -0
  114. package/Source/Core/Cesium3DTilesTerrainData.js +932 -0
  115. package/Source/Core/Cesium3DTilesTerrainGeometryProcessor.js +1868 -0
  116. package/Source/Core/Cesium3DTilesTerrainProvider.js +1052 -0
  117. package/Source/Core/CesiumTerrainProvider.js +2 -2
  118. package/Source/Core/Color.js +23 -6
  119. package/Source/Core/EllipsoidalOccluder.js +2 -2
  120. package/Source/Core/FeatureDetection.js +0 -2
  121. package/Source/Core/GoogleEarthEnterpriseMetadata.js +1 -1
  122. package/Source/Core/GoogleEarthEnterpriseTerrainData.js +2 -1
  123. package/Source/Core/GoogleEarthEnterpriseTerrainProvider.js +1 -1
  124. package/Source/Core/HeightmapTerrainData.js +12 -22
  125. package/Source/Core/HilbertOrder.js +0 -6
  126. package/Source/Core/ITwinPlatform.js +6 -6
  127. package/Source/Core/IntersectionTests.js +80 -0
  128. package/Source/Core/Ion.js +1 -1
  129. package/Source/Core/IonResource.js +35 -27
  130. package/Source/Core/PixelFormat.js +2 -2
  131. package/Source/Core/QuantizedMeshTerrainData.js +24 -57
  132. package/Source/Core/Resource.js +15 -11
  133. package/Source/Core/S2Cell.js +6 -18
  134. package/Source/Core/TaskProcessor.js +1 -1
  135. package/Source/Core/TerrainData.js +2 -1
  136. package/Source/Core/TerrainEncoding.js +215 -38
  137. package/Source/Core/TerrainMesh.js +215 -8
  138. package/Source/Core/TerrainPicker.js +607 -0
  139. package/Source/Core/TerrainProvider.js +151 -0
  140. package/Source/Core/TexturePacker.js +27 -12
  141. package/Source/Core/Transforms.js +28 -19
  142. package/Source/Core/VRTheWorldTerrainProvider.js +2 -2
  143. package/Source/Core/binarySearch.js +1 -1
  144. package/Source/Core/createWorldBathymetryAsync.js +2 -2
  145. package/Source/Core/createWorldTerrainAsync.js +3 -3
  146. package/Source/Core/loadImageFromTypedArray.js +9 -3
  147. package/Source/Core/mergeSort.js +1 -1
  148. package/Source/DataSources/BillboardGraphics.js +1 -1
  149. package/Source/DataSources/BillboardVisualizer.js +7 -4
  150. package/Source/DataSources/PropertyArray.js +2 -2
  151. package/Source/Renderer/AutomaticUniforms.js +61 -0
  152. package/Source/Renderer/Buffer.js +32 -0
  153. package/Source/Renderer/BufferUsage.js +3 -1
  154. package/Source/Renderer/Context.js +98 -14
  155. package/Source/Renderer/Pass.js +10 -9
  156. package/Source/Renderer/Sync.js +104 -0
  157. package/Source/Renderer/TextureAtlas.js +67 -27
  158. package/Source/Renderer/UniformState.js +12 -0
  159. package/Source/Renderer/VertexArray.js +1 -1
  160. package/Source/Scene/ArcGisMapServerImageryProvider.js +1 -1
  161. package/Source/Scene/ArcGisMapService.js +1 -1
  162. package/Source/Scene/Azure2DImageryProvider.js +99 -13
  163. package/Source/Scene/BatchTable.js +2 -2
  164. package/Source/Scene/Billboard.js +75 -28
  165. package/Source/Scene/BillboardCollection.js +24 -15
  166. package/Source/Scene/BillboardTexture.js +56 -7
  167. package/Source/Scene/BingMapsImageryProvider.js +1 -1
  168. package/Source/Scene/BoundingVolumeSemantics.js +54 -62
  169. package/Source/Scene/Cesium3DTile.js +3 -3
  170. package/Source/Scene/Cesium3DTilesVoxelProvider.js +1 -1
  171. package/Source/Scene/Cesium3DTileset.js +1 -1
  172. package/Source/Scene/EdgeFramebuffer.js +245 -0
  173. package/Source/Scene/FrameState.js +12 -0
  174. package/Source/Scene/GaussianSplat3DTileContent.js +12 -16
  175. package/Source/Scene/GaussianSplatPrimitive.js +12 -8
  176. package/Source/Scene/GaussianSplatSorter.js +2 -2
  177. package/Source/Scene/Globe.js +4 -2
  178. package/Source/Scene/GlobeSurfaceTile.js +28 -70
  179. package/Source/Scene/GlobeSurfaceTileProvider.js +11 -0
  180. package/Source/Scene/GltfBufferViewLoader.js +18 -0
  181. package/Source/Scene/GltfLoader.js +46 -8
  182. package/Source/Scene/Google2DImageryProvider.js +48 -41
  183. package/Source/Scene/GoogleEarthEnterpriseMapsProvider.js +1 -1
  184. package/Source/Scene/I3SDataProvider.js +1 -1
  185. package/Source/Scene/I3SDecoder.js +3 -3
  186. package/Source/Scene/ITwinData.js +4 -4
  187. package/Source/Scene/ImageryLayer.js +1 -1
  188. package/Source/Scene/Implicit3DTileContent.js +18 -7
  189. package/Source/Scene/ImplicitSubtree.js +3 -3
  190. package/Source/Scene/ImplicitTileset.js +2 -2
  191. package/Source/Scene/IonImageryProvider.js +15 -84
  192. package/Source/Scene/IonImageryProviderFactory.js +194 -0
  193. package/Source/Scene/LabelCollection.js +54 -36
  194. package/Source/Scene/MetadataComponentType.js +5 -5
  195. package/Source/Scene/MetadataTableProperty.js +3 -9
  196. package/Source/Scene/Model/EdgeDetectionPipelineStage.js +42 -0
  197. package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +800 -0
  198. package/Source/Scene/Model/MetadataPipelineStage.js +7 -7
  199. package/Source/Scene/Model/ModelDrawCommand.js +69 -0
  200. package/Source/Scene/Model/ModelImagery.js +4 -0
  201. package/Source/Scene/Model/ModelRuntimeNode.js +2 -2
  202. package/Source/Scene/Model/ModelRuntimePrimitive.js +13 -2
  203. package/Source/Scene/Model/ModelSceneGraph.js +15 -3
  204. package/Source/Scene/Model/ModelUtility.js +0 -1
  205. package/Source/Scene/Model/NodeRenderResources.js +1 -1
  206. package/Source/Scene/Model/PrimitiveRenderResources.js +1 -1
  207. package/Source/Scene/OIT.js +11 -1
  208. package/Source/Scene/PickFramebuffer.js +134 -50
  209. package/Source/Scene/Picking.js +195 -89
  210. package/Source/Scene/QuadtreePrimitive.js +34 -26
  211. package/Source/Scene/QuadtreeTile.js +66 -46
  212. package/Source/Scene/ResourceLoaderState.js +1 -1
  213. package/Source/Scene/Scene.js +160 -16
  214. package/Source/Scene/ScreenSpaceCameraController.js +1 -1
  215. package/Source/Scene/SensorVolumePortionToDisplay.js +6 -6
  216. package/Source/Scene/SingleTileImageryProvider.js +3 -3
  217. package/Source/Scene/Terrain.js +5 -5
  218. package/Source/Scene/TerrainFillMesh.js +1 -0
  219. package/Source/Scene/TileMapServiceImageryProvider.js +2 -2
  220. package/Source/Scene/UrlTemplateImageryProvider.js +1 -1
  221. package/Source/Scene/View.js +3 -0
  222. package/Source/Scene/VoxelPrimitive.js +196 -189
  223. package/Source/Scene/VoxelShape.js +2 -0
  224. package/Source/Scene/createWorldImageryAsync.js +1 -1
  225. package/Source/Shaders/BillboardCollectionFS.glsl +115 -62
  226. package/Source/Shaders/BillboardCollectionFS.js +115 -63
  227. package/Source/Shaders/BillboardCollectionVS.glsl +44 -37
  228. package/Source/Shaders/BillboardCollectionVS.js +45 -38
  229. package/Source/Shaders/Builtin/Constants/passCesium3DTile.glsl +1 -1
  230. package/Source/Shaders/Builtin/Constants/passCesium3DTile.js +1 -1
  231. package/Source/Shaders/Builtin/Constants/passCesium3DTileClassification.glsl +1 -1
  232. package/Source/Shaders/Builtin/Constants/passCesium3DTileClassification.js +1 -1
  233. package/Source/Shaders/Builtin/Constants/passCesium3DTileClassificationIgnoreShow.glsl +1 -1
  234. package/Source/Shaders/Builtin/Constants/passCesium3DTileClassificationIgnoreShow.js +1 -1
  235. package/Source/Shaders/Builtin/Constants/passCesium3DTileEdges.glsl +10 -0
  236. package/Source/Shaders/Builtin/Constants/passCesium3DTileEdges.js +12 -0
  237. package/Source/Shaders/Builtin/Constants/passGaussianSplats.glsl +1 -1
  238. package/Source/Shaders/Builtin/Constants/passGaussianSplats.js +1 -1
  239. package/Source/Shaders/Builtin/Constants/passOpaque.glsl +1 -1
  240. package/Source/Shaders/Builtin/Constants/passOpaque.js +1 -1
  241. package/Source/Shaders/Builtin/Constants/passOverlay.glsl +1 -1
  242. package/Source/Shaders/Builtin/Constants/passOverlay.js +1 -1
  243. package/Source/Shaders/Builtin/Constants/passTranslucent.glsl +1 -1
  244. package/Source/Shaders/Builtin/Constants/passTranslucent.js +1 -1
  245. package/Source/Shaders/Builtin/Constants/passVoxels.glsl +1 -1
  246. package/Source/Shaders/Builtin/Constants/passVoxels.js +1 -1
  247. package/Source/Shaders/Builtin/CzmBuiltins.js +2 -0
  248. package/Source/Shaders/GlobeVS.glsl +1 -1
  249. package/Source/Shaders/GlobeVS.js +1 -1
  250. package/Source/Shaders/Model/EdgeDetectionStageFS.glsl +58 -0
  251. package/Source/Shaders/Model/EdgeDetectionStageFS.js +60 -0
  252. package/Source/Shaders/Model/EdgeVisibilityStageFS.glsl +83 -0
  253. package/Source/Shaders/Model/EdgeVisibilityStageFS.js +85 -0
  254. package/Source/Shaders/Model/ModelFS.glsl +5 -0
  255. package/Source/Shaders/Model/ModelFS.js +5 -0
  256. package/Source/Shaders/Model/PrimitiveOutlineStageFS.glsl +0 -1
  257. package/Source/Shaders/Model/PrimitiveOutlineStageFS.js +0 -1
  258. package/Source/Shaders/ShadowVolumeAppearanceFS.glsl +7 -15
  259. package/Source/Shaders/ShadowVolumeAppearanceFS.js +7 -15
  260. package/Source/ThirdParty/Workers/zip-web-worker.js +1 -1
  261. package/Source/ThirdParty/zip-module.wasm +0 -0
  262. package/Source/Workers/createVerticesFromCesium3DTilesTerrain.js +46 -0
  263. package/Source/Workers/incrementallyBuildTerrainPicker.js +108 -0
  264. package/Source/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +55 -0
  265. package/index.d.ts +488 -31
  266. package/index.js +202 -190
  267. package/package.json +3 -2
package/index.d.ts CHANGED
@@ -834,6 +834,13 @@ export class AxisAlignedBoundingBox {
834
834
  * intersects the plane.
835
835
  */
836
836
  static intersectPlane(box: AxisAlignedBoundingBox, plane: Plane): Intersect;
837
+ /**
838
+ * Determines whether two axis aligned bounding boxes intersect.
839
+ * @param box - first box
840
+ * @param other - second box
841
+ * @returns <code>true</code> if the boxes intersect; otherwise, <code>false</code>.
842
+ */
843
+ static intersectAxisAlignedBoundingBox(box: AxisAlignedBoundingBox, other: AxisAlignedBoundingBox): boolean;
837
844
  /**
838
845
  * Duplicates this AxisAlignedBoundingBox instance.
839
846
  * @param [result] - The object onto which to store the result.
@@ -849,6 +856,12 @@ export class AxisAlignedBoundingBox {
849
856
  * intersects the plane.
850
857
  */
851
858
  intersectPlane(plane: Plane): Intersect;
859
+ /**
860
+ * Determines whether some other axis aligned bounding box intersects this box.
861
+ * @param other - The other axis aligned bounding box.
862
+ * @returns <code>true</code> if the boxes intersect; otherwise, <code>false</code>.
863
+ */
864
+ intersectAxisAlignedBoundingBox(other: AxisAlignedBoundingBox): boolean;
852
865
  /**
853
866
  * Compares this AxisAlignedBoundingBox against the provided AxisAlignedBoundingBox componentwise and returns
854
867
  * <code>true</code> if they are equal, <code>false</code> otherwise.
@@ -2801,6 +2814,234 @@ export class CatmullRomSpline {
2801
2814
  evaluate(time: number, result?: Cartesian3): Cartesian3;
2802
2815
  }
2803
2816
 
2817
+ /**
2818
+ * Terrain data for a single tile where the terrain data is represented as a glb (binary glTF).
2819
+ * @param options - Object with the following properties:
2820
+ * @param options.gltf - The parsed glTF JSON.
2821
+ * @param options.minimumHeight - The minimum terrain height within the tile, in meters above the ellipsoid.
2822
+ * @param options.maximumHeight - The maximum terrain height within the tile, in meters above the ellipsoid.
2823
+ * @param options.boundingSphere - A sphere bounding all of the vertices in the mesh.
2824
+ * @param options.orientedBoundingBox - An oriented bounding box containing all of the vertices in the mesh.
2825
+ * @param options.horizonOcclusionPoint - The horizon occlusion point of the mesh. If this point
2826
+ * is below the horizon, the entire tile is assumed to be below the horizon as well.
2827
+ * The point is expressed in ellipsoid-scaled coordinates.
2828
+ * @param options.skirtHeight - The height of the skirt to add on the edges of the tile.
2829
+ * @param [options.requestVertexNormals = false] - Indicates whether normals should be loaded.
2830
+ * @param [options.requestWaterMask = false] - Indicates whether water mask data should be loaded.
2831
+ * @param [options.credits] - Array of credits for this tile.
2832
+ * @param [options.childTileMask = 15] - A bit mask indicating which of this tile's four children exist.
2833
+ * If a child's bit is set, geometry will be requested for that tile as well when it
2834
+ * is needed. If the bit is cleared, the child tile is not requested and geometry is
2835
+ * instead upsampled from the parent. The bit values are as follows:
2836
+ * <table>
2837
+ * <tr><th>Bit Position</th><th>Bit Value</th><th>Child Tile</th></tr>
2838
+ * <tr><td>0</td><td>1</td><td>Southwest</td></tr>
2839
+ * <tr><td>1</td><td>2</td><td>Southeast</td></tr>
2840
+ * <tr><td>2</td><td>4</td><td>Northwest</td></tr>
2841
+ * <tr><td>3</td><td>8</td><td>Northeast</td></tr>
2842
+ * </table>
2843
+ * @param [options.waterMask] - The buffer containing the water mask.
2844
+ */
2845
+ export class Cesium3DTilesTerrainData {
2846
+ constructor(options: {
2847
+ gltf: {
2848
+ [key: string]: any;
2849
+ };
2850
+ minimumHeight: number;
2851
+ maximumHeight: number;
2852
+ boundingSphere: BoundingSphere;
2853
+ orientedBoundingBox: OrientedBoundingBox;
2854
+ horizonOcclusionPoint: Cartesian3;
2855
+ skirtHeight: number;
2856
+ requestVertexNormals?: boolean;
2857
+ requestWaterMask?: boolean;
2858
+ credits?: Credit[];
2859
+ childTileMask?: number;
2860
+ waterMask?: Uint8Array;
2861
+ });
2862
+ /**
2863
+ * An array of credits for this tile.
2864
+ */
2865
+ credits: Credit[] | undefined;
2866
+ /**
2867
+ * The water mask included in this terrain data, if any. A water mask is a rectangular
2868
+ * Uint8Array or image where a value of 255 indicates water and a value of 0 indicates land.
2869
+ * Values in between 0 and 255 are allowed as well to smoothly blend between land and water.
2870
+ */
2871
+ waterMask: Uint8Array | HTMLImageElement | HTMLCanvasElement | ImageBitmap | undefined;
2872
+ /**
2873
+ * Returns the terrain height at a specified longitude and latitude, or undefined if the mesh is undefined.
2874
+ * @param rectangle - The rectangle covered by this terrain data.
2875
+ * @param longitude - The longitude in radians.
2876
+ * @param latitude - The latitude in radians.
2877
+ * @returns The terrain height at the specified position, or undefined if the mesh is undefined.
2878
+ * If the position is outside the rectangle, this method will extrapolate the height,
2879
+ * which is likely to be wildly incorrect for positions far outside the rectangle.
2880
+ */
2881
+ interpolateHeight(rectangle: Rectangle, longitude: number, latitude: number): number | undefined;
2882
+ /**
2883
+ * Determines if a given child tile is available, based on the
2884
+ * {@link TerrainData#childTileMask}. The given child tile coordinates are assumed
2885
+ * to be one of the four children of this tile. If non-child tile coordinates are
2886
+ * given, the availability of the southeast child tile is returned.
2887
+ * @param thisX - The tile X coordinate of this (the parent) tile.
2888
+ * @param thisY - The tile Y coordinate of this (the parent) tile.
2889
+ * @param childX - The tile X coordinate of the child tile to check for availability.
2890
+ * @param childY - The tile Y coordinate of the child tile to check for availability.
2891
+ * @returns True if the child tile is available; otherwise, false.
2892
+ */
2893
+ isChildAvailable(thisX: number, thisY: number, childX: number, childY: number): boolean;
2894
+ /**
2895
+ * Upsamples this terrain data for use by a descendant tile.
2896
+ * @param tilingScheme - The tiling scheme of this terrain data.
2897
+ * @param thisX - The X coordinate of this tile in the tiling scheme.
2898
+ * @param thisY - The Y coordinate of this tile in the tiling scheme.
2899
+ * @param thisLevel - The level of this tile in the tiling scheme.
2900
+ * @param descendantX - The X coordinate within the tiling scheme of the descendant tile for which we are upsampling.
2901
+ * @param descendantY - The Y coordinate within the tiling scheme of the descendant tile for which we are upsampling.
2902
+ * @param descendantLevel - The level within the tiling scheme of the descendant tile for which we are upsampling.
2903
+ * @returns A promise for upsampled terrain data for the descendant tile, or undefined if createMesh has not been called yet or too many asynchronous upsample operations are in progress and the request has been deferred.
2904
+ */
2905
+ upsample(tilingScheme: TilingScheme, thisX: number, thisY: number, thisLevel: number, descendantX: number, descendantY: number, descendantLevel: number): Promise<TerrainData> | undefined;
2906
+ /**
2907
+ * Gets a value indicating whether or not this terrain data was created by upsampling lower resolution
2908
+ * terrain data. If this value is false, the data was obtained from some other source, such
2909
+ * as by downloading it from a remote server. This method should return true for instances
2910
+ * returned from a call to {@link Cesium3DTilesTerrainData#upsample}.
2911
+ * @returns True if this instance was created by upsampling; otherwise, false.
2912
+ */
2913
+ wasCreatedByUpsampling(): boolean;
2914
+ }
2915
+
2916
+ export namespace Cesium3DTilesTerrainProvider {
2917
+ /**
2918
+ * Initialization options for the Cesium3DTilesTerrainProvider constructor
2919
+ * @property [requestVertexNormals = false] - Flag that indicates if the client should request additional lighting information from the server, in the form of per vertex normals if available.
2920
+ * @property [requestWaterMask = false] - Flag that indicates if the client should request per tile water masks from the server, if available.
2921
+ * @property [ellipsoid = Ellipsoid.default] - The ellipsoid. If not specified, the WGS84 ellipsoid is used.
2922
+ * @property [credit] - A credit for the data source, which is displayed on the canvas.
2923
+ */
2924
+ type ConstructorOptions = {
2925
+ requestVertexNormals?: boolean;
2926
+ requestWaterMask?: boolean;
2927
+ ellipsoid?: Ellipsoid;
2928
+ credit?: Credit | string;
2929
+ };
2930
+ }
2931
+
2932
+ /**
2933
+ * <div class="notice">
2934
+ * To construct a Cesium3DTilesTerrainProvider, call {@link Cesium3DTilesTerrainProvider.fromIonAssetId} or {@link Cesium3DTilesTerrainProvider.fromUrl}. Do not call the constructor directly.
2935
+ * </div>
2936
+ *
2937
+ * A {@link TerrainProvider} that accesses terrain data in a 3D Tiles format.
2938
+ * @param [options] - An object describing initialization options
2939
+ */
2940
+ export class Cesium3DTilesTerrainProvider {
2941
+ constructor(options?: Cesium3DTilesTerrainProvider.ConstructorOptions);
2942
+ /**
2943
+ * Creates a {@link TerrainProvider} that accesses terrain data in a Cesium 3D Tiles format.
2944
+ * @example
2945
+ * // Create terrain with normals.
2946
+ * try {
2947
+ * const viewer = new Cesium.Viewer("cesiumContainer", {
2948
+ * terrainProvider: await Cesium.Cesium3DTilesTerrainProvider.fromUrl(
2949
+ * Cesium.IonResource.fromAssetId(3956), {
2950
+ * requestVertexNormals: true
2951
+ * })
2952
+ * });
2953
+ * } catch (error) {
2954
+ * console.log(error);
2955
+ * }
2956
+ * @param url - The URL of the Cesium terrain server.
2957
+ * @param [options] - An object describing initialization options.
2958
+ * @returns A promise that resolves to the terrain provider.
2959
+ */
2960
+ static fromUrl(url: Resource | string | Promise<Resource> | Promise<string>, options?: Cesium3DTilesTerrainProvider.ConstructorOptions): Promise<Cesium3DTilesTerrainProvider>;
2961
+ /**
2962
+ * Creates a {@link TerrainProvider} from a Cesium ion asset ID that accesses terrain data in a Cesium 3D Tiles format
2963
+ * @example
2964
+ * // Create GTOPO30 with vertex normals
2965
+ * try {
2966
+ * const viewer = new Cesium.Viewer("cesiumContainer", {
2967
+ * terrainProvider: await Cesium.Cesium3DTilesTerrainProvider.fromIonAssetId(2732686, {
2968
+ * requestVertexNormals: true
2969
+ * })
2970
+ * });
2971
+ * } catch (error) {
2972
+ * console.log(error);
2973
+ * }
2974
+ * @param assetId - The Cesium ion asset id.
2975
+ * @param [options] - An object describing initialization options.
2976
+ */
2977
+ static fromIonAssetId(assetId: number, options?: CesiumTerrainProvider.ConstructorOptions): Promise<CesiumTerrainProvider>;
2978
+ /**
2979
+ * Requests the geometry for a given tile. This function should not be called before
2980
+ * {@link Cesium3DTilesTerrainProvider#ready} returns true. The result must include terrain data and
2981
+ * may optionally include a water mask and an indication of which child tiles are available.
2982
+ * @param x - The X coordinate of the tile for which to request geometry.
2983
+ * @param y - The Y coordinate of the tile for which to request geometry.
2984
+ * @param level - The level of the tile for which to request geometry.
2985
+ * @param [request] - The request object. Intended for internal use only.
2986
+ * @returns A promise for the requested geometry. If this method
2987
+ * returns undefined instead of a promise, it is an indication that too many requests are already
2988
+ * pending and the request will be retried later.
2989
+ */
2990
+ requestTileGeometry(x: number, y: number, level: number, request?: Request): Promise<Cesium3DTilesTerrainData> | undefined;
2991
+ /**
2992
+ * Determines whether data for a tile is available to be loaded.
2993
+ * @param x - The X coordinate of the tile for which to request geometry.
2994
+ * @param y - The Y coordinate of the tile for which to request geometry.
2995
+ * @param level - The level of the tile for which to request geometry.
2996
+ * @returns Undefined if not supported or availability is unknown, otherwise true or false.
2997
+ */
2998
+ getTileDataAvailable(x: number, y: number, level: number): boolean | undefined;
2999
+ /**
3000
+ * Make sure we load availability data for a tile
3001
+ * @param _x - The X coordinate of the tile for which to request geometry.
3002
+ * @param _y - The Y coordinate of the tile for which to request geometry.
3003
+ * @param _level - The level of the tile for which to request geometry.
3004
+ * @returns Undefined if nothing need to be loaded or a Promise that resolves when all required tiles are loaded
3005
+ */
3006
+ loadTileDataAvailability(_x: number, _y: number, _level: number): Promise<void> | undefined;
3007
+ /**
3008
+ * Get the maximum geometric error allowed in a tile at a given level.
3009
+ * @param level - The tile level for which to get the maximum geometric error.
3010
+ * @returns The maximum geometric error.
3011
+ */
3012
+ getLevelMaximumGeometricError(level: number): number;
3013
+ /**
3014
+ * Gets an event that is raised when the terrain provider encounters an asynchronous error. By subscribing
3015
+ * to the event, you will be notified of the error and can potentially recover from it. Event listeners
3016
+ * are passed an instance of {@link TileProviderError}.
3017
+ */
3018
+ errorEvent: Event;
3019
+ /**
3020
+ * Gets the credit to display when this terrain provider is active. Typically this is used to credit
3021
+ * the source of the terrain.
3022
+ */
3023
+ credit: Credit;
3024
+ /**
3025
+ * Gets the tiling scheme used by the provider.
3026
+ */
3027
+ tilingScheme: TilingScheme;
3028
+ /**
3029
+ * Gets a value indicating whether or not the provider includes a water mask. The water mask
3030
+ * indicates which areas of the globe are water rather than land, so they can be rendered
3031
+ * as a reflective surface with animated waves.
3032
+ */
3033
+ hasWaterMask: boolean;
3034
+ /**
3035
+ * Gets a value indicating whether or not the requested tiles include vertex normals.
3036
+ */
3037
+ hasVertexNormals: boolean;
3038
+ /**
3039
+ * Gets an object that can be used to determine availability of terrain from this provider, such as
3040
+ * at points and in rectangles.
3041
+ */
3042
+ availability: TileAvailability | undefined;
3043
+ }
3044
+
2804
3045
  export namespace CesiumTerrainProvider {
2805
3046
  /**
2806
3047
  * Initialization options for the CesiumTerrainProvider constructor
@@ -3602,6 +3843,12 @@ export class Color {
3602
3843
  * @returns The modified result parameter or a new instance if result was undefined.
3603
3844
  */
3604
3845
  toBytes(result?: number[]): number[];
3846
+ /**
3847
+ * Converts RGBA values in bytes to a single numeric unsigned 32-bit RGBA value, using the endianness
3848
+ * of the system.
3849
+ * @returns A single numeric unsigned 32-bit RGBA value.
3850
+ */
3851
+ static bytesToRgba(): number;
3605
3852
  /**
3606
3853
  * Converts this color to a single numeric unsigned 32-bit RGBA value, using the endianness
3607
3854
  * of the system.
@@ -7620,7 +7867,7 @@ export class GoogleEarthEnterpriseTerrainData {
7620
7867
  upsample(tilingScheme: TilingScheme, thisX: number, thisY: number, thisLevel: number, descendantX: number, descendantY: number, descendantLevel: number): Promise<HeightmapTerrainData> | undefined;
7621
7868
  /**
7622
7869
  * Determines if a given child tile is available, based on the
7623
- * {@link HeightmapTerrainData.childTileMask}. The given child tile coordinates are assumed
7870
+ * {@link GoogleEarthEnterpriseTerrainData.childTileMask}. The given child tile coordinates are assumed
7624
7871
  * to be one of the four children of this tile. If non-child tile coordinates are
7625
7872
  * given, the availability of the southeast child tile is returned.
7626
7873
  * @param thisX - The tile X coordinate of this (the parent) tile.
@@ -8133,7 +8380,7 @@ export class HeightmapTerrainData {
8133
8380
  * Uint8Array or image where a value of 255 indicates water and a value of 0 indicates land.
8134
8381
  * Values in between 0 and 255 are allowed as well to smoothly blend between land and water.
8135
8382
  */
8136
- waterMask: Uint8Array | HTMLImageElement | HTMLCanvasElement | undefined;
8383
+ waterMask: Uint8Array | HTMLImageElement | HTMLCanvasElement | ImageBitmap | undefined;
8137
8384
  /**
8138
8385
  * Computes the terrain height at a specified longitude and latitude.
8139
8386
  * @param rectangle - The rectangle covered by this terrain data.
@@ -8617,6 +8864,13 @@ export namespace IntersectionTests {
8617
8864
  * @returns The interval containing scalar points along the ray or undefined if there are no intersections.
8618
8865
  */
8619
8866
  function rayEllipsoid(ray: Ray, ellipsoid: Ellipsoid): Interval;
8867
+ /**
8868
+ * Computes the intersection points of a ray with an axis-aligned bounding box. (axis-aligned in the same space as the ray)
8869
+ * @param ray - The ray.
8870
+ * @param box - The axis-aligned bounding box.
8871
+ * @param result - The interval containing scalar points along the ray or undefined if there are no intersections.
8872
+ */
8873
+ function rayAxisAlignedBoundingBox(ray: Ray, box: AxisAlignedBoundingBox, result: Interval | undefined): void;
8620
8874
  /**
8621
8875
  * Provides the point along the ray which is nearest to the ellipsoid.
8622
8876
  * @param ray - The ray.
@@ -8821,7 +9075,7 @@ export class IonGeocoderService {
8821
9075
  * A {@link Resource} instance that encapsulates Cesium ion asset access.
8822
9076
  * This object is normally not instantiated directly, use {@link IonResource.fromAssetId}.
8823
9077
  * @param endpoint - The result of the Cesium ion asset endpoint service.
8824
- * @param endpointResource - The resource used to retrieve the endpoint.
9078
+ * @param endpointResource - The original resource used to retrieve the endpoint.
8825
9079
  */
8826
9080
  export class IonResource extends Resource {
8827
9081
  constructor(endpoint: any, endpointResource: Resource);
@@ -16462,7 +16716,7 @@ export class TerrainData {
16462
16716
  * Uint8Array or image where a value of 255 indicates water and a value of 0 indicates land.
16463
16717
  * Values in between 0 and 255 are allowed as well to smoothly blend between land and water.
16464
16718
  */
16465
- waterMask: Uint8Array | HTMLImageElement | HTMLCanvasElement | undefined;
16719
+ waterMask: Uint8Array | HTMLImageElement | HTMLCanvasElement | ImageBitmap | undefined;
16466
16720
  /**
16467
16721
  * Computes the terrain height at a specified longitude and latitude.
16468
16722
  * @param rectangle - The rectangle covered by this terrain data.
@@ -16509,6 +16763,21 @@ export class TerrainData {
16509
16763
  wasCreatedByUpsampling(): boolean;
16510
16764
  }
16511
16765
 
16766
+ /**
16767
+ * Indicates whether the terrain picker needs to be rebuilt due to changes in the underlying terrain mesh's vertices or indices.
16768
+ */
16769
+ export var needsRebuild: boolean;
16770
+
16771
+ /**
16772
+ * Creates an axis-aligned bounding box for a quadtree node at the given tree-space coordinates and level.
16773
+ * This AABB is in the tree's local space (where the root node of the tree is a unit cube in its own local space).
16774
+ * @param x - The x coordinate of the node.
16775
+ * @param y - The y coordinate of the node.
16776
+ * @param level - The level of the node.
16777
+ * @returns The axis-aligned bounding box for the node.
16778
+ */
16779
+ export function createAABBForNode(x: number, y: number, level: number): AxisAlignedBoundingBox;
16780
+
16512
16781
  export namespace TerrainProvider {
16513
16782
  /**
16514
16783
  * A function that is called when an error occurs.
@@ -18385,7 +18654,7 @@ export function barycentricCoordinates(point: Cartesian2 | Cartesian3, p0: Carte
18385
18654
  * of the index before which the itemToFind should be inserted in order to maintain the
18386
18655
  * sorted order of the array.
18387
18656
  */
18388
- export function binarySearch(array: any[], itemToFind: any, comparator: binarySearchComparator): number;
18657
+ export function binarySearch(array: any[] | Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array, itemToFind: any, comparator: binarySearchComparator): number;
18389
18658
 
18390
18659
  /**
18391
18660
  * A function used to compare two items while performing a binary search.
@@ -18649,7 +18918,7 @@ export function isLeapYear(year: number): boolean;
18649
18918
  * @param comparator - The function to use to compare elements in the array.
18650
18919
  * @param [userDefinedObject] - Any item to pass as the third parameter to <code>comparator</code>.
18651
18920
  */
18652
- export function mergeSort(array: any[], comparator: mergeSortComparator, userDefinedObject?: any): void;
18921
+ export function mergeSort(array: any[] | Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array, comparator: mergeSortComparator, userDefinedObject?: any): void;
18653
18922
 
18654
18923
  /**
18655
18924
  * A function used to compare two items while performing a merge sort.
@@ -18851,7 +19120,7 @@ export namespace BillboardGraphics {
18851
19120
  */
18852
19121
  type ConstructorOptions = {
18853
19122
  show?: Property | boolean;
18854
- image?: Property | string | HTMLCanvasElement;
19123
+ image?: Property | string | HTMLImageElement | HTMLCanvasElement;
18855
19124
  scale?: Property | number;
18856
19125
  pixelOffset?: Property | Cartesian2;
18857
19126
  eyeOffset?: Property | Cartesian3;
@@ -25639,6 +25908,8 @@ export type WebGLOptions = {
25639
25908
  failIfMajorPerformanceCaveat?: boolean;
25640
25909
  };
25641
25910
 
25911
+ export function PickId(pickObjects: Map<number, object>, key: number, color: Color): void;
25912
+
25642
25913
  /**
25643
25914
  * The data type of a pixel.
25644
25915
  */
@@ -26153,6 +26424,137 @@ export enum Axis {
26153
26424
  Z = 2
26154
26425
  }
26155
26426
 
26427
+ export namespace Azure2DImageryProvider {
26428
+ /**
26429
+ * Initialization options for the Azure2DImageryProvider constructor
26430
+ * @property options - Object with the following properties:
26431
+ * @property [options.url = "https://atlas.microsoft.com/"] - The Azure server url.
26432
+ * @property options.tilesetId - The Azure tileset ID. Valid options are {@link microsoft.imagery}, {@link microsoft.base.road}, and {@link microsoft.base.labels.road}
26433
+ * @property options.subscriptionKey - The public subscription key for the imagery.
26434
+ * @property [options.ellipsoid = Ellipsoid.default] - The ellipsoid. If not specified, the default ellipsoid is used.
26435
+ * @property [options.minimumLevel = 0] - The minimum level-of-detail supported by the imagery provider. Take care when specifying
26436
+ * this that the number of tiles at the minimum level is small, such as four or less. A larger number is likely
26437
+ * to result in rendering problems.
26438
+ * @property [options.maximumLevel = 22] - The maximum level-of-detail supported by the imagery provider.
26439
+ * @property [options.rectangle = Rectangle.MAX_VALUE] - The rectangle, in radians, covered by the image.
26440
+ */
26441
+ type ConstructorOptions = {
26442
+ options: {
26443
+ url?: string;
26444
+ tilesetId: string;
26445
+ subscriptionKey: string;
26446
+ ellipsoid?: Ellipsoid;
26447
+ minimumLevel?: number;
26448
+ maximumLevel?: number;
26449
+ rectangle?: Rectangle;
26450
+ };
26451
+ };
26452
+ }
26453
+
26454
+ /**
26455
+ * Provides 2D image tiles from Azure.
26456
+ * @example
26457
+ * // Azure 2D imagery provider
26458
+ * const azureImageryProvider = new Cesium.Azure2DImageryProvider({
26459
+ * subscriptionKey: "subscription-key",
26460
+ * tilesetId: "microsoft.base.road"
26461
+ * });
26462
+ * @param options - Object describing initialization options
26463
+ */
26464
+ export class Azure2DImageryProvider {
26465
+ constructor(options: Azure2DImageryProvider.ConstructorOptions);
26466
+ /**
26467
+ * Gets the URL of the Azure 2D Imagery server.
26468
+ */
26469
+ readonly url: string;
26470
+ /**
26471
+ * Gets the rectangle, in radians, of the imagery provided by the instance.
26472
+ */
26473
+ readonly rectangle: Rectangle;
26474
+ /**
26475
+ * Gets the width of each tile, in pixels.
26476
+ */
26477
+ readonly tileWidth: number;
26478
+ /**
26479
+ * Gets the height of each tile, in pixels.
26480
+ */
26481
+ readonly tileHeight: number;
26482
+ /**
26483
+ * Gets the maximum level-of-detail that can be requested.
26484
+ */
26485
+ readonly maximumLevel: number | undefined;
26486
+ /**
26487
+ * Gets the minimum level-of-detail that can be requested. Generally,
26488
+ * a minimum level should only be used when the rectangle of the imagery is small
26489
+ * enough that the number of tiles at the minimum level is small. An imagery
26490
+ * provider with more than a few tiles at the minimum level will lead to
26491
+ * rendering problems.
26492
+ */
26493
+ readonly minimumLevel: number;
26494
+ /**
26495
+ * Gets the tiling scheme used by the provider.
26496
+ */
26497
+ readonly tilingScheme: TilingScheme;
26498
+ /**
26499
+ * Gets the tile discard policy. If not undefined, the discard policy is responsible
26500
+ * for filtering out "missing" tiles via its shouldDiscardImage function. If this function
26501
+ * returns undefined, no tiles are filtered.
26502
+ */
26503
+ readonly tileDiscardPolicy: TileDiscardPolicy;
26504
+ /**
26505
+ * Gets an event that is raised when the imagery provider encounters an asynchronous error.. By subscribing
26506
+ * to the event, you will be notified of the error and can potentially recover from it. Event listeners
26507
+ * are passed an instance of {@link TileProviderError}.
26508
+ */
26509
+ readonly errorEvent: Event;
26510
+ /**
26511
+ * Gets the credit to display when this imagery provider is active. Typically this is used to credit
26512
+ * the source of the imagery.
26513
+ */
26514
+ readonly credit: Credit;
26515
+ /**
26516
+ * Gets the proxy used by this provider.
26517
+ */
26518
+ readonly proxy: Proxy;
26519
+ /**
26520
+ * Gets a value indicating whether or not the images provided by this imagery provider
26521
+ * include an alpha channel. If this property is false, an alpha channel, if present, will
26522
+ * be ignored. If this property is true, any images without an alpha channel will be treated
26523
+ * as if their alpha is 1.0 everywhere. When this property is false, memory usage
26524
+ * and texture upload time are reduced.
26525
+ */
26526
+ readonly hasAlphaChannel: boolean;
26527
+ /**
26528
+ * Gets the credits to be displayed when a given tile is displayed.
26529
+ * @param x - The tile X coordinate.
26530
+ * @param y - The tile Y coordinate.
26531
+ * @param level - The tile level;
26532
+ * @returns The credits to be displayed when the tile is displayed.
26533
+ */
26534
+ getTileCredits(x: number, y: number, level: number): Credit[] | undefined;
26535
+ /**
26536
+ * Requests the image for a given tile.
26537
+ * @param x - The tile X coordinate.
26538
+ * @param y - The tile Y coordinate.
26539
+ * @param level - The tile level.
26540
+ * @param [request] - The request object. Intended for internal use only.
26541
+ * @returns A promise for the image that will resolve when the image is available, or
26542
+ * undefined if there are too many active requests to the server, and the request should be retried later.
26543
+ */
26544
+ requestImage(x: number, y: number, level: number, request?: Request): Promise<ImageryTypes> | undefined;
26545
+ /**
26546
+ * Picking features is not currently supported by this imagery provider, so this function simply returns
26547
+ * undefined.
26548
+ * @param x - The tile X coordinate.
26549
+ * @param y - The tile Y coordinate.
26550
+ * @param level - The tile level.
26551
+ * @param longitude - The longitude at which to pick features.
26552
+ * @param latitude - The latitude at which to pick features.
26553
+ * @returns Undefined since picking is not supported.
26554
+ */
26555
+ pickFeatures(x: number, y: number, level: number, longitude: number, latitude: number): undefined;
26556
+ }
26557
+
26156
26558
  export namespace Billboard {
26157
26559
  /**
26158
26560
  * Initialization options for the first param of Billboard constructor
@@ -26184,7 +26586,7 @@ export namespace Billboard {
26184
26586
  position: Cartesian3;
26185
26587
  id?: any;
26186
26588
  show?: boolean;
26187
- image?: string | HTMLCanvasElement;
26589
+ image?: string | HTMLImageElement | HTMLCanvasElement;
26188
26590
  scale?: number;
26189
26591
  pixelOffset?: Cartesian2;
26190
26592
  eyeOffset?: Cartesian3;
@@ -26535,6 +26937,11 @@ export class Billboard {
26535
26937
  equals(other?: Billboard): boolean;
26536
26938
  }
26537
26939
 
26940
+ /**
26941
+ * Arbitrary limit on allocated SVG size, in pixels. Raster images use image resolution.
26942
+ */
26943
+ export const SVG_MAX_SIZE_PX = 512;
26944
+
26538
26945
  /**
26539
26946
  * A renderable collection of billboards. Billboards are viewport-aligned
26540
26947
  * images positioned in the 3D scene.
@@ -32872,31 +33279,28 @@ export function removeExtension(gltf: any, extension: string): any;
32872
33279
  export namespace Google2DImageryProvider {
32873
33280
  /**
32874
33281
  * Initialization options for the Google2DImageryProvider constructor
32875
- * @property options - Object with the following properties:
32876
- * @property options.key - The Google api key to send with tile requests.
32877
- * @property options.session - The Google session token that tracks the current state of your map and viewport.
32878
- * @property options.url - The Google 2D maps endpoint.
32879
- * @property options.tileWidth - The width of each tile in pixels.
32880
- * @property options.tileHeight - The height of each tile in pixels.
32881
- * @property [options.ellipsoid = Ellipsoid.default] - The ellipsoid. If not specified, the default ellipsoid is used.
32882
- * @property [options.minimumLevel = 0] - The minimum level-of-detail supported by the imagery provider. Take care when specifying
33282
+ * @property key - The Google api key to send with tile requests.
33283
+ * @property session - The Google session token that tracks the current state of your map and viewport.
33284
+ * @property url - The Google 2D maps endpoint.
33285
+ * @property tileWidth - The width of each tile in pixels.
33286
+ * @property tileHeight - The height of each tile in pixels.
33287
+ * @property [ellipsoid = Ellipsoid.default] - The ellipsoid. If not specified, the default ellipsoid is used.
33288
+ * @property [minimumLevel = 0] - The minimum level-of-detail supported by the imagery provider. Take care when specifying
32883
33289
  * this that the number of tiles at the minimum level is small, such as four or less. A larger number is likely
32884
33290
  * to result in rendering problems.
32885
- * @property [options.maximumLevel = 22] - The maximum level-of-detail supported by the imagery provider.
32886
- * @property [options.rectangle = Rectangle.MAX_VALUE] - The rectangle, in radians, covered by the image.
33291
+ * @property [maximumLevel = 22] - The maximum level-of-detail supported by the imagery provider.
33292
+ * @property [rectangle = Rectangle.MAX_VALUE] - The rectangle, in radians, covered by the image.
32887
33293
  */
32888
33294
  type ConstructorOptions = {
32889
- options: {
32890
- key: string;
32891
- session: string;
32892
- url: string | Resource | IonResource;
32893
- tileWidth: string;
32894
- tileHeight: string;
32895
- ellipsoid?: Ellipsoid;
32896
- minimumLevel?: number;
32897
- maximumLevel?: number;
32898
- rectangle?: Rectangle;
32899
- };
33295
+ key: string;
33296
+ session: string;
33297
+ url: string | Resource | IonResource;
33298
+ tileWidth: string;
33299
+ tileHeight: string;
33300
+ ellipsoid?: Ellipsoid;
33301
+ minimumLevel?: number;
33302
+ maximumLevel?: number;
33303
+ rectangle?: Rectangle;
32900
33304
  };
32901
33305
  }
32902
33306
 
@@ -32995,7 +33399,7 @@ export class Google2DImageryProvider {
32995
33399
  * });
32996
33400
  * @example
32997
33401
  * // Google 2D roadmap overlay with custom styles
32998
- * const googleTileProvider = Cesium.Google2DImageryProvider.fromIonAssetId({
33402
+ * const googleTilesProvider = Cesium.Google2DImageryProvider.fromIonAssetId({
32999
33403
  * assetId: 3830184,
33000
33404
  * overlayLayerType: "layerRoadmap",
33001
33405
  * styles: [
@@ -33051,7 +33455,7 @@ export class Google2DImageryProvider {
33051
33455
  * // Google 2D roadmap overlay with custom styles
33052
33456
  * Cesium.GoogleMaps.defaultApiKey = "your-api-key";
33053
33457
  *
33054
- * const googleTileProvider = Cesium.Google2DImageryProvider.fromUrl({
33458
+ * const googleTilesProvider = Cesium.Google2DImageryProvider.fromUrl({
33055
33459
  * overlayLayerType: "layerRoadmap",
33056
33460
  * styles: [
33057
33461
  * {
@@ -39723,6 +40127,20 @@ export var metadataProperty: any;
39723
40127
  */
39724
40128
  export function computePickingDrawingBufferRectangle(drawingBufferHeight: number, position: Cartesian2, width: number | undefined, height: number | undefined, result: BoundingRectangle): BoundingRectangle;
39725
40129
 
40130
+ /**
40131
+ * Setup needed before picking.
40132
+ * @param windowPosition - Window coordinates to perform picking on.
40133
+ * @param drawingBufferRectangle - The output drawing buffer recangle.
40134
+ * @param [width = 3] - Width of the pick rectangle.
40135
+ * @param [height = 3] - Height of the pick rectangle.
40136
+ */
40137
+ export function pickBegin(scene: Scene, windowPosition: Cartesian2, drawingBufferRectangle: BoundingRectangle, width?: number, height?: number): void;
40138
+
40139
+ /**
40140
+ * Teardown needed after picking.
40141
+ */
40142
+ export function pickEnd(scene: Scene): void;
40143
+
39726
40144
  /**
39727
40145
  * Information about metadata that is supposed to be picked
39728
40146
  * @property schemaId - The optional ID of the metadata schema
@@ -39737,6 +40155,21 @@ export type PickedMetadataInfo = {
39737
40155
  classProperty: MetadataClassProperty;
39738
40156
  };
39739
40157
 
40158
+ /**
40159
+ * @param pickedResults - the results from the pickCallback
40160
+ * @param limit - If supplied, stop drilling after collecting this many picks.
40161
+ * @returns whether picking should end
40162
+ */
40163
+ export function addDrillPickedResults(pickedResults: object[], limit: number, results: object[], pickedPrimitives: object[], pickedAttributes: object[], pickedFeatures: object[]): boolean;
40164
+
40165
+ /**
40166
+ * Drill pick by repeatedly calling a given `pickCallback`, each time stripping away the previously picked objects.
40167
+ * @param pickCallback - Pick callback to execute each iteration
40168
+ * @param [limit = Number.MAX_VALUE] - If supplied, stop drilling after collecting this many picks
40169
+ * @returns List of picked results
40170
+ */
40171
+ export function drillPick(pickCallback: (...params: any[]) => any, limit?: number): object[];
40172
+
39740
40173
  /**
39741
40174
  * Remove all invalid binary body references from the batch table
39742
40175
  * JSON of the given parsed content.
@@ -41877,6 +42310,12 @@ export class Scene {
41877
42310
  * The light source for shading. Defaults to a directional light from the Sun.
41878
42311
  */
41879
42312
  light: Light;
42313
+ /**
42314
+ * Whether or not to enable edge visibility rendering for 3D tiles.
42315
+ * When enabled, creates a framebuffer with multiple render targets
42316
+ * for advanced edge detection and visibility techniques.
42317
+ */
42318
+ _enableEdgeVisibility: boolean;
41880
42319
  /**
41881
42320
  * Use this to set the default value for {@link Scene#logarithmicDepthBuffer} in newly constructed Scenes
41882
42321
  * This property relies on fragmentDepth being supported.
@@ -42113,6 +42552,24 @@ export class Scene {
42113
42552
  * @returns Object containing the picked primitive or <code>undefined</code> if nothing is at the location.
42114
42553
  */
42115
42554
  pick(windowPosition: Cartesian2, width?: number, height?: number): any | undefined;
42555
+ /**
42556
+ * Performs the same operation as Scene.pick but asynchonosly without blocking the main render thread.
42557
+ * Requires WebGL2 else using fallback.
42558
+ * @example
42559
+ * // On mouse over, color the feature yellow.
42560
+ * handler.setInputAction(function(movement) {
42561
+ * const feature = scene.pickAsync(movement.endPosition).then(function(feature) {
42562
+ * if (feature instanceof Cesium.Cesium3DTileFeature) {
42563
+ * feature.color = Cesium.Color.YELLOW;
42564
+ * }
42565
+ * });
42566
+ * }, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
42567
+ * @param windowPosition - Window coordinates to perform picking on.
42568
+ * @param [width = 3] - Width of the pick rectangle.
42569
+ * @param [height = 3] - Height of the pick rectangle.
42570
+ * @returns Object containing the picked primitive or <code>undefined</code> if nothing is at the location.
42571
+ */
42572
+ pickAsync(windowPosition: Cartesian2, width?: number, height?: number): Promise<object | undefined>;
42116
42573
  /**
42117
42574
  * Returns a {@link VoxelCell} for the voxel sample rendered at a particular window coordinate,
42118
42575
  * or <code>undefined</code> if no voxel is rendered at that position.