@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
@@ -1,3 +1,5 @@
1
+ // @ts-check
2
+
1
3
  /**
2
4
  * Constants to determine how an interpolated value is extrapolated
3
5
  * when querying outside the bounds of available data.
@@ -31,4 +33,7 @@ const ExtrapolationType = {
31
33
  */
32
34
  EXTRAPOLATE: 2,
33
35
  };
34
- export default Object.freeze(ExtrapolationType);
36
+
37
+ Object.freeze(ExtrapolationType);
38
+
39
+ export default ExtrapolationType;
@@ -1,3 +1,5 @@
1
+ // @ts-check
2
+
1
3
  /**
2
4
  * The type of geocoding to be performed by a {@link GeocoderService}.
3
5
  * @enum {number}
@@ -21,4 +23,7 @@ const GeocodeType = {
21
23
  */
22
24
  AUTOCOMPLETE: 1,
23
25
  };
24
- export default Object.freeze(GeocodeType);
26
+
27
+ Object.freeze(GeocodeType);
28
+
29
+ export default GeocodeType;
@@ -1,105 +1,105 @@
1
+ // @ts-check
2
+
1
3
  import Cartesian3 from "./Cartesian3.js";
2
4
  import Cartographic from "./Cartographic.js";
3
5
  import defined from "./defined.js";
4
6
  import DeveloperError from "./DeveloperError.js";
5
7
  import Ellipsoid from "./Ellipsoid.js";
6
8
 
9
+ /** @import MapProjection from "./MapProjection.js"; */
10
+
7
11
  /**
8
12
  * A simple map projection where longitude and latitude are linearly mapped to X and Y by multiplying
9
13
  * them by the {@link Ellipsoid#maximumRadius}. This projection
10
14
  * is commonly known as geographic, equirectangular, equidistant cylindrical, or plate carrée. When using the WGS84 ellipsoid, it
11
15
  * is also known as EPSG:4326.
12
16
  *
13
- * @alias GeographicProjection
14
- * @constructor
15
- *
16
- * @param {Ellipsoid} [ellipsoid=Ellipsoid.default] The ellipsoid.
17
- *
18
17
  * @see WebMercatorProjection
18
+ *
19
+ * @implements MapProjection
19
20
  */
20
- function GeographicProjection(ellipsoid) {
21
- this._ellipsoid = ellipsoid ?? Ellipsoid.default;
22
- this._semimajorAxis = this._ellipsoid.maximumRadius;
23
- this._oneOverSemimajorAxis = 1.0 / this._semimajorAxis;
24
- }
21
+ class GeographicProjection {
22
+ /**
23
+ * @param {Ellipsoid} [ellipsoid=Ellipsoid.default] The ellipsoid.
24
+ */
25
+ constructor(ellipsoid) {
26
+ this._ellipsoid = ellipsoid ?? Ellipsoid.default;
27
+ this._semimajorAxis = this._ellipsoid.maximumRadius;
28
+ this._oneOverSemimajorAxis = 1.0 / this._semimajorAxis;
29
+ }
25
30
 
26
- Object.defineProperties(GeographicProjection.prototype, {
27
31
  /**
28
32
  * Gets the {@link Ellipsoid}.
29
33
  *
30
- * @memberof GeographicProjection.prototype
31
- *
32
34
  * @type {Ellipsoid}
33
35
  * @readonly
34
36
  */
35
- ellipsoid: {
36
- get: function () {
37
- return this._ellipsoid;
38
- },
39
- },
40
- });
37
+ get ellipsoid() {
38
+ return this._ellipsoid;
39
+ }
41
40
 
42
- /**
43
- * Projects a set of {@link Cartographic} coordinates, in radians, to map coordinates, in meters.
44
- * X and Y are the longitude and latitude, respectively, multiplied by the maximum radius of the
45
- * ellipsoid. Z is the unmodified height.
46
- *
47
- * @param {Cartographic} cartographic The coordinates to project.
48
- * @param {Cartesian3} [result] An instance into which to copy the result. If this parameter is
49
- * undefined, a new instance is created and returned.
50
- * @returns {Cartesian3} The projected coordinates. If the result parameter is not undefined, the
51
- * coordinates are copied there and that instance is returned. Otherwise, a new instance is
52
- * created and returned.
53
- */
54
- GeographicProjection.prototype.project = function (cartographic, result) {
55
- // Actually this is the special case of equidistant cylindrical called the plate carree
56
- const semimajorAxis = this._semimajorAxis;
57
- const x = cartographic.longitude * semimajorAxis;
58
- const y = cartographic.latitude * semimajorAxis;
59
- const z = cartographic.height;
41
+ /**
42
+ * Projects a set of {@link Cartographic} coordinates, in radians, to map coordinates, in meters.
43
+ * X and Y are the longitude and latitude, respectively, multiplied by the maximum radius of the
44
+ * ellipsoid. Z is the unmodified height.
45
+ *
46
+ * @param {Cartographic} cartographic The coordinates to project.
47
+ * @param {Cartesian3} [result] An instance into which to copy the result. If this parameter is
48
+ * undefined, a new instance is created and returned.
49
+ * @returns {Cartesian3} The projected coordinates. If the result parameter is not undefined, the
50
+ * coordinates are copied there and that instance is returned. Otherwise, a new instance is
51
+ * created and returned.
52
+ */
53
+ project(cartographic, result) {
54
+ // Actually this is the special case of equidistant cylindrical called the plate carree
55
+ const semimajorAxis = this._semimajorAxis;
56
+ const x = cartographic.longitude * semimajorAxis;
57
+ const y = cartographic.latitude * semimajorAxis;
58
+ const z = cartographic.height;
59
+
60
+ if (!defined(result)) {
61
+ return new Cartesian3(x, y, z);
62
+ }
60
63
 
61
- if (!defined(result)) {
62
- return new Cartesian3(x, y, z);
64
+ result.x = x;
65
+ result.y = y;
66
+ result.z = z;
67
+ return result;
63
68
  }
64
69
 
65
- result.x = x;
66
- result.y = y;
67
- result.z = z;
68
- return result;
69
- };
70
+ /**
71
+ * Unprojects a set of projected {@link Cartesian3} coordinates, in meters, to {@link Cartographic}
72
+ * coordinates, in radians. Longitude and Latitude are the X and Y coordinates, respectively,
73
+ * divided by the maximum radius of the ellipsoid. Height is the unmodified Z coordinate.
74
+ *
75
+ * @param {Cartesian3} cartesian The Cartesian position to unproject with height (z) in meters.
76
+ * @param {Cartographic} [result] An instance into which to copy the result. If this parameter is
77
+ * undefined, a new instance is created and returned.
78
+ * @returns {Cartographic} The unprojected coordinates. If the result parameter is not undefined, the
79
+ * coordinates are copied there and that instance is returned. Otherwise, a new instance is
80
+ * created and returned.
81
+ */
82
+ unproject(cartesian, result) {
83
+ //>>includeStart('debug', pragmas.debug);
84
+ if (!defined(cartesian)) {
85
+ throw new DeveloperError("cartesian is required");
86
+ }
87
+ //>>includeEnd('debug');
70
88
 
71
- /**
72
- * Unprojects a set of projected {@link Cartesian3} coordinates, in meters, to {@link Cartographic}
73
- * coordinates, in radians. Longitude and Latitude are the X and Y coordinates, respectively,
74
- * divided by the maximum radius of the ellipsoid. Height is the unmodified Z coordinate.
75
- *
76
- * @param {Cartesian3} cartesian The Cartesian position to unproject with height (z) in meters.
77
- * @param {Cartographic} [result] An instance into which to copy the result. If this parameter is
78
- * undefined, a new instance is created and returned.
79
- * @returns {Cartographic} The unprojected coordinates. If the result parameter is not undefined, the
80
- * coordinates are copied there and that instance is returned. Otherwise, a new instance is
81
- * created and returned.
82
- */
83
- GeographicProjection.prototype.unproject = function (cartesian, result) {
84
- //>>includeStart('debug', pragmas.debug);
85
- if (!defined(cartesian)) {
86
- throw new DeveloperError("cartesian is required");
87
- }
88
- //>>includeEnd('debug');
89
+ const oneOverEarthSemimajorAxis = this._oneOverSemimajorAxis;
90
+ const longitude = cartesian.x * oneOverEarthSemimajorAxis;
91
+ const latitude = cartesian.y * oneOverEarthSemimajorAxis;
92
+ const height = cartesian.z;
89
93
 
90
- const oneOverEarthSemimajorAxis = this._oneOverSemimajorAxis;
91
- const longitude = cartesian.x * oneOverEarthSemimajorAxis;
92
- const latitude = cartesian.y * oneOverEarthSemimajorAxis;
93
- const height = cartesian.z;
94
+ if (!defined(result)) {
95
+ return new Cartographic(longitude, latitude, height);
96
+ }
94
97
 
95
- if (!defined(result)) {
96
- return new Cartographic(longitude, latitude, height);
98
+ result.longitude = longitude;
99
+ result.latitude = latitude;
100
+ result.height = height;
101
+ return result;
97
102
  }
98
-
99
- result.longitude = longitude;
100
- result.latitude = latitude;
101
- result.height = height;
102
- return result;
103
- };
103
+ }
104
104
 
105
105
  export default GeographicProjection;
@@ -1,3 +1,5 @@
1
+ // @ts-check
2
+
1
3
  import Cartesian2 from "./Cartesian2.js";
2
4
  import Check from "./Check.js";
3
5
  import Frozen from "./Frozen.js";
@@ -7,239 +9,218 @@ import GeographicProjection from "./GeographicProjection.js";
7
9
  import CesiumMath from "./Math.js";
8
10
  import Rectangle from "./Rectangle.js";
9
11
 
12
+ /** @import Cartographic from "./Cartographic.js"; */
13
+ /** @import MapProjection from "./MapProjection.js"; */
14
+ /** @import TilingScheme from "./TilingScheme.js"; */
15
+
10
16
  /**
11
17
  * A tiling scheme for geometry referenced to a simple {@link GeographicProjection} where
12
18
  * longitude and latitude are directly mapped to X and Y. This projection is commonly
13
19
  * known as geographic, equirectangular, equidistant cylindrical, or plate carrée.
14
20
  *
15
- * @alias GeographicTilingScheme
16
- * @constructor
17
- *
18
- * @param {object} [options] Object with the following properties:
19
- * @param {Ellipsoid} [options.ellipsoid=Ellipsoid.default] The ellipsoid whose surface is being tiled. Defaults to
20
- * the default ellipsoid.
21
- * @param {Rectangle} [options.rectangle=Rectangle.MAX_VALUE] The rectangle, in radians, covered by the tiling scheme.
22
- * @param {number} [options.numberOfLevelZeroTilesX=2] The number of tiles in the X direction at level zero of
23
- * the tile tree.
24
- * @param {number} [options.numberOfLevelZeroTilesY=1] The number of tiles in the Y direction at level zero of
25
- * the tile tree.
21
+ * @implements {TilingScheme}
26
22
  */
27
- function GeographicTilingScheme(options) {
28
- options = options ?? Frozen.EMPTY_OBJECT;
29
-
30
- this._ellipsoid = options.ellipsoid ?? Ellipsoid.default;
31
- this._rectangle = options.rectangle ?? Rectangle.MAX_VALUE;
32
- this._projection = new GeographicProjection(this._ellipsoid);
33
- this._numberOfLevelZeroTilesX = options.numberOfLevelZeroTilesX ?? 2;
34
- this._numberOfLevelZeroTilesY = options.numberOfLevelZeroTilesY ?? 1;
35
- }
23
+ class GeographicTilingScheme {
24
+ /**
25
+ * @param {object} [options] Object with the following properties:
26
+ * @param {Ellipsoid} [options.ellipsoid=Ellipsoid.default] The ellipsoid whose surface is being tiled. Defaults to
27
+ * the default ellipsoid.
28
+ * @param {Rectangle} [options.rectangle=Rectangle.MAX_VALUE] The rectangle, in radians, covered by the tiling scheme.
29
+ * @param {number} [options.numberOfLevelZeroTilesX=2] The number of tiles in the X direction at level zero of
30
+ * the tile tree.
31
+ * @param {number} [options.numberOfLevelZeroTilesY=1] The number of tiles in the Y direction at level zero of
32
+ * the tile tree.
33
+ */
34
+ constructor(options) {
35
+ options = options ?? Frozen.EMPTY_OBJECT;
36
+
37
+ this._ellipsoid = options.ellipsoid ?? Ellipsoid.default;
38
+ this._rectangle = options.rectangle ?? Rectangle.MAX_VALUE;
39
+ this._projection = new GeographicProjection(this._ellipsoid);
40
+ this._numberOfLevelZeroTilesX = options.numberOfLevelZeroTilesX ?? 2;
41
+ this._numberOfLevelZeroTilesY = options.numberOfLevelZeroTilesY ?? 1;
42
+ }
36
43
 
37
- Object.defineProperties(GeographicTilingScheme.prototype, {
38
44
  /**
39
45
  * Gets the ellipsoid that is tiled by this tiling scheme.
40
- * @memberof GeographicTilingScheme.prototype
41
46
  * @type {Ellipsoid}
42
47
  */
43
- ellipsoid: {
44
- get: function () {
45
- return this._ellipsoid;
46
- },
47
- },
48
+ get ellipsoid() {
49
+ return this._ellipsoid;
50
+ }
48
51
 
49
52
  /**
50
53
  * Gets the rectangle, in radians, covered by this tiling scheme.
51
- * @memberof GeographicTilingScheme.prototype
52
54
  * @type {Rectangle}
53
55
  */
54
- rectangle: {
55
- get: function () {
56
- return this._rectangle;
57
- },
58
- },
56
+ get rectangle() {
57
+ return this._rectangle;
58
+ }
59
59
 
60
60
  /**
61
61
  * Gets the map projection used by this tiling scheme.
62
- * @memberof GeographicTilingScheme.prototype
63
62
  * @type {MapProjection}
64
63
  */
65
- projection: {
66
- get: function () {
67
- return this._projection;
68
- },
69
- },
70
- });
71
-
72
- /**
73
- * Gets the total number of tiles in the X direction at a specified level-of-detail.
74
- *
75
- * @param {number} level The level-of-detail.
76
- * @returns {number} The number of tiles in the X direction at the given level.
77
- */
78
- GeographicTilingScheme.prototype.getNumberOfXTilesAtLevel = function (level) {
79
- return this._numberOfLevelZeroTilesX << level;
80
- };
81
-
82
- /**
83
- * Gets the total number of tiles in the Y direction at a specified level-of-detail.
84
- *
85
- * @param {number} level The level-of-detail.
86
- * @returns {number} The number of tiles in the Y direction at the given level.
87
- */
88
- GeographicTilingScheme.prototype.getNumberOfYTilesAtLevel = function (level) {
89
- return this._numberOfLevelZeroTilesY << level;
90
- };
91
-
92
- /**
93
- * Transforms a rectangle specified in geodetic radians to the native coordinate system
94
- * of this tiling scheme.
95
- *
96
- * @param {Rectangle} rectangle The rectangle to transform.
97
- * @param {Rectangle} [result] The instance to which to copy the result, or undefined if a new instance
98
- * should be created.
99
- * @returns {Rectangle} The specified 'result', or a new object containing the native rectangle if 'result'
100
- * is undefined.
101
- */
102
- GeographicTilingScheme.prototype.rectangleToNativeRectangle = function (
103
- rectangle,
104
- result,
105
- ) {
106
- //>>includeStart('debug', pragmas.debug);
107
- Check.defined("rectangle", rectangle);
108
- //>>includeEnd('debug');
109
-
110
- const west = CesiumMath.toDegrees(rectangle.west);
111
- const south = CesiumMath.toDegrees(rectangle.south);
112
- const east = CesiumMath.toDegrees(rectangle.east);
113
- const north = CesiumMath.toDegrees(rectangle.north);
114
-
115
- if (!defined(result)) {
116
- return new Rectangle(west, south, east, north);
64
+ get projection() {
65
+ return this._projection;
117
66
  }
118
67
 
119
- result.west = west;
120
- result.south = south;
121
- result.east = east;
122
- result.north = north;
123
- return result;
124
- };
125
-
126
- /**
127
- * Converts tile x, y coordinates and level to a rectangle expressed in the native coordinates
128
- * of the tiling scheme.
129
- *
130
- * @param {number} x The integer x coordinate of the tile.
131
- * @param {number} y The integer y coordinate of the tile.
132
- * @param {number} level The tile level-of-detail. Zero is the least detailed.
133
- * @param {object} [result] The instance to which to copy the result, or undefined if a new instance
134
- * should be created.
135
- * @returns {Rectangle} The specified 'result', or a new object containing the rectangle
136
- * if 'result' is undefined.
137
- */
138
- GeographicTilingScheme.prototype.tileXYToNativeRectangle = function (
139
- x,
140
- y,
141
- level,
142
- result,
143
- ) {
144
- const rectangleRadians = this.tileXYToRectangle(x, y, level, result);
145
- rectangleRadians.west = CesiumMath.toDegrees(rectangleRadians.west);
146
- rectangleRadians.south = CesiumMath.toDegrees(rectangleRadians.south);
147
- rectangleRadians.east = CesiumMath.toDegrees(rectangleRadians.east);
148
- rectangleRadians.north = CesiumMath.toDegrees(rectangleRadians.north);
149
- return rectangleRadians;
150
- };
68
+ /**
69
+ * Gets the total number of tiles in the X direction at a specified level-of-detail.
70
+ *
71
+ * @param {number} level The level-of-detail.
72
+ * @returns {number} The number of tiles in the X direction at the given level.
73
+ */
74
+ getNumberOfXTilesAtLevel(level) {
75
+ return this._numberOfLevelZeroTilesX << level;
76
+ }
151
77
 
152
- /**
153
- * Converts tile x, y coordinates and level to a cartographic rectangle in radians.
154
- *
155
- * @param {number} x The integer x coordinate of the tile.
156
- * @param {number} y The integer y coordinate of the tile.
157
- * @param {number} level The tile level-of-detail. Zero is the least detailed.
158
- * @param {object} [result] The instance to which to copy the result, or undefined if a new instance
159
- * should be created.
160
- * @returns {Rectangle} The specified 'result', or a new object containing the rectangle
161
- * if 'result' is undefined.
162
- */
163
- GeographicTilingScheme.prototype.tileXYToRectangle = function (
164
- x,
165
- y,
166
- level,
167
- result,
168
- ) {
169
- const rectangle = this._rectangle;
170
-
171
- const xTiles = this.getNumberOfXTilesAtLevel(level);
172
- const yTiles = this.getNumberOfYTilesAtLevel(level);
173
-
174
- const xTileWidth = rectangle.width / xTiles;
175
- const west = x * xTileWidth + rectangle.west;
176
- const east = (x + 1) * xTileWidth + rectangle.west;
177
-
178
- const yTileHeight = rectangle.height / yTiles;
179
- const north = rectangle.north - y * yTileHeight;
180
- const south = rectangle.north - (y + 1) * yTileHeight;
181
-
182
- if (!defined(result)) {
183
- result = new Rectangle(west, south, east, north);
78
+ /**
79
+ * Gets the total number of tiles in the Y direction at a specified level-of-detail.
80
+ *
81
+ * @param {number} level The level-of-detail.
82
+ * @returns {number} The number of tiles in the Y direction at the given level.
83
+ */
84
+ getNumberOfYTilesAtLevel(level) {
85
+ return this._numberOfLevelZeroTilesY << level;
184
86
  }
185
87
 
186
- result.west = west;
187
- result.south = south;
188
- result.east = east;
189
- result.north = north;
190
- return result;
191
- };
88
+ /**
89
+ * Transforms a rectangle specified in geodetic radians to the native coordinate system
90
+ * of this tiling scheme.
91
+ *
92
+ * @param {Rectangle} rectangle The rectangle to transform.
93
+ * @param {Rectangle} [result] The instance to which to copy the result, or undefined if a new instance
94
+ * should be created.
95
+ * @returns {Rectangle} The specified 'result', or a new object containing the native rectangle if 'result'
96
+ * is undefined.
97
+ */
98
+ rectangleToNativeRectangle(rectangle, result) {
99
+ //>>includeStart('debug', pragmas.debug);
100
+ Check.defined("rectangle", rectangle);
101
+ //>>includeEnd('debug');
102
+
103
+ const west = CesiumMath.toDegrees(rectangle.west);
104
+ const south = CesiumMath.toDegrees(rectangle.south);
105
+ const east = CesiumMath.toDegrees(rectangle.east);
106
+ const north = CesiumMath.toDegrees(rectangle.north);
107
+
108
+ if (!defined(result)) {
109
+ return new Rectangle(west, south, east, north);
110
+ }
111
+
112
+ result.west = west;
113
+ result.south = south;
114
+ result.east = east;
115
+ result.north = north;
116
+ return result;
117
+ }
192
118
 
193
- /**
194
- * Calculates the tile x, y coordinates of the tile containing
195
- * a given cartographic position.
196
- *
197
- * @param {Cartographic} position The position.
198
- * @param {number} level The tile level-of-detail. Zero is the least detailed.
199
- * @param {Cartesian2} [result] The instance to which to copy the result, or undefined if a new instance
200
- * should be created.
201
- * @returns {Cartesian2} The specified 'result', or a new object containing the tile x, y coordinates
202
- * if 'result' is undefined.
203
- */
204
- GeographicTilingScheme.prototype.positionToTileXY = function (
205
- position,
206
- level,
207
- result,
208
- ) {
209
- const rectangle = this._rectangle;
210
- if (!Rectangle.contains(rectangle, position)) {
211
- // outside the bounds of the tiling scheme
212
- return undefined;
119
+ /**
120
+ * Converts tile x, y coordinates and level to a rectangle expressed in the native coordinates
121
+ * of the tiling scheme.
122
+ *
123
+ * @param {number} x The integer x coordinate of the tile.
124
+ * @param {number} y The integer y coordinate of the tile.
125
+ * @param {number} level The tile level-of-detail. Zero is the least detailed.
126
+ * @param {Rectangle} [result] The instance to which to copy the result, or undefined if a new instance
127
+ * should be created.
128
+ * @returns {Rectangle} The specified 'result', or a new object containing the rectangle
129
+ * if 'result' is undefined.
130
+ */
131
+ tileXYToNativeRectangle(x, y, level, result) {
132
+ const rectangleRadians = this.tileXYToRectangle(x, y, level, result);
133
+ rectangleRadians.west = CesiumMath.toDegrees(rectangleRadians.west);
134
+ rectangleRadians.south = CesiumMath.toDegrees(rectangleRadians.south);
135
+ rectangleRadians.east = CesiumMath.toDegrees(rectangleRadians.east);
136
+ rectangleRadians.north = CesiumMath.toDegrees(rectangleRadians.north);
137
+ return rectangleRadians;
213
138
  }
214
139
 
215
- const xTiles = this.getNumberOfXTilesAtLevel(level);
216
- const yTiles = this.getNumberOfYTilesAtLevel(level);
140
+ /**
141
+ * Converts tile x, y coordinates and level to a cartographic rectangle in radians.
142
+ *
143
+ * @param {number} x The integer x coordinate of the tile.
144
+ * @param {number} y The integer y coordinate of the tile.
145
+ * @param {number} level The tile level-of-detail. Zero is the least detailed.
146
+ * @param {Rectangle} [result] The instance to which to copy the result, or undefined if a new instance
147
+ * should be created.
148
+ * @returns {Rectangle} The specified 'result', or a new object containing the rectangle
149
+ * if 'result' is undefined.
150
+ */
151
+ tileXYToRectangle(x, y, level, result) {
152
+ const rectangle = this._rectangle;
153
+
154
+ const xTiles = this.getNumberOfXTilesAtLevel(level);
155
+ const yTiles = this.getNumberOfYTilesAtLevel(level);
217
156
 
218
- const xTileWidth = rectangle.width / xTiles;
219
- const yTileHeight = rectangle.height / yTiles;
157
+ const xTileWidth = rectangle.width / xTiles;
158
+ const west = x * xTileWidth + rectangle.west;
159
+ const east = (x + 1) * xTileWidth + rectangle.west;
220
160
 
221
- let longitude = position.longitude;
222
- if (rectangle.east < rectangle.west) {
223
- longitude += CesiumMath.TWO_PI;
224
- }
161
+ const yTileHeight = rectangle.height / yTiles;
162
+ const north = rectangle.north - y * yTileHeight;
163
+ const south = rectangle.north - (y + 1) * yTileHeight;
225
164
 
226
- let xTileCoordinate = ((longitude - rectangle.west) / xTileWidth) | 0;
227
- if (xTileCoordinate >= xTiles) {
228
- xTileCoordinate = xTiles - 1;
229
- }
165
+ if (!defined(result)) {
166
+ result = new Rectangle(west, south, east, north);
167
+ }
230
168
 
231
- let yTileCoordinate =
232
- ((rectangle.north - position.latitude) / yTileHeight) | 0;
233
- if (yTileCoordinate >= yTiles) {
234
- yTileCoordinate = yTiles - 1;
169
+ result.west = west;
170
+ result.south = south;
171
+ result.east = east;
172
+ result.north = north;
173
+ return result;
235
174
  }
236
175
 
237
- if (!defined(result)) {
238
- return new Cartesian2(xTileCoordinate, yTileCoordinate);
176
+ /**
177
+ * Calculates the tile x, y coordinates of the tile containing
178
+ * a given cartographic position.
179
+ *
180
+ * @param {Cartographic} position The position.
181
+ * @param {number} level The tile level-of-detail. Zero is the least detailed.
182
+ * @param {Cartesian2} [result] The instance to which to copy the result, or undefined if a new instance
183
+ * should be created.
184
+ * @returns {Cartesian2} The specified 'result', or a new object containing the tile x, y coordinates
185
+ * if 'result' is undefined.
186
+ */
187
+ positionToTileXY(position, level, result) {
188
+ const rectangle = this._rectangle;
189
+ if (!Rectangle.contains(rectangle, position)) {
190
+ // outside the bounds of the tiling scheme
191
+ return undefined;
192
+ }
193
+
194
+ const xTiles = this.getNumberOfXTilesAtLevel(level);
195
+ const yTiles = this.getNumberOfYTilesAtLevel(level);
196
+
197
+ const xTileWidth = rectangle.width / xTiles;
198
+ const yTileHeight = rectangle.height / yTiles;
199
+
200
+ let longitude = position.longitude;
201
+ if (rectangle.east < rectangle.west) {
202
+ longitude += CesiumMath.TWO_PI;
203
+ }
204
+
205
+ let xTileCoordinate = ((longitude - rectangle.west) / xTileWidth) | 0;
206
+ if (xTileCoordinate >= xTiles) {
207
+ xTileCoordinate = xTiles - 1;
208
+ }
209
+
210
+ let yTileCoordinate =
211
+ ((rectangle.north - position.latitude) / yTileHeight) | 0;
212
+ if (yTileCoordinate >= yTiles) {
213
+ yTileCoordinate = yTiles - 1;
214
+ }
215
+
216
+ if (!defined(result)) {
217
+ return new Cartesian2(xTileCoordinate, yTileCoordinate);
218
+ }
219
+
220
+ result.x = xTileCoordinate;
221
+ result.y = yTileCoordinate;
222
+ return result;
239
223
  }
224
+ }
240
225
 
241
- result.x = xTileCoordinate;
242
- result.y = yTileCoordinate;
243
- return result;
244
- };
245
226
  export default GeographicTilingScheme;
@@ -1,5 +1,8 @@
1
+ // @ts-check
2
+
1
3
  /**
2
4
  * Represents which vertices should have a value of `true` for the `applyOffset` attribute
5
+ * @enum {number}
3
6
  * @private
4
7
  */
5
8
  const GeometryOffsetAttribute = {
@@ -7,4 +10,7 @@ const GeometryOffsetAttribute = {
7
10
  TOP: 1,
8
11
  ALL: 2,
9
12
  };
10
- export default Object.freeze(GeometryOffsetAttribute);
13
+
14
+ Object.freeze(GeometryOffsetAttribute);
15
+
16
+ export default GeometryOffsetAttribute;
@@ -1,4 +1,7 @@
1
+ // @ts-check
2
+
1
3
  /**
4
+ * @enum {number}
2
5
  * @private
3
6
  */
4
7
  const GeometryType = {
@@ -7,4 +10,7 @@ const GeometryType = {
7
10
  LINES: 2,
8
11
  POLYLINES: 3,
9
12
  };
10
- export default Object.freeze(GeometryType);
13
+
14
+ Object.freeze(GeometryType);
15
+
16
+ export default GeometryType;