@cesium/engine 26.1.0 → 26.2.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 (384) hide show
  1. package/Build/ThirdParty/Workers/zip-web-worker.js +586 -480
  2. package/Build/Workers/chunk-27FWRTJI.js +454 -0
  3. package/Build/Workers/chunk-2H5264K7.js +1284 -0
  4. package/Build/Workers/chunk-2H73KDBM.js +511 -0
  5. package/Build/Workers/chunk-2RGJPWQX.js +1284 -0
  6. package/Build/Workers/chunk-2Z4ZLVOD.js +352 -0
  7. package/Build/Workers/chunk-2ZKH2QZB.js +387 -0
  8. package/Build/Workers/chunk-36NI5E6W.js +3820 -0
  9. package/Build/Workers/chunk-37SW7SYS.js +778 -0
  10. package/Build/Workers/chunk-3GHVJ3SO.js +455 -0
  11. package/Build/Workers/chunk-3LB4UVPU.js +387 -0
  12. package/Build/Workers/chunk-3PONLKEL.js +778 -0
  13. package/Build/Workers/chunk-3PSS3T43.js +102 -0
  14. package/Build/Workers/chunk-3QR662HH.js +3820 -0
  15. package/Build/Workers/chunk-3SX2WYSO.js +973 -0
  16. package/Build/Workers/chunk-3UDN6LYX.js +476 -0
  17. package/Build/Workers/chunk-47MCBSXI.js +9237 -0
  18. package/Build/Workers/chunk-4E626OCE.js +1067 -0
  19. package/Build/Workers/chunk-4NW2MJKH.js +455 -0
  20. package/Build/Workers/chunk-52YK5BSN.js +198 -0
  21. package/Build/Workers/chunk-5RNAQZK6.js +9234 -0
  22. package/Build/Workers/chunk-5YPQBFRD.js +519 -0
  23. package/Build/Workers/chunk-6FHT43QR.js +140 -0
  24. package/Build/Workers/chunk-6FZDPMTO.js +455 -0
  25. package/Build/Workers/chunk-6R5X2GUA.js +1284 -0
  26. package/Build/Workers/chunk-7A2OGDHT.js +305 -0
  27. package/Build/Workers/chunk-7CGEQUM2.js +305 -0
  28. package/Build/Workers/chunk-7I325HV6.js +1344 -0
  29. package/Build/Workers/chunk-7MM3N2VE.js +1067 -0
  30. package/Build/Workers/chunk-7TKLTCZW.js +219 -0
  31. package/Build/Workers/chunk-7UUKBDH6.js +1054 -0
  32. package/Build/Workers/chunk-7W6DUHAB.js +693 -0
  33. package/Build/Workers/chunk-7XM5JK5F.js +162 -0
  34. package/Build/Workers/chunk-7YG3ND3P.js +454 -0
  35. package/Build/Workers/chunk-A62YI6S6.js +305 -0
  36. package/Build/Workers/chunk-A7TTWVTF.js +2719 -0
  37. package/Build/Workers/chunk-ACTVJHSP.js +519 -0
  38. package/Build/Workers/chunk-ADX3CBKD.js +9234 -0
  39. package/Build/Workers/chunk-AF7DTMJ7.js +398 -0
  40. package/Build/Workers/chunk-AJSFRY4U.js +1344 -0
  41. package/Build/Workers/chunk-ARZICEEP.js +301 -0
  42. package/Build/Workers/chunk-B3QHNA4A.js +147 -0
  43. package/Build/Workers/chunk-BKPQFCXH.js +511 -0
  44. package/Build/Workers/chunk-BSPCI2LO.js +959 -0
  45. package/Build/Workers/chunk-BUJWSX5S.js +301 -0
  46. package/Build/Workers/chunk-C7QDUNI3.js +138 -0
  47. package/Build/Workers/chunk-CIV5DJOQ.js +778 -0
  48. package/Build/Workers/chunk-CQNFIAZU.js +56 -0
  49. package/Build/Workers/chunk-CRCGE4J4.js +9237 -0
  50. package/Build/Workers/chunk-CUTRKXUQ.js +288 -0
  51. package/Build/Workers/chunk-D6AY775A.js +3201 -0
  52. package/Build/Workers/chunk-DSGLDRTI.js +278 -0
  53. package/Build/Workers/chunk-DZBQUULR.js +138 -0
  54. package/Build/Workers/chunk-DZUFEE4L.js +140 -0
  55. package/Build/Workers/chunk-E2NKV5YT.js +3820 -0
  56. package/Build/Workers/chunk-EB3Y5P3A.js +368 -0
  57. package/Build/Workers/chunk-ELE6SC2C.js +837 -0
  58. package/Build/Workers/chunk-EOWDZN5S.js +288 -0
  59. package/Build/Workers/chunk-ERKUET22.js +3201 -0
  60. package/Build/Workers/chunk-EZGQPOIG.js +162 -0
  61. package/Build/Workers/chunk-F2IMBMZY.js +241 -0
  62. package/Build/Workers/chunk-F4CSNRZO.js +219 -0
  63. package/Build/Workers/chunk-FBP4DUQJ.js +693 -0
  64. package/Build/Workers/chunk-FJWZMGOQ.js +1992 -0
  65. package/Build/Workers/chunk-FQ42MT7M.js +58 -0
  66. package/Build/Workers/chunk-FU4BGABC.js +398 -0
  67. package/Build/Workers/chunk-FX3VEAIU.js +2719 -0
  68. package/Build/Workers/chunk-GGNWQWSB.js +301 -0
  69. package/Build/Workers/chunk-GHXVQVUM.js +1344 -0
  70. package/Build/Workers/chunk-GNKXEN4C.js +682 -0
  71. package/Build/Workers/chunk-GVA7XQI2.js +368 -0
  72. package/Build/Workers/chunk-GXDHRC4J.js +1344 -0
  73. package/Build/Workers/chunk-GYSYP6PC.js +1067 -0
  74. package/Build/Workers/chunk-H2WCFXLP.js +241 -0
  75. package/Build/Workers/chunk-HDL4HOXZ.js +778 -0
  76. package/Build/Workers/chunk-HLW2ZRVK.js +368 -0
  77. package/Build/Workers/chunk-HT6FASOT.js +973 -0
  78. package/Build/Workers/chunk-I74ZH5LK.js +959 -0
  79. package/Build/Workers/chunk-IDVHUDZT.js +352 -0
  80. package/Build/Workers/chunk-IJZJMIUY.js +789 -0
  81. package/Build/Workers/chunk-IMBVP57H.js +44 -0
  82. package/Build/Workers/chunk-IOO7Z2AV.js +57 -0
  83. package/Build/Workers/chunk-IUIFLOYO.js +44 -0
  84. package/Build/Workers/chunk-J73T2VOY.js +171 -0
  85. package/Build/Workers/chunk-JALGQYDY.js +288 -0
  86. package/Build/Workers/chunk-JXYLJCTC.js +124 -0
  87. package/Build/Workers/chunk-K27QOAW6.js +97 -0
  88. package/Build/Workers/chunk-KMV25A63.js +789 -0
  89. package/Build/Workers/chunk-KP5QD7WU.js +693 -0
  90. package/Build/Workers/chunk-KZWFWJML.js +2719 -0
  91. package/Build/Workers/chunk-LCXRRALY.js +387 -0
  92. package/Build/Workers/chunk-LDRQSYBN.js +1800 -0
  93. package/Build/Workers/chunk-M4JZ6TSZ.js +959 -0
  94. package/Build/Workers/chunk-M6QKXVAU.js +1054 -0
  95. package/Build/Workers/chunk-MAAHFYPC.js +198 -0
  96. package/Build/Workers/chunk-MCJDRDJQ.js +102 -0
  97. package/Build/Workers/chunk-MEENMEAH.js +198 -0
  98. package/Build/Workers/chunk-NAWU5RF4.js +162 -0
  99. package/Build/Workers/chunk-NCL22ZUX.js +56 -0
  100. package/Build/Workers/chunk-NEFDMMLY.js +241 -0
  101. package/Build/Workers/chunk-NJVBJG63.js +124 -0
  102. package/Build/Workers/chunk-NLLCQBX3.js +73 -0
  103. package/Build/Workers/chunk-NSKZ6SBK.js +1483 -0
  104. package/Build/Workers/chunk-NXGQBQWE.js +837 -0
  105. package/Build/Workers/chunk-O3DKEX7Q.js +352 -0
  106. package/Build/Workers/chunk-O3XFXGPZ.js +476 -0
  107. package/Build/Workers/chunk-OA6MYL2C.js +837 -0
  108. package/Build/Workers/chunk-OHP4ELS7.js +198 -0
  109. package/Build/Workers/chunk-OZGPS7FB.js +138 -0
  110. package/Build/Workers/chunk-PCL3Y7H5.js +82 -0
  111. package/Build/Workers/chunk-PD4GK4EM.js +57 -0
  112. package/Build/Workers/chunk-PEDU33QG.js +2342 -0
  113. package/Build/Workers/chunk-PRWUMCXF.js +682 -0
  114. package/Build/Workers/chunk-PVTSNNVI.js +288 -0
  115. package/Build/Workers/chunk-QFSSCLLZ.js +973 -0
  116. package/Build/Workers/chunk-QHPZH22L.js +241 -0
  117. package/Build/Workers/chunk-QIZDWZK6.js +301 -0
  118. package/Build/Workers/chunk-QV6DG2YX.js +1483 -0
  119. package/Build/Workers/chunk-R4K7EHOU.js +171 -0
  120. package/Build/Workers/chunk-R7JGHDD6.js +789 -0
  121. package/Build/Workers/chunk-RASQEYD4.js +1483 -0
  122. package/Build/Workers/chunk-RW6ITX7Q.js +3820 -0
  123. package/Build/Workers/chunk-RYSQVJR6.js +398 -0
  124. package/Build/Workers/chunk-S6RJU5NM.js +1054 -0
  125. package/Build/Workers/chunk-SA2A2AN5.js +2342 -0
  126. package/Build/Workers/chunk-SDFHDNS4.js +147 -0
  127. package/Build/Workers/chunk-SJYSIOEM.js +414 -0
  128. package/Build/Workers/chunk-SMTGMFBL.js +97 -0
  129. package/Build/Workers/chunk-SXSP3JHS.js +38 -0
  130. package/Build/Workers/chunk-TN35HP5B.js +1067 -0
  131. package/Build/Workers/chunk-TNWKJNUZ.js +454 -0
  132. package/Build/Workers/chunk-TOAF47AQ.js +102 -0
  133. package/Build/Workers/chunk-TQ4QCOXT.js +2719 -0
  134. package/Build/Workers/chunk-TSDSILQB.js +124 -0
  135. package/Build/Workers/chunk-U5LV3F3Z.js +1054 -0
  136. package/Build/Workers/chunk-UAZUP4I5.js +1992 -0
  137. package/Build/Workers/chunk-UF46SZEZ.js +789 -0
  138. package/Build/Workers/chunk-UNRTMCET.js +398 -0
  139. package/Build/Workers/chunk-UTB7U3O6.js +1992 -0
  140. package/Build/Workers/chunk-V46YGZE6.js +352 -0
  141. package/Build/Workers/chunk-VDGOCROW.js +57 -0
  142. package/Build/Workers/chunk-VFWSSBPT.js +511 -0
  143. package/Build/Workers/chunk-VVYMXI3I.js +1284 -0
  144. package/Build/Workers/chunk-VXWHPYQM.js +837 -0
  145. package/Build/Workers/chunk-VXYUBRSB.js +219 -0
  146. package/Build/Workers/chunk-VZLDLEWI.js +387 -0
  147. package/Build/Workers/chunk-W5OCKMPJ.js +101 -0
  148. package/Build/Workers/chunk-WN3F4CVG.js +3201 -0
  149. package/Build/Workers/chunk-WPRUWXGV.js +693 -0
  150. package/Build/Workers/chunk-WTO2ERBP.js +414 -0
  151. package/Build/Workers/chunk-WVHMDVG4.js +959 -0
  152. package/Build/Workers/chunk-XCBZVTIV.js +280 -0
  153. package/Build/Workers/chunk-XGA23TAX.js +73 -0
  154. package/Build/Workers/chunk-XLQZNQ4Z.js +163 -0
  155. package/Build/Workers/chunk-XQH66YJC.js +147 -0
  156. package/Build/Workers/chunk-XTA7BXJG.js +682 -0
  157. package/Build/Workers/chunk-XTIDAFRS.js +476 -0
  158. package/Build/Workers/chunk-XUEDWBUD.js +682 -0
  159. package/Build/Workers/chunk-XYFLRH3H.js +124 -0
  160. package/Build/Workers/chunk-Y7JRTRTO.js +305 -0
  161. package/Build/Workers/chunk-Y7QSMDCJ.js +352 -0
  162. package/Build/Workers/chunk-YCB5TYTR.js +1483 -0
  163. package/Build/Workers/chunk-YEYOSTJX.js +219 -0
  164. package/Build/Workers/chunk-YGFVAGYF.js +630 -0
  165. package/Build/Workers/chunk-YIIACKQO.js +368 -0
  166. package/Build/Workers/chunk-YJGSP6PE.js +511 -0
  167. package/Build/Workers/chunk-Z4LR5EHE.js +454 -0
  168. package/Build/Workers/chunk-Z66EVE2A.js +44 -0
  169. package/Build/Workers/chunk-ZHIHHHTB.js +414 -0
  170. package/Build/Workers/chunk-ZNWHFSLE.js +171 -0
  171. package/Build/Workers/chunk-ZQLZG4IN.js +2342 -0
  172. package/Build/Workers/chunk-ZRTSMUZ2.js +414 -0
  173. package/Build/Workers/chunk-ZZUVT5BM.js +476 -0
  174. package/Build/Workers/combineGeometry.js +16 -16
  175. package/Build/Workers/createBoxGeometry.js +10 -10
  176. package/Build/Workers/createBoxOutlineGeometry.js +8 -8
  177. package/Build/Workers/createCircleGeometry.js +18 -18
  178. package/Build/Workers/createCircleOutlineGeometry.js +11 -11
  179. package/Build/Workers/createCoplanarPolygonGeometry.js +27 -27
  180. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +23 -23
  181. package/Build/Workers/createCorridorGeometry.js +23 -25
  182. package/Build/Workers/createCorridorOutlineGeometry.js +21 -23
  183. package/Build/Workers/createCylinderGeometry.js +12 -12
  184. package/Build/Workers/createCylinderOutlineGeometry.js +10 -10
  185. package/Build/Workers/createEllipseGeometry.js +18 -18
  186. package/Build/Workers/createEllipseOutlineGeometry.js +11 -11
  187. package/Build/Workers/createEllipsoidGeometry.js +11 -11
  188. package/Build/Workers/createEllipsoidOutlineGeometry.js +10 -10
  189. package/Build/Workers/createFrustumGeometry.js +11 -11
  190. package/Build/Workers/createFrustumOutlineGeometry.js +11 -11
  191. package/Build/Workers/createGeometry.js +16 -16
  192. package/Build/Workers/createGroundPolylineGeometry.js +16 -16
  193. package/Build/Workers/createPlaneGeometry.js +9 -9
  194. package/Build/Workers/createPlaneOutlineGeometry.js +8 -8
  195. package/Build/Workers/createPolygonGeometry.js +25 -25
  196. package/Build/Workers/createPolygonOutlineGeometry.js +22 -22
  197. package/Build/Workers/createPolylineGeometry.js +18 -18
  198. package/Build/Workers/createPolylineVolumeGeometry.js +24 -24
  199. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +20 -20
  200. package/Build/Workers/createRectangleGeometry.js +19 -19
  201. package/Build/Workers/createRectangleOutlineGeometry.js +13 -13
  202. package/Build/Workers/createSimplePolylineGeometry.js +16 -16
  203. package/Build/Workers/createSphereGeometry.js +11 -11
  204. package/Build/Workers/createSphereOutlineGeometry.js +10 -10
  205. package/Build/Workers/createVectorTileClampedPolylines.js +7 -7
  206. package/Build/Workers/createVectorTileGeometries.js +15 -15
  207. package/Build/Workers/createVectorTilePoints.js +6 -6
  208. package/Build/Workers/createVectorTilePolygons.js +14 -14
  209. package/Build/Workers/createVectorTilePolylines.js +7 -7
  210. package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +17 -17
  211. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +14 -14
  212. package/Build/Workers/createVerticesFromHeightmap.js +14 -14
  213. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +12 -12
  214. package/Build/Workers/createWallGeometry.js +17 -17
  215. package/Build/Workers/createWallOutlineGeometry.js +17 -17
  216. package/Build/Workers/decodeDraco.js +2 -2
  217. package/Build/Workers/decodeI3S.js +5 -5
  218. package/Build/Workers/incrementallyBuildTerrainPicker.js +4 -4
  219. package/Build/Workers/upsampleQuantizedTerrainMesh.js +14 -14
  220. package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +17 -17
  221. package/Source/Core/ArcGISTiledElevationTerrainProvider.js +1 -5
  222. package/Source/Core/BoundingSphere.js +0 -3
  223. package/Source/Core/Cesium3DTilesTerrainGeometryProcessor.js +3 -4
  224. package/Source/Core/CoplanarPolygonGeometry.js +2 -2
  225. package/Source/Core/CorridorGeometry.js +2 -4
  226. package/Source/Core/CorridorOutlineGeometry.js +1 -3
  227. package/Source/Core/EarthOrientationParameters.js +2 -2
  228. package/Source/Core/EllipseGeometryLibrary.js +2 -2
  229. package/Source/Core/EllipsoidGeodesic.js +3 -3
  230. package/Source/Core/EllipsoidRhumbLine.js +1 -1
  231. package/Source/Core/GroundPolylineGeometry.js +2 -2
  232. package/Source/Core/Heap.js +1 -1
  233. package/Source/Core/HermitePolynomialApproximation.js +215 -179
  234. package/Source/Core/InterpolationAlgorithm.js +1 -0
  235. package/Source/Core/Ion.js +1 -1
  236. package/Source/Core/JulianDate.js +1 -1
  237. package/Source/Core/LagrangePolynomialApproximation.js +55 -52
  238. package/Source/Core/LinearApproximation.js +69 -66
  239. package/Source/Core/Math.js +59 -0
  240. package/Source/Core/Matrix2.js +2 -2
  241. package/Source/Core/Matrix3.js +2 -2
  242. package/Source/Core/OrthographicFrustum.js +1 -1
  243. package/Source/Core/PerspectiveFrustum.js +1 -1
  244. package/Source/Core/PolygonGeometry.js +2 -2
  245. package/Source/Core/PolygonGeometryLibrary.js +1 -1
  246. package/Source/Core/PolygonOutlineGeometry.js +1 -1
  247. package/Source/Core/PolylineGeometry.js +1 -1
  248. package/Source/Core/PolylineVolumeGeometryLibrary.js +1 -1
  249. package/Source/Core/Rectangle.js +7 -1
  250. package/Source/Core/RectangleOutlineGeometry.js +1 -1
  251. package/Source/Core/SimplePolylineGeometry.js +1 -1
  252. package/Source/Core/TerrainEncoding.js +2 -2
  253. package/Source/Core/TerrainPicker.js +179 -168
  254. package/Source/Core/TimeIntervalCollection.js +1 -3
  255. package/Source/Core/Tipsify.js +1 -1
  256. package/Source/Core/Transforms.js +5 -1
  257. package/Source/Core/VectorPipeline.js +1117 -0
  258. package/Source/Core/VectorProvider.js +429 -0
  259. package/Source/Core/WallOutlineGeometry.js +1 -1
  260. package/Source/Core/getTimestamp.js +4 -2
  261. package/Source/DataSources/CompositeEntityCollection.js +0 -1
  262. package/Source/DataSources/CzmlDataSource.js +2 -0
  263. package/Source/DataSources/DataSourceDisplay.js +1 -1
  264. package/Source/DataSources/GeoJsonDataSource.js +0 -1
  265. package/Source/DataSources/GeometryVisualizer.js +1 -1
  266. package/Source/DataSources/KmlDataSource.js +1 -2
  267. package/Source/DataSources/PolylineVisualizer.js +1 -1
  268. package/Source/DataSources/StaticOutlineGeometryBatch.js +1 -1
  269. package/Source/Renderer/AutomaticUniforms.js +23 -0
  270. package/Source/Renderer/Context.js +9 -3
  271. package/Source/Renderer/DrawCommand.js +22 -0
  272. package/Source/Renderer/Framebuffer.js +4 -0
  273. package/Source/Renderer/Pass.js +11 -10
  274. package/Source/Renderer/Texture.js +11 -0
  275. package/Source/Renderer/UniformState.js +7 -0
  276. package/Source/Renderer/VertexArray.js +0 -1
  277. package/Source/Scene/ArcGisMapServerImageryProvider.js +0 -5
  278. package/Source/Scene/ArcGisMapService.js +1 -1
  279. package/Source/Scene/Billboard.js +2 -1
  280. package/Source/Scene/BillboardCollection.js +7 -3
  281. package/Source/Scene/BufferPrimitiveCollection.js +27 -5
  282. package/Source/Scene/Camera.js +71 -5
  283. package/Source/Scene/Cesium3DTileset.js +1 -1
  284. package/Source/Scene/ClippingPlaneCollection.js +2 -2
  285. package/Source/Scene/Controllers/Controller.js +63 -0
  286. package/Source/Scene/Controllers/ControllerHost.js +78 -0
  287. package/Source/Scene/Controllers/HybridScreenSpacePanCameraController.js +106 -0
  288. package/Source/Scene/Controllers/MouseButton.js +32 -0
  289. package/Source/Scene/Controllers/ScreenSpaceElevatorCameraController.js +295 -0
  290. package/Source/Scene/Controllers/ScreenSpaceInputBindings.js +154 -0
  291. package/Source/Scene/Controllers/ScreenSpaceMapCameraController.js +310 -0
  292. package/Source/Scene/Controllers/ScreenSpaceTiltOrbitCameraController.js +642 -0
  293. package/Source/Scene/Controllers/ScreenSpaceZoomCameraController.js +431 -0
  294. package/Source/Scene/Controllers/defaultPickWorldPosition.js +84 -0
  295. package/Source/Scene/DerivedCommand.js +94 -0
  296. package/Source/Scene/EdgeFramebuffer.js +1 -5
  297. package/Source/Scene/FrameState.js +17 -0
  298. package/Source/Scene/Globe.js +20 -0
  299. package/Source/Scene/GlobeDepth.js +27 -1
  300. package/Source/Scene/GlobeSurfaceShaderSet.js +12 -2
  301. package/Source/Scene/GlobeSurfaceTile.js +48 -10
  302. package/Source/Scene/GlobeSurfaceTileProvider.js +121 -3
  303. package/Source/Scene/GltfLoader.js +32 -3
  304. package/Source/Scene/GltfSpzLoader.js +1 -1
  305. package/Source/Scene/GltfVertexBufferLoader.js +6 -3
  306. package/Source/Scene/I3SDataProvider.js +1 -1
  307. package/Source/Scene/I3SLayer.js +1 -1
  308. package/Source/Scene/I3SNode.js +2 -2
  309. package/Source/Scene/ImageryLayerCollection.js +188 -4
  310. package/Source/Scene/IonImageryProvider.js +1 -5
  311. package/Source/Scene/Label.js +4 -4
  312. package/Source/Scene/LabelCollection.js +1 -1
  313. package/Source/Scene/MVTDataProvider.js +2 -0
  314. package/Source/Scene/Model/B3dmLoader.js +1 -2
  315. package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +10 -8
  316. package/Source/Scene/Model/I3dmLoader.js +1 -1
  317. package/Source/Scene/Model/InstancingPipelineStage.js +4 -7
  318. package/Source/Scene/Model/MaterialPipelineStage.js +124 -1
  319. package/Source/Scene/Model/Model.js +8 -10
  320. package/Source/Scene/Model/ModelClippingPlanesPipelineStage.js +28 -1
  321. package/Source/Scene/Model/ModelDrawCommand.js +160 -16
  322. package/Source/Scene/Model/ModelDrawCommands.js +4 -0
  323. package/Source/Scene/Model/ModelSceneGraph.js +21 -0
  324. package/Source/Scene/Model/PickingPipelineStage.js +29 -0
  325. package/Source/Scene/Model/PrimitiveRenderResources.js +24 -0
  326. package/Source/Scene/ModelComponents.js +71 -0
  327. package/Source/Scene/Picking.js +16 -5
  328. package/Source/Scene/PlanarFillIdFramebuffer.js +172 -0
  329. package/Source/Scene/PntsParser.js +0 -1
  330. package/Source/Scene/PolylineCollection.js +1 -1
  331. package/Source/Scene/PostProcessStage.js +4 -2
  332. package/Source/Scene/ResourceCache.js +7 -4
  333. package/Source/Scene/ResourceCacheKey.js +16 -13
  334. package/Source/Scene/Scene.js +202 -5
  335. package/Source/Scene/ScreenSpaceCameraController.js +1 -2
  336. package/Source/Scene/ShadowMap.js +9 -3
  337. package/Source/Scene/ShadowMapShader.js +50 -2
  338. package/Source/Scene/SnapFramebuffer.js +121 -0
  339. package/Source/Scene/Snapping.js +184 -0
  340. package/Source/Scene/TerrainFillMesh.js +3 -2
  341. package/Source/Scene/UrlTemplate3DTilesDataProvider.js +1 -1
  342. package/Source/Scene/Vector3DTileContent.js +2 -3
  343. package/Source/Scene/VectorGltf3DTileContent.js +23 -3
  344. package/Source/Scene/View.js +10 -8
  345. package/Source/Scene/VoxelTraversal.js +1 -1
  346. package/Source/Scene/createElevationBandMaterial.js +1 -1
  347. package/Source/Scene/renderBufferPointCollection.js +1 -2
  348. package/Source/Scene/renderBufferPolygonCollection.js +1 -2
  349. package/Source/Scene/renderBufferPolylineCollection.js +1 -2
  350. package/Source/Shaders/Builtin/Constants/passCesium3DTile.glsl +1 -1
  351. package/Source/Shaders/Builtin/Constants/passCesium3DTile.js +1 -1
  352. package/Source/Shaders/Builtin/Constants/passCesium3DTileClassification.glsl +1 -1
  353. package/Source/Shaders/Builtin/Constants/passCesium3DTileClassification.js +1 -1
  354. package/Source/Shaders/Builtin/Constants/passCesium3DTileClassificationIgnoreShow.glsl +1 -1
  355. package/Source/Shaders/Builtin/Constants/passCesium3DTileClassificationIgnoreShow.js +1 -1
  356. package/Source/Shaders/Builtin/Constants/passCesium3DTilePlanarFillId.glsl +9 -0
  357. package/Source/Shaders/Builtin/Constants/passCesium3DTilePlanarFillId.js +11 -0
  358. package/Source/Shaders/Builtin/Constants/passClassification.glsl +1 -1
  359. package/Source/Shaders/Builtin/Constants/passClassification.js +1 -1
  360. package/Source/Shaders/Builtin/Constants/passGaussianSplats.glsl +1 -1
  361. package/Source/Shaders/Builtin/Constants/passGaussianSplats.js +1 -1
  362. package/Source/Shaders/Builtin/Constants/passOpaque.glsl +1 -1
  363. package/Source/Shaders/Builtin/Constants/passOpaque.js +1 -1
  364. package/Source/Shaders/Builtin/Constants/passTranslucent.glsl +1 -1
  365. package/Source/Shaders/Builtin/Constants/passTranslucent.js +1 -1
  366. package/Source/Shaders/Builtin/Constants/passVoxels.glsl +1 -1
  367. package/Source/Shaders/Builtin/Constants/passVoxels.js +1 -1
  368. package/Source/Shaders/Builtin/CzmBuiltins.js +2 -0
  369. package/Source/Shaders/GlobeFS.glsl +10 -5
  370. package/Source/Shaders/GlobeFS.js +9 -5
  371. package/Source/Shaders/Materials/PolylineGlowMaterial.glsl +1 -1
  372. package/Source/Shaders/Materials/PolylineGlowMaterial.js +1 -1
  373. package/Source/Shaders/Model/MaterialStageFS.glsl +8 -2
  374. package/Source/Shaders/Model/MaterialStageFS.js +8 -2
  375. package/Source/Shaders/Model/ModelFS.glsl +105 -0
  376. package/Source/Shaders/Model/ModelFS.js +105 -0
  377. package/Source/Shaders/VectorCommon.glsl +178 -0
  378. package/Source/Shaders/VectorCommon.js +75 -0
  379. package/Source/ThirdParty/Workers/zip-web-worker.js +1 -1
  380. package/Source/ThirdParty/zip-module.wasm +0 -0
  381. package/Source/Widget/CesiumWidget.js +30 -0
  382. package/index.d.ts +770 -10
  383. package/index.js +177 -160
  384. package/package.json +1 -1
