@cesium/engine 23.0.1 → 24.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 (226) hide show
  1. package/Build/Workers/{chunk-G6MJ3ZW3.js → chunk-2N4KDHS3.js} +10 -10
  2. package/Build/Workers/{chunk-C6HHBKT5.js → chunk-44EMEGKW.js} +5 -5
  3. package/Build/Workers/{chunk-TNXOPEIG.js → chunk-4TIG36AW.js} +12 -12
  4. package/Build/Workers/{chunk-PQTSXJBJ.js → chunk-5A2SW66E.js} +16 -16
  5. package/Build/Workers/{chunk-TXYQNXNW.js → chunk-5GXYJQ2K.js} +3 -3
  6. package/Build/Workers/{chunk-O67UP5YO.js → chunk-63SIWPLS.js} +13 -13
  7. package/Build/Workers/{chunk-CVAAIRNP.js → chunk-6MPGQEHA.js} +2 -2
  8. package/Build/Workers/{chunk-LHFC4R7Z.js → chunk-6RMS4S72.js} +6 -6
  9. package/Build/Workers/{chunk-77DJBHMI.js → chunk-6WLHJFD3.js} +7 -7
  10. package/Build/Workers/{chunk-HXEPZWJN.js → chunk-72VYSVEW.js} +9 -9
  11. package/Build/Workers/{chunk-VPWYHFQA.js → chunk-7MDYBRYJ.js} +4 -4
  12. package/Build/Workers/{chunk-XPMXRJDD.js → chunk-7O5XJTVE.js} +5 -5
  13. package/Build/Workers/{chunk-UEWYSOFD.js → chunk-7QRFIKWQ.js} +2 -2
  14. package/Build/Workers/{chunk-3UQ2YMPP.js → chunk-7TYLCBGK.js} +8 -8
  15. package/Build/Workers/{chunk-GLCPE2BJ.js → chunk-7X322WP2.js} +13 -13
  16. package/Build/Workers/{chunk-2OBWHTIC.js → chunk-A47HVBC5.js} +7 -7
  17. package/Build/Workers/{chunk-CID5SY7L.js → chunk-AF3MU2RL.js} +5 -5
  18. package/Build/Workers/{chunk-BTP3634E.js → chunk-AJLTU6PF.js} +1 -1
  19. package/Build/Workers/{chunk-YSJRB2UZ.js → chunk-AMIHNSST.js} +2 -2
  20. package/Build/Workers/{chunk-QPXGGVHC.js → chunk-B6SCUUFP.js} +10 -10
  21. package/Build/Workers/{chunk-QNABVTTP.js → chunk-BJD6QGXZ.js} +12 -12
  22. package/Build/Workers/{chunk-RZX6LOG6.js → chunk-C6P4IG5P.js} +6 -6
  23. package/Build/Workers/{chunk-4JJQRZYL.js → chunk-D4EJ2NXG.js} +17 -17
  24. package/Build/Workers/{chunk-K7UTK4OM.js → chunk-DHKPFLSJ.js} +1 -1
  25. package/Build/Workers/{chunk-S53HSRT6.js → chunk-DVB56LG7.js} +6 -6
  26. package/Build/Workers/{chunk-PBECJOWF.js → chunk-EDXL4W76.js} +2 -2
  27. package/Build/Workers/{chunk-ALTCIHRH.js → chunk-EV3VGO6Y.js} +17 -17
  28. package/Build/Workers/{chunk-UOQB7XQI.js → chunk-GOQBUCXH.js} +10 -10
  29. package/Build/Workers/{chunk-TMCTZ5E3.js → chunk-GQUNK2XC.js} +14 -14
  30. package/Build/Workers/{chunk-PAFMAR7A.js → chunk-HKUES6UG.js} +12 -12
  31. package/Build/Workers/{chunk-6U5QMZU3.js → chunk-HRHRYFHS.js} +9 -9
  32. package/Build/Workers/{chunk-PUO7BYDY.js → chunk-HXJMS2ZI.js} +1 -1
  33. package/Build/Workers/{chunk-FXSRA5UG.js → chunk-ILMFADZA.js} +4 -4
  34. package/Build/Workers/{chunk-U4SWB6TI.js → chunk-ISY4EZCA.js} +4 -4
  35. package/Build/Workers/{chunk-PGZ3B6CB.js → chunk-J6AW5YHS.js} +14 -14
  36. package/Build/Workers/{chunk-VX774SWE.js → chunk-JCI63T3K.js} +6 -6
  37. package/Build/Workers/{chunk-54O3AGOA.js → chunk-KLPGTXS3.js} +6 -6
  38. package/Build/Workers/{chunk-CNLXMOPM.js → chunk-LIB2H534.js} +10 -10
  39. package/Build/Workers/{chunk-H3TVRJLY.js → chunk-LXMCPFFS.js} +4 -4
  40. package/Build/Workers/{chunk-DNMASBMH.js → chunk-MKM27KGV.js} +2 -2
  41. package/Build/Workers/{chunk-66OWUDO7.js → chunk-N65BAKSH.js} +8 -8
  42. package/Build/Workers/{chunk-ZEMJQKHD.js → chunk-NKT5K3K3.js} +11 -11
  43. package/Build/Workers/{chunk-EIC3VAOZ.js → chunk-NPF7SSHZ.js} +7 -7
  44. package/Build/Workers/{chunk-YDR5LX5Z.js → chunk-PVV64VFW.js} +1 -1
  45. package/Build/Workers/{chunk-FKU77FNM.js → chunk-Q3C6VQH6.js} +4 -4
  46. package/Build/Workers/{chunk-CYOPNGPX.js → chunk-RQNJD3O4.js} +12 -12
  47. package/Build/Workers/{chunk-IJ3SUMK3.js → chunk-UIGVOKKI.js} +1 -1
  48. package/Build/Workers/{chunk-TFPG3ZKW.js → chunk-UQU4RXLT.js} +27 -19
  49. package/Build/Workers/{chunk-N6HRZLS6.js → chunk-VLDEUTOP.js} +2 -2
  50. package/Build/Workers/{chunk-MNSNOONX.js → chunk-VMVOUQ5J.js} +7 -7
  51. package/Build/Workers/{chunk-OZYB3AOR.js → chunk-XJRBB253.js} +11 -11
  52. package/Build/Workers/{chunk-B2VA6IEL.js → chunk-XY6HMDGI.js} +5 -5
  53. package/Build/Workers/{chunk-2M7DKGLW.js → chunk-Y7HNNPNK.js} +10 -10
  54. package/Build/Workers/{chunk-CJ7ZDY77.js → chunk-YAOZMOFL.js} +5 -5
  55. package/Build/Workers/{chunk-FCJQO4NC.js → chunk-YJZGW74L.js} +8 -8
  56. package/Build/Workers/{chunk-JUKGMJX7.js → chunk-YQFTYQMZ.js} +1 -1
  57. package/Build/Workers/{chunk-HNDE73JK.js → chunk-ZBZRTRJB.js} +10 -10
  58. package/Build/Workers/combineGeometry.js +24 -24
  59. package/Build/Workers/createBoxGeometry.js +18 -18
  60. package/Build/Workers/createBoxOutlineGeometry.js +16 -16
  61. package/Build/Workers/createCircleGeometry.js +26 -26
  62. package/Build/Workers/createCircleOutlineGeometry.js +19 -19
  63. package/Build/Workers/createCoplanarPolygonGeometry.js +33 -33
  64. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +31 -31
  65. package/Build/Workers/createCorridorGeometry.js +29 -29
  66. package/Build/Workers/createCorridorOutlineGeometry.js +28 -28
  67. package/Build/Workers/createCylinderGeometry.js +20 -20
  68. package/Build/Workers/createCylinderOutlineGeometry.js +18 -18
  69. package/Build/Workers/createEllipseGeometry.js +26 -26
  70. package/Build/Workers/createEllipseOutlineGeometry.js +19 -19
  71. package/Build/Workers/createEllipsoidGeometry.js +19 -19
  72. package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -18
  73. package/Build/Workers/createFrustumGeometry.js +18 -18
  74. package/Build/Workers/createFrustumOutlineGeometry.js +18 -18
  75. package/Build/Workers/createGeometry.js +24 -24
  76. package/Build/Workers/createGroundPolylineGeometry.js +22 -22
  77. package/Build/Workers/createPlaneGeometry.js +16 -16
  78. package/Build/Workers/createPlaneOutlineGeometry.js +15 -15
  79. package/Build/Workers/createPolygonGeometry.js +32 -32
  80. package/Build/Workers/createPolygonOutlineGeometry.js +30 -30
  81. package/Build/Workers/createPolylineGeometry.js +25 -25
  82. package/Build/Workers/createPolylineVolumeGeometry.js +31 -31
  83. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +27 -27
  84. package/Build/Workers/createRectangleGeometry.js +27 -27
  85. package/Build/Workers/createRectangleOutlineGeometry.js +20 -20
  86. package/Build/Workers/createSimplePolylineGeometry.js +23 -23
  87. package/Build/Workers/createSphereGeometry.js +19 -19
  88. package/Build/Workers/createSphereOutlineGeometry.js +18 -18
  89. package/Build/Workers/createTaskProcessorWorker.js +3 -3
  90. package/Build/Workers/createVectorTileClampedPolylines.js +14 -14
  91. package/Build/Workers/createVectorTileGeometries.js +24 -24
  92. package/Build/Workers/createVectorTilePoints.js +13 -13
  93. package/Build/Workers/createVectorTilePolygons.js +22 -22
  94. package/Build/Workers/createVectorTilePolylines.js +14 -14
  95. package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +25 -25
  96. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +22 -22
  97. package/Build/Workers/createVerticesFromHeightmap.js +22 -22
  98. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +20 -20
  99. package/Build/Workers/createWallGeometry.js +25 -25
  100. package/Build/Workers/createWallOutlineGeometry.js +24 -24
  101. package/Build/Workers/decodeDraco.js +10 -10
  102. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
  103. package/Build/Workers/decodeI3S.js +12 -12
  104. package/Build/Workers/gaussianSplatSorter.js +4 -4
  105. package/Build/Workers/gaussianSplatTextureGenerator.js +4 -4
  106. package/Build/Workers/incrementallyBuildTerrainPicker.js +10 -10
  107. package/Build/Workers/transcodeKTX2.js +6 -6
  108. package/Build/Workers/transferTypedArrayTest.js +1 -1
  109. package/Build/Workers/upsampleQuantizedTerrainMesh.js +22 -22
  110. package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +25 -25
  111. package/Source/Core/BoundingSphere.js +1 -1
  112. package/Source/Core/Cartesian2.js +7 -5
  113. package/Source/Core/Cartesian3.js +8 -6
  114. package/Source/Core/Cartesian4.js +8 -6
  115. package/Source/Core/Color.js +5 -3
  116. package/Source/Core/DeveloperError.js +2 -1
  117. package/Source/Core/ITwinPlatform.js +1 -0
  118. package/Source/Core/Ion.js +1 -1
  119. package/Source/Core/S2Cell.js +2 -2
  120. package/Source/Core/TerrainMesh.js +10 -1
  121. package/Source/Core/TerrainPicker.js +1 -0
  122. package/Source/Core/WallGeometry.js +1 -1
  123. package/Source/Core/WallOutlineGeometry.js +1 -1
  124. package/Source/Core/assert.js +27 -0
  125. package/Source/Core/globalTypes.js +4 -0
  126. package/Source/DataSources/CzmlDataSource.js +9 -0
  127. package/Source/DataSources/PathGraphics.js +13 -0
  128. package/Source/DataSources/PathVisualizer.js +330 -18
  129. package/Source/DataSources/StaticGeometryColorBatch.js +7 -2
  130. package/Source/DataSources/StaticGeometryPerMaterialBatch.js +7 -2
  131. package/Source/DataSources/StaticGroundGeometryPerMaterialBatch.js +3 -1
  132. package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +3 -1
  133. package/Source/Renderer/Context.js +1 -1
  134. package/Source/Renderer/RenderState.js +2 -2
  135. package/Source/Renderer/VertexArray.js +80 -0
  136. package/Source/Scene/ArcGisMapService.js +1 -1
  137. package/Source/Scene/BillboardCollection.js +65 -364
  138. package/Source/Scene/BufferPoint.js +148 -0
  139. package/Source/Scene/BufferPointCollection.js +135 -0
  140. package/Source/Scene/BufferPointMaterial.js +95 -0
  141. package/Source/Scene/BufferPolygon.js +516 -0
  142. package/Source/Scene/BufferPolygonCollection.js +368 -0
  143. package/Source/Scene/BufferPolygonMaterial.js +41 -0
  144. package/Source/Scene/BufferPolyline.js +185 -0
  145. package/Source/Scene/BufferPolylineCollection.js +136 -0
  146. package/Source/Scene/BufferPolylineMaterial.js +93 -0
  147. package/Source/Scene/BufferPrimitive.js +347 -0
  148. package/Source/Scene/BufferPrimitiveCollection.js +702 -0
  149. package/Source/Scene/BufferPrimitiveMaterial.js +140 -0
  150. package/Source/Scene/Cesium3DTileContent.js +5 -1
  151. package/Source/Scene/Cesium3DTileContentFactory.js +9 -0
  152. package/Source/Scene/Cesium3DTileStyle.js +22 -0
  153. package/Source/Scene/Cesium3DTileset.js +1 -0
  154. package/Source/Scene/ClippingPolygonCollection.js +270 -101
  155. package/Source/Scene/CubeMapPanorama.js +4 -4
  156. package/Source/Scene/GaussianSplat3DTileContent.js +40 -46
  157. package/Source/Scene/GaussianSplatPrimitive.js +413 -70
  158. package/Source/Scene/GetFeatureInfoFormat.js +3 -3
  159. package/Source/Scene/GltfLoader.js +215 -34
  160. package/Source/Scene/GltfSpzLoader.js +109 -0
  161. package/Source/Scene/ITwinData.js +1 -0
  162. package/Source/Scene/Label.js +32 -0
  163. package/Source/Scene/LabelCollection.js +14 -13
  164. package/Source/Scene/Material.js +2 -0
  165. package/Source/Scene/Megatexture.js +1 -0
  166. package/Source/Scene/MetadataClassProperty.js +24 -10
  167. package/Source/Scene/MetadataComponentType.js +115 -23
  168. package/Source/Scene/Model/CustomShaderPipelineStage.js +3 -1
  169. package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +761 -263
  170. package/Source/Scene/Model/MaterialPipelineStage.js +147 -0
  171. package/Source/Scene/Model/MetadataPipelineStage.js +3 -3
  172. package/Source/Scene/Model/ModelDrawCommand.js +6 -0
  173. package/Source/Scene/Model/ModelReader.js +1 -1
  174. package/Source/Scene/Model/ModelUtility.js +3 -1
  175. package/Source/Scene/Model/createVectorTileBuffersFromModelComponents.js +330 -0
  176. package/Source/Scene/ModelComponents.js +1632 -1542
  177. package/Source/Scene/PickedMetadataInfo.js +1 -0
  178. package/Source/Scene/ScreenSpaceCameraController.js +13 -0
  179. package/Source/Scene/SkyBox.js +17 -8
  180. package/Source/Scene/TileBoundingRegion.js +1 -1
  181. package/Source/Scene/TileBoundingS2Cell.js +1 -1
  182. package/Source/Scene/TileBoundingSphere.js +1 -1
  183. package/Source/Scene/TweenCollection.js +7 -0
  184. package/Source/Scene/VectorGltf3DTileContent.js +382 -0
  185. package/Source/Scene/VertexAttributeSemantic.js +14 -0
  186. package/Source/Scene/WebMapServiceImageryProvider.js +2 -2
  187. package/Source/Scene/WebMapTileServiceImageryProvider.js +366 -131
  188. package/Source/Scene/parseStructuralMetadata.js +97 -37
  189. package/Source/Scene/renderBufferPointCollection.js +334 -0
  190. package/Source/Scene/renderBufferPolygonCollection.js +386 -0
  191. package/Source/Scene/renderBufferPolylineCollection.js +529 -0
  192. package/Source/Shaders/BillboardCollectionFS.glsl +2 -77
  193. package/Source/Shaders/BillboardCollectionFS.js +2 -77
  194. package/Source/Shaders/BillboardCollectionVS.glsl +2 -60
  195. package/Source/Shaders/BillboardCollectionVS.js +2 -60
  196. package/Source/Shaders/BufferPointMaterialFS.glsl +27 -0
  197. package/Source/Shaders/BufferPointMaterialFS.js +29 -0
  198. package/Source/Shaders/BufferPointMaterialVS.glsl +48 -0
  199. package/Source/Shaders/BufferPointMaterialVS.js +50 -0
  200. package/Source/Shaders/BufferPolygonMaterialFS.glsl +13 -0
  201. package/Source/Shaders/BufferPolygonMaterialFS.js +15 -0
  202. package/Source/Shaders/BufferPolygonMaterialVS.glsl +30 -0
  203. package/Source/Shaders/BufferPolygonMaterialVS.js +32 -0
  204. package/Source/Shaders/BufferPolylineMaterialFS.glsl +13 -0
  205. package/Source/Shaders/BufferPolylineMaterialFS.js +15 -0
  206. package/Source/Shaders/BufferPolylineMaterialVS.glsl +49 -0
  207. package/Source/Shaders/BufferPolylineMaterialVS.js +51 -0
  208. package/Source/Shaders/Model/EdgeVisibilityStageFS.glsl +34 -48
  209. package/Source/Shaders/Model/EdgeVisibilityStageFS.js +34 -49
  210. package/Source/Shaders/Model/EdgeVisibilityStageVS.glsl +98 -0
  211. package/Source/Shaders/Model/EdgeVisibilityStageVS.js +100 -0
  212. package/Source/Shaders/Model/ModelFS.glsl +15 -0
  213. package/Source/Shaders/Model/ModelFS.js +15 -0
  214. package/Source/Shaders/Model/ModelVS.glsl +8 -0
  215. package/Source/Shaders/Model/ModelVS.js +8 -0
  216. package/Source/Shaders/PolygonSignedDistanceFS.glsl +64 -33
  217. package/Source/Shaders/PolygonSignedDistanceFS.js +64 -33
  218. package/Source/Shaders/PrimitiveGaussianSplatVS.glsl +9 -2
  219. package/Source/Shaders/PrimitiveGaussianSplatVS.js +9 -2
  220. package/Source/Shaders/Voxels/VoxelFS.glsl +1 -1
  221. package/Source/Shaders/Voxels/VoxelFS.js +1 -1
  222. package/Source/Workers/decodeDraco.js +3 -0
  223. package/Source/Workers/decodeI3S.js +5 -2
  224. package/index.d.ts +1007 -111
  225. package/index.js +394 -369
  226. package/package.json +2 -2
