@cesium/engine 7.0.0 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/Build/ThirdParty/Workers/z-worker-pako.js +1 -5
  2. package/Build/Workers/{chunk-7XEAYGZK.js → chunk-24YTYWNB.js} +10 -10
  3. package/Build/Workers/{chunk-IQBYFRVW.js → chunk-2632RVPI.js} +7 -7
  4. package/Build/Workers/chunk-2KACWKS4.js +501 -0
  5. package/Build/Workers/{chunk-QZAD5O7I.js → chunk-2XPLH3JY.js} +7 -7
  6. package/Build/Workers/{chunk-JY5YEZFA.js → chunk-2ZBL3MVO.js} +8 -8
  7. package/Build/Workers/{chunk-ZK5JOS3D.js → chunk-3NCVAGDA.js} +14 -14
  8. package/Build/Workers/{chunk-AR5DNBJ4.js → chunk-5R6VWLMH.js} +6 -6
  9. package/Build/Workers/{chunk-PTQQUQC3.js → chunk-5TIV3L26.js} +13 -13
  10. package/Build/Workers/{chunk-BZP4T2JJ.js → chunk-6WF3KIF5.js} +10 -10
  11. package/Build/Workers/{chunk-5WQ523AW.js → chunk-73FKKY52.js} +5 -5
  12. package/Build/Workers/{chunk-F6SE42BK.js → chunk-7COR472O.js} +15 -472
  13. package/Build/Workers/{chunk-72SANQJV.js → chunk-ADOVHYWO.js} +9 -5
  14. package/Build/Workers/{chunk-5YLJ77FF.js → chunk-BCU2LH5T.js} +12 -11
  15. package/Build/Workers/{chunk-4EBHOMFX.js → chunk-C3XBUYBO.js} +17 -17
  16. package/Build/Workers/{chunk-IX2JCCNM.js → chunk-C6OI26DR.js} +1 -1
  17. package/Build/Workers/{chunk-2HJWSU7B.js → chunk-CO35JNNE.js} +4 -4
  18. package/Build/Workers/{chunk-OVLG3FRS.js → chunk-DGDUKCJJ.js} +6 -6
  19. package/Build/Workers/{chunk-DTAIXKTO.js → chunk-DPUSFA7S.js} +6 -6
  20. package/Build/Workers/{chunk-R5X4OQT4.js → chunk-E6WXPSJS.js} +7 -7
  21. package/Build/Workers/{chunk-VK3EJHWI.js → chunk-EOXYZ34O.js} +2 -2
  22. package/Build/Workers/{chunk-RAEV7K66.js → chunk-EPKE7GE3.js} +5 -5
  23. package/Build/Workers/{chunk-GV56Q4LU.js → chunk-GFA4SMXV.js} +11 -11
  24. package/Build/Workers/{chunk-NKPBIX7F.js → chunk-GXUXEOE2.js} +1 -1
  25. package/Build/Workers/{chunk-NY3K4IM3.js → chunk-HBQPB6IH.js} +12 -12
  26. package/Build/Workers/{chunk-6HZQPRUS.js → chunk-I37B3MZ2.js} +1 -1
  27. package/Build/Workers/{chunk-VRGFV2UO.js → chunk-L4BW3RUA.js} +10 -10
  28. package/Build/Workers/{chunk-6VJVYK2V.js → chunk-LAQP3SCC.js} +2 -2
  29. package/Build/Workers/{chunk-PNBGBETF.js → chunk-LQJ5FFFR.js} +10 -10
  30. package/Build/Workers/{chunk-UAEW6HKG.js → chunk-M2AYBTNH.js} +13 -13
  31. package/Build/Workers/{chunk-YUCVWAY6.js → chunk-MWV7IZK4.js} +7 -7
  32. package/Build/Workers/{chunk-JXDC723O.js → chunk-N4KXMWQU.js} +2 -2
  33. package/Build/Workers/{chunk-XWXM2O2R.js → chunk-NP2GYYE5.js} +6 -6
  34. package/Build/Workers/{chunk-GEJTYLCO.js → chunk-NZWNZA6S.js} +5 -5
  35. package/Build/Workers/{chunk-LZGHD6NY.js → chunk-P2YAAMT2.js} +15 -15
  36. package/Build/Workers/{chunk-S6SKF6DT.js → chunk-P4XKB3QZ.js} +5 -5
  37. package/Build/Workers/{chunk-U2VCRRQW.js → chunk-PXB7T27O.js} +6 -6
  38. package/Build/Workers/{chunk-RV7ZYPFT.js → chunk-QCQUZGXI.js} +4 -4
  39. package/Build/Workers/{chunk-JJ4VBOQ3.js → chunk-QKBGRKKG.js} +4 -4
  40. package/Build/Workers/{chunk-ODW7WYM4.js → chunk-RMOEYCZW.js} +2 -2
  41. package/Build/Workers/{chunk-ZUA2UUNV.js → chunk-RSJXEO2A.js} +2 -2
  42. package/Build/Workers/{chunk-UDO6BFSF.js → chunk-RV7ZOSS6.js} +13 -13
  43. package/Build/Workers/{chunk-LZ7JIV3K.js → chunk-SE4PXOEA.js} +17 -17
  44. package/Build/Workers/{chunk-S4MAZ3SS.js → chunk-SS4ESNE3.js} +2 -2
  45. package/Build/Workers/{chunk-AIPU2VSX.js → chunk-TJBU6GML.js} +6 -6
  46. package/Build/Workers/{chunk-5M3U6ZMA.js → chunk-TZORKRNK.js} +1 -1
  47. package/Build/Workers/{chunk-MY3VNFGQ.js → chunk-VR5RBW52.js} +7 -7
  48. package/Build/Workers/{chunk-FP6GYBFX.js → chunk-WHUSTDIB.js} +10 -10
  49. package/Build/Workers/{chunk-5HDYHG3F.js → chunk-X2F6BEPY.js} +13 -13
  50. package/Build/Workers/{chunk-WZU2YLWG.js → chunk-X6XOMPWL.js} +3 -3
  51. package/Build/Workers/{chunk-UGK3FCDY.js → chunk-YDVSBWEO.js} +1 -1
  52. package/Build/Workers/{chunk-46UD5ABS.js → chunk-YV4H2Y7M.js} +4 -4
  53. package/Build/Workers/{chunk-WBQCVXR3.js → chunk-Z7FQLK6N.js} +4 -4
  54. package/Build/Workers/{chunk-L2ZN645J.js → chunk-ZNVSKMQ2.js} +6 -6
  55. package/Build/Workers/{chunk-JCNXK6EL.js → chunk-ZYPTP7GS.js} +11 -11
  56. package/Build/Workers/combineGeometry.js +24 -23
  57. package/Build/Workers/createBoxGeometry.js +18 -17
  58. package/Build/Workers/createBoxOutlineGeometry.js +16 -15
  59. package/Build/Workers/createCircleGeometry.js +26 -25
  60. package/Build/Workers/createCircleOutlineGeometry.js +19 -18
  61. package/Build/Workers/createCoplanarPolygonGeometry.js +33 -32
  62. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +31 -30
  63. package/Build/Workers/createCorridorGeometry.js +29 -28
  64. package/Build/Workers/createCorridorOutlineGeometry.js +28 -27
  65. package/Build/Workers/createCylinderGeometry.js +20 -19
  66. package/Build/Workers/createCylinderOutlineGeometry.js +18 -17
  67. package/Build/Workers/createEllipseGeometry.js +26 -25
  68. package/Build/Workers/createEllipseOutlineGeometry.js +19 -18
  69. package/Build/Workers/createEllipsoidGeometry.js +19 -18
  70. package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -17
  71. package/Build/Workers/createFrustumGeometry.js +18 -17
  72. package/Build/Workers/createFrustumOutlineGeometry.js +18 -17
  73. package/Build/Workers/createGeometry.js +54 -33
  74. package/Build/Workers/createGroundPolylineGeometry.js +22 -21
  75. package/Build/Workers/createPlaneGeometry.js +16 -15
  76. package/Build/Workers/createPlaneOutlineGeometry.js +15 -14
  77. package/Build/Workers/createPolygonGeometry.js +33 -32
  78. package/Build/Workers/createPolygonOutlineGeometry.js +30 -29
  79. package/Build/Workers/createPolylineGeometry.js +25 -24
  80. package/Build/Workers/createPolylineVolumeGeometry.js +31 -30
  81. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +27 -26
  82. package/Build/Workers/createRectangleGeometry.js +27 -26
  83. package/Build/Workers/createRectangleOutlineGeometry.js +20 -19
  84. package/Build/Workers/createSimplePolylineGeometry.js +23 -22
  85. package/Build/Workers/createSphereGeometry.js +19 -18
  86. package/Build/Workers/createSphereOutlineGeometry.js +18 -17
  87. package/Build/Workers/createTaskProcessorWorker.js +3 -3
  88. package/Build/Workers/createVectorTileClampedPolylines.js +14 -14
  89. package/Build/Workers/createVectorTileGeometries.js +24 -23
  90. package/Build/Workers/createVectorTilePoints.js +12 -12
  91. package/Build/Workers/createVectorTilePolygons.js +22 -21
  92. package/Build/Workers/createVectorTilePolylines.js +14 -14
  93. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +22 -21
  94. package/Build/Workers/createVerticesFromHeightmap.js +22 -21
  95. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +19 -18
  96. package/Build/Workers/createWallGeometry.js +24 -23
  97. package/Build/Workers/createWallOutlineGeometry.js +23 -22
  98. package/Build/Workers/decodeDraco.js +11 -11
  99. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
  100. package/Build/Workers/decodeI3S.js +601 -92
  101. package/Build/Workers/transcodeKTX2.js +7 -7
  102. package/Build/Workers/transferTypedArrayTest.js +1 -1
  103. package/Build/Workers/upsampleQuantizedTerrainMesh.js +22 -21
  104. package/Source/Core/Check.d.ts +127 -0
  105. package/Source/Core/Check.js +0 -1
  106. package/Source/Core/Ellipsoid.js +6 -0
  107. package/Source/Core/Geometry.js +1 -1
  108. package/Source/Core/IntersectionTests.js +6 -3
  109. package/Source/Core/Ion.js +1 -1
  110. package/Source/Core/PixelFormat.js +5 -0
  111. package/Source/Core/PolygonGeometry.js +1 -1
  112. package/Source/Core/Transforms.js +3 -0
  113. package/Source/Core/VerticalExaggeration.js +2 -1
  114. package/Source/Core/srgbToLinear.js +32 -0
  115. package/Source/DataSources/CzmlDataSource.js +51 -23
  116. package/Source/DataSources/DataSourceDisplay.js +27 -0
  117. package/Source/DataSources/Entity.js +20 -2
  118. package/Source/DataSources/GeometryUpdaterSet.js +114 -0
  119. package/Source/DataSources/GeometryVisualizer.js +19 -83
  120. package/Source/Renderer/Context.js +10 -0
  121. package/Source/Renderer/ContextLimits.js +2 -0
  122. package/Source/Renderer/demodernizeShader.js +4 -1
  123. package/Source/Scene/ArcGisMapService.js +1 -1
  124. package/Source/Scene/Axis.js +12 -7
  125. package/Source/Scene/Billboard.js +32 -0
  126. package/Source/Scene/BillboardCollection.js +1 -1
  127. package/Source/Scene/BingMapsImageryProvider.js +4 -0
  128. package/Source/Scene/Camera.js +46 -4
  129. package/Source/Scene/Cesium3DTilesVoxelProvider.js +2 -9
  130. package/Source/Scene/Cesium3DTileset.js +10 -7
  131. package/Source/Scene/Cesium3DTilesetBaseTraversal.js +2 -4
  132. package/Source/Scene/FrameState.js +5 -0
  133. package/Source/Scene/Globe.js +0 -67
  134. package/Source/Scene/GlobeTranslucencyState.js +1 -1
  135. package/Source/Scene/GltfPipeline/updateVersion.js +69 -68
  136. package/Source/Scene/I3SDataProvider.js +270 -53
  137. package/Source/Scene/I3SDecoder.js +8 -1
  138. package/Source/Scene/I3SFeature.js +2 -5
  139. package/Source/Scene/I3SField.js +136 -31
  140. package/Source/Scene/I3SGeometry.js +70 -2
  141. package/Source/Scene/I3SLayer.js +55 -10
  142. package/Source/Scene/I3SNode.js +175 -18
  143. package/Source/Scene/I3SStatistics.js +94 -0
  144. package/Source/Scene/I3SSublayer.js +176 -0
  145. package/Source/Scene/I3SSymbology.js +337 -0
  146. package/Source/Scene/KeyframeNode.js +1 -1
  147. package/Source/Scene/Label.js +33 -0
  148. package/Source/Scene/LabelCollection.js +2 -1
  149. package/Source/Scene/Model/pickModel.js +25 -7
  150. package/Source/Scene/PickFramebuffer.js +37 -2
  151. package/Source/Scene/Picking.js +113 -39
  152. package/Source/Scene/Primitive.js +6 -5
  153. package/Source/Scene/Scene.js +126 -42
  154. package/Source/Scene/ScreenSpaceCameraController.js +21 -7
  155. package/Source/Scene/SensorVolumePortionToDisplay.js +69 -0
  156. package/Source/Scene/SpatialNode.js +12 -19
  157. package/Source/Scene/StructuralMetadata.js +1 -1
  158. package/Source/Scene/VoxelBoxShape.js +67 -6
  159. package/Source/Scene/VoxelCell.js +273 -0
  160. package/Source/Scene/VoxelCylinderShape.js +117 -163
  161. package/Source/Scene/VoxelEllipsoidShape.js +255 -304
  162. package/Source/Scene/VoxelPrimitive.js +109 -15
  163. package/Source/Scene/VoxelRenderResources.js +12 -3
  164. package/Source/Scene/VoxelShape.js +7 -4
  165. package/Source/Scene/VoxelTraversal.js +76 -54
  166. package/Source/Scene/buildVoxelDrawCommands.js +23 -0
  167. package/Source/Scene/createGooglePhotorealistic3DTileset.js +1 -0
  168. package/Source/Scene/processVoxelProperties.js +3 -0
  169. package/Source/Shaders/Voxels/IntersectBox.glsl +21 -47
  170. package/Source/Shaders/Voxels/IntersectBox.js +21 -47
  171. package/Source/Shaders/Voxels/IntersectClippingPlanes.glsl +1 -1
  172. package/Source/Shaders/Voxels/IntersectClippingPlanes.js +1 -1
  173. package/Source/Shaders/Voxels/IntersectCylinder.glsl +76 -203
  174. package/Source/Shaders/Voxels/IntersectCylinder.js +76 -203
  175. package/Source/Shaders/Voxels/IntersectEllipsoid.glsl +220 -229
  176. package/Source/Shaders/Voxels/IntersectEllipsoid.js +220 -229
  177. package/Source/Shaders/Voxels/IntersectLongitude.glsl +102 -0
  178. package/Source/Shaders/Voxels/IntersectLongitude.js +104 -0
  179. package/Source/Shaders/Voxels/IntersectionUtils.glsl +33 -11
  180. package/Source/Shaders/Voxels/IntersectionUtils.js +33 -11
  181. package/Source/Shaders/Voxels/Megatexture.glsl +1 -2
  182. package/Source/Shaders/Voxels/Megatexture.js +1 -2
  183. package/Source/Shaders/Voxels/Octree.glsl +14 -9
  184. package/Source/Shaders/Voxels/Octree.js +14 -9
  185. package/Source/Shaders/Voxels/VoxelFS.glsl +128 -40
  186. package/Source/Shaders/Voxels/VoxelFS.js +128 -40
  187. package/Source/Shaders/Voxels/VoxelUtils.glsl +31 -0
  188. package/Source/Shaders/Voxels/VoxelUtils.js +33 -0
  189. package/Source/Shaders/Voxels/convertUvToBox.glsl +24 -3
  190. package/Source/Shaders/Voxels/convertUvToBox.js +24 -4
  191. package/Source/Shaders/Voxels/convertUvToCylinder.glsl +64 -40
  192. package/Source/Shaders/Voxels/convertUvToCylinder.js +64 -40
  193. package/Source/Shaders/Voxels/convertUvToEllipsoid.glsl +100 -91
  194. package/Source/Shaders/Voxels/convertUvToEllipsoid.js +100 -91
  195. package/Source/ThirdParty/Workers/z-worker-pako.js +1 -1
  196. package/Source/Workers/createGeometry.js +40 -11
  197. package/Source/Workers/decodeI3S.js +720 -94
  198. package/index.d.ts +542 -40
  199. package/index.js +75 -66
  200. package/package.json +2 -2
package/index.d.ts CHANGED
@@ -2982,6 +2982,136 @@ export class CesiumTerrainProvider {
2982
2982
  loadTileDataAvailability(x: number, y: number, level: number): undefined | Promise<void>;
2983
2983
  }
2984
2984
 
2985
+
2986
+ /**
2987
+ * Contains functions for checking that supplied arguments are of a specified type
2988
+ * or meet specified conditions
2989
+ */
2990
+ export const Check: {
2991
+ /**
2992
+ * Throws if test is not defined
2993
+ *
2994
+ * @param {string} name The name of the variable being tested
2995
+ * @param {*} test The value that is to be checked
2996
+ * @exception {DeveloperError} test must be defined
2997
+ */
2998
+ defined<T>(name: string, test: T): asserts test is NonNullable<T>;
2999
+ /**
3000
+ * Contains type checking functions, all using the typeof operator
3001
+ */
3002
+ typeOf: {
3003
+ /**
3004
+ * Throws if test is not typeof 'string'
3005
+ *
3006
+ * @param {string} name The name of the variable being tested
3007
+ * @param {*} test The value to test
3008
+ * @exception {DeveloperError} test must be typeof 'string'
3009
+ */
3010
+ string(name: string, test: any): asserts test is string;
3011
+ /**
3012
+ * Throws if test is not typeof 'function'
3013
+ *
3014
+ * @param {string} name The name of the variable being tested
3015
+ * @param {*} test The value to test
3016
+ * @exception {DeveloperError} test must be typeof 'function'
3017
+ */
3018
+ func(name: string, test: any): asserts test is Function;
3019
+ /**
3020
+ * Throws if test is not typeof 'object'
3021
+ *
3022
+ * @param {string} name The name of the variable being tested
3023
+ * @param {*} test The value to test
3024
+ * @exception {DeveloperError} test must be typeof 'object'
3025
+ */
3026
+ object(name: string, test: any): asserts test is object;
3027
+ /**
3028
+ * Throws if test is not typeof 'boolean'
3029
+ *
3030
+ * @param {string} name The name of the variable being tested
3031
+ * @param {*} test The value to test
3032
+ * @exception {DeveloperError} test must be typeof 'boolean'
3033
+ */
3034
+ bool(name: string, test: any): asserts test is boolean;
3035
+ /**
3036
+ * Throws if test is not typeof 'bigint'
3037
+ *
3038
+ * @param {string} name The name of the variable being tested
3039
+ * @param {*} test The value to test
3040
+ * @exception {DeveloperError} test must be typeof 'bigint'
3041
+ */
3042
+ bigint(name: string, test: any): asserts test is bigint;
3043
+ /**
3044
+ * Throws if test is not typeof 'number'
3045
+ *
3046
+ * @param {string} name The name of the variable being tested
3047
+ * @param {*} test The value to test
3048
+ * @exception {DeveloperError} test must be typeof 'number'
3049
+ */
3050
+ number: {
3051
+ (name: string, test: any): void;
3052
+ /**
3053
+ * Throws if test is not typeof 'number' and less than limit
3054
+ *
3055
+ * @param {string} name The name of the variable being tested
3056
+ * @param {*} test The value to test
3057
+ * @param {number} limit The limit value to compare against
3058
+ * @exception {DeveloperError} test must be typeof 'number' and less than limit
3059
+ */
3060
+ lessThan(name: string, test: any, limit: number): asserts test is number;
3061
+ /**
3062
+ * Throws if test is not typeof 'number' and less than or equal to limit
3063
+ *
3064
+ * @param {string} name The name of the variable being tested
3065
+ * @param {*} test The value to test
3066
+ * @param {number} limit The limit value to compare against
3067
+ * @exception {DeveloperError} test must be typeof 'number' and less than or equal to limit
3068
+ */
3069
+ lessThanOrEquals(
3070
+ name: string,
3071
+ test: any,
3072
+ limit: number
3073
+ ): asserts test is number;
3074
+ /**
3075
+ * Throws if test is not typeof 'number' and greater than limit
3076
+ *
3077
+ * @param {string} name The name of the variable being tested
3078
+ * @param {*} test The value to test
3079
+ * @param {number} limit The limit value to compare against
3080
+ * @exception {DeveloperError} test must be typeof 'number' and greater than limit
3081
+ */
3082
+ greaterThan(
3083
+ name: string,
3084
+ test: any,
3085
+ limit: number
3086
+ ): asserts test is number;
3087
+ /**
3088
+ * Throws if test is not typeof 'number' and greater than or equal to limit
3089
+ *
3090
+ * @param {string} name The name of the variable being tested
3091
+ * @param {*} test The value to test
3092
+ * @param {number} limit The limit value to compare against
3093
+ * @exception {DeveloperError} test must be typeof 'number' and greater than or equal to limit
3094
+ */
3095
+ greaterThanOrEquals(
3096
+ name: string,
3097
+ test: any,
3098
+ limit: number
3099
+ ): asserts test is number;
3100
+ /**
3101
+ * Throws if test1 and test2 is not typeof 'number' and not equal in value
3102
+ *
3103
+ * @param {string} name1 The name of the first variable being tested
3104
+ * @param {string} name2 The name of the second variable being tested against
3105
+ * @param {*} test1 The value to test
3106
+ * @param {*} test2 The value to test against
3107
+ * @exception {DeveloperError} test1 and test2 should be type of 'number' and be equal in value
3108
+ */
3109
+ equals(name1: string, name2: string, test1: any, test2: any): void;
3110
+ };
3111
+ };
3112
+ };
3113
+
3114
+
2985
3115
  /**
2986
3116
  * A description of a circle on the ellipsoid. Circle geometry can be rendered with both {@link Primitive} and {@link GroundPrimitive}.
2987
3117
  * @example
@@ -6803,7 +6933,7 @@ export class Geometry {
6803
6933
  * <ul>
6804
6934
  * <li><code>position3DHigh</code> - High 32 bits for encoded 64-bit position computed with {@link GeometryPipeline.encodeAttribute}. 32-bit floating-point. 4 components per attribute.</li>
6805
6935
  * <li><code>position3DLow</code> - Low 32 bits for encoded 64-bit position computed with {@link GeometryPipeline.encodeAttribute}. 32-bit floating-point. 4 components per attribute.</li>
6806
- * <li><code>position3DHigh</code> - High 32 bits for encoded 64-bit 2D (Columbus view) position computed with {@link GeometryPipeline.encodeAttribute}. 32-bit floating-point. 4 components per attribute.</li>
6936
+ * <li><code>position2DHigh</code> - High 32 bits for encoded 64-bit 2D (Columbus view) position computed with {@link GeometryPipeline.encodeAttribute}. 32-bit floating-point. 4 components per attribute.</li>
6807
6937
  * <li><code>position2DLow</code> - Low 32 bits for encoded 64-bit 2D (Columbus view) position computed with {@link GeometryPipeline.encodeAttribute}. 32-bit floating-point. 4 components per attribute.</li>
6808
6938
  * <li><code>color</code> - RGBA color (normalized) usually from {@link GeometryInstance#color}. 32-bit floating-point. 4 components per attribute.</li>
6809
6939
  * <li><code>pickColor</code> - RGBA color used for picking. 32-bit floating-point. 4 components per attribute.</li>
@@ -18180,7 +18310,7 @@ export function defaultValue(a: any, b: any): any;
18180
18310
  * @param value - The object.
18181
18311
  * @returns Returns true if the object is defined, returns false otherwise.
18182
18312
  */
18183
- export function defined(value: any): boolean;
18313
+ export function defined<Type>(value: Type): value is NonNullable<Type>;
18184
18314
 
18185
18315
  /**
18186
18316
  * Destroys an object. Each of the object's functions, including functions in its prototype,
@@ -18426,6 +18556,18 @@ export function sampleTerrain(terrainProvider: TerrainProvider, level: number, p
18426
18556
  */
18427
18557
  export function sampleTerrainMostDetailed(terrainProvider: TerrainProvider, positions: Cartographic[], rejectOnTileFail?: boolean): Promise<Cartographic[]>;
18428
18558
 
18559
+ /**
18560
+ * Converts the value from sRGB color space to linear color space.
18561
+ * @example
18562
+ * const srgbColor = [0.5, 0.5, 0.5];
18563
+ * const linearColor = srgbColor.map(function (c) {
18564
+ * return Cesium.srgbToLinear(c);
18565
+ * });
18566
+ * @param value - The color value in sRGB color space.
18567
+ * @returns Returns the color value in linear color space.
18568
+ */
18569
+ export function srgbToLinear(value: number): number;
18570
+
18429
18571
  /**
18430
18572
  * Subdivides an array into a number of smaller, equal sized arrays.
18431
18573
  * @param array - The array to divide.
@@ -21386,6 +21528,8 @@ export class GeometryUpdater {
21386
21528
  destroy(): void;
21387
21529
  }
21388
21530
 
21531
+ export const geometryUpdaters: GeometryUpdater[];
21532
+
21389
21533
  /**
21390
21534
  * A general purpose visualizer for geometry represented by {@link Primitive} instances.
21391
21535
  * @param scene - The scene the primitives will be rendered in.
@@ -25670,6 +25814,63 @@ export enum Axis {
25670
25814
  Z = 2
25671
25815
  }
25672
25816
 
25817
+ export namespace Billboard {
25818
+ /**
25819
+ * Initialization options for the first param of Billboard constructor
25820
+ * @property position - The cartesian position of the billboard.
25821
+ * @property [id] - A user-defined object to return when the billboard is picked with {@link Scene#pick}.
25822
+ * @property [show = true] - Determines if this billboard will be shown.
25823
+ * @property [image] - A loaded HTMLImageElement, ImageData, or a url to an image to use for the billboard.
25824
+ * @property [scale = 1.0] - A number specifying the uniform scale that is multiplied with the billboard's image size in pixels.
25825
+ * @property [pixelOffset = Cartesian2.ZERO] - A {@link Cartesian2} Specifying the pixel offset in screen space from the origin of this billboard.
25826
+ * @property [eyeOffset = Cartesian3.ZERO] - A {@link Cartesian3} Specifying the 3D Cartesian offset applied to this billboard in eye coordinates.
25827
+ * @property [horizontalOrigin = HorizontalOrigin.CENTER] - A {@link HorizontalOrigin} Specifying the horizontal origin of this billboard.
25828
+ * @property [verticalOrigin = VerticalOrigin.CENTER] - A {@link VerticalOrigin} Specifying the vertical origin of this billboard.
25829
+ * @property [heightReference = HeightReference.NONE] - A {@link HeightReference} Specifying the height reference of this billboard.
25830
+ * @property [color = Color.WHITE] - A {@link Color} Specifying the color that is multiplied with the billboard's texture.
25831
+ * @property [rotation = 0] - A number specifying the rotation angle in radians.
25832
+ * @property [alignedAxis = Cartesian3.ZERO] - A {@link Cartesian3} Specifying the aligned axis in world space.
25833
+ * @property [sizeInMeters] - A boolean specifying if the billboard size is in meters or pixels.
25834
+ * @property [width] - A number specifying the width of the billboard. If undefined, the image width will be used.
25835
+ * @property [height] - A number specifying the height of the billboard. If undefined, the image height will be used.
25836
+ * @property [scaleByDistance] - A {@link NearFarScalar} Specifying near and far scaling properties of a Billboard based on the billboard's distance from the camera.
25837
+ * @property [translucencyByDistance] - A {@link NearFarScalar} Specifying near and far translucency properties of a Billboard based on the billboard's distance from the camera.
25838
+ * @property [pixelOffsetScaleByDistance] - A {@link NearFarScalar} Specifying near and far pixel offset scaling properties of a Billboard based on the billboard's distance from the camera.
25839
+ * @property [imageSubRegion] - A {@link BoundingRectangle} Specifying the sub-region of the image to use for the billboard, rather than the entire image.
25840
+ * @property [distanceDisplayCondition] - A {@link DistanceDisplayCondition} Specifying the distance from the camera at which this billboard will be displayed.
25841
+ * @property [disableDepthTestDistance] - A number specifying the distance from the camera at which to disable the depth test to, for example, prevent clipping against terrain.
25842
+ */
25843
+ type ConstructorOptions = {
25844
+ position: Cartesian3;
25845
+ id?: string;
25846
+ show?: boolean;
25847
+ image?: string | HTMLCanvasElement;
25848
+ scale?: number;
25849
+ pixelOffset?: Cartesian2;
25850
+ eyeOffset?: Cartesian3;
25851
+ horizontalOrigin?: HorizontalOrigin;
25852
+ verticalOrigin?: VerticalOrigin;
25853
+ heightReference?: HeightReference;
25854
+ color?: Color;
25855
+ rotation?: number;
25856
+ alignedAxis?: Cartesian3;
25857
+ sizeInMeters?: boolean;
25858
+ width?: number;
25859
+ height?: number;
25860
+ scaleByDistance?: NearFarScalar;
25861
+ translucencyByDistance?: NearFarScalar;
25862
+ pixelOffsetScaleByDistance?: NearFarScalar;
25863
+ imageSubRegion?: BoundingRectangle;
25864
+ distanceDisplayCondition?: DistanceDisplayCondition;
25865
+ disableDepthTestDistance?: number;
25866
+ };
25867
+ /**
25868
+ * A function that creates an image.
25869
+ * @param id - The identifier of the image to load.
25870
+ */
25871
+ type CreateImageCallback = (id: string) => HTMLImageElement | HTMLCanvasElement | Promise<HTMLImageElement | HTMLCanvasElement>;
25872
+ }
25873
+
25673
25874
  /**
25674
25875
  * <div class="notice">
25675
25876
  * A billboard is created and its initial
@@ -25682,9 +25883,11 @@ export enum Axis {
25682
25883
  * <img src='Images/Billboard.png' width='400' height='300' /><br />
25683
25884
  * Example billboards
25684
25885
  * </div>
25886
+ * @param options - Object describing initialization options
25887
+ * @param billboardCollection - Instance of BillboardCollection
25685
25888
  */
25686
25889
  export class Billboard {
25687
- constructor();
25890
+ constructor(options: Billboard.ConstructorOptions, billboardCollection: BillboardCollection);
25688
25891
  /**
25689
25892
  * Determines if this billboard will be shown. Use this to hide or show a billboard, instead
25690
25893
  * of removing it and re-adding it to the collection.
@@ -25987,14 +26190,6 @@ export class Billboard {
25987
26190
  equals(other: Billboard): boolean;
25988
26191
  }
25989
26192
 
25990
- export namespace Billboard {
25991
- /**
25992
- * A function that creates an image.
25993
- * @param id - The identifier of the image to load.
25994
- */
25995
- type CreateImageCallback = (id: string) => HTMLImageElement | HTMLCanvasElement | Promise<HTMLImageElement | HTMLCanvasElement>;
25996
- }
25997
-
25998
26193
  /**
25999
26194
  * A renderable collection of billboards. Billboards are viewport-aligned
26000
26195
  * images positioned in the 3D scene.
@@ -26128,7 +26323,7 @@ export class BillboardCollection {
26128
26323
  * @param [options] - A template describing the billboard's properties as shown in Example 1.
26129
26324
  * @returns The billboard that was added to the collection.
26130
26325
  */
26131
- add(options?: any): Billboard;
26326
+ add(options?: Billboard.ConstructorOptions): Billboard;
26132
26327
  /**
26133
26328
  * Removes a billboard from the collection.
26134
26329
  * @example
@@ -28769,7 +28964,7 @@ export namespace Cesium3DTileset {
28769
28964
  * @property [instanceFeatureIdLabel = "instanceFeatureId_0"] - Label of the instance feature ID set used for picking and styling. If instanceFeatureIdLabel is set to an integer N, it is converted to the string "instanceFeatureId_N" automatically. If both per-primitive and per-instance feature IDs are present, the instance feature IDs take priority.
28770
28965
  * @property [showCreditsOnScreen = false] - Whether to display the credits of this tileset on screen.
28771
28966
  * @property [splitDirection = SplitDirection.NONE] - The {@link SplitDirection} split to apply to this tileset.
28772
- * @property [disableCollision = false] - Whether to turn off collisions for camera collisions or picking. While this is <code>true</code> the camera will be allowed to go in or below the tileset surface if {@link ScreenSpaceCameraController#enableCollisionDetection} is true.
28967
+ * @property [enableCollision = false] - When <code>true</code>, enables collisions for camera or CPU picking. While this is <code>true</code> the camera will be prevented from going below the tileset surface if {@link ScreenSpaceCameraController#enableCollisionDetection} is true.
28773
28968
  * @property [projectTo2D = false] - Whether to accurately project the tileset to 2D. If this is true, the tileset will be projected accurately to 2D, but it will use more memory to do so. If this is false, the tileset will use less memory and will still render in 2D / CV mode, but its projected positions may be inaccurate. This cannot be set after the tileset has been created.
28774
28969
  * @property [enablePick = false] - Whether to allow collision and CPU picking with <code>pick</code> when using WebGL 1. If using WebGL 2 or above, this option will be ignored. If using WebGL 1 and this is true, the <code>pick</code> operation will work correctly, but it will use more memory to do so. If running with WebGL 1 and this is false, the model will use less memory, but <code>pick</code> will always return <code>undefined</code>. This cannot be set after the tileset has loaded.
28775
28970
  * @property [debugHeatmapTilePropertyName] - The tile variable to colorize as a heatmap. All rendered tiles will be colorized relative to each other's specified variable value.
@@ -28832,7 +29027,7 @@ export namespace Cesium3DTileset {
28832
29027
  instanceFeatureIdLabel?: string | number;
28833
29028
  showCreditsOnScreen?: boolean;
28834
29029
  splitDirection?: SplitDirection;
28835
- disableCollision?: boolean;
29030
+ enableCollision?: boolean;
28836
29031
  projectTo2D?: boolean;
28837
29032
  enablePick?: boolean;
28838
29033
  debugHeatmapTilePropertyName?: string;
@@ -28875,11 +29070,11 @@ export namespace Cesium3DTileset {
28875
29070
  * console.error(`Error creating tileset: ${error}`);
28876
29071
  * }
28877
29072
  * @example
28878
- * // Allow camera to go inside and under 3D tileset
29073
+ * // Turn on camera collisions with the tileset.
28879
29074
  * try {
28880
29075
  * const tileset = await Cesium.Cesium3DTileset.fromUrl(
28881
29076
  * "http://localhost:8002/tilesets/Seattle/tileset.json",
28882
- * { disableCollision: true }
29077
+ * { enableCollision: true }
28883
29078
  * );
28884
29079
  * scene.primitives.add(tileset);
28885
29080
  * } catch (error) {
@@ -29236,9 +29431,9 @@ export class Cesium3DTileset {
29236
29431
  */
29237
29432
  splitDirection: SplitDirection;
29238
29433
  /**
29239
- * Whether to turn off collisions for camera collisions or picking. While this is <code>true</code> the camera will be allowed to go in or below the tileset surface if {@link ScreenSpaceCameraController#enableCollisionDetection} is true.
29434
+ * If <code>true</code>, allows collisions for camera collisions or picking. While this is <code>true</code> the camera will be prevented from going in or below the tileset surface if {@link ScreenSpaceCameraController#enableCollisionDetection} is true. This can have performance implecations if the tileset contains tile with a larger number of vertices.
29240
29435
  */
29241
- disableCollision: boolean;
29436
+ enableCollision: boolean;
29242
29437
  /**
29243
29438
  * This property is for debugging only; it is not optimized for production use.
29244
29439
  * <p>
@@ -31518,20 +31713,6 @@ export class Globe {
31518
31713
  * Gets an event that's raised when the terrain provider is changed
31519
31714
  */
31520
31715
  readonly terrainProviderChanged: Event;
31521
- /**
31522
- * A scalar used to exaggerate the terrain. Defaults to <code>1.0</code> (no exaggeration).
31523
- * A value of <code>2.0</code> scales the terrain by 2x.
31524
- * A value of <code>0.0</code> makes the terrain completely flat.
31525
- * Note that terrain exaggeration will not modify any other primitive as they are positioned relative to the ellipsoid.
31526
- */
31527
- terrainExaggeration: number;
31528
- /**
31529
- * The height from which terrain is exaggerated. Defaults to <code>0.0</code> (scaled relative to ellipsoid surface).
31530
- * Terrain that is above this height will scale upwards and terrain that is below this height will scale downwards.
31531
- * Note that terrain exaggeration will not modify any other primitive as they are positioned relative to the ellipsoid.
31532
- * If {@link Globe#terrainExaggeration} is <code>1.0</code> this value will have no effect.
31533
- */
31534
- terrainExaggerationRelativeHeight: number;
31535
31716
  /**
31536
31717
  * Gets an event that's raised when the length of the tile load queue has changed since the last render frame. When the load queue is empty,
31537
31718
  * all terrain and imagery for the current view have been loaded. The event passes the new length of the tile load queue.
@@ -32617,18 +32798,41 @@ export enum HorizontalOrigin {
32617
32798
  export namespace I3SDataProvider {
32618
32799
  /**
32619
32800
  * Initialization options for the I3SDataProvider constructor
32801
+ * @example
32802
+ * // Increase LOD by reducing SSE
32803
+ * const cesium3dTilesetOptions = {
32804
+ * maximumScreenSpaceError: 1,
32805
+ * };
32806
+ * const i3sOptions = {
32807
+ * cesium3dTilesetOptions: cesium3dTilesetOptions,
32808
+ * };
32809
+ * @example
32810
+ * // Set a custom outline color to replace the color defined in I3S symbology
32811
+ * const cesium3dTilesetOptions = {
32812
+ * outlineColor: Cesium.Color.BLUE,
32813
+ * };
32814
+ * const i3sOptions = {
32815
+ * cesium3dTilesetOptions: cesium3dTilesetOptions,
32816
+ * applySymbology: true,
32817
+ * };
32620
32818
  * @property [name] - The name of the I3S dataset.
32621
32819
  * @property [show = true] - Determines if the dataset will be shown.
32622
32820
  * @property [geoidTiledTerrainProvider] - Tiled elevation provider describing an Earth Gravitational Model. If defined, geometry will be shifted based on the offsets given by this provider. Required to position I3S data sets with gravity-related height at the correct location.
32623
- * @property [traceFetches = false] - Debug option. When true, log a message whenever an I3S tile is fetched.
32624
32821
  * @property [cesium3dTilesetOptions] - Object containing options to pass to an internally created {@link Cesium3DTileset}. See {@link Cesium3DTileset} for list of valid properties. All options can be used with the exception of <code>url</code> and <code>show</code> which are overridden by values from I3SDataProvider.
32822
+ * @property [showFeatures = false] - Determines if the features will be shown.
32823
+ * @property [adjustMaterialAlphaMode = false] - The option to adjust the alpha mode of the material based on the transparency of the vertex color. When <code>true</code>, the alpha mode of the material (if not defined) will be set to BLEND for geometry with any transparency in the color vertex attribute.
32824
+ * @property [applySymbology = false] - Determines if the I3S symbology will be parsed and applied for the layers.
32825
+ * @property [calculateNormals = false] - Determines if the flat normals will be generated for I3S geometry without normals.
32625
32826
  */
32626
32827
  type ConstructorOptions = {
32627
32828
  name?: string;
32628
32829
  show?: boolean;
32629
32830
  geoidTiledTerrainProvider?: ArcGISTiledElevationTerrainProvider | Promise<ArcGISTiledElevationTerrainProvider>;
32630
- traceFetches?: boolean;
32631
32831
  cesium3dTilesetOptions?: Cesium3DTileset.ConstructorOptions;
32832
+ showFeatures?: boolean;
32833
+ adjustMaterialAlphaMode?: boolean;
32834
+ applySymbology?: boolean;
32835
+ calculateNormals?: boolean;
32632
32836
  };
32633
32837
  }
32634
32838
 
@@ -32675,10 +32879,6 @@ export class I3SDataProvider {
32675
32879
  * Determines if the dataset will be shown.
32676
32880
  */
32677
32881
  show: boolean;
32678
- /**
32679
- * Gets or sets debugging and tracing of I3S fetches.
32680
- */
32681
- traceFetches: boolean;
32682
32882
  /**
32683
32883
  * The terrain provider referencing the GEOID service to be used for orthometric to ellipsoidal conversion.
32684
32884
  */
@@ -32687,6 +32887,10 @@ export class I3SDataProvider {
32687
32887
  * Gets the collection of layers.
32688
32888
  */
32689
32889
  readonly layers: I3SLayer[];
32890
+ /**
32891
+ * Gets the collection of building sublayers.
32892
+ */
32893
+ readonly sublayers: I3SSublayer[];
32690
32894
  /**
32691
32895
  * Gets the I3S data for this object.
32692
32896
  */
@@ -32699,6 +32903,22 @@ export class I3SDataProvider {
32699
32903
  * The resource used to fetch the I3S dataset.
32700
32904
  */
32701
32905
  readonly resource: Resource;
32906
+ /**
32907
+ * Determines if the features will be shown.
32908
+ */
32909
+ readonly showFeatures: boolean;
32910
+ /**
32911
+ * Determines if the alpha mode of the material will be adjusted depending on the color vertex attribute.
32912
+ */
32913
+ readonly adjustMaterialAlphaMode: boolean;
32914
+ /**
32915
+ * Determines if the I3S symbology will be parsed and applied for the layers.
32916
+ */
32917
+ readonly applySymbology: boolean;
32918
+ /**
32919
+ * Determines if the flat normals will be generated for I3S geometry without normals.
32920
+ */
32921
+ readonly calculateNormals: boolean;
32702
32922
  /**
32703
32923
  * Destroys the WebGL resources held by this object. Destroying an object allows for deterministic
32704
32924
  * release of WebGL resources, instead of relying on the garbage collector to destroy this object.
@@ -32747,6 +32967,23 @@ export class I3SDataProvider {
32747
32967
  * @param options - An object describing initialization options
32748
32968
  */
32749
32969
  static fromUrl(url: string | Resource, options: I3SDataProvider.ConstructorOptions): Promise<I3SDataProvider>;
32970
+ /**
32971
+ * Returns the collection of names for all available attributes
32972
+ * @returns The collection of attribute names
32973
+ */
32974
+ getAttributeNames(): string[];
32975
+ /**
32976
+ * Returns the collection of values for the attribute with the given name
32977
+ * @param name - The attribute name
32978
+ * @returns The collection of attribute values
32979
+ */
32980
+ getAttributeValues(name: string): string[];
32981
+ /**
32982
+ * Filters the drawn elements of a scene to specific attribute names and values
32983
+ * @param [filters = []] - The collection of attribute filters
32984
+ * @returns A promise that is resolved when the filter is applied
32985
+ */
32986
+ filterByAttributes(filters?: I3SNode.AttributeFilter[]): Promise<void>;
32750
32987
  }
32751
32988
 
32752
32989
  /**
@@ -32871,6 +33108,25 @@ export class I3SLayer {
32871
33108
  * When <code>true</code>, when the loaded I3S version is 1.6 or older
32872
33109
  */
32873
33110
  readonly legacyVersion16: boolean;
33111
+ /**
33112
+ * Filters the drawn elements of a layer to specific attribute names and values
33113
+ * @param [filters = []] - The collection of attribute filters
33114
+ * @returns A promise that is resolved when the filter is applied
33115
+ */
33116
+ filterByAttributes(filters?: I3SNode.AttributeFilter[]): Promise<void>;
33117
+ }
33118
+
33119
+ export namespace I3SNode {
33120
+ /**
33121
+ * A filter given by an attribute name and values.
33122
+ * The 3D feature object should be hidden if its value for the attribute name is not specified in the collection of values.
33123
+ * @property name - The name of the attribute
33124
+ * @property values - The collection of values
33125
+ */
33126
+ type AttributeFilter = {
33127
+ name: string;
33128
+ values: string[] | number[];
33129
+ };
32874
33130
  }
32875
33131
 
32876
33132
  /**
@@ -32922,6 +33178,12 @@ export class I3SNode {
32922
33178
  * @returns A promise that is resolved when the I3S Node fields are loaded
32923
33179
  */
32924
33180
  loadFields(): Promise<void>;
33181
+ /**
33182
+ * Loads the node field.
33183
+ * @param name - The field name
33184
+ * @returns A promise that is resolved when the I3S Node field is loaded
33185
+ */
33186
+ loadField(name: string): Promise<void>;
32925
33187
  /**
32926
33188
  * Returns the fields for a given picked position
32927
33189
  * @param pickedPosition - The picked position
@@ -32936,6 +33198,80 @@ export class I3SNode {
32936
33198
  getFieldsForFeature(featureIndex: number): any;
32937
33199
  }
32938
33200
 
33201
+ /**
33202
+ * This class implements an I3S statistics for Building Scene Layer.
33203
+ * <p>
33204
+ * Do not construct this directly, instead access statistics through {@link I3SDataProvider}.
33205
+ * </p>
33206
+ */
33207
+ export class I3SStatistics {
33208
+ constructor();
33209
+ /**
33210
+ * Gets the resource for the statistics
33211
+ */
33212
+ readonly resource: Resource;
33213
+ /**
33214
+ * Gets the I3S data for this object.
33215
+ */
33216
+ readonly data: any;
33217
+ /**
33218
+ * Gets the collection of attribute names.
33219
+ */
33220
+ readonly names: string[];
33221
+ }
33222
+
33223
+ /**
33224
+ * This class implements an I3S sublayer for Building Scene Layer.
33225
+ * <p>
33226
+ * This object is normally not instantiated directly, use {@link I3SSublayer.fromData}.
33227
+ * </p>
33228
+ */
33229
+ export class I3SSublayer {
33230
+ constructor();
33231
+ /**
33232
+ * Gets the resource for the sublayer
33233
+ */
33234
+ readonly resource: Resource;
33235
+ /**
33236
+ * Gets the I3S data for this object.
33237
+ */
33238
+ readonly data: any;
33239
+ /**
33240
+ * Gets the name for the sublayer.
33241
+ */
33242
+ readonly name: string;
33243
+ /**
33244
+ * Gets the model name for the sublayer.
33245
+ */
33246
+ readonly modelName: string;
33247
+ /**
33248
+ * Gets the collection of child sublayers.
33249
+ */
33250
+ readonly sublayers: I3SSublayer[];
33251
+ /**
33252
+ * Gets or sets the sublayer visibility.
33253
+ */
33254
+ visibility: boolean;
33255
+ /**
33256
+ * Determines if the sublayer will be shown.
33257
+ */
33258
+ readonly show: boolean;
33259
+ }
33260
+
33261
+ /**
33262
+ * This class implements an I3S symbology for I3S Layers.
33263
+ * <p>
33264
+ * Do not construct this directly, instead access symbology through {@link I3SLayer}.
33265
+ * </p>
33266
+ */
33267
+ export class I3SSymbology {
33268
+ constructor();
33269
+ /**
33270
+ * Gets the default symbology data.
33271
+ */
33272
+ readonly defaultSymbology: any;
33273
+ }
33274
+
32939
33275
  /**
32940
33276
  * Properties for managing image-based lighting on tilesets and models.
32941
33277
  * Also manages the necessary resources and textures.
@@ -33845,13 +34181,69 @@ export enum IonWorldImageryStyle {
33845
34181
  ROAD = 4
33846
34182
  }
33847
34183
 
34184
+ export namespace Label {
34185
+ /**
34186
+ * Initialization options for the Label constructor
34187
+ * @property position - The cartesian position of the label.
34188
+ * @property [id] - A user-defined object to return when the label is picked with {@link Scene#pick}.
34189
+ * @property [show = true] - Determines if this label will be shown.
34190
+ * @property [text] - A string specifying the text of the label.
34191
+ * @property [font = '30px sans-serif'] - A string specifying the font used to draw this label. Fonts are specified using the same syntax as the CSS 'font' property.
34192
+ * @property [style = LabelStyle.FILL] - A {@link LabelStyle} specifying the style of the label.
34193
+ * @property [scale = 1.0] - A number specifying the uniform scale that is multiplied with the label size.
34194
+ * @property [showBackground = false] - Determines if a background behind this label will be shown.
34195
+ * @property [backgroundColor = new Color(0.165, 0.165, 0.165, 0.8)] - A {@link Color} specifying the background color of the label.
34196
+ * @property [backgroundPadding = new Cartesian2(7, 5)] - A {@link Cartesian2} Specifying the horizontal and vertical background padding in pixels.
34197
+ * @property [pixelOffset = Cartesian2.ZERO] - A {@link Cartesian2} specifying the pixel offset in screen space from the origin of this label.
34198
+ * @property [eyeOffset = Cartesian3.ZERO] - A {@link Cartesian3} specifying the 3D Cartesian offset applied to this label in eye coordinates.
34199
+ * @property [horizontalOrigin = HorizontalOrigin.CENTER] - A {@link HorizontalOrigin} specifying the horizontal origin of this label.
34200
+ * @property [verticalOrigin = VerticalOrigin.CENTER] - A {@link VerticalOrigin} specifying the vertical origin of this label.
34201
+ * @property [heightReference = HeightReference.NONE] - A {@link HeightReference} specifying the height reference of this label.
34202
+ * @property [fillColor = Color.WHITE] - A {@link Color} specifying the fill color of the label.
34203
+ * @property [outlineColor = Color.BLACK] - A {@link Color} specifying the outline color of the label.
34204
+ * @property [outlineWidth = 1.0] - A number specifying the outline width of the label.
34205
+ * @property [translucencyByDistance] - A {@link NearFarScalar} specifying near and far translucency properties of the label based on the label's distance from the camera.
34206
+ * @property [pixelOffsetScaleByDistance] - A {@link NearFarScalar} specifying near and far pixel offset scaling properties of the label based on the label's distance from the camera.
34207
+ * @property [scaleByDistance] - A {@link NearFarScalar} specifying near and far scaling properties of the label based on the label's distance from the camera.
34208
+ * @property [distanceDisplayCondition] - A {@link DistanceDisplayCondition} specifying at what distance from the camera that this label will be displayed.
34209
+ * @property [disableDepthTestDistance] - A number specifying the distance from the camera at which to disable the depth test to, for example, prevent clipping against terrain.
34210
+ */
34211
+ type ConstructorOptions = {
34212
+ position: Cartesian3;
34213
+ id?: string;
34214
+ show?: boolean;
34215
+ text?: string;
34216
+ font?: string;
34217
+ style?: LabelStyle;
34218
+ scale?: number;
34219
+ showBackground?: boolean;
34220
+ backgroundColor?: Color;
34221
+ backgroundPadding?: Cartesian2;
34222
+ pixelOffset?: Cartesian2;
34223
+ eyeOffset?: Cartesian3;
34224
+ horizontalOrigin?: HorizontalOrigin;
34225
+ verticalOrigin?: VerticalOrigin;
34226
+ heightReference?: HeightReference;
34227
+ fillColor?: Color;
34228
+ outlineColor?: Color;
34229
+ outlineWidth?: number;
34230
+ translucencyByDistance?: NearFarScalar;
34231
+ pixelOffsetScaleByDistance?: NearFarScalar;
34232
+ scaleByDistance?: NearFarScalar;
34233
+ distanceDisplayCondition?: DistanceDisplayCondition;
34234
+ disableDepthTestDistance?: number;
34235
+ };
34236
+ }
34237
+
33848
34238
  /**
33849
34239
  * <div class="notice">
33850
34240
  * Create labels by calling {@link LabelCollection#add}. Do not call the constructor directly.
33851
34241
  * </div>
34242
+ * @param options - Object describing initialization options
34243
+ * @param labelCollection - Instance of LabelCollection
33852
34244
  */
33853
34245
  export class Label {
33854
- constructor();
34246
+ constructor(options: Label.ConstructorOptions, labelCollection: LabelCollection);
33855
34247
  /**
33856
34248
  * Determines if this label will be shown. Use this to hide or show a label, instead
33857
34249
  * of removing it and re-adding it to the collection.
@@ -34236,7 +34628,7 @@ export class LabelCollection {
34236
34628
  * @param [options] - A template describing the label's properties as shown in Example 1.
34237
34629
  * @returns The label that was added to the collection.
34238
34630
  */
34239
- add(options?: any): Label;
34631
+ add(options?: Label.ConstructorOptions): Label;
34240
34632
  /**
34241
34633
  * Removes a label from the collection. Once removed, a label is no longer usable.
34242
34634
  * @example
@@ -39600,6 +39992,11 @@ export class Scene {
39600
39992
  * The light source for shading. Defaults to a directional light from the Sun.
39601
39993
  */
39602
39994
  light: Light;
39995
+ /**
39996
+ * Use this to set the default value for {@link Scene#logarithmicDepthBuffer} in newly constructed Scenes
39997
+ * This property relies on fragmentDepth being supported.
39998
+ */
39999
+ static defaultLogDepthBuffer: any;
39603
40000
  /**
39604
40001
  * Gets the canvas element to which this scene is bound.
39605
40002
  */
@@ -39827,6 +40224,23 @@ export class Scene {
39827
40224
  * @returns Object containing the picked primitive.
39828
40225
  */
39829
40226
  pick(windowPosition: Cartesian2, width?: number, height?: number): any;
40227
+ /**
40228
+ * Returns a {@link VoxelCell} for the voxel sample rendered at a particular window coordinate,
40229
+ * or undefined if no voxel is rendered at that position.
40230
+ * @example
40231
+ * On left click, report the value of the "color" property at that voxel sample.
40232
+ * handler.setInputAction(function(movement) {
40233
+ * const voxelCell = scene.pickVoxel(movement.position);
40234
+ * if (defined(voxelCell)) {
40235
+ * console.log(voxelCell.getProperty("color"));
40236
+ * }
40237
+ * }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
40238
+ * @param windowPosition - Window coordinates to perform picking on.
40239
+ * @param [width = 3] - Width of the pick rectangle.
40240
+ * @param [height = 3] - Height of the pick rectangle.
40241
+ * @returns Information about the voxel cell rendered at the picked position.
40242
+ */
40243
+ pickVoxel(windowPosition: Cartesian2, width?: number, height?: number): VoxelCell | undefined;
39830
40244
  /**
39831
40245
  * Returns the cartesian position reconstructed from the depth buffer and window position.
39832
40246
  * <p>
@@ -40239,6 +40653,24 @@ export class ScreenSpaceCameraController {
40239
40653
  destroy(): void;
40240
40654
  }
40241
40655
 
40656
+ /**
40657
+ * Constants used to indicated what part of the sensor volume to display.
40658
+ */
40659
+ export enum SensorVolumePortionToDisplay {
40660
+ /**
40661
+ * 0x0000. Display the complete sensor volume.
40662
+ */
40663
+ COMPLETE = 0,
40664
+ /**
40665
+ * 0x0001. Display the portion of the sensor volume that lies below the true horizon of the ellipsoid.
40666
+ */
40667
+ BELOW_ELLIPSOID_HORIZON = 1,
40668
+ /**
40669
+ * 0x0002. Display the portion of the sensor volume that lies above the true horizon of the ellipsoid.
40670
+ */
40671
+ ABOVE_ELLIPSOID_HORIZON = 2
40672
+ }
40673
+
40242
40674
  /**
40243
40675
  * <div class="notice">
40244
40676
  * Use {@link Viewer#shadowMap} to get the scene's shadow map. Do not construct this directly.
@@ -41730,6 +42162,76 @@ export class ViewportQuad {
41730
42162
  destroy(): void;
41731
42163
  }
41732
42164
 
42165
+ /**
42166
+ * A cell from a {@link VoxelPrimitive}.
42167
+ * <p>
42168
+ * Provides access to properties associated with one cell of a voxel primitive.
42169
+ * </p>
42170
+ * <p>
42171
+ * Do not construct this directly. Access it through picking using {@link Scene#pickVoxel}.
42172
+ * </p>
42173
+ * @example
42174
+ * // On left click, display all the properties for a voxel cell in the console log.
42175
+ * handler.setInputAction(function(movement) {
42176
+ * const voxelCell = scene.pickVoxel(movement.position);
42177
+ * if (voxelCell instanceof Cesium.VoxelCell) {
42178
+ * const propertyIds = voxelCell.getPropertyIds();
42179
+ * const length = propertyIds.length;
42180
+ * for (let i = 0; i < length; ++i) {
42181
+ * const propertyId = propertyIds[i];
42182
+ * console.log(`{propertyId}: ${voxelCell.getProperty(propertyId)}`);
42183
+ * }
42184
+ * }
42185
+ * }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
42186
+ * @param primitive - The voxel primitive containing the cell
42187
+ * @param tileIndex - The index of the tile
42188
+ * @param sampleIndex - The index of the sample within the tile, containing metadata for this cell
42189
+ */
42190
+ export class VoxelCell {
42191
+ constructor(primitive: VoxelPrimitive, tileIndex: number, sampleIndex: number);
42192
+ /**
42193
+ * All objects returned by {@link Scene#pick} have a <code>primitive</code> property. This returns
42194
+ * the VoxelPrimitive containing the cell.
42195
+ */
42196
+ readonly primitive: VoxelPrimitive;
42197
+ /**
42198
+ * Get the sample index of the cell.
42199
+ */
42200
+ readonly sampleIndex: number;
42201
+ /**
42202
+ * Get the index of the tile containing the cell.
42203
+ */
42204
+ readonly tileIndex: number;
42205
+ /**
42206
+ * Get a copy of the oriented bounding box containing the cell.
42207
+ */
42208
+ readonly orientedBoundingBox: OrientedBoundingBox;
42209
+ /**
42210
+ * Returns <code>true</code> if the feature contains this property.
42211
+ * @param name - The case-sensitive name of the property.
42212
+ * @returns Whether the feature contains this property.
42213
+ */
42214
+ hasProperty(name: string): boolean;
42215
+ /**
42216
+ * Returns an array of metadata property names for the feature.
42217
+ * @returns The IDs of the feature's properties.
42218
+ */
42219
+ getNames(): string[];
42220
+ /**
42221
+ * Returns a copy of the value of the metadata in the cell with the given name.
42222
+ * @example
42223
+ * // Display all the properties for a voxel cell in the console log.
42224
+ * const names = voxelCell.getNames();
42225
+ * for (let i = 0; i < names.length; ++i) {
42226
+ * const name = names[i];
42227
+ * console.log(`{name}: ${voxelCell.getProperty(name)}`);
42228
+ * }
42229
+ * @param name - The case-sensitive name of the property.
42230
+ * @returns The value of the property or <code>undefined</code> if the feature does not have this property.
42231
+ */
42232
+ getProperty(name: string): any;
42233
+ }
42234
+
41733
42235
  /**
41734
42236
  * A primitive that renders voxel data from a {@link VoxelProvider}.
41735
42237
  * @param [options] - Object with the following properties: