@cesium/engine 23.0.1 → 25.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 (398) hide show
  1. package/Build/Workers/{chunk-ZEMJQKHD.js → chunk-35H3UBIO.js} +13 -12
  2. package/Build/Workers/{chunk-PQTSXJBJ.js → chunk-3LSD7OOA.js} +16 -16
  3. package/Build/Workers/{chunk-PUO7BYDY.js → chunk-3RFFPH4M.js} +1 -1
  4. package/Build/Workers/{chunk-PBECJOWF.js → chunk-3TKLDHV3.js} +2 -2
  5. package/Build/Workers/{chunk-TMCTZ5E3.js → chunk-3VDDRF2E.js} +14 -14
  6. package/Build/Workers/{chunk-FKU77FNM.js → chunk-3XY3MVPG.js} +4 -4
  7. package/Build/Workers/{chunk-2OBWHTIC.js → chunk-4GF4MVPY.js} +7 -7
  8. package/Build/Workers/{chunk-JUKGMJX7.js → chunk-4MTRQFJP.js} +3 -2
  9. package/Build/Workers/{chunk-66OWUDO7.js → chunk-4QQXGTCE.js} +8 -8
  10. package/Build/Workers/{chunk-ALTCIHRH.js → chunk-4XXHJI6Y.js} +17 -17
  11. package/Build/Workers/{chunk-K7UTK4OM.js → chunk-5T6QQAJW.js} +3 -2
  12. package/Build/Workers/{chunk-IJ3SUMK3.js → chunk-6SDGQI27.js} +3 -2
  13. package/Build/Workers/{chunk-FXSRA5UG.js → chunk-77RL3MBD.js} +6 -5
  14. package/Build/Workers/{chunk-G6MJ3ZW3.js → chunk-7LSFAEWF.js} +12 -11
  15. package/Build/Workers/{chunk-C6HHBKT5.js → chunk-A7A433MD.js} +5 -5
  16. package/Build/Workers/{chunk-PGZ3B6CB.js → chunk-A7ZBMVFS.js} +14 -14
  17. package/Build/Workers/{chunk-OZYB3AOR.js → chunk-ACFFCHHZ.js} +11 -11
  18. package/Build/Workers/{chunk-DNMASBMH.js → chunk-AEAVLYPS.js} +2 -2
  19. package/Build/Workers/{chunk-VPWYHFQA.js → chunk-AWFZHD2B.js} +4 -4
  20. package/Build/Workers/{chunk-TFPG3ZKW.js → chunk-BTX2NL3P.js} +59 -46
  21. package/Build/Workers/{chunk-TNXOPEIG.js → chunk-BVAIWR7O.js} +12 -12
  22. package/Build/Workers/chunk-CKQP3DSS.js +973 -0
  23. package/Build/Workers/{chunk-N6HRZLS6.js → chunk-CZ23Y3RM.js} +2 -2
  24. package/Build/Workers/{chunk-EIC3VAOZ.js → chunk-DFEI5MAV.js} +7 -7
  25. package/Build/Workers/{chunk-BTP3634E.js → chunk-DH26SNAB.js} +4 -1
  26. package/Build/Workers/{chunk-TXYQNXNW.js → chunk-DYT5NR6P.js} +3 -3
  27. package/Build/Workers/{chunk-O67UP5YO.js → chunk-EZARA5FJ.js} +13 -13
  28. package/Build/Workers/{chunk-YSJRB2UZ.js → chunk-FIBS5S7R.js} +2 -2
  29. package/Build/Workers/{chunk-2M7DKGLW.js → chunk-FVLVVOBQ.js} +10 -10
  30. package/Build/Workers/{chunk-B2VA6IEL.js → chunk-GL7DNVUS.js} +5 -5
  31. package/Build/Workers/{chunk-77DJBHMI.js → chunk-GPIGURCG.js} +59 -32
  32. package/Build/Workers/{chunk-QPXGGVHC.js → chunk-H2A4USJR.js} +10 -10
  33. package/Build/Workers/chunk-HSVQATK2.js +147 -0
  34. package/Build/Workers/{chunk-HXEPZWJN.js → chunk-HVMG6AG4.js} +11 -10
  35. package/Build/Workers/{chunk-H3TVRJLY.js → chunk-I3A6DXYZ.js} +4 -4
  36. package/Build/Workers/{chunk-UEWYSOFD.js → chunk-ITD2IN7N.js} +2 -2
  37. package/Build/Workers/{chunk-CYOPNGPX.js → chunk-J3OFS2RD.js} +12 -12
  38. package/Build/Workers/{chunk-RZX6LOG6.js → chunk-J647NNZW.js} +6 -6
  39. package/Build/Workers/{chunk-GLCPE2BJ.js → chunk-J7KQEKPK.js} +13 -13
  40. package/Build/Workers/{chunk-XPMXRJDD.js → chunk-K6NFIRFB.js} +5 -5
  41. package/Build/Workers/{chunk-CID5SY7L.js → chunk-LH5SF3XV.js} +7 -6
  42. package/Build/Workers/{chunk-UOQB7XQI.js → chunk-ND3NTTOF.js} +713 -435
  43. package/Build/Workers/chunk-QO2CGXMP.js +2342 -0
  44. package/Build/Workers/chunk-QSDY4NS7.js +1287 -0
  45. package/Build/Workers/chunk-QXNQQYPV.js +3201 -0
  46. package/Build/Workers/{chunk-CJ7ZDY77.js → chunk-ST2UWDUU.js} +5 -5
  47. package/Build/Workers/{chunk-YDR5LX5Z.js → chunk-TA777BGS.js} +3 -2
  48. package/Build/Workers/{chunk-U4SWB6TI.js → chunk-TAI4HLII.js} +4 -4
  49. package/Build/Workers/{chunk-VX774SWE.js → chunk-URUCCIPS.js} +6 -6
  50. package/Build/Workers/{chunk-MNSNOONX.js → chunk-VQKLRBIK.js} +7 -7
  51. package/Build/Workers/{chunk-CVAAIRNP.js → chunk-WC57YYBN.js} +2 -2
  52. package/Build/Workers/{chunk-QNABVTTP.js → chunk-WN6P5UDH.js} +12 -12
  53. package/Build/Workers/{chunk-CNLXMOPM.js → chunk-WNN5D4W3.js} +12 -11
  54. package/Build/Workers/{chunk-4JJQRZYL.js → chunk-WTQGE7Q6.js} +17 -17
  55. package/Build/Workers/{chunk-FCJQO4NC.js → chunk-WUBKZFF6.js} +2213 -1349
  56. package/Build/Workers/{chunk-3UQ2YMPP.js → chunk-ZAPOS52G.js} +12 -10
  57. package/Build/Workers/{chunk-LHFC4R7Z.js → chunk-ZCCIIBZT.js} +6 -6
  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 +175 -118
  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 +24 -23
  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 +12 -9
  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/ArcType.js +6 -1
  112. package/Source/Core/ArticulationStageType.js +5 -1
  113. package/Source/Core/AssociativeArray.js +100 -94
  114. package/Source/Core/BoundingSphere.js +1296 -1300
  115. package/Source/Core/Cartesian2.js +7 -5
  116. package/Source/Core/Cartesian3.js +9 -8
  117. package/Source/Core/Cartesian4.js +8 -6
  118. package/Source/Core/Cartographic.js +257 -249
  119. package/Source/Core/ClockRange.js +6 -1
  120. package/Source/Core/ClockStep.js +6 -1
  121. package/Source/Core/Color.js +846 -835
  122. package/Source/Core/ComponentDatatype.js +4 -1
  123. package/Source/Core/CornerType.js +6 -1
  124. package/Source/Core/Credit.js +121 -124
  125. package/Source/Core/DeveloperError.js +2 -1
  126. package/Source/Core/Ellipsoid.js +637 -660
  127. package/Source/Core/ExtrapolationType.js +6 -1
  128. package/Source/Core/GeocodeType.js +6 -1
  129. package/Source/Core/GeographicProjection.js +74 -74
  130. package/Source/Core/GeographicTilingScheme.js +179 -198
  131. package/Source/Core/GeometryOffsetAttribute.js +7 -1
  132. package/Source/Core/GeometryType.js +7 -1
  133. package/Source/Core/HeightmapEncoding.js +6 -1
  134. package/Source/Core/ITwinPlatform.js +1 -0
  135. package/Source/Core/Iau2006XysData.js +24 -13
  136. package/Source/Core/IndexDatatype.js +3 -1
  137. package/Source/Core/InterpolationType.js +5 -1
  138. package/Source/Core/Intersect.js +6 -1
  139. package/Source/Core/Ion.js +1 -1
  140. package/Source/Core/IonGeocodeProviderType.js +5 -1
  141. package/Source/Core/JulianDate.js +850 -848
  142. package/Source/Core/KeyboardEventModifier.js +6 -1
  143. package/Source/Core/MapProjection.js +39 -44
  144. package/Source/Core/Matrix2.js +906 -893
  145. package/Source/Core/Matrix3.js +1643 -1575
  146. package/Source/Core/Matrix4.js +2903 -2872
  147. package/Source/Core/PixelFormat.js +3 -1
  148. package/Source/Core/PrimitiveType.js +11 -1
  149. package/Source/Core/Ray.js +62 -60
  150. package/Source/Core/Rectangle.js +913 -904
  151. package/Source/Core/ReferenceFrame.js +6 -1
  152. package/Source/Core/RequestScheduler.js +8 -3
  153. package/Source/Core/RequestState.js +6 -1
  154. package/Source/Core/RequestType.js +6 -1
  155. package/Source/Core/S2Cell.js +2 -2
  156. package/Source/Core/ScreenSpaceEventType.js +6 -1
  157. package/Source/Core/TerrainMesh.js +10 -1
  158. package/Source/Core/TerrainPicker.js +1 -0
  159. package/Source/Core/TerrainQuantization.js +6 -1
  160. package/Source/Core/TilingScheme.js +100 -98
  161. package/Source/Core/TimeConstants.js +6 -1
  162. package/Source/Core/TimeStandard.js +6 -1
  163. package/Source/Core/TrackingReferenceFrame.js +6 -1
  164. package/Source/Core/Visibility.js +6 -1
  165. package/Source/Core/VulkanConstants.js +6 -1
  166. package/Source/Core/WallGeometry.js +1 -1
  167. package/Source/Core/WallOutlineGeometry.js +1 -1
  168. package/Source/Core/WebGLConstants.js +6 -1
  169. package/Source/Core/WebMercatorProjection.js +108 -109
  170. package/Source/Core/WebMercatorTilingScheme.js +246 -242
  171. package/Source/Core/WindingOrder.js +3 -1
  172. package/Source/Core/assert.js +27 -0
  173. package/Source/Core/globalTypes.js +4 -0
  174. package/Source/DataSources/CzmlDataSource.js +9 -0
  175. package/Source/DataSources/PathGraphics.js +13 -0
  176. package/Source/DataSources/PathVisualizer.js +330 -18
  177. package/Source/DataSources/StaticGeometryColorBatch.js +7 -2
  178. package/Source/DataSources/StaticGeometryPerMaterialBatch.js +7 -2
  179. package/Source/DataSources/StaticGroundGeometryPerMaterialBatch.js +4 -1
  180. package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +4 -1
  181. package/Source/DataSources/StripeOrientation.js +6 -1
  182. package/Source/Renderer/BufferUsage.js +20 -9
  183. package/Source/Renderer/Context.js +2 -29
  184. package/Source/Renderer/DrawCommand.js +435 -403
  185. package/Source/Renderer/MipmapHint.js +5 -1
  186. package/Source/Renderer/Pass.js +7 -1
  187. package/Source/Renderer/PickId.js +44 -0
  188. package/Source/Renderer/PixelDatatype.js +3 -1
  189. package/Source/Renderer/RenderState.js +2 -2
  190. package/Source/Renderer/RenderbufferFormat.js +5 -1
  191. package/Source/Renderer/ShaderDestination.js +4 -1
  192. package/Source/Renderer/TextureMagnificationFilter.js +3 -1
  193. package/Source/Renderer/TextureMinificationFilter.js +3 -1
  194. package/Source/Renderer/TextureWrap.js +5 -1
  195. package/Source/Renderer/VertexArray.js +80 -0
  196. package/Source/Scene/AlphaMode.js +5 -1
  197. package/Source/Scene/ArcGisBaseMapType.js +6 -1
  198. package/Source/Scene/ArcGisMapService.js +1 -1
  199. package/Source/Scene/AttributeType.js +3 -1
  200. package/Source/Scene/Axis.js +3 -1
  201. package/Source/Scene/BillboardCollection.js +65 -364
  202. package/Source/Scene/BingMapsStyle.js +6 -1
  203. package/Source/Scene/BlendEquation.js +6 -1
  204. package/Source/Scene/BlendFunction.js +6 -1
  205. package/Source/Scene/BlendOption.js +6 -1
  206. package/Source/Scene/BlendingState.js +6 -1
  207. package/Source/Scene/BufferLoader.js +0 -2
  208. package/Source/Scene/BufferPoint.js +148 -0
  209. package/Source/Scene/BufferPointCollection.js +138 -0
  210. package/Source/Scene/BufferPointMaterial.js +95 -0
  211. package/Source/Scene/BufferPolygon.js +516 -0
  212. package/Source/Scene/BufferPolygonCollection.js +370 -0
  213. package/Source/Scene/BufferPolygonMaterial.js +41 -0
  214. package/Source/Scene/BufferPolyline.js +185 -0
  215. package/Source/Scene/BufferPolylineCollection.js +138 -0
  216. package/Source/Scene/BufferPolylineMaterial.js +93 -0
  217. package/Source/Scene/BufferPrimitive.js +347 -0
  218. package/Source/Scene/BufferPrimitiveCollection.js +818 -0
  219. package/Source/Scene/BufferPrimitiveMaterial.js +140 -0
  220. package/Source/Scene/CameraEventType.js +6 -1
  221. package/Source/Scene/Cesium3DTileColorBlendMode.js +6 -1
  222. package/Source/Scene/Cesium3DTileContent.js +5 -1
  223. package/Source/Scene/Cesium3DTileContentFactory.js +9 -0
  224. package/Source/Scene/Cesium3DTileContentState.js +6 -1
  225. package/Source/Scene/Cesium3DTileContentType.js +3 -1
  226. package/Source/Scene/Cesium3DTileFeature.js +289 -306
  227. package/Source/Scene/Cesium3DTileOptimizationHint.js +6 -1
  228. package/Source/Scene/Cesium3DTilePass.js +5 -1
  229. package/Source/Scene/Cesium3DTilePointFeature.js +433 -511
  230. package/Source/Scene/Cesium3DTileRefine.js +6 -1
  231. package/Source/Scene/Cesium3DTileStyle.js +22 -0
  232. package/Source/Scene/Cesium3DTileVectorFeature.js +586 -0
  233. package/Source/Scene/Cesium3DTileset.js +2 -1
  234. package/Source/Scene/ClassificationType.js +3 -1
  235. package/Source/Scene/ClippingPolygonCollection.js +270 -101
  236. package/Source/Scene/CloudType.js +3 -1
  237. package/Source/Scene/ColorBlendMode.js +4 -1
  238. package/Source/Scene/CubeMapPanorama.js +4 -4
  239. package/Source/Scene/CullFace.js +6 -1
  240. package/Source/Scene/DepthFunction.js +6 -1
  241. package/Source/Scene/DynamicAtmosphereLightingType.js +3 -1
  242. package/Source/Scene/EquirectangularPanorama.js +1 -0
  243. package/Source/Scene/ExpressionNodeType.js +6 -1
  244. package/Source/Scene/GaussianSplat3DTileContent.js +40 -46
  245. package/Source/Scene/GaussianSplatPrimitive.js +413 -70
  246. package/Source/Scene/GetFeatureInfoFormat.js +3 -3
  247. package/Source/Scene/GltfBufferViewLoader.js +0 -2
  248. package/Source/Scene/GltfDracoLoader.js +0 -2
  249. package/Source/Scene/GltfImageLoader.js +0 -3
  250. package/Source/Scene/GltfIndexBufferLoader.js +0 -4
  251. package/Source/Scene/GltfJsonLoader.js +0 -2
  252. package/Source/Scene/GltfLoader.js +215 -39
  253. package/Source/Scene/GltfLoaderUtil.js +14 -0
  254. package/Source/Scene/GltfSpzLoader.js +109 -2
  255. package/Source/Scene/GltfStructuralMetadataLoader.js +0 -2
  256. package/Source/Scene/GltfTextureLoader.js +0 -2
  257. package/Source/Scene/GltfVertexBufferLoader.js +0 -4
  258. package/Source/Scene/HeightReference.js +5 -1
  259. package/Source/Scene/HorizontalOrigin.js +6 -1
  260. package/Source/Scene/ITwinData.js +1 -0
  261. package/Source/Scene/ImageryProvider.js +1 -1
  262. package/Source/Scene/ImageryState.js +6 -1
  263. package/Source/Scene/ImplicitSubdivisionScheme.js +3 -1
  264. package/Source/Scene/InstanceAttributeSemantic.js +3 -1
  265. package/Source/Scene/IonWorldImageryStyle.js +6 -1
  266. package/Source/Scene/JobType.js +6 -1
  267. package/Source/Scene/Label.js +32 -0
  268. package/Source/Scene/LabelCollection.js +14 -13
  269. package/Source/Scene/LabelStyle.js +6 -1
  270. package/Source/Scene/MapMode2D.js +6 -1
  271. package/Source/Scene/Material.js +2 -0
  272. package/Source/Scene/Megatexture.js +1 -0
  273. package/Source/Scene/MetadataClassProperty.js +24 -10
  274. package/Source/Scene/MetadataComponentType.js +118 -24
  275. package/Source/Scene/MetadataSchemaLoader.js +0 -2
  276. package/Source/Scene/MetadataSemantic.js +6 -2
  277. package/Source/Scene/MetadataType.js +3 -1
  278. package/Source/Scene/Model/B3dmLoader.js +0 -3
  279. package/Source/Scene/Model/CustomShaderMode.js +3 -1
  280. package/Source/Scene/Model/CustomShaderPipelineStage.js +3 -1
  281. package/Source/Scene/Model/CustomShaderTranslucencyMode.js +5 -1
  282. package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +735 -264
  283. package/Source/Scene/Model/Extensions/Gpm/PpeSource.js +5 -1
  284. package/Source/Scene/Model/Extensions/Gpm/StorageType.js +5 -1
  285. package/Source/Scene/Model/GeoJsonLoader.js +0 -2
  286. package/Source/Scene/Model/I3dmLoader.js +0 -3
  287. package/Source/Scene/Model/InstancingPipelineStage.js +1 -1
  288. package/Source/Scene/Model/LightingModel.js +5 -1
  289. package/Source/Scene/Model/MaterialPipelineStage.js +331 -3
  290. package/Source/Scene/Model/MetadataPipelineStage.js +3 -3
  291. package/Source/Scene/Model/ModelDrawCommand.js +6 -0
  292. package/Source/Scene/Model/ModelReader.js +475 -4
  293. package/Source/Scene/Model/ModelRuntimePrimitive.js +2 -1
  294. package/Source/Scene/Model/ModelType.js +3 -1
  295. package/Source/Scene/Model/ModelUtility.js +3 -1
  296. package/Source/Scene/Model/PntsLoader.js +4 -3
  297. package/Source/Scene/Model/StyleCommandsNeeded.js +3 -1
  298. package/Source/Scene/Model/UniformType.js +5 -1
  299. package/Source/Scene/Model/VaryingType.js +5 -1
  300. package/Source/Scene/Model/createVectorTileBuffersFromModelComponents.js +375 -0
  301. package/Source/Scene/Model/pickModel.js +94 -299
  302. package/Source/Scene/ModelAnimationLoop.js +6 -1
  303. package/Source/Scene/ModelAnimationState.js +6 -1
  304. package/Source/Scene/ModelComponents.js +1639 -1542
  305. package/Source/Scene/PickedMetadataInfo.js +1 -0
  306. package/Source/Scene/PrimitiveState.js +7 -1
  307. package/Source/Scene/QuadtreeOccluders.js +20 -15
  308. package/Source/Scene/QuadtreeTile.js +547 -541
  309. package/Source/Scene/QuadtreeTileLoadState.js +6 -1
  310. package/Source/Scene/QuadtreeTileProvider.js +159 -175
  311. package/Source/Scene/ResourceLoader.js +0 -1
  312. package/Source/Scene/ResourceLoaderState.js +7 -1
  313. package/Source/Scene/SceneMode.js +4 -1
  314. package/Source/Scene/ScreenSpaceCameraController.js +13 -0
  315. package/Source/Scene/ShadowMode.js +3 -1
  316. package/Source/Scene/SkyBox.js +17 -8
  317. package/Source/Scene/SplitDirection.js +6 -1
  318. package/Source/Scene/StencilFunction.js +6 -1
  319. package/Source/Scene/StencilOperation.js +6 -1
  320. package/Source/Scene/TerrainState.js +7 -1
  321. package/Source/Scene/TileBoundingRegion.js +1 -1
  322. package/Source/Scene/TileBoundingS2Cell.js +1 -1
  323. package/Source/Scene/TileBoundingSphere.js +1 -1
  324. package/Source/Scene/TileState.js +7 -1
  325. package/Source/Scene/Tonemapper.js +5 -1
  326. package/Source/Scene/TweenCollection.js +7 -0
  327. package/Source/Scene/VectorGltf3DTileContent.js +403 -0
  328. package/Source/Scene/VertexAttributeSemantic.js +17 -1
  329. package/Source/Scene/VerticalOrigin.js +6 -1
  330. package/Source/Scene/VoxelBoxShape.js +12 -6
  331. package/Source/Scene/VoxelContent.js +2 -0
  332. package/Source/Scene/VoxelCylinderShape.js +39 -38
  333. package/Source/Scene/VoxelEllipsoidShape.js +46 -96
  334. package/Source/Scene/VoxelMetadataOrder.js +6 -1
  335. package/Source/Scene/VoxelProvider.js +1 -0
  336. package/Source/Scene/VoxelShapeType.js +3 -1
  337. package/Source/Scene/WebMapServiceImageryProvider.js +2 -2
  338. package/Source/Scene/WebMapTileServiceImageryProvider.js +366 -131
  339. package/Source/Scene/parseStructuralMetadata.js +97 -37
  340. package/Source/Scene/renderBufferPointCollection.js +285 -0
  341. package/Source/Scene/renderBufferPolygonCollection.js +339 -0
  342. package/Source/Scene/renderBufferPolylineCollection.js +478 -0
  343. package/Source/Shaders/BillboardCollectionFS.glsl +2 -77
  344. package/Source/Shaders/BillboardCollectionFS.js +2 -77
  345. package/Source/Shaders/BillboardCollectionVS.glsl +2 -60
  346. package/Source/Shaders/BillboardCollectionVS.js +2 -60
  347. package/Source/Shaders/BufferPointMaterialFS.glsl +27 -0
  348. package/Source/Shaders/BufferPointMaterialFS.js +29 -0
  349. package/Source/Shaders/BufferPointMaterialVS.glsl +48 -0
  350. package/Source/Shaders/BufferPointMaterialVS.js +50 -0
  351. package/Source/Shaders/BufferPolygonMaterialFS.glsl +13 -0
  352. package/Source/Shaders/BufferPolygonMaterialFS.js +15 -0
  353. package/Source/Shaders/BufferPolygonMaterialVS.glsl +30 -0
  354. package/Source/Shaders/BufferPolygonMaterialVS.js +32 -0
  355. package/Source/Shaders/BufferPolylineMaterialFS.glsl +13 -0
  356. package/Source/Shaders/BufferPolylineMaterialFS.js +15 -0
  357. package/Source/Shaders/BufferPolylineMaterialVS.glsl +49 -0
  358. package/Source/Shaders/BufferPolylineMaterialVS.js +51 -0
  359. package/Source/Shaders/Builtin/CzmBuiltins.js +2 -0
  360. package/Source/Shaders/Builtin/Functions/computeTextureTransform.glsl +24 -0
  361. package/Source/Shaders/Builtin/Functions/computeTextureTransform.js +25 -0
  362. package/Source/Shaders/Model/ConstantLodStageFS.glsl +60 -0
  363. package/Source/Shaders/Model/ConstantLodStageFS.js +62 -0
  364. package/Source/Shaders/Model/ConstantLodStageVS.glsl +12 -0
  365. package/Source/Shaders/Model/ConstantLodStageVS.js +13 -0
  366. package/Source/Shaders/Model/EdgeVisibilityStageFS.glsl +34 -48
  367. package/Source/Shaders/Model/EdgeVisibilityStageFS.js +34 -49
  368. package/Source/Shaders/Model/EdgeVisibilityStageVS.glsl +98 -0
  369. package/Source/Shaders/Model/EdgeVisibilityStageVS.js +100 -0
  370. package/Source/Shaders/Model/MaterialStageFS.glsl +46 -20
  371. package/Source/Shaders/Model/MaterialStageFS.js +46 -20
  372. package/Source/Shaders/Model/ModelFS.glsl +15 -0
  373. package/Source/Shaders/Model/ModelFS.js +15 -0
  374. package/Source/Shaders/Model/ModelVS.glsl +8 -0
  375. package/Source/Shaders/Model/ModelVS.js +8 -0
  376. package/Source/Shaders/PolygonSignedDistanceFS.glsl +64 -33
  377. package/Source/Shaders/PolygonSignedDistanceFS.js +64 -33
  378. package/Source/Shaders/PrimitiveGaussianSplatVS.glsl +9 -2
  379. package/Source/Shaders/PrimitiveGaussianSplatVS.js +9 -2
  380. package/Source/Shaders/Voxels/VoxelFS.glsl +1 -1
  381. package/Source/Shaders/Voxels/VoxelFS.js +1 -1
  382. package/Source/Shaders/Voxels/convertLocalToBoxUv.glsl +0 -1
  383. package/Source/Shaders/Voxels/convertLocalToBoxUv.js +0 -1
  384. package/Source/Shaders/Voxels/convertLocalToCylinderUv.glsl +7 -9
  385. package/Source/Shaders/Voxels/convertLocalToCylinderUv.js +7 -9
  386. package/Source/Shaders/Voxels/convertLocalToEllipsoidUv.glsl +7 -17
  387. package/Source/Shaders/Voxels/convertLocalToEllipsoidUv.js +7 -17
  388. package/Source/Widget/CesiumWidget.js +11 -4
  389. package/Source/Workers/decodeDraco.js +3 -0
  390. package/Source/Workers/decodeI3S.js +5 -2
  391. package/index.d.ts +1332 -402
  392. package/index.js +111 -81
  393. package/package.json +3 -3
  394. package/Build/Workers/chunk-54O3AGOA.js +0 -642
  395. package/Build/Workers/chunk-6U5QMZU3.js +0 -940
  396. package/Build/Workers/chunk-HNDE73JK.js +0 -1829
  397. package/Build/Workers/chunk-PAFMAR7A.js +0 -2357
  398. package/Build/Workers/chunk-S53HSRT6.js +0 -114
package/index.d.ts CHANGED
@@ -724,8 +724,7 @@ export enum ArcType {
724
724
  * A collection of key-value pairs that is stored as a hash for easy
725
725
  * lookup but also provides an array for fast iteration.
726
726
  */
727
- export class AssociativeArray {
728
- constructor();
727
+ export class AssociativeArray<T = unknown> {
729
728
  /**
730
729
  * Gets the number of items in the collection.
731
730
  */
@@ -735,7 +734,7 @@ export class AssociativeArray {
735
734
  * This is a live array that will automatically reflect the values in the collection,
736
735
  * it should not be modified directly.
737
736
  */
738
- values: any[];
737
+ values: T[];
739
738
  /**
740
739
  * Determines if the provided key is in the array.
741
740
  * @param key - The key to check.
@@ -748,13 +747,13 @@ export class AssociativeArray {
748
747
  * @param key - A unique identifier.
749
748
  * @param value - The value to associate with the provided key.
750
749
  */
751
- set(key: string | number, value: any): void;
750
+ set(key: string | number, value: T): void;
752
751
  /**
753
752
  * Retrieves the value associated with the provided key.
754
753
  * @param key - The key whose value is to be retrieved.
755
754
  * @returns The associated value, or undefined if the key does not exist in the collection.
756
755
  */
757
- get(key: string | number): any;
756
+ get(key: string | number): T;
758
757
  /**
759
758
  * Removes a key-value pair from the collection.
760
759
  * @param key - The key to be removed.
@@ -1052,7 +1051,7 @@ export class BoundingSphere {
1052
1051
  * @param [result] - The object onto which to store the result.
1053
1052
  * @returns The modified result parameter or a new BoundingSphere instance if none was provided.
1054
1053
  */
1055
- static fromRectangle2D(rectangle?: Rectangle, projection?: any, result?: BoundingSphere): BoundingSphere;
1054
+ static fromRectangle2D(rectangle?: Rectangle, projection?: MapProjection, result?: BoundingSphere): BoundingSphere;
1056
1055
  /**
1057
1056
  * Computes a bounding sphere from a rectangle projected in 2D. The bounding sphere accounts for the
1058
1057
  * object's minimum and maximum heights over the rectangle.
@@ -1063,7 +1062,7 @@ export class BoundingSphere {
1063
1062
  * @param [result] - The object onto which to store the result.
1064
1063
  * @returns The modified result parameter or a new BoundingSphere instance if none was provided.
1065
1064
  */
1066
- static fromRectangleWithHeights2D(rectangle?: Rectangle, projection?: any, minimumHeight?: number, maximumHeight?: number, result?: BoundingSphere): BoundingSphere;
1065
+ static fromRectangleWithHeights2D(rectangle?: Rectangle, projection?: MapProjection, minimumHeight?: number, maximumHeight?: number, result?: BoundingSphere): BoundingSphere;
1067
1066
  /**
1068
1067
  * Computes a bounding sphere from a rectangle in 3D. The bounding sphere is created using a subsample of points
1069
1068
  * on the ellipsoid and contained in the rectangle. It may not be accurate for all rectangles on all types of ellipsoids.
@@ -1102,7 +1101,7 @@ export class BoundingSphere {
1102
1101
  * @param [result] - The object onto which to store the result.
1103
1102
  * @returns The modified result parameter or a new BoundingSphere instance if one was not provided.
1104
1103
  */
1105
- static fromVertices(positions?: number[], center?: Cartesian3, stride?: number, result?: BoundingSphere): BoundingSphere;
1104
+ static fromVertices(positions?: number[] | TypedArray, center?: Cartesian3, stride?: number, result?: BoundingSphere): BoundingSphere;
1106
1105
  /**
1107
1106
  * Computes a tight-fitting bounding sphere enclosing a list of EncodedCartesian3s, where the points are
1108
1107
  * stored in parallel flat arrays in X, Y, Z, order. The bounding sphere is computed by running two
@@ -1165,10 +1164,6 @@ export class BoundingSphere {
1165
1164
  * @returns The modified result parameter or a new BoundingSphere instance if none was provided. (Returns undefined if sphere is undefined)
1166
1165
  */
1167
1166
  static clone(sphere: BoundingSphere, result?: BoundingSphere): BoundingSphere;
1168
- /**
1169
- * The number of elements used to pack the object into an array.
1170
- */
1171
- static packedLength: number;
1172
1167
  /**
1173
1168
  * Stores the provided instance into the provided array.
1174
1169
  * @param value - The value to pack.
@@ -1265,7 +1260,7 @@ export class BoundingSphere {
1265
1260
  * @param [result] - The object onto which to store the result.
1266
1261
  * @returns The modified result parameter or a new BoundingSphere instance if none was provided.
1267
1262
  */
1268
- static projectTo2D(sphere: BoundingSphere, projection?: any, result?: BoundingSphere): BoundingSphere;
1263
+ static projectTo2D(sphere: BoundingSphere, projection?: MapProjection, result?: BoundingSphere): BoundingSphere;
1269
1264
  /**
1270
1265
  * Determines whether or not a sphere is hidden from view by the occluder.
1271
1266
  * @param sphere - The bounding sphere surrounding the occluded object.
@@ -1337,6 +1332,10 @@ export class BoundingSphere {
1337
1332
  * @returns The radius of the BoundingSphere.
1338
1333
  */
1339
1334
  volume(): number;
1335
+ /**
1336
+ * The number of elements used to pack the object into an array.
1337
+ */
1338
+ static packedLength: number;
1340
1339
  }
1341
1340
 
1342
1341
  /**
@@ -1528,7 +1527,7 @@ export class Cartesian2 {
1528
1527
  * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
1529
1528
  * @returns The array that was packed into
1530
1529
  */
1531
- static pack(value: Cartesian2, array: number[] | TypedArray, startingIndex?: number): number[] | TypedArray;
1530
+ static pack(value: Cartesian2, array: number[], startingIndex?: number): number[];
1532
1531
  /**
1533
1532
  * Retrieves an instance from a packed array.
1534
1533
  * @param array - The packed array.
@@ -1536,14 +1535,14 @@ export class Cartesian2 {
1536
1535
  * @param [result] - The object into which to store the result.
1537
1536
  * @returns The modified result parameter or a new Cartesian2 instance if one was not provided.
1538
1537
  */
1539
- static unpack(array: number[] | TypedArray, startingIndex?: number, result?: Cartesian2): Cartesian2;
1538
+ static unpack(array: number[], startingIndex?: number, result?: Cartesian2): Cartesian2;
1540
1539
  /**
1541
1540
  * Flattens an array of Cartesian2s into an array of components.
1542
1541
  * @param array - The array of cartesians to pack.
1543
1542
  * @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
1543
  * @returns The packed array.
1545
1544
  */
1546
- static packArray(array: Cartesian2[], result?: number[] | TypedArray): number[] | TypedArray;
1545
+ static packArray(array: Cartesian2[], result?: number[]): number[];
1547
1546
  /**
1548
1547
  * Unpacks an array of cartesian components into an array of Cartesian2s.
1549
1548
  * @param array - The array of components to unpack.
@@ -1878,7 +1877,7 @@ export class Cartesian3 {
1878
1877
  * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
1879
1878
  * @returns The array that was packed into
1880
1879
  */
1881
- static pack(value: Cartesian3, array: number[] | TypedArray, startingIndex?: number): number[] | TypedArray;
1880
+ static pack(value: Cartesian3, array: number[], startingIndex?: number): number[];
1882
1881
  /**
1883
1882
  * Retrieves an instance from a packed array.
1884
1883
  * @param array - The packed array.
@@ -1886,21 +1885,21 @@ export class Cartesian3 {
1886
1885
  * @param [result] - The object into which to store the result.
1887
1886
  * @returns The modified result parameter or a new Cartesian3 instance if one was not provided.
1888
1887
  */
1889
- static unpack(array: number[] | TypedArray, startingIndex?: number, result?: Cartesian3): Cartesian3;
1888
+ static unpack(array: number[], startingIndex?: number, result?: Cartesian3): Cartesian3;
1890
1889
  /**
1891
1890
  * Flattens an array of Cartesian3s into an array of components.
1892
1891
  * @param array - The array of cartesians to pack.
1893
1892
  * @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
1893
  * @returns The packed array.
1895
1894
  */
1896
- static packArray(array: Cartesian3[], result?: number[] | TypedArray): number[] | TypedArray;
1895
+ static packArray(array: Cartesian3[], result?: number[]): number[];
1897
1896
  /**
1898
1897
  * Unpacks an array of cartesian components into an array of Cartesian3s.
1899
1898
  * @param array - The array of components to unpack.
1900
1899
  * @param [result] - The array onto which to store the result.
1901
1900
  * @returns The unpacked array.
1902
1901
  */
1903
- static unpackArray(array: number[] | TypedArray, result?: Cartesian3[]): Cartesian3[];
1902
+ static unpackArray(array: number[], result?: Cartesian3[]): Cartesian3[];
1904
1903
  /**
1905
1904
  * Computes the value of the maximum component for the supplied Cartesian.
1906
1905
  * @param cartesian - The cartesian to use.
@@ -2312,7 +2311,7 @@ export class Cartesian4 {
2312
2311
  * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
2313
2312
  * @returns The array that was packed into
2314
2313
  */
2315
- static pack(value: Cartesian4, array: number[] | TypedArray, startingIndex?: number): number[] | TypedArray;
2314
+ static pack(value: Cartesian4, array: number[], startingIndex?: number): number[];
2316
2315
  /**
2317
2316
  * Retrieves an instance from a packed array.
2318
2317
  * @param array - The packed array.
@@ -2320,21 +2319,21 @@ export class Cartesian4 {
2320
2319
  * @param [result] - The object into which to store the result.
2321
2320
  * @returns The modified result parameter or a new Cartesian4 instance if one was not provided.
2322
2321
  */
2323
- static unpack(array: number[] | TypedArray, startingIndex?: number, result?: Cartesian4): Cartesian4;
2322
+ static unpack(array: number[], startingIndex?: number, result?: Cartesian4): Cartesian4;
2324
2323
  /**
2325
2324
  * Flattens an array of Cartesian4s into an array of components.
2326
2325
  * @param array - The array of cartesians to pack.
2327
2326
  * @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
2327
  * @returns The packed array.
2329
2328
  */
2330
- static packArray(array: Cartesian4[], result?: number[] | TypedArray): number[] | TypedArray;
2329
+ static packArray(array: Cartesian4[], result?: number[]): number[];
2331
2330
  /**
2332
2331
  * Unpacks an array of cartesian components into an array of Cartesian4s.
2333
2332
  * @param array - The array of components to unpack.
2334
2333
  * @param [result] - The array onto which to store the result.
2335
2334
  * @returns The unpacked array.
2336
2335
  */
2337
- static unpackArray(array: number[] | TypedArray, result?: Cartesian4[]): Cartesian4[];
2336
+ static unpackArray(array: number[], result?: Cartesian4[]): Cartesian4[];
2338
2337
  /**
2339
2338
  * Computes the value of the maximum component for the supplied Cartesian.
2340
2339
  * @param cartesian - The cartesian to use.
@@ -2685,10 +2684,6 @@ export class Cartographic {
2685
2684
  * @returns <code>true</code> if left and right are within the provided epsilon, <code>false</code> otherwise.
2686
2685
  */
2687
2686
  static equalsEpsilon(left?: Cartographic, right?: Cartographic, epsilon?: number): boolean;
2688
- /**
2689
- * An immutable Cartographic instance initialized to (0.0, 0.0, 0.0).
2690
- */
2691
- static readonly ZERO: Cartographic;
2692
2687
  /**
2693
2688
  * Duplicates this instance.
2694
2689
  * @param [result] - The object onto which to store the result.
@@ -2716,6 +2711,10 @@ export class Cartographic {
2716
2711
  * @returns A string representing the provided cartographic in the format '(longitude, latitude, height)'.
2717
2712
  */
2718
2713
  toString(): string;
2714
+ /**
2715
+ * An immutable Cartographic instance initialized to (0.0, 0.0, 0.0).
2716
+ */
2717
+ static readonly ZERO: Cartographic;
2719
2718
  }
2720
2719
 
2721
2720
  /**
@@ -3617,6 +3616,8 @@ export enum ClockStep {
3617
3616
  SYSTEM_CLOCK = 2
3618
3617
  }
3619
3618
 
3619
+ export function hue2rgb(): void;
3620
+
3620
3621
  /**
3621
3622
  * A color, specified using red, green, blue, and alpha values,
3622
3623
  * which range from <code>0</code> (no intensity) to <code>1.0</code> (full intensity).
@@ -3754,10 +3755,6 @@ export class Color {
3754
3755
  * @returns The color object, or undefined if the string was not a valid CSS color.
3755
3756
  */
3756
3757
  static fromCssColorString(color: string, result?: Color): Color;
3757
- /**
3758
- * The number of elements used to pack the object into an array.
3759
- */
3760
- static packedLength: number;
3761
3758
  /**
3762
3759
  * Stores the provided instance into the provided array.
3763
3760
  * @param value - The value to pack.
@@ -3765,7 +3762,7 @@ export class Color {
3765
3762
  * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
3766
3763
  * @returns The array that was packed into
3767
3764
  */
3768
- static pack(value: Color, array: number[], startingIndex?: number): number[];
3765
+ static pack(value: Color, array: number[] | TypedArray, startingIndex?: number): number[] | TypedArray;
3769
3766
  /**
3770
3767
  * Retrieves an instance from a packed array.
3771
3768
  * @param array - The packed array.
@@ -3773,7 +3770,7 @@ export class Color {
3773
3770
  * @param [result] - The object into which to store the result.
3774
3771
  * @returns The modified result parameter or a new Color instance if one was not provided.
3775
3772
  */
3776
- static unpack(array: number[], startingIndex?: number, result?: Color): Color;
3773
+ static unpack(array: number[] | TypedArray, startingIndex?: number, result?: Color): Color;
3777
3774
  /**
3778
3775
  * Converts a 'byte' color component in the range of 0 to 255 into
3779
3776
  * a 'float' color component in the range of 0 to 1.0.
@@ -3950,6 +3947,10 @@ export class Color {
3950
3947
  * @returns The modified result parameter.
3951
3948
  */
3952
3949
  static divideByScalar(color: Color, scalar: number, result: Color): Color;
3950
+ /**
3951
+ * The number of elements used to pack the object into an array.
3952
+ */
3953
+ static packedLength: number;
3953
3954
  /**
3954
3955
  * An immutable Color instance initialized to CSS color #F0F8FF
3955
3956
  * <span class="colorSwath" style="background: #F0F8FF;"></span>
@@ -6038,23 +6039,6 @@ export class Ellipsoid {
6038
6039
  * @returns A new Ellipsoid instance.
6039
6040
  */
6040
6041
  static fromCartesian3(cartesian?: Cartesian3, result?: Ellipsoid): Ellipsoid;
6041
- /**
6042
- * An Ellipsoid instance initialized to the WGS84 standard.
6043
- */
6044
- static readonly WGS84: Ellipsoid;
6045
- /**
6046
- * An Ellipsoid instance initialized to radii of (1.0, 1.0, 1.0).
6047
- */
6048
- static readonly UNIT_SPHERE: Ellipsoid;
6049
- /**
6050
- * An Ellipsoid instance initialized to a sphere with the lunar radius.
6051
- */
6052
- static readonly MOON: Ellipsoid;
6053
- /**
6054
- * An Ellipsoid instance initialized to a sphere with the mean radii of Mars.
6055
- * Source: https://epsg.io/104905
6056
- */
6057
- static readonly MARS: Ellipsoid;
6058
6042
  /**
6059
6043
  * The default ellipsoid used when not otherwise specified.
6060
6044
  * @example
@@ -6074,10 +6058,6 @@ export class Ellipsoid {
6074
6058
  * @returns The cloned Ellipsoid.
6075
6059
  */
6076
6060
  clone(result?: Ellipsoid): Ellipsoid;
6077
- /**
6078
- * The number of elements used to pack the object into an array.
6079
- */
6080
- static packedLength: number;
6081
6061
  /**
6082
6062
  * Stores the provided instance into the provided array.
6083
6063
  * @param value - The value to pack.
@@ -6094,13 +6074,6 @@ export class Ellipsoid {
6094
6074
  * @returns The modified result parameter or a new Ellipsoid instance if one was not provided.
6095
6075
  */
6096
6076
  static unpack(array: number[], startingIndex?: number, result?: Ellipsoid): Ellipsoid;
6097
- /**
6098
- * Computes the unit vector directed from the center of this ellipsoid toward the provided Cartesian position.
6099
- * @param cartesian - The Cartesian for which to to determine the geocentric normal.
6100
- * @param [result] - The object onto which to store the result.
6101
- * @returns The modified result parameter or a new Cartesian3 instance if none was provided.
6102
- */
6103
- geocentricSurfaceNormal(cartesian: Cartesian3, result?: Cartesian3): Cartesian3;
6104
6077
  /**
6105
6078
  * Computes the normal of the plane tangent to the surface of the ellipsoid at the provided position.
6106
6079
  * @param cartographic - The cartographic position for which to to determine the geodetic normal.
@@ -6239,6 +6212,34 @@ export class Ellipsoid {
6239
6212
  * @returns The approximate area of the rectangle on the surface of this ellipsoid.
6240
6213
  */
6241
6214
  surfaceArea(rectangle: Rectangle): number;
6215
+ /**
6216
+ * An Ellipsoid instance initialized to the WGS84 standard.
6217
+ */
6218
+ static readonly WGS84: Ellipsoid;
6219
+ /**
6220
+ * An Ellipsoid instance initialized to radii of (1.0, 1.0, 1.0).
6221
+ */
6222
+ static readonly UNIT_SPHERE: Ellipsoid;
6223
+ /**
6224
+ * An Ellipsoid instance initialized to a sphere with the lunar radius.
6225
+ */
6226
+ static readonly MOON: Ellipsoid;
6227
+ /**
6228
+ * An Ellipsoid instance initialized to a sphere with the mean radii of Mars.
6229
+ * Source: https://epsg.io/104905
6230
+ */
6231
+ static readonly MARS: Ellipsoid;
6232
+ /**
6233
+ * The number of elements used to pack the object into an array.
6234
+ */
6235
+ static packedLength: number;
6236
+ /**
6237
+ * Computes the unit vector directed from the center of this ellipsoid toward the provided Cartesian position.
6238
+ * @param cartesian - The Cartesian for which to to determine the geocentric normal.
6239
+ * @param [result] - The object onto which to store the result.
6240
+ * @returns The modified result parameter or a new Cartesian3 instance if none was provided.
6241
+ */
6242
+ geocentricSurfaceNormal(cartesian: Cartesian3, result?: Cartesian3): Cartesian3;
6242
6243
  }
6243
6244
 
6244
6245
  /**
@@ -7032,6 +7033,9 @@ export class GeocoderService {
7032
7033
  geocode(query: string, type?: GeocodeType): Promise<GeocoderService.Result[]>;
7033
7034
  }
7034
7035
 
7036
+ export interface GeographicProjection extends MapProjection {
7037
+ }
7038
+
7035
7039
  /**
7036
7040
  * A simple map projection where longitude and latitude are linearly mapped to X and Y by multiplying
7037
7041
  * them by the {@link Ellipsoid#maximumRadius}. This projection
@@ -7039,7 +7043,7 @@ export class GeocoderService {
7039
7043
  * is also known as EPSG:4326.
7040
7044
  * @param [ellipsoid = Ellipsoid.default] - The ellipsoid.
7041
7045
  */
7042
- export class GeographicProjection {
7046
+ export class GeographicProjection implements MapProjection {
7043
7047
  constructor(ellipsoid?: Ellipsoid);
7044
7048
  /**
7045
7049
  * Gets the {@link Ellipsoid}.
@@ -7071,6 +7075,9 @@ export class GeographicProjection {
7071
7075
  unproject(cartesian: Cartesian3, result?: Cartographic): Cartographic;
7072
7076
  }
7073
7077
 
7078
+ export interface GeographicTilingScheme extends TilingScheme {
7079
+ }
7080
+
7074
7081
  /**
7075
7082
  * A tiling scheme for geometry referenced to a simple {@link GeographicProjection} where
7076
7083
  * longitude and latitude are directly mapped to X and Y. This projection is commonly
@@ -7084,7 +7091,7 @@ export class GeographicProjection {
7084
7091
  * @param [options.numberOfLevelZeroTilesY = 1] - The number of tiles in the Y direction at level zero of
7085
7092
  * the tile tree.
7086
7093
  */
7087
- export class GeographicTilingScheme {
7094
+ export class GeographicTilingScheme implements TilingScheme {
7088
7095
  constructor(options?: {
7089
7096
  ellipsoid?: Ellipsoid;
7090
7097
  rectangle?: Rectangle;
@@ -7136,7 +7143,7 @@ export class GeographicTilingScheme {
7136
7143
  * @returns The specified 'result', or a new object containing the rectangle
7137
7144
  * if 'result' is undefined.
7138
7145
  */
7139
- tileXYToNativeRectangle(x: number, y: number, level: number, result?: any): Rectangle;
7146
+ tileXYToNativeRectangle(x: number, y: number, level: number, result?: Rectangle): Rectangle;
7140
7147
  /**
7141
7148
  * Converts tile x, y coordinates and level to a cartographic rectangle in radians.
7142
7149
  * @param x - The integer x coordinate of the tile.
@@ -7147,7 +7154,7 @@ export class GeographicTilingScheme {
7147
7154
  * @returns The specified 'result', or a new object containing the rectangle
7148
7155
  * if 'result' is undefined.
7149
7156
  */
7150
- tileXYToRectangle(x: number, y: number, level: number, result?: any): Rectangle;
7157
+ tileXYToRectangle(x: number, y: number, level: number, result?: Rectangle): Rectangle;
7151
7158
  /**
7152
7159
  * Calculates the tile x, y coordinates of the tile containing
7153
7160
  * a given cartographic position.
@@ -9560,12 +9567,11 @@ export class LinearSpline {
9560
9567
  * Defines how geodetic ellipsoid coordinates ({@link Cartographic}) project to a
9561
9568
  * flat map like Cesium's 2D and Columbus View modes.
9562
9569
  */
9563
- export class MapProjection {
9564
- constructor();
9570
+ export interface MapProjection {
9565
9571
  /**
9566
9572
  * Gets the {@link Ellipsoid}.
9567
9573
  */
9568
- readonly ellipsoid: Ellipsoid;
9574
+ ellipsoid: Ellipsoid;
9569
9575
  /**
9570
9576
  * Projects {@link Cartographic} coordinates, in radians, to projection-specific map coordinates, in meters.
9571
9577
  * @param cartographic - The coordinates to project.
@@ -10099,10 +10105,6 @@ export interface Matrix2 extends ArrayLike<number> {
10099
10105
  */
10100
10106
  export class Matrix2 implements ArrayLike<number> {
10101
10107
  constructor(column0Row0?: number, column1Row0?: number, column0Row1?: number, column1Row1?: number);
10102
- /**
10103
- * The number of elements used to pack the object into an array.
10104
- */
10105
- static packedLength: number;
10106
10108
  /**
10107
10109
  * Stores the provided instance into the provided array.
10108
10110
  * @param value - The value to pack.
@@ -10141,25 +10143,6 @@ export class Matrix2 implements ArrayLike<number> {
10141
10143
  * @returns The modified result parameter or a new Matrix2 instance if one was not provided. (Returns undefined if matrix is undefined)
10142
10144
  */
10143
10145
  static clone(matrix: Matrix2, result?: Matrix2): Matrix2;
10144
- /**
10145
- * Creates a Matrix2 from 4 consecutive elements in an array.
10146
- * @example
10147
- * // Create the Matrix2:
10148
- * // [1.0, 2.0]
10149
- * // [1.0, 2.0]
10150
- *
10151
- * const v = [1.0, 1.0, 2.0, 2.0];
10152
- * const m = Cesium.Matrix2.fromArray(v);
10153
- *
10154
- * // Create same Matrix2 with using an offset into an array
10155
- * const v2 = [0.0, 0.0, 1.0, 1.0, 2.0, 2.0];
10156
- * const m2 = Cesium.Matrix2.fromArray(v2, 2);
10157
- * @param array - The array whose 4 consecutive elements correspond to the positions of the matrix. Assumes column-major order.
10158
- * @param [startingIndex = 0] - The offset into the array of the first element, which corresponds to first column first row position in the matrix.
10159
- * @param [result] - The object onto which to store the result.
10160
- * @returns The modified result parameter or a new Matrix2 instance if one was not provided.
10161
- */
10162
- static fromArray(array: number[], startingIndex?: number, result?: Matrix2): Matrix2;
10163
10146
  /**
10164
10147
  * Creates a Matrix2 instance from a column-major order array.
10165
10148
  * @param values - The column-major order array.
@@ -10247,7 +10230,7 @@ export class Matrix2 implements ArrayLike<number> {
10247
10230
  * @param result - The object onto which to store the result.
10248
10231
  * @returns The modified result parameter.
10249
10232
  */
10250
- static setColumn(matrix: Matrix2, index: number, cartesian: Cartesian2, result: Cartesian2): Matrix2;
10233
+ static setColumn(matrix: Matrix2, index: number, cartesian: Cartesian2, result: Matrix2): Matrix2;
10251
10234
  /**
10252
10235
  * Retrieves a copy of the matrix row at the provided index as a Cartesian2 instance.
10253
10236
  * @param matrix - The matrix to use.
@@ -10413,6 +10396,61 @@ export class Matrix2 implements ArrayLike<number> {
10413
10396
  * @returns <code>true</code> if left and right are within the provided epsilon, <code>false</code> otherwise.
10414
10397
  */
10415
10398
  static equalsEpsilon(left?: Matrix2, right?: Matrix2, epsilon?: number): boolean;
10399
+ /**
10400
+ * Gets the number of items in the collection.
10401
+ */
10402
+ length: number;
10403
+ /**
10404
+ * Duplicates the provided Matrix2 instance.
10405
+ * @param [result] - The object onto which to store the result.
10406
+ * @returns The modified result parameter or a new Matrix2 instance if one was not provided.
10407
+ */
10408
+ clone(result?: Matrix2): Matrix2;
10409
+ /**
10410
+ * Compares this matrix to the provided matrix componentwise and returns
10411
+ * <code>true</code> if they are equal, <code>false</code> otherwise.
10412
+ * @param [right] - The right hand side matrix.
10413
+ * @returns <code>true</code> if they are equal, <code>false</code> otherwise.
10414
+ */
10415
+ equals(right?: Matrix2): boolean;
10416
+ /**
10417
+ * Compares this matrix to the provided matrix componentwise and returns
10418
+ * <code>true</code> if they are within the provided epsilon,
10419
+ * <code>false</code> otherwise.
10420
+ * @param [right] - The right hand side matrix.
10421
+ * @param [epsilon = 0] - The epsilon to use for equality testing.
10422
+ * @returns <code>true</code> if they are within the provided epsilon, <code>false</code> otherwise.
10423
+ */
10424
+ equalsEpsilon(right?: Matrix2, epsilon?: number): boolean;
10425
+ /**
10426
+ * Creates a string representing this Matrix with each row being
10427
+ * on a separate line and in the format '(column0, column1)'.
10428
+ * @returns A string representing the provided Matrix with each row being on a separate line and in the format '(column0, column1)'.
10429
+ */
10430
+ toString(): string;
10431
+ /**
10432
+ * The number of elements used to pack the object into an array.
10433
+ */
10434
+ static packedLength: number;
10435
+ /**
10436
+ * Creates a Matrix2 from 4 consecutive elements in an array.
10437
+ * @example
10438
+ * // Create the Matrix2:
10439
+ * // [1.0, 2.0]
10440
+ * // [1.0, 2.0]
10441
+ *
10442
+ * const v = [1.0, 1.0, 2.0, 2.0];
10443
+ * const m = Cesium.Matrix2.fromArray(v);
10444
+ *
10445
+ * // Create same Matrix2 with using an offset into an array
10446
+ * const v2 = [0.0, 0.0, 1.0, 1.0, 2.0, 2.0];
10447
+ * const m2 = Cesium.Matrix2.fromArray(v2, 2);
10448
+ * @param array - The array whose 4 consecutive elements correspond to the positions of the matrix. Assumes column-major order.
10449
+ * @param [startingIndex = 0] - The offset into the array of the first element, which corresponds to first column first row position in the matrix.
10450
+ * @param [result] - The object onto which to store the result.
10451
+ * @returns The modified result parameter or a new Matrix2 instance if one was not provided.
10452
+ */
10453
+ static fromArray(array: number[], startingIndex?: number, result?: Matrix2): Matrix2;
10416
10454
  /**
10417
10455
  * An immutable Matrix2 instance initialized to the identity matrix.
10418
10456
  */
@@ -10449,40 +10487,13 @@ export class Matrix2 implements ArrayLike<number> {
10449
10487
  * matrix[Cesium.Matrix2.COLUMN1ROW1] = 5.0; // set column 1, row 1 to 5.0
10450
10488
  */
10451
10489
  static readonly COLUMN1ROW1: number;
10452
- /**
10453
- * Gets the number of items in the collection.
10454
- */
10455
- length: number;
10456
- /**
10457
- * Duplicates the provided Matrix2 instance.
10458
- * @param [result] - The object onto which to store the result.
10459
- * @returns The modified result parameter or a new Matrix2 instance if one was not provided.
10460
- */
10461
- clone(result?: Matrix2): Matrix2;
10462
- /**
10463
- * Compares this matrix to the provided matrix componentwise and returns
10464
- * <code>true</code> if they are equal, <code>false</code> otherwise.
10465
- * @param [right] - The right hand side matrix.
10466
- * @returns <code>true</code> if they are equal, <code>false</code> otherwise.
10467
- */
10468
- equals(right?: Matrix2): boolean;
10469
- /**
10470
- * Compares this matrix to the provided matrix componentwise and returns
10471
- * <code>true</code> if they are within the provided epsilon,
10472
- * <code>false</code> otherwise.
10473
- * @param [right] - The right hand side matrix.
10474
- * @param [epsilon = 0] - The epsilon to use for equality testing.
10475
- * @returns <code>true</code> if they are within the provided epsilon, <code>false</code> otherwise.
10476
- */
10477
- equalsEpsilon(right?: Matrix2, epsilon?: number): boolean;
10478
- /**
10479
- * Creates a string representing this Matrix with each row being
10480
- * on a separate line and in the format '(column0, column1)'.
10481
- * @returns A string representing the provided Matrix with each row being on a separate line and in the format '(column0, column1)'.
10482
- */
10483
- toString(): string;
10484
10490
  }
10485
10491
 
10492
+ export type EigenDecompositionResult = {
10493
+ unitary?: Matrix3;
10494
+ diagonal?: Matrix3;
10495
+ };
10496
+
10486
10497
  export interface Matrix3 extends ArrayLike<number> {
10487
10498
  }
10488
10499
 
@@ -10501,10 +10512,6 @@ export interface Matrix3 extends ArrayLike<number> {
10501
10512
  */
10502
10513
  export class Matrix3 implements ArrayLike<number> {
10503
10514
  constructor(column0Row0?: number, column1Row0?: number, column2Row0?: number, column0Row1?: number, column1Row1?: number, column2Row1?: number, column0Row2?: number, column1Row2?: number, column2Row2?: number);
10504
- /**
10505
- * The number of elements used to pack the object into an array.
10506
- */
10507
- static packedLength: number;
10508
10515
  /**
10509
10516
  * Stores the provided instance into the provided array.
10510
10517
  * @param value - The value to pack.
@@ -10543,26 +10550,6 @@ export class Matrix3 implements ArrayLike<number> {
10543
10550
  * @returns The modified result parameter or a new Matrix3 instance if one was not provided. (Returns undefined if matrix is undefined)
10544
10551
  */
10545
10552
  static clone(matrix: Matrix3, result?: Matrix3): Matrix3;
10546
- /**
10547
- * Creates a Matrix3 from 9 consecutive elements in an array.
10548
- * @example
10549
- * // Create the Matrix3:
10550
- * // [1.0, 2.0, 3.0]
10551
- * // [1.0, 2.0, 3.0]
10552
- * // [1.0, 2.0, 3.0]
10553
- *
10554
- * const v = [1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0];
10555
- * const m = Cesium.Matrix3.fromArray(v);
10556
- *
10557
- * // Create same Matrix3 with using an offset into an array
10558
- * const v2 = [0.0, 0.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0];
10559
- * const m2 = Cesium.Matrix3.fromArray(v2, 2);
10560
- * @param array - The array whose 9 consecutive elements correspond to the positions of the matrix. Assumes column-major order.
10561
- * @param [startingIndex = 0] - The offset into the array of the first element, which corresponds to first column first row position in the matrix.
10562
- * @param [result] - The object onto which to store the result.
10563
- * @returns The modified result parameter or a new Matrix3 instance if one was not provided.
10564
- */
10565
- static fromArray(array: number[], startingIndex?: number, result?: Matrix3): Matrix3;
10566
10553
  /**
10567
10554
  * Creates a Matrix3 instance from a column-major order array.
10568
10555
  * @param values - The column-major order array.
@@ -10873,7 +10860,7 @@ export class Matrix3 implements ArrayLike<number> {
10873
10860
  * @param [result] - An object with unitary and diagonal properties which are matrices onto which to store the result.
10874
10861
  * @returns An object with unitary and diagonal properties which are the unitary and diagonal matrices, respectively.
10875
10862
  */
10876
- static computeEigenDecomposition(matrix: Matrix3, result?: any): any;
10863
+ static computeEigenDecomposition(matrix: Matrix3, result?: EigenDecompositionResult): EigenDecompositionResult;
10877
10864
  /**
10878
10865
  * Computes a matrix, which contains the absolute (unsigned) values of the provided matrix's elements.
10879
10866
  * @param matrix - The matrix with signed elements.
@@ -10919,50 +10906,6 @@ export class Matrix3 implements ArrayLike<number> {
10919
10906
  * @returns <code>true</code> if left and right are within the provided epsilon, <code>false</code> otherwise.
10920
10907
  */
10921
10908
  static equalsEpsilon(left?: Matrix3, right?: Matrix3, epsilon?: number): boolean;
10922
- /**
10923
- * An immutable Matrix3 instance initialized to the identity matrix.
10924
- */
10925
- static readonly IDENTITY: Matrix3;
10926
- /**
10927
- * An immutable Matrix3 instance initialized to the zero matrix.
10928
- */
10929
- static readonly ZERO: Matrix3;
10930
- /**
10931
- * The index into Matrix3 for column 0, row 0.
10932
- */
10933
- static readonly COLUMN0ROW0: number;
10934
- /**
10935
- * The index into Matrix3 for column 0, row 1.
10936
- */
10937
- static readonly COLUMN0ROW1: number;
10938
- /**
10939
- * The index into Matrix3 for column 0, row 2.
10940
- */
10941
- static readonly COLUMN0ROW2: number;
10942
- /**
10943
- * The index into Matrix3 for column 1, row 0.
10944
- */
10945
- static readonly COLUMN1ROW0: number;
10946
- /**
10947
- * The index into Matrix3 for column 1, row 1.
10948
- */
10949
- static readonly COLUMN1ROW1: number;
10950
- /**
10951
- * The index into Matrix3 for column 1, row 2.
10952
- */
10953
- static readonly COLUMN1ROW2: number;
10954
- /**
10955
- * The index into Matrix3 for column 2, row 0.
10956
- */
10957
- static readonly COLUMN2ROW0: number;
10958
- /**
10959
- * The index into Matrix3 for column 2, row 1.
10960
- */
10961
- static readonly COLUMN2ROW1: number;
10962
- /**
10963
- * The index into Matrix3 for column 2, row 2.
10964
- */
10965
- static readonly COLUMN2ROW2: number;
10966
10909
  /**
10967
10910
  * Gets the number of items in the collection.
10968
10911
  */
@@ -10995,8 +10938,83 @@ export class Matrix3 implements ArrayLike<number> {
10995
10938
  * @returns A string representing the provided Matrix with each row being on a separate line and in the format '(column0, column1, column2)'.
10996
10939
  */
10997
10940
  toString(): string;
10941
+ /**
10942
+ * The number of elements used to pack the object into an array.
10943
+ */
10944
+ static packedLength: number;
10945
+ /**
10946
+ * Creates a Matrix3 from 9 consecutive elements in an array.
10947
+ * @example
10948
+ * // Create the Matrix3:
10949
+ * // [1.0, 2.0, 3.0]
10950
+ * // [1.0, 2.0, 3.0]
10951
+ * // [1.0, 2.0, 3.0]
10952
+ *
10953
+ * const v = [1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0];
10954
+ * const m = Cesium.Matrix3.fromArray(v);
10955
+ *
10956
+ * // Create same Matrix3 with using an offset into an array
10957
+ * const v2 = [0.0, 0.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0];
10958
+ * const m2 = Cesium.Matrix3.fromArray(v2, 2);
10959
+ * @param array - The array whose 9 consecutive elements correspond to the positions of the matrix. Assumes column-major order.
10960
+ * @param [startingIndex = 0] - The offset into the array of the first element, which corresponds to first column first row position in the matrix.
10961
+ * @param [result] - The object onto which to store the result.
10962
+ * @returns The modified result parameter or a new Matrix3 instance if one was not provided.
10963
+ */
10964
+ static fromArray(array: number[], startingIndex?: number, result?: Matrix3): Matrix3;
10965
+ /**
10966
+ * An immutable Matrix3 instance initialized to the identity matrix.
10967
+ */
10968
+ static readonly IDENTITY: Matrix3;
10969
+ /**
10970
+ * An immutable Matrix3 instance initialized to the zero matrix.
10971
+ */
10972
+ static readonly ZERO: Matrix3;
10973
+ /**
10974
+ * The index into Matrix3 for column 0, row 0.
10975
+ */
10976
+ static readonly COLUMN0ROW0: number;
10977
+ /**
10978
+ * The index into Matrix3 for column 0, row 1.
10979
+ */
10980
+ static readonly COLUMN0ROW1: number;
10981
+ /**
10982
+ * The index into Matrix3 for column 0, row 2.
10983
+ */
10984
+ static readonly COLUMN0ROW2: number;
10985
+ /**
10986
+ * The index into Matrix3 for column 1, row 0.
10987
+ */
10988
+ static readonly COLUMN1ROW0: number;
10989
+ /**
10990
+ * The index into Matrix3 for column 1, row 1.
10991
+ */
10992
+ static readonly COLUMN1ROW1: number;
10993
+ /**
10994
+ * The index into Matrix3 for column 1, row 2.
10995
+ */
10996
+ static readonly COLUMN1ROW2: number;
10997
+ /**
10998
+ * The index into Matrix3 for column 2, row 0.
10999
+ */
11000
+ static readonly COLUMN2ROW0: number;
11001
+ /**
11002
+ * The index into Matrix3 for column 2, row 1.
11003
+ */
11004
+ static readonly COLUMN2ROW1: number;
11005
+ /**
11006
+ * The index into Matrix3 for column 2, row 2.
11007
+ */
11008
+ static readonly COLUMN2ROW2: number;
10998
11009
  }
10999
11010
 
11011
+ export type Viewport = {
11012
+ x?: number;
11013
+ y?: number;
11014
+ width?: number;
11015
+ height?: number;
11016
+ };
11017
+
11000
11018
  export interface Matrix4 extends ArrayLike<number> {
11001
11019
  }
11002
11020
 
@@ -11022,10 +11040,6 @@ export interface Matrix4 extends ArrayLike<number> {
11022
11040
  */
11023
11041
  export class Matrix4 implements ArrayLike<number> {
11024
11042
  constructor(column0Row0?: number, column1Row0?: number, column2Row0?: number, column3Row0?: number, column0Row1?: number, column1Row1?: number, column2Row1?: number, column3Row1?: number, column0Row2?: number, column1Row2?: number, column2Row2?: number, column3Row2?: number, column0Row3?: number, column1Row3?: number, column2Row3?: number, column3Row3?: number);
11025
- /**
11026
- * The number of elements used to pack the object into an array.
11027
- */
11028
- static packedLength: number;
11029
11043
  /**
11030
11044
  * Stores the provided instance into the provided array.
11031
11045
  * @param value - The value to pack.
@@ -11064,27 +11078,6 @@ export class Matrix4 implements ArrayLike<number> {
11064
11078
  * @returns The modified result parameter or a new Matrix4 instance if one was not provided. (Returns undefined if matrix is undefined)
11065
11079
  */
11066
11080
  static clone(matrix: Matrix4, result?: Matrix4): Matrix4;
11067
- /**
11068
- * Creates a Matrix4 from 16 consecutive elements in an array.
11069
- * @example
11070
- * // Create the Matrix4:
11071
- * // [1.0, 2.0, 3.0, 4.0]
11072
- * // [1.0, 2.0, 3.0, 4.0]
11073
- * // [1.0, 2.0, 3.0, 4.0]
11074
- * // [1.0, 2.0, 3.0, 4.0]
11075
- *
11076
- * const v = [1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 4.0, 4.0, 4.0, 4.0];
11077
- * const m = Cesium.Matrix4.fromArray(v);
11078
- *
11079
- * // Create same Matrix4 with using an offset into an array
11080
- * const v2 = [0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 4.0, 4.0, 4.0, 4.0];
11081
- * const m2 = Cesium.Matrix4.fromArray(v2, 2);
11082
- * @param array - The array whose 16 consecutive elements correspond to the positions of the matrix. Assumes column-major order.
11083
- * @param [startingIndex = 0] - The offset into the array of the first element, which corresponds to first column first row position in the matrix.
11084
- * @param [result] - The object onto which to store the result.
11085
- * @returns The modified result parameter or a new Matrix4 instance if one was not provided.
11086
- */
11087
- static fromArray(array: number[], startingIndex?: number, result?: Matrix4): Matrix4;
11088
11081
  /**
11089
11082
  * Computes a Matrix4 instance from a column-major order array.
11090
11083
  * @param values - The column-major order array.
@@ -11242,7 +11235,7 @@ export class Matrix4 implements ArrayLike<number> {
11242
11235
  * @param [result] - The object in which the result will be stored.
11243
11236
  * @returns The modified result parameter.
11244
11237
  */
11245
- static computeViewportTransformation(viewport?: any, nearDepthRange?: number, farDepthRange?: number, result?: Matrix4): Matrix4;
11238
+ static computeViewportTransformation(viewport?: Viewport, nearDepthRange?: number, farDepthRange?: number, result?: Matrix4): Matrix4;
11246
11239
  /**
11247
11240
  * Computes a Matrix4 instance that transforms from world space to view space.
11248
11241
  * @param position - The position of the camera.
@@ -11748,6 +11741,63 @@ export class Matrix4 implements ArrayLike<number> {
11748
11741
  * @returns The modified result parameter.
11749
11742
  */
11750
11743
  static inverseTranspose(matrix: Matrix4, result: Matrix4): Matrix4;
11744
+ /**
11745
+ * Gets the number of items in the collection.
11746
+ */
11747
+ length: number;
11748
+ /**
11749
+ * Duplicates the provided Matrix4 instance.
11750
+ * @param [result] - The object onto which to store the result.
11751
+ * @returns The modified result parameter or a new Matrix4 instance if one was not provided.
11752
+ */
11753
+ clone(result?: Matrix4): Matrix4;
11754
+ /**
11755
+ * Compares this matrix to the provided matrix componentwise and returns
11756
+ * <code>true</code> if they are equal, <code>false</code> otherwise.
11757
+ * @param [right] - The right hand side matrix.
11758
+ * @returns <code>true</code> if they are equal, <code>false</code> otherwise.
11759
+ */
11760
+ equals(right?: Matrix4): boolean;
11761
+ /**
11762
+ * Compares this matrix to the provided matrix componentwise and returns
11763
+ * <code>true</code> if they are within the provided epsilon,
11764
+ * <code>false</code> otherwise.
11765
+ * @param [right] - The right hand side matrix.
11766
+ * @param [epsilon = 0] - The epsilon to use for equality testing.
11767
+ * @returns <code>true</code> if they are within the provided epsilon, <code>false</code> otherwise.
11768
+ */
11769
+ equalsEpsilon(right?: Matrix4, epsilon?: number): boolean;
11770
+ /**
11771
+ * Computes a string representing this Matrix with each row being
11772
+ * on a separate line and in the format '(column0, column1, column2, column3)'.
11773
+ * @returns A string representing the provided Matrix with each row being on a separate line and in the format '(column0, column1, column2, column3)'.
11774
+ */
11775
+ toString(): string;
11776
+ /**
11777
+ * The number of elements used to pack the object into an array.
11778
+ */
11779
+ static packedLength: number;
11780
+ /**
11781
+ * Creates a Matrix4 from 16 consecutive elements in an array.
11782
+ * @example
11783
+ * // Create the Matrix4:
11784
+ * // [1.0, 2.0, 3.0, 4.0]
11785
+ * // [1.0, 2.0, 3.0, 4.0]
11786
+ * // [1.0, 2.0, 3.0, 4.0]
11787
+ * // [1.0, 2.0, 3.0, 4.0]
11788
+ *
11789
+ * const v = [1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 4.0, 4.0, 4.0, 4.0];
11790
+ * const m = Cesium.Matrix4.fromArray(v);
11791
+ *
11792
+ * // Create same Matrix4 with using an offset into an array
11793
+ * const v2 = [0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 4.0, 4.0, 4.0, 4.0];
11794
+ * const m2 = Cesium.Matrix4.fromArray(v2, 2);
11795
+ * @param array - The array whose 16 consecutive elements correspond to the positions of the matrix. Assumes column-major order.
11796
+ * @param [startingIndex = 0] - The offset into the array of the first element, which corresponds to first column first row position in the matrix.
11797
+ * @param [result] - The object onto which to store the result.
11798
+ * @returns The modified result parameter or a new Matrix4 instance if one was not provided.
11799
+ */
11800
+ static fromArray(array: number[], startingIndex?: number, result?: Matrix4): Matrix4;
11751
11801
  /**
11752
11802
  * An immutable Matrix4 instance initialized to the identity matrix.
11753
11803
  */
@@ -11820,38 +11870,6 @@ export class Matrix4 implements ArrayLike<number> {
11820
11870
  * The index into Matrix4 for column 3, row 3.
11821
11871
  */
11822
11872
  static readonly COLUMN3ROW3: number;
11823
- /**
11824
- * Gets the number of items in the collection.
11825
- */
11826
- length: number;
11827
- /**
11828
- * Duplicates the provided Matrix4 instance.
11829
- * @param [result] - The object onto which to store the result.
11830
- * @returns The modified result parameter or a new Matrix4 instance if one was not provided.
11831
- */
11832
- clone(result?: Matrix4): Matrix4;
11833
- /**
11834
- * Compares this matrix to the provided matrix componentwise and returns
11835
- * <code>true</code> if they are equal, <code>false</code> otherwise.
11836
- * @param [right] - The right hand side matrix.
11837
- * @returns <code>true</code> if they are equal, <code>false</code> otherwise.
11838
- */
11839
- equals(right?: Matrix4): boolean;
11840
- /**
11841
- * Compares this matrix to the provided matrix componentwise and returns
11842
- * <code>true</code> if they are within the provided epsilon,
11843
- * <code>false</code> otherwise.
11844
- * @param [right] - The right hand side matrix.
11845
- * @param [epsilon = 0] - The epsilon to use for equality testing.
11846
- * @returns <code>true</code> if they are within the provided epsilon, <code>false</code> otherwise.
11847
- */
11848
- equalsEpsilon(right?: Matrix4, epsilon?: number): boolean;
11849
- /**
11850
- * Computes a string representing this Matrix with each row being
11851
- * on a separate line and in the format '(column0, column1, column2, column3)'.
11852
- * @returns A string representing the provided Matrix with each row being on a separate line and in the format '(column0, column1, column2, column3)'.
11853
- */
11854
- toString(): string;
11855
11873
  }
11856
11874
 
11857
11875
  /**
@@ -14556,10 +14574,6 @@ export class Rectangle {
14556
14574
  * Gets the height of the rectangle in radians.
14557
14575
  */
14558
14576
  readonly height: number;
14559
- /**
14560
- * The number of elements used to pack the object into an array.
14561
- */
14562
- static packedLength: number;
14563
14577
  /**
14564
14578
  * Stores the provided instance into the provided array.
14565
14579
  * @param value - The value to pack.
@@ -14785,6 +14799,10 @@ export class Rectangle {
14785
14799
  * @returns The modified result parameter or a new Rectangle instance if none was provided.
14786
14800
  */
14787
14801
  static subsection(rectangle: Rectangle, westLerp: number, southLerp: number, eastLerp: number, northLerp: number, result?: Rectangle): Rectangle;
14802
+ /**
14803
+ * The number of elements used to pack the object into an array.
14804
+ */
14805
+ static packedLength: number;
14788
14806
  /**
14789
14807
  * The largest possible rectangle.
14790
14808
  */
@@ -16775,11 +16793,6 @@ export class TerrainData {
16775
16793
  wasCreatedByUpsampling(): boolean;
16776
16794
  }
16777
16795
 
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
16796
  /**
16784
16797
  * Creates an axis-aligned bounding box for a quadtree node at the given tree-space coordinates and level.
16785
16798
  * 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).
@@ -17057,8 +17070,7 @@ export namespace TileProviderError {
17057
17070
  * At level of detail two, each of the level one tiles has four children, two in each direction.
17058
17071
  * This continues for as many levels as are present in the geometry or imagery source.
17059
17072
  */
17060
- export class TilingScheme {
17061
- constructor();
17073
+ export interface TilingScheme {
17062
17074
  /**
17063
17075
  * Gets the ellipsoid that is tiled by the tiling scheme.
17064
17076
  */
@@ -17104,7 +17116,7 @@ export class TilingScheme {
17104
17116
  * @returns The specified 'result', or a new object containing the rectangle
17105
17117
  * if 'result' is undefined.
17106
17118
  */
17107
- tileXYToNativeRectangle(x: number, y: number, level: number, result?: any): Rectangle;
17119
+ tileXYToNativeRectangle(x: number, y: number, level: number, result?: Rectangle): Rectangle;
17108
17120
  /**
17109
17121
  * Converts tile x, y coordinates and level to a cartographic rectangle in radians.
17110
17122
  * @param x - The integer x coordinate of the tile.
@@ -17115,7 +17127,7 @@ export class TilingScheme {
17115
17127
  * @returns The specified 'result', or a new object containing the rectangle
17116
17128
  * if 'result' is undefined.
17117
17129
  */
17118
- tileXYToRectangle(x: number, y: number, level: number, result?: any): Rectangle;
17130
+ tileXYToRectangle(x: number, y: number, level: number, result?: Rectangle): Rectangle;
17119
17131
  /**
17120
17132
  * Calculates the tile x, y coordinates of the tile containing
17121
17133
  * a given cartographic position.
@@ -18458,13 +18470,16 @@ export class WallOutlineGeometry {
18458
18470
  static createGeometry(wallGeometry: WallOutlineGeometry): Geometry | undefined;
18459
18471
  }
18460
18472
 
18473
+ export interface WebMercatorProjection extends MapProjection {
18474
+ }
18475
+
18461
18476
  /**
18462
18477
  * The map projection used by Google Maps, Bing Maps, and most of ArcGIS Online, EPSG:3857. This
18463
18478
  * projection use longitude and latitude expressed with the WGS84 and transforms them to Mercator using
18464
18479
  * the spherical (rather than ellipsoidal) equations.
18465
18480
  * @param [ellipsoid = Ellipsoid.WGS84] - The ellipsoid.
18466
18481
  */
18467
- export class WebMercatorProjection {
18482
+ export class WebMercatorProjection implements MapProjection {
18468
18483
  constructor(ellipsoid?: Ellipsoid);
18469
18484
  /**
18470
18485
  * Gets the {@link Ellipsoid}.
@@ -18484,19 +18499,6 @@ export class WebMercatorProjection {
18484
18499
  * @returns The Mercator angle.
18485
18500
  */
18486
18501
  static geodeticLatitudeToMercatorAngle(latitude: number): number;
18487
- /**
18488
- * The maximum latitude (both North and South) supported by a Web Mercator
18489
- * (EPSG:3857) projection. Technically, the Mercator projection is defined
18490
- * for any latitude up to (but not including) 90 degrees, but it makes sense
18491
- * to cut it off sooner because it grows exponentially with increasing latitude.
18492
- * The logic behind this particular cutoff value, which is the one used by
18493
- * Google Maps, Bing Maps, and Esri, is that it makes the projection
18494
- * square. That is, the rectangle is equal in the X and Y directions.
18495
- *
18496
- * The constant value is computed by calling:
18497
- * WebMercatorProjection.mercatorAngleToGeodeticLatitude(Math.PI)
18498
- */
18499
- static MaximumLatitude: number;
18500
18502
  /**
18501
18503
  * Converts geodetic ellipsoid coordinates, in radians, to the equivalent Web Mercator
18502
18504
  * X, Y, Z coordinates expressed in meters and returned in a {@link Cartesian3}. The height
@@ -18517,6 +18519,24 @@ export class WebMercatorProjection {
18517
18519
  * @returns The equivalent cartographic coordinates.
18518
18520
  */
18519
18521
  unproject(cartesian: Cartesian3, result?: Cartographic): Cartographic;
18522
+ /**
18523
+ * The maximum latitude (both North and South) supported by a Web Mercator
18524
+ * (EPSG:3857) projection. Technically, the Mercator projection is defined
18525
+ * for any latitude up to (but not including) 90 degrees, but it makes sense
18526
+ * to cut it off sooner because it grows exponentially with increasing latitude.
18527
+ * The logic behind this particular cutoff value, which is the one used by
18528
+ * Google Maps, Bing Maps, and Esri, is that it makes the projection
18529
+ * square. That is, the rectangle is equal in the X and Y directions.
18530
+ *
18531
+ * The constant value is computed by calling:
18532
+ * WebMercatorProjection.mercatorAngleToGeodeticLatitude(Math.PI)
18533
+ */
18534
+ static MaximumLatitude: number;
18535
+ }
18536
+
18537
+ export const southwestScratch: any;
18538
+
18539
+ export interface WebMercatorTilingScheme extends TilingScheme {
18520
18540
  }
18521
18541
 
18522
18542
  /**
@@ -18538,7 +18558,7 @@ export class WebMercatorProjection {
18538
18558
  * globe is covered in the longitude direction and an equal distance is covered in the latitude
18539
18559
  * direction, resulting in a square projection.
18540
18560
  */
18541
- export class WebMercatorTilingScheme {
18561
+ export class WebMercatorTilingScheme implements TilingScheme {
18542
18562
  constructor(options?: {
18543
18563
  ellipsoid?: Ellipsoid;
18544
18564
  numberOfLevelZeroTilesX?: number;
@@ -18591,7 +18611,7 @@ export class WebMercatorTilingScheme {
18591
18611
  * @returns The specified 'result', or a new object containing the rectangle
18592
18612
  * if 'result' is undefined.
18593
18613
  */
18594
- tileXYToNativeRectangle(x: number, y: number, level: number, result?: any): Rectangle;
18614
+ tileXYToNativeRectangle(x: number, y: number, level: number, result?: Rectangle): Rectangle;
18595
18615
  /**
18596
18616
  * Converts tile x, y coordinates and level to a cartographic rectangle in radians.
18597
18617
  * @param x - The integer x coordinate of the tile.
@@ -18602,7 +18622,7 @@ export class WebMercatorTilingScheme {
18602
18622
  * @returns The specified 'result', or a new object containing the rectangle
18603
18623
  * if 'result' is undefined.
18604
18624
  */
18605
- tileXYToRectangle(x: number, y: number, level: number, result?: any): Rectangle;
18625
+ tileXYToRectangle(x: number, y: number, level: number, result?: Rectangle): Rectangle;
18606
18626
  /**
18607
18627
  * Calculates the tile x, y coordinates of the tile containing
18608
18628
  * a given cartographic position.
@@ -18918,6 +18938,8 @@ export type TypedArray = Float64Array | Float32Array | Uint32Array | Uint16Array
18918
18938
  */
18919
18939
  export type TypedArrayConstructor = Float64ArrayConstructor | Float32ArrayConstructor | Uint32ArrayConstructor | Uint16ArrayConstructor | Uint8ArrayConstructor | Int32ArrayConstructor | Int16ArrayConstructor | Int8ArrayConstructor;
18920
18940
 
18941
+ export type Destroyable = any;
18942
+
18921
18943
  /**
18922
18944
  * Determines if a given date is a leap year.
18923
18945
  * @example
@@ -23369,6 +23391,7 @@ export namespace PathGraphics {
23369
23391
  * @property [resolution = 60] - A numeric Property specifying the maximum number of seconds to step when sampling the position.
23370
23392
  * @property [material = Color.WHITE] - A Property specifying the material used to draw the path.
23371
23393
  * @property [distanceDisplayCondition] - A Property specifying at what distance from the camera that this path will be displayed.
23394
+ * @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
23395
  */
23373
23396
  type ConstructorOptions = {
23374
23397
  show?: Property | boolean;
@@ -23378,6 +23401,7 @@ export namespace PathGraphics {
23378
23401
  resolution?: Property | number;
23379
23402
  material?: MaterialProperty | Color;
23380
23403
  distanceDisplayCondition?: Property | DistanceDisplayCondition;
23404
+ relativeTo?: Property | string;
23381
23405
  };
23382
23406
  }
23383
23407
 
@@ -23419,6 +23443,10 @@ export class PathGraphics {
23419
23443
  * Gets or sets the {@link DistanceDisplayCondition} Property specifying at what distance from the camera that this path will be displayed.
23420
23444
  */
23421
23445
  distanceDisplayCondition: Property | undefined;
23446
+ /**
23447
+ * 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.
23448
+ */
23449
+ relativeTo: Property | undefined;
23422
23450
  /**
23423
23451
  * Duplicates this instance.
23424
23452
  * @param [result] - The object onto which to store the result.
@@ -23433,6 +23461,32 @@ export class PathGraphics {
23433
23461
  merge(source: PathGraphics): void;
23434
23462
  }
23435
23463
 
23464
+ /**
23465
+ * Transforms a path entity's position into the local frame of the reference entity.
23466
+ * If the reference entity has an orientation, uses that orientation to define the local frame.
23467
+ * Otherwise, falls back to a VVLH (Vehicle Velocity Local Horizontal) frame derived from the reference entity's velocity.
23468
+ * @param time - The time at which to evaluate the orientation or VVLH frame.
23469
+ * @param pathEntityPos - The position of the path entity in the FIXED reference frame.
23470
+ * @param refEntityPos - The position of the reference entity in the FIXED reference frame.
23471
+ * @param refEntity - The reference entity whose frame to transform into.
23472
+ * @param result - The object onto which to store the result.
23473
+ * @returns The transformed position in the reference entity's local frame, or undefined if either input position is undefined.
23474
+ */
23475
+ export function transformToEntityFrame(time: JulianDate, pathEntityPos: Cartesian3, refEntityPos: Cartesian3, refEntity: Entity, result: Cartesian3): Cartesian3 | undefined;
23476
+
23477
+ /**
23478
+ * Compute the vehicle velocity, local horizontal (VVLH) transform for a position property at a given time.
23479
+ * The VVLH axes is defined based on the motion of the provided position point as follows:
23480
+ * - The X axis is directed toward the point's velocity vector, in the direction of motion.
23481
+ * - The Y axis is along the angular momentum vector.
23482
+ * - The Z axis is along the position vector.
23483
+ * @param time - The time at which to compute the VVLH transform.
23484
+ * @param positionProperty - The position to compute the VVLH frame for.
23485
+ * @param result - The object onto which to store the result.
23486
+ * @returns The VVLH transform.
23487
+ */
23488
+ export function computeVvlhTransform(time: JulianDate, positionProperty: PositionProperty, result: Matrix4): Matrix4;
23489
+
23436
23490
  /**
23437
23491
  * A {@link Visualizer} which maps {@link Entity#path} to a {@link Polyline}.
23438
23492
  * @param scene - The scene the primitives will be rendered in.
@@ -25939,8 +25993,6 @@ export type WebGLOptions = {
25939
25993
  failIfMajorPerformanceCaveat?: boolean;
25940
25994
  };
25941
25995
 
25942
- export function PickId(pickObjects: Map<number, object>, key: number, color: Color): void;
25943
-
25944
25996
  /**
25945
25997
  * The data type of a pixel.
25946
25998
  */
@@ -26018,6 +26070,8 @@ export enum TextureMinificationFilter {
26018
26070
  LINEAR_MIPMAP_LINEAR = WebGLConstants.LINEAR_MIPMAP_LINEAR
26019
26071
  }
26020
26072
 
26073
+ export function addAttribute(): void;
26074
+
26021
26075
  /**
26022
26076
  * An appearance defines the full GLSL vertex and fragment shaders and the
26023
26077
  * render state used to draw a {@link Primitive}. All appearances implement
@@ -27585,6 +27639,799 @@ export class BoxEmitter {
27585
27639
  dimensions: Cartesian3;
27586
27640
  }
27587
27641
 
27642
+ /**
27643
+ * View bound to the underlying buffer data of a {@link BufferPointCollection}.
27644
+ *
27645
+ * <p>BufferPoint instances are {@link https://en.wikipedia.org/wiki/Flyweight_pattern|flyweights}:
27646
+ * a single BufferPoint instance can be temporarily bound to any conceptual
27647
+ * "point" in a BufferPointCollection, allowing very large collections to be
27648
+ * iterated and updated with a minimal memory footprint.</p>
27649
+ *
27650
+ * Represented as one (1) position.
27651
+ */
27652
+ export class BufferPoint extends BufferPrimitive {
27653
+ /**
27654
+ * Copies data from source point to result.
27655
+ */
27656
+ static clone(point: BufferPoint, result: BufferPoint): BufferPoint;
27657
+ /**
27658
+ * Count of positions (vertices) in this primitive. Always 1.
27659
+ */
27660
+ readonly vertexCount: number;
27661
+ /**
27662
+ * Gets the position of this point.
27663
+ */
27664
+ getPosition(result?: Cartesian3): Cartesian3;
27665
+ /**
27666
+ * Sets the position of this point.
27667
+ */
27668
+ setPosition(position: Cartesian3): void;
27669
+ /**
27670
+ * Returns a JSON-serializable object representing the point. This encoding
27671
+ * is not memory-efficient, and should generally be used for debugging and
27672
+ * testing.
27673
+ * @returns JSON-serializable object.
27674
+ */
27675
+ toJSON(): any;
27676
+ }
27677
+
27678
+ /**
27679
+ * @property [modelMatrix = Matrix4.IDENTITY] - Transforms geometry from model to world coordinates.
27680
+ */
27681
+ export type BufferPointOptions = {
27682
+ modelMatrix?: Matrix4;
27683
+ show?: boolean;
27684
+ material?: BufferPointMaterial;
27685
+ featureId?: number;
27686
+ pickObject?: any;
27687
+ position?: Cartesian3;
27688
+ };
27689
+
27690
+ /**
27691
+ * Collection of points held in ArrayBuffer storage for performance and memory optimization.
27692
+ *
27693
+ * <p>Default buffer memory allocation is arbitrary, and collections cannot be resized,
27694
+ * so specific per-buffer capacities should be provided in the collection
27695
+ * constructor when available.</p>
27696
+ * @example
27697
+ * const collection = new BufferPointCollection({primitiveCountMax: 1024});
27698
+ *
27699
+ * const point = new BufferPoint();
27700
+ * const material = new BufferPointMaterial({color: Color.WHITE});
27701
+ *
27702
+ * // Create a new point, temporarily bound to 'point' local variable.
27703
+ * collection.add({
27704
+ * position: new Cartesian3(0.0, 0.0, 0.0),
27705
+ * material
27706
+ * }, point);
27707
+ *
27708
+ * // Iterate over all points in collection, temporarily binding 'point'
27709
+ * // local variable to each, and updating point material.
27710
+ * for (let i = 0; i < collection.primitiveCount; i++) {
27711
+ * collection.get(i, point);
27712
+ * point.setMaterial(material);
27713
+ * }
27714
+ */
27715
+ export class BufferPointCollection extends BufferPrimitiveCollection<BufferPoint> {
27716
+ constructor(options: {
27717
+ primitiveCountMax?: number;
27718
+ show?: boolean;
27719
+ debugShowBoundingVolume?: boolean;
27720
+ allowPicking?: boolean;
27721
+ });
27722
+ /**
27723
+ * Adds a new point to the collection, with the specified options. A
27724
+ * {@link BufferPoint} instance is linked to the new point, using
27725
+ * the 'result' argument if given, or a new instance if not. For repeated
27726
+ * calls, prefer to reuse a single BufferPoint instance rather than
27727
+ * allocating a new instance on each call.
27728
+ */
27729
+ add(options: BufferPointOptions, result: BufferPoint): BufferPoint;
27730
+ }
27731
+
27732
+ /**
27733
+ * @property [color = Color.WHITE] - Color of fill.
27734
+ * @property [outlineColor = Color.WHITE] - Color of outline.
27735
+ * @property [outlineWidth = 0.0] - Width of outline, 0-255px.
27736
+ * @property [size = 1.0] - Size of point, 0-255px.
27737
+ */
27738
+ export type BufferPointMaterialOptions = {
27739
+ color?: Color;
27740
+ outlineColor?: Color;
27741
+ outlineWidth?: number;
27742
+ size?: number;
27743
+ };
27744
+
27745
+ /**
27746
+ * Material description for a {@link BufferPoint}.
27747
+ *
27748
+ * <p>BufferPointMaterial objects are {@link Packable|packable}, stored
27749
+ * when calling {@link BufferPoint#setMaterial}. Subsequent changes to the
27750
+ * material will not affect the point until setMaterial() is called again.</p>
27751
+ */
27752
+ export class BufferPointMaterial extends BufferPrimitiveMaterial {
27753
+ constructor(options?: BufferPointMaterialOptions);
27754
+ /**
27755
+ * Size of point, 0-255px.
27756
+ */
27757
+ size: number;
27758
+ static pack(material: BufferPointMaterial, view: DataView, byteOffset: number): void;
27759
+ static unpack(view: DataView, byteOffset: number, result: BufferPointMaterial): BufferPointMaterial;
27760
+ /**
27761
+ * Returns a JSON-serializable object representing the material. This encoding
27762
+ * is not memory-efficient, and should generally be used for debugging and
27763
+ * testing.
27764
+ * @returns JSON-serializable object.
27765
+ */
27766
+ toJSON(): any;
27767
+ /**
27768
+ * Color of fill.
27769
+ */
27770
+ color: Color;
27771
+ /**
27772
+ * Color of outline.
27773
+ */
27774
+ outlineColor: Color;
27775
+ /**
27776
+ * Width of outline, 0-255px.
27777
+ */
27778
+ outlineWidth: number;
27779
+ }
27780
+
27781
+ /**
27782
+ * View bound to the underlying buffer data of a {@link BufferPolygonCollection}.
27783
+ *
27784
+ * <p>BufferPolygon instances are {@link https://en.wikipedia.org/wiki/Flyweight_pattern|flyweights}:
27785
+ * a single BufferPolygon instance can be temporarily bound to any conceptual
27786
+ * "polygon" in a BufferPolygonCollection, allowing very large collections to be
27787
+ * iterated and updated with a minimal memory footprint.</p>
27788
+ *
27789
+ * <p>Represented as one (1) external linear ring of three (3) or more positions.
27790
+ * May optionally define one or more internal linear rings ("holes") within the
27791
+ * polygon. Each hole is represented as a single index into the positions array,
27792
+ * where the vertex at that index is the start of an internal linear ring that
27793
+ * continues along the following vertices until reaching either the vertex
27794
+ * index of the next hole, or the end of the vertex list. Stores a precomputed
27795
+ * triangulation, represented as three vertex indices per triangle.</p>
27796
+ */
27797
+ export class BufferPolygon extends BufferPrimitive {
27798
+ /**
27799
+ * Copies data from source polygon to result. If the result polygon is not
27800
+ * new (the last polygon in the collection) then source and result polygons
27801
+ * must have the same vertex counts, hole counts, and triangle counts.
27802
+ */
27803
+ static clone(polygon: BufferPolygon, result: BufferPolygon): BufferPolygon;
27804
+ /**
27805
+ * Count of positions (vertices) in this polygon, including both outer ring and
27806
+ * internal rings (holes), number of VEC3 elements.
27807
+ */
27808
+ readonly vertexCount: number;
27809
+ /**
27810
+ * Returns an array view of this polygon's vertex positions. If 'result'
27811
+ * argument is given, vertex positions are written to that array and returned.
27812
+ * Otherwise, returns an ArrayView on collection memory — changes to this array
27813
+ * will not trigger render updates, which requires `.setPositions()`.
27814
+ * @param [result] - return {TypedArray}
27815
+ */
27816
+ getPositions(result?: TypedArray): void;
27817
+ setPositions(positions: TypedArray): void;
27818
+ /**
27819
+ * Offset in collection position array to first vertex in polygon's outer
27820
+ * linear ring, number of VEC3 elements.
27821
+ */
27822
+ readonly outerVertexOffset: number;
27823
+ /**
27824
+ * Count of positions (vertices) in this polygon's outer linear ring, number
27825
+ * of VEC3 elements.
27826
+ */
27827
+ readonly outerVertexCount: number;
27828
+ /**
27829
+ * Returns an array view of this polygon's outer linear ring vertex positions.
27830
+ * If 'result' argument is given, vertex positions are written to that array
27831
+ * and returned. Otherwise, returns an ArrayView on collection memory —
27832
+ * changes to this array will not trigger render updates, which requires
27833
+ * `.setPositions()`.
27834
+ */
27835
+ getOuterPositions(result?: TypedArray): TypedArray;
27836
+ /**
27837
+ * Count of holes (indices) in this polygon.
27838
+ */
27839
+ readonly holeCount: number;
27840
+ /**
27841
+ * Gets this polygon's hole indices, with each hole represented as a single
27842
+ * offset into this polygon's positions array. Each hole implicitly
27843
+ * continues along an internal linear ring from that vertex offset until
27844
+ * reaching either the end of the positions array, or the next hole offset.
27845
+ *
27846
+ * If 'result' argument is given, hole indices are written to that array and
27847
+ * returned. Otherwise, returns an ArrayView on collection memory — changes
27848
+ * to this array will not trigger render updates, which requires `.setHoles()`.
27849
+ */
27850
+ getHoles(result?: TypedArray): TypedArray;
27851
+ /**
27852
+ * Sets this polygon's hole indices, with holes represented as a single
27853
+ * offset into this polygon's positions array. Each hole implicitly
27854
+ * continues along an internal linear ring from that vertex offset until
27855
+ * reaching either the end of the positions array, or the next hole offset.
27856
+ */
27857
+ setHoles(holes: TypedArray): void;
27858
+ /**
27859
+ * Returns the number of (VEC3) vertices in the specified hole.
27860
+ */
27861
+ getHoleVertexCount(holeIndex: number): number;
27862
+ /**
27863
+ * Returns an array view of the inner linear ring vertex positions for the
27864
+ * specified hole. If 'result' argument is given, vertex positions are written
27865
+ * to that array and returned. Otherwise, returns an ArrayView on collection
27866
+ * memory — changes to this array will not trigger render updates, which
27867
+ * requires `.setPositions()`.
27868
+ * @param [result] - return {TypedArray}
27869
+ */
27870
+ getHolePositions(holeIndex: number, result?: TypedArray): void;
27871
+ /**
27872
+ * Count of triangles in this polygon, number of VEC3 elements.
27873
+ */
27874
+ readonly triangleCount: number;
27875
+ /**
27876
+ * Returns an array view of this polygon's triangle indices, represented as
27877
+ * three vertex indices per triangle.
27878
+ *
27879
+ * If 'result' argument is given, triangle indices are written to that array
27880
+ * and returned. Otherwise, returns an ArrayView on collection memory —
27881
+ * changes to this array will not trigger render updates, which requires
27882
+ * `.setTriangles()`.
27883
+ */
27884
+ getTriangles(result?: TypedArray): TypedArray;
27885
+ /**
27886
+ * Sets this polygon's triangle indices, represented as three vertex indices
27887
+ * per triangle.
27888
+ */
27889
+ setTriangles(indices: TypedArray): void;
27890
+ /**
27891
+ * Returns a JSON-serializable object representing the polygon. This encoding
27892
+ * is not memory-efficient, and should generally be used for debugging and
27893
+ * testing.
27894
+ * @returns JSON-serializable object.
27895
+ */
27896
+ toJSON(): any;
27897
+ }
27898
+
27899
+ /**
27900
+ * @property [modelMatrix = Matrix4.IDENTITY] - Transforms geometry from model to world coordinates.
27901
+ */
27902
+ export type BufferPolygonOptions = {
27903
+ modelMatrix?: Matrix4;
27904
+ show?: boolean;
27905
+ material?: BufferPolygonMaterial;
27906
+ featureId?: number;
27907
+ pickObject?: any;
27908
+ positions?: TypedArray;
27909
+ holes?: TypedArray;
27910
+ triangles?: TypedArray;
27911
+ };
27912
+
27913
+ /**
27914
+ * Collection of polygons held in ArrayBuffer storage for performance and memory optimization.
27915
+ *
27916
+ * <p>Default buffer memory allocation is arbitrary, and collections cannot be resized,
27917
+ * so specific per-buffer capacities should be provided in the collection
27918
+ * constructor when available.</p>
27919
+ * @example
27920
+ * import earcut from "earcut";
27921
+ *
27922
+ * const collection = new BufferPolygonCollection({
27923
+ * primitiveCountMax: 1024,
27924
+ * vertexCountMax: 4096,
27925
+ * holeCountMax: 1024,
27926
+ * triangleCountMax: 2048,
27927
+ * });
27928
+ *
27929
+ * const polygon = new BufferPolygon();
27930
+ * const positions = [ ... ];
27931
+ * const holes = [ ... ];
27932
+ * const material = new BufferPolygonMaterial({color: Color.WHITE});
27933
+ *
27934
+ * // Create a new polygon, temporarily bound to 'polygon' local variable.
27935
+ * collection.add({
27936
+ * positions: new Float64Array(positions),
27937
+ * holes: new Uint32Array(holes),
27938
+ * triangles: new Uint32Array(earcut(positions, holes, 3)),
27939
+ * material
27940
+ * }, polygon);
27941
+ *
27942
+ * // Iterate over all polygons in collection, temporarily binding 'polygon'
27943
+ * // local variable to each, and updating polygon material.
27944
+ * for (let i = 0; i < collection.primitiveCount; i++) {
27945
+ * collection.get(i, polygon);
27946
+ * polygon.setMaterial(material);
27947
+ * }
27948
+ * @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.
27949
+ */
27950
+ export class BufferPolygonCollection extends BufferPrimitiveCollection<BufferPolygon> {
27951
+ constructor(options: {
27952
+ primitiveCountMax?: number;
27953
+ vertexCountMax?: number;
27954
+ holeCountMax?: number;
27955
+ triangleCountMax?: number;
27956
+ positionDatatype?: ComponentDatatype;
27957
+ show?: boolean;
27958
+ allowPicking?: boolean;
27959
+ debugShowBoundingVolume?: boolean;
27960
+ });
27961
+ /**
27962
+ * Duplicates the contents of this collection into the result collection.
27963
+ * Result collection is not resized, and must contain enough space for all
27964
+ * primitives in the source collection. Existing polygons in the result
27965
+ * collection will be overwritten.
27966
+ *
27967
+ * <p>Useful when allocating more space for a collection that has reached its
27968
+ * capacity, and efficiently transferring polygons to the new collection.</p>
27969
+ * @example
27970
+ * const result = new BufferPolygonCollection({ ... }); // allocate larger 'result' collection
27971
+ * BufferPolygonCollection.clone(collection, result); // copy polygons from 'collection' into 'result'
27972
+ */
27973
+ static clone(collection: BufferPolygonCollection, result: BufferPolygonCollection): BufferPolygonCollection;
27974
+ /**
27975
+ * Adds a new polygon to the collection, with the specified options. A
27976
+ * {@link BufferPolygon} instance is linked to the new polygon, using
27977
+ * the 'result' argument if given, or a new instance if not. For repeated
27978
+ * calls, prefer to reuse a single BufferPolygon instance rather than
27979
+ * allocating a new instance on each call.
27980
+ */
27981
+ add(options: BufferPolygonOptions, result: BufferPolygon): BufferPolygon;
27982
+ /**
27983
+ * Total byte length of buffers owned by this collection. Includes any unused
27984
+ * space allocated by {@link primitiveCountMax}, even if no polygons have
27985
+ * yet been added in that space.
27986
+ */
27987
+ readonly byteLength: number;
27988
+ /**
27989
+ * Number of holes in collection. Must be <= {@link holeCountMax}.
27990
+ */
27991
+ readonly holeCount: number;
27992
+ /**
27993
+ * Maximum number of holes in collection. Must be >= {@link holeCount}.
27994
+ */
27995
+ readonly holeCountMax: number;
27996
+ /**
27997
+ * Number of triangles in collection. Must be <= {@link triangleCountMax}.
27998
+ */
27999
+ readonly triangleCount: number;
28000
+ /**
28001
+ * Maximum number of triangles in collection. Must be >= {@link triangleCount}.
28002
+ */
28003
+ readonly triangleCountMax: number;
28004
+ }
28005
+
28006
+ /**
28007
+ * @property [color = Color.WHITE] - Color of fill.
28008
+ * @property [outlineColor = Color.WHITE] - Color of outline.
28009
+ * @property [outlineWidth = 0.0] - Width of outline, 0-255px.
28010
+ */
28011
+ export type BufferPolygonMaterialOptions = {
28012
+ color?: Color;
28013
+ outlineColor?: Color;
28014
+ outlineWidth?: number;
28015
+ };
28016
+
28017
+ /**
28018
+ * Material description for a {@link BufferPolygon}.
28019
+ *
28020
+ * <p>BufferPolygonMaterial objects are {@link Packable|packable}, stored
28021
+ * when calling {@link BufferPolygon#setMaterial}. Subsequent changes to the
28022
+ * material will not affect the polygon until setMaterial() is called again.</p>
28023
+ */
28024
+ export class BufferPolygonMaterial extends BufferPrimitiveMaterial {
28025
+ constructor(options?: BufferPolygonMaterialOptions);
28026
+ /**
28027
+ * Color of fill.
28028
+ */
28029
+ color: Color;
28030
+ /**
28031
+ * Color of outline.
28032
+ */
28033
+ outlineColor: Color;
28034
+ /**
28035
+ * Width of outline, 0-255px.
28036
+ */
28037
+ outlineWidth: number;
28038
+ /**
28039
+ * Returns a JSON-serializable object representing the material. This encoding
28040
+ * is not memory-efficient, and should generally be used for debugging and
28041
+ * testing.
28042
+ * @returns JSON-serializable object.
28043
+ */
28044
+ toJSON(): any;
28045
+ }
28046
+
28047
+ /**
28048
+ * View bound to the underlying buffer data of a {@link BufferPolylineCollection}.
28049
+ *
28050
+ * <p>BufferPolyline instances are {@link https://en.wikipedia.org/wiki/Flyweight_pattern|flyweights}:
28051
+ * a single BufferPolyline instance can be temporarily bound to any conceptual
28052
+ * "polyline" in a BufferPolylineCollection, allowing very large collections to be
28053
+ * iterated and updated with a minimal memory footprint.</p>
28054
+ *
28055
+ * Represented as two (2) or more positions.
28056
+ */
28057
+ export class BufferPolyline extends BufferPrimitive {
28058
+ /**
28059
+ * Copies data from source polyline to result. If the result polyline is not
28060
+ * new (the last polyline in the collection) then source and result polylines
28061
+ * must have the same vertex counts.
28062
+ */
28063
+ static clone(polyline: BufferPolyline, result: BufferPolyline): BufferPolyline;
28064
+ /**
28065
+ * Count of positions (vertices) in this polyline, number of VEC3 elements.
28066
+ */
28067
+ readonly vertexCount: number;
28068
+ /**
28069
+ * Returns an array view of this polyline's vertex positions. If 'result'
28070
+ * argument is given, vertex positions are written to that array and returned.
28071
+ * Otherwise, returns an ArrayView on collection memory — changes to this array
28072
+ * will not trigger render updates, which requires `.setPositions()`.
28073
+ * @param [result] - return {TypedArray}
28074
+ */
28075
+ getPositions(result?: TypedArray): void;
28076
+ setPositions(positions: TypedArray): void;
28077
+ /**
28078
+ * Returns a JSON-serializable object representing the polyline. This encoding
28079
+ * is not memory-efficient, and should generally be used for debugging and
28080
+ * testing.
28081
+ * @returns JSON-serializable object.
28082
+ */
28083
+ toJSON(): any;
28084
+ }
28085
+
28086
+ /**
28087
+ * @property [modelMatrix = Matrix4.IDENTITY] - Transforms geometry from model to world coordinates.
28088
+ */
28089
+ export type BufferPolylineOptions = {
28090
+ modelMatrix?: Matrix4;
28091
+ show?: boolean;
28092
+ material?: BufferPolylineMaterial;
28093
+ featureId?: number;
28094
+ pickObject?: any;
28095
+ positions?: TypedArray;
28096
+ };
28097
+
28098
+ /**
28099
+ * Collection of polylines held in ArrayBuffer storage for performance and memory optimization.
28100
+ *
28101
+ * <p>Default buffer memory allocation is arbitrary, and collections cannot be resized,
28102
+ * so specific per-buffer capacities should be provided in the collection
28103
+ * constructor when available.</p>
28104
+ * @example
28105
+ * const collection = new BufferPolylineCollection({
28106
+ * primitiveCountMax: 1024,
28107
+ * vertexCountMax: 4096,
28108
+ * });
28109
+ *
28110
+ * const polyline = new BufferPolyline();
28111
+ * const material = new BufferPolylineMaterial({color: Color.WHITE});
28112
+ *
28113
+ * // Create a new polyline, temporarily bound to 'polyline' local variable.
28114
+ * collection.add({
28115
+ * positions: new Float64Array([ ... ]),
28116
+ * material,
28117
+ * }, polyline);
28118
+ *
28119
+ * // Iterate over all polylines in collection, temporarily binding 'polyline'
28120
+ * // local variable to each, and updating polyline material.
28121
+ * for (let i = 0; i < collection.primitiveCount; i++) {
28122
+ * collection.get(i, polyline);
28123
+ * polyline.setMaterial(material);
28124
+ * }
28125
+ */
28126
+ export class BufferPolylineCollection extends BufferPrimitiveCollection<BufferPolyline> {
28127
+ /**
28128
+ * Adds a new polyline to the collection, with the specified options. A
28129
+ * {@link BufferPolyline} instance is linked to the new polyline, using
28130
+ * the 'result' argument if given, or a new instance if not. For repeated
28131
+ * calls, prefer to reuse a single BufferPolyline instance rather than
28132
+ * allocating a new instance on each call.
28133
+ */
28134
+ add(options: BufferPolylineOptions, result: BufferPolyline): BufferPolyline;
28135
+ }
28136
+
28137
+ /**
28138
+ * @property [color = Color.WHITE] - Color of fill.
28139
+ * @property [outlineColor = Color.WHITE] - Color of outline.
28140
+ * @property [outlineWidth = 0.0] - Width of outline, 0-255px.
28141
+ * @property [width = 1.0] - Width of line, 0-255px.
28142
+ */
28143
+ export type BufferPolylineMaterialOptions = {
28144
+ color?: Color;
28145
+ outlineColor?: Color;
28146
+ outlineWidth?: number;
28147
+ width?: number;
28148
+ };
28149
+
28150
+ /**
28151
+ * Material description for a {@link BufferPolyline}.
28152
+ *
28153
+ * <p>BufferPolylineMaterial objects are {@link Packable|packable}, stored
28154
+ * when calling {@link BufferPolyline#setMaterial}. Subsequent changes to the
28155
+ * material will not affect the polyline until setMaterial() is called again.</p>
28156
+ */
28157
+ export class BufferPolylineMaterial extends BufferPrimitiveMaterial {
28158
+ constructor(options?: BufferPolylineMaterialOptions);
28159
+ /**
28160
+ * Width of polyline, 0–255px.
28161
+ */
28162
+ width: number;
28163
+ static pack(material: BufferPolylineMaterial, view: DataView, byteOffset: number): void;
28164
+ static unpack(view: DataView, byteOffset: number, result: BufferPolylineMaterial): BufferPolylineMaterial;
28165
+ /**
28166
+ * Returns a JSON-serializable object representing the material. This encoding
28167
+ * is not memory-efficient, and should generally be used for debugging and
28168
+ * testing.
28169
+ * @returns JSON-serializable object.
28170
+ */
28171
+ toJSON(): any;
28172
+ /**
28173
+ * Color of fill.
28174
+ */
28175
+ color: Color;
28176
+ /**
28177
+ * Color of outline.
28178
+ */
28179
+ outlineColor: Color;
28180
+ /**
28181
+ * Width of outline, 0-255px.
28182
+ */
28183
+ outlineWidth: number;
28184
+ }
28185
+
28186
+ /**
28187
+ * View bound to the underlying buffer data of a {@link BufferPrimitiveCollection}. Abstract.
28188
+ *
28189
+ * <p>BufferPrimitive instances are intended to be reused when iterating over large collections,
28190
+ * and temporarily bound to a primitive index while performing read/write operations on that primitive,
28191
+ * before being rebound to the next primitive, using the
28192
+ * {@link https://en.wikipedia.org/wiki/Flyweight_pattern|flyweight pattern}.</p>
28193
+ */
28194
+ export class BufferPrimitive {
28195
+ /**
28196
+ * Copies data from source primitive to result. If the result primitive is not
28197
+ * new (the last primitive in the collection) then source and result primitives
28198
+ * must have the same vertex counts.
28199
+ */
28200
+ static clone(primitive: BufferPrimitive, result: BufferPrimitive): BufferPrimitive;
28201
+ /**
28202
+ * Feature ID associated with the primitive; not required to be unique.
28203
+ */
28204
+ featureId: number;
28205
+ /**
28206
+ * Whether primitive is shown.
28207
+ */
28208
+ show: boolean;
28209
+ getMaterial(result: BufferPrimitiveMaterial): BufferPrimitiveMaterial;
28210
+ setMaterial(material: BufferPrimitiveMaterial): void;
28211
+ /**
28212
+ * Returns a JSON-serializable object representing the primitive. This encoding
28213
+ * is not memory-efficient, and should generally be used for debugging and
28214
+ * testing.
28215
+ * @returns JSON-serializable object.
28216
+ */
28217
+ toJSON(): any;
28218
+ }
28219
+
28220
+ /**
28221
+ * @property [modelMatrix = Matrix4.IDENTITY] - Transforms geometry from model to world coordinates.
28222
+ */
28223
+ export type BufferPrimitiveOptions = {
28224
+ modelMatrix?: Matrix4;
28225
+ show?: boolean;
28226
+ material?: BufferPrimitiveMaterial;
28227
+ featureId?: number;
28228
+ pickObject?: any;
28229
+ };
28230
+
28231
+ /**
28232
+ * Collection of primitives held in ArrayBuffer storage for performance and memory optimization.
28233
+ *
28234
+ * <p>To get the full performance benefit of using a BufferPrimitiveCollection containing "N" primitives,
28235
+ * be careful to avoid allocating "N" instances of any related JavaScript object. {@link BufferPrimitive},
28236
+ * {@link Color}, {@link Cartesian3}, and other objects can all be reused when working with large collections,
28237
+ * using the {@link https://en.wikipedia.org/wiki/Flyweight_pattern|flyweight pattern}.</p>
28238
+ * @param [options.modelMatrix = Matrix4.IDENTITY] - Transforms geometry from model to world coordinates.
28239
+ * @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.
28240
+ */
28241
+ export class BufferPrimitiveCollection<T extends BufferPrimitive> {
28242
+ constructor(options: {
28243
+ modelMatrix?: Matrix4;
28244
+ primitiveCountMax?: number;
28245
+ vertexCountMax?: number;
28246
+ show?: boolean;
28247
+ positionDatatype?: ComponentDatatype;
28248
+ allowPicking?: boolean;
28249
+ debugShowBoundingVolume?: boolean;
28250
+ });
28251
+ /**
28252
+ * Determines if primitives in this collection will be shown.
28253
+ */
28254
+ show: boolean;
28255
+ protected readonly _modelMatrix: Matrix4;
28256
+ protected readonly _boundingVolume: BoundingSphere;
28257
+ protected readonly _boundingVolumeWC: BoundingSphere;
28258
+ /**
28259
+ * This property is for debugging only; it is not for production use nor is it optimized.
28260
+ * <p>
28261
+ * Draws the bounding sphere for each draw command in the primitive.
28262
+ * </p>
28263
+ */
28264
+ debugShowBoundingVolume: boolean;
28265
+ /**
28266
+ * Returns true if this object was destroyed; otherwise, false.
28267
+ * @returns True if this object was destroyed; otherwise, false.
28268
+ */
28269
+ isDestroyed(): boolean;
28270
+ /**
28271
+ * Destroys collection and its GPU resources.
28272
+ */
28273
+ destroy(): void;
28274
+ /**
28275
+ * Sorts primitives of the collection.
28276
+ *
28277
+ * Because sorting changes the indices (but not the feature IDs) of primitives
28278
+ * in the collection, the function also returns an array mapping from previous
28279
+ * index to new index. When sorting repeatedly, the array can be reused and
28280
+ * passed as the 'result' argument for each call.
28281
+ * @returns Mapping from previous index to new index.
28282
+ */
28283
+ sort(sortFn: (...params: any[]) => any, result: Uint32Array): Uint32Array;
28284
+ /**
28285
+ * Duplicates the contents of this collection into the result collection.
28286
+ * Result collection is not resized, and must contain enough space for all
28287
+ * primitives in the source collection. Existing primitives in the result
28288
+ * collection will be overwritten.
28289
+ *
28290
+ * <p>Useful when allocating more space for a collection that has reached its
28291
+ * capacity, and efficiently transferring features to the new collection.</p>
28292
+ * @example
28293
+ * const result = new BufferPrimitiveCollection({ ... }); // allocate larger 'result' collection
28294
+ * BufferPrimitiveCollection.clone(collection, result); // copy primitives from 'collection' into 'result'
28295
+ */
28296
+ static clone<T extends BufferPrimitive>(collection: BufferPrimitiveCollection<T>, result: BufferPrimitiveCollection<T>): void;
28297
+ /**
28298
+ * Makes the given {@link BufferPrimitive} a view onto this collection's
28299
+ * primitive at the given index, for use when reading/writing primitive
28300
+ * properties. When iterating over a large collection, prefer to reuse
28301
+ * the same BufferPrimitive instance throughout the loop — rebinding
28302
+ * an existing instance to a different primitive is cheap, and avoids
28303
+ * allocating in-memory objects for every object.
28304
+ * @example
28305
+ * const primitive = new BufferPrimitive();
28306
+ * for (let i = 0; i < collection.primitiveCount; i++) {
28307
+ * collection.get(i, primitive);
28308
+ * primitive.setColor(Color.RED);
28309
+ * }
28310
+ * @returns The BufferPrimitive instance passed as the
28311
+ * 'result' argument, now bound to the specified primitive index.
28312
+ */
28313
+ get(index: number, result: BufferPrimitive): BufferPrimitive;
28314
+ /**
28315
+ * Adds a new primitive to the collection, with the specified options. A
28316
+ * {@link BufferPrimitive} instance is linked to the new primitive, using
28317
+ * the 'result' argument if given, or a new instance if not. For repeated
28318
+ * calls, prefer to reuse a single BufferPrimitive instance rather than
28319
+ * allocating a new instance on each call.
28320
+ */
28321
+ add(options: BufferPrimitiveOptions, result: BufferPrimitive): BufferPrimitive;
28322
+ update(frameState: any): void;
28323
+ /**
28324
+ * Number of primitives in collection. Must be <= {@link primitiveCountMax}.
28325
+ */
28326
+ readonly primitiveCount: number;
28327
+ /**
28328
+ * Maximum number of primitives this collection can contain. Must be >=
28329
+ * {@link primitiveCount}.
28330
+ */
28331
+ readonly primitiveCountMax: number;
28332
+ /**
28333
+ * Total byte length of buffers owned by this collection. Includes any unused
28334
+ * space allocated by {@link primitiveCountMax}, even if no primitives have
28335
+ * yet been added in that space.
28336
+ */
28337
+ readonly byteLength: number;
28338
+ /**
28339
+ * Number of vertices in collection. Must be <= {@link vertexCountMax}.
28340
+ */
28341
+ readonly vertexCount: number;
28342
+ /**
28343
+ * Maximum number of vertices this collection can contain. Must be >=
28344
+ * {@link vertexCount}.
28345
+ */
28346
+ readonly vertexCountMax: number;
28347
+ /**
28348
+ * Transforms geometry from model to world coordinates.
28349
+ */
28350
+ readonly modelMatrix: Matrix4;
28351
+ /**
28352
+ * Local bounding volume for all primitives in the collection, including both
28353
+ * shown and hidden primitives.
28354
+ */
28355
+ readonly boundingVolume: BoundingSphere;
28356
+ /**
28357
+ * World bounding volume for all primitives in the collection, including both
28358
+ * shown and hidden primitives.
28359
+ */
28360
+ readonly boundingVolumeWC: BoundingSphere;
28361
+ /**
28362
+ * Returns a JSON-serializable array representing the collection. This encoding
28363
+ * is not memory-efficient, and should generally be used for debugging and
28364
+ * testing.
28365
+ * @example
28366
+ * console.table(collection.toJSON());
28367
+ * @returns List of JSON-serializable objects, one for each
28368
+ * primitive in the collection.
28369
+ */
28370
+ toJSON(): object[];
28371
+ /**
28372
+ * Default capacity of buffers on new collections. A quantity of elements:
28373
+ * number of vertices in the vertex buffer, primitives in the primitive
28374
+ * buffer, etc. This value is arbitrary, and collections cannot be resized,
28375
+ * so specific per-buffer capacities should be provided in the collection
28376
+ * constructor when available.
28377
+ */
28378
+ static readonly DEFAULT_CAPACITY: number;
28379
+ }
28380
+
28381
+ /**
28382
+ * @property [color = Color.WHITE] - Color of fill.
28383
+ * @property [outlineColor = Color.WHITE] - Color of outline.
28384
+ * @property [outlineWidth = 0.0] - Width of outline, 0-255px.
28385
+ */
28386
+ export type BufferPrimitiveMaterialOptions = {
28387
+ color?: Color;
28388
+ outlineColor?: Color;
28389
+ outlineWidth?: number;
28390
+ };
28391
+
28392
+ /**
28393
+ * Material description for a {@link BufferPrimitive}. Abstract.
28394
+ *
28395
+ * <p>BufferPrimitiveMaterial objects are {@link Packable|packable}, stored
28396
+ * when calling {@link BufferPrimitive#setMaterial}. Subsequent changes to the
28397
+ * material will not affect the primitive until setMaterial() is called again.</p>
28398
+ */
28399
+ export class BufferPrimitiveMaterial {
28400
+ constructor(options?: BufferPrimitiveMaterialOptions);
28401
+ /**
28402
+ * Color of fill.
28403
+ */
28404
+ color: Color;
28405
+ /**
28406
+ * Color of outline.
28407
+ */
28408
+ outlineColor: Color;
28409
+ /**
28410
+ * Width of outline, 0-255px.
28411
+ */
28412
+ outlineWidth: number;
28413
+ static packedLength: number;
28414
+ /**
28415
+ * Stores the provided material into the provided array.
28416
+ */
28417
+ static pack(material: BufferPrimitiveMaterial, view: DataView, byteOffset: number): void;
28418
+ /**
28419
+ * Retrieves a material from a packed array.
28420
+ * @param view - The packed array.
28421
+ * @param byteOffset - Starting index of the element to be unpacked.
28422
+ * @param result - Material into which results are unpacked.
28423
+ * @returns Modified result material, with results unpacked.
28424
+ */
28425
+ static unpack(view: DataView, byteOffset: number, result: BufferPrimitiveMaterial): BufferPrimitiveMaterial;
28426
+ /**
28427
+ * Returns a JSON-serializable object representing the material. This encoding
28428
+ * is not memory-efficient, and should generally be used for debugging and
28429
+ * testing.
28430
+ * @returns JSON-serializable object.
28431
+ */
28432
+ toJSON(): any;
28433
+ }
28434
+
27588
28435
  /**
27589
28436
  * An orientation given by a pair of unit vectors
27590
28437
  * @property direction - The unit "direction" vector
@@ -28578,7 +29425,7 @@ export class Cesium3DTileContent {
28578
29425
  * }, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
28579
29426
  */
28580
29427
  export class Cesium3DTileFeature {
28581
- constructor();
29428
+ constructor(content: Cesium3DTileContent, batchId: number);
28582
29429
  /**
28583
29430
  * Gets or sets if the feature will be shown. This is set for all features
28584
29431
  * when a style's show is evaluated.
@@ -28726,7 +29573,7 @@ export class Cesium3DTileFeature {
28726
29573
  * }, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
28727
29574
  */
28728
29575
  export class Cesium3DTilePointFeature {
28729
- constructor();
29576
+ constructor(content: Cesium3DTileContent, batchId: number, billboard: Billboard, label: Label, polyline: Polyline);
28730
29577
  /**
28731
29578
  * Gets or sets if the feature will be shown. This is set for all features
28732
29579
  * when a style's show is evaluated.
@@ -29618,6 +30465,8 @@ export class Cesium3DTileStyle {
29618
30465
  meta: StyleExpression;
29619
30466
  }
29620
30467
 
30468
+ export const point: any;
30469
+
29621
30470
  export namespace Cesium3DTilesVoxelProvider {
29622
30471
  /**
29623
30472
  * Initialization options for the Cesium3DTilesVoxelProvider constructor
@@ -30610,6 +31459,10 @@ export class Cesium3DTileset {
30610
31459
  * </p>
30611
31460
  */
30612
31461
  readonly heightReference: HeightReference | undefined;
31462
+ /**
31463
+ * The {@link CesiumWidget#scene} that the tileset will be rendered in, required for tilesets that specify a {@link heightReference} value for clamping 3D Tiles vector data content- like points, lines, and labels- to terrain or 3D tiles.
31464
+ */
31465
+ readonly scene: Scene | undefined;
30613
31466
  /**
30614
31467
  * Gets an ellipsoid describing the shape of the globe.
30615
31468
  */
@@ -30798,11 +31651,6 @@ export class Cesium3DTileset {
30798
31651
  getHeight(cartographic: Cartographic, scene: Scene): number | undefined;
30799
31652
  }
30800
31653
 
30801
- /**
30802
- * The {@link CesiumWidget#scene} that the tileset will be rendered in, required for tilesets that specify a {@link heightReference} value for clamping 3D Tiles vector data content- like points, lines, and labels- to terrain or 3D tiles.
30803
- */
30804
- export const of = "undefined";
30805
-
30806
31654
  /**
30807
31655
  * A ParticleEmitter that emits particles from a circle.
30808
31656
  * Particles will be positioned within a circle and have initial velocities going along the z vector.
@@ -31311,12 +32159,14 @@ export function equalsArrayCartesian3(a: Cartesian3[] | undefined, b: Cartesian3
31311
32159
  * @param [options.polygons = []] - An array of {@link ClippingPolygon} objects used to selectively disable rendering on the inside of each polygon.
31312
32160
  * @param [options.enabled = true] - Determines whether the clipping polygons are active.
31313
32161
  * @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.
32162
+ * @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
32163
  */
31315
32164
  export class ClippingPolygonCollection {
31316
32165
  constructor(options?: {
31317
32166
  polygons?: ClippingPolygon[];
31318
32167
  enabled?: boolean;
31319
32168
  inverse?: boolean;
32169
+ quality?: number;
31320
32170
  });
31321
32171
  /**
31322
32172
  * If true, clipping will be enabled.
@@ -31328,6 +32178,11 @@ export class ClippingPolygonCollection {
31328
32178
  * inside of any polygon.
31329
32179
  */
31330
32180
  inverse: boolean;
32181
+ /**
32182
+ * A scalar that controls the resolution of the signed distance texture used for clipping.
32183
+ * Values greater than 1.0 increase quality, values less than 1.0 decrease it. Must be greater than 0.0.
32184
+ */
32185
+ quality: number;
31331
32186
  /**
31332
32187
  * An event triggered when a new clipping polygon is added to the collection. Event handlers
31333
32188
  * are passed the new polygon and the index at which it was added.
@@ -31773,7 +32628,7 @@ export namespace CubeMapPanorama {
31773
32628
  /**
31774
32629
  * Initialization options for the CubeMapPanorama constructor
31775
32630
  * @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
32631
+ * @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
32632
  * @property [options.show = true] - Determines if this primitive will be shown.
31778
32633
  * @property [options.credit] - A credit for the panorama, which is displayed on the canvas.
31779
32634
  */
@@ -31823,9 +32678,9 @@ export class CubeMapPanorama {
31823
32678
  */
31824
32679
  show: boolean;
31825
32680
  /**
31826
- * Gets the transform of the panorama.
32681
+ * Gets the transform of the panorama. If undefined, the default orientation uses the True Equator Mean Equinox (TEME) axes.
31827
32682
  */
31828
- readonly transform: Matrix4;
32683
+ readonly transform: Matrix3;
31829
32684
  /**
31830
32685
  * Gets the credits of the panorama.
31831
32686
  */
@@ -33100,13 +33955,13 @@ export class GaussianSplat3DTileContent {
33100
33955
  }
33101
33956
 
33102
33957
  /**
33103
- * Describes the format in which to request GetFeatureInfo from a Web Map Service (WMS) server.
33958
+ * Describes the format in which to request GetFeatureInfo from a Web Map Service (WMS) or Web Map Tile Service (WMTS) server.
33104
33959
  * @param type - The type of response to expect from a GetFeatureInfo request. Valid
33105
33960
  * values are 'json', 'xml', 'html', or 'text'.
33106
- * @param [format] - The info format to request from the WMS server. This is usually a
33961
+ * @param [format] - The info format to request from the server. This is usually a
33107
33962
  * MIME type such as 'application/json' or text/xml'. If this parameter is not specified, the provider will request 'json'
33108
33963
  * 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
33964
+ * @param [callback] - A function to invoke with the GetFeatureInfo response from the server
33110
33965
  * in order to produce an array of picked {@link ImageryLayerFeatureInfo} instances. If this parameter is not specified,
33111
33966
  * a default function for the type of response is used.
33112
33967
  */
@@ -35975,7 +36830,7 @@ export class ImageryLayerFeatureInfo {
35975
36830
  *
35976
36831
  * See the documentation for each ImageryProvider class for more information about how they return images.
35977
36832
  */
35978
- export type ImageryTypes = HTMLImageElement | HTMLCanvasElement | ImageBitmap;
36833
+ export type ImageryTypes = HTMLImageElement | HTMLCanvasElement | ImageBitmap | OffscreenCanvas;
35979
36834
 
35980
36835
  /**
35981
36836
  * Provides imagery to be displayed on the surface of an ellipsoid. This type describes an
@@ -37332,6 +38187,14 @@ export class Material {
37332
38187
  * the geometry is expected to appear translucent.
37333
38188
  */
37334
38189
  translucent: boolean | ((...params: any[]) => any);
38190
+ /**
38191
+ * The {@link TextureMinificationFilter} to apply to this material's textures.
38192
+ */
38193
+ minificationFilter: TextureMinificationFilter;
38194
+ /**
38195
+ * The {@link TextureMagnificationFilter} to apply to this material's textures.
38196
+ */
38197
+ magnificationFilter: TextureMagnificationFilter;
37335
38198
  /**
37336
38199
  * Creates a new material using an existing material type.
37337
38200
  * <br /><br />
@@ -37491,16 +38354,6 @@ export class Material {
37491
38354
  static readonly WaterMaskType: string;
37492
38355
  }
37493
38356
 
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
38357
  /**
37505
38358
  * Loads the images for a cubemap uniform, if it has changed since the last time this was called.
37506
38359
  * @param material - The material to load the cubemap images for.
@@ -37661,11 +38514,6 @@ export namespace MaterialAppearance {
37661
38514
  }
37662
38515
  }
37663
38516
 
37664
- /**
37665
- * Gets or sets the nearest sampling flag.
37666
- */
37667
- export var nearestSampling: boolean;
37668
-
37669
38517
  /**
37670
38518
  * A metadata class.
37671
38519
  *
@@ -37860,6 +38708,13 @@ export class MetadataClassProperty {
37860
38708
  * An object containing extensions.
37861
38709
  */
37862
38710
  readonly extensions: any;
38711
+ /**
38712
+ * Determines the byte size of a single property element, stored on the GPU.
38713
+ * This differs from the CPU byte size if the element type is a 64-bit type that can be
38714
+ * downcast to a 32-bit type for texture packing (only relevant for textures created from property tables).
38715
+ * @returns The byte size of a single property element on the GPU.
38716
+ */
38717
+ gpuBytesPerElement(): number;
37863
38718
  }
37864
38719
 
37865
38720
  /**
@@ -38326,6 +39181,15 @@ export enum CustomShaderTranslucencyMode {
38326
39181
  TRANSLUCENT = 2
38327
39182
  }
38328
39183
 
39184
+ /**
39185
+ * @property colors - The packed per-vertex colors.
39186
+ * @property count - The number of vertices.
39187
+ */
39188
+ export type VertexColorInfo = {
39189
+ colors: Float32Array;
39190
+ count: number;
39191
+ };
39192
+
38329
39193
  export namespace AnchorPointDirect {
38330
39194
  /**
38331
39195
  * Initialization options for the AnchorPointDirect constructor
@@ -40473,35 +41337,6 @@ export class PerInstanceColorAppearance {
40473
41337
  getRenderState(): any;
40474
41338
  }
40475
41339
 
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
41340
  /**
40506
41341
  * Compute the rectangle that describes the part of the drawing buffer
40507
41342
  * that is relevant for picking.
@@ -42381,12 +43216,6 @@ export class PrimitiveCollection {
42381
43216
  destroy(): void;
42382
43217
  }
42383
43218
 
42384
- /**
42385
- * A simple Least Recently Used (LRU) cache implementation.
42386
- */
42387
- export class LRUCache {
42388
- }
42389
-
42390
43219
  /**
42391
43220
  * Creates a spatial hash key for the given longitude, latitude, and tile level.
42392
43221
  * The precision is adjusted based on the tile level and extent to achieve finer precision at higher levels.
@@ -43761,14 +44590,14 @@ export class SkyBox {
43761
44590
  sources?: any;
43762
44591
  show?: boolean;
43763
44592
  });
43764
- /**
43765
- * Determines if the sky box will be shown.
43766
- */
43767
- show: boolean;
43768
44593
  /**
43769
44594
  * Gets or sets the the primitive object.
43770
44595
  */
43771
44596
  sources: any;
44597
+ /**
44598
+ * Determines if the sky box will be shown.
44599
+ */
44600
+ show: boolean;
43772
44601
  /**
43773
44602
  * Called when {@link Viewer} or {@link CesiumWidget} render the scene to
43774
44603
  * get the draw commands needed to render this primitive.
@@ -45054,6 +45883,12 @@ export class VoxelCell {
45054
45883
  */
45055
45884
  export class VoxelContent {
45056
45885
  constructor();
45886
+ /**
45887
+ * The metadata for this voxel content.
45888
+ * The metadata is an array of typed arrays, one for each field.
45889
+ * The data for one field is a flattened 3D array ordered by X, then Y, then Z.
45890
+ */
45891
+ readonly metadata: Int8Array[] | Uint8Array[] | Int16Array[] | Uint16Array[] | Int32Array[] | Uint32Array[] | Float32Array[] | Float64Array[];
45057
45892
  /**
45058
45893
  * Constructs a VoxelContent from an array of metadata.
45059
45894
  * @param metadata - The metadata to use for this voxel content.
@@ -45062,13 +45897,6 @@ export class VoxelContent {
45062
45897
  static fromMetadataArray(metadata: Int8Array[] | Uint8Array[] | Int16Array[] | Uint16Array[] | Int32Array[] | Uint32Array[] | Float32Array[] | Float64Array[]): VoxelContent;
45063
45898
  }
45064
45899
 
45065
- /**
45066
- * The metadata for this voxel content.
45067
- * The metadata is an array of typed arrays, one for each field.
45068
- * The data for one field is a flattened 3D array ordered by X, then Y, then Z.
45069
- */
45070
- export const metadata: Int8Array[] | Uint8Array[] | Int16Array[] | Uint16Array[] | Int32Array[] | Uint32Array[] | Float32Array[] | Float64Array[];
45071
-
45072
45900
  /**
45073
45901
  * A primitive that renders voxel data from a {@link VoxelProvider}.
45074
45902
  * @param [options] - Object with the following properties:
@@ -45373,6 +46201,10 @@ export class VoxelProvider {
45373
46201
  * If this value is not known it can be undefined.
45374
46202
  */
45375
46203
  readonly maximumTileCount: number | undefined;
46204
+ /**
46205
+ * The number of levels of detail containing available tiles in the tileset.
46206
+ */
46207
+ readonly availableLevels: number | undefined;
45376
46208
  /**
45377
46209
  * Requests the data for a given tile.
45378
46210
  * @param [options] - Object with the following properties:
@@ -45390,11 +46222,6 @@ export class VoxelProvider {
45390
46222
  }): Promise<VoxelContent> | undefined;
45391
46223
  }
45392
46224
 
45393
- /**
45394
- * The number of levels of detail containing available tiles in the tileset.
45395
- */
45396
- export const availableLevels: number | undefined;
45397
-
45398
46225
  /**
45399
46226
  * An enum of voxel shapes. The shape controls how the voxel grid is mapped to 3D space.
45400
46227
  */
@@ -45429,13 +46256,14 @@ export namespace WebMapServiceImageryProvider {
45429
46256
  * @property url - The URL of the WMS service. The URL supports the same keywords as the {@link UrlTemplateImageryProvider}.
45430
46257
  * @property layers - The layers to include, separated by commas.
45431
46258
  * @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
46259
  * @property [enablePickFeatures = true] - If true, {@link WebMapServiceImageryProvider#pickFeatures} will invoke
45434
46260
  * the GetFeatureInfo operation on the WMS server and return the features included in the response. If false,
45435
46261
  * {@link WebMapServiceImageryProvider#pickFeatures} will immediately return undefined (indicating no pickable features)
45436
46262
  * without communicating with the server. Set this property to false if you know your WMS server does not support
45437
46263
  * GetFeatureInfo or if you don't want this provider's features to be pickable. Note that this can be dynamically
45438
46264
  * overridden by modifying the WebMapServiceImageryProvider#enablePickFeatures property.
46265
+ * @property [getFeatureInfoParameters = WebMapServiceImageryProvider.GetFeatureInfoDefaultParameters] - Additional parameters to pass to the WMS server in the GetFeatureInfo URL.
46266
+ * @property [getFeatureInfoUrl] - The getFeatureInfo URL of the WMS service. If the property is not defined then we use the property value of url.
45439
46267
  * @property [getFeatureInfoFormats = WebMapServiceImageryProvider.DefaultGetFeatureInfoFormats] - The formats
45440
46268
  * in which to try WMS GetFeatureInfo requests.
45441
46269
  * @property [rectangle = Rectangle.MAX_VALUE] - The rectangle of the layer.
@@ -45458,14 +46286,14 @@ export namespace WebMapServiceImageryProvider {
45458
46286
  * an array, each element in the array is a subdomain.
45459
46287
  * @property [clock] - A Clock instance that is used when determining the value for the time dimension. Required when `times` is specified.
45460
46288
  * @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
46289
  */
45463
46290
  type ConstructorOptions = {
45464
46291
  url: Resource | string;
45465
46292
  layers: string;
45466
46293
  parameters?: any;
45467
- getFeatureInfoParameters?: any;
45468
46294
  enablePickFeatures?: boolean;
46295
+ getFeatureInfoParameters?: any;
46296
+ getFeatureInfoUrl?: Resource | string;
45469
46297
  getFeatureInfoFormats?: GetFeatureInfoFormat[];
45470
46298
  rectangle?: Rectangle;
45471
46299
  tilingScheme?: TilingScheme;
@@ -45480,7 +46308,6 @@ export namespace WebMapServiceImageryProvider {
45480
46308
  subdomains?: string | string[];
45481
46309
  clock?: Clock;
45482
46310
  times?: TimeIntervalCollection;
45483
- getFeatureInfoUrl?: Resource | string;
45484
46311
  };
45485
46312
  }
45486
46313
 
@@ -45639,21 +46466,32 @@ export namespace WebMapTileServiceImageryProvider {
45639
46466
  * @property layer - The layer name for WMTS requests.
45640
46467
  * @property style - The style name for WMTS requests.
45641
46468
  * @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.
46469
+ * @property [enablePickFeatures] - If true, {@link WebMapTileServiceImageryProvider#pickFeatures} will invoke
46470
+ * the GetFeatureInfo operation on the WMTS server and return the features included in the response. If false,
46471
+ * {@link WebMapTileServiceImageryProvider#pickFeatures} will immediately return undefined (indicating no pickable features)
46472
+ * without communicating with the server. Set this property to false if you know your WMTS server does not support
46473
+ * GetFeatureInfo or if you don't want this provider's features to be pickable.
46474
+ * Defaults to true for KVP encoding. For RESTful encoding, defaults to true only when
46475
+ * {@link WebMapTileServiceImageryProvider.ConstructorOptions#getFeatureInfoUrl} is specified, and false otherwise.
46476
+ * @property [getFeatureInfoParameters] - Additional parameters to include in GetFeatureInfo requests. Keys are lowercased internally.
46477
+ * @property [getFeatureInfoUrl] - The GetFeatureInfo URL of the WMTS service. If not specified, the value of <code>url</code> is used.
46478
+ * @property [getFeatureInfoFormats = WebMapTileServiceImageryProvider.DefaultGetFeatureInfoFormats] - The formats
46479
+ * in which to try WMTS GetFeatureInfo requests.
46480
+ * @property [rectangle = Rectangle.MAX_VALUE] - The rectangle covered by the layer.
46481
+ * @property [tilingScheme] - The tiling scheme corresponding to the organization of the tiles in the TileMatrixSet.
46482
+ * @property [ellipsoid] - The ellipsoid. If not specified, the WGS84 ellipsoid is used.
45646
46483
  * @property [tileWidth = 256] - The tile width in pixels.
45647
46484
  * @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
46485
  * @property [minimumLevel = 0] - The minimum level-of-detail supported by the imagery provider.
45651
46486
  * @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.
46487
+ * @property [tileMatrixLabels] - A list of identifiers in the TileMatrix to use for WMTS requests, one per TileMatrix level.
45653
46488
  * @property [credit] - A credit for the data source, which is displayed on the canvas.
45654
46489
  * @property [subdomains = 'abc'] - The subdomains to use for the <code>{s}</code> placeholder in the URL template.
45655
46490
  * If this parameter is a single string, each character in the string is a subdomain. If it is
45656
46491
  * an array, each element in the array is a subdomain.
46492
+ * @property [clock] - A Clock instance that is used when determining the value for the time dimension. Required when `times` is specified.
46493
+ * @property [times] - TimeIntervalCollection with its <code>data</code> property being an object containing time dynamic dimension and their values.
46494
+ * @property [dimensions] - A object containing static dimensions and their values.
45657
46495
  */
45658
46496
  type ConstructorOptions = {
45659
46497
  url: Resource | string;
@@ -45661,19 +46499,23 @@ export namespace WebMapTileServiceImageryProvider {
45661
46499
  layer: string;
45662
46500
  style: string;
45663
46501
  tileMatrixSetID: string;
45664
- tileMatrixLabels?: any[];
45665
- clock?: Clock;
45666
- times?: TimeIntervalCollection;
45667
- dimensions?: any;
46502
+ enablePickFeatures?: boolean;
46503
+ getFeatureInfoParameters?: any;
46504
+ getFeatureInfoUrl?: Resource | string;
46505
+ getFeatureInfoFormats?: GetFeatureInfoFormat[];
46506
+ rectangle?: Rectangle;
46507
+ tilingScheme?: TilingScheme;
46508
+ ellipsoid?: Ellipsoid;
45668
46509
  tileWidth?: number;
45669
46510
  tileHeight?: number;
45670
- tilingScheme?: TilingScheme;
45671
- rectangle?: Rectangle;
45672
46511
  minimumLevel?: number;
45673
46512
  maximumLevel?: number;
45674
- ellipsoid?: Ellipsoid;
46513
+ tileMatrixLabels?: any[];
45675
46514
  credit?: Credit | string;
45676
46515
  subdomains?: string | string[];
46516
+ clock?: Clock;
46517
+ times?: TimeIntervalCollection;
46518
+ dimensions?: any;
45677
46519
  };
45678
46520
  }
45679
46521
 
@@ -45706,27 +46548,85 @@ export namespace WebMapTileServiceImageryProvider {
45706
46548
  * });
45707
46549
  * viewer.imageryLayers.addImageryProvider(shadedRelief2);
45708
46550
  * @example
45709
- * // Example 3. NASA time dynamic weather data (RESTful)
46551
+ * // Example 3: NASA time dynamic snowpack data (RESTful)
46552
+ * // Define time intervals for the layer based on the capabilities XML
45710
46553
  * 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
- * }
46554
+ * iso8601: '2025-01-01/2025-09-01/P5D', // Use the valid interval(s) from the Dimension section
46555
+ * dataCallback: function(interval, index) {
46556
+ * // Return an object with the Time variable used in the URL template
46557
+ * return {
46558
+ * Time: Cesium.JulianDate.toIso8601(interval.start, 0)
46559
+ * };
46560
+ * }
45717
46561
  * });
46562
+ * // Get the internal clock, set desired start, stop, and multiplier
46563
+ * const clock = viewer.clock;
46564
+ * clock.startTime = Cesium.JulianDate.fromIso8601('2025-01-01');
46565
+ * clock.currentTime = Cesium.JulianDate.fromIso8601('2025-01-01');
46566
+ * clock.stopTime = Cesium.JulianDate.fromIso8601('2025-09-01');
46567
+ * clock.clockRange = Cesium.ClockRange.LOOP_STOP;
46568
+ * clock.multiplier = 1; // 1 day per second
46569
+ * clock.clockStep = Cesium.ClockStep.SYSTEM_CLOCK_MULTIPLIER;
46570
+ *
46571
+ * viewer.timeline.zoomTo(clock.startTime, clock.stopTime);
46572
+ *
45718
46573
  * 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',
46574
+ * url: 'https://gibs.earthdata.nasa.gov/wmts/epsg3857/best/AMSRU2_Snow_Water_Equivalent_5Day/default/{Time}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png',
46575
+ * layer: 'AMSRU2_Snow_Water_Equivalent_5Day',
46576
+ * style: 'default',
46577
+ * tileMatrixSetID: 'GoogleMapsCompatible_Level6',
46578
+ * format: 'image/png',
45725
46579
  * clock: clock,
45726
46580
  * times: times,
45727
- * credit : new Cesium.Credit('NASA Global Imagery Browse Services for EOSDIS')
46581
+ * credit: new Cesium.Credit('NASA Global Imagery Browse Services for EOSDIS')
45728
46582
  * });
45729
46583
  * viewer.imageryLayers.addImageryProvider(weather);
46584
+ * @example
46585
+ * // Example 4. Digital Earth AfricA waterbodies with GetFeatureInfo support (RESTful)
46586
+ * const waterbodies = new Cesium.WebMapTileServiceImageryProvider({
46587
+ * url: "https://geoserver.digitalearth.africa/geoserver/gwc/service/wmts/rest/{layer}/{style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}?format={format}",
46588
+ * layer: "waterbodies:DEAfrica_Waterbodies",
46589
+ * style: "waterbodies:waterbodies_v0_0_4",
46590
+ * tileMatrixSetID: "EPSG:3857",
46591
+ * tileMatrixLabels: [
46592
+ * "EPSG:3857:0",
46593
+ * "EPSG:3857:1",
46594
+ * "EPSG:3857:2",
46595
+ * "EPSG:3857:3",
46596
+ * "EPSG:3857:4",
46597
+ * "EPSG:3857:5",
46598
+ * "EPSG:3857:6",
46599
+ * "EPSG:3857:7",
46600
+ * "EPSG:3857:8",
46601
+ * "EPSG:3857:9",
46602
+ * "EPSG:3857:10",
46603
+ * "EPSG:3857:11",
46604
+ * "EPSG:3857:12",
46605
+ * "EPSG:3857:13",
46606
+ * "EPSG:3857:14",
46607
+ * "EPSG:3857:15",
46608
+ * "EPSG:3857:16",
46609
+ * "EPSG:3857:17",
46610
+ * "EPSG:3857:18",
46611
+ * "EPSG:3857:19",
46612
+ * "EPSG:3857:20",
46613
+ * "EPSG:3857:21",
46614
+ * "EPSG:3857:22",
46615
+ * "EPSG:3857:23",
46616
+ * "EPSG:3857:24",
46617
+ * "EPSG:3857:25",
46618
+ * "EPSG:3857:26",
46619
+ * "EPSG:3857:27",
46620
+ * "EPSG:3857:28",
46621
+ * "EPSG:3857:29",
46622
+ * "EPSG:3857:30",
46623
+ * ],
46624
+ * format: "image/png",
46625
+ * enablePickFeatures: true,
46626
+ * getFeatureInfoUrl: "https://geoserver.digitalearth.africa/geoserver/gwc/service/wmts/rest/{layer}/{style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}/{j}/{i}?format={format}",
46627
+ * });
46628
+ *
46629
+ * viewer.imageryLayers.addImageryProvider(waterbodies);
45730
46630
  * @param options - Object describing initialization options
45731
46631
  */
45732
46632
  export class WebMapTileServiceImageryProvider {
@@ -45792,6 +46692,16 @@ export class WebMapTileServiceImageryProvider {
45792
46692
  * and texture upload time are reduced.
45793
46693
  */
45794
46694
  readonly hasAlphaChannel: boolean;
46695
+ /**
46696
+ * Gets or sets a value indicating whether feature picking is enabled. If true, {@link WebMapTileServiceImageryProvider#pickFeatures} will
46697
+ * invoke the <code>GetFeatureInfo</code> service on the WMTS server and attempt to interpret the features included in the response. If false,
46698
+ * {@link WebMapTileServiceImageryProvider#pickFeatures} will immediately return undefined (indicating no pickable
46699
+ * features) without communicating with the server. Set this property to false if you know your data
46700
+ * source does not support picking features or if you don't want this provider's features to be pickable.
46701
+ * Defaults to true for KVP encoding. For RESTful encoding, defaults to true only when
46702
+ * {@link WebMapTileServiceImageryProvider.ConstructorOptions#getFeatureInfoUrl} is specified, and false otherwise.
46703
+ */
46704
+ enablePickFeatures: boolean;
45795
46705
  /**
45796
46706
  * Gets or sets a clock that is used to get keep the time used for time dynamic parameters.
45797
46707
  */
@@ -45806,6 +46716,10 @@ export class WebMapTileServiceImageryProvider {
45806
46716
  * Gets or sets an object that contains static dimensions and their values.
45807
46717
  */
45808
46718
  dimensions: any;
46719
+ /**
46720
+ * Gets the getFeatureInfo URL of the WMTS server.
46721
+ */
46722
+ readonly getFeatureInfoUrl: Resource | string;
45809
46723
  /**
45810
46724
  * Gets the credits to be displayed when a given tile is displayed.
45811
46725
  * @param x - The tile X coordinate.
@@ -45825,16 +46739,32 @@ export class WebMapTileServiceImageryProvider {
45825
46739
  */
45826
46740
  requestImage(x: number, y: number, level: number, request?: Request): Promise<ImageryTypes> | undefined;
45827
46741
  /**
45828
- * Picking features is not currently supported by this imagery provider, so this function simply returns
45829
- * undefined.
46742
+ * Asynchronously determines what features, if any, are located at a given longitude and latitude within
46743
+ * a tile.
45830
46744
  * @param x - The tile X coordinate.
45831
46745
  * @param y - The tile Y coordinate.
45832
46746
  * @param level - The tile level.
45833
46747
  * @param longitude - The longitude at which to pick features.
45834
46748
  * @param latitude - The latitude at which to pick features.
45835
- * @returns Undefined since picking is not supported.
46749
+ * @returns A promise for the picked features that will resolve when the asynchronous
46750
+ * picking completes. The resolved value is an array of {@link ImageryLayerFeatureInfo}
46751
+ * instances. The array may be empty if no features are found at the given location.
45836
46752
  */
45837
- pickFeatures(x: number, y: number, level: number, longitude: number, latitude: number): undefined;
46753
+ pickFeatures(x: number, y: number, level: number, longitude: number, latitude: number): Promise<ImageryLayerFeatureInfo[]> | undefined;
46754
+ /**
46755
+ * The default parameters to include in the WMTS URL to obtain images. The values are as follows:
46756
+ * service=WMTS
46757
+ * version=1.0.0
46758
+ * request=GetTile
46759
+ */
46760
+ static readonly DefaultParameters: any;
46761
+ /**
46762
+ * The default parameters to include in the WMTS URL to get feature information. The values are as follows:
46763
+ * service=WMTS
46764
+ * version=1.0.0
46765
+ * request=GetFeatureInfo
46766
+ */
46767
+ static readonly GetFeatureInfoDefaultParameters: any;
45838
46768
  }
45839
46769
 
45840
46770
  /**
@@ -46299,7 +47229,7 @@ export class CesiumWidget {
46299
47229
  * @param [offset] - The offset from the center of the entity in the local east-north-up reference frame.
46300
47230
  * @returns A Promise that resolves to true if the zoom was successful or false if the target is not currently visualized in the scene or the zoom was cancelled.
46301
47231
  */
46302
- zoomTo(target: Entity | Entity[] | EntityCollection | DataSource | ImageryLayer | Cesium3DTileset | TimeDynamicPointCloud | Promise<Entity | Entity[] | EntityCollection | DataSource | ImageryLayer | Cesium3DTileset | TimeDynamicPointCloud | VoxelPrimitive>, offset?: HeadingPitchRange): Promise<boolean>;
47232
+ zoomTo(target: Entity | Entity[] | EntityCollection | DataSource | ImageryLayer | Cesium3DTileset | TimeDynamicPointCloud | Promise<Entity | Entity[] | EntityCollection | DataSource | ImageryLayer | Cesium3DTileset | TimeDynamicPointCloud | VoxelPrimitive | BufferPrimitiveCollection<BufferPrimitive>>, offset?: HeadingPitchRange): Promise<boolean>;
46303
47233
  /**
46304
47234
  * Flies the camera to the provided entity, entities, or data source.
46305
47235
  * If the data source is still in the process of loading or the visualization is otherwise still loading,
@@ -46321,7 +47251,7 @@ export class CesiumWidget {
46321
47251
  * @param [options.offset] - The offset from the target in the local east-north-up reference frame centered at the target.
46322
47252
  * @returns A Promise that resolves to true if the flight was successful or false if the target is not currently visualized in the scene or the flight was cancelled. //TODO: Cleanup entity mentions
46323
47253
  */
46324
- flyTo(target: Entity | Entity[] | EntityCollection | DataSource | ImageryLayer | Cesium3DTileset | TimeDynamicPointCloud | Promise<Entity | Entity[] | EntityCollection | DataSource | ImageryLayer | Cesium3DTileset | TimeDynamicPointCloud | VoxelPrimitive>, options?: {
47254
+ flyTo(target: Entity | Entity[] | EntityCollection | DataSource | ImageryLayer | Cesium3DTileset | TimeDynamicPointCloud | Promise<Entity | Entity[] | EntityCollection | DataSource | ImageryLayer | Cesium3DTileset | TimeDynamicPointCloud | VoxelPrimitive | BufferPrimitiveCollection<BufferPrimitive>>, options?: {
46325
47255
  duration?: number;
46326
47256
  maximumHeight?: number;
46327
47257
  offset?: HeadingPitchRange;