@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
@@ -0,0 +1,375 @@
1
+ // @ts-check
2
+
3
+ import Cartesian3 from "../../Core/Cartesian3.js";
4
+ import assert from "../../Core/assert.js";
5
+ import defined from "../../Core/defined.js";
6
+ import Matrix4 from "../../Core/Matrix4.js";
7
+ import PrimitiveType from "../../Core/PrimitiveType.js";
8
+ import RuntimeError from "../../Core/RuntimeError.js";
9
+ import BufferPoint from "../BufferPoint.js";
10
+ import BufferPointCollection from "../BufferPointCollection.js";
11
+ import BufferPolygon from "../BufferPolygon.js";
12
+ import BufferPolygonCollection from "../BufferPolygonCollection.js";
13
+ import BufferPolyline from "../BufferPolyline.js";
14
+ import BufferPolylineCollection from "../BufferPolylineCollection.js";
15
+ import VertexAttributeSemantic from "../VertexAttributeSemantic.js";
16
+ import ModelReader from "./ModelReader.js";
17
+ import ModelUtility from "./ModelUtility.js";
18
+ import ModelComponents from "../ModelComponents.js";
19
+ import Cesium3DTileVectorFeature from "../Cesium3DTileVectorFeature.js";
20
+
21
+ /** @import { TypedArray } from "../../Core/globalTypes.js"; */
22
+ /** @import BufferPrimitive from "../BufferPrimitive.js"; */
23
+ /** @import BufferPrimitiveCollection from "../BufferPrimitiveCollection.js"; */
24
+ /** @import VectorGltf3DTileContent from "../VectorGltf3DTileContent.js"; */
25
+ /** @import {Attribute, Components, Node, Primitive} from "../ModelComponents.js"; */
26
+
27
+ /**
28
+ * @typedef {object} VectorTileResult
29
+ * @property {Array<BufferPrimitiveCollection<BufferPrimitive>>} collections
30
+ * @property {Array<Matrix4>} collectionLocalMatrices
31
+ * @property {Map<number, Cesium3DTileVectorFeature>} features
32
+ * @ignore
33
+ */
34
+
35
+ const scratchPosition = new Cartesian3();
36
+ const scratchPoint = new BufferPoint();
37
+ const scratchPolyline = new BufferPolyline();
38
+ const scratchPolygon = new BufferPolygon();
39
+
40
+ /**
41
+ * Creates vector buffers from model components.
42
+ *
43
+ * @param {VectorGltf3DTileContent} content
44
+ * @param {Components} components
45
+ * @returns {VectorTileResult}
46
+ *
47
+ * @ignore
48
+ */
49
+ function createVectorTileBuffersFromModelComponents(content, components) {
50
+ const rootNodes = components.scene.nodes;
51
+
52
+ /** @type {VectorTileResult} */
53
+ const result = {
54
+ collections: [],
55
+ collectionLocalMatrices: [],
56
+ features: new Map(),
57
+ };
58
+
59
+ for (let i = 0; i < rootNodes.length; i++) {
60
+ appendNodeToBuffers(content, rootNodes[i], Matrix4.IDENTITY, result);
61
+ }
62
+
63
+ return result;
64
+ }
65
+
66
+ /**
67
+ * @param {TypedArray} indices
68
+ * @ignore
69
+ */
70
+ function getPrimitiveRestartIndex(indices) {
71
+ const bits = indices.BYTES_PER_ELEMENT * 8;
72
+ return Math.pow(2, bits) - 1;
73
+ }
74
+
75
+ /**
76
+ * @param {TypedArray} indices
77
+ * @param {Function} callback
78
+ * @ignore
79
+ */
80
+ function forEachLineStripSegment(indices, callback) {
81
+ const restart = getPrimitiveRestartIndex(indices);
82
+ let segmentStart = 0;
83
+ for (let i = 0; i <= indices.length; i++) {
84
+ if (i === indices.length || indices[i] === restart) {
85
+ const segmentCount = i - segmentStart;
86
+ if (segmentCount > 0) {
87
+ callback(segmentStart, segmentCount);
88
+ }
89
+ segmentStart = i + 1;
90
+ }
91
+ }
92
+ }
93
+
94
+ /**
95
+ * @param {Primitive} primitive
96
+ * @ignore
97
+ */
98
+ function gatherPrimitiveStats(primitive) {
99
+ const stats = {
100
+ pointPrimitiveCount: 0,
101
+ pointVertexCount: 0,
102
+ polylinePrimitiveCount: 0,
103
+ polylineVertexCount: 0,
104
+ polygonPrimitiveCount: 0,
105
+ polygonVertexCount: 0,
106
+ polygonHoleCount: 0,
107
+ polygonTriangleCount: 0,
108
+ };
109
+
110
+ const vector = primitive.vector;
111
+ const primitiveType = primitive.primitiveType;
112
+ const positionAttribute = ModelUtility.getAttributeBySemantic(
113
+ primitive,
114
+ VertexAttributeSemantic.POSITION,
115
+ );
116
+ const positionCount = positionAttribute.count;
117
+
118
+ const indices = primitive.indices
119
+ ? ModelReader.readIndicesAsTypedArray(primitive.indices)
120
+ : undefined;
121
+
122
+ if (primitiveType === PrimitiveType.POINTS) {
123
+ stats.pointPrimitiveCount += vector.count;
124
+ stats.pointVertexCount += vector.count;
125
+ } else if (primitiveType === PrimitiveType.LINE_STRIP) {
126
+ //>>includeStart('debug', pragmas.debug);
127
+ assert(defined(indices), "Vector LINE_STRIP primitive must be indexed.");
128
+ //>>includeEnd('debug');
129
+
130
+ stats.polylinePrimitiveCount += vector.count;
131
+ stats.polylineVertexCount += indices.length - (vector.count - 1);
132
+ } else if (primitiveType === PrimitiveType.TRIANGLES) {
133
+ //>>includeStart('debug', pragmas.debug);
134
+ assert(defined(indices), "Vector TRIANGLES primitive must be indexed.");
135
+ //>>includeEnd('debug');
136
+
137
+ stats.polygonPrimitiveCount += vector.count;
138
+ stats.polygonVertexCount += positionCount;
139
+ stats.polygonTriangleCount += indices.length / 3;
140
+
141
+ const polygonHoleCounts = vector.polygonHoleCounts;
142
+ if (polygonHoleCounts) {
143
+ for (let i = 0; i < polygonHoleCounts.length; i++) {
144
+ stats.polygonHoleCount += polygonHoleCounts[i];
145
+ }
146
+ }
147
+ } else {
148
+ throw new RuntimeError(`Unexpected primitive type: ${primitiveType}`);
149
+ }
150
+
151
+ return stats;
152
+ }
153
+
154
+ /**
155
+ * @param {VectorGltf3DTileContent} content
156
+ * @param {Primitive} primitive
157
+ * @param {BufferPrimitiveCollection<BufferPrimitive>} collection
158
+ * @param {number} collectionIndex
159
+ * @param {Map<number, Cesium3DTileVectorFeature>} features
160
+ * @ignore
161
+ */
162
+ function appendPrimitiveToBuffers(
163
+ content,
164
+ primitive,
165
+ collection,
166
+ collectionIndex,
167
+ features,
168
+ ) {
169
+ const vector = primitive.vector;
170
+ const positionAttribute = ModelUtility.getAttributeBySemantic(
171
+ primitive,
172
+ VertexAttributeSemantic.POSITION,
173
+ );
174
+ /** @type {TypedArray} */
175
+ const collectionPositions =
176
+ positionAttribute.typedArray ??
177
+ ModelReader.readAttributeAsTypedArray(positionAttribute);
178
+ const vertexCount = collectionPositions.length / 3;
179
+
180
+ /** @type {TypedArray} */
181
+ const indices = primitive.indices
182
+ ? ModelReader.readIndicesAsTypedArray(primitive.indices)
183
+ : undefined;
184
+
185
+ const featureIdComponent = primitive.featureIds?.[0];
186
+
187
+ /** @type {Attribute} */
188
+ let featureIdAttribute;
189
+
190
+ /** @type {TypedArray} */
191
+ let featureIdArray;
192
+
193
+ /**
194
+ * @param {number} vertexOffset
195
+ * @returns {Cesium3DTileVectorFeature}
196
+ */
197
+ function getFeature(vertexOffset) {
198
+ const featureId = featureIdArray[vertexOffset];
199
+ if (featureId !== featureIdComponent.nullFeatureId) {
200
+ return features.get(featureId);
201
+ }
202
+ }
203
+
204
+ if (featureIdComponent instanceof ModelComponents.FeatureIdAttribute) {
205
+ featureIdAttribute = ModelUtility.getAttributeBySemantic(
206
+ primitive,
207
+ VertexAttributeSemantic.FEATURE_ID,
208
+ featureIdComponent.setIndex,
209
+ );
210
+ featureIdArray =
211
+ featureIdAttribute.typedArray ??
212
+ ModelReader.readAttributeAsTypedArray(featureIdAttribute);
213
+
214
+ for (let i = 0; i < featureIdArray.length; i++) {
215
+ const featureId = featureIdArray[i];
216
+ if (!features.has(featureId)) {
217
+ const feature = new Cesium3DTileVectorFeature(
218
+ content,
219
+ featureId,
220
+ featureIdComponent.propertyTableId,
221
+ );
222
+ features.set(featureId, feature);
223
+ }
224
+ }
225
+ }
226
+
227
+ if (collection instanceof BufferPointCollection) {
228
+ for (let i = 0, il = indices ? indices.length : vertexCount; i < il; i++) {
229
+ const vertexOffset = indices ? indices[i] : i;
230
+ Cartesian3.fromArray(
231
+ // @ts-expect-error TODO(tsd-jsdoc): See https://github.com/CesiumGS/cesium/pull/13302.
232
+ collectionPositions,
233
+ vertexOffset * 3,
234
+ scratchPosition,
235
+ );
236
+
237
+ const pickObject = getFeature(vertexOffset);
238
+ pickObject.addPrimitiveByCollection(collectionIndex, i);
239
+ const featureId = pickObject.featureId;
240
+
241
+ collection.add(
242
+ { position: scratchPosition, featureId, pickObject },
243
+ scratchPoint,
244
+ );
245
+ }
246
+ } else if (collection instanceof BufferPolylineCollection) {
247
+ // @ts-expect-error TODO
248
+ forEachLineStripSegment(indices, (indexOffset, indexCount) => {
249
+ const i = collection.primitiveCount;
250
+ const vertexOffset = indices[indexOffset];
251
+ const positions = collectionPositions.subarray(
252
+ vertexOffset * 3,
253
+ (vertexOffset + indexCount) * 3,
254
+ );
255
+
256
+ const pickObject = getFeature(vertexOffset);
257
+ pickObject.addPrimitiveByCollection(collectionIndex, i);
258
+ const featureId = pickObject.featureId;
259
+
260
+ collection.add({ positions, featureId, pickObject }, scratchPolyline);
261
+ });
262
+ } else if (collection instanceof BufferPolygonCollection) {
263
+ const polygonAttributeOffsets = vector.polygonAttributeOffsets;
264
+ const polygonIndicesOffsets = vector.polygonIndicesOffsets;
265
+ const polygonHoleCounts = vector.polygonHoleCounts;
266
+ const polygonHoleOffsets = vector.polygonHoleOffsets;
267
+
268
+ const polygonCount = polygonAttributeOffsets.length;
269
+ for (let i = 0; i < polygonCount; i++) {
270
+ const polygonVertexStart = polygonAttributeOffsets[i];
271
+ const polygonVertexEnd =
272
+ i + 1 < polygonCount ? polygonAttributeOffsets[i + 1] : vertexCount;
273
+
274
+ const positions = collectionPositions.subarray(
275
+ polygonVertexStart * 3,
276
+ polygonVertexEnd * 3,
277
+ );
278
+
279
+ let holes;
280
+ if (defined(polygonHoleCounts) && polygonHoleCounts[i] > 0) {
281
+ const holeCount = polygonHoleCounts[i];
282
+ holes = polygonHoleOffsets.slice(i, i + holeCount);
283
+ for (let h = 0; h < holeCount; h++) {
284
+ holes[i] -= polygonVertexStart;
285
+ }
286
+ }
287
+
288
+ const triangleIndexStart = polygonIndicesOffsets[i];
289
+ const triangleIndexEnd =
290
+ i + 1 < polygonCount ? polygonIndicesOffsets[i + 1] : indices.length;
291
+ const triangles = indices.slice(triangleIndexStart, triangleIndexEnd);
292
+ for (let t = 0; t < triangleIndexEnd; t++) {
293
+ triangles[t] -= polygonVertexStart;
294
+ }
295
+
296
+ const pickObject = getFeature(polygonVertexStart);
297
+ pickObject.addPrimitiveByCollection(collectionIndex, i);
298
+ const featureId = pickObject.featureId;
299
+
300
+ collection.add(
301
+ { positions, triangles, holes, featureId, pickObject },
302
+ scratchPolygon,
303
+ );
304
+ }
305
+ }
306
+ }
307
+
308
+ /**
309
+ * @param {VectorGltf3DTileContent} content
310
+ * @param {Node} node
311
+ * @param {Matrix4} parentTransform
312
+ * @param {VectorTileResult} result
313
+ * @ignore
314
+ */
315
+ function appendNodeToBuffers(content, node, parentTransform, result) {
316
+ const localTransform = ModelUtility.getNodeTransform(node);
317
+ const nodeTransform = Matrix4.multiplyTransformation(
318
+ parentTransform,
319
+ localTransform,
320
+ new Matrix4(),
321
+ );
322
+
323
+ const primitives = node.primitives;
324
+ for (let i = 0; i < primitives.length; i++) {
325
+ const primitive = primitives[i];
326
+ const primitiveType = primitive.primitiveType;
327
+ if (!primitive.vector) {
328
+ continue;
329
+ }
330
+
331
+ /** @type {BufferPrimitiveCollection<BufferPrimitive>} */
332
+ let collection;
333
+
334
+ const stats = gatherPrimitiveStats(primitive);
335
+
336
+ if (primitiveType === PrimitiveType.POINTS) {
337
+ collection = new BufferPointCollection({
338
+ primitiveCountMax: stats.pointPrimitiveCount,
339
+ allowPicking: true,
340
+ });
341
+ } else if (primitiveType === PrimitiveType.LINE_STRIP) {
342
+ collection = new BufferPolylineCollection({
343
+ primitiveCountMax: stats.polylinePrimitiveCount,
344
+ vertexCountMax: stats.polylineVertexCount,
345
+ allowPicking: true,
346
+ });
347
+ } else if (primitiveType === PrimitiveType.TRIANGLES) {
348
+ collection = new BufferPolygonCollection({
349
+ primitiveCountMax: stats.polygonPrimitiveCount,
350
+ vertexCountMax: stats.polygonVertexCount,
351
+ holeCountMax: stats.polygonHoleCount,
352
+ triangleCountMax: stats.polygonTriangleCount,
353
+ allowPicking: true,
354
+ });
355
+ }
356
+
357
+ result.collections.push(collection);
358
+ result.collectionLocalMatrices.push(Matrix4.clone(nodeTransform));
359
+
360
+ appendPrimitiveToBuffers(
361
+ content,
362
+ primitive,
363
+ collection,
364
+ result.collections.length - 1,
365
+ result.features,
366
+ );
367
+ }
368
+
369
+ const children = node.children;
370
+ for (let i = 0; i < children.length; i++) {
371
+ appendNodeToBuffers(content, children[i], nodeTransform, result);
372
+ }
373
+ }
374
+
375
+ export default createVectorTileBuffersFromModelComponents;