@@ -1,3 +1,5 @@
1
+ // @ts-check
2
+
1
3
  import AxisAlignedBoundingBox from "./AxisAlignedBoundingBox.js";
2
4
  import Cartesian3 from "./Cartesian3.js";
3
5
  import defined from "./defined.js";
@@ -12,147 +14,198 @@ import Check from "./Check.js";
12
14
  import DeveloperError from "./DeveloperError.js";
13
15
  import CesiumMath from "./Math.js";
14
16
 
15
- // Terrain picker can be 4 levels deep (0-3)
17
+ /** @import TerrainEncoding from "./TerrainEncoding.js"; */
18
+ /** @import MapProjection from "./MapProjection.js"; */
19
+
20
+ /**
21
+ * Terrain picker can be 4 levels deep (0-3)
22
+ * @ignore
23
+ */
16
24
  const MAXIMUM_TERRAIN_PICKER_LEVEL = 3;
17
25
 
18
26
  /**
19
27
  * Creates an object that handles arbitrary ray intersections with a terrain mesh using a spatial acceleration structure.
20
28
  *
21
- * @alias TerrainPicker
22
- * @constructor
23
- *
24
- * @param {Float64Array} vertices The terrain mesh's vertex buffer.
25
- * @param {Uint8Array|Uint16Array|Uint32Array} indices The terrain mesh's index buffer.
26
- * @param {TerrainEncoding} encoding The terrain mesh's vertex encoding.
27
- *
28
29
  * @private
29
30
  */
30
- function TerrainPicker(vertices, indices, encoding) {
31
- //>>includeStart('debug', pragmas.debug);
32
- Check.defined("vertices", vertices);
33
- Check.defined("indices", indices);
34
- Check.defined("encoding", encoding);
35
- //>>includeEnd('debug');
36
-
31
+ class TerrainPicker {
37
32
  /**
38
- * The terrain mesh's vertex buffer.
39
- * @type {Float64Array}
33
+ * @param {Float64Array} vertices The terrain mesh's vertex buffer.
34
+ * @param {Uint8Array|Uint16Array|Uint32Array} indices The terrain mesh's index buffer.
35
+ * @param {TerrainEncoding} encoding The terrain mesh's vertex encoding.
40
36
  */
41
- this._vertices = vertices;
42
- /**
43
- * The terrain mesh's index buffer.
44
- * @type {Uint32Array}
45
- */
46
- this._indices = indices;
47
- /**
48
- * The terrain mesh's vertex encoding.
49
- * @type {TerrainEncoding}
50
- */
51
- this._encoding = encoding;
52
- /**
53
- * The inverse of the terrain mesh tile's transform from world space to local space.
54
- * @type {Matrix4}
55
- */
56
- this._inverseTransform = new Matrix4(); // Compute as-needed on rebuild
37
+ constructor(vertices, indices, encoding) {
38
+ //>>includeStart('debug', pragmas.debug);
39
+ Check.defined("vertices", vertices);
40
+ Check.defined("indices", indices);
41
+ Check.defined("encoding", encoding);
42
+ //>>includeEnd('debug');
43
+
44
+ /**
45
+ * The terrain mesh's vertex buffer.
46
+ * @type {Float64Array}
47
+ */
48
+ this._vertices = vertices;
49
+ /**
50
+ * The terrain mesh's index buffer.
51
+ * @type {Uint8Array|Uint16Array|Uint32Array}
52
+ */
53
+ this._indices = indices;
54
+ /**
55
+ * The terrain mesh's vertex encoding.
56
+ * @type {TerrainEncoding}
57
+ */
58
+ this._encoding = encoding;
59
+ /**
60
+ * The inverse of the terrain mesh tile's transform from world space to local space.
61
+ * @type {Matrix4}
62
+ */
63
+ this._inverseTransform = new Matrix4(); // Compute as-needed on rebuild
64
+ /**
65
+ * Whether or not to reset this terrain mesh's picker on the next ray intersection.
66
+ * @type {Boolean}
67
+ */
68
+ this._needsRebuild = true;
69
+ /**
70
+ * The root node of the terrain picker's quadtree.
71
+ * @type {TerrainPickerNode}
72
+ */
73
+ this._rootNode = new TerrainPickerNode();
74
+ }
75
+
57
76
  /**
58
- * Whether or not to reset this terrain mesh's picker on the next ray intersection.
59
- * @type {Boolean}
77
+ * Indicates whether the terrain picker needs to be rebuilt due to changes in the underlying terrain mesh's vertices or indices.
78
+ * @type {boolean}
60
79
  */
61
- this._needsRebuild = true;
80
+ get needsRebuild() {
81
+ return this._needsRebuild;
82
+ }
83
+
84
+ set needsRebuild(value) {
85
+ this._needsRebuild = value;
86
+ }
87
+
62
88
  /**
63
- * The root node of the terrain picker's quadtree.
64
- * @type {TerrainPickerNode}
89
+ * Determines the point on the mesh where the given ray intersects.
90
+ * @param {Ray} ray The ray to test.
91
+ * @param {Matrix4} tileTransform The terrain mesh tile's transform from local space to world space.
92
+ * @param {Boolean} cullBackFaces Whether to consider back-facing triangles as intersections.
93
+ * @param {SceneMode} mode The scene mode (2D/3D/Columbus View).
94
+ * @param {MapProjection} projection The map projection.
95
+ * @returns {Cartesian3 | undefined} result The intersection point, or undefined if there is no intersection.
96
+ * @private
65
97
  */
66
- this._rootNode = new TerrainPickerNode();
98
+ rayIntersect(ray, tileTransform, cullBackFaces, mode, projection) {
99
+ // Lazily (re)create the terrain picker
100
+ if (this._needsRebuild) {
101
+ reset(this, tileTransform);
102
+ }
103
+
104
+ const invTransform = this._inverseTransform;
105
+
106
+ const transformedRay = scratchTransformedRay;
107
+
108
+ transformedRay.origin = Matrix4.multiplyByPoint(
109
+ invTransform,
110
+ ray.origin,
111
+ transformedRay.origin,
112
+ );
113
+ transformedRay.direction = Matrix4.multiplyByPointAsVector(
114
+ invTransform,
115
+ ray.direction,
116
+ transformedRay.direction,
117
+ );
118
+
119
+ /** @type {IntersectingNode[]} */
120
+ const intersections = [];
121
+ getNodesIntersectingRay(this._rootNode, transformedRay, intersections);
122
+
123
+ return findClosestPointInClosestNode(
124
+ this,
125
+ intersections,
126
+ ray,
127
+ cullBackFaces,
128
+ mode,
129
+ projection,
130
+ );
131
+ }
67
132
  }
68
133
 
69
134
  const incrementallyBuildTerrainPickerTaskProcessor = new TaskProcessor(
70
135
  "incrementallyBuildTerrainPicker",
71
136
  );
72
137
 
73
- Object.defineProperties(TerrainPicker.prototype, {
74
- /**
75
- * Indicates whether the terrain picker needs to be rebuilt due to changes in the underlying terrain mesh's vertices or indices.
76
- * @memberof TerrainPicker.prototype
77
- * @type {boolean}
78
- */
79
- needsRebuild: {
80
- get: function () {
81
- return this._needsRebuild;
82
- },
83
- set: function (value) {
84
- this._needsRebuild = value;
85
- },
86
- },
87
- });
88
-
89
138
  /**
90
139
  * A node in the terrain picker quadtree.
91
- * @constructor
92
140
  * @private
93
141
  */
94
- function TerrainPickerNode() {
95
- /**
96
- * The tree-space x-coordinate of this node.
97
- * @type {Number}
98
- */
99
- this.x = 0;
100
- /**
101
- * The tree-space y-coordinate of this node.
102
- * @type {Number}
103
- */
104
- this.y = 0;
105
- /**
106
- * The level of this node in the quadtree.
107
- * @type {Number}
108
- */
109
- this.level = 0;
110
- /**
111
- * The axis-aligned bounding box of this node (in the tree's local space).
112
- * @type {AxisAlignedBoundingBox}
113
- */
114
- this.aabb = createAABBForNode(this.x, this.y, this.level);
115
- /**
116
- * The indices of the triangles that intersect this node.
117
- * @type {Uint32Array}
118
- */
119
- this.intersectingTriangles = new Uint32Array(0);
120
- /**
121
- * The child terrain picker nodes of this node.
122
- * @type {TerrainPickerNode[]}
123
- */
124
- this.children = [];
142
+ class TerrainPickerNode {
143
+ constructor() {
144
+ /**
145
+ * The tree-space x-coordinate of this node.
146
+ * @type {number}
147
+ */
148
+ this.x = 0;
149
+ /**
150
+ * The tree-space y-coordinate of this node.
151
+ * @type {number}
152
+ */
153
+ this.y = 0;
154
+ /**
155
+ * The level of this node in the quadtree.
156
+ * @type {number}
157
+ */
158
+ this.level = 0;
159
+ /**
160
+ * The axis-aligned bounding box of this node (in the tree's local space).
161
+ * @type {AxisAlignedBoundingBox}
162
+ */
163
+ this.aabb = createAABBForNode(this.x, this.y, this.level);
164
+ /**
165
+ * The indices of the triangles that intersect this node.
166
+ * @type {Uint32Array}
167
+ */
168
+ this.intersectingTriangles = new Uint32Array(0);
169
+ /**
170
+ * The child terrain picker nodes of this node.
171
+ * @type {TerrainPickerNode[]}
172
+ */
173
+ this.children = [];
174
+ /**
175
+ * Whether or not this node is currently building its children on a worker.
176
+ * @type {Boolean}
177
+ */
178
+ this.buildingChildren = false;
179
+ }
180
+
125
181
  /**
126
- * Whether or not this node is currently building its children on a worker.
127
- * @type {Boolean}
182
+ * Adds a child node to this node.
183
+ *
184
+ * @param {number} childIdx The index of the child to add (0-3).
128
185
  */
129
- this.buildingChildren = false;
130
- }
131
-
132
- /**
133
- * Adds a child node to this node.
134
- *
135
- * @param {number} childIdx The index of the child to add (0-3).
136
- * @memberof TerrainPickerNode
137
- */
138
- TerrainPickerNode.prototype.addChild = function (childIdx) {
139
- //>>includeStart('debug', pragmas.debug);
140
- if (childIdx < 0 || childIdx > 3) {
141
- throw new DeveloperError(
142
- "TerrainPickerNode child index must be between 0 and 3, inclusive.",
186
+ addChild(childIdx) {
187
+ //>>includeStart('debug', pragmas.debug);
188
+ if (childIdx < 0 || childIdx > 3) {
189
+ throw new DeveloperError(
190
+ "TerrainPickerNode child index must be between 0 and 3, inclusive.",
191
+ );
192
+ }
193
+ //>>includeEnd('debug');
194
+
195
+ const childNode = new TerrainPickerNode();
196
+ // Use bitwise operations to get child x,y from child index and parent x,y
197
+ childNode.x = this.x * 2 + (childIdx & 1);
198
+ childNode.y = this.y * 2 + ((childIdx >> 1) & 1);
199
+ childNode.level = this.level + 1;
200
+ childNode.aabb = createAABBForNode(
201
+ childNode.x,
202
+ childNode.y,
203
+ childNode.level,
143
204
  );
144
- }
145
- //>>includeEnd('debug');
146
-
147
- const childNode = new TerrainPickerNode();
148
- // Use bitwise operations to get child x,y from child index and parent x,y
149
- childNode.x = this.x * 2 + (childIdx & 1);
150
- childNode.y = this.y * 2 + ((childIdx >> 1) & 1);
151
- childNode.level = this.level + 1;
152
- childNode.aabb = createAABBForNode(childNode.x, childNode.y, childNode.level);
153
205
 
154
- this.children[childIdx] = childNode;
155
- };
206
+ this.children[childIdx] = childNode;
207
+ }
208
+ }
156
209
 
157
210
  const scratchTransformedRay = new Ray();
158
211
  const scratchTrianglePoints = [
@@ -161,60 +214,10 @@ const scratchTrianglePoints = [
161
214
  new Cartesian3(),
162
215
  ];
163
216
 
164
- /**
165
- * Determines the point on the mesh where the given ray intersects.
166
- * @param {Ray} ray The ray to test.
167
- * @param {Matrix4} tileTransform The terrain mesh tile's transform from local space to world space.
168
- * @param {Boolean} cullBackFaces Whether to consider back-facing triangles as intersections.
169
- * @param {SceneMode} mode The scene mode (2D/3D/Columbus View).
170
- * @param {MapProjection} projection The map projection.
171
- * @returns {Cartesian3 | undefined} result The intersection point, or undefined if there is no intersection.
172
- * @memberof TerrainPicker
173
- * @private
174
- */
175
- TerrainPicker.prototype.rayIntersect = function (
176
- ray,
177
- tileTransform,
178
- cullBackFaces,
179
- mode,
180
- projection,
181
- ) {
182
- // Lazily (re)create the terrain picker
183
- if (this._needsRebuild) {
184
- reset(this, tileTransform);
185
- }
186
-
187
- const invTransform = this._inverseTransform;
188
-
189
- const transformedRay = scratchTransformedRay;
190
-
191
- transformedRay.origin = Matrix4.multiplyByPoint(
192
- invTransform,
193
- ray.origin,
194
- transformedRay.origin,
195
- );
196
- transformedRay.direction = Matrix4.multiplyByPointAsVector(
197
- invTransform,
198
- ray.direction,
199
- transformedRay.direction,
200
- );
201
-
202
- const intersections = [];
203
- getNodesIntersectingRay(this._rootNode, transformedRay, intersections);
204
-
205
- return findClosestPointInClosestNode(
206
- this,
207
- intersections,
208
- ray,
209
- cullBackFaces,
210
- mode,
211
- projection,
212
- );
213
- };
214
-
215
217
  /**
216
218
  * Resets the terrain picker's quadtree structure to just the root node. Done whenever the underlying terrain mesh changes.
217
- * @param terrainPicker The terrain picker to reset.
219
+ * @param {TerrainPicker} terrainPicker The terrain picker to reset.
220
+ * @param {Matrix4} tileTransform
218
221
  * @private
219
222
  */
220
223
  function reset(terrainPicker, tileTransform) {
@@ -287,16 +290,19 @@ function packTriangleBuffers(
287
290
  ) {
288
291
  Cartesian3.pack(
289
292
  trianglePositions[0],
293
+ // @ts-expect-error https://github.com/CesiumGS/cesium/pull/13302
290
294
  trianglePositionsBuffer,
291
295
  9 * bufferIndex,
292
296
  );
293
297
  Cartesian3.pack(
294
298
  trianglePositions[1],
299
+ // @ts-expect-error https://github.com/CesiumGS/cesium/pull/13302
295
300
  trianglePositionsBuffer,
296
301
  9 * bufferIndex + 3,
297
302
  );
298
303
  Cartesian3.pack(
299
304
  trianglePositions[2],
305
+ // @ts-expect-error https://github.com/CesiumGS/cesium/pull/13302
300
306
  trianglePositionsBuffer,
301
307
  9 * bufferIndex + 6,
302
308
  );
@@ -558,7 +564,7 @@ function getVertexPosition(
558
564
  * Adds triangles to the child nodes of the given node by launching a worker process to do AABB-triangle testing.
559
565
  *
560
566
  * @param {Matrix4} inverseTransform
561
- * @param {TerrainNode} node
567
+ * @param {TerrainPickerNode} node
562
568
  * @param {Uint32Array} triangleIndices
563
569
  * @param {Float64Array} trianglePositions
564
570
  * @returns {Promise<void>} A promise that resolves when the triangles have been added to the child nodes.
@@ -574,11 +580,14 @@ async function addTrianglesToChildrenNodes(
574
580
 
575
581
  // Prepare data to be sent to a worker
576
582
  const inverseTransformPacked = new Float64Array(16);
583
+ // @ts-expect-error https://github.com/CesiumGS/cesium/pull/13302
577
584
  Matrix4.pack(inverseTransform, inverseTransformPacked, 0);
578
585
 
579
586
  const aabbArray = new Float64Array(6 * 4); // 6 elements per AABB, 4 children
580
587
  for (let i = 0; i < 4; i++) {
588
+ // @ts-expect-error https://github.com/CesiumGS/cesium/pull/13302
581
589
  Cartesian3.pack(node.children[i].aabb.minimum, aabbArray, i * 6);
590
+ // @ts-expect-error https://github.com/CesiumGS/cesium/pull/13302
582
591
  Cartesian3.pack(node.children[i].aabb.maximum, aabbArray, i * 6 + 3);
583
592
  }
584
593
 
@@ -610,7 +619,9 @@ async function addTrianglesToChildrenNodes(
610
619
 
611
620
  // After worker completes, it transfers back a buffer of intersecting triangles for each child node
612
621
  // Assign these to the child nodes
613
- const result = await incrementallyBuildTerrainPickerPromise;
622
+ const result = /** @type {{intersectingTrianglesArrays: ArrayBuffer[]}} */ (
623
+ await incrementallyBuildTerrainPickerPromise
624
+ );
614
625
  result.intersectingTrianglesArrays.forEach((buffer, index) => {
615
626
  // Guard against case where tree is reset while waiting for worker
616
627
  if (defined(node.children[index])) {
@@ -782,7 +782,7 @@ TimeIntervalCollection.fromJulianDateArray = function (options, result) {
782
782
  }
783
783
 
784
784
  for (let i = 0; i < length - 1; ++i) {
785
- let startDate = julianDates[i];
785
+ const startDate = julianDates[i];
786
786
  const endDate = julianDates[i + 1];
787
787
 
788
788
  interval = new TimeInterval({
@@ -795,8 +795,6 @@ TimeIntervalCollection.fromJulianDateArray = function (options, result) {
795
795
  ? dataCallback(interval, result.length)
796
796
  : result.length;
797
797
  result.addInterval(interval);
798
-
799
- startDate = endDate;
800
798
  }
801
799
 
802
800
  if (trailingInterval) {
@@ -255,7 +255,7 @@ Tipsify.tipsify = function (options) {
255
255
  cursor = 1;
256
256
 
257
257
  // Process
258
- let oneRing = [];
258
+ let oneRing;
259
259
  const deadEnd = []; //Stack
260
260
  let vertex;
261
261
  let intoVertices;
@@ -819,7 +819,11 @@ Transforms.computeMoonFixedToIcrfMatrix = function (date, result) {
819
819
  CesiumMath.toRadians(0.064) * Math.sin(e3) +
820
820
  CesiumMath.toRadians(0.016) * Math.sin(e4) +
821
821
  CesiumMath.toRadians(0.025) * Math.sin(e5);
822
- return Matrix3.fromHeadingPitchRoll(scratchHpr, scratchRotationMatrix);
822
+ return Matrix3.fromHeadingPitchRoll(
823
+ scratchHpr,
824
+ scratchRotationMatrix,
825
+ result,
826
+ );
823
827
  };
824
828
 
825
829
  /**