@cesium/engine 7.0.0 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/Build/Workers/{chunk-MY3VNFGQ.js → chunk-23UFSGND.js} +7 -7
  2. package/Build/Workers/{chunk-IQBYFRVW.js → chunk-2A75IWRS.js} +7 -7
  3. package/Build/Workers/{chunk-VRGFV2UO.js → chunk-2FRVPMCS.js} +10 -10
  4. package/Build/Workers/{chunk-46UD5ABS.js → chunk-2FWRMUTY.js} +4 -4
  5. package/Build/Workers/{chunk-DTAIXKTO.js → chunk-2UPKWTMJ.js} +6 -6
  6. package/Build/Workers/{chunk-6VJVYK2V.js → chunk-34FXV7D7.js} +2 -2
  7. package/Build/Workers/{chunk-ODW7WYM4.js → chunk-3VAZEH7M.js} +2 -2
  8. package/Build/Workers/{chunk-U2VCRRQW.js → chunk-4DO5W5XZ.js} +6 -6
  9. package/Build/Workers/{chunk-VK3EJHWI.js → chunk-4H7PY4U5.js} +2 -2
  10. package/Build/Workers/{chunk-RV7ZYPFT.js → chunk-5QULIR53.js} +4 -4
  11. package/Build/Workers/{chunk-JY5YEZFA.js → chunk-7TC63SJW.js} +8 -8
  12. package/Build/Workers/{chunk-JJ4VBOQ3.js → chunk-7ZFGPDJA.js} +4 -4
  13. package/Build/Workers/{chunk-FP6GYBFX.js → chunk-A5DWLWCY.js} +10 -10
  14. package/Build/Workers/{chunk-5M3U6ZMA.js → chunk-BBWDMCVU.js} +1 -1
  15. package/Build/Workers/{chunk-WZU2YLWG.js → chunk-BG4UCVXN.js} +3 -3
  16. package/Build/Workers/{chunk-5WQ523AW.js → chunk-BIKA3NRA.js} +5 -5
  17. package/Build/Workers/{chunk-PTQQUQC3.js → chunk-BROJAZRZ.js} +13 -13
  18. package/Build/Workers/{chunk-YUCVWAY6.js → chunk-DDUQAJ4P.js} +7 -7
  19. package/Build/Workers/{chunk-2HJWSU7B.js → chunk-EERJKOAF.js} +4 -4
  20. package/Build/Workers/{chunk-LZGHD6NY.js → chunk-EG6PTBY2.js} +15 -15
  21. package/Build/Workers/{chunk-IX2JCCNM.js → chunk-EHWHNOEX.js} +1 -1
  22. package/Build/Workers/{chunk-NKPBIX7F.js → chunk-F3YA3Y2Z.js} +1 -1
  23. package/Build/Workers/{chunk-L2ZN645J.js → chunk-F4HFJMGM.js} +6 -6
  24. package/Build/Workers/{chunk-F6SE42BK.js → chunk-FJKNFAKQ.js} +15 -472
  25. package/Build/Workers/{chunk-PNBGBETF.js → chunk-FNIRWHJB.js} +10 -10
  26. package/Build/Workers/{chunk-RAEV7K66.js → chunk-FZRIVR7Y.js} +5 -5
  27. package/Build/Workers/{chunk-AIPU2VSX.js → chunk-G43QFN4Q.js} +6 -6
  28. package/Build/Workers/{chunk-ZUA2UUNV.js → chunk-GATZHF3K.js} +2 -2
  29. package/Build/Workers/{chunk-ZK5JOS3D.js → chunk-GRC2ZTAF.js} +14 -14
  30. package/Build/Workers/{chunk-5YLJ77FF.js → chunk-HU6N6EXB.js} +10 -10
  31. package/Build/Workers/{chunk-4EBHOMFX.js → chunk-I46ZRR5W.js} +17 -17
  32. package/Build/Workers/{chunk-LZ7JIV3K.js → chunk-JURN7NPV.js} +17 -17
  33. package/Build/Workers/{chunk-JCNXK6EL.js → chunk-KKCR2YOP.js} +11 -11
  34. package/Build/Workers/{chunk-S6SKF6DT.js → chunk-LPR3YNP2.js} +5 -5
  35. package/Build/Workers/{chunk-UDO6BFSF.js → chunk-M7ERACJJ.js} +13 -13
  36. package/Build/Workers/{chunk-BZP4T2JJ.js → chunk-MDWEGWPA.js} +10 -10
  37. package/Build/Workers/{chunk-72SANQJV.js → chunk-OGXZVPPM.js} +9 -5
  38. package/Build/Workers/{chunk-AR5DNBJ4.js → chunk-PGSJK77E.js} +6 -6
  39. package/Build/Workers/{chunk-GEJTYLCO.js → chunk-PPH7OFP3.js} +5 -5
  40. package/Build/Workers/{chunk-OVLG3FRS.js → chunk-SH5USDPI.js} +6 -6
  41. package/Build/Workers/{chunk-6HZQPRUS.js → chunk-SOWMRMWA.js} +1 -1
  42. package/Build/Workers/{chunk-JXDC723O.js → chunk-STW2DGFI.js} +2 -2
  43. package/Build/Workers/{chunk-5HDYHG3F.js → chunk-T3XIFPYR.js} +13 -13
  44. package/Build/Workers/chunk-TTUZP4BO.js +501 -0
  45. package/Build/Workers/{chunk-7XEAYGZK.js → chunk-UEXTBDBE.js} +10 -10
  46. package/Build/Workers/{chunk-GV56Q4LU.js → chunk-VOXYEYJT.js} +11 -11
  47. package/Build/Workers/{chunk-NY3K4IM3.js → chunk-X4356LRH.js} +12 -12
  48. package/Build/Workers/{chunk-S4MAZ3SS.js → chunk-XGI5BXZY.js} +2 -2
  49. package/Build/Workers/{chunk-UAEW6HKG.js → chunk-Y2ME2IJV.js} +13 -13
  50. package/Build/Workers/{chunk-XWXM2O2R.js → chunk-Y5UQJLYE.js} +6 -6
  51. package/Build/Workers/{chunk-QZAD5O7I.js → chunk-YJEBABKH.js} +7 -7
  52. package/Build/Workers/{chunk-UGK3FCDY.js → chunk-YWTJ2B4B.js} +1 -1
  53. package/Build/Workers/{chunk-R5X4OQT4.js → chunk-Z3TIFFGF.js} +7 -7
  54. package/Build/Workers/{chunk-WBQCVXR3.js → chunk-ZT7KWISZ.js} +4 -4
  55. package/Build/Workers/combineGeometry.js +24 -23
  56. package/Build/Workers/createBoxGeometry.js +18 -17
  57. package/Build/Workers/createBoxOutlineGeometry.js +16 -15
  58. package/Build/Workers/createCircleGeometry.js +26 -25
  59. package/Build/Workers/createCircleOutlineGeometry.js +19 -18
  60. package/Build/Workers/createCoplanarPolygonGeometry.js +33 -32
  61. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +31 -30
  62. package/Build/Workers/createCorridorGeometry.js +29 -28
  63. package/Build/Workers/createCorridorOutlineGeometry.js +28 -27
  64. package/Build/Workers/createCylinderGeometry.js +20 -19
  65. package/Build/Workers/createCylinderOutlineGeometry.js +18 -17
  66. package/Build/Workers/createEllipseGeometry.js +26 -25
  67. package/Build/Workers/createEllipseOutlineGeometry.js +19 -18
  68. package/Build/Workers/createEllipsoidGeometry.js +19 -18
  69. package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -17
  70. package/Build/Workers/createFrustumGeometry.js +18 -17
  71. package/Build/Workers/createFrustumOutlineGeometry.js +18 -17
  72. package/Build/Workers/createGeometry.js +54 -33
  73. package/Build/Workers/createGroundPolylineGeometry.js +22 -21
  74. package/Build/Workers/createPlaneGeometry.js +16 -15
  75. package/Build/Workers/createPlaneOutlineGeometry.js +15 -14
  76. package/Build/Workers/createPolygonGeometry.js +32 -31
  77. package/Build/Workers/createPolygonOutlineGeometry.js +30 -29
  78. package/Build/Workers/createPolylineGeometry.js +25 -24
  79. package/Build/Workers/createPolylineVolumeGeometry.js +31 -30
  80. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +27 -26
  81. package/Build/Workers/createRectangleGeometry.js +27 -26
  82. package/Build/Workers/createRectangleOutlineGeometry.js +20 -19
  83. package/Build/Workers/createSimplePolylineGeometry.js +23 -22
  84. package/Build/Workers/createSphereGeometry.js +19 -18
  85. package/Build/Workers/createSphereOutlineGeometry.js +18 -17
  86. package/Build/Workers/createTaskProcessorWorker.js +3 -3
  87. package/Build/Workers/createVectorTileClampedPolylines.js +14 -14
  88. package/Build/Workers/createVectorTileGeometries.js +24 -23
  89. package/Build/Workers/createVectorTilePoints.js +12 -12
  90. package/Build/Workers/createVectorTilePolygons.js +22 -21
  91. package/Build/Workers/createVectorTilePolylines.js +14 -14
  92. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +22 -21
  93. package/Build/Workers/createVerticesFromHeightmap.js +22 -21
  94. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +19 -18
  95. package/Build/Workers/createWallGeometry.js +24 -23
  96. package/Build/Workers/createWallOutlineGeometry.js +23 -22
  97. package/Build/Workers/decodeDraco.js +11 -11
  98. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
  99. package/Build/Workers/decodeI3S.js +601 -92
  100. package/Build/Workers/transcodeKTX2.js +7 -7
  101. package/Build/Workers/transferTypedArrayTest.js +1 -1
  102. package/Build/Workers/upsampleQuantizedTerrainMesh.js +22 -21
  103. package/Source/Core/Ellipsoid.js +6 -0
  104. package/Source/Core/IntersectionTests.js +6 -3
  105. package/Source/Core/Ion.js +1 -1
  106. package/Source/Core/PixelFormat.js +5 -0
  107. package/Source/Core/Transforms.js +3 -0
  108. package/Source/Core/srgbToLinear.js +32 -0
  109. package/Source/DataSources/CzmlDataSource.js +51 -23
  110. package/Source/DataSources/DataSourceDisplay.js +27 -0
  111. package/Source/DataSources/Entity.js +20 -2
  112. package/Source/DataSources/GeometryUpdaterSet.js +114 -0
  113. package/Source/DataSources/GeometryVisualizer.js +19 -83
  114. package/Source/Renderer/Context.js +10 -0
  115. package/Source/Renderer/ContextLimits.js +2 -0
  116. package/Source/Renderer/demodernizeShader.js +4 -1
  117. package/Source/Scene/ArcGisMapService.js +1 -1
  118. package/Source/Scene/Axis.js +12 -7
  119. package/Source/Scene/Camera.js +46 -4
  120. package/Source/Scene/Cesium3DTileset.js +44 -6
  121. package/Source/Scene/Cesium3DTilesetBaseTraversal.js +2 -4
  122. package/Source/Scene/FrameState.js +5 -0
  123. package/Source/Scene/GlobeTranslucencyState.js +1 -1
  124. package/Source/Scene/GltfPipeline/updateVersion.js +69 -68
  125. package/Source/Scene/I3SDataProvider.js +270 -53
  126. package/Source/Scene/I3SDecoder.js +8 -1
  127. package/Source/Scene/I3SFeature.js +2 -5
  128. package/Source/Scene/I3SField.js +136 -31
  129. package/Source/Scene/I3SGeometry.js +70 -2
  130. package/Source/Scene/I3SLayer.js +55 -10
  131. package/Source/Scene/I3SNode.js +175 -18
  132. package/Source/Scene/I3SStatistics.js +94 -0
  133. package/Source/Scene/I3SSublayer.js +176 -0
  134. package/Source/Scene/I3SSymbology.js +337 -0
  135. package/Source/Scene/KeyframeNode.js +1 -1
  136. package/Source/Scene/Model/pickModel.js +25 -7
  137. package/Source/Scene/PickFramebuffer.js +37 -2
  138. package/Source/Scene/Picking.js +113 -39
  139. package/Source/Scene/Primitive.js +6 -2
  140. package/Source/Scene/Scene.js +126 -42
  141. package/Source/Scene/ScreenSpaceCameraController.js +21 -7
  142. package/Source/Scene/SensorVolumePortionToDisplay.js +69 -0
  143. package/Source/Scene/SpatialNode.js +12 -19
  144. package/Source/Scene/StructuralMetadata.js +1 -1
  145. package/Source/Scene/VoxelBoxShape.js +76 -0
  146. package/Source/Scene/VoxelCell.js +273 -0
  147. package/Source/Scene/VoxelCylinderShape.js +114 -43
  148. package/Source/Scene/VoxelEllipsoidShape.js +158 -116
  149. package/Source/Scene/VoxelPrimitive.js +3 -1
  150. package/Source/Scene/VoxelRenderResources.js +3 -0
  151. package/Source/Scene/VoxelShape.js +13 -0
  152. package/Source/Scene/VoxelTraversal.js +76 -54
  153. package/Source/Scene/buildVoxelDrawCommands.js +23 -0
  154. package/Source/Scene/createGooglePhotorealistic3DTileset.js +1 -0
  155. package/Source/Scene/processVoxelProperties.js +2 -0
  156. package/Source/Shaders/Voxels/IntersectCylinder.glsl +14 -111
  157. package/Source/Shaders/Voxels/IntersectCylinder.js +14 -111
  158. package/Source/Shaders/Voxels/IntersectEllipsoid.glsl +32 -113
  159. package/Source/Shaders/Voxels/IntersectEllipsoid.js +32 -113
  160. package/Source/Shaders/Voxels/IntersectLongitude.glsl +102 -0
  161. package/Source/Shaders/Voxels/IntersectLongitude.js +104 -0
  162. package/Source/Shaders/Voxels/VoxelFS.glsl +39 -1
  163. package/Source/Shaders/Voxels/VoxelFS.js +39 -1
  164. package/Source/Shaders/Voxels/convertUvToCylinder.glsl +19 -37
  165. package/Source/Shaders/Voxels/convertUvToCylinder.js +19 -37
  166. package/Source/Shaders/Voxels/convertUvToEllipsoid.glsl +24 -44
  167. package/Source/Shaders/Voxels/convertUvToEllipsoid.js +24 -44
  168. package/Source/Workers/createGeometry.js +40 -11
  169. package/Source/Workers/decodeI3S.js +720 -94
  170. package/index.d.ts +296 -11
  171. package/index.js +102 -94
  172. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -18426,6 +18426,18 @@ export function sampleTerrain(terrainProvider: TerrainProvider, level: number, p
18426
18426
  */
18427
18427
  export function sampleTerrainMostDetailed(terrainProvider: TerrainProvider, positions: Cartographic[], rejectOnTileFail?: boolean): Promise<Cartographic[]>;
18428
18428
 
18429
+ /**
18430
+ * Converts the value from sRGB color space to linear color space.
18431
+ * @example
18432
+ * const srgbColor = [0.5, 0.5, 0.5];
18433
+ * const linearColor = srgbColor.map(function (c) {
18434
+ * return Cesium.srgbToLinear(c);
18435
+ * });
18436
+ * @param value - The color value in sRGB color space.
18437
+ * @returns Returns the color value in linear color space.
18438
+ */
18439
+ export function srgbToLinear(value: number): number;
18440
+
18429
18441
  /**
18430
18442
  * Subdivides an array into a number of smaller, equal sized arrays.
18431
18443
  * @param array - The array to divide.
@@ -21386,6 +21398,8 @@ export class GeometryUpdater {
21386
21398
  destroy(): void;
21387
21399
  }
21388
21400
 
21401
+ export const geometryUpdaters: GeometryUpdater[];
21402
+
21389
21403
  /**
21390
21404
  * A general purpose visualizer for geometry represented by {@link Primitive} instances.
21391
21405
  * @param scene - The scene the primitives will be rendered in.
@@ -28769,7 +28783,8 @@ export namespace Cesium3DTileset {
28769
28783
  * @property [instanceFeatureIdLabel = "instanceFeatureId_0"] - Label of the instance feature ID set used for picking and styling. If instanceFeatureIdLabel is set to an integer N, it is converted to the string "instanceFeatureId_N" automatically. If both per-primitive and per-instance feature IDs are present, the instance feature IDs take priority.
28770
28784
  * @property [showCreditsOnScreen = false] - Whether to display the credits of this tileset on screen.
28771
28785
  * @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.
28786
+ * @property [enableCollision = false] - When <code>true</code>, enables collisions for camera or CPU picking. While this is <code>true</code> the camera will be prevented from going below the tileset surface if {@link ScreenSpaceCameraController#enableCollisionDetection} is true.
28787
+ * @property [disableCollision = true] - Whether to turn off collisions for camera collisions or picking. While this is <code>true</code> the camera will be allowed to go in or below the tileset surface if {@link ScreenSpaceCameraController#enableCollisionDetection} is true. Deprecated.
28773
28788
  * @property [projectTo2D = false] - Whether to accurately project the tileset to 2D. If this is true, the tileset will be projected accurately to 2D, but it will use more memory to do so. If this is false, the tileset will use less memory and will still render in 2D / CV mode, but its projected positions may be inaccurate. This cannot be set after the tileset has been created.
28774
28789
  * @property [enablePick = false] - Whether to allow collision and CPU picking with <code>pick</code> when using WebGL 1. If using WebGL 2 or above, this option will be ignored. If using WebGL 1 and this is true, the <code>pick</code> operation will work correctly, but it will use more memory to do so. If running with WebGL 1 and this is false, the model will use less memory, but <code>pick</code> will always return <code>undefined</code>. This cannot be set after the tileset has loaded.
28775
28790
  * @property [debugHeatmapTilePropertyName] - The tile variable to colorize as a heatmap. All rendered tiles will be colorized relative to each other's specified variable value.
@@ -28832,6 +28847,7 @@ export namespace Cesium3DTileset {
28832
28847
  instanceFeatureIdLabel?: string | number;
28833
28848
  showCreditsOnScreen?: boolean;
28834
28849
  splitDirection?: SplitDirection;
28850
+ enableCollision?: boolean;
28835
28851
  disableCollision?: boolean;
28836
28852
  projectTo2D?: boolean;
28837
28853
  enablePick?: boolean;
@@ -28875,11 +28891,11 @@ export namespace Cesium3DTileset {
28875
28891
  * console.error(`Error creating tileset: ${error}`);
28876
28892
  * }
28877
28893
  * @example
28878
- * // Allow camera to go inside and under 3D tileset
28894
+ * // Turn on camera collisions with the tileset.
28879
28895
  * try {
28880
28896
  * const tileset = await Cesium.Cesium3DTileset.fromUrl(
28881
28897
  * "http://localhost:8002/tilesets/Seattle/tileset.json",
28882
- * { disableCollision: true }
28898
+ * { enableCollision: true }
28883
28899
  * );
28884
28900
  * scene.primitives.add(tileset);
28885
28901
  * } catch (error) {
@@ -29236,9 +29252,9 @@ export class Cesium3DTileset {
29236
29252
  */
29237
29253
  splitDirection: SplitDirection;
29238
29254
  /**
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.
29255
+ * If <code>true</code>, allows collisions for camera collisions or picking. While this is <code>true</code> the camera will be prevented from going in or below the tileset surface if {@link ScreenSpaceCameraController#enableCollisionDetection} is true. This can have performance implecations if the tileset contains tile with a larger number of vertices.
29240
29256
  */
29241
- disableCollision: boolean;
29257
+ enableCollision: boolean;
29242
29258
  /**
29243
29259
  * This property is for debugging only; it is not optimized for production use.
29244
29260
  * <p>
@@ -29320,6 +29336,10 @@ export class Cesium3DTileset {
29320
29336
  * Function for examining vector lines as they are being streamed.
29321
29337
  */
29322
29338
  examineVectorLinesFunction: (...params: any[]) => any;
29339
+ /**
29340
+ * Whether to turn off collisions for camera collisions or picking. While this is <code>true</code> the camera will be allowed to go in or below the tileset surface if {@link ScreenSpaceCameraController#enableCollisionDetection} is true.
29341
+ */
29342
+ disableCollision: boolean;
29323
29343
  /**
29324
29344
  * Gets the tileset's asset object property, which contains metadata about the tileset.
29325
29345
  * <p>
@@ -32617,18 +32637,41 @@ export enum HorizontalOrigin {
32617
32637
  export namespace I3SDataProvider {
32618
32638
  /**
32619
32639
  * Initialization options for the I3SDataProvider constructor
32640
+ * @example
32641
+ * // Increase LOD by reducing SSE
32642
+ * const cesium3dTilesetOptions = {
32643
+ * maximumScreenSpaceError: 1,
32644
+ * };
32645
+ * const i3sOptions = {
32646
+ * cesium3dTilesetOptions: cesium3dTilesetOptions,
32647
+ * };
32648
+ * @example
32649
+ * // Set a custom outline color to replace the color defined in I3S symbology
32650
+ * const cesium3dTilesetOptions = {
32651
+ * outlineColor: Cesium.Color.BLUE,
32652
+ * };
32653
+ * const i3sOptions = {
32654
+ * cesium3dTilesetOptions: cesium3dTilesetOptions,
32655
+ * applySymbology: true,
32656
+ * };
32620
32657
  * @property [name] - The name of the I3S dataset.
32621
32658
  * @property [show = true] - Determines if the dataset will be shown.
32622
32659
  * @property [geoidTiledTerrainProvider] - Tiled elevation provider describing an Earth Gravitational Model. If defined, geometry will be shifted based on the offsets given by this provider. Required to position I3S data sets with gravity-related height at the correct location.
32623
- * @property [traceFetches = false] - Debug option. When true, log a message whenever an I3S tile is fetched.
32624
32660
  * @property [cesium3dTilesetOptions] - Object containing options to pass to an internally created {@link Cesium3DTileset}. See {@link Cesium3DTileset} for list of valid properties. All options can be used with the exception of <code>url</code> and <code>show</code> which are overridden by values from I3SDataProvider.
32661
+ * @property [showFeatures = false] - Determines if the features will be shown.
32662
+ * @property [adjustMaterialAlphaMode = false] - The option to adjust the alpha mode of the material based on the transparency of the vertex color. When <code>true</code>, the alpha mode of the material (if not defined) will be set to BLEND for geometry with any transparency in the color vertex attribute.
32663
+ * @property [applySymbology = false] - Determines if the I3S symbology will be parsed and applied for the layers.
32664
+ * @property [calculateNormals = false] - Determines if the flat normals will be generated for I3S geometry without normals.
32625
32665
  */
32626
32666
  type ConstructorOptions = {
32627
32667
  name?: string;
32628
32668
  show?: boolean;
32629
32669
  geoidTiledTerrainProvider?: ArcGISTiledElevationTerrainProvider | Promise<ArcGISTiledElevationTerrainProvider>;
32630
- traceFetches?: boolean;
32631
32670
  cesium3dTilesetOptions?: Cesium3DTileset.ConstructorOptions;
32671
+ showFeatures?: boolean;
32672
+ adjustMaterialAlphaMode?: boolean;
32673
+ applySymbology?: boolean;
32674
+ calculateNormals?: boolean;
32632
32675
  };
32633
32676
  }