package/index.d.ts CHANGED
@@ -1102,7 +1102,7 @@ export class BoundingSphere {
1102
1102
  * @param [result] - The object onto which to store the result.
1103
1103
  * @returns The modified result parameter or a new BoundingSphere instance if one was not provided.
1104
1104
  */
1105
- static fromVertices(positions?: number[], center?: Cartesian3, stride?: number, result?: BoundingSphere): BoundingSphere;
1105
+ static fromVertices(positions?: number[] | TypedArray, center?: Cartesian3, stride?: number, result?: BoundingSphere): BoundingSphere;
1106
1106
  /**
1107
1107
  * Computes a tight-fitting bounding sphere enclosing a list of EncodedCartesian3s, where the points are
1108
1108
  * stored in parallel flat arrays in X, Y, Z, order. The bounding sphere is computed by running two
@@ -1528,7 +1528,7 @@ export class Cartesian2 {
1528
1528
  * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
1529
1529
  * @returns The array that was packed into
1530
1530
  */
1531
- static pack(value: Cartesian2, array: number[] | TypedArray, startingIndex?: number): number[] | TypedArray;
1531
+ static pack(value: Cartesian2, array: number[], startingIndex?: number): number[];
1532
1532
  /**
1533
1533
  * Retrieves an instance from a packed array.
1534
1534
  * @param array - The packed array.
@@ -1536,14 +1536,14 @@ export class Cartesian2 {
1536
1536
  * @param [result] - The object into which to store the result.
1537
1537
  * @returns The modified result parameter or a new Cartesian2 instance if one was not provided.
1538
1538
  */
1539
- static unpack(array: number[] | TypedArray, startingIndex?: number, result?: Cartesian2): Cartesian2;
1539
+ static unpack(array: number[], startingIndex?: number, result?: Cartesian2): Cartesian2;
1540
1540
  /**
1541
1541
  * Flattens an array of Cartesian2s into an array of components.
1542
1542
  * @param array - The array of cartesians to pack.
1543
1543
  * @param [result] - The array onto which to store the result. If this is a typed array, it must have array.length * 2 components, else a {@link DeveloperError} will be thrown. If it is a regular array, it will be resized to have (array.length * 2) elements.
1544
1544
  * @returns The packed array.
1545
1545
  */
1546
- static packArray(array: Cartesian2[], result?: number[] | TypedArray): number[] | TypedArray;
1546
+ static packArray(array: Cartesian2[], result?: number[]): number[];
1547
1547
  /**
1548
1548
  * Unpacks an array of cartesian components into an array of Cartesian2s.
1549
1549
  * @param array - The array of components to unpack.
@@ -1878,7 +1878,7 @@ export class Cartesian3 {
1878
1878
  * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
1879
1879
  * @returns The array that was packed into
1880
1880
  */
1881
- static pack(value: Cartesian3, array: number[] | TypedArray, startingIndex?: number): number[] | TypedArray;
1881
+ static pack(value: Cartesian3, array: number[], startingIndex?: number): number[];
1882
1882
  /**
1883
1883
  * Retrieves an instance from a packed array.
1884
1884
  * @param array - The packed array.
@@ -1886,21 +1886,21 @@ export class Cartesian3 {
1886
1886
  * @param [result] - The object into which to store the result.
1887
1887
  * @returns The modified result parameter or a new Cartesian3 instance if one was not provided.
1888
1888
  */
1889
- static unpack(array: number[] | TypedArray, startingIndex?: number, result?: Cartesian3): Cartesian3;
1889
+ static unpack(array: number[], startingIndex?: number, result?: Cartesian3): Cartesian3;
1890
1890
  /**
1891
1891
  * Flattens an array of Cartesian3s into an array of components.
1892
1892
  * @param array - The array of cartesians to pack.
1893
1893
  * @param [result] - The array onto which to store the result. If this is a typed array, it must have array.length * 3 components, else a {@link DeveloperError} will be thrown. If it is a regular array, it will be resized to have (array.length * 3) elements.
1894
1894
  * @returns The packed array.
1895
1895
  */
1896
- static packArray(array: Cartesian3[], result?: number[] | TypedArray): number[] | TypedArray;
1896
+ static packArray(array: Cartesian3[], result?: number[]): number[];
1897
1897
  /**
1898
1898
  * Unpacks an array of cartesian components into an array of Cartesian3s.
1899
1899
  * @param array - The array of components to unpack.
1900
1900
  * @param [result] - The array onto which to store the result.
1901
1901
  * @returns The unpacked array.
1902
1902
  */
1903
- static unpackArray(array: number[] | TypedArray, result?: Cartesian3[]): Cartesian3[];
1903
+ static unpackArray(array: number[], result?: Cartesian3[]): Cartesian3[];
1904
1904
  /**
1905
1905
  * Computes the value of the maximum component for the supplied Cartesian.
1906
1906
  * @param cartesian - The cartesian to use.
@@ -2312,7 +2312,7 @@ export class Cartesian4 {
2312
2312
  * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
2313
2313
  * @returns The array that was packed into
2314
2314
  */
2315
- static pack(value: Cartesian4, array: number[] | TypedArray, startingIndex?: number): number[] | TypedArray;
2315
+ static pack(value: Cartesian4, array: number[], startingIndex?: number): number[];
2316
2316
  /**
2317
2317
  * Retrieves an instance from a packed array.
2318
2318
  * @param array - The packed array.
@@ -2320,21 +2320,21 @@ export class Cartesian4 {
2320
2320
  * @param [result] - The object into which to store the result.
2321
2321
  * @returns The modified result parameter or a new Cartesian4 instance if one was not provided.
2322
2322
  */
2323
- static unpack(array: number[] | TypedArray, startingIndex?: number, result?: Cartesian4): Cartesian4;
2323
+ static unpack(array: number[], startingIndex?: number, result?: Cartesian4): Cartesian4;
2324
2324
  /**
2325
2325
  * Flattens an array of Cartesian4s into an array of components.
2326
2326
  * @param array - The array of cartesians to pack.
2327
2327
  * @param [result] - The array onto which to store the result. If this is a typed array, it must have array.length * 4 components, else a {@link DeveloperError} will be thrown. If it is a regular array, it will be resized to have (array.length * 4) elements.
2328
2328
  * @returns The packed array.
2329
2329
  */
2330
- static packArray(array: Cartesian4[], result?: number[] | TypedArray): number[] | TypedArray;
2330
+ static packArray(array: Cartesian4[], result?: number[]): number[];
2331
2331
  /**
2332
2332
  * Unpacks an array of cartesian components into an array of Cartesian4s.
2333
2333
  * @param array - The array of components to unpack.
2334
2334
  * @param [result] - The array onto which to store the result.
2335
2335
  * @returns The unpacked array.
2336
2336
  */
2337
- static unpackArray(array: number[] | TypedArray, result?: Cartesian4[]): Cartesian4[];
2337
+ static unpackArray(array: number[], result?: Cartesian4[]): Cartesian4[];
2338
2338
  /**
2339
2339
  * Computes the value of the maximum component for the supplied Cartesian.
2340
2340
  * @param cartesian - The cartesian to use.
@@ -3617,6 +3617,8 @@ export enum ClockStep {
3617
3617
  SYSTEM_CLOCK = 2
3618
3618
  }
3619
3619
 
3620
+ export function hue2rgb(): void;
3621
+
3620
3622
  /**
3621
3623
  * A color, specified using red, green, blue, and alpha values,
3622
3624
  * which range from <code>0</code> (no intensity) to <code>1.0</code> (full intensity).
@@ -3765,7 +3767,7 @@ export class Color {
3765
3767
  * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
3766
3768
  * @returns The array that was packed into
3767
3769
  */
3768
- static pack(value: Color, array: number[], startingIndex?: number): number[];
3770
+ static pack(value: Color, array: number[] | TypedArray, startingIndex?: number): number[] | TypedArray;
3769
3771
  /**
3770
3772
  * Retrieves an instance from a packed array.
3771
3773
  * @param array - The packed array.
@@ -3773,7 +3775,7 @@ export class Color {
3773
3775
  * @param [result] - The object into which to store the result.
3774
3776
  * @returns The modified result parameter or a new Color instance if one was not provided.
3775
3777
  */
3776
- static unpack(array: number[], startingIndex?: number, result?: Color): Color;
3778
+ static unpack(array: number[] | TypedArray, startingIndex?: number, result?: Color): Color;
3777
3779
  /**
3778
3780
  * Converts a 'byte' color component in the range of 0 to 255 into
3779
3781
  * a 'float' color component in the range of 0 to 1.0.
@@ -16775,11 +16777,6 @@ export class TerrainData {
16775
16777
  wasCreatedByUpsampling(): boolean;
16776
16778
  }
16777
16779
 
16778
- /**
16779
- * Indicates whether the terrain picker needs to be rebuilt due to changes in the underlying terrain mesh's vertices or indices.
16780
- */
16781
- export var needsRebuild: boolean;
16782
-
16783
16780
  /**
16784
16781
  * Creates an axis-aligned bounding box for a quadtree node at the given tree-space coordinates and level.
16785
16782
  * 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).
@@ -18918,6 +18915,8 @@ export type TypedArray = Float64Array | Float32Array | Uint32Array | Uint16Array
18918
18915
  */
18919
18916
  export type TypedArrayConstructor = Float64ArrayConstructor | Float32ArrayConstructor | Uint32ArrayConstructor | Uint16ArrayConstructor | Uint8ArrayConstructor | Int32ArrayConstructor | Int16ArrayConstructor | Int8ArrayConstructor;
18920
18917
 
18918
+ export type Destroyable = any;
18919
+
18921
18920
  /**
18922
18921
  * Determines if a given date is a leap year.
18923
18922
  * @example
@@ -23369,6 +23368,7 @@ export namespace PathGraphics {
23369
23368
  * @property [resolution = 60] - A numeric Property specifying the maximum number of seconds to step when sampling the position.
23370
23369
  * @property [material = Color.WHITE] - A Property specifying the material used to draw the path.
23371
23370
  * @property [distanceDisplayCondition] - A Property specifying at what distance from the camera that this path will be displayed.
23371
+ * @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.
23372
23372
  */
23373
23373
  type ConstructorOptions = {
23374
23374
  show?: Property | boolean;
@@ -23378,6 +23378,7 @@ export namespace PathGraphics {
23378
23378
  resolution?: Property | number;
23379
23379
  material?: MaterialProperty | Color;
23380
23380
  distanceDisplayCondition?: Property | DistanceDisplayCondition;
23381
+ relativeTo?: Property | string;
23381
23382
  };
23382
23383
  }
23383
23384
 
@@ -23419,6 +23420,10 @@ export class PathGraphics {
23419
23420
  * Gets or sets the {@link DistanceDisplayCondition} Property specifying at what distance from the camera that this path will be displayed.
23420
23421
  */
23421
23422
  distanceDisplayCondition: Property | undefined;
23423
+ /**
23424
+ * Gets or sets 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.
23425
+ */
23426
+ relativeTo: Property | undefined;
23422
23427
  /**
23423
23428
  * Duplicates this instance.
23424
23429
  * @param [result] - The object onto which to store the result.
@@ -23433,6 +23438,32 @@ export class PathGraphics {
23433
23438
  merge(source: PathGraphics): void;
23434
23439
  }
23435
23440
 
23441
+ /**
23442
+ * Transforms a path entity's position into the local frame of the reference entity.
23443
+ * If the reference entity has an orientation, uses that orientation to define the local frame.
23444
+ * Otherwise, falls back to a VVLH (Vehicle Velocity Local Horizontal) frame derived from the reference entity's velocity.
23445
+ * @param time - The time at which to evaluate the orientation or VVLH frame.
23446
+ * @param pathEntityPos - The position of the path entity in the FIXED reference frame.
23447
+ * @param refEntityPos - The position of the reference entity in the FIXED reference frame.
23448
+ * @param refEntity - The reference entity whose frame to transform into.
23449
+ * @param result - The object onto which to store the result.
23450
+ * @returns The transformed position in the reference entity's local frame, or undefined if either input position is undefined.
23451
+ */
23452
+ export function transformToEntityFrame(time: JulianDate, pathEntityPos: Cartesian3, refEntityPos: Cartesian3, refEntity: Entity, result: Cartesian3): Cartesian3 | undefined;
23453
+
23454
+ /**
23455
+ * Compute the vehicle velocity, local horizontal (VVLH) transform for a position property at a given time.
23456
+ * The VVLH axes is defined based on the motion of the provided position point as follows:
23457
+ * - The X axis is directed toward the point's velocity vector, in the direction of motion.
23458
+ * - The Y axis is along the angular momentum vector.
23459
+ * - The Z axis is along the position vector.
23460
+ * @param time - The time at which to compute the VVLH transform.
23461
+ * @param positionProperty - The position to compute the VVLH frame for.
23462
+ * @param result - The object onto which to store the result.
23463
+ * @returns The VVLH transform.
23464
+ */
23465
+ export function computeVvlhTransform(time: JulianDate, positionProperty: PositionProperty, result: Matrix4): Matrix4;
23466
+
23436
23467
  /**
23437
23468
  * A {@link Visualizer} which maps {@link Entity#path} to a {@link Polyline}.
23438
23469
  * @param scene - The scene the primitives will be rendered in.
@@ -25939,8 +25970,6 @@ export type WebGLOptions = {
25939
25970
  failIfMajorPerformanceCaveat?: boolean;
25940
25971
  };
25941
25972
 
25942
- export function PickId(pickObjects: Map<number, object>, key: number, color: Color): void;
25943
-
25944
25973
  /**
25945
25974
  * The data type of a pixel.
25946
25975
  */
@@ -26018,6 +26047,8 @@ export enum TextureMinificationFilter {
26018
26047
  LINEAR_MIPMAP_LINEAR = WebGLConstants.LINEAR_MIPMAP_LINEAR
26019
26048
  }
26020
26049
 
26050
+ export function addAttribute(): void;
26051
+
26021
26052
  /**
26022
26053
  * An appearance defines the full GLSL vertex and fragment shaders and the
26023
26054
  * render state used to draw a {@link Primitive}. All appearances implement
@@ -27585,6 +27616,780 @@ export class BoxEmitter {
27585
27616
  dimensions: Cartesian3;
27586
27617
  }
27587
27618
 
27619
+ /**
27620
+ * View bound to the underlying buffer data of a {@link BufferPointCollection}.
27621
+ *
27622
+ * <p>BufferPoint instances are {@link https://en.wikipedia.org/wiki/Flyweight_pattern|flyweights}:
27623
+ * a single BufferPoint instance can be temporarily bound to any conceptual
27624
+ * "point" in a BufferPointCollection, allowing very large collections to be
27625
+ * iterated and updated with a minimal memory footprint.</p>
27626
+ *
27627
+ * Represented as one (1) position.
27628
+ */
27629
+ export class BufferPoint extends BufferPrimitive {
27630
+ /**
27631
+ * Copies data from source point to result.
27632
+ */
27633
+ static clone(point: BufferPoint, result: BufferPoint): BufferPoint;
27634
+ /**
27635
+ * Count of positions (vertices) in this primitive. Always 1.
27636
+ */
27637
+ readonly vertexCount: number;
27638
+ /**
27639
+ * Gets the position of this point.
27640
+ */
27641
+ getPosition(result?: Cartesian3): Cartesian3;
27642
+ /**
27643
+ * Sets the position of this point.
27644
+ */
27645
+ setPosition(position: Cartesian3): void;
27646
+ /**
27647
+ * Returns a JSON-serializable object representing the point. This encoding
27648
+ * is not memory-efficient, and should generally be used for debugging and
27649
+ * testing.
27650
+ * @returns JSON-serializable object.
27651
+ */
27652
+ toJSON(): any;
27653
+ }
27654
+
27655
+ /**
27656
+ * @property [options.modelMatrix = Matrix4.IDENTITY] - Transforms geometry from model to world coordinates.
27657
+ */
27658
+ export type BufferPointOptions = {
27659
+ show?: boolean;
27660
+ material?: BufferPointMaterial;
27661
+ position?: Cartesian3;
27662
+ };
27663
+
27664
+ /**
27665
+ * Collection of points held in ArrayBuffer storage for performance and memory optimization.
27666
+ *
27667
+ * <p>Default buffer memory allocation is arbitrary, and collections cannot be resized,
27668
+ * so specific per-buffer capacities should be provided in the collection
27669
+ * constructor when available.</p>
27670
+ * @example
27671
+ * const collection = new BufferPointCollection({primitiveCountMax: 1024});
27672
+ *
27673
+ * const point = new BufferPoint();
27674
+ * const material = new BufferPointMaterial({color: Color.WHITE});
27675
+ *
27676
+ * // Create a new point, temporarily bound to 'point' local variable.
27677
+ * collection.add({
27678
+ * position: new Cartesian3(0.0, 0.0, 0.0),
27679
+ * material
27680
+ * }, point);
27681
+ *
27682
+ * // Iterate over all points in collection, temporarily binding 'point'
27683
+ * // local variable to each, and updating point material.
27684
+ * for (let i = 0; i < collection.primitiveCount; i++) {
27685
+ * collection.get(i, point);
27686
+ * point.setMaterial(material);
27687
+ * }
27688
+ */
27689
+ export class BufferPointCollection extends BufferPrimitiveCollection<BufferPoint> {
27690
+ constructor(options: {
27691
+ primitiveCountMax?: number;
27692
+ show?: boolean;
27693
+ debugShowBoundingVolume?: boolean;
27694
+ });
27695
+ /**
27696
+ * Adds a new point to the collection, with the specified options. A
27697
+ * {@link BufferPoint} instance is linked to the new point, using
27698
+ * the 'result' argument if given, or a new instance if not. For repeated
27699
+ * calls, prefer to reuse a single BufferPoint instance rather than
27700
+ * allocating a new instance on each call.
27701
+ */
27702
+ add(options: BufferPointOptions, result: BufferPoint): BufferPoint;
27703
+ }
27704
+
27705
+ /**
27706
+ * @property [color = Color.WHITE] - Color of fill.
27707
+ * @property [outlineColor = Color.WHITE] - Color of outline.
27708
+ * @property [outlineWidth = 0.0] - Width of outline, 0-255px.
27709
+ * @property [size = 1.0] - Size of point, 0-255px.
27710
+ */
27711
+ export type BufferPointMaterialOptions = {
27712
+ color?: Color;
27713
+ outlineColor?: Color;
27714
+ outlineWidth?: number;
27715
+ size?: number;
27716
+ };
27717
+
27718
+ /**
27719
+ * Material description for a {@link BufferPoint}.
27720
+ *
27721
+ * <p>BufferPointMaterial objects are {@link Packable|packable}, stored
27722
+ * when calling {@link BufferPoint#setMaterial}. Subsequent changes to the
27723
+ * material will not affect the point until setMaterial() is called again.</p>
27724
+ */
27725
+ export class BufferPointMaterial extends BufferPrimitiveMaterial {
27726
+ constructor(options?: BufferPointMaterialOptions);
27727
+ /**
27728
+ * Size of point, 0-255px.
27729
+ */
27730
+ size: number;
27731
+ static pack(material: BufferPointMaterial, view: DataView, byteOffset: number): void;
27732
+ static unpack(view: DataView, byteOffset: number, result: BufferPointMaterial): BufferPointMaterial;
27733
+ /**
27734
+ * Returns a JSON-serializable object representing the material. This encoding
27735
+ * is not memory-efficient, and should generally be used for debugging and
27736
+ * testing.
27737
+ * @returns JSON-serializable object.
27738
+ */
27739
+ toJSON(): any;
27740
+ /**
27741
+ * Color of fill.
27742
+ */
27743
+ color: Color;
27744
+ /**
27745
+ * Color of outline.
27746
+ */
27747
+ outlineColor: Color;
27748
+ /**
27749
+ * Width of outline, 0-255px.
27750
+ */
27751
+ outlineWidth: number;
27752
+ }
27753
+
27754
+ /**
27755
+ * View bound to the underlying buffer data of a {@link BufferPolygonCollection}.
27756
+ *
27757
+ * <p>BufferPolygon instances are {@link https://en.wikipedia.org/wiki/Flyweight_pattern|flyweights}:
27758
+ * a single BufferPolygon instance can be temporarily bound to any conceptual
27759
+ * "polygon" in a BufferPolygonCollection, allowing very large collections to be
27760
+ * iterated and updated with a minimal memory footprint.</p>
27761
+ *
27762
+ * <p>Represented as one (1) external linear ring of three (3) or more positions.
27763
+ * May optionally define one or more internal linear rings ("holes") within the
27764
+ * polygon. Each hole is represented as a single index into the positions array,
27765
+ * where the vertex at that index is the start of an internal linear ring that
27766
+ * continues along the following vertices until reaching either the vertex
27767
+ * index of the next hole, or the end of the vertex list. Stores a precomputed
27768
+ * triangulation, represented as three vertex indices per triangle.</p>
27769
+ */
27770
+ export class BufferPolygon extends BufferPrimitive {
27771
+ /**
27772
+ * Copies data from source polygon to result. If the result polygon is not
27773
+ * new (the last polygon in the collection) then source and result polygons
27774
+ * must have the same vertex counts, hole counts, and triangle counts.
27775
+ */
27776
+ static clone(polygon: BufferPolygon, result: BufferPolygon): BufferPolygon;
27777
+ /**
27778
+ * Count of positions (vertices) in this polygon, including both outer ring and
27779
+ * internal rings (holes), number of VEC3 elements.
27780
+ */
27781
+ readonly vertexCount: number;
27782
+ /**
27783
+ * Returns an array view of this polygon's vertex positions. If 'result'
27784
+ * argument is given, vertex positions are written to that array and returned.
27785
+ * Otherwise, returns an ArrayView on collection memory — changes to this array
27786
+ * will not trigger render updates, which requires `.setPositions()`.
27787
+ * @param [result] - return {TypedArray}
27788
+ */
27789
+ getPositions(result?: TypedArray): void;
27790
+ setPositions(positions: TypedArray): void;
27791
+ /**
27792
+ * Offset in collection position array to first vertex in polygon's outer
27793
+ * linear ring, number of VEC3 elements.
27794
+ */
27795
+ readonly outerVertexOffset: number;
27796
+ /**
27797
+ * Count of positions (vertices) in this polygon's outer linear ring, number
27798
+ * of VEC3 elements.
27799
+ */
27800
+ readonly outerVertexCount: number;
27801
+ /**
27802
+ * Returns an array view of this polygon's outer linear ring vertex positions.
27803
+ * If 'result' argument is given, vertex positions are written to that array
27804
+ * and returned. Otherwise, returns an ArrayView on collection memory —
27805
+ * changes to this array will not trigger render updates, which requires
27806
+ * `.setPositions()`.
27807
+ */
27808
+ getOuterPositions(result?: TypedArray): TypedArray;
27809
+ /**
27810
+ * Count of holes (indices) in this polygon.
27811
+ */
27812
+ readonly holeCount: number;
27813
+ /**
27814
+ * Gets this polygon's hole indices, with each hole represented as a single
27815
+ * offset into this polygon's positions array. Each hole implicitly
27816
+ * continues along an internal linear ring from that vertex offset until
27817
+ * reaching either the end of the positions array, or the next hole offset.
27818
+ *
27819
+ * If 'result' argument is given, hole indices are written to that array and
27820
+ * returned. Otherwise, returns an ArrayView on collection memory — changes
27821
+ * to this array will not trigger render updates, which requires `.setHoles()`.
27822
+ */
27823
+ getHoles(result?: TypedArray): TypedArray;
27824
+ /**
27825
+ * Sets this polygon's hole indices, with holes represented as a single
27826
+ * offset into this polygon's positions array. Each hole implicitly
27827
+ * continues along an internal linear ring from that vertex offset until
27828
+ * reaching either the end of the positions array, or the next hole offset.
27829
+ */
27830
+ setHoles(holes: TypedArray): void;
27831
+ /**
27832
+ * Returns the number of (VEC3) vertices in the specified hole.
27833
+ */
27834
+ getHoleVertexCount(holeIndex: number): number;
27835
+ /**
27836
+ * Returns an array view of the inner linear ring vertex positions for the
27837
+ * specified hole. If 'result' argument is given, vertex positions are written
27838
+ * to that array and returned. Otherwise, returns an ArrayView on collection
27839
+ * memory — changes to this array will not trigger render updates, which
27840
+ * requires `.setPositions()`.
27841
+ * @param [result] - return {TypedArray}
27842
+ */
27843
+ getHolePositions(holeIndex: number, result?: TypedArray): void;
27844
+ /**
27845
+ * Count of triangles in this polygon, number of VEC3 elements.
27846
+ */
27847
+ readonly triangleCount: number;
27848
+ /**
27849
+ * Returns an array view of this polygon's triangle indices, represented as
27850
+ * three vertex indices per triangle.
27851
+ *
27852
+ * If 'result' argument is given, triangle indices are written to that array
27853
+ * and returned. Otherwise, returns an ArrayView on collection memory —
27854
+ * changes to this array will not trigger render updates, which requires
27855
+ * `.setTriangles()`.
27856
+ */
27857
+ getTriangles(result?: TypedArray): TypedArray;
27858
+ /**
27859
+ * Sets this polygon's triangle indices, represented as three vertex indices
27860
+ * per triangle.
27861
+ */
27862
+ setTriangles(indices: TypedArray): void;
27863
+ /**
27864
+ * Returns a JSON-serializable object representing the polygon. This encoding
27865
+ * is not memory-efficient, and should generally be used for debugging and
27866
+ * testing.
27867
+ * @returns JSON-serializable object.
27868
+ */
27869
+ toJSON(): any;
27870
+ }
27871
+
27872
+ /**
27873
+ * @property [options.modelMatrix = Matrix4.IDENTITY] - Transforms geometry from model to world coordinates.
27874
+ */
27875
+ export type BufferPolygonOptions = {
27876
+ show?: boolean;
27877
+ material?: BufferPolygonMaterial;
27878
+ positions?: TypedArray;
27879
+ holes?: TypedArray;
27880
+ triangles?: TypedArray;
27881
+ };
27882
+
27883
+ /**
27884
+ * Collection of polygons held in ArrayBuffer storage for performance and memory optimization.
27885
+ *
27886
+ * <p>Default buffer memory allocation is arbitrary, and collections cannot be resized,
27887
+ * so specific per-buffer capacities should be provided in the collection
27888
+ * constructor when available.</p>
27889
+ * @example
27890
+ * import earcut from "earcut";
27891
+ *
27892
+ * const collection = new BufferPolygonCollection({
27893
+ * primitiveCountMax: 1024,
27894
+ * vertexCountMax: 4096,
27895
+ * holeCountMax: 1024,
27896
+ * triangleCountMax: 2048,
27897
+ * });
27898
+ *
27899
+ * const polygon = new BufferPolygon();
27900
+ * const positions = [ ... ];
27901
+ * const holes = [ ... ];
27902
+ * const material = new BufferPolygonMaterial({color: Color.WHITE});
27903
+ *
27904
+ * // Create a new polygon, temporarily bound to 'polygon' local variable.
27905
+ * collection.add({
27906
+ * positions: new Float64Array(positions),
27907
+ * holes: new Uint32Array(holes),
27908
+ * triangles: new Uint32Array(earcut(positions, holes, 3)),
27909
+ * material
27910
+ * }, polygon);
27911
+ *
27912
+ * // Iterate over all polygons in collection, temporarily binding 'polygon'
27913
+ * // local variable to each, and updating polygon material.
27914
+ * for (let i = 0; i < collection.primitiveCount; i++) {
27915
+ * collection.get(i, polygon);
27916
+ * polygon.setMaterial(material);
27917
+ * }
27918
+ * @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.
27919
+ */
27920
+ export class BufferPolygonCollection extends BufferPrimitiveCollection<BufferPolygon> {
27921
+ constructor(options: {
27922
+ primitiveCountMax?: number;
27923
+ vertexCountMax?: number;
27924
+ holeCountMax?: number;
27925
+ triangleCountMax?: number;
27926
+ positionDatatype?: ComponentDatatype;
27927
+ show?: boolean;
27928
+ allowPicking?: boolean;
27929
+ debugShowBoundingVolume?: boolean;
27930
+ });
27931
+ /**
27932
+ * Duplicates the contents of this collection into the result collection.
27933
+ * Result collection is not resized, and must contain enough space for all
27934
+ * primitives in the source collection. Existing polygons in the result
27935
+ * collection will be overwritten.
27936
+ *
27937
+ * <p>Useful when allocating more space for a collection that has reached its
27938
+ * capacity, and efficiently transferring polygons to the new collection.</p>
27939
+ * @example
27940
+ * const result = new BufferPolygonCollection({ ... }); // allocate larger 'result' collection
27941
+ * BufferPolygonCollection.clone(collection, result); // copy polygons from 'collection' into 'result'
27942
+ */
27943
+ static clone(collection: BufferPolygonCollection, result: BufferPolygonCollection): BufferPolygonCollection;
27944
+ /**
27945
+ * Adds a new polygon to the collection, with the specified options. A
27946
+ * {@link BufferPolygon} instance is linked to the new polygon, using
27947
+ * the 'result' argument if given, or a new instance if not. For repeated
27948
+ * calls, prefer to reuse a single BufferPolygon instance rather than
27949
+ * allocating a new instance on each call.
27950
+ */
27951
+ add(options: BufferPolygonOptions, result: BufferPolygon): BufferPolygon;
27952
+ /**
27953
+ * Total byte length of buffers owned by this collection. Includes any unused
27954
+ * space allocated by {@link primitiveCountMax}, even if no polygons have
27955
+ * yet been added in that space.
27956
+ */
27957
+ readonly byteLength: number;
27958
+ /**
27959
+ * Number of holes in collection. Must be <= {@link holeCountMax}.
27960
+ */
27961
+ readonly holeCount: number;
27962
+ /**
27963
+ * Maximum number of holes in collection. Must be >= {@link holeCount}.
27964
+ */
27965
+ readonly holeCountMax: number;
27966
+ /**
27967
+ * Number of triangles in collection. Must be <= {@link triangleCountMax}.
27968
+ */
27969
+ readonly triangleCount: number;
27970
+ /**
27971
+ * Maximum number of triangles in collection. Must be >= {@link triangleCount}.
27972
+ */
27973
+ readonly triangleCountMax: number;
27974
+ }
27975
+
27976
+ /**
27977
+ * @property [color = Color.WHITE] - Color of fill.
27978
+ * @property [outlineColor = Color.WHITE] - Color of outline.
27979
+ * @property [outlineWidth = 0.0] - Width of outline, 0-255px.
27980
+ */
27981
+ export type BufferPolygonMaterialOptions = {
27982
+ color?: Color;
27983
+ outlineColor?: Color;
27984
+ outlineWidth?: number;
27985
+ };
27986
+
27987
+ /**
27988
+ * Material description for a {@link BufferPolygon}.
27989
+ *
27990
+ * <p>BufferPolygonMaterial objects are {@link Packable|packable}, stored
27991
+ * when calling {@link BufferPolygon#setMaterial}. Subsequent changes to the
27992
+ * material will not affect the polygon until setMaterial() is called again.</p>
27993
+ */
27994
+ export class BufferPolygonMaterial extends BufferPrimitiveMaterial {
27995
+ constructor(options?: BufferPolygonMaterialOptions);
27996
+ /**
27997
+ * Color of fill.
27998
+ */
27999
+ color: Color;
28000
+ /**
28001
+ * Color of outline.
28002
+ */
28003
+ outlineColor: Color;
28004
+ /**
28005
+ * Width of outline, 0-255px.
28006
+ */
28007
+ outlineWidth: number;
28008
+ /**
28009
+ * Returns a JSON-serializable object representing the material. This encoding
28010
+ * is not memory-efficient, and should generally be used for debugging and
28011
+ * testing.
28012
+ * @returns JSON-serializable object.
28013
+ */
28014
+ toJSON(): any;
28015
+ }
28016
+
28017
+ /**
28018
+ * View bound to the underlying buffer data of a {@link BufferPolylineCollection}.
28019
+ *
28020
+ * <p>BufferPolyline instances are {@link https://en.wikipedia.org/wiki/Flyweight_pattern|flyweights}:
28021
+ * a single BufferPolyline instance can be temporarily bound to any conceptual
28022
+ * "polyline" in a BufferPolylineCollection, allowing very large collections to be
28023
+ * iterated and updated with a minimal memory footprint.</p>
28024
+ *
28025
+ * Represented as two (2) or more positions.
28026
+ */
28027
+ export class BufferPolyline extends BufferPrimitive {
28028
+ /**
28029
+ * Copies data from source polyline to result. If the result polyline is not
28030
+ * new (the last polyline in the collection) then source and result polylines
28031
+ * must have the same vertex counts.
28032
+ */
28033
+ static clone(polyline: BufferPolyline, result: BufferPolyline): BufferPolyline;
28034
+ /**
28035
+ * Count of positions (vertices) in this polyline, number of VEC3 elements.
28036
+ */
28037
+ readonly vertexCount: number;
28038
+ /**
28039
+ * Returns an array view of this polyline's vertex positions. If 'result'
28040
+ * argument is given, vertex positions are written to that array and returned.
28041
+ * Otherwise, returns an ArrayView on collection memory — changes to this array
28042
+ * will not trigger render updates, which requires `.setPositions()`.
28043
+ * @param [result] - return {TypedArray}
28044
+ */
28045
+ getPositions(result?: TypedArray): void;
28046
+ setPositions(positions: TypedArray): void;
28047
+ /**
28048
+ * Returns a JSON-serializable object representing the polyline. This encoding
28049
+ * is not memory-efficient, and should generally be used for debugging and
28050
+ * testing.
28051
+ * @returns JSON-serializable object.
28052
+ */
28053
+ toJSON(): any;
28054
+ }
28055
+
28056
+ /**
28057
+ * @property [options.modelMatrix = Matrix4.IDENTITY] - Transforms geometry from model to world coordinates.
28058
+ */
28059
+ export type BufferPolylineOptions = {
28060
+ show?: boolean;
28061
+ material?: BufferPolylineMaterial;
28062
+ positions?: TypedArray;
28063
+ };
28064
+
28065
+ /**
28066
+ * Collection of polylines held in ArrayBuffer storage for performance and memory optimization.
28067
+ *
28068
+ * <p>Default buffer memory allocation is arbitrary, and collections cannot be resized,
28069
+ * so specific per-buffer capacities should be provided in the collection
28070
+ * constructor when available.</p>
28071
+ * @example
28072
+ * const collection = new BufferPolylineCollection({
28073
+ * primitiveCountMax: 1024,
28074
+ * vertexCountMax: 4096,
28075
+ * });
28076
+ *
28077
+ * const polyline = new BufferPolyline();
28078
+ * const material = new BufferPolylineMaterial({color: Color.WHITE});
28079
+ *
28080
+ * // Create a new polyline, temporarily bound to 'polyline' local variable.
28081
+ * collection.add({
28082
+ * positions: new Float64Array([ ... ]),
28083
+ * material,
28084
+ * }, polyline);
28085
+ *
28086
+ * // Iterate over all polylines in collection, temporarily binding 'polyline'
28087
+ * // local variable to each, and updating polyline material.
28088
+ * for (let i = 0; i < collection.primitiveCount; i++) {
28089
+ * collection.get(i, polyline);
28090
+ * polyline.setMaterial(material);
28091
+ * }
28092
+ */
28093
+ export class BufferPolylineCollection extends BufferPrimitiveCollection<BufferPolyline> {
28094
+ /**
28095
+ * Adds a new polyline to the collection, with the specified options. A
28096
+ * {@link BufferPolyline} instance is linked to the new polyline, using
28097
+ * the 'result' argument if given, or a new instance if not. For repeated
28098
+ * calls, prefer to reuse a single BufferPolyline instance rather than
28099
+ * allocating a new instance on each call.
28100
+ */
28101
+ add(options: BufferPolylineOptions, result: BufferPolyline): BufferPolyline;
28102
+ }
28103
+
28104
+ /**
28105
+ * @property [color = Color.WHITE] - Color of fill.
28106
+ * @property [outlineColor = Color.WHITE] - Color of outline.
28107
+ * @property [outlineWidth = 0.0] - Width of outline, 0-255px.
28108
+ * @property [width = 1.0] - Width of line, 0-255px.
28109
+ */
28110
+ export type BufferPolylineMaterialOptions = {
28111
+ color?: Color;
28112
+ outlineColor?: Color;
28113
+ outlineWidth?: number;
28114
+ width?: number;
28115
+ };
28116
+
28117
+ /**
28118
+ * Material description for a {@link BufferPolyline}.
28119
+ *
28120
+ * <p>BufferPolylineMaterial objects are {@link Packable|packable}, stored
28121
+ * when calling {@link BufferPolyline#setMaterial}. Subsequent changes to the
28122
+ * material will not affect the polyline until setMaterial() is called again.</p>
28123
+ */
28124
+ export class BufferPolylineMaterial extends BufferPrimitiveMaterial {
28125
+ constructor(options?: BufferPolylineMaterialOptions);
28126
+ /**
28127
+ * Width of polyline, 0–255px.
28128
+ */
28129
+ width: number;
28130
+ static pack(material: BufferPolylineMaterial, view: DataView, byteOffset: number): void;
28131
+ static unpack(view: DataView, byteOffset: number, result: BufferPolylineMaterial): BufferPolylineMaterial;
28132
+ /**
28133
+ * Returns a JSON-serializable object representing the material. This encoding
28134
+ * is not memory-efficient, and should generally be used for debugging and
28135
+ * testing.
28136
+ * @returns JSON-serializable object.
28137
+ */
28138
+ toJSON(): any;
28139
+ /**
28140
+ * Color of fill.
28141
+ */
28142
+ color: Color;
28143
+ /**
28144
+ * Color of outline.
28145
+ */
28146
+ outlineColor: Color;
28147
+ /**
28148
+ * Width of outline, 0-255px.
28149
+ */
28150
+ outlineWidth: number;
28151
+ }
28152
+
28153
+ /**
28154
+ * View bound to the underlying buffer data of a {@link BufferPrimitiveCollection}. Abstract.
28155
+ *
28156
+ * <p>BufferPrimitive instances are intended to be reused when iterating over large collections,
28157
+ * and temporarily bound to a primitive index while performing read/write operations on that primitive,
28158
+ * before being rebound to the next primitive, using the
28159
+ * {@link https://en.wikipedia.org/wiki/Flyweight_pattern|flyweight pattern}.</p>
28160
+ */
28161
+ export class BufferPrimitive {
28162
+ /**
28163
+ * Copies data from source primitive to result. If the result primitive is not
28164
+ * new (the last primitive in the collection) then source and result primitives
28165
+ * must have the same vertex counts.
28166
+ */
28167
+ static clone(primitive: BufferPrimitive, result: BufferPrimitive): BufferPrimitive;
28168
+ /**
28169
+ * Feature ID associated with the primitive; not required to be unique.
28170
+ */
28171
+ featureId: number;
28172
+ /**
28173
+ * Whether primitive is shown.
28174
+ */
28175
+ show: boolean;
28176
+ getMaterial(result: BufferPrimitiveMaterial): BufferPrimitiveMaterial;
28177
+ setMaterial(material: BufferPrimitiveMaterial): void;
28178
+ /**
28179
+ * Returns a JSON-serializable object representing the primitive. This encoding
28180
+ * is not memory-efficient, and should generally be used for debugging and
28181
+ * testing.
28182
+ * @returns JSON-serializable object.
28183
+ */
28184
+ toJSON(): any;
28185
+ }
28186
+
28187
+ export type BufferPrimitiveOptions = {
28188
+ show?: boolean;
28189
+ material?: BufferPrimitiveMaterial;
28190
+ };
28191
+
28192
+ /**
28193
+ * Collection of primitives held in ArrayBuffer storage for performance and memory optimization.
28194
+ *
28195
+ * <p>To get the full performance benefit of using a BufferPrimitiveCollection containing "N" primitives,
28196
+ * be careful to avoid allocating "N" instances of any related JavaScript object. {@link BufferPrimitive},
28197
+ * {@link Color}, {@link Cartesian3}, and other objects can all be reused when working with large collections,
28198
+ * using the {@link https://en.wikipedia.org/wiki/Flyweight_pattern|flyweight pattern}.</p>
28199
+ * @param [options.modelMatrix = Matrix4.IDENTITY] - Transforms geometry from model to world coordinates.
28200
+ * @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.
28201
+ */
28202
+ export class BufferPrimitiveCollection<T extends BufferPrimitive> {
28203
+ constructor(options: {
28204
+ modelMatrix?: Matrix4;
28205
+ primitiveCountMax?: number;
28206
+ vertexCountMax?: number;
28207
+ show?: boolean;
28208
+ positionDatatype?: ComponentDatatype;
28209
+ allowPicking?: boolean;
28210
+ debugShowBoundingVolume?: boolean;
28211
+ });
28212
+ /**
28213
+ * Default capacity of buffers on new collections. A quantity of elements:
28214
+ * number of vertices in the vertex buffer, primitives in the primitive
28215
+ * buffer, etc. This value is arbitrary, and collections cannot be resized,
28216
+ * so specific per-buffer capacities should be provided in the collection
28217
+ * constructor when available.
28218
+ */
28219
+ readonly DEFAULT_CAPACITY: number;
28220
+ /**
28221
+ * Determines if primitives in this collection will be shown.
28222
+ */
28223
+ show: boolean;
28224
+ /**
28225
+ * Transforms geometry from model to world coordinates.
28226
+ */
28227
+ modelMatrix: Matrix4;
28228
+ /**
28229
+ * Local bounding volume for all primitives in the collection, including both
28230
+ * shown and hidden primitives.
28231
+ */
28232
+ boundingVolume: BoundingSphere;
28233
+ /**
28234
+ * World bounding volume for all primitives in the collection, including both
28235
+ * shown and hidden primitives.
28236
+ */
28237
+ boundingVolumeWC: BoundingSphere;
28238
+ /**
28239
+ * This property is for debugging only; it is not for production use nor is it optimized.
28240
+ * <p>
28241
+ * Draws the bounding sphere for each draw command in the primitive.
28242
+ * </p>
28243
+ */
28244
+ debugShowBoundingVolume: boolean;
28245
+ /**
28246
+ * Returns true if this object was destroyed; otherwise, false.
28247
+ * @returns True if this object was destroyed; otherwise, false.
28248
+ */
28249
+ isDestroyed(): boolean;
28250
+ /**
28251
+ * Destroys collection and its GPU resources.
28252
+ */
28253
+ destroy(): void;
28254
+ /**
28255
+ * Sorts primitives of the collection.
28256
+ *
28257
+ * Because sorting changes the indices (but not the feature IDs) of primitives
28258
+ * in the collection, the function also returns an array mapping from previous
28259
+ * index to new index. When sorting repeatedly, the array can be reused and
28260
+ * passed as the 'result' argument for each call.
28261
+ * @returns Mapping from previous index to new index.
28262
+ */
28263
+ sort(sortFn: (...params: any[]) => any, result: Uint32Array): Uint32Array;
28264
+ /**
28265
+ * Duplicates the contents of this collection into the result collection.
28266
+ * Result collection is not resized, and must contain enough space for all
28267
+ * primitives in the source collection. Existing primitives in the result
28268
+ * collection will be overwritten.
28269
+ *
28270
+ * <p>Useful when allocating more space for a collection that has reached its
28271
+ * capacity, and efficiently transferring features to the new collection.</p>
28272
+ * @example
28273
+ * const result = new BufferPrimitiveCollection({ ... }); // allocate larger 'result' collection
28274
+ * BufferPrimitiveCollection.clone(collection, result); // copy primitives from 'collection' into 'result'
28275
+ */
28276
+ static clone<T extends BufferPrimitive>(collection: BufferPrimitiveCollection<T>, result: BufferPrimitiveCollection<T>): void;
28277
+ /**
28278
+ * Makes the given {@link BufferPrimitive} a view onto this collection's
28279
+ * primitive at the given index, for use when reading/writing primitive
28280
+ * properties. When iterating over a large collection, prefer to reuse
28281
+ * the same BufferPrimitive instance throughout the loop — rebinding
28282
+ * an existing instance to a different primitive is cheap, and avoids
28283
+ * allocating in-memory objects for every object.
28284
+ * @example
28285
+ * const primitive = new BufferPrimitive();
28286
+ * for (let i = 0; i < collection.primitiveCount; i++) {
28287
+ * collection.get(i, primitive);
28288
+ * primitive.setColor(Color.RED);
28289
+ * }
28290
+ * @returns The BufferPrimitive instance passed as the
28291
+ * 'result' argument, now bound to the specified primitive index.
28292
+ */
28293
+ get(index: number, result: BufferPrimitive): BufferPrimitive;
28294
+ /**
28295
+ * Adds a new primitive to the collection, with the specified options. A
28296
+ * {@link BufferPrimitive} instance is linked to the new primitive, using
28297
+ * the 'result' argument if given, or a new instance if not. For repeated
28298
+ * calls, prefer to reuse a single BufferPrimitive instance rather than
28299
+ * allocating a new instance on each call.
28300
+ */
28301
+ add(options: BufferPrimitiveOptions, result: BufferPrimitive): BufferPrimitive;
28302
+ update(frameState: any): void;
28303
+ /**
28304
+ * Number of primitives in collection. Must be <= {@link primitiveCountMax}.
28305
+ */
28306
+ readonly primitiveCount: number;
28307
+ /**
28308
+ * Maximum number of primitives this collection can contain. Must be >=
28309
+ * {@link primitiveCount}.
28310
+ */
28311
+ readonly primitiveCountMax: number;
28312
+ /**
28313
+ * Total byte length of buffers owned by this collection. Includes any unused
28314
+ * space allocated by {@link primitiveCountMax}, even if no primitives have
28315
+ * yet been added in that space.
28316
+ */
28317
+ readonly byteLength: number;
28318
+ /**
28319
+ * Number of vertices in collection. Must be <= {@link vertexCountMax}.
28320
+ */
28321
+ readonly vertexCount: number;
28322
+ /**
28323
+ * Maximum number of vertices this collection can contain. Must be >=
28324
+ * {@link vertexCount}.
28325
+ */
28326
+ readonly vertexCountMax: number;
28327
+ /**
28328
+ * Returns a JSON-serializable array representing the collection. This encoding
28329
+ * is not memory-efficient, and should generally be used for debugging and
28330
+ * testing.
28331
+ * @example
28332
+ * console.table(collection.toJSON());
28333
+ * @returns List of JSON-serializable objects, one for each
28334
+ * primitive in the collection.
28335
+ */
28336
+ toJSON(): object[];
28337
+ }
28338
+
28339
+ /**
28340
+ * @property [color = Color.WHITE] - Color of fill.
28341
+ * @property [outlineColor = Color.WHITE] - Color of outline.
28342
+ * @property [outlineWidth = 0.0] - Width of outline, 0-255px.
28343
+ */
28344
+ export type BufferPrimitiveMaterialOptions = {
28345
+ color?: Color;
28346
+ outlineColor?: Color;
28347
+ outlineWidth?: number;
28348
+ };
28349
+
28350
+ /**
28351
+ * Material description for a {@link BufferPrimitive}. Abstract.
28352
+ *
28353
+ * <p>BufferPrimitiveMaterial objects are {@link Packable|packable}, stored
28354
+ * when calling {@link BufferPrimitive#setMaterial}. Subsequent changes to the
28355
+ * material will not affect the primitive until setMaterial() is called again.</p>
28356
+ */
28357
+ export class BufferPrimitiveMaterial {
28358
+ constructor(options?: BufferPrimitiveMaterialOptions);
28359
+ /**
28360
+ * Color of fill.
28361
+ */
28362
+ color: Color;
28363
+ /**
28364
+ * Color of outline.
28365
+ */
28366
+ outlineColor: Color;
28367
+ /**
28368
+ * Width of outline, 0-255px.
28369
+ */
28370
+ outlineWidth: number;
28371
+ static packedLength: number;
28372
+ /**
28373
+ * Stores the provided material into the provided array.
28374
+ */
28375
+ static pack(material: BufferPrimitiveMaterial, view: DataView, byteOffset: number): void;
28376
+ /**
28377
+ * Retrieves a material from a packed array.
28378
+ * @param view - The packed array.
28379
+ * @param byteOffset - Starting index of the element to be unpacked.
28380
+ * @param result - Material into which results are unpacked.
28381
+ * @returns Modified result material, with results unpacked.
28382
+ */
28383
+ static unpack(view: DataView, byteOffset: number, result: BufferPrimitiveMaterial): BufferPrimitiveMaterial;
28384
+ /**
28385
+ * Returns a JSON-serializable object representing the material. This encoding
28386
+ * is not memory-efficient, and should generally be used for debugging and
28387
+ * testing.
28388
+ * @returns JSON-serializable object.
28389
+ */
28390
+ toJSON(): any;
28391
+ }
28392
+
27588
28393
  /**
27589
28394
  * An orientation given by a pair of unit vectors
27590
28395
  * @property direction - The unit "direction" vector
@@ -31311,12 +32116,14 @@ export function equalsArrayCartesian3(a: Cartesian3[] | undefined, b: Cartesian3
31311
32116
  * @param [options.polygons = []] - An array of {@link ClippingPolygon} objects used to selectively disable rendering on the inside of each polygon.
31312
32117
  * @param [options.enabled = true] - Determines whether the clipping polygons are active.
31313
32118
  * @param [options.inverse = false] - If true, a region will be clipped if it is outside of every polygon in the collection. Otherwise, a region will only be clipped if it is on the inside of any polygon.
32119
+ * @param [options.quality = 1.0] - A scalar that controls the resolution of the signed distance texture used for clipping. Values greater than 1.0 increase quality, values less than 1.0 decrease it. Must be greater than 0.0.
31314
32120
  */
31315
32121
  export class ClippingPolygonCollection {
31316
32122
  constructor(options?: {
31317
32123
  polygons?: ClippingPolygon[];
31318
32124
  enabled?: boolean;
31319
32125
  inverse?: boolean;
32126
+ quality?: number;
31320
32127
  });
31321
32128
  /**
31322
32129
  * If true, clipping will be enabled.
@@ -31328,6 +32135,11 @@ export class ClippingPolygonCollection {
31328
32135
  * inside of any polygon.
31329
32136
  */
31330
32137
  inverse: boolean;
32138
+ /**
32139
+ * A scalar that controls the resolution of the signed distance texture used for clipping.
32140
+ * Values greater than 1.0 increase quality, values less than 1.0 decrease it. Must be greater than 0.0.
32141
+ */
32142
+ quality: number;
31331
32143
  /**
31332
32144
  * An event triggered when a new clipping polygon is added to the collection. Event handlers
31333
32145
  * are passed the new polygon and the index at which it was added.
@@ -31773,7 +32585,7 @@ export namespace CubeMapPanorama {
31773
32585
  /**
31774
32586
  * Initialization options for the CubeMapPanorama constructor
31775
32587
  * @property [options.sources] - The source URL or <code>Image</code> object for each of the six cube map faces. See the example below.
31776
- * @property [options.transform] - A 4x4 transformation matrix that defines the panorama’s position and orientation
32588
+ * @property [options.transform] - A 3x3 transformation matrix that defines the panorama’s orientation. If not specified, the default orientation is defined using the True Equator Mean Equinox (TEME) axes.
31777
32589
  * @property [options.show = true] - Determines if this primitive will be shown.
31778
32590
  * @property [options.credit] - A credit for the panorama, which is displayed on the canvas.
31779
32591
  */
@@ -31823,9 +32635,9 @@ export class CubeMapPanorama {
31823
32635
  */
31824
32636
  show: boolean;
31825
32637
  /**
31826
- * Gets the transform of the panorama.
32638
+ * Gets the transform of the panorama. If undefined, the default orientation uses the True Equator Mean Equinox (TEME) axes.
31827
32639
  */
31828
- readonly transform: Matrix4;
32640
+ readonly transform: Matrix3;
31829
32641
  /**
31830
32642
  * Gets the credits of the panorama.
31831
32643
  */
@@ -33100,13 +33912,13 @@ export class GaussianSplat3DTileContent {
33100
33912
  }
33101
33913
 
33102
33914
  /**
33103
- * Describes the format in which to request GetFeatureInfo from a Web Map Service (WMS) server.
33915
+ * Describes the format in which to request GetFeatureInfo from a Web Map Service (WMS) or Web Map Tile Service (WMTS) server.
33104
33916
  * @param type - The type of response to expect from a GetFeatureInfo request. Valid
33105
33917
  * values are 'json', 'xml', 'html', or 'text'.
33106
- * @param [format] - The info format to request from the WMS server. This is usually a
33918
+ * @param [format] - The info format to request from the server. This is usually a
33107
33919
  * MIME type such as 'application/json' or text/xml'. If this parameter is not specified, the provider will request 'json'
33108
33920
  * using 'application/json', 'xml' using 'text/xml', 'html' using 'text/html', and 'text' using 'text/plain'.
33109
- * @param [callback] - A function to invoke with the GetFeatureInfo response from the WMS server
33921
+ * @param [callback] - A function to invoke with the GetFeatureInfo response from the server
33110
33922
  * in order to produce an array of picked {@link ImageryLayerFeatureInfo} instances. If this parameter is not specified,
33111
33923
  * a default function for the type of response is used.
33112
33924
  */
@@ -37332,6 +38144,14 @@ export class Material {
37332
38144
  * the geometry is expected to appear translucent.
37333
38145
  */
37334
38146
  translucent: boolean | ((...params: any[]) => any);
38147
+ /**
38148
+ * The {@link TextureMinificationFilter} to apply to this material's textures.
38149
+ */
38150
+ minificationFilter: TextureMinificationFilter;
38151
+ /**
38152
+ * The {@link TextureMagnificationFilter} to apply to this material's textures.
38153
+ */
38154
+ magnificationFilter: TextureMagnificationFilter;
37335
38155
  /**
37336
38156
  * Creates a new material using an existing material type.
37337
38157
  * <br /><br />
@@ -37491,16 +38311,6 @@ export class Material {
37491
38311
  static readonly WaterMaskType: string;
37492
38312
  }
37493
38313
 
37494
- /**
37495
- * The {@link TextureMinificationFilter} to apply to this material's textures.
37496
- */
37497
- export var minificationFilter: TextureMinificationFilter;
37498
-
37499
- /**
37500
- * The {@link TextureMagnificationFilter} to apply to this material's textures.
37501
- */
37502
- export var magnificationFilter: TextureMagnificationFilter;
37503
-
37504
38314
  /**
37505
38315
  * Loads the images for a cubemap uniform, if it has changed since the last time this was called.
37506
38316
  * @param material - The material to load the cubemap images for.
@@ -37661,11 +38471,6 @@ export namespace MaterialAppearance {
37661
38471
  }
37662
38472
  }
37663
38473
 
37664
- /**
37665
- * Gets or sets the nearest sampling flag.
37666
- */
37667
- export var nearestSampling: boolean;
37668
-
37669
38474
  /**
37670
38475
  * A metadata class.
37671
38476
  *
@@ -37860,6 +38665,13 @@ export class MetadataClassProperty {
37860
38665
  * An object containing extensions.
37861
38666
  */
37862
38667
  readonly extensions: any;
38668
+ /**
38669
+ * Determines the byte size of a single property element, stored on the GPU.
38670
+ * This differs from the CPU byte size if the element type is a 64-bit type that can be
38671
+ * downcast to a 32-bit type for texture packing (only relevant for textures created from property tables).
38672
+ * @returns The byte size of a single property element on the GPU.
38673
+ */
38674
+ gpuBytesPerElement(): number;
37863
38675
  }
37864
38676
 
37865
38677
  /**
@@ -38326,6 +39138,15 @@ export enum CustomShaderTranslucencyMode {
38326
39138
  TRANSLUCENT = 2
38327
39139
  }
38328
39140
 
39141
+ /**
39142
+ * @property colors - The packed per-vertex colors.
39143
+ * @property count - The number of vertices.
39144
+ */
39145
+ export type VertexColorInfo = {
39146
+ colors: Float32Array;
39147
+ count: number;
39148
+ };
39149
+
38329
39150
  export namespace AnchorPointDirect {
38330
39151
  /**
38331
39152
  * Initialization options for the AnchorPointDirect constructor
@@ -40473,35 +41294,6 @@ export class PerInstanceColorAppearance {
40473
41294
  getRenderState(): any;
40474
41295
  }
40475
41296
 
40476
- /**
40477
- * The optional ID of the metadata schema
40478
- */
40479
- export var schemaId: string | undefined;
40480
-
40481
- /**
40482
- * The name of the metadata class
40483
- */
40484
- export var className: string;
40485
-
40486
- /**
40487
- * The name of the metadata property
40488
- */
40489
- export var propertyName: string;
40490
-
40491
- /**
40492
- * The the `MetadataClassProperty` that is described by this
40493
- * structure, as obtained from the `MetadataSchema`
40494
- */
40495
- export var classProperty: MetadataClassProperty;
40496
-
40497
- /**
40498
- * The `PropertyTextureProperty` or `PropertyAttributeProperty` that
40499
- * is described by this structure, as obtained from the property texture
40500
- * or property attribute of the `StructuralMetadata` that matches the
40501
- * class name and property name.
40502
- */
40503
- export var metadataProperty: any;
40504
-
40505
41297
  /**
40506
41298
  * Compute the rectangle that describes the part of the drawing buffer
40507
41299
  * that is relevant for picking.
@@ -43761,10 +44553,6 @@ export class SkyBox {
43761
44553
  sources?: any;
43762
44554
  show?: boolean;
43763
44555
  });
43764
- /**
43765
- * Determines if the sky box will be shown.
43766
- */
43767
- show: boolean;
43768
44556
  /**
43769
44557
  * Gets or sets the the primitive object.
43770
44558
  */
@@ -43806,6 +44594,11 @@ export class SkyBox {
43806
44594
  static createEarthSkyBox(): SkyBox;
43807
44595
  }
43808
44596
 
44597
+ /**
44598
+ * Determines if the sky box will be shown.
44599
+ */
44600
+ export var show: boolean;
44601
+
43809
44602
  /**
43810
44603
  * A ParticleEmitter that emits particles within a sphere.
43811
44604
  * Particles will be positioned randomly within the sphere and have initial velocities emanating from the center of the sphere.
@@ -45429,13 +46222,14 @@ export namespace WebMapServiceImageryProvider {
45429
46222
  * @property url - The URL of the WMS service. The URL supports the same keywords as the {@link UrlTemplateImageryProvider}.
45430
46223
  * @property layers - The layers to include, separated by commas.
45431
46224
  * @property [parameters = WebMapServiceImageryProvider.DefaultParameters] - Additional parameters to pass to the WMS server in the GetMap URL.
45432
- * @property [getFeatureInfoParameters = WebMapServiceImageryProvider.GetFeatureInfoDefaultParameters] - Additional parameters to pass to the WMS server in the GetFeatureInfo URL.
45433
46225
  * @property [enablePickFeatures = true] - If true, {@link WebMapServiceImageryProvider#pickFeatures} will invoke
45434
46226
  * the GetFeatureInfo operation on the WMS server and return the features included in the response. If false,
45435
46227
  * {@link WebMapServiceImageryProvider#pickFeatures} will immediately return undefined (indicating no pickable features)
45436
46228
  * without communicating with the server. Set this property to false if you know your WMS server does not support
45437
46229
  * GetFeatureInfo or if you don't want this provider's features to be pickable. Note that this can be dynamically
45438
46230
  * overridden by modifying the WebMapServiceImageryProvider#enablePickFeatures property.
46231
+ * @property [getFeatureInfoParameters = WebMapServiceImageryProvider.GetFeatureInfoDefaultParameters] - Additional parameters to pass to the WMS server in the GetFeatureInfo URL.
46232
+ * @property [getFeatureInfoUrl] - The getFeatureInfo URL of the WMS service. If the property is not defined then we use the property value of url.
45439
46233
  * @property [getFeatureInfoFormats = WebMapServiceImageryProvider.DefaultGetFeatureInfoFormats] - The formats
45440
46234
  * in which to try WMS GetFeatureInfo requests.
45441
46235
  * @property [rectangle = Rectangle.MAX_VALUE] - The rectangle of the layer.
@@ -45458,14 +46252,14 @@ export namespace WebMapServiceImageryProvider {
45458
46252
  * an array, each element in the array is a subdomain.
45459
46253
  * @property [clock] - A Clock instance that is used when determining the value for the time dimension. Required when `times` is specified.
45460
46254
  * @property [times] - TimeIntervalCollection with its data property being an object containing time dynamic dimension and their values.
45461
- * @property [getFeatureInfoUrl] - The getFeatureInfo URL of the WMS service. If the property is not defined then we use the property value of url.
45462
46255
  */
45463
46256
  type ConstructorOptions = {
45464
46257
  url: Resource | string;
45465
46258
  layers: string;
45466
46259
  parameters?: any;
45467
- getFeatureInfoParameters?: any;
45468
46260
  enablePickFeatures?: boolean;
46261
+ getFeatureInfoParameters?: any;
46262
+ getFeatureInfoUrl?: Resource | string;
45469
46263
  getFeatureInfoFormats?: GetFeatureInfoFormat[];
45470
46264
  rectangle?: Rectangle;
45471
46265
  tilingScheme?: TilingScheme;
@@ -45480,7 +46274,6 @@ export namespace WebMapServiceImageryProvider {
45480
46274
  subdomains?: string | string[];
45481
46275
  clock?: Clock;
45482
46276
  times?: TimeIntervalCollection;
45483
- getFeatureInfoUrl?: Resource | string;
45484
46277
  };
45485
46278
  }
45486
46279
 
@@ -45639,21 +46432,32 @@ export namespace WebMapTileServiceImageryProvider {
45639
46432
  * @property layer - The layer name for WMTS requests.
45640
46433
  * @property style - The style name for WMTS requests.
45641
46434
  * @property tileMatrixSetID - The identifier of the TileMatrixSet to use for WMTS requests.
45642
- * @property [tileMatrixLabels] - A list of identifiers in the TileMatrix to use for WMTS requests, one per TileMatrix level.
45643
- * @property [clock] - A Clock instance that is used when determining the value for the time dimension. Required when `times` is specified.
45644
- * @property [times] - TimeIntervalCollection with its <code>data</code> property being an object containing time dynamic dimension and their values.
45645
- * @property [dimensions] - A object containing static dimensions and their values.
46435
+ * @property [enablePickFeatures] - If true, {@link WebMapTileServiceImageryProvider#pickFeatures} will invoke
46436
+ * the GetFeatureInfo operation on the WMTS server and return the features included in the response. If false,
46437
+ * {@link WebMapTileServiceImageryProvider#pickFeatures} will immediately return undefined (indicating no pickable features)
46438
+ * without communicating with the server. Set this property to false if you know your WMTS server does not support
46439
+ * GetFeatureInfo or if you don't want this provider's features to be pickable.
46440
+ * Defaults to true for KVP encoding. For RESTful encoding, defaults to true only when
46441
+ * {@link WebMapTileServiceImageryProvider.ConstructorOptions#getFeatureInfoUrl} is specified, and false otherwise.
46442
+ * @property [getFeatureInfoParameters] - Additional parameters to include in GetFeatureInfo requests. Keys are lowercased internally.
46443
+ * @property [getFeatureInfoUrl] - The GetFeatureInfo URL of the WMTS service. If not specified, the value of <code>url</code> is used.
46444
+ * @property [getFeatureInfoFormats = WebMapTileServiceImageryProvider.DefaultGetFeatureInfoFormats] - The formats
46445
+ * in which to try WMTS GetFeatureInfo requests.
46446
+ * @property [rectangle = Rectangle.MAX_VALUE] - The rectangle covered by the layer.
46447
+ * @property [tilingScheme] - The tiling scheme corresponding to the organization of the tiles in the TileMatrixSet.
46448
+ * @property [ellipsoid] - The ellipsoid. If not specified, the WGS84 ellipsoid is used.
45646
46449
  * @property [tileWidth = 256] - The tile width in pixels.
45647
46450
  * @property [tileHeight = 256] - The tile height in pixels.
45648
- * @property [tilingScheme] - The tiling scheme corresponding to the organization of the tiles in the TileMatrixSet.
45649
- * @property [rectangle = Rectangle.MAX_VALUE] - The rectangle covered by the layer.
45650
46451
  * @property [minimumLevel = 0] - The minimum level-of-detail supported by the imagery provider.
45651
46452
  * @property [maximumLevel] - The maximum level-of-detail supported by the imagery provider, or undefined if there is no limit.
45652
- * @property [ellipsoid] - The ellipsoid. If not specified, the WGS84 ellipsoid is used.
46453
+ * @property [tileMatrixLabels] - A list of identifiers in the TileMatrix to use for WMTS requests, one per TileMatrix level.
45653
46454
  * @property [credit] - A credit for the data source, which is displayed on the canvas.
45654
46455
  * @property [subdomains = 'abc'] - The subdomains to use for the <code>{s}</code> placeholder in the URL template.
45655
46456
  * If this parameter is a single string, each character in the string is a subdomain. If it is
45656
46457
  * an array, each element in the array is a subdomain.
46458
+ * @property [clock] - A Clock instance that is used when determining the value for the time dimension. Required when `times` is specified.
46459
+ * @property [times] - TimeIntervalCollection with its <code>data</code> property being an object containing time dynamic dimension and their values.
46460
+ * @property [dimensions] - A object containing static dimensions and their values.
45657
46461
  */
45658
46462
  type ConstructorOptions = {
45659
46463
  url: Resource | string;
@@ -45661,19 +46465,23 @@ export namespace WebMapTileServiceImageryProvider {
45661
46465
  layer: string;
45662
46466
  style: string;
45663
46467
  tileMatrixSetID: string;
45664
- tileMatrixLabels?: any[];
45665
- clock?: Clock;
45666
- times?: TimeIntervalCollection;
45667
- dimensions?: any;
46468
+ enablePickFeatures?: boolean;
46469
+ getFeatureInfoParameters?: any;
46470
+ getFeatureInfoUrl?: Resource | string;
46471
+ getFeatureInfoFormats?: GetFeatureInfoFormat[];
46472
+ rectangle?: Rectangle;
46473
+ tilingScheme?: TilingScheme;
46474
+ ellipsoid?: Ellipsoid;
45668
46475
  tileWidth?: number;
45669
46476
  tileHeight?: number;
45670
- tilingScheme?: TilingScheme;
45671
- rectangle?: Rectangle;
45672
46477
  minimumLevel?: number;
45673
46478
  maximumLevel?: number;
45674
- ellipsoid?: Ellipsoid;
46479
+ tileMatrixLabels?: any[];
45675
46480
  credit?: Credit | string;
45676
46481
  subdomains?: string | string[];
46482
+ clock?: Clock;
46483
+ times?: TimeIntervalCollection;
46484
+ dimensions?: any;
45677
46485
  };
45678
46486
  }
45679
46487
 
@@ -45706,27 +46514,85 @@ export namespace WebMapTileServiceImageryProvider {
45706
46514
  * });
45707
46515
  * viewer.imageryLayers.addImageryProvider(shadedRelief2);
45708
46516
  * @example
45709
- * // Example 3. NASA time dynamic weather data (RESTful)
46517
+ * // Example 3: NASA time dynamic snowpack data (RESTful)
46518
+ * // Define time intervals for the layer based on the capabilities XML
45710
46519
  * const times = Cesium.TimeIntervalCollection.fromIso8601({
45711
- * iso8601: '2015-07-30/2017-06-16/P1D',
45712
- * dataCallback: function dataCallback(interval, index) {
45713
- * return {
45714
- * Time: Cesium.JulianDate.toIso8601(interval.start)
45715
- * };
45716
- * }
46520
+ * iso8601: '2025-01-01/2025-09-01/P5D', // Use the valid interval(s) from the Dimension section
46521
+ * dataCallback: function(interval, index) {
46522
+ * // Return an object with the Time variable used in the URL template
46523
+ * return {
46524
+ * Time: Cesium.JulianDate.toIso8601(interval.start, 0)
46525
+ * };
46526
+ * }
45717
46527
  * });
46528
+ * // Get the internal clock, set desired start, stop, and multiplier
46529
+ * const clock = viewer.clock;
46530
+ * clock.startTime = Cesium.JulianDate.fromIso8601('2025-01-01');
46531
+ * clock.currentTime = Cesium.JulianDate.fromIso8601('2025-01-01');
46532
+ * clock.stopTime = Cesium.JulianDate.fromIso8601('2025-09-01');
46533
+ * clock.clockRange = Cesium.ClockRange.LOOP_STOP;
46534
+ * clock.multiplier = 1; // 1 day per second
46535
+ * clock.clockStep = Cesium.ClockStep.SYSTEM_CLOCK_MULTIPLIER;
46536
+ *
46537
+ * viewer.timeline.zoomTo(clock.startTime, clock.stopTime);
46538
+ *
45718
46539
  * const weather = new Cesium.WebMapTileServiceImageryProvider({
45719
- * url : 'https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/AMSR2_Snow_Water_Equivalent/default/{Time}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png',
45720
- * layer : 'AMSR2_Snow_Water_Equivalent',
45721
- * style : 'default',
45722
- * tileMatrixSetID : '2km',
45723
- * maximumLevel : 5,
45724
- * format : 'image/png',
46540
+ * url: 'https://gibs.earthdata.nasa.gov/wmts/epsg3857/best/AMSRU2_Snow_Water_Equivalent_5Day/default/{Time}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png',
46541
+ * layer: 'AMSRU2_Snow_Water_Equivalent_5Day',
46542
+ * style: 'default',
46543
+ * tileMatrixSetID: 'GoogleMapsCompatible_Level6',
46544
+ * format: 'image/png',
45725
46545
  * clock: clock,
45726
46546
  * times: times,
45727
- * credit : new Cesium.Credit('NASA Global Imagery Browse Services for EOSDIS')
46547
+ * credit: new Cesium.Credit('NASA Global Imagery Browse Services for EOSDIS')
45728
46548
  * });
45729
46549
  * viewer.imageryLayers.addImageryProvider(weather);
46550
+ * @example
46551
+ * // Example 4. Digital Earth AfricA waterbodies with GetFeatureInfo support (RESTful)
46552
+ * const waterbodies = new Cesium.WebMapTileServiceImageryProvider({
46553
+ * url: "https://geoserver.digitalearth.africa/geoserver/gwc/service/wmts/rest/{layer}/{style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}?format={format}",
46554
+ * layer: "waterbodies:DEAfrica_Waterbodies",
46555
+ * style: "waterbodies:waterbodies_v0_0_4",
46556
+ * tileMatrixSetID: "EPSG:3857",
46557
+ * tileMatrixLabels: [
46558
+ * "EPSG:3857:0",
46559
+ * "EPSG:3857:1",
46560
+ * "EPSG:3857:2",
46561
+ * "EPSG:3857:3",
46562
+ * "EPSG:3857:4",
46563
+ * "EPSG:3857:5",
46564
+ * "EPSG:3857:6",
46565
+ * "EPSG:3857:7",
46566
+ * "EPSG:3857:8",
46567
+ * "EPSG:3857:9",
46568
+ * "EPSG:3857:10",
46569
+ * "EPSG:3857:11",
46570
+ * "EPSG:3857:12",
46571
+ * "EPSG:3857:13",
46572
+ * "EPSG:3857:14",
46573
+ * "EPSG:3857:15",
46574
+ * "EPSG:3857:16",
46575
+ * "EPSG:3857:17",
46576
+ * "EPSG:3857:18",
46577
+ * "EPSG:3857:19",
46578
+ * "EPSG:3857:20",
46579
+ * "EPSG:3857:21",
46580
+ * "EPSG:3857:22",
46581
+ * "EPSG:3857:23",
46582
+ * "EPSG:3857:24",
46583
+ * "EPSG:3857:25",
46584
+ * "EPSG:3857:26",
46585
+ * "EPSG:3857:27",
46586
+ * "EPSG:3857:28",
46587
+ * "EPSG:3857:29",
46588
+ * "EPSG:3857:30",
46589
+ * ],
46590
+ * format: "image/png",
46591
+ * enablePickFeatures: true,
46592
+ * getFeatureInfoUrl: "https://geoserver.digitalearth.africa/geoserver/gwc/service/wmts/rest/{layer}/{style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}/{j}/{i}?format={format}",
46593
+ * });
46594
+ *
46595
+ * viewer.imageryLayers.addImageryProvider(waterbodies);
45730
46596
  * @param options - Object describing initialization options
45731
46597
  */
45732
46598
  export class WebMapTileServiceImageryProvider {
@@ -45792,6 +46658,16 @@ export class WebMapTileServiceImageryProvider {
45792
46658
  * and texture upload time are reduced.
45793
46659
  */
45794
46660
  readonly hasAlphaChannel: boolean;
46661
+ /**
46662
+ * Gets or sets a value indicating whether feature picking is enabled. If true, {@link WebMapTileServiceImageryProvider#pickFeatures} will
46663
+ * invoke the <code>GetFeatureInfo</code> service on the WMTS server and attempt to interpret the features included in the response. If false,
46664
+ * {@link WebMapTileServiceImageryProvider#pickFeatures} will immediately return undefined (indicating no pickable
46665
+ * features) without communicating with the server. Set this property to false if you know your data
46666
+ * source does not support picking features or if you don't want this provider's features to be pickable.
46667
+ * Defaults to true for KVP encoding. For RESTful encoding, defaults to true only when
46668
+ * {@link WebMapTileServiceImageryProvider.ConstructorOptions#getFeatureInfoUrl} is specified, and false otherwise.
46669
+ */
46670
+ enablePickFeatures: boolean;
45795
46671
  /**
45796
46672
  * Gets or sets a clock that is used to get keep the time used for time dynamic parameters.
45797
46673
  */
@@ -45806,6 +46682,10 @@ export class WebMapTileServiceImageryProvider {
45806
46682
  * Gets or sets an object that contains static dimensions and their values.
45807
46683
  */
45808
46684
  dimensions: any;
46685
+ /**
46686
+ * Gets the getFeatureInfo URL of the WMTS server.
46687
+ */
46688
+ readonly getFeatureInfoUrl: Resource | string;
45809
46689
  /**
45810
46690
  * Gets the credits to be displayed when a given tile is displayed.
45811
46691
  * @param x - The tile X coordinate.
@@ -45825,16 +46705,32 @@ export class WebMapTileServiceImageryProvider {
45825
46705
  */
45826
46706
  requestImage(x: number, y: number, level: number, request?: Request): Promise<ImageryTypes> | undefined;
45827
46707
  /**
45828
- * Picking features is not currently supported by this imagery provider, so this function simply returns
45829
- * undefined.
46708
+ * Asynchronously determines what features, if any, are located at a given longitude and latitude within
46709
+ * a tile.
45830
46710
  * @param x - The tile X coordinate.
45831
46711
  * @param y - The tile Y coordinate.
45832
46712
  * @param level - The tile level.
45833
46713
  * @param longitude - The longitude at which to pick features.
45834
46714
  * @param latitude - The latitude at which to pick features.
45835
- * @returns Undefined since picking is not supported.
46715
+ * @returns A promise for the picked features that will resolve when the asynchronous
46716
+ * picking completes. The resolved value is an array of {@link ImageryLayerFeatureInfo}
46717
+ * instances. The array may be empty if no features are found at the given location.
45836
46718
  */
45837
- pickFeatures(x: number, y: number, level: number, longitude: number, latitude: number): undefined;
46719
+ pickFeatures(x: number, y: number, level: number, longitude: number, latitude: number): Promise<ImageryLayerFeatureInfo[]> | undefined;
46720
+ /**
46721
+ * The default parameters to include in the WMTS URL to obtain images. The values are as follows:
46722
+ * service=WMTS
46723
+ * version=1.0.0
46724
+ * request=GetTile
46725
+ */
46726
+ static readonly DefaultParameters: any;
46727
+ /**
46728
+ * The default parameters to include in the WMTS URL to get feature information. The values are as follows:
46729
+ * service=WMTS
46730
+ * version=1.0.0
46731
+ * request=GetFeatureInfo
46732
+ */
46733
+ static readonly GetFeatureInfoDefaultParameters: any;
45838
46734
  }
45839
46735
 
45840
46736
  /**