@cesium/engine 6.2.0 → 8.0.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 (268) hide show
  1. package/Build/ThirdParty/Workers/z-worker-pako.js +568 -407
  2. package/Build/Workers/{chunk-RH4N2ONY.js → chunk-23UFSGND.js} +7 -7
  3. package/Build/Workers/{chunk-HPP4JLNH.js → chunk-2A75IWRS.js} +7 -7
  4. package/Build/Workers/{chunk-5IRLXUTA.js → chunk-2FRVPMCS.js} +10 -10
  5. package/Build/Workers/{chunk-ZQRZBHYI.js → chunk-2FWRMUTY.js} +4 -4
  6. package/Build/Workers/{chunk-Z2SIPUKB.js → chunk-2UPKWTMJ.js} +6 -6
  7. package/Build/Workers/{chunk-434ZTTFX.js → chunk-34FXV7D7.js} +2 -2
  8. package/Build/Workers/{chunk-MW3CJYLX.js → chunk-3VAZEH7M.js} +2 -2
  9. package/Build/Workers/{chunk-HUPNRBWW.js → chunk-4DO5W5XZ.js} +6 -6
  10. package/Build/Workers/{chunk-PIXK6KHB.js → chunk-4H7PY4U5.js} +2 -2
  11. package/Build/Workers/{chunk-BP467WX3.js → chunk-5QULIR53.js} +4 -4
  12. package/Build/Workers/{chunk-R3HUGXBH.js → chunk-7TC63SJW.js} +8 -8
  13. package/Build/Workers/{chunk-SQVTYRZY.js → chunk-7ZFGPDJA.js} +4 -4
  14. package/Build/Workers/{chunk-TIXXVKUY.js → chunk-A5DWLWCY.js} +10 -10
  15. package/Build/Workers/{chunk-CWJQGBWT.js → chunk-BBWDMCVU.js} +1 -1
  16. package/Build/Workers/{chunk-4KP73B43.js → chunk-BG4UCVXN.js} +3 -3
  17. package/Build/Workers/{chunk-Y4OJ4B23.js → chunk-BIKA3NRA.js} +5 -5
  18. package/Build/Workers/{chunk-DR5XZ6K5.js → chunk-BROJAZRZ.js} +13 -13
  19. package/Build/Workers/{chunk-FWGNCYP6.js → chunk-DDUQAJ4P.js} +7 -7
  20. package/Build/Workers/{chunk-QRBRVGZC.js → chunk-EERJKOAF.js} +4 -4
  21. package/Build/Workers/{chunk-52VSIKEA.js → chunk-EG6PTBY2.js} +15 -15
  22. package/Build/Workers/{chunk-O43GWBSF.js → chunk-EHWHNOEX.js} +1 -1
  23. package/Build/Workers/{chunk-MN34FIF5.js → chunk-F3YA3Y2Z.js} +1 -1
  24. package/Build/Workers/{chunk-GF5TNNKP.js → chunk-F4HFJMGM.js} +6 -6
  25. package/Build/Workers/{chunk-HOT2SNXP.js → chunk-FJKNFAKQ.js} +133 -553
  26. package/Build/Workers/{chunk-TMPVBFJQ.js → chunk-FNIRWHJB.js} +10 -10
  27. package/Build/Workers/{chunk-DMCSY5BU.js → chunk-FZRIVR7Y.js} +5 -5
  28. package/Build/Workers/{chunk-Z4JUBRHP.js → chunk-G43QFN4Q.js} +6 -6
  29. package/Build/Workers/{chunk-HPH5HSFE.js → chunk-GATZHF3K.js} +2 -2
  30. package/Build/Workers/{chunk-CSIZ3BGT.js → chunk-GRC2ZTAF.js} +14 -14
  31. package/Build/Workers/{chunk-NE4JNU6H.js → chunk-HU6N6EXB.js} +10 -10
  32. package/Build/Workers/{chunk-GVL5I7TC.js → chunk-I46ZRR5W.js} +17 -17
  33. package/Build/Workers/{chunk-5GDBZTHX.js → chunk-JURN7NPV.js} +17 -17
  34. package/Build/Workers/{chunk-H5DUXHCV.js → chunk-KKCR2YOP.js} +11 -11
  35. package/Build/Workers/{chunk-LX6XV4DK.js → chunk-LPR3YNP2.js} +5 -5
  36. package/Build/Workers/{chunk-HFKSAB5K.js → chunk-M7ERACJJ.js} +13 -13
  37. package/Build/Workers/{chunk-BUZDZBUH.js → chunk-MDWEGWPA.js} +10 -10
  38. package/Build/Workers/{chunk-LGJUI2CE.js → chunk-OGXZVPPM.js} +9 -5
  39. package/Build/Workers/{chunk-PZ2WJWUG.js → chunk-PGSJK77E.js} +6 -6
  40. package/Build/Workers/{chunk-ARPTYYKS.js → chunk-PPH7OFP3.js} +5 -5
  41. package/Build/Workers/{chunk-R4OZKBXH.js → chunk-SH5USDPI.js} +6 -6
  42. package/Build/Workers/{chunk-SV7DDPAC.js → chunk-SOWMRMWA.js} +1 -1
  43. package/Build/Workers/{chunk-RIDPF7PO.js → chunk-STW2DGFI.js} +2 -2
  44. package/Build/Workers/{chunk-CDGHUKQ4.js → chunk-T3XIFPYR.js} +13 -13
  45. package/Build/Workers/chunk-TTUZP4BO.js +501 -0
  46. package/Build/Workers/{chunk-QTZQZY2C.js → chunk-UEXTBDBE.js} +34 -10
  47. package/Build/Workers/{chunk-XUTVA4K5.js → chunk-VOXYEYJT.js} +11 -11
  48. package/Build/Workers/{chunk-AXFRNOVC.js → chunk-X4356LRH.js} +12 -12
  49. package/Build/Workers/{chunk-5HLGKKG3.js → chunk-XGI5BXZY.js} +2 -2
  50. package/Build/Workers/{chunk-SNN7WOC2.js → chunk-Y2ME2IJV.js} +13 -13
  51. package/Build/Workers/{chunk-LGL4P5KL.js → chunk-Y5UQJLYE.js} +6 -6
  52. package/Build/Workers/{chunk-3PW6ZBN4.js → chunk-YJEBABKH.js} +7 -7
  53. package/Build/Workers/{chunk-YBKFS53K.js → chunk-YWTJ2B4B.js} +1 -1
  54. package/Build/Workers/{chunk-5SK36PU4.js → chunk-Z3TIFFGF.js} +7 -7
  55. package/Build/Workers/{chunk-JGG36SQV.js → chunk-ZT7KWISZ.js} +4 -4
  56. package/Build/Workers/combineGeometry.js +24 -23
  57. package/Build/Workers/createBoxGeometry.js +18 -17
  58. package/Build/Workers/createBoxOutlineGeometry.js +16 -15
  59. package/Build/Workers/createCircleGeometry.js +26 -25
  60. package/Build/Workers/createCircleOutlineGeometry.js +19 -18
  61. package/Build/Workers/createCoplanarPolygonGeometry.js +33 -32
  62. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +31 -30
  63. package/Build/Workers/createCorridorGeometry.js +29 -29
  64. package/Build/Workers/createCorridorOutlineGeometry.js +28 -28
  65. package/Build/Workers/createCylinderGeometry.js +20 -19
  66. package/Build/Workers/createCylinderOutlineGeometry.js +18 -17
  67. package/Build/Workers/createEllipseGeometry.js +26 -25
  68. package/Build/Workers/createEllipseOutlineGeometry.js +19 -18
  69. package/Build/Workers/createEllipsoidGeometry.js +19 -18
  70. package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -17
  71. package/Build/Workers/createFrustumGeometry.js +18 -17
  72. package/Build/Workers/createFrustumOutlineGeometry.js +18 -17
  73. package/Build/Workers/createGeometry.js +54 -33
  74. package/Build/Workers/createGroundPolylineGeometry.js +22 -21
  75. package/Build/Workers/createPlaneGeometry.js +16 -15
  76. package/Build/Workers/createPlaneOutlineGeometry.js +15 -14
  77. package/Build/Workers/createPolygonGeometry.js +32 -166
  78. package/Build/Workers/createPolygonOutlineGeometry.js +30 -29
  79. package/Build/Workers/createPolylineGeometry.js +25 -24
  80. package/Build/Workers/createPolylineVolumeGeometry.js +32 -33
  81. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +27 -27
  82. package/Build/Workers/createRectangleGeometry.js +27 -26
  83. package/Build/Workers/createRectangleOutlineGeometry.js +20 -19
  84. package/Build/Workers/createSimplePolylineGeometry.js +23 -22
  85. package/Build/Workers/createSphereGeometry.js +19 -18
  86. package/Build/Workers/createSphereOutlineGeometry.js +18 -17
  87. package/Build/Workers/createTaskProcessorWorker.js +3 -3
  88. package/Build/Workers/createVectorTileClampedPolylines.js +14 -14
  89. package/Build/Workers/createVectorTileGeometries.js +24 -23
  90. package/Build/Workers/createVectorTilePoints.js +12 -12
  91. package/Build/Workers/createVectorTilePolygons.js +22 -21
  92. package/Build/Workers/createVectorTilePolylines.js +14 -14
  93. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +22 -21
  94. package/Build/Workers/createVerticesFromHeightmap.js +22 -21
  95. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +19 -18
  96. package/Build/Workers/createWallGeometry.js +24 -23
  97. package/Build/Workers/createWallOutlineGeometry.js +23 -22
  98. package/Build/Workers/decodeDraco.js +11 -11
  99. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
  100. package/Build/Workers/decodeI3S.js +601 -92
  101. package/Build/Workers/transcodeKTX2.js +7 -7
  102. package/Build/Workers/transferTypedArrayTest.js +1 -1
  103. package/Build/Workers/upsampleQuantizedTerrainMesh.js +22 -21
  104. package/LICENSE.md +1 -1
  105. package/Source/Assets/approximateTerrainHeights.json +1 -1
  106. package/Source/Core/Ellipsoid.js +6 -0
  107. package/Source/Core/GregorianDate.js +85 -0
  108. package/Source/Core/HeadingPitchRange.js +2 -2
  109. package/Source/Core/IntersectionTests.js +6 -3
  110. package/Source/Core/Ion.js +1 -1
  111. package/Source/Core/PixelFormat.js +5 -0
  112. package/Source/Core/PolygonGeometry.js +0 -169
  113. package/Source/Core/Resource.js +30 -69
  114. package/Source/Core/Transforms.js +30 -18
  115. package/Source/Core/createWorldBathymetryAsync.js +45 -0
  116. package/Source/Core/srgbToLinear.js +32 -0
  117. package/Source/DataSources/CzmlDataSource.js +51 -23
  118. package/Source/DataSources/DataSourceDisplay.js +27 -0
  119. package/Source/DataSources/EllipsoidGeometryUpdater.js +3 -4
  120. package/Source/DataSources/Entity.js +28 -7
  121. package/Source/DataSources/EntityCollection.js +1 -2
  122. package/Source/DataSources/GeometryUpdater.js +1 -2
  123. package/Source/DataSources/GeometryUpdaterSet.js +114 -0
  124. package/Source/DataSources/GeometryVisualizer.js +19 -83
  125. package/Source/DataSources/GroundGeometryUpdater.js +6 -3
  126. package/Source/DataSources/ModelVisualizer.js +19 -98
  127. package/Source/DataSources/PolygonGeometryUpdater.js +14 -2
  128. package/Source/DataSources/PolylineGeometryUpdater.js +9 -8
  129. package/Source/DataSources/TerrainOffsetProperty.js +15 -23
  130. package/Source/Renderer/AutomaticUniforms.js +121 -1
  131. package/Source/Renderer/Context.js +10 -0
  132. package/Source/Renderer/ContextLimits.js +2 -0
  133. package/Source/Renderer/UniformState.js +127 -0
  134. package/Source/Renderer/demodernizeShader.js +4 -1
  135. package/Source/Scene/ArcGisMapService.js +1 -1
  136. package/Source/Scene/Atmosphere.js +127 -0
  137. package/Source/Scene/Axis.js +12 -7
  138. package/Source/Scene/Billboard.js +29 -26
  139. package/Source/Scene/BillboardCollection.js +3 -3
  140. package/Source/Scene/Camera.js +47 -5
  141. package/Source/Scene/Cesium3DTile.js +1 -0
  142. package/Source/Scene/Cesium3DTileContent.js +14 -0
  143. package/Source/Scene/Cesium3DTileset.js +364 -45
  144. package/Source/Scene/Cesium3DTilesetBaseTraversal.js +2 -4
  145. package/Source/Scene/Cesium3DTilesetTraversal.js +4 -0
  146. package/Source/Scene/Composite3DTileContent.js +42 -0
  147. package/Source/Scene/DynamicAtmosphereLightingType.js +56 -0
  148. package/Source/Scene/Empty3DTileContent.js +4 -0
  149. package/Source/Scene/Fog.js +1 -0
  150. package/Source/Scene/FrameState.js +14 -1
  151. package/Source/Scene/Geometry3DTileContent.js +4 -0
  152. package/Source/Scene/Globe.js +3 -2
  153. package/Source/Scene/GlobeSurfaceTileProvider.js +3 -1
  154. package/Source/Scene/GlobeTranslucencyState.js +1 -1
  155. package/Source/Scene/GltfLoader.js +15 -5
  156. package/Source/Scene/GltfPipeline/updateVersion.js +69 -68
  157. package/Source/Scene/HeightReference.js +59 -2
  158. package/Source/Scene/I3SDataProvider.js +270 -53
  159. package/Source/Scene/I3SDecoder.js +8 -1
  160. package/Source/Scene/I3SFeature.js +2 -5
  161. package/Source/Scene/I3SField.js +136 -31
  162. package/Source/Scene/I3SGeometry.js +70 -2
  163. package/Source/Scene/I3SLayer.js +55 -10
  164. package/Source/Scene/I3SNode.js +175 -18
  165. package/Source/Scene/I3SStatistics.js +94 -0
  166. package/Source/Scene/I3SSublayer.js +176 -0
  167. package/Source/Scene/I3SSymbology.js +337 -0
  168. package/Source/Scene/Implicit3DTileContent.js +4 -0
  169. package/Source/Scene/KeyframeNode.js +1 -1
  170. package/Source/Scene/LabelCollection.js +2 -2
  171. package/Source/Scene/Model/AtmospherePipelineStage.js +59 -0
  172. package/Source/Scene/Model/B3dmLoader.js +4 -0
  173. package/Source/Scene/Model/FeatureIdPipelineStage.js +25 -2
  174. package/Source/Scene/Model/I3dmLoader.js +4 -0
  175. package/Source/Scene/Model/InstancingPipelineStage.js +24 -6
  176. package/Source/Scene/Model/MetadataPipelineStage.js +31 -3
  177. package/Source/Scene/Model/Model.js +82 -32
  178. package/Source/Scene/Model/Model3DTileContent.js +31 -0
  179. package/Source/Scene/Model/ModelAnimationChannel.js +16 -15
  180. package/Source/Scene/Model/ModelSceneGraph.js +6 -0
  181. package/Source/Scene/Model/pickModel.js +426 -0
  182. package/Source/Scene/Multiple3DTileContent.js +42 -0
  183. package/Source/Scene/PickFramebuffer.js +37 -2
  184. package/Source/Scene/Picking.js +113 -39
  185. package/Source/Scene/Primitive.js +6 -2
  186. package/Source/Scene/QuadtreePrimitive.js +1 -1
  187. package/Source/Scene/Scene.js +312 -46
  188. package/Source/Scene/ScreenSpaceCameraController.js +23 -13
  189. package/Source/Scene/SensorVolumePortionToDisplay.js +69 -0
  190. package/Source/Scene/SkyAtmosphere.js +5 -6
  191. package/Source/Scene/SpatialNode.js +12 -19
  192. package/Source/Scene/StructuralMetadata.js +1 -1
  193. package/Source/Scene/Terrain.js +49 -0
  194. package/Source/Scene/TileBoundingS2Cell.js +2 -2
  195. package/Source/Scene/Tileset3DTileContent.js +4 -0
  196. package/Source/Scene/Vector3DTileContent.js +4 -0
  197. package/Source/Scene/VoxelBoxShape.js +76 -0
  198. package/Source/Scene/VoxelCell.js +273 -0
  199. package/Source/Scene/VoxelCylinderShape.js +114 -43
  200. package/Source/Scene/VoxelEllipsoidShape.js +158 -116
  201. package/Source/Scene/VoxelPrimitive.js +3 -1
  202. package/Source/Scene/VoxelRenderResources.js +3 -0
  203. package/Source/Scene/VoxelShape.js +13 -0
  204. package/Source/Scene/VoxelTraversal.js +76 -54
  205. package/Source/Scene/buildVoxelDrawCommands.js +23 -0
  206. package/Source/Scene/createGooglePhotorealistic3DTileset.js +1 -0
  207. package/Source/Scene/processVoxelProperties.js +2 -0
  208. package/Source/Shaders/AtmosphereCommon.glsl +3 -11
  209. package/Source/Shaders/AtmosphereCommon.js +3 -11
  210. package/Source/Shaders/Builtin/CzmBuiltins.js +12 -0
  211. package/Source/Shaders/Builtin/Functions/applyHSBShift.glsl +32 -0
  212. package/Source/Shaders/Builtin/Functions/applyHSBShift.js +34 -0
  213. package/Source/Shaders/Builtin/Functions/approximateTanh.glsl +10 -0
  214. package/Source/Shaders/Builtin/Functions/approximateTanh.js +12 -0
  215. package/Source/Shaders/Builtin/Functions/computeAtmosphereColor.glsl +44 -0
  216. package/Source/Shaders/Builtin/Functions/computeAtmosphereColor.js +46 -0
  217. package/Source/Shaders/Builtin/Functions/computeGroundAtmosphereScattering.glsl +30 -0
  218. package/Source/Shaders/Builtin/Functions/computeGroundAtmosphereScattering.js +32 -0
  219. package/Source/Shaders/Builtin/Functions/computeScattering.glsl +150 -0
  220. package/Source/Shaders/Builtin/Functions/computeScattering.js +152 -0
  221. package/Source/Shaders/Builtin/Functions/getDynamicAtmosphereLightDirection.glsl +22 -0
  222. package/Source/Shaders/Builtin/Functions/getDynamicAtmosphereLightDirection.js +24 -0
  223. package/Source/Shaders/Builtin/Functions/translateRelativeToEye.glsl +5 -0
  224. package/Source/Shaders/Builtin/Functions/translateRelativeToEye.js +5 -0
  225. package/Source/Shaders/GlobeFS.glsl +16 -25
  226. package/Source/Shaders/GlobeFS.js +16 -25
  227. package/Source/Shaders/GlobeVS.glsl +1 -1
  228. package/Source/Shaders/GlobeVS.js +1 -1
  229. package/Source/Shaders/Model/AtmosphereStageFS.glsl +111 -0
  230. package/Source/Shaders/Model/AtmosphereStageFS.js +113 -0
  231. package/Source/Shaders/Model/AtmosphereStageVS.glsl +12 -0
  232. package/Source/Shaders/Model/AtmosphereStageVS.js +14 -0
  233. package/Source/Shaders/Model/GeometryStageFS.glsl +1 -1
  234. package/Source/Shaders/Model/GeometryStageFS.js +1 -1
  235. package/Source/Shaders/Model/GeometryStageVS.glsl +4 -4
  236. package/Source/Shaders/Model/GeometryStageVS.js +4 -4
  237. package/Source/Shaders/Model/ModelColorStageFS.glsl +1 -1
  238. package/Source/Shaders/Model/ModelColorStageFS.js +2 -1
  239. package/Source/Shaders/Model/ModelFS.glsl +4 -0
  240. package/Source/Shaders/Model/ModelFS.js +4 -0
  241. package/Source/Shaders/Model/ModelVS.glsl +9 -4
  242. package/Source/Shaders/Model/ModelVS.js +9 -4
  243. package/Source/Shaders/SkyAtmosphereCommon.glsl +3 -13
  244. package/Source/Shaders/SkyAtmosphereCommon.js +3 -13
  245. package/Source/Shaders/SkyAtmosphereFS.glsl +5 -10
  246. package/Source/Shaders/SkyAtmosphereFS.js +5 -10
  247. package/Source/Shaders/SkyAtmosphereVS.glsl +3 -2
  248. package/Source/Shaders/SkyAtmosphereVS.js +3 -2
  249. package/Source/Shaders/Voxels/IntersectCylinder.glsl +14 -111
  250. package/Source/Shaders/Voxels/IntersectCylinder.js +14 -111
  251. package/Source/Shaders/Voxels/IntersectEllipsoid.glsl +32 -113
  252. package/Source/Shaders/Voxels/IntersectEllipsoid.js +32 -113
  253. package/Source/Shaders/Voxels/IntersectLongitude.glsl +102 -0
  254. package/Source/Shaders/Voxels/IntersectLongitude.js +104 -0
  255. package/Source/Shaders/Voxels/VoxelFS.glsl +39 -1
  256. package/Source/Shaders/Voxels/VoxelFS.js +39 -1
  257. package/Source/Shaders/Voxels/convertUvToCylinder.glsl +19 -37
  258. package/Source/Shaders/Voxels/convertUvToCylinder.js +19 -37
  259. package/Source/Shaders/Voxels/convertUvToEllipsoid.glsl +24 -44
  260. package/Source/Shaders/Voxels/convertUvToEllipsoid.js +24 -44
  261. package/Source/ThirdParty/Workers/z-worker-pako.js +1 -1
  262. package/Source/ThirdParty/draco_decoder.wasm +0 -0
  263. package/Source/Workers/createGeometry.js +40 -11
  264. package/Source/Workers/decodeI3S.js +720 -94
  265. package/index.d.ts +574 -71
  266. package/index.js +217 -196
  267. package/package.json +3 -3
  268. package/Build/Workers/chunk-ATB2I7OS.js +0 -55
package/index.d.ts CHANGED
@@ -7701,7 +7701,7 @@ export class GroundPolylineGeometry {
7701
7701
 
7702
7702
  /**
7703
7703
  * Defines a heading angle, pitch angle, and range in a local frame.
7704
- * Heading is the rotation from the local north direction where a positive angle is increasing eastward.
7704
+ * Heading is the rotation from the local east direction where a positive angle is increasing southward.
7705
7705
  * Pitch is the rotation from the local xy-plane. Positive pitch angles are above the plane. Negative pitch
7706
7706
  * angles are below the plane. Range is the distance from the center of the frame.
7707
7707
  * @param [heading = 0.0] - The heading angle in radians.
@@ -7711,7 +7711,7 @@ export class GroundPolylineGeometry {
7711
7711
  export class HeadingPitchRange {
7712
7712
  constructor(heading?: number, pitch?: number, range?: number);
7713
7713
  /**
7714
- * Heading is the rotation from the local north direction where a positive angle is increasing eastward.
7714
+ * Heading is the rotation from the local east direction where a positive angle is increasing southward.
7715
7715
  */
7716
7716
  heading: number;
7717
7717
  /**
@@ -12889,22 +12889,6 @@ export class PolygonGeometry {
12889
12889
  * @returns The result rectangle
12890
12890
  */
12891
12891
  static computeRectangleFromPositions(positions: Cartesian3[], ellipsoid?: Ellipsoid, arcType?: ArcType, result?: Rectangle): Rectangle;
12892
- /**
12893
- * Returns the bounding rectangle given the provided options
12894
- * @param options - Object with the following properties:
12895
- * @param options.polygonHierarchy - A polygon hierarchy that can include holes.
12896
- * @param [options.granularity = Math.RADIANS_PER_DEGREE] - The distance, in radians, between each latitude and longitude. Determines the number of positions sampled.
12897
- * @param [options.arcType = ArcType.GEODESIC] - The type of line the polygon edges must follow. Valid options are {@link ArcType.GEODESIC} and {@link ArcType.RHUMB}.
12898
- * @param [options.ellipsoid = Ellipsoid.WGS84] - The ellipsoid to be used as a reference.
12899
- * @param [result] - An object in which to store the result.
12900
- * @returns The result rectangle
12901
- */
12902
- static computeRectangle(options: {
12903
- polygonHierarchy: PolygonHierarchy;
12904
- granularity?: number;
12905
- arcType?: ArcType;
12906
- ellipsoid?: Ellipsoid;
12907
- }, result?: Rectangle): Rectangle;
12908
12892
  /**
12909
12893
  * Computes the geometric representation of a polygon, including its vertices, indices, and a bounding sphere.
12910
12894
  * @param polygonGeometry - A description of the polygon.
@@ -17098,7 +17082,7 @@ export namespace Transforms {
17098
17082
  function northWestUpToFixedFrame(origin: Cartesian3, ellipsoid?: Ellipsoid, result?: Matrix4): Matrix4;
17099
17083
  /**
17100
17084
  * Computes a 4x4 transformation matrix from a reference frame with axes computed from the heading-pitch-roll angles
17101
- * centered at the provided origin to the provided ellipsoid's fixed reference frame. Heading is the rotation from the local north
17085
+ * centered at the provided origin to the provided ellipsoid's fixed reference frame. Heading is the rotation from the local east
17102
17086
  * direction where a positive angle is increasing eastward. Pitch is the rotation from the local east-north plane. Positive pitch angles
17103
17087
  * are above the plane. Negative pitch angles are below the plane. Roll is the first rotation applied about the local east axis.
17104
17088
  * @example
@@ -17120,7 +17104,7 @@ export namespace Transforms {
17120
17104
  function headingPitchRollToFixedFrame(origin: Cartesian3, headingPitchRoll: HeadingPitchRoll, ellipsoid?: Ellipsoid, fixedFrameTransform?: Transforms.LocalFrameToFixedFrame, result?: Matrix4): Matrix4;
17121
17105
  /**
17122
17106
  * Computes a quaternion from a reference frame with axes computed from the heading-pitch-roll angles
17123
- * centered at the provided origin. Heading is the rotation from the local north
17107
+ * centered at the provided origin. Heading is the rotation from the local east
17124
17108
  * direction where a positive angle is increasing eastward. Pitch is the rotation from the local east-north plane. Positive pitch angles
17125
17109
  * are above the plane. Negative pitch angles are below the plane. Roll is the first rotation applied about the local east axis.
17126
17110
  * @example
@@ -17141,7 +17125,7 @@ export namespace Transforms {
17141
17125
  */
17142
17126
  function headingPitchRollQuaternion(origin: Cartesian3, headingPitchRoll: HeadingPitchRoll, ellipsoid?: Ellipsoid, fixedFrameTransform?: Transforms.LocalFrameToFixedFrame, result?: Quaternion): Quaternion;
17143
17127
  /**
17144
- * Computes heading-pitch-roll angles from a transform in a particular reference frame. Heading is the rotation from the local north
17128
+ * Computes heading-pitch-roll angles from a transform in a particular reference frame. Heading is the rotation from the local east
17145
17129
  * direction where a positive angle is increasing eastward. Pitch is the rotation from the local east-north plane. Positive pitch angles
17146
17130
  * are above the plane. Negative pitch angles are below the plane. Roll is the first rotation applied about the local east axis.
17147
17131
  * @param transform - The transform
@@ -18114,6 +18098,36 @@ export function combine(object1?: any, object2?: any, deep?: boolean): any;
18114
18098
  */
18115
18099
  export function createGuid(): string;
18116
18100
 
18101
+ /**
18102
+ * Creates a {@link CesiumTerrainProvider} instance for the {@link https://cesium.com/content/#cesium-world-bathymetry|Cesium World Bathymetry}.
18103
+ * @example
18104
+ * // Create Cesium World Bathymetry with default settings
18105
+ * try {
18106
+ * const viewer = new Cesium.Viewer("cesiumContainer", {
18107
+ * terrainProvider: await Cesium.createWorldBathymetryAsync();
18108
+ * });
18109
+ * } catch (error) {
18110
+ * console.log(error);
18111
+ * }
18112
+ * @example
18113
+ * // Create Cesium World Bathymetry with normals.
18114
+ * try {
18115
+ * const viewer1 = new Cesium.Viewer("cesiumContainer", {
18116
+ * terrainProvider: await Cesium.createWorldBathymetryAsync({
18117
+ * requestVertexNormals: true
18118
+ * });
18119
+ * });
18120
+ * } catch (error) {
18121
+ * console.log(error);
18122
+ * }
18123
+ * @param [options] - Object with the following properties:
18124
+ * @param [options.requestVertexNormals = false] - Flag that indicates if the client should request additional lighting information from the server if available.
18125
+ * @returns A promise that resolves to the created CesiumTerrainProvider
18126
+ */
18127
+ export function createWorldBathymetryAsync(options?: {
18128
+ requestVertexNormals?: boolean;
18129
+ }): Promise<CesiumTerrainProvider>;
18130
+
18117
18131
  /**
18118
18132
  * Creates a {@link CesiumTerrainProvider} instance for the {@link https://cesium.com/content/#cesium-world-terrain|Cesium World Terrain}.
18119
18133
  * @example
@@ -18412,6 +18426,18 @@ export function sampleTerrain(terrainProvider: TerrainProvider, level: number, p
18412
18426
  */
18413
18427
  export function sampleTerrainMostDetailed(terrainProvider: TerrainProvider, positions: Cartographic[], rejectOnTileFail?: boolean): Promise<Cartographic[]>;
18414
18428
 
18429
+ /**
18430
+ * Converts the value from sRGB color space to linear color space.
18431
+ * @example
18432
+ * const srgbColor = [0.5, 0.5, 0.5];
18433
+ * const linearColor = srgbColor.map(function (c) {
18434
+ * return Cesium.srgbToLinear(c);
18435
+ * });
18436
+ * @param value - The color value in sRGB color space.
18437
+ * @returns Returns the color value in linear color space.
18438
+ */
18439
+ export function srgbToLinear(value: number): number;
18440
+
18415
18441
  /**
18416
18442
  * Subdivides an array into a number of smaller, equal sized arrays.
18417
18443
  * @param array - The array to divide.
@@ -20604,7 +20630,7 @@ export namespace Entity {
20604
20630
  * @property [show] - A boolean value indicating if the entity and its children are displayed.
20605
20631
  * @property [description] - A string Property specifying an HTML description for this entity.
20606
20632
  * @property [position] - A Property specifying the entity position.
20607
- * @property [orientation] - A Property specifying the entity orientation.
20633
+ * @property [orientation = Transforms.eastNorthUpToFixedFrame(position)] - A Property specifying the entity orientation in respect to Earth-fixed-Earth-centered (ECEF). If undefined, east-north-up at entity position is used.
20608
20634
  * @property [viewFrom] - A suggested initial offset for viewing this object.
20609
20635
  * @property [parent] - A parent entity to associate with this entity.
20610
20636
  * @property [billboard] - A billboard to associate with this entity.
@@ -20633,8 +20659,8 @@ export namespace Entity {
20633
20659
  show?: boolean;
20634
20660
  description?: Property | string;
20635
20661
  position?: PositionProperty | Cartesian3;
20636
- orientation?: Property;
20637
- viewFrom?: Property;
20662
+ orientation?: Property | Quaternion;
20663
+ viewFrom?: Property | Cartesian3;
20638
20664
  parent?: Entity;
20639
20665
  billboard?: BillboardGraphics | BillboardGraphics.ConstructorOptions;
20640
20666
  box?: BoxGraphics | BoxGraphics.ConstructorOptions;
@@ -20751,7 +20777,8 @@ export class Entity {
20751
20777
  */
20752
20778
  tileset: Cesium3DTilesetGraphics | undefined;
20753
20779
  /**
20754
- * Gets or sets the orientation.
20780
+ * Gets or sets the orientation in respect to Earth-fixed-Earth-centered (ECEF).
20781
+ * Defaults to east-north-up at entity position.
20755
20782
  */
20756
20783
  orientation: Property | undefined;
20757
20784
  /**
@@ -21324,8 +21351,6 @@ export class GeometryUpdater {
21324
21351
  readonly classificationTypeProperty: Property;
21325
21352
  /**
21326
21353
  * Gets a value indicating if the geometry is time-varying.
21327
- * If true, all visualization is delegated to a DynamicGeometryUpdater
21328
- * returned by GeometryUpdater#createDynamicUpdater.
21329
21354
  */
21330
21355
  readonly isDynamic: boolean;
21331
21356
  /**
@@ -21373,6 +21398,8 @@ export class GeometryUpdater {
21373
21398
  destroy(): void;
21374
21399
  }
21375
21400
 
21401
+ export const geometryUpdaters: GeometryUpdater[];
21402
+
21376
21403
  /**
21377
21404
  * A general purpose visualizer for geometry represented by {@link Primitive} instances.
21378
21405
  * @param scene - The scene the primitives will be rendered in.
@@ -23283,8 +23310,6 @@ export class PolylineGeometryUpdater {
23283
23310
  readonly classificationTypeProperty: Property;
23284
23311
  /**
23285
23312
  * Gets a value indicating if the geometry is time-varying.
23286
- * If true, all visualization is delegated to the {@link DynamicGeometryUpdater}
23287
- * returned by GeometryUpdater#createDynamicUpdater.
23288
23313
  */
23289
23314
  readonly isDynamic: boolean;
23290
23315
  /**
@@ -25566,6 +25591,81 @@ export namespace ArcGisMapService {
25566
25591
  function getDefaultTokenCredit(providedKey: string): string | undefined;
25567
25592
  }
25568
25593
 
25594
+ /**
25595
+ * Common atmosphere settings used by 3D Tiles and models for rendering sky atmosphere, ground atmosphere, and fog.
25596
+ *
25597
+ * <p>
25598
+ * This class is not to be confused with {@link SkyAtmosphere}, which is responsible for rendering the sky.
25599
+ * </p>
25600
+ * <p>
25601
+ * While the atmosphere settings affect the color of fog, see {@link Fog} to control how fog is rendered.
25602
+ * </p>
25603
+ * @example
25604
+ * // Turn on dynamic atmosphere lighting using the sun direction
25605
+ * scene.atmosphere.dynamicLighting = Cesium.DynamicAtmosphereLightingType.SUNLIGHT;
25606
+ * @example
25607
+ * // Turn on dynamic lighting using whatever light source is in the scene
25608
+ * scene.light = new Cesium.DirectionalLight({
25609
+ * direction: new Cesium.Cartesian3(1, 0, 0)
25610
+ * });
25611
+ * scene.atmosphere.dynamicLighting = Cesium.DynamicAtmosphereLightingType.SCENE_LIGHT;
25612
+ * @example
25613
+ * // Adjust the color of the atmosphere effects.
25614
+ * scene.atmosphere.hueShift = 0.4; // Cycle 40% around the color wheel
25615
+ * scene.atmosphere.brightnessShift = 0.25; // Increase the brightness
25616
+ * scene.atmosphere.saturationShift = -0.1; // Desaturate the colors
25617
+ */
25618
+ export class Atmosphere {
25619
+ constructor();
25620
+ /**
25621
+ * The intensity of the light that is used for computing the ground atmosphere color.
25622
+ */
25623
+ lightIntensity: number;
25624
+ /**
25625
+ * The Rayleigh scattering coefficient used in the atmospheric scattering equations for the ground atmosphere.
25626
+ */
25627
+ rayleighCoefficient: Cartesian3;
25628
+ /**
25629
+ * The Mie scattering coefficient used in the atmospheric scattering equations for the ground atmosphere.
25630
+ */
25631
+ mieCoefficient: Cartesian3;
25632
+ /**
25633
+ * The Rayleigh scale height used in the atmospheric scattering equations for the ground atmosphere, in meters.
25634
+ */
25635
+ rayleighScaleHeight: number;
25636
+ /**
25637
+ * The Mie scale height used in the atmospheric scattering equations for the ground atmosphere, in meters.
25638
+ */
25639
+ mieScaleHeight: number;
25640
+ /**
25641
+ * The anisotropy of the medium to consider for Mie scattering.
25642
+ * <p>
25643
+ * Valid values are between -1.0 and 1.0.
25644
+ * </p>
25645
+ */
25646
+ mieAnisotropy: number;
25647
+ /**
25648
+ * The hue shift to apply to the atmosphere. Defaults to 0.0 (no shift).
25649
+ * A hue shift of 1.0 indicates a complete rotation of the hues available.
25650
+ */
25651
+ hueShift: number;
25652
+ /**
25653
+ * The saturation shift to apply to the atmosphere. Defaults to 0.0 (no shift).
25654
+ * A saturation shift of -1.0 is monochrome.
25655
+ */
25656
+ saturationShift: number;
25657
+ /**
25658
+ * The brightness shift to apply to the atmosphere. Defaults to 0.0 (no shift).
25659
+ * A brightness shift of -1.0 is complete darkness, which will let space show through.
25660
+ */
25661
+ brightnessShift: number;
25662
+ /**
25663
+ * When not DynamicAtmosphereLightingType.NONE, the selected light source will
25664
+ * be used for dynamically lighting all atmosphere-related rendering effects.
25665
+ */
25666
+ dynamicLighting: DynamicAtmosphereLightingType;
25667
+ }
25668
+
25569
25669
  /**
25570
25670
  * An enum describing the x, y, and z axes and helper conversion functions.
25571
25671
  */
@@ -26583,7 +26683,7 @@ export class Camera {
26583
26683
  /**
26584
26684
  * If set, the camera will not be able to rotate past this axis in either direction.
26585
26685
  */
26586
- constrainedAxis: Cartesian3;
26686
+ constrainedAxis: Cartesian3 | undefined;
26587
26687
  /**
26588
26688
  * The factor multiplied by the the map size used to determine where to clamp the camera position
26589
26689
  * when zooming out from the surface. The default is 1.5. Only valid for 2D and the map is rotatable.
@@ -28651,10 +28751,10 @@ export namespace Cesium3DTileset {
28651
28751
  * @property [preloadWhenHidden = false] - Preload tiles when <code>tileset.show</code> is <code>false</code>. Loads tiles as if the tileset is visible but does not render them.
28652
28752
  * @property [preloadFlightDestinations = true] - Optimization option. Preload tiles at the camera's flight destination while the camera is in flight.
28653
28753
  * @property [preferLeaves = false] - Optimization option. Prefer loading of leaves first.
28654
- * @property [dynamicScreenSpaceError = false] - Optimization option. Reduce the screen space error for tiles that are further away from the camera.
28655
- * @property [dynamicScreenSpaceErrorDensity = 0.00278] - Density used to adjust the dynamic screen space error, similar to fog density.
28656
- * @property [dynamicScreenSpaceErrorFactor = 4.0] - A factor used to increase the computed dynamic screen space error.
28657
- * @property [dynamicScreenSpaceErrorHeightFalloff = 0.25] - A ratio of the tileset's height at which the density starts to falloff.
28754
+ * @property [dynamicScreenSpaceError = true] - Optimization option. For street-level horizon views, use lower resolution tiles far from the camera. This reduces the amount of data loaded and improves tileset loading time with a slight drop in visual quality in the distance.
28755
+ * @property [dynamicScreenSpaceErrorDensity = 2.0e-4] - Similar to {@link Fog#density}, this option controls the camera distance at which the {@link Cesium3DTileset#dynamicScreenSpaceError} optimization applies. Larger values will cause tiles closer to the camera to be affected.
28756
+ * @property [dynamicScreenSpaceErrorFactor = 24.0] - A parameter that controls the intensity of the {@link Cesium3DTileset#dynamicScreenSpaceError} optimization for tiles on the horizon. Larger values cause lower resolution tiles to load, improving runtime performance at a slight reduction of visual quality.
28757
+ * @property [dynamicScreenSpaceErrorHeightFalloff = 0.25] - A ratio of the tileset's height that determines where "street level" camera views occur. When the camera is below this height, the {@link Cesium3DTileset#dynamicScreenSpaceError} optimization will have the maximum effect, and it will roll off above this value.
28658
28758
  * @property [progressiveResolutionHeightFraction = 0.3] - Optimization option. If between (0.0, 0.5], tiles at or above the screen space error for the reduced screen resolution of <code>progressiveResolutionHeightFraction*screenHeight</code> will be prioritized first. This can help get a quick layer of tiles down while full resolution tiles continue to load.
28659
28759
  * @property [foveatedScreenSpaceError = true] - Optimization option. Prioritize loading tiles in the center of the screen by temporarily raising the screen space error for tiles around the edge of the screen. Screen space error returns to normal once all the tiles in the center of the screen as determined by the {@link Cesium3DTileset#foveatedConeSize} are loaded.
28660
28760
  * @property [foveatedConeSize = 0.1] - Optimization option. Used when {@link Cesium3DTileset#foveatedScreenSpaceError} is true to control the cone size that determines which tiles are deferred. Tiles that are inside this cone are loaded immediately. Tiles outside the cone are potentially deferred based on how far outside the cone they are and their screen space error. This is controlled by {@link Cesium3DTileset#foveatedInterpolationCallback} and {@link Cesium3DTileset#foveatedMinimumScreenSpaceErrorRelaxation}. Setting this to 0.0 means the cone will be the line formed by the camera position and its view direction. Setting this to 1.0 means the cone encompasses the entire field of view of the camera, disabling the effect.
@@ -28683,11 +28783,14 @@ export namespace Cesium3DTileset {
28683
28783
  * @property [instanceFeatureIdLabel = "instanceFeatureId_0"] - Label of the instance feature ID set used for picking and styling. If instanceFeatureIdLabel is set to an integer N, it is converted to the string "instanceFeatureId_N" automatically. If both per-primitive and per-instance feature IDs are present, the instance feature IDs take priority.
28684
28784
  * @property [showCreditsOnScreen = false] - Whether to display the credits of this tileset on screen.
28685
28785
  * @property [splitDirection = SplitDirection.NONE] - The {@link SplitDirection} split to apply to this tileset.
28686
- * @property [projectTo2D = false] - Whether to accurately project the tileset to 2D. If this is true, the tileset will be projected accurately to 2D, but it will use more memory to do so. If this is false, the tileset will use less memory and will still render in 2D / CV mode, but its projected positions may be inaccurate. This cannot be set after the tileset has loaded.
28786
+ * @property [enableCollision = false] - When <code>true</code>, enables collisions for camera or CPU picking. While this is <code>true</code> the camera will be prevented from going below the tileset surface if {@link ScreenSpaceCameraController#enableCollisionDetection} is true.
28787
+ * @property [disableCollision = true] - Whether to turn off collisions for camera collisions or picking. While this is <code>true</code> the camera will be allowed to go in or below the tileset surface if {@link ScreenSpaceCameraController#enableCollisionDetection} is true. Deprecated.
28788
+ * @property [projectTo2D = false] - Whether to accurately project the tileset to 2D. If this is true, the tileset will be projected accurately to 2D, but it will use more memory to do so. If this is false, the tileset will use less memory and will still render in 2D / CV mode, but its projected positions may be inaccurate. This cannot be set after the tileset has been created.
28789
+ * @property [enablePick = false] - Whether to allow collision and CPU picking with <code>pick</code> when using WebGL 1. If using WebGL 2 or above, this option will be ignored. If using WebGL 1 and this is true, the <code>pick</code> operation will work correctly, but it will use more memory to do so. If running with WebGL 1 and this is false, the model will use less memory, but <code>pick</code> will always return <code>undefined</code>. This cannot be set after the tileset has loaded.
28687
28790
  * @property [debugHeatmapTilePropertyName] - The tile variable to colorize as a heatmap. All rendered tiles will be colorized relative to each other's specified variable value.
28688
28791
  * @property [debugFreezeFrame = false] - For debugging only. Determines if only the tiles from last frame should be used for rendering.
28689
28792
  * @property [debugColorizeTiles = false] - For debugging only. When true, assigns a random color to each tile.
28690
- * @property [enableDebugWireframe] - For debugging only. This must be true for debugWireframe to work in WebGL1. This cannot be set after the tileset has loaded.
28793
+ * @property [enableDebugWireframe = false] - For debugging only. This must be true for debugWireframe to work in WebGL1. This cannot be set after the tileset has been created.
28691
28794
  * @property [debugWireframe = false] - For debugging only. When true, render's each tile's content as a wireframe.
28692
28795
  * @property [debugShowBoundingVolume = false] - For debugging only. When true, renders the bounding volume for each tile.
28693
28796
  * @property [debugShowContentBoundingVolume = false] - For debugging only. When true, renders the bounding volume for each tile's content.
@@ -28744,7 +28847,10 @@ export namespace Cesium3DTileset {
28744
28847
  instanceFeatureIdLabel?: string | number;
28745
28848
  showCreditsOnScreen?: boolean;
28746
28849
  splitDirection?: SplitDirection;
28850
+ enableCollision?: boolean;
28851
+ disableCollision?: boolean;
28747
28852
  projectTo2D?: boolean;
28853
+ enablePick?: boolean;
28748
28854
  debugHeatmapTilePropertyName?: string;
28749
28855
  debugFreezeFrame?: boolean;
28750
28856
  debugColorizeTiles?: boolean;
@@ -28785,6 +28891,17 @@ export namespace Cesium3DTileset {
28785
28891
  * console.error(`Error creating tileset: ${error}`);
28786
28892
  * }
28787
28893
  * @example
28894
+ * // Turn on camera collisions with the tileset.
28895
+ * try {
28896
+ * const tileset = await Cesium.Cesium3DTileset.fromUrl(
28897
+ * "http://localhost:8002/tilesets/Seattle/tileset.json",
28898
+ * { enableCollision: true }
28899
+ * );
28900
+ * scene.primitives.add(tileset);
28901
+ * } catch (error) {
28902
+ * console.error(`Error creating tileset: ${error}`);
28903
+ * }
28904
+ * @example
28788
28905
  * // Common setting for the skipLevelOfDetail optimization
28789
28906
  * const tileset = await Cesium.Cesium3DTileset.fromUrl(
28790
28907
  * "http://localhost:8002/tilesets/Seattle/tileset.json", {
@@ -28802,8 +28919,8 @@ export namespace Cesium3DTileset {
28802
28919
  * const tileset = await Cesium.Cesium3DTileset.fromUrl(
28803
28920
  * "http://localhost:8002/tilesets/Seattle/tileset.json", {
28804
28921
  * dynamicScreenSpaceError: true,
28805
- * dynamicScreenSpaceErrorDensity: 0.00278,
28806
- * dynamicScreenSpaceErrorFactor: 4.0,
28922
+ * dynamicScreenSpaceErrorDensity: 2.0e-4,
28923
+ * dynamicScreenSpaceErrorFactor: 24.0,
28807
28924
  * dynamicScreenSpaceErrorHeightFalloff: 0.25
28808
28925
  * });
28809
28926
  * scene.primitives.add(tileset);
@@ -28836,11 +28953,11 @@ export class Cesium3DTileset {
28836
28953
  */
28837
28954
  preloadFlightDestinations: boolean;
28838
28955
  /**
28839
- * Optimization option. Whether the tileset should refine based on a dynamic screen space error. Tiles that are further
28840
- * away will be rendered with lower detail than closer tiles. This improves performance by rendering fewer
28841
- * tiles and making less requests, but may result in a slight drop in visual quality for tiles in the distance.
28842
- * The algorithm is biased towards "street views" where the camera is close to the ground plane of the tileset and looking
28843
- * at the horizon. In addition results are more accurate for tightly fitting bounding volumes like box and region.
28956
+ * Optimization option. For street-level horizon views, use lower resolution tiles far from the camera. This reduces
28957
+ * the amount of data loaded and improves tileset loading time with a slight drop in visual quality in the distance.
28958
+ * <p>
28959
+ * This optimization is strongest when the camera is close to the ground plane of the tileset and looking at the
28960
+ * horizon. Furthermore, the results are more accurate for tightly fitting bounding volumes like box and region.
28844
28961
  */
28845
28962
  dynamicScreenSpaceError: boolean;
28846
28963
  /**
@@ -28862,33 +28979,43 @@ export class Cesium3DTileset {
28862
28979
  */
28863
28980
  foveatedTimeDelay: number;
28864
28981
  /**
28865
- * A scalar that determines the density used to adjust the dynamic screen space error, similar to {@link Fog}. Increasing this
28866
- * value has the effect of increasing the maximum screen space error for all tiles, but in a non-linear fashion.
28867
- * The error starts at 0.0 and increases exponentially until a midpoint is reached, and then approaches 1.0 asymptotically.
28868
- * This has the effect of keeping high detail in the closer tiles and lower detail in the further tiles, with all tiles
28869
- * beyond a certain distance all roughly having an error of 1.0.
28982
+ * Similar to {@link Fog#density}, this option controls the camera distance at which the {@link Cesium3DTileset#dynamicScreenSpaceError}
28983
+ * optimization applies. Larger values will cause tiles closer to the camera to be affected. This value must be
28984
+ * non-negative.
28870
28985
  * <p>
28871
- * The dynamic error is in the range [0.0, 1.0) and is multiplied by <code>dynamicScreenSpaceErrorFactor</code> to produce the
28872
- * final dynamic error. This dynamic error is then subtracted from the tile's actual screen space error.
28986
+ * This optimization works by rolling off the tile screen space error (SSE) with camera distance like a bell curve.
28987
+ * This has the effect of selecting lower resolution tiles far from the camera. Near the camera, no adjustment is
28988
+ * made. For tiles further away, the SSE is reduced by up to {@link Cesium3DTileset#dynamicScreenSpaceErrorFactor}
28989
+ * (measured in pixels of error).
28873
28990
  * </p>
28874
28991
  * <p>
28875
- * Increasing <code>dynamicScreenSpaceErrorDensity</code> has the effect of moving the error midpoint closer to the camera.
28876
- * It is analogous to moving fog closer to the camera.
28992
+ * Increasing the density makes the bell curve narrower so tiles closer to the camera are affected. This is analagous
28993
+ * to moving fog closer to the camera.
28994
+ * </p>
28995
+ * <p>
28996
+ * When the density is 0, the optimization will have no effect on the tileset.
28877
28997
  * </p>
28878
28998
  */
28879
28999
  dynamicScreenSpaceErrorDensity: number;
28880
29000
  /**
28881
- * A factor used to increase the screen space error of tiles for dynamic screen space error. As this value increases less tiles
28882
- * are requested for rendering and tiles in the distance will have lower detail. If set to zero, the feature will be disabled.
29001
+ * A parameter that controls the intensity of the {@link Cesium3DTileset#dynamicScreenSpaceError} optimization for
29002
+ * tiles on the horizon. Larger values cause lower resolution tiles to load, improving runtime performance at a slight
29003
+ * reduction of visual quality. The value must be non-negative.
29004
+ * <p>
29005
+ * More specifically, this parameter represents the maximum adjustment to screen space error (SSE) in pixels for tiles
29006
+ * far away from the camera. See {@link Cesium3DTileset#dynamicScreenSpaceErrorDensity} for more details about how
29007
+ * this optimization works.
29008
+ * </p>
29009
+ * <p>
29010
+ * When the SSE factor is set to 0, the optimization will have no effect on the tileset.
29011
+ * </p>
28883
29012
  */
28884
29013
  dynamicScreenSpaceErrorFactor: number;
28885
29014
  /**
28886
- * A ratio of the tileset's height at which the density starts to falloff. If the camera is below this height the
28887
- * full computed density is applied, otherwise the density falls off. This has the effect of higher density at
28888
- * street level views.
29015
+ * A ratio of the tileset's height that determines "street level" for the {@link Cesium3DTileset#dynamicScreenSpaceError}
29016
+ * optimization. When the camera is below this height, the dynamic screen space error optimization will have the maximum
29017
+ * effect, and it will roll off above this value. Valid values are between 0.0 and 1.0.
28889
29018
  * <p>
28890
- * Valid values are between 0.0 and 1.0.
28891
- * </p>
28892
29019
  */
28893
29020
  dynamicScreenSpaceErrorHeightFalloff: number;
28894
29021
  /**
@@ -29124,6 +29251,10 @@ export class Cesium3DTileset {
29124
29251
  * The {@link SplitDirection} to apply to this tileset.
29125
29252
  */
29126
29253
  splitDirection: SplitDirection;
29254
+ /**
29255
+ * If <code>true</code>, allows collisions for camera collisions or picking. While this is <code>true</code> the camera will be prevented from going in or below the tileset surface if {@link ScreenSpaceCameraController#enableCollisionDetection} is true. This can have performance implecations if the tileset contains tile with a larger number of vertices.
29256
+ */
29257
+ enableCollision: boolean;
29127
29258
  /**
29128
29259
  * This property is for debugging only; it is not optimized for production use.
29129
29260
  * <p>
@@ -29205,6 +29336,10 @@ export class Cesium3DTileset {
29205
29336
  * Function for examining vector lines as they are being streamed.
29206
29337
  */
29207
29338
  examineVectorLinesFunction: (...params: any[]) => any;
29339
+ /**
29340
+ * Whether to turn off collisions for camera collisions or picking. While this is <code>true</code> the camera will be allowed to go in or below the tileset surface if {@link ScreenSpaceCameraController#enableCollisionDetection} is true.
29341
+ */
29342
+ disableCollision: boolean;
29208
29343
  /**
29209
29344
  * Gets the tileset's asset object property, which contains metadata about the tileset.
29210
29345
  * <p>
@@ -29392,6 +29527,7 @@ export class Cesium3DTileset {
29392
29527
  * <li>The glTF cannot contain morph targets, skins, or animations.</li>
29393
29528
  * <li>The glTF cannot contain the <code>EXT_mesh_gpu_instancing</code> extension.</li>
29394
29529
  * <li>Only meshes with TRIANGLES can be used to classify other assets.</li>
29530
+ * <li>The meshes must be watertight.</li>
29395
29531
  * <li>The <code>POSITION</code> semantic is required.</li>
29396
29532
  * <li>If <code>_BATCHID</code>s and an index buffer are both present, all indices with the same batch id must occupy contiguous sections of the index buffer.</li>
29397
29533
  * <li>If <code>_BATCHID</code>s are present with no index buffer, all positions with the same batch id must occupy contiguous sections of the position buffer.</li>
@@ -29401,6 +29537,9 @@ export class Cesium3DTileset {
29401
29537
  * Additionally, classification is not supported for points or instanced 3D
29402
29538
  * models.
29403
29539
  * </p>
29540
+ * <p>
29541
+ * The 3D Tiles or terrain receiving the classification must be opaque.
29542
+ * </p>
29404
29543
  */
29405
29544
  readonly classificationType: ClassificationType;
29406
29545
  /**
@@ -29513,8 +29652,8 @@ export class Cesium3DTileset {
29513
29652
  * const tileset = await Cesium.Cesium3DTileset.fromUrl(
29514
29653
  * "http://localhost:8002/tilesets/Seattle/tileset.json", {
29515
29654
  * dynamicScreenSpaceError: true,
29516
- * dynamicScreenSpaceErrorDensity: 0.00278,
29517
- * dynamicScreenSpaceErrorFactor: 4.0,
29655
+ * dynamicScreenSpaceErrorDensity: 2.0e-4,
29656
+ * dynamicScreenSpaceErrorFactor: 24.0,
29518
29657
  * dynamicScreenSpaceErrorHeightFalloff: 0.25
29519
29658
  * });
29520
29659
  * scene.primitives.add(tileset);
@@ -29569,6 +29708,18 @@ export class Cesium3DTileset {
29569
29708
  * tileset = tileset && tileset.destroy();
29570
29709
  */
29571
29710
  destroy(): void;
29711
+ /**
29712
+ * Get the height of the loaded surface at a given cartographic. This function will only take into account meshes for loaded tiles, not neccisarily the most detailed tiles available for a tileset. This function will always return undefined when sampling a point cloud.
29713
+ * @example
29714
+ * const tileset = await Cesium.Cesium3DTileset.fromIonAssetId(124624234);
29715
+ * scene.primitives.add(tileset);
29716
+ *
29717
+ * const height = tileset.getHeight(scene.camera.positionCartographic, scene);
29718
+ * @param cartographic - The cartographic for which to find the height.
29719
+ * @param scene - The scene where visualization is taking place.
29720
+ * @returns The height of the cartographic or undefined if it could not be found.
29721
+ */
29722
+ getHeight(cartographic: Cartographic, scene: Scene): number | undefined;
29572
29723
  }
29573
29724
 
29574
29725
  /**
@@ -30802,6 +30953,28 @@ export class DiscardMissingTileImagePolicy {
30802
30953
  shouldDiscardImage(image: HTMLImageElement): boolean;
30803
30954
  }
30804
30955
 
30956
+ /**
30957
+ * Atmosphere lighting effects (sky atmosphere, ground atmosphere, fog) can be
30958
+ * further modified with dynamic lighting from the sun or other light source
30959
+ * that changes over time. This enum determines which light source to use.
30960
+ */
30961
+ export enum DynamicAtmosphereLightingType {
30962
+ /**
30963
+ * Do not use dynamic atmosphere lighting. Atmosphere lighting effects will
30964
+ * be lit from directly above rather than using the scene's light source.
30965
+ */
30966
+ NONE = 0,
30967
+ /**
30968
+ * Use the scene's current light source for dynamic atmosphere lighting.
30969
+ */
30970
+ SCENE_LIGHT = 1,
30971
+ /**
30972
+ * Force the dynamic atmosphere lighting to always use the sunlight direction,
30973
+ * even if the scene uses a different light source.
30974
+ */
30975
+ SUNLIGHT = 2
30976
+ }
30977
+
30805
30978
  /**
30806
30979
  * An appearance for geometry on the surface of the ellipsoid like {@link PolygonGeometry}
30807
30980
  * and {@link RectangleGeometry}, which supports all materials like {@link MaterialAppearance}
@@ -32411,13 +32584,29 @@ export enum HeightReference {
32411
32584
  */
32412
32585
  NONE = 0,
32413
32586
  /**
32414
- * The position is clamped to the terrain.
32587
+ * The position is clamped to the terrain and 3D Tiles.
32415
32588
  */
32416
32589
  CLAMP_TO_GROUND = 1,
32417
32590
  /**
32418
- * The position height is the height above the terrain.
32591
+ * The position height is the height above the terrain and 3D Tiles.
32592
+ */
32593
+ RELATIVE_TO_GROUND = 2,
32594
+ /**
32595
+ * The position is clamped to terain.
32596
+ */
32597
+ CLAMP_TO_TERRAIN = 3,
32598
+ /**
32599
+ * The position height is the height above terrain.
32419
32600
  */
32420
- RELATIVE_TO_GROUND = 2
32601
+ RELATIVE_TO_TERRAIN = 4,
32602
+ /**
32603
+ * The position is clamped to 3D Tiles.
32604
+ */
32605
+ CLAMP_TO_3D_TILE = 5,
32606
+ /**
32607
+ * The position height is the height above 3D Tiles.
32608
+ */
32609
+ RELATIVE_TO_3D_TILE = 6
32421
32610
  }
32422
32611
 
32423
32612
  /**
@@ -32448,18 +32637,41 @@ export enum HorizontalOrigin {
32448
32637
  export namespace I3SDataProvider {
32449
32638
  /**
32450
32639
  * Initialization options for the I3SDataProvider constructor
32640
+ * @example
32641
+ * // Increase LOD by reducing SSE
32642
+ * const cesium3dTilesetOptions = {
32643
+ * maximumScreenSpaceError: 1,
32644
+ * };
32645
+ * const i3sOptions = {
32646
+ * cesium3dTilesetOptions: cesium3dTilesetOptions,
32647
+ * };
32648
+ * @example
32649
+ * // Set a custom outline color to replace the color defined in I3S symbology
32650
+ * const cesium3dTilesetOptions = {
32651
+ * outlineColor: Cesium.Color.BLUE,
32652
+ * };
32653
+ * const i3sOptions = {
32654
+ * cesium3dTilesetOptions: cesium3dTilesetOptions,
32655
+ * applySymbology: true,
32656
+ * };
32451
32657
  * @property [name] - The name of the I3S dataset.
32452
32658
  * @property [show = true] - Determines if the dataset will be shown.
32453
32659
  * @property [geoidTiledTerrainProvider] - Tiled elevation provider describing an Earth Gravitational Model. If defined, geometry will be shifted based on the offsets given by this provider. Required to position I3S data sets with gravity-related height at the correct location.
32454
- * @property [traceFetches = false] - Debug option. When true, log a message whenever an I3S tile is fetched.
32455
32660
  * @property [cesium3dTilesetOptions] - Object containing options to pass to an internally created {@link Cesium3DTileset}. See {@link Cesium3DTileset} for list of valid properties. All options can be used with the exception of <code>url</code> and <code>show</code> which are overridden by values from I3SDataProvider.
32661
+ * @property [showFeatures = false] - Determines if the features will be shown.
32662
+ * @property [adjustMaterialAlphaMode = false] - The option to adjust the alpha mode of the material based on the transparency of the vertex color. When <code>true</code>, the alpha mode of the material (if not defined) will be set to BLEND for geometry with any transparency in the color vertex attribute.
32663
+ * @property [applySymbology = false] - Determines if the I3S symbology will be parsed and applied for the layers.
32664
+ * @property [calculateNormals = false] - Determines if the flat normals will be generated for I3S geometry without normals.
32456
32665
  */
32457
32666
  type ConstructorOptions = {
32458
32667
  name?: string;
32459
32668
  show?: boolean;
32460
32669
  geoidTiledTerrainProvider?: ArcGISTiledElevationTerrainProvider | Promise<ArcGISTiledElevationTerrainProvider>;
32461
- traceFetches?: boolean;
32462
32670
  cesium3dTilesetOptions?: Cesium3DTileset.ConstructorOptions;
32671
+ showFeatures?: boolean;
32672
+ adjustMaterialAlphaMode?: boolean;
32673
+ applySymbology?: boolean;
32674
+ calculateNormals?: boolean;
32463
32675
  };
32464
32676
  }
32465
32677
 
@@ -32506,10 +32718,6 @@ export class I3SDataProvider {
32506
32718
  * Determines if the dataset will be shown.
32507
32719
  */
32508
32720
  show: boolean;
32509
- /**
32510
- * Gets or sets debugging and tracing of I3S fetches.
32511
- */
32512
- traceFetches: boolean;
32513
32721
  /**
32514
32722
  * The terrain provider referencing the GEOID service to be used for orthometric to ellipsoidal conversion.
32515
32723
  */
@@ -32518,6 +32726,10 @@ export class I3SDataProvider {
32518
32726
  * Gets the collection of layers.
32519
32727
  */
32520
32728
  readonly layers: I3SLayer[];
32729
+ /**
32730
+ * Gets the collection of building sublayers.
32731
+ */
32732
+ readonly sublayers: I3SSublayer[];
32521
32733
  /**
32522
32734
  * Gets the I3S data for this object.
32523
32735
  */
@@ -32530,6 +32742,22 @@ export class I3SDataProvider {
32530
32742
  * The resource used to fetch the I3S dataset.
32531
32743
  */
32532
32744
  readonly resource: Resource;
32745
+ /**
32746
+ * Determines if the features will be shown.
32747
+ */
32748
+ readonly showFeatures: boolean;
32749
+ /**
32750
+ * Determines if the alpha mode of the material will be adjusted depending on the color vertex attribute.
32751
+ */
32752
+ readonly adjustMaterialAlphaMode: boolean;
32753
+ /**
32754
+ * Determines if the I3S symbology will be parsed and applied for the layers.
32755
+ */
32756
+ readonly applySymbology: boolean;
32757
+ /**
32758
+ * Determines if the flat normals will be generated for I3S geometry without normals.
32759
+ */
32760
+ readonly calculateNormals: boolean;
32533
32761
  /**
32534
32762
  * Destroys the WebGL resources held by this object. Destroying an object allows for deterministic
32535
32763
  * release of WebGL resources, instead of relying on the garbage collector to destroy this object.
@@ -32578,6 +32806,23 @@ export class I3SDataProvider {
32578
32806
  * @param options - An object describing initialization options
32579
32807
  */
32580
32808
  static fromUrl(url: string | Resource, options: I3SDataProvider.ConstructorOptions): Promise<I3SDataProvider>;
32809
+ /**
32810
+ * Returns the collection of names for all available attributes
32811
+ * @returns The collection of attribute names
32812
+ */
32813
+ getAttributeNames(): string[];
32814
+ /**
32815
+ * Returns the collection of values for the attribute with the given name
32816
+ * @param name - The attribute name
32817
+ * @returns The collection of attribute values
32818
+ */
32819
+ getAttributeValues(name: string): string[];
32820
+ /**
32821
+ * Filters the drawn elements of a scene to specific attribute names and values
32822
+ * @param [filters = []] - The collection of attribute filters
32823
+ * @returns A promise that is resolved when the filter is applied
32824
+ */
32825
+ filterByAttributes(filters?: I3SNode.AttributeFilter[]): Promise<void>;
32581
32826
  }
32582
32827
 
32583
32828
  /**
@@ -32702,6 +32947,25 @@ export class I3SLayer {
32702
32947
  * When <code>true</code>, when the loaded I3S version is 1.6 or older
32703
32948
  */
32704
32949
  readonly legacyVersion16: boolean;
32950
+ /**
32951
+ * Filters the drawn elements of a layer to specific attribute names and values
32952
+ * @param [filters = []] - The collection of attribute filters
32953
+ * @returns A promise that is resolved when the filter is applied
32954
+ */
32955
+ filterByAttributes(filters?: I3SNode.AttributeFilter[]): Promise<void>;
32956
+ }
32957
+
32958
+ export namespace I3SNode {
32959
+ /**
32960
+ * A filter given by an attribute name and values.
32961
+ * The 3D feature object should be hidden if its value for the attribute name is not specified in the collection of values.
32962
+ * @property name - The name of the attribute
32963
+ * @property values - The collection of values
32964
+ */
32965
+ type AttributeFilter = {
32966
+ name: string;
32967
+ values: string[] | number[];
32968
+ };
32705
32969
  }
32706
32970
 
32707
32971
  /**
@@ -32753,6 +33017,12 @@ export class I3SNode {
32753
33017
  * @returns A promise that is resolved when the I3S Node fields are loaded
32754
33018
  */
32755
33019
  loadFields(): Promise<void>;
33020
+ /**
33021
+ * Loads the node field.
33022
+ * @param name - The field name
33023
+ * @returns A promise that is resolved when the I3S Node field is loaded
33024
+ */
33025
+ loadField(name: string): Promise<void>;
32756
33026
  /**
32757
33027
  * Returns the fields for a given picked position
32758
33028
  * @param pickedPosition - The picked position
@@ -32767,6 +33037,80 @@ export class I3SNode {
32767
33037
  getFieldsForFeature(featureIndex: number): any;
32768
33038
  }
32769
33039
 
33040
+ /**
33041
+ * This class implements an I3S statistics for Building Scene Layer.
33042
+ * <p>
33043
+ * Do not construct this directly, instead access statistics through {@link I3SDataProvider}.
33044
+ * </p>
33045
+ */
33046
+ export class I3SStatistics {
33047
+ constructor();
33048
+ /**
33049
+ * Gets the resource for the statistics
33050
+ */
33051
+ readonly resource: Resource;
33052
+ /**
33053
+ * Gets the I3S data for this object.
33054
+ */
33055
+ readonly data: any;
33056
+ /**
33057
+ * Gets the collection of attribute names.
33058
+ */
33059
+ readonly names: string[];
33060
+ }
33061
+
33062
+ /**
33063
+ * This class implements an I3S sublayer for Building Scene Layer.
33064
+ * <p>
33065
+ * This object is normally not instantiated directly, use {@link I3SSublayer.fromData}.
33066
+ * </p>
33067
+ */
33068
+ export class I3SSublayer {
33069
+ constructor();
33070
+ /**
33071
+ * Gets the resource for the sublayer
33072
+ */
33073
+ readonly resource: Resource;
33074
+ /**
33075
+ * Gets the I3S data for this object.
33076
+ */
33077
+ readonly data: any;
33078
+ /**
33079
+ * Gets the name for the sublayer.
33080
+ */
33081
+ readonly name: string;
33082
+ /**
33083
+ * Gets the model name for the sublayer.
33084
+ */
33085
+ readonly modelName: string;
33086
+ /**
33087
+ * Gets the collection of child sublayers.
33088
+ */
33089
+ readonly sublayers: I3SSublayer[];
33090
+ /**
33091
+ * Gets or sets the sublayer visibility.
33092
+ */
33093
+ visibility: boolean;
33094
+ /**
33095
+ * Determines if the sublayer will be shown.
33096
+ */
33097
+ readonly show: boolean;
33098
+ }
33099
+
33100
+ /**
33101
+ * This class implements an I3S symbology for I3S Layers.
33102
+ * <p>
33103
+ * Do not construct this directly, instead access symbology through {@link I3SLayer}.
33104
+ * </p>
33105
+ */
33106
+ export class I3SSymbology {
33107
+ constructor();
33108
+ /**
33109
+ * Gets the default symbology data.
33110
+ */
33111
+ readonly defaultSymbology: any;
33112
+ }
33113
+
32770
33114
  /**
32771
33115
  * Properties for managing image-based lighting on tilesets and models.
32772
33116
  * Also manages the necessary resources and textures.
@@ -35914,11 +36258,15 @@ export class Model {
35914
36258
  * <li>The glTF cannot contain morph targets, skins, or animations.</li>
35915
36259
  * <li>The glTF cannot contain the <code>EXT_mesh_gpu_instancing</code> extension.</li>
35916
36260
  * <li>Only meshes with TRIANGLES can be used to classify other assets.</li>
35917
- * <li>The position attribute is required.</li>
36261
+ * <li>The meshes must be watertight.</li>
36262
+ * <li>The POSITION attribute is required.</li>
35918
36263
  * <li>If feature IDs and an index buffer are both present, all indices with the same feature id must occupy contiguous sections of the index buffer.</li>
35919
36264
  * <li>If feature IDs are present without an index buffer, all positions with the same feature id must occupy contiguous sections of the position buffer.</li>
35920
36265
  * </ul>
35921
36266
  * </p>
36267
+ * <p>
36268
+ * The 3D Tiles or terrain receiving the classification must be opaque.
36269
+ * </p>
35922
36270
  */
35923
36271
  readonly classificationType: ClassificationType;
35924
36272
  /**
@@ -36090,6 +36438,7 @@ export class Model {
36090
36438
  * @param [options.showCreditsOnScreen = false] - Whether to display the credits of this model on screen.
36091
36439
  * @param [options.splitDirection = SplitDirection.NONE] - The {@link SplitDirection} split to apply to this model.
36092
36440
  * @param [options.projectTo2D = false] - Whether to accurately project the model's positions in 2D. If this is true, the model will be projected accurately to 2D, but it will use more memory to do so. If this is false, the model will use less memory and will still render in 2D / CV mode, but its positions may be inaccurate. This disables minimumPixelSize and prevents future modification to the model matrix. This also cannot be set after the model has loaded.
36441
+ * @param [options.enablePick = false] - Whether to allow with CPU picking with <code>pick</code> when not using WebGL 2 or above. If using WebGL 2 or above, this option will be ignored. If using WebGL 1 and this is true, the <code>pick</code> operation will work correctly, but it will use more memory to do so. If running with WebGL 1 and this is false, the model will use less memory, but <code>pick</code> will always return <code>undefined</code>. This cannot be set after the model has loaded.
36093
36442
  * @param [options.featureIdLabel = "featureId_0"] - Label of the feature ID set to use for picking and styling. For EXT_mesh_features, this is the feature ID's label property, or "featureId_N" (where N is the index in the featureIds array) when not specified. EXT_feature_metadata did not have a label field, so such feature ID sets are always labeled "featureId_N" where N is the index in the list of all feature Ids, where feature ID attributes are listed before feature ID textures. If featureIdLabel is an integer N, it is converted to the string "featureId_N" automatically. If both per-primitive and per-instance feature IDs are present, the instance feature IDs take priority.
36094
36443
  * @param [options.instanceFeatureIdLabel = "instanceFeatureId_0"] - Label of the instance feature ID set used for picking and styling. If instanceFeatureIdLabel is set to an integer N, it is converted to the string "instanceFeatureId_N" automatically. If both per-primitive and per-instance feature IDs are present, the instance feature IDs take priority.
36095
36444
  * @param [options.pointCloudShading] - Options for constructing a {@link PointCloudShading} object to control point attenuation and lighting.
@@ -36140,6 +36489,7 @@ export class Model {
36140
36489
  showCreditsOnScreen?: boolean;
36141
36490
  splitDirection?: SplitDirection;
36142
36491
  projectTo2D?: boolean;
36492
+ enablePick?: boolean;
36143
36493
  featureIdLabel?: string | number;
36144
36494
  instanceFeatureIdLabel?: string | number;
36145
36495
  pointCloudShading?: any;
@@ -39360,6 +39710,11 @@ export class Scene {
39360
39710
  * }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
39361
39711
  */
39362
39712
  pickTranslucentDepth: boolean;
39713
+ /**
39714
+ * Settings for atmosphere lighting effects affecting 3D Tiles and model rendering. This is not to be confused with
39715
+ * {@link Scene#skyAtmosphere} which is responsible for rendering the sky.
39716
+ */
39717
+ atmosphere: Atmosphere;
39363
39718
  /**
39364
39719
  * Blends the atmosphere to geometry far from the camera for horizon views. Allows for additional
39365
39720
  * performance improvements by rendering less geometry and dispatching less terrain requests.
@@ -39420,6 +39775,11 @@ export class Scene {
39420
39775
  * The light source for shading. Defaults to a directional light from the Sun.
39421
39776
  */
39422
39777
  light: Light;
39778
+ /**
39779
+ * Use this to set the default value for {@link Scene#logarithmicDepthBuffer} in newly constructed Scenes
39780
+ * This property relies on fragmentDepth being supported.
39781
+ */
39782
+ static defaultLogDepthBuffer: any;
39423
39783
  /**
39424
39784
  * Gets the canvas element to which this scene is bound.
39425
39785
  */
@@ -39647,6 +40007,23 @@ export class Scene {
39647
40007
  * @returns Object containing the picked primitive.
39648
40008
  */
39649
40009
  pick(windowPosition: Cartesian2, width?: number, height?: number): any;
40010
+ /**
40011
+ * Returns a {@link VoxelCell} for the voxel sample rendered at a particular window coordinate,
40012
+ * or undefined if no voxel is rendered at that position.
40013
+ * @example
40014
+ * On left click, report the value of the "color" property at that voxel sample.
40015
+ * handler.setInputAction(function(movement) {
40016
+ * const voxelCell = scene.pickVoxel(movement.position);
40017
+ * if (defined(voxelCell)) {
40018
+ * console.log(voxelCell.getProperty("color"));
40019
+ * }
40020
+ * }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
40021
+ * @param windowPosition - Window coordinates to perform picking on.
40022
+ * @param [width = 3] - Width of the pick rectangle.
40023
+ * @param [height = 3] - Height of the pick rectangle.
40024
+ * @returns Information about the voxel cell rendered at the picked position.
40025
+ */
40026
+ pickVoxel(windowPosition: Cartesian2, width?: number, height?: number): VoxelCell | undefined;
39650
40027
  /**
39651
40028
  * Returns the cartesian position reconstructed from the depth buffer and window position.
39652
40029
  * <p>
@@ -40059,6 +40436,24 @@ export class ScreenSpaceCameraController {
40059
40436
  destroy(): void;
40060
40437
  }
40061
40438
 
40439
+ /**
40440
+ * Constants used to indicated what part of the sensor volume to display.
40441
+ */
40442
+ export enum SensorVolumePortionToDisplay {
40443
+ /**
40444
+ * 0x0000. Display the complete sensor volume.
40445
+ */
40446
+ COMPLETE = 0,
40447
+ /**
40448
+ * 0x0001. Display the portion of the sensor volume that lies below the true horizon of the ellipsoid.
40449
+ */
40450
+ BELOW_ELLIPSOID_HORIZON = 1,
40451
+ /**
40452
+ * 0x0002. Display the portion of the sensor volume that lies above the true horizon of the ellipsoid.
40453
+ */
40454
+ ABOVE_ELLIPSOID_HORIZON = 2
40455
+ }
40456
+
40062
40457
  /**
40063
40458
  * <div class="notice">
40064
40459
  * Use {@link Viewer#shadowMap} to get the scene's shadow map. Do not construct this directly.
@@ -40714,6 +41109,44 @@ export class Terrain {
40714
41109
  requestVertexNormals?: boolean;
40715
41110
  requestWaterMask?: boolean;
40716
41111
  }): Terrain;
41112
+ /**
41113
+ * Creates a {@link Terrain} instance for {@link https://cesium.com/content/#cesium-world-bathymetry|Cesium World Bathymetry}.
41114
+ * @example
41115
+ * // Create Cesium World Bathymetry with default settings
41116
+ * const viewer = new Cesium.Viewer("cesiumContainer", {
41117
+ * terrain: Cesium.Terrain.fromWorldBathymetry)
41118
+ * });
41119
+ * @example
41120
+ * // Create Cesium World Terrain with normals.
41121
+ * const viewer1 = new Cesium.Viewer("cesiumContainer", {
41122
+ * terrain: Cesium.Terrain.fromWorldBathymetry({
41123
+ * requestVertexNormals: true
41124
+ * });
41125
+ * });
41126
+ * @example
41127
+ * // Handle loading events
41128
+ * const bathymetry = Cesium.Terrain.fromWorldBathymetry();
41129
+ *
41130
+ * scene.setTerrain(bathymetry);
41131
+ *
41132
+ * bathymetry.readyEvent.addEventListener(provider => {
41133
+ * scene.globe.enableLighting = true;
41134
+ *
41135
+ * bathymetry.provider.errorEvent.addEventListener(error => {
41136
+ * alert(`Encountered an error while loading bathymetric terrain tiles! ${error}`);
41137
+ * });
41138
+ * });
41139
+ *
41140
+ * bathymetry.errorEvent.addEventListener(error => {
41141
+ * alert(`Encountered an error while creating bathymetric terrain! ${error}`);
41142
+ * });
41143
+ * @param [options] - Object with the following properties:
41144
+ * @param [options.requestVertexNormals = false] - Flag that indicates if the client should request additional lighting information from the server if available.
41145
+ * @returns An asynchronous helper object for a CesiumTerrainProvider
41146
+ */
41147
+ static fromWorldBathymetry(options?: {
41148
+ requestVertexNormals?: boolean;
41149
+ }): Terrain;
40717
41150
  }
40718
41151
 
40719
41152
  export namespace TileCoordinatesImageryProvider {
@@ -41512,6 +41945,76 @@ export class ViewportQuad {
41512
41945
  destroy(): void;
41513
41946
  }
41514
41947
 
41948
+ /**
41949
+ * A cell from a {@link VoxelPrimitive}.
41950
+ * <p>
41951
+ * Provides access to properties associated with one cell of a voxel primitive.
41952
+ * </p>
41953
+ * <p>
41954
+ * Do not construct this directly. Access it through picking using {@link Scene#pickVoxel}.
41955
+ * </p>
41956
+ * @example
41957
+ * // On left click, display all the properties for a voxel cell in the console log.
41958
+ * handler.setInputAction(function(movement) {
41959
+ * const voxelCell = scene.pickVoxel(movement.position);
41960
+ * if (voxelCell instanceof Cesium.VoxelCell) {
41961
+ * const propertyIds = voxelCell.getPropertyIds();
41962
+ * const length = propertyIds.length;
41963
+ * for (let i = 0; i < length; ++i) {
41964
+ * const propertyId = propertyIds[i];
41965
+ * console.log(`{propertyId}: ${voxelCell.getProperty(propertyId)}`);
41966
+ * }
41967
+ * }
41968
+ * }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
41969
+ * @param primitive - The voxel primitive containing the cell
41970
+ * @param tileIndex - The index of the tile
41971
+ * @param sampleIndex - The index of the sample within the tile, containing metadata for this cell
41972
+ */
41973
+ export class VoxelCell {
41974
+ constructor(primitive: VoxelPrimitive, tileIndex: number, sampleIndex: number);
41975
+ /**
41976
+ * All objects returned by {@link Scene#pick} have a <code>primitive</code> property. This returns
41977
+ * the VoxelPrimitive containing the cell.
41978
+ */
41979
+ readonly primitive: VoxelPrimitive;
41980
+ /**
41981
+ * Get the sample index of the cell.
41982
+ */
41983
+ readonly sampleIndex: number;
41984
+ /**
41985
+ * Get the index of the tile containing the cell.
41986
+ */
41987
+ readonly tileIndex: number;
41988
+ /**
41989
+ * Get a copy of the oriented bounding box containing the cell.
41990
+ */
41991
+ readonly orientedBoundingBox: OrientedBoundingBox;
41992
+ /**
41993
+ * Returns <code>true</code> if the feature contains this property.
41994
+ * @param name - The case-sensitive name of the property.
41995
+ * @returns Whether the feature contains this property.
41996
+ */
41997
+ hasProperty(name: string): boolean;
41998
+ /**
41999
+ * Returns an array of metadata property names for the feature.
42000
+ * @returns The IDs of the feature's properties.
42001
+ */
42002
+ getNames(): string[];
42003
+ /**
42004
+ * Returns a copy of the value of the metadata in the cell with the given name.
42005
+ * @example
42006
+ * // Display all the properties for a voxel cell in the console log.
42007
+ * const names = voxelCell.getNames();
42008
+ * for (let i = 0; i < names.length; ++i) {
42009
+ * const name = names[i];
42010
+ * console.log(`{name}: ${voxelCell.getProperty(name)}`);
42011
+ * }
42012
+ * @param name - The case-sensitive name of the property.
42013
+ * @returns The value of the property or <code>undefined</code> if the feature does not have this property.
42014
+ */
42015
+ getProperty(name: string): any;
42016
+ }
42017
+
41515
42018
  /**
41516
42019
  * A primitive that renders voxel data from a {@link VoxelProvider}.
41517
42020
  * @param [options] - Object with the following properties: