@hztxi/cesium-engine 25.0.4 → 25.0.7

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 (202) hide show
  1. package/Build/Workers/chunk-247MLVK2.js +124 -0
  2. package/Build/Workers/chunk-26I7TIAE.js +58 -0
  3. package/Build/Workers/chunk-26OYTC24.js +38 -0
  4. package/Build/Workers/chunk-2GJAWJJT.js +1344 -0
  5. package/Build/Workers/chunk-2IMOZG7R.js +973 -0
  6. package/Build/Workers/chunk-2J2VS5RI.js +288 -0
  7. package/Build/Workers/chunk-2L6JGSYJ.js +57 -0
  8. package/Build/Workers/chunk-32N2SB76.js +56 -0
  9. package/Build/Workers/chunk-375SHKGW.js +44 -0
  10. package/Build/Workers/chunk-37WL527K.js +1287 -0
  11. package/Build/Workers/chunk-3IGH46TC.js +1054 -0
  12. package/Build/Workers/chunk-47BSFGJC.js +837 -0
  13. package/Build/Workers/chunk-4J7PL5AM.js +454 -0
  14. package/Build/Workers/chunk-4UMO63VY.js +76 -0
  15. package/Build/Workers/chunk-5FYUSABU.js +945 -0
  16. package/Build/Workers/chunk-5WU37CUJ.js +630 -0
  17. package/Build/Workers/chunk-5YI3TQQC.js +778 -0
  18. package/Build/Workers/chunk-6EBDN5WS.js +97 -0
  19. package/Build/Workers/chunk-75HIWCEV.js +301 -0
  20. package/Build/Workers/chunk-7AMVPXZY.js +1992 -0
  21. package/Build/Workers/chunk-7BMDD6SM.js +124 -0
  22. package/Build/Workers/chunk-7OME2OKM.js +171 -0
  23. package/Build/Workers/chunk-A2BROW3D.js +352 -0
  24. package/Build/Workers/chunk-AEZQ2UWS.js +288 -0
  25. package/Build/Workers/chunk-AXE2ZIEG.js +219 -0
  26. package/Build/Workers/chunk-B4XOVZGA.js +476 -0
  27. package/Build/Workers/chunk-BDR7GL3E.js +1067 -0
  28. package/Build/Workers/chunk-C342XITR.js +44 -0
  29. package/Build/Workers/chunk-CDLPLYLV.js +1287 -0
  30. package/Build/Workers/chunk-CEKCKPFN.js +368 -0
  31. package/Build/Workers/chunk-CHMDKP5L.js +2342 -0
  32. package/Build/Workers/chunk-CWAUXQRF.js +754 -0
  33. package/Build/Workers/chunk-CWGB3D4Z.js +257 -0
  34. package/Build/Workers/chunk-DQEUGBGA.js +2719 -0
  35. package/Build/Workers/chunk-DUBE5G2H.js +497 -0
  36. package/Build/Workers/chunk-E4PBNWWK.js +58 -0
  37. package/Build/Workers/chunk-E5F7LDEP.js +3201 -0
  38. package/Build/Workers/chunk-E5MWOMVC.js +57 -0
  39. package/Build/Workers/chunk-EE3XBOQI.js +1483 -0
  40. package/Build/Workers/chunk-EHA2ZDPZ.js +415 -0
  41. package/Build/Workers/chunk-EKEKPAJF.js +454 -0
  42. package/Build/Workers/chunk-EOHKUXPX.js +198 -0
  43. package/Build/Workers/chunk-ERENMHG2.js +754 -0
  44. package/Build/Workers/chunk-ESQGFRLZ.js +163 -0
  45. package/Build/Workers/chunk-FAKYMBUA.js +1046 -0
  46. package/Build/Workers/chunk-FSK4OZOO.js +352 -0
  47. package/Build/Workers/chunk-FSLRYNZ6.js +682 -0
  48. package/Build/Workers/chunk-FV4OWDV4.js +9230 -0
  49. package/Build/Workers/chunk-FYRNNQSL.js +280 -0
  50. package/Build/Workers/chunk-GMDOGAXK.js +2719 -0
  51. package/Build/Workers/chunk-GRAFCIPA.js +455 -0
  52. package/Build/Workers/chunk-HEY4IOS3.js +140 -0
  53. package/Build/Workers/chunk-HRWFO57T.js +301 -0
  54. package/Build/Workers/chunk-HTCLVUBZ.js +82 -0
  55. package/Build/Workers/chunk-I2Q7XDRA.js +630 -0
  56. package/Build/Workers/chunk-ILPH3NF7.js +3794 -0
  57. package/Build/Workers/chunk-JMF4ATAS.js +3794 -0
  58. package/Build/Workers/chunk-JZUUODN6.js +97 -0
  59. package/Build/Workers/chunk-KEJKMITY.js +82 -0
  60. package/Build/Workers/chunk-KW2QZDUS.js +147 -0
  61. package/Build/Workers/chunk-KWVB54J6.js +241 -0
  62. package/Build/Workers/chunk-L6B5XPBL.js +73 -0
  63. package/Build/Workers/chunk-LGJXN2VP.js +352 -0
  64. package/Build/Workers/chunk-LY2UG3HV.js +38 -0
  65. package/Build/Workers/chunk-M3B3ZUU2.js +476 -0
  66. package/Build/Workers/chunk-MKR6YCMG.js +497 -0
  67. package/Build/Workers/chunk-MROMS2RL.js +162 -0
  68. package/Build/Workers/chunk-MUNAUSK7.js +280 -0
  69. package/Build/Workers/chunk-NCPJBP24.js +140 -0
  70. package/Build/Workers/chunk-NFY5V6MR.js +102 -0
  71. package/Build/Workers/chunk-NHU5JEPP.js +1344 -0
  72. package/Build/Workers/chunk-OODXPB45.js +73 -0
  73. package/Build/Workers/chunk-OXZ5J3JW.js +368 -0
  74. package/Build/Workers/chunk-OYPSUED3.js +1067 -0
  75. package/Build/Workers/chunk-QBSWSTHY.js +257 -0
  76. package/Build/Workers/chunk-QDJYG7QL.js +352 -0
  77. package/Build/Workers/chunk-QIOOTLWN.js +56 -0
  78. package/Build/Workers/chunk-QUPRALOD.js +101 -0
  79. package/Build/Workers/chunk-RBEVHHXK.js +3201 -0
  80. package/Build/Workers/chunk-RHO5HV52.js +305 -0
  81. package/Build/Workers/chunk-RX3U2BBW.js +1483 -0
  82. package/Build/Workers/chunk-S3XHL7GO.js +1992 -0
  83. package/Build/Workers/chunk-SBIC4OGS.js +171 -0
  84. package/Build/Workers/chunk-SVCZUP5R.js +837 -0
  85. package/Build/Workers/chunk-T4CYNROE.js +102 -0
  86. package/Build/Workers/chunk-T5VLPB4H.js +414 -0
  87. package/Build/Workers/chunk-TBHW5UME.js +973 -0
  88. package/Build/Workers/chunk-TPOX6IOR.js +1054 -0
  89. package/Build/Workers/chunk-TX763OWB.js +387 -0
  90. package/Build/Workers/chunk-ULNBTI6R.js +138 -0
  91. package/Build/Workers/chunk-UMUS2AQQ.js +398 -0
  92. package/Build/Workers/chunk-UTAWMCSE.js +163 -0
  93. package/Build/Workers/chunk-UZ7GTP2L.js +162 -0
  94. package/Build/Workers/chunk-VETQOADR.js +2342 -0
  95. package/Build/Workers/chunk-VXRWOM3T.js +101 -0
  96. package/Build/Workers/chunk-W3C7OHXF.js +387 -0
  97. package/Build/Workers/chunk-WB5GWYDP.js +455 -0
  98. package/Build/Workers/chunk-WN6MAL25.js +682 -0
  99. package/Build/Workers/chunk-WTR7KMQA.js +693 -0
  100. package/Build/Workers/chunk-WTTFMU3P.js +241 -0
  101. package/Build/Workers/chunk-WULONJZC.js +1800 -0
  102. package/Build/Workers/chunk-WVVFCMYF.js +147 -0
  103. package/Build/Workers/chunk-WZPMAVTV.js +511 -0
  104. package/Build/Workers/chunk-XAVNBZQ6.js +56 -0
  105. package/Build/Workers/chunk-XDSDR62Y.js +1800 -0
  106. package/Build/Workers/chunk-XDZCVNIZ.js +198 -0
  107. package/Build/Workers/chunk-XNLCW2OI.js +138 -0
  108. package/Build/Workers/chunk-XNQ2BTJD.js +693 -0
  109. package/Build/Workers/chunk-XZYBDSFP.js +305 -0
  110. package/Build/Workers/chunk-Y7KVUJEB.js +219 -0
  111. package/Build/Workers/chunk-YDYN3RPI.js +398 -0
  112. package/Build/Workers/chunk-YMMEQBEW.js +511 -0
  113. package/Build/Workers/chunk-YQFOQAXD.js +9230 -0
  114. package/Build/Workers/chunk-Z6JV4DZG.js +1046 -0
  115. package/Build/Workers/chunk-ZTK5EBUI.js +76 -0
  116. package/Build/Workers/chunk-ZZPDORJK.js +56 -0
  117. package/Build/Workers/combineGeometry.js +24 -24
  118. package/Build/Workers/createBoxGeometry.js +18 -18
  119. package/Build/Workers/createBoxOutlineGeometry.js +16 -16
  120. package/Build/Workers/createCircleGeometry.js +26 -26
  121. package/Build/Workers/createCircleOutlineGeometry.js +19 -19
  122. package/Build/Workers/createCoplanarPolygonGeometry.js +33 -33
  123. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +31 -31
  124. package/Build/Workers/createCorridorGeometry.js +29 -29
  125. package/Build/Workers/createCorridorOutlineGeometry.js +28 -28
  126. package/Build/Workers/createCylinderGeometry.js +20 -20
  127. package/Build/Workers/createCylinderOutlineGeometry.js +18 -18
  128. package/Build/Workers/createEllipseGeometry.js +26 -26
  129. package/Build/Workers/createEllipseOutlineGeometry.js +19 -19
  130. package/Build/Workers/createEllipsoidGeometry.js +19 -19
  131. package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -18
  132. package/Build/Workers/createFrustumGeometry.js +18 -18
  133. package/Build/Workers/createFrustumOutlineGeometry.js +18 -18
  134. package/Build/Workers/createGeometry.js +24 -24
  135. package/Build/Workers/createGroundPolylineGeometry.js +95 -31
  136. package/Build/Workers/createPlaneGeometry.js +16 -16
  137. package/Build/Workers/createPlaneOutlineGeometry.js +15 -15
  138. package/Build/Workers/createPolygonGeometry.js +32 -32
  139. package/Build/Workers/createPolygonOutlineGeometry.js +30 -30
  140. package/Build/Workers/createPolylineGeometry.js +25 -25
  141. package/Build/Workers/createPolylineVolumeGeometry.js +31 -31
  142. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +27 -27
  143. package/Build/Workers/createRectangleGeometry.js +27 -27
  144. package/Build/Workers/createRectangleOutlineGeometry.js +20 -20
  145. package/Build/Workers/createSimplePolylineGeometry.js +23 -23
  146. package/Build/Workers/createSphereGeometry.js +19 -19
  147. package/Build/Workers/createSphereOutlineGeometry.js +18 -18
  148. package/Build/Workers/createTaskProcessorWorker.js +3 -3
  149. package/Build/Workers/createVectorTileClampedPolylines.js +14 -14
  150. package/Build/Workers/createVectorTileGeometries.js +24 -24
  151. package/Build/Workers/createVectorTilePoints.js +13 -13
  152. package/Build/Workers/createVectorTilePolygons.js +22 -22
  153. package/Build/Workers/createVectorTilePolylines.js +14 -14
  154. package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +26 -26
  155. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +23 -23
  156. package/Build/Workers/createVerticesFromHeightmap.js +23 -23
  157. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +21 -21
  158. package/Build/Workers/createWallGeometry.js +24 -24
  159. package/Build/Workers/createWallOutlineGeometry.js +23 -23
  160. package/Build/Workers/decodeDraco.js +10 -10
  161. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
  162. package/Build/Workers/decodeI3S.js +10 -10
  163. package/Build/Workers/gaussianSplatSorter.js +4 -4
  164. package/Build/Workers/gaussianSplatTextureGenerator.js +4 -4
  165. package/Build/Workers/incrementallyBuildTerrainPicker.js +10 -10
  166. package/Build/Workers/transcodeKTX2.js +6 -6
  167. package/Build/Workers/transferTypedArrayTest.js +1 -1
  168. package/Build/Workers/upsampleQuantizedTerrainMesh.js +23 -23
  169. package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +26 -26
  170. package/Source/Core/GroundPolylineGeometry.js +99 -4
  171. package/Source/Core/PolylinePipeline.js +9 -2
  172. package/Source/DataSources/PolylineGeometryUpdater.js +125 -7
  173. package/Source/Scene/Camera.js +56 -3
  174. package/Source/Scene/CameraFlightPath.js +14 -0
  175. package/Source/Scene/ClassificationPrimitive.js +63 -3
  176. package/Source/Scene/ColumbusWorlds.js +190 -0
  177. package/Source/Scene/FrameState.js +10 -0
  178. package/Source/Scene/Globe.js +89 -22
  179. package/Source/Scene/GlobeDepth.js +216 -5
  180. package/Source/Scene/GlobeSurfaceTileProvider.js +897 -678
  181. package/Source/Scene/GroundPolylinePrimitive.js +2 -1
  182. package/Source/Scene/Polyline.js +32 -5
  183. package/Source/Scene/PolylineCollection.js +41 -2
  184. package/Source/Scene/Primitive.js +12 -13
  185. package/Source/Scene/PrimitivePipeline.js +158 -28
  186. package/Source/Scene/Scene.js +428 -5
  187. package/Source/Scene/SceneTransforms.js +17 -0
  188. package/Source/Scene/ScreenSpaceCameraController.js +12 -3
  189. package/Source/Shaders/PolylineShadowVolumeFS.glsl +14 -0
  190. package/Source/Shaders/PolylineShadowVolumeFS.js +14 -0
  191. package/Source/Shaders/PolylineShadowVolumeMorphVS.glsl +14 -1
  192. package/Source/Shaders/PolylineShadowVolumeMorphVS.js +14 -1
  193. package/Source/Shaders/PolylineShadowVolumeVS.glsl +7 -0
  194. package/Source/Shaders/PolylineShadowVolumeVS.js +7 -0
  195. package/Source/Shaders/PolylineVS.glsl +16 -6
  196. package/Source/Shaders/PolylineVS.js +16 -6
  197. package/Source/Shaders/RestoreDepth.glsl +8 -0
  198. package/Source/Shaders/RestoreDepth.js +10 -0
  199. package/Source/ThirdParty/zip-module.wasm +0 -0
  200. package/index.d.ts +535 -1393
  201. package/index.js +267 -265
  202. package/package.json +10 -10
package/index.d.ts CHANGED
@@ -619,9 +619,10 @@ export namespace ArcGISTiledElevationTerrainProvider {
619
619
  * token: "KED1aF_I4UzXOHy3BnhwyBHU4l5oY6rO6walkmHoYqGp4XyIWUd5YZUC1ZrLAzvV40pR6gBXQayh0eFA8m6vPg.."
620
620
  * });
621
621
  * viewer.terrainProvider = terrainProvider;
622
+ * @param [options] - A url or an object describing initialization options
622
623
  */
623
624
  export class ArcGISTiledElevationTerrainProvider {
624
- constructor();
625
+ constructor(options?: CesiumTerrainProvider.ConstructorOptions);
625
626
  /**
626
627
  * Gets an event that is raised when the terrain provider encounters an asynchronous error. By subscribing
627
628
  * to the event, you will be notified of the error and can potentially recover from it. Event listeners
@@ -3615,6 +3616,8 @@ export enum ClockStep {
3615
3616
  SYSTEM_CLOCK = 2
3616
3617
  }
3617
3618
 
3619
+ export function hue2rgb(): void;
3620
+
3618
3621
  /**
3619
3622
  * A color, specified using red, green, blue, and alpha values,
3620
3623
  * which range from <code>0</code> (no intensity) to <code>1.0</code> (full intensity).
@@ -8451,10 +8454,6 @@ export class HeightmapTerrainData {
8451
8454
  * An {@link InterpolationAlgorithm} for performing Hermite interpolation.
8452
8455
  */
8453
8456
  export namespace HermitePolynomialApproximation {
8454
- /**
8455
- * Gets the name of this interpolation algorithm.
8456
- */
8457
- var type: string;
8458
8457
  /**
8459
8458
  * Given the desired degree, returns the number of data points required for interpolation.
8460
8459
  * @param degree - The desired degree of interpolation.
@@ -8741,20 +8740,17 @@ export enum IndexDatatype {
8741
8740
  UNSIGNED_INT = WebGLConstants.UNSIGNED_INT
8742
8741
  }
8743
8742
 
8744
- /**
8745
- * The interface for interpolation algorithms.
8746
- */
8747
- export interface InterpolationAlgorithm {
8743
+ export namespace InterpolationAlgorithm {
8748
8744
  /**
8749
8745
  * Gets the name of this interpolation algorithm.
8750
8746
  */
8751
- type: string;
8747
+ var type: string;
8752
8748
  /**
8753
8749
  * Given the desired degree, returns the number of data points required for interpolation.
8754
8750
  * @param degree - The desired degree of interpolation.
8755
8751
  * @returns The number of required data points needed for the desired degree of interpolation.
8756
8752
  */
8757
- getRequiredDataPoints(degree: number): number;
8753
+ function getRequiredDataPoints(degree: number): number;
8758
8754
  /**
8759
8755
  * Performs zero order interpolation.
8760
8756
  * @param x - The independent variable for which the dependent variables will be interpolated.
@@ -8767,7 +8763,7 @@ export interface InterpolationAlgorithm {
8767
8763
  * @param [result] - An existing array into which to store the result.
8768
8764
  * @returns The array of interpolated values, or the result parameter if one was provided.
8769
8765
  */
8770
- interpolateOrderZero(x: number, xTable: number[], yTable: number[], yStride: number, result?: number[]): number[];
8766
+ function interpolateOrderZero(x: number, xTable: number[], yTable: number[], yStride: number, result?: number[]): number[];
8771
8767
  /**
8772
8768
  * Performs higher order interpolation. Not all interpolators need to support high-order interpolation,
8773
8769
  * if this function remains undefined on implementing objects, interpolateOrderZero will be used instead.
@@ -8783,7 +8779,13 @@ export interface InterpolationAlgorithm {
8783
8779
  * @param [result] - An existing array into which to store the result.
8784
8780
  * @returns The array of interpolated values, or the result parameter if one was provided.
8785
8781
  */
8786
- interpolate?(x: number, xTable: number[], yTable: number[], yStride: number, inputOrder: number, outputOrder: number, result?: number[]): number[];
8782
+ function interpolate(x: number, xTable: number[], yTable: number[], yStride: number, inputOrder: number, outputOrder: number, result?: number[]): number[];
8783
+ }
8784
+
8785
+ /**
8786
+ * The interface for interpolation algorithms.
8787
+ */
8788
+ export interface InterpolationAlgorithm {
8787
8789
  }
8788
8790
 
8789
8791
  /**
@@ -9436,10 +9438,6 @@ export enum KeyboardEventModifier {
9436
9438
  * An {@link InterpolationAlgorithm} for performing Lagrange interpolation.
9437
9439
  */
9438
9440
  export namespace LagrangePolynomialApproximation {
9439
- /**
9440
- * Gets the name of this interpolation algorithm.
9441
- */
9442
- var type: string;
9443
9441
  /**
9444
9442
  * Given the desired degree, returns the number of data points required for interpolation.
9445
9443
  * @param degree - The desired degree of interpolation.
@@ -9484,10 +9482,6 @@ export class LeapSecond {
9484
9482
  * An {@link InterpolationAlgorithm} for performing linear interpolation.
9485
9483
  */
9486
9484
  export namespace LinearApproximation {
9487
- /**
9488
- * Gets the name of this interpolation algorithm.
9489
- */
9490
- var type: string;
9491
9485
  /**
9492
9486
  * Given the desired degree, returns the number of data points required for interpolation.
9493
9487
  * Since linear interpolation can only generate a first degree polynomial, this function
@@ -9581,7 +9575,7 @@ export interface MapProjection {
9581
9575
  /**
9582
9576
  * Gets the {@link Ellipsoid}.
9583
9577
  */
9584
- readonly ellipsoid: Ellipsoid;
9578
+ ellipsoid: Ellipsoid;
9585
9579
  /**
9586
9580
  * Projects {@link Cartographic} coordinates, in radians, to projection-specific map coordinates, in meters.
9587
9581
  * @param cartographic - The coordinates to project.
@@ -9803,26 +9797,6 @@ export namespace Math {
9803
9797
  * @returns The linearly interpolated value.
9804
9798
  */
9805
9799
  function lerp(p: number, q: number, time: number): number;
9806
- /**
9807
- * @property value - The new value after applying the smooth damp.
9808
- * @property velocity - The updated current velocity.
9809
- */
9810
- type SmoothDampResult = {
9811
- value: number;
9812
- velocity: number;
9813
- };
9814
- /**
9815
- * Gradually changes a value towards a target value over time. The smoothing function uses a spring-damping algorithm based on Game Programming Gems 4 Chapter 1.10.
9816
- * @param p - The current value.
9817
- * @param q - The target value.
9818
- * @param velocity - The current velocity.
9819
- * @param [deltaTime = 0.0] - The time since the last call to this function. Value must be greater than or equal to 0.0.
9820
- * @param [maximumSpeed = Number.POSITIVE_INFINITY] - Optionally allows clamping to the specified maximum speed.
9821
- * @param [smoothTime = 0.0001] - Approximately the time it will take to reach the target. A smaller value will reach the target faster. This value must be greater than or equal to 0.0001.
9822
- * @param [result] - An object to store the result. If not provided, a new object will be created and returned.
9823
- * @returns An object containing the new value and the updated current velocity.
9824
- */
9825
- function smoothDamp(p: number, q: number, velocity: number, deltaTime?: number, maximumSpeed?: number, smoothTime?: number, result?: SmoothDampResult): SmoothDampResult;
9826
9800
  /**
9827
9801
  * pi
9828
9802
  */
@@ -16152,25 +16126,25 @@ export class ScreenSpaceEventHandler {
16152
16126
  * Set a function to be executed on an input event.
16153
16127
  * @param action - Function to be executed when the input event occurs.
16154
16128
  * @param type - The ScreenSpaceEventType of input event.
16155
- * @param [modifiers] - The KeyboardEventModifier keys that are held when a <code>type</code>
16129
+ * @param [modifier] - A KeyboardEventModifier key that is held when a <code>type</code>
16156
16130
  * event occurs.
16157
16131
  */
16158
- setInputAction(action: ScreenSpaceEventHandler.PositionedEventCallback | ScreenSpaceEventHandler.MotionEventCallback | ScreenSpaceEventHandler.WheelEventCallback | ScreenSpaceEventHandler.TwoPointEventCallback | ScreenSpaceEventHandler.TwoPointMotionEventCallback, type: ScreenSpaceEventType, modifiers?: KeyboardEventModifier[] | KeyboardEventModifier): void;
16132
+ setInputAction(action: ScreenSpaceEventHandler.PositionedEventCallback | ScreenSpaceEventHandler.MotionEventCallback | ScreenSpaceEventHandler.WheelEventCallback | ScreenSpaceEventHandler.TwoPointEventCallback | ScreenSpaceEventHandler.TwoPointMotionEventCallback, type: ScreenSpaceEventType, modifier?: KeyboardEventModifier): void;
16159
16133
  /**
16160
16134
  * Returns the function to be executed on an input event.
16161
16135
  * @param type - The ScreenSpaceEventType of input event.
16162
- * @param [modifiers] - The KeyboardEventModifier keys that are held when a <code>type</code>
16136
+ * @param [modifier] - A KeyboardEventModifier key that is held when a <code>type</code>
16163
16137
  * event occurs.
16164
16138
  * @returns The function to be executed on an input event.
16165
16139
  */
16166
- getInputAction(type: ScreenSpaceEventType, modifiers?: KeyboardEventModifier[] | KeyboardEventModifier): ScreenSpaceEventHandler.PositionedEventCallback | ScreenSpaceEventHandler.MotionEventCallback | ScreenSpaceEventHandler.WheelEventCallback | ScreenSpaceEventHandler.TwoPointEventCallback | ScreenSpaceEventHandler.TwoPointMotionEventCallback;
16140
+ getInputAction(type: ScreenSpaceEventType, modifier?: KeyboardEventModifier): ScreenSpaceEventHandler.PositionedEventCallback | ScreenSpaceEventHandler.MotionEventCallback | ScreenSpaceEventHandler.WheelEventCallback | ScreenSpaceEventHandler.TwoPointEventCallback | ScreenSpaceEventHandler.TwoPointMotionEventCallback;
16167
16141
  /**
16168
16142
  * Removes the function to be executed on an input event.
16169
16143
  * @param type - The ScreenSpaceEventType of input event.
16170
- * @param [modifiers] - The KeyboardEventModifier keys that are held when a <code>type</code>
16144
+ * @param [modifier] - A KeyboardEventModifier key that is held when a <code>type</code>
16171
16145
  * event occurs.
16172
16146
  */
16173
- removeInputAction(type: ScreenSpaceEventType, modifiers?: KeyboardEventModifier[] | KeyboardEventModifier): void;
16147
+ removeInputAction(type: ScreenSpaceEventType, modifier?: KeyboardEventModifier): void;
16174
16148
  /**
16175
16149
  * Returns true if this object was destroyed; otherwise, false.
16176
16150
  * <br /><br />
@@ -16823,6 +16797,16 @@ export class TerrainData {
16823
16797
  wasCreatedByUpsampling(): boolean;
16824
16798
  }
16825
16799
 
16800
+ /**
16801
+ * Creates an axis-aligned bounding box for a quadtree node at the given tree-space coordinates and level.
16802
+ * 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).
16803
+ * @param x - The x coordinate of the node.
16804
+ * @param y - The y coordinate of the node.
16805
+ * @param level - The level of the node.
16806
+ * @returns The axis-aligned bounding box for the node.
16807
+ */
16808
+ export function createAABBForNode(x: number, y: number, level: number): AxisAlignedBoundingBox;
16809
+
16826
16810
  export namespace TerrainProvider {
16827
16811
  /**
16828
16812
  * A function that is called when an error occurs.
@@ -18117,8 +18101,6 @@ export class VRTheWorldTerrainProvider {
18117
18101
  loadTileDataAvailability(x: number, y: number, level: number): undefined | Promise<void>;
18118
18102
  }
18119
18103
 
18120
- export const GRID_TARGET_SEGMENTS_PER_CELL = 16;
18121
-
18122
18104
  /**
18123
18105
  * A vertex format defines what attributes make up a vertex. A VertexFormat can be provided
18124
18106
  * to a {@link Geometry} to request that certain properties be computed, e.g., just position,
@@ -18962,31 +18944,6 @@ export type TypedArrayConstructor = Float64ArrayConstructor | Float32ArrayConstr
18962
18944
 
18963
18945
  export type Destroyable = any;
18964
18946
 
18965
- /**
18966
- * A GeoJSON position expressed as [longitude, latitude] or [longitude, latitude, altitude].
18967
- */
18968
- export type GeoJsonPosition = number[];
18969
-
18970
- /**
18971
- * A GeoJSON geometry object.
18972
- */
18973
- export type GeoJsonGeometry = any;
18974
-
18975
- /**
18976
- * A GeoJSON feature object.
18977
- */
18978
- export type GeoJsonFeature = any;
18979
-
18980
- /**
18981
- * A GeoJSON feature collection object.
18982
- */
18983
- export type GeoJsonFeatureCollection = any;
18984
-
18985
- /**
18986
- * A top-level GeoJSON object (Geometry, Feature, or FeatureCollection).
18987
- */
18988
- export type GeoJson = GeoJsonGeometry | GeoJsonFeature | GeoJsonFeatureCollection;
18989
-
18990
18947
  /**
18991
18948
  * Determines if a given date is a leap year.
18992
18949
  * @example
@@ -19156,6 +19113,15 @@ export function srgbToLinear(value: number): number;
19156
19113
  */
19157
19114
  export function subdivideArray(array: any[], numberOfArrays: number): void;
19158
19115
 
19116
+ /**
19117
+ * Computes dimensions for text, based on current canvas state.
19118
+ *
19119
+ * Rounds metrics, excluding width, to whole pixels. This is purely to minimize
19120
+ * rendering differences with migration to in-browser measureText(), and may be
19121
+ * revised in the future. See: github.com/CesiumGS/cesium/pull/13081
19122
+ */
19123
+ export function measureText(): void;
19124
+
19159
19125
  /**
19160
19126
  * Writes the given text into a new canvas. The canvas will be sized to fit the text.
19161
19127
  * If text is blank, returns undefined.
@@ -22655,39 +22621,11 @@ export class KmlDataSource {
22655
22621
  update(time: JulianDate): boolean;
22656
22622
  }
22657
22623
 
22658
- export namespace KmlFeatureData {
22659
- /**
22660
- * @property name - Gets the name.
22661
- * @property uri - Gets the URI.
22662
- * @property age - Gets the email.
22663
- */
22664
- type Author = {
22665
- name: string;
22666
- uri: string;
22667
- age: number;
22668
- };
22669
- /**
22670
- * @property href - Gets the href.
22671
- * @property hreflang - Gets the language of the linked resource.
22672
- * @property rel - Gets the link relation.
22673
- * @property type - Gets the link type.
22674
- * @property title - Gets the link title.
22675
- * @property length - Gets the link length.
22676
- */
22677
- type Link = {
22678
- href: string;
22679
- hreflang: string;
22680
- rel: string;
22681
- type: string;
22682
- title: string;
22683
- length: string;
22684
- };
22685
- }
22686
-
22687
22624
  /**
22688
22625
  * Contains KML Feature data loaded into the <code>Entity.kml</code> property by {@link KmlDataSource}.
22689
22626
  */
22690
22627
  export class KmlFeatureData {
22628
+ constructor();
22691
22629
  /**
22692
22630
  * Gets the atom syndication format author field.
22693
22631
  */
@@ -22716,6 +22654,35 @@ export class KmlFeatureData {
22716
22654
  extendedData: string;
22717
22655
  }
22718
22656
 
22657
+ export namespace KmlFeatureData {
22658
+ /**
22659
+ * @property name - Gets the name.
22660
+ * @property uri - Gets the URI.
22661
+ * @property age - Gets the email.
22662
+ */
22663
+ type Author = {
22664
+ name: string;
22665
+ uri: string;
22666
+ age: number;
22667
+ };
22668
+ /**
22669
+ * @property href - Gets the href.
22670
+ * @property hreflang - Gets the language of the linked resource.
22671
+ * @property rel - Gets the link relation.
22672
+ * @property type - Gets the link type.
22673
+ * @property title - Gets the link title.
22674
+ * @property length - Gets the link length.
22675
+ */
22676
+ type Link = {
22677
+ href: string;
22678
+ hreflang: string;
22679
+ rel: string;
22680
+ type: string;
22681
+ title: string;
22682
+ length: string;
22683
+ };
22684
+ }
22685
+
22719
22686
  /**
22720
22687
  * @param position - camera position
22721
22688
  * @param headingPitchRange - camera orientation
@@ -23425,11 +23392,10 @@ export namespace PathGraphics {
23425
23392
  * @property [leadTime] - A Property specifying the number of seconds in front the object to show.
23426
23393
  * @property [trailTime] - A Property specifying the number of seconds behind of the object to show.
23427
23394
  * @property [width = 1.0] - A numeric Property specifying the width in pixels.
23428
- * @property [resolution = 60] - A numeric Property specifying the maximum number of seconds to step when sampling the position. Fractional positive values are allowed; in PORTIONS materialMode, non-positive values fall back to the default resolution of 60 seconds.
23395
+ * @property [resolution = 60] - A numeric Property specifying the maximum number of seconds to step when sampling the position.
23429
23396
  * @property [material = Color.WHITE] - A Property specifying the material used to draw the path.
23430
23397
  * @property [distanceDisplayCondition] - A Property specifying at what distance from the camera that this path will be displayed.
23431
23398
  * @property [relativeTo] - A Property specifying the frame in which to visualize the path. Use another entity's id to visualize the path relative to that entity, or use the string values "FIXED" or "INERTIAL" to visualize the path in those reference frames.
23432
- * @property [materialMode] - A Property specifying how material properties are applied along the path.
23433
23399
  */
23434
23400
  type ConstructorOptions = {
23435
23401
  show?: Property | boolean;
@@ -23440,7 +23406,6 @@ export namespace PathGraphics {
23440
23406
  material?: MaterialProperty | Color;
23441
23407
  distanceDisplayCondition?: Property | DistanceDisplayCondition;
23442
23408
  relativeTo?: Property | string;
23443
- materialMode?: Property | PathMode;
23444
23409
  };
23445
23410
  }
23446
23411
 
@@ -23472,7 +23437,6 @@ export class PathGraphics {
23472
23437
  width: Property | undefined;
23473
23438
  /**
23474
23439
  * Gets or sets the Property specifying the maximum number of seconds to step when sampling the position.
23475
- * Fractional positive values are allowed; in PORTIONS materialMode, non-positive values fall back to the default resolution of 60 seconds.
23476
23440
  */
23477
23441
  resolution: Property | undefined;
23478
23442
  /**
@@ -23501,21 +23465,6 @@ export class PathGraphics {
23501
23465
  merge(source: PathGraphics): void;
23502
23466
  }
23503
23467
 
23504
- /**
23505
- * Defines how material properties are applied along a path.
23506
- */
23507
- export enum PathMode {
23508
- /**
23509
- * The material is applied to the entire path as a whole.
23510
- */
23511
- WHOLE = 0,
23512
- /**
23513
- * The material is applied in portions based on temporal position information,
23514
- * using interval-based material properties.
23515
- */
23516
- PORTIONS = 1
23517
- }
23518
-
23519
23468
  /**
23520
23469
  * Transforms a path entity's position into the local frame of the reference entity.
23521
23470
  * If the reference entity has an orientation, uses that orientation to define the local frame.
@@ -26125,6 +26074,8 @@ export enum TextureMinificationFilter {
26125
26074
  LINEAR_MIPMAP_LINEAR = WebGLConstants.LINEAR_MIPMAP_LINEAR
26126
26075
  }
26127
26076
 
26077
+ export function addAttribute(): void;
26078
+
26128
26079
  /**
26129
26080
  * An appearance defines the full GLSL vertex and fragment shaders and the
26130
26081
  * render state used to draw a {@link Primitive}. All appearances implement
@@ -26941,9 +26892,8 @@ export class Billboard {
26941
26892
  */
26942
26893
  rotation: number;
26943
26894
  /**
26944
- * The aligned axis is the direction vector that the billboard up vector points towards.
26895
+ * Gets or sets the aligned axis in world space. The aligned axis is the unit vector that the billboard up vector points towards.
26945
26896
  * The default is the zero vector, which means the billboard is aligned to the screen up vector.
26946
- * Note that only the zero vector (0,0,0) resets the alignment to screen up.
26947
26897
  * @example
26948
26898
  * // Example 1.
26949
26899
  * // Have the billboard up vector point north
@@ -27767,22 +27717,15 @@ export type BufferPointOptions = {
27767
27717
  * }
27768
27718
  * @param [options.modelMatrix = Matrix4.IDENTITY] - Transforms geometry from model to world coordinates.
27769
27719
  * @param [options.allowPicking = false] - When <code>true</code>, primitives are pickable with {@link Scene#pick}. When <code>false</code>, memory and initialization cost are lower.
27770
- * @param [options.boundingVolume] - Bounding volume, in world space, for the collection. When
27771
- * unspecified, a bounding volume is computed automatically and updated when primitive positions change. When
27772
- * specified, users are responsible for updating bounding volume as needed. Pre-computing the bounding volume
27773
- * manually, and updating it only as needed, will improve performance for larger dynamic collections.
27774
27720
  */
27775
27721
  export class BufferPointCollection extends BufferPrimitiveCollection<BufferPoint> {
27776
27722
  constructor(options: {
27777
27723
  modelMatrix?: Matrix4;
27778
27724
  primitiveCountMax?: number;
27779
- positionDatatype?: ComponentDatatype;
27780
- positionNormalized?: boolean;
27781
27725
  show?: boolean;
27726
+ positionDatatype?: ComponentDatatype;
27782
27727
  allowPicking?: boolean;
27783
- boundingVolume?: BoundingSphere;
27784
27728
  debugShowBoundingVolume?: boolean;
27785
- blendOption?: BlendOption;
27786
27729
  });
27787
27730
  /**
27788
27731
  * Adds a new point to the collection, with the specified options. A
@@ -28011,10 +27954,6 @@ export type BufferPolygonOptions = {
28011
27954
  * polygon.setMaterial(material);
28012
27955
  * }
28013
27956
  * @param [options.allowPicking = true] - When <code>true</code>, primitives are pickable with {@link Scene#pick}. When <code>false</code>, memory and initialization cost are lower.
28014
- * @param [options.boundingVolume] - Bounding volume, in world space, for the collection. When
28015
- * unspecified, a bounding volume is computed automatically and updated when primitive positions change. When
28016
- * specified, users are responsible for updating bounding volume as needed. Pre-computing the bounding volume
28017
- * manually, and updating it only as needed, will improve performance for larger dynamic collections.
28018
27957
  */
28019
27958
  export class BufferPolygonCollection extends BufferPrimitiveCollection<BufferPolygon> {
28020
27959
  constructor(options: {
@@ -28023,12 +27962,9 @@ export class BufferPolygonCollection extends BufferPrimitiveCollection<BufferPol
28023
27962
  holeCountMax?: number;
28024
27963
  triangleCountMax?: number;
28025
27964
  positionDatatype?: ComponentDatatype;
28026
- positionNormalized?: boolean;
28027
27965
  show?: boolean;
28028
27966
  allowPicking?: boolean;
28029
- boundingVolume?: BoundingSphere;
28030
27967
  debugShowBoundingVolume?: boolean;
28031
- blendOption?: BlendOption;
28032
27968
  });
28033
27969
  /**
28034
27970
  * Duplicates the contents of this collection into the result collection.
@@ -28308,14 +28244,7 @@ export type BufferPrimitiveOptions = {
28308
28244
  * {@link Color}, {@link Cartesian3}, and other objects can all be reused when working with large collections,
28309
28245
  * using the {@link https://en.wikipedia.org/wiki/Flyweight_pattern|flyweight pattern}.</p>
28310
28246
  * @param [options.modelMatrix = Matrix4.IDENTITY] - Transforms geometry from model to world coordinates.
28311
- * @param [options.positionNormalized = false] - When <code>true</code>, integer position values are treated as normalized,
28312
- * where the full integer range maps to [-1, 1] (signed) or [0, 1] (unsigned). Only relevant for integer position datatypes
28313
- * (BYTE, UNSIGNED_BYTE, SHORT, UNSIGNED_SHORT).
28314
28247
  * @param [options.allowPicking = false] - When <code>true</code>, primitives are pickable with {@link Scene#pick}. When <code>false</code>, memory and initialization cost are lower.
28315
- * @param [options.boundingVolume] - Bounding volume, in world space, for the collection. When
28316
- * unspecified, a bounding volume is computed automatically and updated when primitive positions change. When
28317
- * specified, users are responsible for updating bounding volume as needed. Pre-computing the bounding volume
28318
- * manually, and updating it only as needed, will improve performance for larger dynamic collections.
28319
28248
  */
28320
28249
  export class BufferPrimitiveCollection<T extends BufferPrimitive> {
28321
28250
  constructor(options: {
@@ -28324,22 +28253,16 @@ export class BufferPrimitiveCollection<T extends BufferPrimitive> {
28324
28253
  vertexCountMax?: number;
28325
28254
  show?: boolean;
28326
28255
  positionDatatype?: ComponentDatatype;
28327
- positionNormalized?: boolean;
28328
28256
  allowPicking?: boolean;
28329
- boundingVolume?: BoundingSphere;
28330
28257
  debugShowBoundingVolume?: boolean;
28331
- blendOption?: BlendOption;
28332
28258
  });
28333
28259
  /**
28334
28260
  * Determines if primitives in this collection will be shown.
28335
28261
  */
28336
28262
  show: boolean;
28337
- /**
28338
- * Transforms geometry from model to world coordinates.
28339
- */
28340
28263
  protected readonly _modelMatrix: Matrix4;
28341
28264
  protected readonly _boundingVolume: BoundingSphere;
28342
- protected readonly _boundingVolumeAutoUpdate: boolean;
28265
+ protected readonly _boundingVolumeWC: BoundingSphere;
28343
28266
  /**
28344
28267
  * This property is for debugging only; it is not for production use nor is it optimized.
28345
28268
  * <p>
@@ -28434,20 +28357,15 @@ export class BufferPrimitiveCollection<T extends BufferPrimitive> {
28434
28357
  */
28435
28358
  readonly modelMatrix: Matrix4;
28436
28359
  /**
28437
- * World-space bounding volume for all primitives in the collection, including both
28360
+ * Local bounding volume for all primitives in the collection, including both
28438
28361
  * shown and hidden primitives.
28439
28362
  */
28440
28363
  readonly boundingVolume: BoundingSphere;
28441
28364
  /**
28442
- * The component datatype used to store position values.
28443
- */
28444
- readonly positionDatatype: ComponentDatatype;
28445
- /**
28446
- * When <code>true</code>, integer position values are treated as normalized
28447
- * values, where the full integer range maps to [-1, 1] (signed) or [0, 1]
28448
- * (unsigned).
28365
+ * World bounding volume for all primitives in the collection, including both
28366
+ * shown and hidden primitives.
28449
28367
  */
28450
- readonly positionNormalized: boolean;
28368
+ readonly boundingVolumeWC: BoundingSphere;
28451
28369
  /**
28452
28370
  * Returns a JSON-serializable array representing the collection. This encoding
28453
28371
  * is not memory-efficient, and should generally be used for debugging and
@@ -28977,13 +28895,6 @@ export class Camera {
28977
28895
  * @param [offset] - The offset from the target in a reference frame centered at the target.
28978
28896
  */
28979
28897
  lookAtTransform(transform: Matrix4, offset?: Cartesian3 | HeadingPitchRange): void;
28980
- /**
28981
- * Sets the camera orientation to look at a target position in world coordinates. The camera's up vector will be oriented to the world up vector at the target position.
28982
- * If the camera is at the target position, the camera will be oriented to the world up vector at the target position.
28983
- * @param target - The target position in world coordinates.
28984
- * @param [ellipsoid = Ellipsoid.default] - The ellipsoid to use for determining the world up.
28985
- */
28986
- lookAtWorldPosition(target: Cartesian3, ellipsoid?: Ellipsoid): void;
28987
28898
  /**
28988
28899
  * Get the camera position needed to view a rectangle on an ellipsoid or map
28989
28900
  * @param rectangle - The rectangle to view.
@@ -29418,7 +29329,8 @@ export enum Cesium3DTileColorBlendMode {
29418
29329
  * This type describes an interface and is not intended to be instantiated directly.
29419
29330
  * </p>
29420
29331
  */
29421
- export interface Cesium3DTileContent {
29332
+ export class Cesium3DTileContent {
29333
+ constructor();
29422
29334
  /**
29423
29335
  * Gets the number of features in the tile.
29424
29336
  */
@@ -30750,11 +30662,10 @@ export namespace Cesium3DTileset {
30750
30662
  * @property [skipLevels = 1] - When <code>skipLevelOfDetail</code> is <code>true</code>, a constant defining the minimum number of levels to skip when loading tiles. When it is 0, no levels are skipped. Used in conjunction with <code>skipScreenSpaceErrorFactor</code> to determine which tiles to load.
30751
30663
  * @property [immediatelyLoadDesiredLevelOfDetail = false] - When <code>skipLevelOfDetail</code> is <code>true</code>, only tiles that meet the maximum screen space error will ever be downloaded. Skipping factors are ignored and just the desired tiles are loaded.
30752
30664
  * @property [loadSiblings = false] - When <code>skipLevelOfDetail</code> is <code>true</code>, determines whether siblings of visible tiles are always downloaded during traversal.
30753
- * @property [maximumSimultaneousTileRequests = Infinity] - Maximum number of this tileset's tile network requests that may be pending at once.
30754
30665
  * @property [clippingPlanes] - The {@link ClippingPlaneCollection} used to selectively disable rendering the tileset.
30755
30666
  * @property [clippingPolygons] - The {@link ClippingPolygonCollection} used to selectively disable rendering the tileset.
30756
30667
  * @property [classificationType] - Determines whether terrain, 3D Tiles or both will be classified by this tileset. See {@link Cesium3DTileset#classificationType} for details about restrictions and limitations.
30757
- * @property [heightReference] - Sets the {@link HeightReference} for features in vector tilesets.
30668
+ * @property [heightReference] - Sets the {@link HeightReference} for point features in vector tilesets.
30758
30669
  * @property [scene] - The {@link CesiumWidget#scene} that the tileset will be rendered in, required for tilesets that specify a {@link heightReference} value for clamping 3D Tiles vector data content- like points, lines, and labels- to terrain or 3D tiles.
30759
30670
  * @property [ellipsoid = Ellipsoid.WGS84] - The ellipsoid determining the size and shape of the globe.
30760
30671
  * @property [pointCloudShading] - Options for constructing a {@link PointCloudShading} object to control point attenuation based on geometric error and lighting.
@@ -30780,7 +30691,6 @@ export namespace Cesium3DTileset {
30780
30691
  * @property [debugColorizeTiles = false] - For debugging only. When true, assigns a random color to each tile.
30781
30692
  * @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.
30782
30693
  * @property [debugWireframe = false] - For debugging only. When true, render's each tile's content as a wireframe.
30783
- * @property [edgeDisplayMode = EdgeDisplayMode.SURFACES_ONLY] - Controls how edges from the {@link https://github.com/KhronosGroup/glTF/pull/2479|EXT_mesh_primitive_edge_visibility} glTF extension are rendered relative to surface geometry.
30784
30694
  * @property [debugShowBoundingVolume = false] - For debugging only. When true, renders the bounding volume for each tile.
30785
30695
  * @property [debugShowContentBoundingVolume = false] - For debugging only. When true, renders the bounding volume for each tile's content.
30786
30696
  * @property [debugShowViewerRequestVolume = false] - For debugging only. When true, renders the viewer request volume for each tile.
@@ -30820,7 +30730,6 @@ export namespace Cesium3DTileset {
30820
30730
  skipLevels?: number;
30821
30731
  immediatelyLoadDesiredLevelOfDetail?: boolean;
30822
30732
  loadSiblings?: boolean;
30823
- maximumSimultaneousTileRequests?: number;
30824
30733
  clippingPlanes?: ClippingPlaneCollection;
30825
30734
  clippingPolygons?: ClippingPolygonCollection;
30826
30735
  classificationType?: ClassificationType;
@@ -30850,7 +30759,6 @@ export namespace Cesium3DTileset {
30850
30759
  debugColorizeTiles?: boolean;
30851
30760
  enableDebugWireframe?: boolean;
30852
30761
  debugWireframe?: boolean;
30853
- edgeDisplayMode?: EdgeDisplayMode;
30854
30762
  debugShowBoundingVolume?: boolean;
30855
30763
  debugShowContentBoundingVolume?: boolean;
30856
30764
  debugShowViewerRequestVolume?: boolean;
@@ -31218,11 +31126,6 @@ export class Cesium3DTileset {
31218
31126
  * </p>
31219
31127
  */
31220
31128
  loadSiblings: boolean;
31221
- /**
31222
- * Maximum number of this tileset's tile network requests that may be
31223
- * pending at once.
31224
- */
31225
- maximumSimultaneousTileRequests: number;
31226
31129
  /**
31227
31130
  * The light color when shading models. When <code>undefined</code> the scene's light color is used instead.
31228
31131
  * <p>
@@ -31280,13 +31183,6 @@ export class Cesium3DTileset {
31280
31183
  * </p>
31281
31184
  */
31282
31185
  debugWireframe: boolean;
31283
- /**
31284
- * Controls how edges from the
31285
- * {@link https://github.com/KhronosGroup/glTF/pull/2479|EXT_mesh_primitive_edge_visibility}
31286
- * glTF extension are rendered relative to surface geometry. Tile content
31287
- * primitives that do not declare the extension are unaffected.
31288
- */
31289
- edgeDisplayMode: EdgeDisplayMode;
31290
31186
  /**
31291
31187
  * This property is for debugging only; it is not optimized for production use.
31292
31188
  * <p>
@@ -31947,6 +31843,23 @@ export class ClassificationPrimitive {
31947
31843
  destroy(): void;
31948
31844
  }
31949
31845
 
31846
+ /**
31847
+ * HZ patch: per-material blend modes for ground classification.
31848
+ * The app encodes the mode as a suffix on the composed material type
31849
+ * (e.g. ComposedPolygon_..._blendScreen). Source fragments are
31850
+ * premultiplied (ShadowVolumeAppearanceFS: rgb *= alpha), so:
31851
+ * screen = src + dst * (1 - src) -> (ONE, ONE_MINUS_SRC_COLOR)
31852
+ * multiply = dst * mix(1, c, a) (alpha-gated) -> (DST_COLOR, ONE_MINUS_SRC_ALPHA)
31853
+ * additive = src + dst -> (ONE, ONE)
31854
+ * Alpha keeps standard premultiplied over except additive.
31855
+ */
31856
+ export const classificationBlendOverrides: any;
31857
+
31858
+ /**
31859
+ * HZ patch: material type suffix -> blending override (undefined = stock)
31860
+ */
31861
+ export function getClassificationBlendOverride(): void;
31862
+
31950
31863
  /**
31951
31864
  * Whether a classification affects terrain, 3D Tiles or both.
31952
31865
  */
@@ -32214,6 +32127,33 @@ export class ClippingPolygon {
32214
32127
  computeRectangle(result?: Rectangle): Rectangle;
32215
32128
  }
32216
32129
 
32130
+ /**
32131
+ * Returns a deep copy of the given array.
32132
+ *
32133
+ * If the input is undefined, then <code>undefined</code> is returned.
32134
+ *
32135
+ * Otherwise, the result will be a copy of the given array, where
32136
+ * each element is copied with <code>Cartesian3.clone</code>.
32137
+ * @param input - The input array
32138
+ * @returns The copy
32139
+ */
32140
+ export function copyArrayCartesian3(input: Cartesian3[] | undefined): Cartesian3[] | undefined;
32141
+
32142
+ /**
32143
+ * Returns whether the given arrays are component-wise equal.
32144
+ *
32145
+ * When both arrays are undefined, then <code>true</code> is returned.
32146
+ * When only one array is defined, or they are both defined but have
32147
+ * different lengths, then <code>false</code> is returned.
32148
+ *
32149
+ * Otherwise, returns whether the corresponding elements of the arrays
32150
+ * are equal, as of <code>Cartesian3.equals</code>.
32151
+ * @param a - The first array
32152
+ * @param b - The second array
32153
+ * @returns Whether the arrays are equal
32154
+ */
32155
+ export function equalsArrayCartesian3(a: Cartesian3[] | undefined, b: Cartesian3[] | undefined): boolean;
32156
+
32217
32157
  /**
32218
32158
  * Specifies a set of clipping polygons. Clipping polygons selectively disable rendering in a region
32219
32159
  * inside or outside the specified list of {@link ClippingPolygon} objects for a single glTF model, 3D Tileset, or the globe.
@@ -32570,6 +32510,15 @@ export enum ColorBlendMode {
32570
32510
  MIX = 2
32571
32511
  }
32572
32512
 
32513
+ /**
32514
+ * Shared helpers for Columbus View repeat worlds: when
32515
+ * {@link Scene#columbusRepeatWorlds} is enabled, the map surface repeats
32516
+ * horizontally in whole-world copies (each 360° of longitude wide), so
32517
+ * positions and camera destinations must be placed on the copy nearest the
32518
+ * camera instead of the primary [-180°, 180°] world.
32519
+ */
32520
+ export namespace ColumbusWorlds { }
32521
+
32573
32522
  /**
32574
32523
  * An expression for a style applied to a {@link Cesium3DTileset}.
32575
32524
  * <p>
@@ -32632,605 +32581,6 @@ export class ConeEmitter {
32632
32581
  constructor(angle?: number);
32633
32582
  }
32634
32583
 
32635
- /**
32636
- * An interface for a camera controller that can be registered with the scene to handle input events, camera animations, and other interactions. Implementations of this interface are expected to be registered with the scene via a {@link ControllerHost}.
32637
- * This type describes an
32638
- * interface and is not intended to be instantiated directly.
32639
- */
32640
- export class Controller {
32641
- /**
32642
- * Determines if the controller is enabled and should be updated by the host scene.
32643
- */
32644
- enabled: boolean;
32645
- /**
32646
- * Invoked when the controller is added to the DOM. Implement <code>connectedCallback</code> to set up any DOM event listeners.
32647
- * @param element - The DOM element containing the Cesium scene.
32648
- */
32649
- connectedCallback(element: HTMLElement): void;
32650
- /**
32651
- * Invoked when the controller is removed from the DOM. Implement <code>disconnectedCallback</code> to tear down any DOM event listeners.
32652
- * @param element - The DOM element containing the Cesium scene.
32653
- */
32654
- disconnectedCallback(element: HTMLElement): void;
32655
- /**
32656
- * Invoked once per frame. Implement <code>update</code> to modify the camera or other parts of the scene.
32657
- * @param time - The current simulation time.
32658
- */
32659
- update(scene: Scene, time: JulianDate): void;
32660
- /**
32661
- * Invoked when the controller is being updated the first time, immediately before <code>update</code> is called. Implement <code>firstUpdate</code> to perform one-time work after the relevant scene has begun its render loop. Some examples might include initializing simulation time values or adding a primitive to the scene.
32662
- * @param time - The current simulation time.
32663
- */
32664
- firstUpdate(scene: Scene, time: JulianDate): void;
32665
- }
32666
-
32667
- /**
32668
- * Creates an instance of a <code>ControllerHost</code>. Typically, a <code>ControllerHost</code> is created by the Scene constructor and accessed via {@link Scene#controllerHost}.
32669
- */
32670
- export class ControllerHost {
32671
- /**
32672
- * The number of controllers registered to this host.
32673
- */
32674
- readonly controllerCount: number;
32675
- /**
32676
- * Registers a controller implementation with this host.
32677
- * @param controller - An implementation of the Controller interface to register with this host.
32678
- * @param element - The DOM element containing the Cesium scene.
32679
- * @param [priority = 0] - An index, less than or equal to the current count of registed controllers, that defines the precedence of the new controller relative to those previously registered. A priority of <code>0</code> would mean the new controller would apply its updates before any other controller. As subsequent controllers are updated, their effects are applied on top of any previous update effects. If omitted, the new controller becomes the highest priority, i.e., its updates are applied after all other controllers.
32680
- */
32681
- registerController(controller: Controller, element: HTMLElement, priority?: number): void;
32682
- /**
32683
- * Unregisters a controller implementation from this host.
32684
- * @param controller - An implementation of the Controller interface to unregister from this host.
32685
- * @param element - The DOM element containing the Cesium scene.
32686
- */
32687
- unregisterController(controller: Controller, element: HTMLElement): void;
32688
- /**
32689
- * Invoked once per frame by the host scene. Updates all registered controllers in order of their priority.
32690
- * @param scene - The host scene.
32691
- * @param time - The current simulation time.
32692
- */
32693
- update(scene: Scene, time: JulianDate): void;
32694
- }
32695
-
32696
- export interface HybridScreenSpacePanCameraController extends Controller {
32697
- }
32698
-
32699
- /**
32700
- * A contextual camera controller that combines screenspace map panning and screenspace elevator panning. The controller automatically switches between the two based on the camera's angle relative to nadir. If the camera is looking mostly down (within angleThreshold of nadir), <code>ScreenSpaceMapCameraController</code> is used.
32701
- * If the camera is looking towards the horizon (beyond angleThreshold from nadir), the <code>ScreenSpaceElevatorCameraController</code> is used.
32702
- * @example
32703
- * viewer.scene.screenSpaceCameraController.enableInputs = false;
32704
- * viewer.scene.screenSpaceCameraController.enableCollisionDetection = false;
32705
- *
32706
- * const hybridController = new HybridScreenSpacePanCameraController();
32707
- * viewer.addController(hybridController);
32708
- */
32709
- export class HybridScreenSpacePanCameraController implements Controller {
32710
- /**
32711
- * The angle threshold in radians that determines which controller is used. If the camera is looking within this angle of nadir, the map controller is used. Otherwise, the elevator controller is used.
32712
- */
32713
- angleThreshold: number;
32714
- /**
32715
- * The controller that is used when the camera is looking more horizontally (beyond angleThreshold from nadir).
32716
- */
32717
- readonly elevatorController: ScreenSpaceElevatorCameraController;
32718
- /**
32719
- * The controller that is used when the camera is looking mostly down (within angleThreshold of nadir).
32720
- */
32721
- readonly mapController: ScreenSpaceMapCameraController;
32722
- /**
32723
- * Determines if the controller is enabled and should be updated by the host scene.
32724
- */
32725
- enabled: boolean;
32726
- /**
32727
- * Invoked when the controller is added to the DOM. Implement <code>connectedCallback</code> to set up any DOM event listeners.
32728
- * @param element - The DOM element containing the Cesium scene.
32729
- */
32730
- connectedCallback(element: HTMLElement): void;
32731
- /**
32732
- * Invoked when the controller is removed from the DOM. Implement <code>disconnectedCallback</code> to tear down any DOM event listeners.
32733
- * @param element - The DOM element containing the Cesium scene.
32734
- */
32735
- disconnectedCallback(element: HTMLElement): void;
32736
- /**
32737
- * Invoked once per frame. Implement <code>update</code> to modify the camera or other parts of the scene.
32738
- * @param time - The current simulation time.
32739
- */
32740
- update(scene: Scene, time: JulianDate): void;
32741
- /**
32742
- * Invoked when the controller is being updated the first time, immediately before <code>update</code> is called. Implement <code>firstUpdate</code> to perform one-time work after the relevant scene has begun its render loop. Some examples might include initializing simulation time values or adding a primitive to the scene.
32743
- * @param time - The current simulation time.
32744
- */
32745
- firstUpdate(scene: Scene, time: JulianDate): void;
32746
- }
32747
-
32748
- /**
32749
- * This enumerated type is for classifying mouse buttons: left, middle, and right.
32750
- */
32751
- export enum MouseButton {
32752
- /**
32753
- * Represents a mouse left button.
32754
- */
32755
- LEFT = 0,
32756
- /**
32757
- * Represents a mouse middle button.
32758
- */
32759
- MIDDLE = 1,
32760
- /**
32761
- * Represents a mouse right button.
32762
- */
32763
- RIGHT = 2
32764
- }
32765
-
32766
- export namespace ScreenSpaceElevatorCameraController {
32767
- /**
32768
- * @property [dragInputs] - The drag input bindings that control panning.
32769
- */
32770
- type ControllerOptions = {
32771
- dragInputs?: ScreenSpaceInputBindings.InputBinding[];
32772
- };
32773
- }
32774
-
32775
- export interface ScreenSpaceElevatorCameraController extends Controller {
32776
- }
32777
-
32778
- /**
32779
- * Creates an instance of a ScreenSpaceElevatorCameraController.
32780
- * @example
32781
- * viewer.scene.screenSpaceCameraController.enableInputs = false;
32782
- * viewer.scene.screenSpaceCameraController.enableCollisionDetection = false;
32783
- *
32784
- * const elevatorCameraController = new Cesium.ScreenSpaceElevatorCameraController();
32785
- * viewer.addController(elevatorCameraController);
32786
- * @example
32787
- * // Configure the controller to use the right mouse button for panning instead of the default left mouse button.
32788
- * const elevatorCameraController = new Cesium.ScreenSpaceElevatorCameraController({
32789
- * dragInputs: [{ button: Cesium.MouseButton.RIGHT}]
32790
- * });
32791
- * viewer.addController(elevatorCameraController);
32792
- * @param [options] - The options for configuring the controller.
32793
- */
32794
- export class ScreenSpaceElevatorCameraController implements Controller {
32795
- constructor(options?: ScreenSpaceElevatorCameraController.ControllerOptions);
32796
- /**
32797
- * The drag input bindings that control vertical panning. Each binding is a combination of the mouse button
32798
- * and an optional keyboard modifier.
32799
- */
32800
- dragInputs: ScreenSpaceInputBindings.InputBinding[];
32801
- /**
32802
- * A callback function used to pick the world position from which to pan. The function is called with {@link Scene}, the {@link Cartesian2} screen space position, and a {@link Cartesian3} instance to store the result. The function should return the {@link Cartesian3} world position from which to pan, or <code>undefined</code> if no position could be picked. If <code>undefined</code> is returned, the camera will pan relative to the ellipsoid surface below the camera.
32803
- * @example
32804
- * const elevatorCameraController = new Cesium.ScreenSpaceElevatorCameraController();
32805
- * elevatorCameraController.pickWorldPosition = function (scene, windowPosition, result) {
32806
- * // Pick the world position from the depth buffer
32807
- * return scene.pickPosition(windowPosition, result);
32808
- * };
32809
- * viewer.addController(elevatorCameraController);
32810
- */
32811
- pickWorldPosition: (...params: any[]) => any;
32812
- /**
32813
- * The speed in meters per pixel at which the camera pans.
32814
- */
32815
- panSpeed: number;
32816
- /**
32817
- * Enable or disable inertia when panning. When enabled, the camera will continue to move after the user stops dragging, gradually slowing down based on {@link ScreenSpaceMapCameraController#inertialDecay}.
32818
- */
32819
- inertiaEnabled: boolean;
32820
- /**
32821
- * The rate at which the camera's pan velocity decays over time.
32822
- */
32823
- inertialDecay: number;
32824
- /**
32825
- * A parameter in the range <code>[0, 1)</code> used to limit the range
32826
- * of inputs to a percentage of the window width/height per animation frame.
32827
- * This helps keep the camera under control in low-frame-rate situations.
32828
- */
32829
- maximumMovementRatio: number;
32830
- /**
32831
- * Determines if the controller is enabled and should be updated by the host scene.
32832
- */
32833
- enabled: boolean;
32834
- /**
32835
- * Invoked when the controller is added to the DOM. Implement <code>connectedCallback</code> to set up any DOM event listeners.
32836
- * @param element - The DOM element containing the Cesium scene.
32837
- */
32838
- connectedCallback(element: HTMLElement): void;
32839
- /**
32840
- * Invoked when the controller is removed from the DOM. Implement <code>disconnectedCallback</code> to tear down any DOM event listeners.
32841
- * @param element - The DOM element containing the Cesium scene.
32842
- */
32843
- disconnectedCallback(element: HTMLElement): void;
32844
- /**
32845
- * Invoked once per frame. Implement <code>update</code> to modify the camera or other parts of the scene.
32846
- * @param time - The current simulation time.
32847
- */
32848
- update(scene: Scene, time: JulianDate): void;
32849
- /**
32850
- * Invoked when the controller is being updated the first time, immediately before <code>update</code> is called. Implement <code>firstUpdate</code> to perform one-time work after the relevant scene has begun its render loop. Some examples might include initializing simulation time values or adding a primitive to the scene.
32851
- * @param time - The current simulation time.
32852
- */
32853
- firstUpdate(scene: Scene, time: JulianDate): void;
32854
- }
32855
-
32856
- export namespace ScreenSpaceInputBindings {
32857
- /**
32858
- * @property button - The mouse button used for drag start/stop.
32859
- * @property [modifier] - The optional keyboard modifier to register.
32860
- */
32861
- type InputBinding = {
32862
- button: MouseButton;
32863
- modifier?: number;
32864
- };
32865
- /**
32866
- * @property [start] - Called on drag start.
32867
- * @property [end] - Called on drag stop.
32868
- * @property [change] - Called on drag move.
32869
- */
32870
- type DragInputActions = {
32871
- start?: (...params: any[]) => any;
32872
- end?: (...params: any[]) => any;
32873
- change?: (...params: any[]) => any;
32874
- };
32875
- /**
32876
- * @property isDragging - True if a drag is in progress, false otherwise.
32877
- */
32878
- type DragInputState = {
32879
- isDragging: boolean;
32880
- };
32881
- /**
32882
- * Registers drag input bindings on a screen space event handler.
32883
- * @param handler - The screen space event handler.
32884
- * @param inputBindings - The drag bindings to register.
32885
- * @param dragInputActions - The callbacks to invoke for drag actions.
32886
- * @returns The drag input state.
32887
- */
32888
- function registerDragInputBindings(handler: ScreenSpaceEventHandler, inputBindings: InputBinding[], dragInputActions: DragInputActions): DragInputState;
32889
- }
32890
-
32891
- export namespace ScreenSpaceMapCameraController {
32892
- /**
32893
- * @property [dragInputs] - The drag input bindings that control panning.
32894
- */
32895
- type ControllerOptions = {
32896
- dragInputs?: ScreenSpaceInputBindings.InputBinding[];
32897
- };
32898
- }
32899
-
32900
- export interface ScreenSpaceMapCameraController extends Controller {
32901
- }
32902
-
32903
- /**
32904
- * Creates an instance of a ScreenSpaceMapCameraController.
32905
- * @example
32906
- * viewer.scene.screenSpaceCameraController.enableInputs = false;
32907
- *
32908
- * const mapCameraController = new Cesium.ScreenSpaceMapCameraController();
32909
- * viewer.addController(mapCameraController);
32910
- * @example
32911
- * // Configure the controller to use the right mouse button for panning instead of the default left mouse button.
32912
- * const mapCameraController = new Cesium.ScreenSpaceMapCameraController({
32913
- * dragInputs: [{ button: Cesium.MouseButton.RIGHT}]
32914
- * });
32915
- * viewer.addController(mapCameraController);
32916
- * @param [options] - The options for configuring the controller.
32917
- */
32918
- export class ScreenSpaceMapCameraController implements Controller {
32919
- constructor(options?: ScreenSpaceMapCameraController.ControllerOptions);
32920
- /**
32921
- * The drag input bindings that map panning. Each binding is a combination of the mouse button
32922
- * and an optional keyboard modifier.
32923
- */
32924
- dragInputs: ScreenSpaceInputBindings.InputBinding[];
32925
- /**
32926
- * A callback function used to pick the world position from which to pan. The function is called with {@link Scene}, the {@link Cartesian2} screen space position, and a {@link Cartesian3} instance to store the result. The function should return the {@link Cartesian3} world position from which to pan, or <code>undefined</code> if no position could be picked. If <code>undefined</code> is returned, the camera will pan relative to the ellipsoid surface below the camera.
32927
- * @example
32928
- * const mapCameraController = new Cesium.ScreenSpaceMapCameraController();
32929
- * mapCameraController.pickWorldPosition = function (scene, windowPosition, result) {
32930
- * // Pick the world position from the depth buffer
32931
- * return scene.pickPosition(windowPosition, result);
32932
- * };
32933
- * viewer.addController(mapCameraController);
32934
- */
32935
- pickWorldPosition: (...params: any[]) => any;
32936
- /**
32937
- * The speed in meters per pixel at which the camera pans.
32938
- */
32939
- panSpeed: number;
32940
- /**
32941
- * Enable or disable inertia when panning. When enabled, the camera will continue to move after the user stops dragging, gradually slowing down based on {@link ScreenSpaceMapCameraController#inertialDecay}.
32942
- */
32943
- inertiaEnabled: boolean;
32944
- /**
32945
- * The rate at which the camera's pan velocity decays over time.
32946
- */
32947
- inertialDecay: number;
32948
- /**
32949
- * A parameter in the range <code>[0, 1)</code> used to limit the range
32950
- * of inputs to a percentage of the window width/height per animation frame.
32951
- * This helps keep the camera under control in low-frame-rate situations.
32952
- */
32953
- maximumMovementRatio: number;
32954
- /**
32955
- * Determines if the controller is enabled and should be updated by the host scene.
32956
- */
32957
- enabled: boolean;
32958
- /**
32959
- * Invoked when the controller is added to the DOM. Implement <code>connectedCallback</code> to set up any DOM event listeners.
32960
- * @param element - The DOM element containing the Cesium scene.
32961
- */
32962
- connectedCallback(element: HTMLElement): void;
32963
- /**
32964
- * Invoked when the controller is removed from the DOM. Implement <code>disconnectedCallback</code> to tear down any DOM event listeners.
32965
- * @param element - The DOM element containing the Cesium scene.
32966
- */
32967
- disconnectedCallback(element: HTMLElement): void;
32968
- /**
32969
- * Invoked once per frame. Implement <code>update</code> to modify the camera or other parts of the scene.
32970
- * @param time - The current simulation time.
32971
- */
32972
- update(scene: Scene, time: JulianDate): void;
32973
- /**
32974
- * Invoked when the controller is being updated the first time, immediately before <code>update</code> is called. Implement <code>firstUpdate</code> to perform one-time work after the relevant scene has begun its render loop. Some examples might include initializing simulation time values or adding a primitive to the scene.
32975
- * @param time - The current simulation time.
32976
- */
32977
- firstUpdate(scene: Scene, time: JulianDate): void;
32978
- }
32979
-
32980
- export namespace ScreenSpaceTiltOrbitCameraController {
32981
- /**
32982
- * @property [dragInputs] - The drag input bindings that control tilting and orbiting.
32983
- */
32984
- type ControllerOptions = {
32985
- dragInputs?: ScreenSpaceInputBindings.InputBinding[];
32986
- };
32987
- }
32988
-
32989
- export interface ScreenSpaceTiltOrbitCameraController extends Controller {
32990
- }
32991
-
32992
- /**
32993
- * Creates a new instance of <code>ScreenSpaceTiltOrbitCameraController</code>.
32994
- * @example
32995
- * viewer.scene.screenSpaceCameraController.enableInputs = false;
32996
- * viewer.scene.screenSpaceCameraController.enableCollisionDetection = false;
32997
- *
32998
- * const tiltOrbitController = new Cesium.ScreenSpaceTiltOrbitCameraController();
32999
- * viewer.addController(tiltOrbitController);
33000
- * @example
33001
- * // Tilt around the position under the cursor or tap when dragging starts instead of the position at the center of the screen.
33002
- * viewer.scene.screenSpaceCameraController.enableInputs = false;
33003
- * viewer.scene.screenSpaceCameraController.enableCollisionDetection = false;
33004
- *
33005
- * const tiltOrbitController = new Cesium.ScreenSpaceTiltOrbitCameraController();
33006
- * tiltOrbitController.useDragPosition = true;
33007
- * viewer.addController(tiltOrbitController);
33008
- * @example
33009
- * // Configure the controller to use the left mouse button for tilting and orbiting instead of the default right mouse button.
33010
- * const tiltOrbitController = new Cesium.ScreenSpaceTiltOrbitCameraController({
33011
- * dragInputs: [{ button: Cesium.MouseButton.LEFT }]
33012
- * });
33013
- * viewer.addController(tiltOrbitController);
33014
- * @param [options] - The options for configuring the controller.
33015
- */
33016
- export class ScreenSpaceTiltOrbitCameraController implements Controller {
33017
- constructor(options?: ScreenSpaceTiltOrbitCameraController.ControllerOptions);
33018
- /**
33019
- * Enabled dragging to tilt the camera.
33020
- */
33021
- tiltEnabled: boolean;
33022
- /**
33023
- * Enabled dragging to orbit the camera.
33024
- */
33025
- orbitEnabled: boolean;
33026
- /**
33027
- * If false, the camera will orbit and tilt around the position at the center of the screen. If true, the camera will orbit and tilt around the position under the cursor or tap when dragging starts.
33028
- */
33029
- useDragPosition: boolean;
33030
- /**
33031
- * The drag input bindings that control tilting. Each binding is a combination of the mouse button
33032
- * and an optional keyboard modifier.
33033
- */
33034
- dragInputs: ScreenSpaceInputBindings.InputBinding[];
33035
- /**
33036
- * A callback function used to pick the world position around which to tilt or orbit. The function is called with {@link Scene}, the {@link Cartesian2} screen space position, and a {@link Cartesian3} instance to store the result. The function should return the {@link Cartesian3} world position from which to tilt or orbit, or <code>undefined</code> if no position could be picked.
33037
- * @example
33038
- * const tiltOrbitCameraController = new Cesium.ScreenSpaceTiltOrbitCameraController();
33039
- * tiltOrbitCameraController.pickWorldPosition = function (scene, windowPosition, result) {
33040
- * // Pick the world position from the depth buffer
33041
- * return scene.pickPosition(windowPosition, result);
33042
- * };
33043
- * viewer.addController(tiltOrbitCameraController);
33044
- */
33045
- pickWorldPosition: (...params: any[]) => any;
33046
- /**
33047
- * The amount at which the camera tilts per dragged pixel. A value of 1.0 means that dragging the mouse across the entire canvas will tilt the camera by 90 degrees.
33048
- */
33049
- tiltMagnitude: number;
33050
- /**
33051
- * Enables or disables damping for tilt and orbit animations. Damping smooths out the camera movement and makes it feel more natural or weighty, but it can also introduce a slight delay in the camera response. If damping is disabled, the camera will respond immediately to user input.
33052
- */
33053
- dampingEnabled: boolean;
33054
- /**
33055
- * Specifies the length of time in seconds in which a single tilt animation is targeted to complete.
33056
- */
33057
- tiltAnimationDuration: number;
33058
- /**
33059
- * The maximum tilt velocity in radians per second. A value of Number.POSITIVE_INFINITY means that the maximum tilt velocity is unbounded.
33060
- */
33061
- maximumTiltVelocity: number;
33062
- /**
33063
- * The amount at which the camera orbits per dragged pixel. A value of 1.0 means that dragging the mouse across the entire canvas will orbit the camera by 180 degrees.
33064
- */
33065
- orbitMagnitude: number;
33066
- /**
33067
- * Specifies the length of time in seconds in which a single orbit animation completes.
33068
- */
33069
- orbitAnimationDuration: number;
33070
- /**
33071
- * The maximum orbit velocity in radians per second. A value of Number.POSITIVE_INFINITY means that the maximum orbit velocity is unbounded.
33072
- */
33073
- maximumOrbitVelocity: number;
33074
- /**
33075
- * A parameter in the range <code>[0, 1)</code> used to limit the range
33076
- * of inputs to a percentage of the window width/height per animation frame.
33077
- * This helps keep the camera under control in low-frame-rate situations.
33078
- */
33079
- maximumMovementRatio: number;
33080
- /**
33081
- * Attempts to orbit the camera around the specified origin by the specified amount in radians. Positive values orbit the camera clockwise, negative values orbit the camera counterclockwise. If the drag origin is not on the ellipsoid, no orbit is applied.
33082
- * @param camera - The camera to orbit.
33083
- * @param target - The origin position to orbit around in world coordinates.
33084
- * @param axis - The axis to orbit around, typically the negative of the surface normal at the target position.
33085
- * @param amount - The amount to orbit the camera in radians. Positive values orbit the camera clockwise, negative values orbit the camera counterclockwise.
33086
- * @param dt - The time delta in seconds since the last update.
33087
- * @param [ellipsoid = Ellipsoid.default] - The ellipsoid to pick for the orbit origin. If undefined, the default ellipsoid is used.
33088
- */
33089
- orbit(camera: Camera, target: Cartesian3, axis: Cartesian3, amount: number, dt: number, ellipsoid?: Ellipsoid): void;
33090
- /**
33091
- * Attempts to tilt the camera by the specified amount in radians. Positive values tilt the camera down, negative values tilt the camera up. If the drag origin is not on the ellipsoid, no tilt is applied.
33092
- * @param camera - The camera to tilt.
33093
- * @param target - The origin position to tilt around in world coordinates.
33094
- * @param axis - The axis to tilt around, typically the negative of the surface normal at the target position.
33095
- * @param amount - The amount to tilt the camera in radians. Positive values tilt the camera down, negative values tilt the camera up.
33096
- * @param dt - The time delta in seconds since the last update. Value must be greater than 0.
33097
- * @param [ellipsoid = Ellipsoid.default] - The ellipsoid to pick for the tilt origin. If undefined, the default ellipsoid is used.
33098
- */
33099
- tilt(camera: Camera, target: Cartesian3, axis: Cartesian3, amount: number, dt: number, ellipsoid?: Ellipsoid): void;
33100
- /**
33101
- * Determines if the controller is enabled and should be updated by the host scene.
33102
- */
33103
- enabled: boolean;
33104
- /**
33105
- * Invoked when the controller is added to the DOM. Implement <code>connectedCallback</code> to set up any DOM event listeners.
33106
- * @param element - The DOM element containing the Cesium scene.
33107
- */
33108
- connectedCallback(element: HTMLElement): void;
33109
- /**
33110
- * Invoked when the controller is removed from the DOM. Implement <code>disconnectedCallback</code> to tear down any DOM event listeners.
33111
- * @param element - The DOM element containing the Cesium scene.
33112
- */
33113
- disconnectedCallback(element: HTMLElement): void;
33114
- /**
33115
- * Invoked once per frame. Implement <code>update</code> to modify the camera or other parts of the scene.
33116
- * @param time - The current simulation time.
33117
- */
33118
- update(scene: Scene, time: JulianDate): void;
33119
- /**
33120
- * Invoked when the controller is being updated the first time, immediately before <code>update</code> is called. Implement <code>firstUpdate</code> to perform one-time work after the relevant scene has begun its render loop. Some examples might include initializing simulation time values or adding a primitive to the scene.
33121
- * @param time - The current simulation time.
33122
- */
33123
- firstUpdate(scene: Scene, time: JulianDate): void;
33124
- }
33125
-
33126
- export namespace ScreenSpaceZoomCameraController {
33127
- /**
33128
- * @property [dragInputs] - The drag input bindings that control zooming.
33129
- * @property [scrollInputs] - The scroll input bindings that control zooming.
33130
- */
33131
- type ControllerOptions = {
33132
- dragInputs?: ScreenSpaceInputBindings.InputBinding[];
33133
- scrollInputs?: ScreenSpaceEventType[];
33134
- };
33135
- }
33136
-
33137
- export interface ScreenSpaceZoomCameraController extends Controller {
33138
- }
33139
-
33140
- /**
33141
- * Creates a new instance of <code>ScreenSpaceZoomCameraController</code>.
33142
- * @example
33143
- * viewer.scene.screenSpaceCameraController.enableInputs = false;
33144
- * viewer.scene.screenSpaceCameraController.enableCollisionDetection = false;
33145
- *
33146
- * const zoomCameraController = new Cesium.ScreenSpaceZoomCameraController();
33147
- * viewer.addController(zoomCameraController);
33148
- * @param [options] - The options for configuring the controller.
33149
- */
33150
- export class ScreenSpaceZoomCameraController implements Controller {
33151
- constructor(options?: ScreenSpaceZoomCameraController.ControllerOptions);
33152
- /**
33153
- * If false, the camera will zoom to the position at the center of the screen. If true, the camera will zoom to the position under the cursor or tap when dragging starts or when scrolling with the scroll wheel.
33154
- */
33155
- usePointerPosition: boolean;
33156
- /**
33157
- * The drag input bindings that control zooming. Each binding is a combination of the mouse button
33158
- * and an optional keyboard modifier.
33159
- */
33160
- dragInputs: ScreenSpaceInputBindings.InputBinding[];
33161
- /**
33162
- * The scroll input bindings that control zooming.
33163
- */
33164
- scrollInputs: ScreenSpaceEventType[];
33165
- /**
33166
- * The rate at which the camera zooms in and out based on the mouse wheel delta.
33167
- */
33168
- zoomSensitivity: number;
33169
- /**
33170
- * A callback function used to pick the world position from which to zoom. The function is called with {@link Scene}, the {@link Cartesian2} screen space position, and a {@link Cartesian3} instance to store the result. The function should return the {@link Cartesian3} world position from which to zoom, or <code>undefined</code> if no position could be picked.
33171
- * @example
33172
- * const zoomCameraController = new Cesium.ScreenSpaceZoomCameraController();
33173
- * zoomCameraController.pickWorldPosition = function (scene, windowPosition, result) {
33174
- * // Pick the world position from the depth buffer
33175
- * return scene.pickPosition(windowPosition, result);
33176
- * };
33177
- * viewer.addController(zoomCameraController);
33178
- */
33179
- pickWorldPosition: (...params: any[]) => any;
33180
- /**
33181
- * The ratio of the camera's distance to the zoom target that defines how much the camera zooms in and out per second.
33182
- */
33183
- zoomDistanceRatio: number;
33184
- /**
33185
- * Enable or disable inertia when zooming. When enabled, the camera will continue to move after the user input stops, gradually slowing down based on {@link ScreenSpaceZoomCameraController#inertialDecay}.
33186
- */
33187
- inertiaEnabled: boolean;
33188
- /**
33189
- * The rate at which the camera's zoom velocity decays over time.
33190
- */
33191
- inertialDecay: number;
33192
- /**
33193
- * Maximum distance from the zoom target that the camera can move away.
33194
- */
33195
- maximumZoomDistance: number;
33196
- /**
33197
- * The maximum zoom velocity in meters per second. This limits the speed at which the camera can zoom in and out.
33198
- */
33199
- maximumZoomVelocity: number;
33200
- /**
33201
- * Enables or disables damping for zooming. Damping smooths out the camera movement and makes it feel more natural or weighty, but it can also introduce a slight delay in the camera response. If damping is disabled, the camera will respond immediately to user input.
33202
- */
33203
- dampingEnabled: boolean;
33204
- /**
33205
- * Specifies the length of time in seconds in which a single zoom animation is targeted to complete.
33206
- */
33207
- zoomAnimationDuration: number;
33208
- /**
33209
- * Determines if the controller is enabled and should be updated by the host scene.
33210
- */
33211
- enabled: boolean;
33212
- /**
33213
- * Invoked when the controller is added to the DOM. Implement <code>connectedCallback</code> to set up any DOM event listeners.
33214
- * @param element - The DOM element containing the Cesium scene.
33215
- */
33216
- connectedCallback(element: HTMLElement): void;
33217
- /**
33218
- * Invoked when the controller is removed from the DOM. Implement <code>disconnectedCallback</code> to tear down any DOM event listeners.
33219
- * @param element - The DOM element containing the Cesium scene.
33220
- */
33221
- disconnectedCallback(element: HTMLElement): void;
33222
- /**
33223
- * Invoked once per frame. Implement <code>update</code> to modify the camera or other parts of the scene.
33224
- * @param time - The current simulation time.
33225
- */
33226
- update(scene: Scene, time: JulianDate): void;
33227
- /**
33228
- * Invoked when the controller is being updated the first time, immediately before <code>update</code> is called. Implement <code>firstUpdate</code> to perform one-time work after the relevant scene has begun its render loop. Some examples might include initializing simulation time values or adding a primitive to the scene.
33229
- * @param time - The current simulation time.
33230
- */
33231
- firstUpdate(scene: Scene, time: JulianDate): void;
33232
- }
33233
-
33234
32584
  /**
33235
32585
  * The credit display is responsible for displaying credits on screen.
33236
32586
  * @example
@@ -33814,6 +33164,47 @@ export enum DepthFunction {
33814
33164
  ALWAYS = WebGLConstants.ALWAYS
33815
33165
  }
33816
33166
 
33167
+ /**
33168
+ * Returns a shader statement that applies the inverse of the
33169
+ * value transform to the given value, based on the given offset
33170
+ * and scale.
33171
+ * @param input - The input value
33172
+ * @param offset - The offset
33173
+ * @param scale - The scale
33174
+ * @returns The statement
33175
+ */
33176
+ export function unapplyValueTransform(input: string, offset: string, scale: string): string;
33177
+
33178
+ /**
33179
+ * Returns a shader statement that applies the inverse of the
33180
+ * normalization, based on the given component type
33181
+ * @param input - The input value
33182
+ * @param componentType - The component type
33183
+ * @returns The statement
33184
+ */
33185
+ export function unnormalize(input: string, componentType: string): string;
33186
+
33187
+ /**
33188
+ * Creates a shader statement that returns the value of the specified
33189
+ * property, normalized to the range [0, 1].
33190
+ * @param classProperty - The class property
33191
+ * @param metadataProperty - The metadata property, either
33192
+ * a `PropertyTextureProperty` or a `PropertyAttributeProperty`
33193
+ * @returns The string
33194
+ */
33195
+ export function getSourceValueStringScalar(classProperty: MetadataClassProperty, metadataProperty: any): string;
33196
+
33197
+ /**
33198
+ * Creates a shader statement that returns the value of the specified
33199
+ * component of the given property, normalized to the range [0, 1].
33200
+ * @param classProperty - The class property
33201
+ * @param metadataProperty - The metadata property, either
33202
+ * a `PropertyTextureProperty` or a `PropertyAttributeProperty`
33203
+ * @param componentName - The name, in ["x", "y", "z", "w"]
33204
+ * @returns The string
33205
+ */
33206
+ export function getSourceValueStringComponent(classProperty: MetadataClassProperty, metadataProperty: any, componentName: string): string;
33207
+
33817
33208
  /**
33818
33209
  * A light that gets emitted in a single direction from infinitely far away.
33819
33210
  * @param options - Object with the following properties:
@@ -34047,35 +33438,6 @@ export class DynamicEnvironmentMapManager {
34047
33438
  static readonly DEFAULT_SPHERICAL_HARMONIC_COEFFICIENTS: Cartesian3[];
34048
33439
  }
34049
33440
 
34050
- /**
34051
- * Defines how edges contributed by the
34052
- * {@link https://github.com/KhronosGroup/glTF/pull/2479|EXT_mesh_primitive_edge_visibility}
34053
- * glTF extension are rendered relative to surface geometry.
34054
- * <p>
34055
- * Primitives that do not include the extension are unaffected by this setting
34056
- * and always render normally.
34057
- * </p>
34058
- */
34059
- export enum EdgeDisplayMode {
34060
- /**
34061
- * Render surfaces only. Edges from the
34062
- * {@link https://github.com/KhronosGroup/glTF/pull/2479|EXT_mesh_primitive_edge_visibility}
34063
- * extension are hidden.
34064
- */
34065
- SURFACES_ONLY = 0,
34066
- /**
34067
- * Render both surfaces and edges. Edges from the
34068
- * {@link https://github.com/KhronosGroup/glTF/pull/2479|EXT_mesh_primitive_edge_visibility}
34069
- * extension are composited on top of the surface geometry.
34070
- */
34071
- SURFACES_AND_EDGES = 1,
34072
- /**
34073
- * Render edges only. Surface geometry is hidden for primitives that have edge visibility data,
34074
- * approximating CAD-style wireframe rendering. Primitives without the extension are unaffected.
34075
- */
34076
- EDGES_ONLY = 2
34077
- }
34078
-
34079
33441
  /**
34080
33442
  * An appearance for geometry on the surface of the ellipsoid like {@link PolygonGeometry}
34081
33443
  * and {@link RectangleGeometry}, which supports all materials like {@link MaterialAppearance}
@@ -34533,16 +33895,14 @@ export class FrameRateMonitor {
34533
33895
  destroy(): void;
34534
33896
  }
34535
33897
 
34536
- export interface GaussianSplat3DTileContent extends Cesium3DTileContent {
34537
- }
34538
-
34539
33898
  /**
34540
33899
  * Represents the contents of a glTF or glb using the {@link https://github.com/CesiumGS/glTF/tree/draft-splat-spz/extensions/2.0/Khronos/KHR_gaussian_splatting | KHR_gaussian_splatting} and {@link https://github.com/CesiumGS/glTF/tree/draft-splat-spz/extensions/2.0/Khronos/KHR_gaussian_splatting_compression_spz_2 | KHR_gaussian_splatting_compression_spz_2} extensions.
34541
33900
  * <p>
34542
33901
  * Implements the {@link Cesium3DTileContent} interface.
34543
33902
  * </p>
34544
33903
  */
34545
- export class GaussianSplat3DTileContent implements Cesium3DTileContent {
33904
+ export class GaussianSplat3DTileContent {
33905
+ constructor();
34546
33906
  /**
34547
33907
  * Performs checks to ensure that the provided tileset has the Gaussian Splatting extensions.
34548
33908
  * @param tileset - The tileset to check for the extensions.
@@ -34607,7 +33967,7 @@ export class GaussianSplat3DTileContent implements Cesium3DTileContent {
34607
33967
  * The resource that this content was loaded from.
34608
33968
  * <p>
34609
33969
  */
34610
- readonly url: string;
33970
+ readonly url: Resource;
34611
33971
  /**
34612
33972
  * Returns whether the feature has this property.
34613
33973
  * @param batchId - The batchId for the feature.
@@ -34628,84 +33988,6 @@ export class GaussianSplat3DTileContent implements Cesium3DTileContent {
34628
33988
  getFeature(batchId: number): Cesium3DTileFeature;
34629
33989
  }
34630
33990
 
34631
- export type GeoJsonPrimitiveConstructorOptions = {
34632
- geoJson?: any;
34633
- url?: Resource | string;
34634
- ellipsoid?: Ellipsoid;
34635
- allowPicking?: boolean;
34636
- show?: boolean;
34637
- pickObjectFactory?: (...params: any[]) => any;
34638
- };
34639
-
34640
- /**
34641
- * Lightweight GeoJSON loader that converts features directly into
34642
- * {@link BufferPointCollection}, {@link BufferPolylineCollection}, and
34643
- * {@link BufferPolygonCollection}.
34644
- *
34645
- * Unlike {@link GeoJsonDataSource}, this path does not create entities.
34646
- * Instead, it exposes high-throughput buffer primitive collections that can be
34647
- * added directly to {@link Scene#primitives}.
34648
- * @example
34649
- * const loader = await Cesium.GeoJsonPrimitive.fromUrl("./data.geojson");
34650
- * viewer.scene.primitives.add(loader);
34651
- *
34652
- * loader.points; // BufferPointCollection | undefined
34653
- * loader.polylines; // BufferPolylineCollection | undefined
34654
- * loader.polygons; // BufferPolygonCollection | undefined
34655
- * loader.ids; // source feature IDs
34656
- * loader.properties; // source feature properties
34657
- */
34658
- export class GeoJsonPrimitive {
34659
- constructor(options?: GeoJsonPrimitiveConstructorOptions);
34660
- /**
34661
- * Loader source URL when created via {@link GeoJsonPrimitive.fromUrl}.
34662
- */
34663
- readonly url: string | undefined;
34664
- /**
34665
- * Feature count represented by the loaded collections.
34666
- */
34667
- readonly featureCount: number;
34668
- /**
34669
- * Lookup table from integer ID generated by GeoJsonPrimitive, to integer or string Feature ID from GeoJSON source.
34670
- */
34671
- readonly ids: (string | number | undefined)[];
34672
- /**
34673
- * Source GeoJSON properties, indexed by generated integer ID.
34674
- */
34675
- readonly properties: Record<string, unknown>[];
34676
- /**
34677
- * Buffer point collection for point geometries.
34678
- */
34679
- readonly points: BufferPointCollection | undefined;
34680
- /**
34681
- * Buffer polyline collection for linestring geometries.
34682
- */
34683
- readonly polylines: BufferPolylineCollection | undefined;
34684
- /**
34685
- * Buffer polygon collection for polygon geometries.
34686
- */
34687
- readonly polygons: BufferPolygonCollection | undefined;
34688
- /**
34689
- * Loads GeoJSON from a URL or {@link Resource}.
34690
- */
34691
- static fromUrl(url: Resource | string, options?: GeoJsonPrimitiveConstructorOptions): Promise<GeoJsonPrimitive>;
34692
- /**
34693
- * Creates a loader directly from a parsed GeoJSON object.
34694
- */
34695
- static fromGeoJson(geoJson: any, options?: GeoJsonPrimitiveConstructorOptions): GeoJsonPrimitive;
34696
- getId(featureId: number): void;
34697
- getProperties(featureId: number): void;
34698
- }
34699
-
34700
- /**
34701
- * Normalized text-symbol rules for GeoVis `vector-label` PBF tiles.
34702
- * They cover every text-bearing source layer and zoom range from the official
34703
- * GeoVis vector-label style, without requiring a Mapbox style runtime.
34704
- */
34705
- export const GeoVisLabelStyles: ReadonlyArray<object>;
34706
-
34707
- export function getDedupeGroup(sourceLayer: string): void;
34708
-
34709
33991
  /**
34710
33992
  * Describes the format in which to request GetFeatureInfo from a Web Map Service (WMS) or Web Map Tile Service (WMTS) server.
34711
33993
  * @param type - The type of response to expect from a GetFeatureInfo request. Valid
@@ -34738,6 +34020,55 @@ export class Globe {
34738
34020
  * values will provide better performance but lower visual quality.
34739
34021
  */
34740
34022
  maximumScreenSpaceError: number;
34023
+ /**
34024
+ * Gets or sets the uniform level-of-detail mode configuration. When enabled,
34025
+ * tile refinement is evaluated against a single per-frame reference distance
34026
+ * instead of each tile's own distance to the camera, so the tiles in view
34027
+ * converge on one LOD level instead of a distance-dependent mix of levels.
34028
+ * This eliminates visible cross-level seams (e.g. between differently-styled
34029
+ * imagery levels) at the cost of loading more tiles in tilted views.
34030
+ *
34031
+ * The object has the following fields:
34032
+ * <ul>
34033
+ * <li><code>enabled</code>: set to <code>true</code> to activate the mode.</li>
34034
+ * <li><code>reference</code>: which distance all tiles are evaluated against.
34035
+ * <code>"center"</code> (default) uses the distance from the camera to the
34036
+ * globe along the center of the view; <code>"nearest"</code> uses the
34037
+ * nearest visible tile distance from the previous frame, which selects
34038
+ * the highest detail level in view (more tiles).</li>
34039
+ * <li><code>maxDeviationLevels</code>: caps how many levels above the natural
34040
+ * LOD far tiles may be forced to refine (default <code>3</code>). Each
34041
+ * allowed level roughly quadruples the extra tile count toward the
34042
+ * horizon; lower values are cheaper, higher values are more uniform.</li>
34043
+ * <li><code>maxCoarsenLevels</code>: caps how many levels below the natural
34044
+ * LOD near (foreground) tiles may be held back (default <code>1</code>).
34045
+ * Uncapped, the foreground of a tilted far view lands 2+ levels coarser
34046
+ * than natural, and <code>verticalExaggeration &gt; 1</code> multiplies
34047
+ * the interpolation error of coarse terrain (1 level = 4x, 2 levels =
34048
+ * 16x) into visible tearing. <code>1</code> measures +0~4% tile
34049
+ * requests over uncapped; <code>0</code> makes the foreground fully
34050
+ * natural (+5~69% requests) but mixes near/far levels again, bringing
34051
+ * back the dataset's cross-level color bands.</li>
34052
+ * <li><code>pitchRangeDegrees</code>: a <code>[full, none]</code> pair of pitch
34053
+ * angles in degrees (e.g. <code>[-50, -25]</code>) between which the effect
34054
+ * fades out as the view approaches the horizon. Leave undefined or pass
34055
+ * <code>null</code> to keep it fully engaged regardless of pitch, which is
34056
+ * appropriate for offline rendering.</li>
34057
+ * </ul>
34058
+ * Applies in {@link SceneMode.SCENE3D} and {@link SceneMode.COLUMBUS_VIEW};
34059
+ * true 2D ({@link SceneMode.SCENE2D}) already uses distance-independent
34060
+ * screen-space error and is unaffected.
34061
+ * @example
34062
+ * // Offline video export: full uniformity, no pitch gating
34063
+ * globe.uniformLevelMode = {
34064
+ * enabled: true,
34065
+ * reference: "center",
34066
+ * maxDeviationLevels: 4,
34067
+ * maxCoarsenLevels: 1,
34068
+ * pitchRangeDegrees: null,
34069
+ * };
34070
+ */
34071
+ uniformLevelMode: any | undefined;
34741
34072
  /**
34742
34073
  * The size of the terrain tile cache, expressed as a number of tiles. Any additional
34743
34074
  * tiles beyond this number will be freed, as long as they aren't needed for rendering
@@ -35106,14 +34437,10 @@ export class GlobeTranslucency {
35106
34437
  rectangle: Rectangle;
35107
34438
  }
35108
34439
 
35109
- export type EXTMeshPolygonExtension = {
35110
- count: number;
35111
- indicesOffsets: number;
35112
- loopIndices?: number;
35113
- loopIndicesOffsets?: number;
35114
- triangleIndices?: number;
35115
- triangleIndicesOffsets?: number;
35116
- };
34440
+ /**
34441
+ * Loads the gltf object
34442
+ */
34443
+ export function loadGltfJson(): void;
35117
34444
 
35118
34445
  /**
35119
34446
  * Removes an extension from gltf.extensions, gltf.extensionsUsed, gltf.extensionsRequired, and any other objects in the glTF if it is present.
@@ -35998,6 +35325,10 @@ export class GroundPolylinePrimitive {
35998
35325
  * </p>
35999
35326
  */
36000
35327
  debugShowBoundingVolume: boolean;
35328
+ /**
35329
+ * Root {@link GroundPolylineGeometry} ref from the last inner {@link Primitive} build. @private
35330
+ */
35331
+ _lastGroundPolylineRootGeometry: any;
36001
35332
  /**
36002
35333
  * Determines if geometry vertex attributes are interleaved, which can slightly improve rendering performance.
36003
35334
  */
@@ -37119,85 +36450,71 @@ export namespace ImageryLayer {
37119
36450
  export class ImageryLayer {
37120
36451
  constructor(imageryProvider?: ImageryProvider, options?: ImageryLayer.ConstructorOptions);
37121
36452
  /**
37122
- * The alpha blending value of this layer, with 0.0 representing fully transparent and
37123
- * 1.0 representing fully opaque.
37124
- */
37125
- alpha: number;
37126
- /**
37127
- * The alpha blending value of this layer on the night side of the globe, with 0.0 representing fully transparent and
37128
- * 1.0 representing fully opaque. This only takes effect when {@link Globe#enableLighting} is <code>true</code>.
37129
- */
37130
- nightAlpha: number;
37131
- /**
37132
- * The alpha blending value of this layer on the day side of the globe, with 0.0 representing fully transparent and
37133
- * 1.0 representing fully opaque. This only takes effect when {@link Globe#enableLighting} is <code>true</code>.
37134
- */
37135
- dayAlpha: number;
37136
- /**
37137
- * The brightness of this layer. 1.0 uses the unmodified imagery color. Less than 1.0
37138
- * makes the imagery darker while greater than 1.0 makes it brighter.
37139
- */
37140
- brightness: number;
37141
- /**
37142
- * The contrast of this layer. 1.0 uses the unmodified imagery color. Less than 1.0 reduces
37143
- * the contrast while greater than 1.0 increases it.
37144
- */
37145
- contrast: number;
37146
- /**
37147
- * The hue of this layer in radians. 0.0 uses the unmodified imagery color.
37148
- */
37149
- hue: number;
37150
- /**
37151
- * The saturation of this layer. 1.0 uses the unmodified imagery color. Less than 1.0 reduces the
37152
- * saturation while greater than 1.0 increases it.
37153
- */
37154
- saturation: number;
37155
- /**
37156
- * The gamma correction to apply to this layer. 1.0 uses the unmodified imagery color.
37157
- */
37158
- gamma: number;
37159
- /**
37160
- * The {@link SplitDirection} to apply to this layer.
36453
+ * Gets the imagery provider for this layer. This should not be called before {@link ImageryLayer#ready} returns true.
37161
36454
  */
37162
- splitDirection: SplitDirection;
36455
+ readonly imageryProvider: ImageryProvider;
37163
36456
  /**
37164
- * The {@link TextureMinificationFilter} to apply to this layer.
37165
- * Possible values are {@link TextureMinificationFilter.LINEAR} (the default)
37166
- * and {@link TextureMinificationFilter.NEAREST}.
36457
+ * Gets or sets a per-level color correction profile for this layer. Imagery
36458
+ * pyramids from third-party providers are frequently assembled from different
36459
+ * mosaic vintages per level, which shows up as a visible color seam wherever
36460
+ * two levels are rendered next to each other (typically in tilted views).
36461
+ * The profile applies one per-channel affine transform
36462
+ * (<code>scale * color + offset</code>, normalized [0, 1] units) to every
36463
+ * tile of a given level, which makes adjacent levels visually continuous.
36464
+ * Levels not listed in the profile are left uncorrected.
37167
36465
  *
37168
- * To take effect, this property must be set immediately after adding the imagery layer.
37169
- * Once a texture is loaded it won't be possible to change the texture filter used.
37170
- */
37171
- minificationFilter: TextureMinificationFilter;
37172
- /**
37173
- * The {@link TextureMagnificationFilter} to apply to this layer.
37174
- * Possible values are {@link TextureMagnificationFilter.LINEAR} (the default)
37175
- * and {@link TextureMagnificationFilter.NEAREST}.
36466
+ * The profile is a plain object, typically generated by the
36467
+ * <code>Apps/LevelColorCalibration.html</code> tool, of the form:
36468
+ * <pre>{
36469
+ * "strength": 0.8,
36470
+ * "referenceLevel": 16,
36471
+ * "levels": {
36472
+ * "14": { "scale": [1.02, 1.01, 0.98], "offset": [-0.01, 0.0, 0.02] },
36473
+ * "17": { "scale": [0.99, 1.0, 1.03], "offset": [0.0, -0.01, 0.03] }
36474
+ * }
36475
+ * }</pre>
36476
+ * <code>strength</code> (default <code>1.0</code>) blends between the original
36477
+ * and corrected color, <code>(1 - strength) * original + strength * (scale * original + offset)</code>,
36478
+ * so values below 1 keep some of the original per-level character.
37176
36479
  *
37177
- * To take effect, this property must be set immediately after adding the imagery layer.
37178
- * Once a texture is loaded it won't be possible to change the texture filter used.
37179
- */
37180
- magnificationFilter: TextureMagnificationFilter;
37181
- /**
37182
- * Determines if this layer is shown.
37183
- */
37184
- show: boolean;
37185
- /**
37186
- * Rectangle cutout in this layer of imagery.
37187
- */
37188
- cutoutRectangle: Rectangle;
37189
- /**
37190
- * Color value that should be set to transparent.
37191
- */
37192
- colorToAlpha: Color;
37193
- /**
37194
- * Normalized (0-1) threshold for color-to-alpha.
37195
- */
37196
- colorToAlphaThreshold: number;
37197
- /**
37198
- * Gets the imagery provider for this layer. This should not be called before {@link ImageryLayer#ready} returns true.
37199
- */
37200
- readonly imageryProvider: ImageryProvider;
36480
+ * Assigning a profile takes effect immediately, without reloading tiles;
36481
+ * setting it to <code>undefined</code> disables the correction.
36482
+ * @example
36483
+ * const response = await fetch("level-color-profile.json");
36484
+ * layer.levelColorProfile = await response.json();
36485
+ */
36486
+ levelColorProfile: any | undefined;
36487
+ /**
36488
+ * Gets or sets the width, as a fraction of the tile's extent, of an
36489
+ * edge band where this tile's {@link ImageryLayer#levelColorProfile}
36490
+ * correction is smoothly faded into the correction of the adjacent
36491
+ * coarser tile's level. Residual color steps at imagery LOD boundaries
36492
+ * (levels that cannot fully converge, or local deviations from the
36493
+ * calibration statistics) become gradual ramps, which are far less
36494
+ * visible than abrupt steps. The fade is one-sided: only the finer
36495
+ * side of a boundary fades, so both sides apply the same correction
36496
+ * exactly at the shared edge. Requires a levelColorProfile; edges
36497
+ * facing same-level or finer neighbors are not blended.
36498
+ *
36499
+ * The value is clamped to [0.0, 0.45]; 0 disables the fade. Values
36500
+ * between 0.15 and 0.25 are a good starting point. Takes effect
36501
+ * immediately (uniform-only after the first enabling, which compiles
36502
+ * one additional shader variant).
36503
+ */
36504
+ levelColorEdgeBlend: number;
36505
+ /**
36506
+ * Gets or sets whether the {@link ImageryLayer#levelColorEdgeBlend} band
36507
+ * cross-fades the imagery CONTENT with the ancestor imagery at the
36508
+ * adjacent coarser tile's level (the very texture the coarser side
36509
+ * renders), instead of only fading the correction parameters. Content
36510
+ * cross-fading makes both sides of a boundary pixel-identical at the
36511
+ * shared edge, which also removes seams caused by content differences
36512
+ * (mosaic vintage, local deviations from the calibration statistics)
36513
+ * that a correction-parameter fade cannot touch. When the ancestor
36514
+ * texture is unavailable, the parameter fade is used as a fallback.
36515
+ * Requires a levelColorProfile and levelColorEdgeBlend &gt; 0.
36516
+ */
36517
+ levelColorEdgeCrossFade: boolean;
37201
36518
  /**
37202
36519
  * Returns true when the terrain provider has been successfully created. Otherwise, returns false.
37203
36520
  */
@@ -37367,6 +36684,97 @@ export class ImageryLayer {
37367
36684
  getImageryRectangle(): Rectangle;
37368
36685
  }
37369
36686
 
36687
+ /**
36688
+ * The alpha blending value of this layer, with 0.0 representing fully transparent and
36689
+ * 1.0 representing fully opaque.
36690
+ */
36691
+ export var alpha: number;
36692
+
36693
+ /**
36694
+ * The alpha blending value of this layer on the night side of the globe, with 0.0 representing fully transparent and
36695
+ * 1.0 representing fully opaque. This only takes effect when {@link Globe#enableLighting} is <code>true</code>.
36696
+ */
36697
+ export var nightAlpha: number;
36698
+
36699
+ /**
36700
+ * The alpha blending value of this layer on the day side of the globe, with 0.0 representing fully transparent and
36701
+ * 1.0 representing fully opaque. This only takes effect when {@link Globe#enableLighting} is <code>true</code>.
36702
+ */
36703
+ export var dayAlpha: number;
36704
+
36705
+ /**
36706
+ * The brightness of this layer. 1.0 uses the unmodified imagery color. Less than 1.0
36707
+ * makes the imagery darker while greater than 1.0 makes it brighter.
36708
+ */
36709
+ export var brightness: number;
36710
+
36711
+ /**
36712
+ * The contrast of this layer. 1.0 uses the unmodified imagery color. Less than 1.0 reduces
36713
+ * the contrast while greater than 1.0 increases it.
36714
+ */
36715
+ export var contrast: number;
36716
+
36717
+ /**
36718
+ * The hue of this layer in radians. 0.0 uses the unmodified imagery color.
36719
+ */
36720
+ export var hue: number;
36721
+
36722
+ /**
36723
+ * The saturation of this layer. 1.0 uses the unmodified imagery color. Less than 1.0 reduces the
36724
+ * saturation while greater than 1.0 increases it.
36725
+ */
36726
+ export var saturation: number;
36727
+
36728
+ /**
36729
+ * The gamma correction to apply to this layer. 1.0 uses the unmodified imagery color.
36730
+ */
36731
+ export var gamma: number;
36732
+
36733
+ /**
36734
+ * The {@link SplitDirection} to apply to this layer.
36735
+ */
36736
+ export var splitDirection: SplitDirection;
36737
+
36738
+ /**
36739
+ * The {@link TextureMinificationFilter} to apply to this layer.
36740
+ * Possible values are {@link TextureMinificationFilter.LINEAR} (the default)
36741
+ * and {@link TextureMinificationFilter.NEAREST}.
36742
+ *
36743
+ * To take effect, this property must be set immediately after adding the imagery layer.
36744
+ * Once a texture is loaded it won't be possible to change the texture filter used.
36745
+ */
36746
+ export var minificationFilter: TextureMinificationFilter;
36747
+
36748
+ /**
36749
+ * The {@link TextureMagnificationFilter} to apply to this layer.
36750
+ * Possible values are {@link TextureMagnificationFilter.LINEAR} (the default)
36751
+ * and {@link TextureMagnificationFilter.NEAREST}.
36752
+ *
36753
+ * To take effect, this property must be set immediately after adding the imagery layer.
36754
+ * Once a texture is loaded it won't be possible to change the texture filter used.
36755
+ */
36756
+ export var magnificationFilter: TextureMagnificationFilter;
36757
+
36758
+ /**
36759
+ * Determines if this layer is shown.
36760
+ */
36761
+ export var show: boolean;
36762
+
36763
+ /**
36764
+ * Rectangle cutout in this layer of imagery.
36765
+ */
36766
+ export var cutoutRectangle: Rectangle;
36767
+
36768
+ /**
36769
+ * Color value that should be set to transparent.
36770
+ */
36771
+ export var colorToAlpha: Color;
36772
+
36773
+ /**
36774
+ * Normalized (0-1) threshold for color-to-alpha.
36775
+ */
36776
+ export var colorToAlphaThreshold: number;
36777
+
37370
36778
  /**
37371
36779
  * An ordered collection of imagery layers for rendering raster imagery on a {@link Globe} or {@link Cesium3DTileset}.
37372
36780
  */
@@ -37696,11 +37104,6 @@ export class ImageryProvider {
37696
37104
  static loadImage(imageryProvider: ImageryProvider, url: Resource | string): Promise<ImageryTypes | CompressedTextureBuffer> | undefined;
37697
37105
  }
37698
37106
 
37699
- /**
37700
- * @param level - @param {number} implicitY
37701
- */
37702
- export function getWebMercatorY(level: number): void;
37703
-
37704
37107
  export namespace IonImageryProvider {
37705
37108
  /**
37706
37109
  * Initialization options for the TileMapServiceImageryProvider constructor
@@ -37722,9 +37125,10 @@ export namespace IonImageryProvider {
37722
37125
  * @example
37723
37126
  * const imageryLayer = Cesium.ImageryLayer.fromProviderAsync(Cesium.IonImageryProvider.fromAssetId(3812));
37724
37127
  * viewer.imageryLayers.add(imageryLayer);
37128
+ * @param [options] - Object describing initialization options
37725
37129
  */
37726
37130
  export class IonImageryProvider {
37727
- constructor();
37131
+ constructor(options?: IonImageryProvider.ConstructorOptions);
37728
37132
  /**
37729
37133
  * Gets the rectangle, in radians, of the imagery provided by the instance.
37730
37134
  */
@@ -38414,123 +37818,6 @@ export class Light {
38414
37818
  intensity: number;
38415
37819
  }
38416
37820
 
38417
- export type MVTProviderOptions = {
38418
- minZoom?: number;
38419
- maxZoom?: number;
38420
- extent?: Rectangle;
38421
- featureIdProperty?: string;
38422
- labelStyles?: any[];
38423
- labelHeightReference?: HeightReference;
38424
- labelTransitionDuration?: number;
38425
- labelTransitionSteps?: number;
38426
- maximumRetiringLabels?: number;
38427
- maximumLabelsPerTile?: number;
38428
- maximumCachedGlyphs?: number;
38429
- renderGeometry?: boolean;
38430
- format?: "mvt" | "geovis";
38431
- maximumScreenSpaceError?: number;
38432
- maximumConcurrentRequests?: number;
38433
- cacheBytes?: number;
38434
- maximumCacheOverflowBytes?: number;
38435
- scene?: Scene;
38436
- };
38437
-
38438
- export type MVTWorkerResult = {
38439
- glb?: ArrayBuffer;
38440
- hasFeatures: boolean;
38441
- decodedTile?: any;
38442
- };
38443
-
38444
- /**
38445
- * A Mapbox Vector Tiles (MVT) data provider. Loads .mvt or .pbf tiles, converting tiles
38446
- * dynamically (at runtime) into 3D Tiles.
38447
- *
38448
- * <div class="notice">
38449
- * This object is normally not instantiated directly, use {@link MVTDataProvider.fromUrl}.
38450
- * </div>
38451
- * @param urlTemplate - @param {MVTProviderOptions} [options]
38452
- */
38453
- export class MVTDataProvider extends UrlTemplate3DTilesDataProvider {
38454
- constructor(urlTemplate: Resource | string);
38455
- /**
38456
- * Creates an MVTDataProvider from the specified URL template and options.
38457
- * @param url - URL template, containing {z}, {x}, and {y} placeholders.
38458
- * @param [options] - Provider options.
38459
- * @param [options.minZoom = 0] - Minimum zoom level represented in the generated tileset.
38460
- * @param [options.maxZoom] - Maximum zoom level represented in the generated tileset. GeoVis defaults to 18 and is limited to 18 because its label API returns empty tiles above that level.
38461
- * @param [options.extent] - Optional geographic extent in radians to constrain the generated tile tree.
38462
- * @param [options.featureIdProperty] - MVT property name to use as feature ID.
38463
- * @param [options.labelStyles] - Declarative MVT text-symbol rules.
38464
- * @param [options.labelHeightReference = HeightReference.CLAMP_TO_GROUND] - Height reference for MVT labels. Ground clamping keeps labels fixed to terrain and 3D Tiles while the camera moves.
38465
- * @param [options.labelTransitionDuration = 0.2] - Seconds used to cross-fade labels when tile selection changes. Set to 0 to disable transitions.
38466
- * @param [options.labelTransitionSteps = 4] - Opacity steps in each label transition. A small value keeps rapid zoom and pan updates bounded.
38467
- * @param [options.maximumRetiringLabels = 512] - Maximum labels retained for fade-out after a tile switch. Excess labels are removed immediately to protect frame time during rapid navigation.
38468
- * @param [options.maximumLabelsPerTile = 4096] - Maximum label candidates retained from one tile. Higher-priority styles are kept first.
38469
- * @param [options.maximumCachedGlyphs = 2048] - Maximum distinct glyphs retained by the label atlas before it is rebuilt. Set to 0 to disable atlas recycling.
38470
- * @param [options.renderGeometry = true] - Render point, line, and polygon geometry in addition to labels.
38471
- * @param [options.format = "mvt"] - PBF schema used by the tile service. Use `geovis` for GeoVis vector APIs.
38472
- * @param [options.maximumScreenSpaceError] - Tile screen-space error. When omitted for GeoVis, it adapts from 16 at globe scale to 1 near street scale.
38473
- * @param [options.maximumConcurrentRequests = 12] - Maximum pending MVT tile network requests. Limits the initial global-tile burst without requiring an extent.
38474
- * @param [options.cacheBytes = 67108864] - Target tile cache size for labels-only providers. Geometry providers keep the Cesium3DTileset default unless configured.
38475
- * @param [options.maximumCacheOverflowBytes = 16777216] - Additional cache headroom for labels-only providers. Geometry providers keep the Cesium3DTileset default unless configured.
38476
- * @param [options.scene] - Scene used for label decluttering and depth behavior.
38477
- */
38478
- static fromUrl(url: Resource | string, options?: {
38479
- minZoom?: number;
38480
- maxZoom?: number;
38481
- extent?: Rectangle;
38482
- featureIdProperty?: string;
38483
- labelStyles?: object[];
38484
- labelHeightReference?: HeightReference;
38485
- labelTransitionDuration?: number;
38486
- labelTransitionSteps?: number;
38487
- maximumRetiringLabels?: number;
38488
- maximumLabelsPerTile?: number;
38489
- maximumCachedGlyphs?: number;
38490
- renderGeometry?: boolean;
38491
- format?: "mvt" | "geovis";
38492
- maximumScreenSpaceError?: number;
38493
- maximumConcurrentRequests?: number;
38494
- cacheBytes?: number;
38495
- maximumCacheOverflowBytes?: number;
38496
- scene?: Scene;
38497
- }): Promise<MVTDataProvider>;
38498
- protected update(frameState: any): void;
38499
- /**
38500
- * URL template containing {z}/{x}/{y}.
38501
- */
38502
- readonly urlTemplate: string;
38503
- /**
38504
- * Resource derived from the URL template.
38505
- */
38506
- readonly resource: Resource;
38507
- /**
38508
- * Optional geographic extent in radians used to generate tile headers.
38509
- */
38510
- readonly extent: Rectangle | undefined;
38511
- /**
38512
- * Backing 3D Tileset.
38513
- */
38514
- readonly tileset: Cesium3DTileset | undefined;
38515
- /**
38516
- * Determines if the generated tileset is shown.
38517
- */
38518
- show: boolean;
38519
- protected _createRuntimeTilesetOptions(): void;
38520
- }
38521
-
38522
- export function getGeoVisScreenSpaceError(height: number | undefined): void;
38523
-
38524
- /**
38525
- * @param options - @returns {MVTProviderOptions}
38526
- */
38527
- export function normalizeMvtOptions(options: MVTProviderOptions | undefined): void;
38528
-
38529
- /**
38530
- * @param parameters - @returns {Promise<MVTWorkerResult>}
38531
- */
38532
- export function scheduleMvtTileTask(parameters: any): void;
38533
-
38534
37821
  /**
38535
37822
  * Describes how the map will operate in 2D.
38536
37823
  */
@@ -39231,6 +38518,14 @@ export class Material {
39231
38518
  static readonly WaterMaskType: string;
39232
38519
  }
39233
38520
 
38521
+ /**
38522
+ * Loads the images for a cubemap uniform, if it has changed since the last time this was called.
38523
+ * @param material - The material to load the cubemap images for.
38524
+ * @param uniformId - The ID of the uniform that corresponds to the cubemap images.
38525
+ * @returns A promise that resolves when the images are loaded, or a resolved promise if image loading is not necessary.
38526
+ */
38527
+ export function loadCubeMapImagesForUniform(material: Material, uniformId: string): any;
38528
+
39234
38529
  /**
39235
38530
  * An appearance for arbitrary geometry (as opposed to {@link EllipsoidSurfaceAppearance}, for example)
39236
38531
  * that supports shading with materials.
@@ -40171,6 +39466,36 @@ export class CorrelationGroup {
40171
39466
  readonly params: Spdcf[];
40172
39467
  }
40173
39468
 
39469
+ /**
39470
+ * Creates a Matrix3 that describes a covariance matrix (which is
39471
+ * symmetric) from the array containing the upper triangle, in
39472
+ * column-major order.
39473
+ * @param array - The input array
39474
+ * @returns The Matrix3
39475
+ */
39476
+ export function createCovarianceMatrixFromUpperTriangle(array: number[]): Matrix3;
39477
+
39478
+ /**
39479
+ * Creates an `AnchorPointDirect` from the given JSON representation
39480
+ * @param anchorPointDirectJson - The input JSON
39481
+ * @returns The direct anchor point
39482
+ */
39483
+ export function createAnchorPointDirect(anchorPointDirectJson: any): AnchorPointDirect;
39484
+
39485
+ /**
39486
+ * Creates an `AnchorPointIndirect` from the given JSON representation
39487
+ * @param anchorPointIndirectJson - The input JSON
39488
+ * @returns The indirect anchor point
39489
+ */
39490
+ export function createAnchorPointIndirect(anchorPointIndirectJson: any): AnchorPointIndirect;
39491
+
39492
+ /**
39493
+ * Creates a `CorrelationGroup` from the given JSON representation
39494
+ * @param correlationGroupJson - The input JSON
39495
+ * @returns The correlation group
39496
+ */
39497
+ export function createCorrelationGroup(correlationGroupJson: any): CorrelationGroup;
39498
+
40174
39499
  export namespace GltfGpmLocal {
40175
39500
  /**
40176
39501
  * Initialization options for the GltfGpmLocal constructor
@@ -40360,12 +39685,7 @@ export enum LightingModel {
40360
39685
  * {@link https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Vendor/EXT_mesh_gpu_instancing|EXT_mesh_gpu_instancing}
40361
39686
  * </li>
40362
39687
  * <li>
40363
- * {@link https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Vendor/EXT_mesh_primitive_restart|EXT_mesh_primitive_restart}
40364
- * </li>
40365
- * <li>
40366
- * {@link https://github.com/KhronosGroup/glTF/pull/2479|EXT_mesh_primitive_edge_visibility}
40367
- * (edges are hidden by default; set {@link EdgeDisplayMode} via
40368
- * {@link Model#edgeDisplayMode} or {@link Cesium3DTileset#edgeDisplayMode} to display them)
39688
+ * {@link https://github.com/KhronosGroup/glTF/pull/2514|EXT_mesh_primitive_restart}
40369
39689
  * </li>
40370
39690
  * <li>
40371
39691
  * {@link https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Vendor/EXT_meshopt_compression|EXT_meshopt_compression}
@@ -40392,16 +39712,9 @@ export enum LightingModel {
40392
39712
  * {@link https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_unlit/README.md|KHR_materials_unlit}
40393
39713
  * </li>
40394
39714
  * <li>
40395
- * {@link https://github.com/KhronosGroup/glTF/pull/2569|KHR_mesh_primitive_restart}
40396
- * (requires a WebGL 2 context; behavior on WebGL 1 is undefined)
40397
- * </li>
40398
- * <li>
40399
39715
  * {@link https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_mesh_quantization|KHR_mesh_quantization}
40400
39716
  * </li>
40401
39717
  * <li>
40402
- * {@link https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_meshopt_compression|KHR_meshopt_compression}
40403
- * </li>
40404
- * <li>
40405
39718
  * {@link https://github.com/KhronosGroup/glTF/blob/master/extensions/2.0/Khronos/KHR_texture_basisu|KHR_texture_basisu}
40406
39719
  * </li>
40407
39720
  * <li>
@@ -40547,13 +39860,6 @@ export class Model {
40547
39860
  * </p>
40548
39861
  */
40549
39862
  debugWireframe: boolean;
40550
- /**
40551
- * Controls how edges from the
40552
- * {@link https://github.com/KhronosGroup/glTF/pull/2479|EXT_mesh_primitive_edge_visibility}
40553
- * glTF extension are rendered relative to surface geometry. Primitives that
40554
- * do not declare the extension are unaffected by this setting.
40555
- */
40556
- edgeDisplayMode: EdgeDisplayMode;
40557
39863
  /**
40558
39864
  * Whether or not to render the model.
40559
39865
  */
@@ -40853,7 +40159,6 @@ export class Model {
40853
40159
  * @param [options.color] - A color that blends with the model's rendered color.
40854
40160
  * @param [options.colorBlendMode = ColorBlendMode.HIGHLIGHT] - Defines how the color blends with the model.
40855
40161
  * @param [options.colorBlendAmount = 0.5] - Value used to determine the color strength when the <code>colorBlendMode</code> is <code>MIX</code>. A value of 0.0 results in the model's rendered color while a value of 1.0 results in a solid color, with any value in-between resulting in a mix of the two.
40856
- * @param [options.edgeDisplayMode = EdgeDisplayMode.SURFACES_ONLY] - Controls how edges from the {@link https://github.com/KhronosGroup/glTF/pull/2479|EXT_mesh_primitive_edge_visibility} extension are rendered relative to surface geometry.
40857
40162
  * @param [options.silhouetteColor = Color.RED] - The silhouette color. If more than 256 models have silhouettes enabled, there is a small chance that overlapping models will have minor artifacts.
40858
40163
  * @param [options.silhouetteSize = 0.0] - The size of the silhouette in pixels.
40859
40164
  * @param [options.enableShowOutline = true] - Whether to enable outlines for models using the {@link https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/CESIUM_primitive_outline|CESIUM_primitive_outline} extension. This can be set false to avoid post-processing geometry at load time. When false, the showOutlines and outlineColor options are ignored.
@@ -40908,7 +40213,6 @@ export class Model {
40908
40213
  color?: Color;
40909
40214
  colorBlendMode?: ColorBlendMode;
40910
40215
  colorBlendAmount?: number;
40911
- edgeDisplayMode?: EdgeDisplayMode;
40912
40216
  silhouetteColor?: Color;
40913
40217
  silhouetteSize?: number;
40914
40218
  enableShowOutline?: boolean;
@@ -41630,140 +40934,6 @@ export class Moon {
41630
40934
  destroy(): void;
41631
40935
  }
41632
40936
 
41633
- /**
41634
- * @param left - @param {*} right
41635
- */
41636
- export function compareCandidatePriority(left: any): void;
41637
-
41638
- export function getStringByteLength(value: any): void;
41639
-
41640
- export function normalizeRules(styles: any[]): void;
41641
-
41642
- /**
41643
- * GeoVis changes source layers and omits feature IDs between overview and
41644
- * detailed tiles. A text key in a shared Web Mercator cell identifies the
41645
- * same named feature across those parent and child tiles.
41646
- */
41647
- export function createSemanticDedupeId(group: string, text: string, tileCoordinates: any, anchor: any, extent: number): void;
41648
-
41649
- /**
41650
- * @param filter - @param {Record<string, *>} properties @returns {boolean}
41651
- */
41652
- export function matchesFilter(filter: any): void;
41653
-
41654
- /**
41655
- * @param textField - @param {Record<string, *>} properties @returns {string}
41656
- */
41657
- export function resolveText(textField: any): void;
41658
-
41659
- /**
41660
- * @param expression - @param {Record<string, *>} properties @returns {*}
41661
- */
41662
- export function resolveExpression(expression: any): void;
41663
-
41664
- /**
41665
- * @param feature - @returns {{x:number,y:number}|undefined}
41666
- */
41667
- export function getAnchor(feature: any): void;
41668
-
41669
- export type MvtLabelManagerOptions = {
41670
- scene: any;
41671
- styles: any[];
41672
- heightReference?: HeightReference;
41673
- transitionDuration?: number;
41674
- transitionSteps?: number;
41675
- maximumRetiringLabels?: number;
41676
- maximumCachedGlyphs?: number;
41677
- };
41678
-
41679
- export function getCachedGlyphCount(labelCollection: any): void;
41680
-
41681
- export function hasPendingGlyphLoads(labelCollection: any): void;
41682
-
41683
- export function resetCandidateLabel(candidate: any): void;
41684
-
41685
- /**
41686
- * @param time - @param {*} startTime
41687
- */
41688
- export function elapsedSeconds(time: any): void;
41689
-
41690
- export function getViewZoom(frameState: any): void;
41691
-
41692
- /**
41693
- * @param textPositions - @param {string} text @param {Cartesian2} position
41694
- */
41695
- export function isDuplicateText(textPositions: Map<string, Cartesian2[]>): void;
41696
-
41697
- export function getVerticalFov(frustum: any): void;
41698
-
41699
- /**
41700
- * @param opacity - @param {number} steps
41701
- */
41702
- export function quantizeOpacity(opacity: number): void;
41703
-
41704
- /**
41705
- * @param color - @param {number} opacity
41706
- */
41707
- export function withAlpha(color: Color): void;
41708
-
41709
- /**
41710
- * @param scene - @param {*} windowPosition
41711
- */
41712
- export function isInsideViewport(scene: any): void;
41713
-
41714
- /**
41715
- * @param target - @param {Array<*>} candidates
41716
- */
41717
- export function removeCandidates(target: any[]): void;
41718
-
41719
- export function getCandidateDedupeKey(candidate: any): void;
41720
-
41721
- /**
41722
- * @param candidates - @param {string} dedupeKey
41723
- */
41724
- export function findCandidateByDedupeKey(candidates: any[]): void;
41725
-
41726
- export function normalizeStyles(styles: any[]): void;
41727
-
41728
- /**
41729
- * @param value - @param {Color} fallback @returns {Color}
41730
- */
41731
- export function toColor(value: any): void;
41732
-
41733
- /**
41734
- * @param left - @param {*} right
41735
- */
41736
- export function compareCandidates(left: any): void;
41737
-
41738
- /**
41739
- * @param candidate - @param {Cartesian3} result @returns {Cartesian3}
41740
- */
41741
- export function getWorldPosition(candidate: any): void;
41742
-
41743
- /**
41744
- * @param candidate - @param {*} style @param {Cartesian2} position
41745
- */
41746
- export function makeCollisionRectangle(candidate: any): void;
41747
-
41748
- /**
41749
- * @param style - @returns {Cartesian2}
41750
- */
41751
- export function getCollisionPadding(style: any): void;
41752
-
41753
- /**
41754
- * @param text - @param {number} fontSize
41755
- */
41756
- export function estimateTextWidth(text: string): void;
41757
-
41758
- export function isWideCharacter(character: string): void;
41759
-
41760
- export function parseFontSize(font: string): void;
41761
-
41762
- /**
41763
- * @param collection - @param {*} candidate @param {*} style @param {Cartesian3} position @param {HeightReference} heightReference
41764
- */
41765
- export function getOrCreateLabel(collection: any): void;
41766
-
41767
40937
  /**
41768
40938
  * A {@link TileDiscardPolicy} specifying that tile images should never be discard.
41769
40939
  */
@@ -42331,6 +41501,34 @@ export class PerInstanceColorAppearance {
42331
41501
  getRenderState(): any;
42332
41502
  }
42333
41503
 
41504
+ /**
41505
+ * Compute the rectangle that describes the part of the drawing buffer
41506
+ * that is relevant for picking.
41507
+ * @param drawingBufferHeight - The height of the drawing buffer
41508
+ * @param position - The position inside the drawing buffer
41509
+ * @param width - The width of the rectangle, assumed to
41510
+ * be an odd integer number, default : 3.0
41511
+ * @param height - The height of the rectangle. If unspecified,
41512
+ * height will default to the value of <code>width</code>
41513
+ * @param result - The result rectangle
41514
+ * @returns The result rectangle
41515
+ */
41516
+ export function computePickingDrawingBufferRectangle(drawingBufferHeight: number, position: Cartesian2, width: number | undefined, height: number | undefined, result: BoundingRectangle): BoundingRectangle;
41517
+
41518
+ /**
41519
+ * Setup needed before picking.
41520
+ * @param windowPosition - Window coordinates to perform picking on.
41521
+ * @param drawingBufferRectangle - The output drawing buffer recangle.
41522
+ * @param [width = 3] - Width of the pick rectangle.
41523
+ * @param [height = 3] - Height of the pick rectangle.
41524
+ */
41525
+ export function pickBegin(scene: Scene, windowPosition: Cartesian2, drawingBufferRectangle: BoundingRectangle, width?: number, height?: number): void;
41526
+
41527
+ /**
41528
+ * Teardown needed after picking.
41529
+ */
41530
+ export function pickEnd(scene: Scene): void;
41531
+
42334
41532
  /**
42335
41533
  * Information about metadata that is supposed to be picked
42336
41534
  * @property schemaId - The optional ID of the metadata schema
@@ -42345,6 +41543,44 @@ export type PickedMetadataInfo = {
42345
41543
  classProperty: MetadataClassProperty;
42346
41544
  };
42347
41545
 
41546
+ /**
41547
+ * @param pickedResults - the results from the pickCallback
41548
+ * @param limit - If supplied, stop drilling after collecting this many picks.
41549
+ * @returns whether picking should end
41550
+ */
41551
+ export function addDrillPickedResults(pickedResults: object[], limit: number, results: object[], pickedPrimitives: object[], pickedAttributes: object[], pickedFeatures: object[]): boolean;
41552
+
41553
+ /**
41554
+ * Drill pick by repeatedly calling a given `pickCallback`, each time stripping away the previously picked objects.
41555
+ * @param pickCallback - Pick callback to execute each iteration
41556
+ * @param [limit = Number.MAX_VALUE] - If supplied, stop drilling after collecting this many picks
41557
+ * @returns List of picked results
41558
+ */
41559
+ export function drillPick(pickCallback: (...params: any[]) => any, limit?: number): object[];
41560
+
41561
+ /**
41562
+ * Remove all invalid binary body references from the batch table
41563
+ * JSON of the given parsed content.
41564
+ *
41565
+ * This is a workaround for gracefully handling the invalid PNTS
41566
+ * files that may have been created by the point cloud tiler.
41567
+ * See https://github.com/CesiumGS/cesium/issues/12872
41568
+ *
41569
+ * When the batch table JSON is undefined, nothing will be done.
41570
+ * When the batch table binary is defined, nothing will be done
41571
+ * (assuming that any binary body references are valid - this is
41572
+ * not checked here).
41573
+ *
41574
+ * Otherwise, this will remove all binary body references from the
41575
+ * batch table JSON that are not resolved from draco via the
41576
+ * `parsedContent.draco.batchTableProperties`.
41577
+ *
41578
+ * If any (invalid) binary body reference is found (and removed),
41579
+ * a one-time warning will be printed.
41580
+ * @param parsedContent - The parsed content
41581
+ */
41582
+ export function removeInvalidBinaryBodyReferences(parsedContent: any): void;
41583
+
42348
41584
  /**
42349
41585
  * Options for performing point attenuation based on geometric error when rendering
42350
41586
  * point clouds using 3D Tiles.
@@ -44196,6 +43432,9 @@ export const TILE_SIZE = 256;
44196
43432
  * @param [options.scene3DOnly = false] - If true, optimizes memory use and performance for 3D mode but disables the ability to use 2D or Columbus View.
44197
43433
  * @param [options.shadows = false] - Determines if shadows are cast by light sources.
44198
43434
  * @param [options.mapMode2D = MapMode2D.INFINITE_SCROLL] - Determines if the 2D map is rotatable or can be scrolled infinitely in the horizontal direction.
43435
+ * @param [options.columbusRepeatWorlds = false] - If true, the Columbus View map repeats horizontally: translated
43436
+ * copies of the globe surface tiles are rendered beyond the ±180° meridian so the map, entity placement, and
43437
+ * picking continue seamlessly across the antimeridian.
44199
43438
  * @param [options.requestRenderMode = false] - If true, rendering a frame will only occur when needed as determined by changes within the scene. Enabling improves performance of the application, but requires using {@link Scene#requestRender} to render a new frame explicitly in this mode. This will be necessary in many cases after making changes to the scene in other parts of the API. See {@link https://cesium.com/blog/2018/01/24/cesium-scene-rendering-performance/|Improving Performance with Explicit Rendering}.
44200
43439
  * @param [options.maximumRenderTimeChange = 0.0] - If requestRenderMode is true, this value defines the maximum change in simulation time allowed before a render is requested. See {@link https://cesium.com/blog/2018/01/24/cesium-scene-rendering-performance/|Improving Performance with Explicit Rendering}.
44201
43440
  * @param [options.depthPlaneEllipsoidOffset = 0.0] - Adjust the DepthPlane to address rendering artefacts below ellipsoid zero elevation.
@@ -44213,6 +43452,7 @@ export class Scene {
44213
43452
  scene3DOnly?: boolean;
44214
43453
  shadows?: boolean;
44215
43454
  mapMode2D?: MapMode2D;
43455
+ columbusRepeatWorlds?: boolean;
44216
43456
  requestRenderMode?: boolean;
44217
43457
  maximumRenderTimeChange?: number;
44218
43458
  depthPlaneEllipsoidOffset?: number;
@@ -44527,16 +43767,6 @@ export class Scene {
44527
43767
  * Gets or sets the camera.
44528
43768
  */
44529
43769
  readonly camera: Camera;
44530
- /**
44531
- * Collects an array of <code>Controller</code> objects that can be registered with the scene to handle input events, camera animations, and other interactions.
44532
- * @example
44533
- * scene.screenSpaceCameraController.enableInputs = false;
44534
- * scene.screenSpaceCameraController.enableCollisionDetection = false;
44535
- *
44536
- * const tiltOrbitController = new Cesium.ScreenSpaceTiltOrbitCameraController();
44537
- * scene.controllerHost.registerController(tiltOrbitController, scene.canvas.parentNode);
44538
- */
44539
- readonly controllerHost: ControllerHost;
44540
43770
  /**
44541
43771
  * Gets the controller for camera input handling.
44542
43772
  */
@@ -44630,6 +43860,14 @@ export class Scene {
44630
43860
  * Determines if the 2D map is rotatable or can be scrolled infinitely in the horizontal direction.
44631
43861
  */
44632
43862
  readonly mapMode2D: MapMode2D;
43863
+ /**
43864
+ * Gets or sets whether the Columbus View map repeats horizontally. When true,
43865
+ * translated copies of the globe surface tiles are rendered beyond the ±180°
43866
+ * meridian, and entity placement/picking wrap to the copy nearest the camera,
43867
+ * so editing and animation work seamlessly across the antimeridian.
43868
+ * Only has an effect in {@link SceneMode.COLUMBUS_VIEW}.
43869
+ */
43870
+ columbusRepeatWorlds: boolean;
44633
43871
  /**
44634
43872
  * Gets or sets the position of the splitter within the viewport. Valid values are between 0.0 and 1.0.
44635
43873
  */
@@ -44708,27 +43946,6 @@ export class Scene {
44708
43946
  * @returns Object containing the picked primitive or <code>undefined</code> if nothing is at the location.
44709
43947
  */
44710
43948
  pick(windowPosition: Cartesian2, width?: number, height?: number): any | undefined;
44711
- /**
44712
- * Returns the best snap target in a screen-space region around <code>windowPosition</code>.
44713
- * Edges are preferred over surfaces; among hits of the same kind the one
44714
- * nearest the cursor wins. Returns <code>undefined</code> if the region contains
44715
- * no snappable geometry.
44716
- * <p>
44717
- * Only primitives rendered through the Model pipeline (e.g. 3D Tiles and glTF
44718
- * models) are snappable. Snapping requires float color attachments
44719
- * (WebGL2 with <code>EXT_color_buffer_float</code>); if unsupported, this
44720
- * function returns <code>undefined</code>.
44721
- * </p>
44722
- * @param windowPosition - Window coordinates at the center of the search region.
44723
- * @param [options] - Object with the following properties:
44724
- * @param [options.width = 25] - Width of the search region in pixels.
44725
- * @param [options.height = options.width] - Height of the search region in pixels.
44726
- * @returns The best snap target in the region, or <code>undefined</code> if there is none.
44727
- */
44728
- snap(windowPosition: Cartesian2, options?: {
44729
- width?: number;
44730
- height?: number;
44731
- }): SceneSnapResult | undefined;
44732
43949
  /**
44733
43950
  * Performs the same operation as Scene.pick but asynchonosly without blocking the main render thread.
44734
43951
  * Requires WebGL2 else using fallback.
@@ -44969,18 +44186,16 @@ export class Scene {
44969
44186
  }
44970
44187
 
44971
44188
  /**
44972
- * The result of a snap operation. See {@link Scene#snap}.
44973
- * @property object - The snapped primitive or feature.
44974
- * @property position - The world-space position of the snap point, un-projected from the snap framebuffer's eye-space depth.
44975
- * @property screenPosition - The window coordinates of the snap point.
44976
- * @property isEdge - <code>true</code> if the snap point lies on an edge; <code>false</code> if it lies on a surface.
44189
+ * Determine how translucent surfaces will be handled.
44190
+ *
44191
+ * When OIT is enabled, then this will delegate to OIT.executeCommands.
44192
+ * Otherwise, it will just be executeTranslucentCommandsBackToFront
44193
+ * for render passes, or executeTranslucentCommandsFrontToBack for
44194
+ * other passes.
44195
+ * @param scene - The scene.
44196
+ * @returns A function to execute translucent commands.
44977
44197
  */
44978
- export type SceneSnapResult = {
44979
- object: any;
44980
- position: Cartesian3;
44981
- screenPosition: Cartesian2;
44982
- isEdge: boolean;
44983
- };
44198
+ export function obtainTranslucentCommandExecutionFunction(scene: Scene): (...params: any[]) => any;
44984
44199
 
44985
44200
  /**
44986
44201
  * Indicates if the scene is viewed in 3D, 2D, or 2.5D Columbus view.
@@ -46378,61 +45593,6 @@ export enum Tonemapper {
46378
45593
  PBR_NEUTRAL = "PBR_NEUTRAL"
46379
45594
  }
46380
45595
 
46381
- /**
46382
- * Base provider for URL-template vector sources that are rendered through a
46383
- * runtime-generated 3D Tiles tileset.
46384
- * @param urlTemplate - URL template containing {z}, {x}, and {y} placeholders.
46385
- * @param [options] - Provider options.
46386
- * @param [options.minZoom = 0] - Minimum zoom level represented in the generated tileset.
46387
- * @param [options.maxZoom = 14] - Maximum zoom level represented in the generated tileset.
46388
- * @param [options.extent] - Optional geographic extent in radians to constrain the generated tile tree.
46389
- * @param [options.featureIdProperty] - Feature property name to use as feature ID when supported by content decoding.
46390
- */
46391
- export class UrlTemplate3DTilesDataProvider {
46392
- constructor(urlTemplate: Resource | string, options?: {
46393
- minZoom?: number;
46394
- maxZoom?: number;
46395
- extent?: Rectangle;
46396
- featureIdProperty?: string;
46397
- });
46398
- /**
46399
- * Creates a provider from a URL template.
46400
- * @param url - URL template containing {z}, {x}, and {y} placeholders.
46401
- * @param [options] - Provider options.
46402
- */
46403
- static fromUrl(url: Resource | string, options?: any): Promise<UrlTemplate3DTilesDataProvider>;
46404
- /**
46405
- * URL template containing {z}/{x}/{y}.
46406
- */
46407
- readonly urlTemplate: string;
46408
- /**
46409
- * Resource derived from the URL template.
46410
- */
46411
- readonly resource: Resource;
46412
- /**
46413
- * Optional geographic extent in radians used to generate tile headers.
46414
- */
46415
- readonly extent: Rectangle | undefined;
46416
- /**
46417
- * Backing 3D Tileset.
46418
- */
46419
- readonly tileset: Cesium3DTileset | undefined;
46420
- /**
46421
- * Determines if the generated tileset is shown.
46422
- */
46423
- show: boolean;
46424
- protected _createRuntimeTilesetOptions(): void;
46425
- protected _createTilesetLoadOptions(): any;
46426
- protected _configureTileset(_tileset: Cesium3DTileset): void;
46427
- /**
46428
- * Subclasses must return a runtime content codec describing how to turn
46429
- * a downloaded tile payload into a {@link Cesium3DTileContent}. See
46430
- * {@link Cesium3DTileset#_runtimeContentCodec} for the expected shape.
46431
- */
46432
- protected _createCodec(): any;
46433
- protected update(frameState: any): void;
46434
- }
46435
-
46436
45596
  export namespace UrlTemplateImageryProvider {
46437
45597
  /**
46438
45598
  * Initialization options for the UrlTemplateImageryProvider constructor
@@ -47123,8 +46283,7 @@ export class VoxelPrimitive {
47123
46283
  */
47124
46284
  clippingPlanes: ClippingPlaneCollection;
47125
46285
  /**
47126
- * Gets or sets the custom shader. If undefined, attempt to build a default custom shader
47127
- * appropriate to the metadata type. If that fails, use {@link VoxelPrimitive.DefaultCustomShader}.
46286
+ * Gets or sets the custom shader. If undefined, {@link VoxelPrimitive.DefaultCustomShader} is set.
47128
46287
  */
47129
46288
  customShader: CustomShader;
47130
46289
  /**
@@ -47157,21 +46316,7 @@ export class VoxelPrimitive {
47157
46316
  * This type describes an interface and is not intended to be instantiated directly.
47158
46317
  */
47159
46318
  export class VoxelProvider {
47160
- /**
47161
- * Requests the data for a given tile.
47162
- * @param [options] - Object with the following properties:
47163
- * @param [options.tileLevel = 0] - The tile's level.
47164
- * @param [options.tileX = 0] - The tile's X coordinate.
47165
- * @param [options.tileY = 0] - The tile's Y coordinate.
47166
- * @param [options.tileZ = 0] - The tile's Z coordinate.
47167
- * @returns A promise resolving to a VoxelContent containing the data for the tile, or undefined if the request could not be scheduled this frame.
47168
- */
47169
- requestData(options?: {
47170
- tileLevel?: number;
47171
- tileX?: number;
47172
- tileY?: number;
47173
- tileZ?: number;
47174
- }): Promise<VoxelContent> | undefined;
46319
+ constructor();
47175
46320
  /**
47176
46321
  * A transform from local space to global space.
47177
46322
  */
@@ -47236,6 +46381,21 @@ export class VoxelProvider {
47236
46381
  * The number of levels of detail containing available tiles in the tileset.
47237
46382
  */
47238
46383
  readonly availableLevels: number | undefined;
46384
+ /**
46385
+ * Requests the data for a given tile.
46386
+ * @param [options] - Object with the following properties:
46387
+ * @param [options.tileLevel = 0] - The tile's level.
46388
+ * @param [options.tileX = 0] - The tile's X coordinate.
46389
+ * @param [options.tileY = 0] - The tile's Y coordinate.
46390
+ * @param [options.tileZ = 0] - The tile's Z coordinate.
46391
+ * @returns A promise resolving to a VoxelContent containing the data for the tile, or undefined if the request could not be scheduled this frame.
46392
+ */
46393
+ requestData(options?: {
46394
+ tileLevel?: number;
46395
+ tileX?: number;
46396
+ tileY?: number;
46397
+ tileZ?: number;
46398
+ }): Promise<VoxelContent> | undefined;
47239
46399
  }
47240
46400
 
47241
46401
  /**
@@ -48227,24 +47387,6 @@ export class CesiumWidget {
48227
47387
  * unless <code>useDefaultRenderLoop</code> is set to false;
48228
47388
  */
48229
47389
  render(): void;
48230
- /**
48231
- * Adds a controller— an implementation of the {@link Controller} interface used to handle input events, camera animations, and other interactions— to the widget's scene.
48232
- * @example
48233
- * widget.scene.screenSpaceCameraController.enableInputs = false;
48234
- * widget.scene.screenSpaceCameraController.enableCollisionDetection = false;
48235
- *
48236
- * const tiltOrbitController = new Cesium.ScreenSpaceTiltOrbitCameraController();
48237
- * widget.addController(tiltOrbitController);
48238
- * @param controller - An implementation of the <code>Controller</code> interface.
48239
- */
48240
- addController(controller: Controller): void;
48241
- /**
48242
- * Removes a controller— an implementation of the {@link Controller} interface used to handle input events, camera animations, and other interactions— from the widget's scene.
48243
- * @example
48244
- * widget.removeController(tiltOrbitController);
48245
- * @param controller - An implementation of the <code>Controller</code> interface.
48246
- */
48247
- removeController(controller: Controller): void;
48248
47390
  /**
48249
47391
  * Asynchronously sets the camera to view the provided entity, entities, or data source.
48250
47392
  * If the data source is still in the process of loading or the visualization is otherwise still loading,