32634
32677
 
@@ -32675,10 +32718,6 @@ export class I3SDataProvider {
32675
32718
  * Determines if the dataset will be shown.
32676
32719
  */
32677
32720
  show: boolean;
32678
- /**
32679
- * Gets or sets debugging and tracing of I3S fetches.
32680
- */
32681
- traceFetches: boolean;
32682
32721
  /**
32683
32722
  * The terrain provider referencing the GEOID service to be used for orthometric to ellipsoidal conversion.
32684
32723
  */
@@ -32687,6 +32726,10 @@ export class I3SDataProvider {
32687
32726
  * Gets the collection of layers.
32688
32727
  */
32689
32728
  readonly layers: I3SLayer[];
32729
+ /**
32730
+ * Gets the collection of building sublayers.
32731
+ */
32732
+ readonly sublayers: I3SSublayer[];
32690
32733
  /**
32691
32734
  * Gets the I3S data for this object.
32692
32735
  */
@@ -32699,6 +32742,22 @@ export class I3SDataProvider {
32699
32742
  * The resource used to fetch the I3S dataset.
32700
32743
  */
32701
32744
  readonly resource: Resource;
32745
+ /**
32746
+ * Determines if the features will be shown.
32747
+ */
32748
+ readonly showFeatures: boolean;
32749
+ /**
32750
+ * Determines if the alpha mode of the material will be adjusted depending on the color vertex attribute.
32751
+ */
32752
+ readonly adjustMaterialAlphaMode: boolean;
32753
+ /**
32754
+ * Determines if the I3S symbology will be parsed and applied for the layers.
32755
+ */
32756
+ readonly applySymbology: boolean;
32757
+ /**
32758
+ * Determines if the flat normals will be generated for I3S geometry without normals.
32759
+ */
32760
+ readonly calculateNormals: boolean;
32702
32761
  /**
32703
32762
  * Destroys the WebGL resources held by this object. Destroying an object allows for deterministic
32704
32763
  * release of WebGL resources, instead of relying on the garbage collector to destroy this object.
@@ -32747,6 +32806,23 @@ export class I3SDataProvider {
32747
32806
  * @param options - An object describing initialization options
32748
32807
  */
32749
32808
  static fromUrl(url: string | Resource, options: I3SDataProvider.ConstructorOptions): Promise<I3SDataProvider>;
32809
+ /**
32810
+ * Returns the collection of names for all available attributes
32811
+ * @returns The collection of attribute names
32812
+ */
32813
+ getAttributeNames(): string[];
32814
+ /**
32815
+ * Returns the collection of values for the attribute with the given name
32816
+ * @param name - The attribute name
32817
+ * @returns The collection of attribute values
32818
+ */
32819
+ getAttributeValues(name: string): string[];
32820
+ /**
32821
+ * Filters the drawn elements of a scene to specific attribute names and values
32822
+ * @param [filters = []] - The collection of attribute filters
32823
+ * @returns A promise that is resolved when the filter is applied
32824
+ */
32825
+ filterByAttributes(filters?: I3SNode.AttributeFilter[]): Promise<void>;
32750
32826
  }
32751
32827
 
32752
32828
  /**
@@ -32871,6 +32947,25 @@ export class I3SLayer {
32871
32947
  * When <code>true</code>, when the loaded I3S version is 1.6 or older
32872
32948
  */
32873
32949
  readonly legacyVersion16: boolean;
32950
+ /**
32951
+ * Filters the drawn elements of a layer to specific attribute names and values
32952
+ * @param [filters = []] - The collection of attribute filters
32953
+ * @returns A promise that is resolved when the filter is applied
32954
+ */
32955
+ filterByAttributes(filters?: I3SNode.AttributeFilter[]): Promise<void>;
32956
+ }
32957
+
32958
+ export namespace I3SNode {
32959
+ /**
32960
+ * A filter given by an attribute name and values.
32961
+ * The 3D feature object should be hidden if its value for the attribute name is not specified in the collection of values.
32962
+ * @property name - The name of the attribute
32963
+ * @property values - The collection of values
32964
+ */
32965
+ type AttributeFilter = {
32966
+ name: string;
32967
+ values: string[] | number[];
32968
+ };
32874
32969
  }
32875
32970
 
32876
32971
  /**
@@ -32922,6 +33017,12 @@ export class I3SNode {
32922
33017
  * @returns A promise that is resolved when the I3S Node fields are loaded
32923
33018
  */
32924
33019
  loadFields(): Promise<void>;
33020
+ /**
33021
+ * Loads the node field.
33022
+ * @param name - The field name
33023
+ * @returns A promise that is resolved when the I3S Node field is loaded
33024
+ */
33025
+ loadField(name: string): Promise<void>;
32925
33026
  /**
32926
33027
  * Returns the fields for a given picked position
32927
33028
  * @param pickedPosition - The picked position
@@ -32936,6 +33037,80 @@ export class I3SNode {
32936
33037
  getFieldsForFeature(featureIndex: number): any;
32937
33038
  }
32938
33039
 
33040
+ /**
33041
+ * This class implements an I3S statistics for Building Scene Layer.
33042
+ * <p>
33043
+ * Do not construct this directly, instead access statistics through {@link I3SDataProvider}.
33044
+ * </p>
33045
+ */
33046
+ export class I3SStatistics {
33047
+ constructor();
33048
+ /**
33049
+ * Gets the resource for the statistics
33050
+ */
33051
+ readonly resource: Resource;
33052
+ /**
33053
+ * Gets the I3S data for this object.
33054
+ */
33055
+ readonly data: any;
33056
+ /**
33057
+ * Gets the collection of attribute names.
33058
+ */
33059
+ readonly names: string[];
33060
+ }
33061
+
33062
+ /**
33063
+ * This class implements an I3S sublayer for Building Scene Layer.
33064
+ * <p>
33065
+ * This object is normally not instantiated directly, use {@link I3SSublayer.fromData}.
33066
+ * </p>
33067
+ */
33068
+ export class I3SSublayer {
33069
+ constructor();
33070
+ /**
33071
+ * Gets the resource for the sublayer
33072
+ */
33073
+ readonly resource: Resource;
33074
+ /**
33075
+ * Gets the I3S data for this object.
33076
+ */
33077
+ readonly data: any;
33078
+ /**
33079
+ * Gets the name for the sublayer.
33080
+ */
33081
+ readonly name: string;
33082
+ /**
33083
+ * Gets the model name for the sublayer.
33084
+ */
33085
+ readonly modelName: string;
33086
+ /**
33087
+ * Gets the collection of child sublayers.
33088
+ */
33089
+ readonly sublayers: I3SSublayer[];
33090
+ /**
33091
+ * Gets or sets the sublayer visibility.
33092
+ */
33093
+ visibility: boolean;
33094
+ /**
33095
+ * Determines if the sublayer will be shown.
33096
+ */
33097
+ readonly show: boolean;
33098
+ }
33099
+
33100
+ /**
33101
+ * This class implements an I3S symbology for I3S Layers.
33102
+ * <p>
33103
+ * Do not construct this directly, instead access symbology through {@link I3SLayer}.
33104
+ * </p>
33105
+ */
33106
+ export class I3SSymbology {
33107
+ constructor();
33108
+ /**
33109
+ * Gets the default symbology data.
33110
+ */
33111
+ readonly defaultSymbology: any;
33112
+ }
33113
+
32939
33114
  /**
32940
33115
  * Properties for managing image-based lighting on tilesets and models.
32941
33116
  * Also manages the necessary resources and textures.
@@ -39600,6 +39775,11 @@ export class Scene {
39600
39775
  * The light source for shading. Defaults to a directional light from the Sun.
39601
39776
  */
39602
39777
  light: Light;
39778
+ /**
39779
+ * Use this to set the default value for {@link Scene#logarithmicDepthBuffer} in newly constructed Scenes
39780
+ * This property relies on fragmentDepth being supported.
39781
+ */
39782
+ static defaultLogDepthBuffer: any;
39603
39783
  /**
39604
39784
  * Gets the canvas element to which this scene is bound.
39605
39785
  */
@@ -39827,6 +40007,23 @@ export class Scene {
39827
40007
  * @returns Object containing the picked primitive.
39828
40008
  */
39829
40009
  pick(windowPosition: Cartesian2, width?: number, height?: number): any;
40010
+ /**
40011
+ * Returns a {@link VoxelCell} for the voxel sample rendered at a particular window coordinate,
40012
+ * or undefined if no voxel is rendered at that position.
40013
+ * @example
40014
+ * On left click, report the value of the "color" property at that voxel sample.
40015
+ * handler.setInputAction(function(movement) {
40016
+ * const voxelCell = scene.pickVoxel(movement.position);
40017
+ * if (defined(voxelCell)) {
40018
+ * console.log(voxelCell.getProperty("color"));
40019
+ * }
40020
+ * }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
40021
+ * @param windowPosition - Window coordinates to perform picking on.
40022
+ * @param [width = 3] - Width of the pick rectangle.
40023
+ * @param [height = 3] - Height of the pick rectangle.
40024
+ * @returns Information about the voxel cell rendered at the picked position.
40025
+ */
40026
+ pickVoxel(windowPosition: Cartesian2, width?: number, height?: number): VoxelCell | undefined;
39830
40027
  /**
39831
40028
  * Returns the cartesian position reconstructed from the depth buffer and window position.
39832
40029
  * <p>
@@ -40239,6 +40436,24 @@ export class ScreenSpaceCameraController {
40239
40436
  destroy(): void;
40240
40437
  }
40241
40438
 
40439
+ /**
40440
+ * Constants used to indicated what part of the sensor volume to display.
40441
+ */
40442
+ export enum SensorVolumePortionToDisplay {
40443
+ /**
40444
+ * 0x0000. Display the complete sensor volume.
40445
+ */
40446
+ COMPLETE = 0,
40447
+ /**
40448
+ * 0x0001. Display the portion of the sensor volume that lies below the true horizon of the ellipsoid.
40449
+ */
40450
+ BELOW_ELLIPSOID_HORIZON = 1,
40451
+ /**
40452
+ * 0x0002. Display the portion of the sensor volume that lies above the true horizon of the ellipsoid.
40453
+ */
40454
+ ABOVE_ELLIPSOID_HORIZON = 2
40455
+ }
40456
+
40242
40457
  /**
40243
40458
  * <div class="notice">
40244
40459
  * Use {@link Viewer#shadowMap} to get the scene's shadow map. Do not construct this directly.
@@ -41730,6 +41945,76 @@ export class ViewportQuad {
41730
41945
  destroy(): void;
41731
41946
  }
41732
41947
 
41948
+ /**
41949
+ * A cell from a {@link VoxelPrimitive}.
41950
+ * <p>
41951
+ * Provides access to properties associated with one cell of a voxel primitive.
41952
+ * </p>
41953
+ * <p>
41954
+ * Do not construct this directly. Access it through picking using {@link Scene#pickVoxel}.
41955
+ * </p>
41956
+ * @example
41957
+ * // On left click, display all the properties for a voxel cell in the console log.
41958
+ * handler.setInputAction(function(movement) {
41959
+ * const voxelCell = scene.pickVoxel(movement.position);
41960
+ * if (voxelCell instanceof Cesium.VoxelCell) {
41961
+ * const propertyIds = voxelCell.getPropertyIds();
41962
+ * const length = propertyIds.length;
41963
+ * for (let i = 0; i < length; ++i) {
41964
+ * const propertyId = propertyIds[i];
41965
+ * console.log(`{propertyId}: ${voxelCell.getProperty(propertyId)}`);
41966
+ * }
41967
+ * }
41968
+ * }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
41969
+ * @param primitive - The voxel primitive containing the cell
41970
+ * @param tileIndex - The index of the tile
41971
+ * @param sampleIndex - The index of the sample within the tile, containing metadata for this cell
41972
+ */
41973
+ export class VoxelCell {
41974
+ constructor(primitive: VoxelPrimitive, tileIndex: number, sampleIndex: number);
41975
+ /**
41976
+ * All objects returned by {@link Scene#pick} have a <code>primitive</code> property. This returns
41977
+ * the VoxelPrimitive containing the cell.
41978
+ */
41979
+ readonly primitive: VoxelPrimitive;
41980
+ /**
41981
+ * Get the sample index of the cell.
41982
+ */
41983
+ readonly sampleIndex: number;
41984
+ /**
41985
+ * Get the index of the tile containing the cell.
41986
+ */
41987
+ readonly tileIndex: number;
41988
+ /**
41989
+ * Get a copy of the oriented bounding box containing the cell.
41990
+ */
41991
+ readonly orientedBoundingBox: OrientedBoundingBox;
41992
+ /**
41993
+ * Returns <code>true</code> if the feature contains this property.
41994
+ * @param name - The case-sensitive name of the property.
41995
+ * @returns Whether the feature contains this property.
41996
+ */
41997
+ hasProperty(name: string): boolean;
41998
+ /**
41999
+ * Returns an array of metadata property names for the feature.
42000
+ * @returns The IDs of the feature's properties.
42001
+ */
42002
+ getNames(): string[];
42003
+ /**
42004
+ * Returns a copy of the value of the metadata in the cell with the given name.
42005
+ * @example
42006
+ * // Display all the properties for a voxel cell in the console log.
42007
+ * const names = voxelCell.getNames();
42008
+ * for (let i = 0; i < names.length; ++i) {
42009
+ * const name = names[i];
42010
+ * console.log(`{name}: ${voxelCell.getProperty(name)}`);
42011
+ * }
42012
+ * @param name - The case-sensitive name of the property.
42013
+ * @returns The value of the property or <code>undefined</code> if the feature does not have this property.
42014
+ */
42015
+ getProperty(name: string): any;
42016
+ }
42017
+
41733
42018
  /**
41734
42019
  * A primitive that renders voxel data from a {@link VoxelProvider}.
41735
42020
  * @param [options] - Object with the following properties: