@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,8 +1,10 @@
1
1
  import AssociativeArray from "../Core/AssociativeArray.js";
2
2
  import Cartesian3 from "../Core/Cartesian3.js";
3
+ import CesiumMath from "../Core/Math.js";
3
4
  import defined from "../Core/defined.js";
4
5
  import destroyObject from "../Core/destroyObject.js";
5
6
  import DeveloperError from "../Core/DeveloperError.js";
7
+ import Entity from "./Entity.js";
6
8
  import JulianDate from "../Core/JulianDate.js";
7
9
  import Matrix3 from "../Core/Matrix3.js";
8
10
  import Matrix4 from "../Core/Matrix4.js";
@@ -20,6 +22,183 @@ import ReferenceProperty from "./ReferenceProperty.js";
20
22
  import SampledPositionProperty from "./SampledPositionProperty.js";
21
23
  import ScaledPositionProperty from "./ScaledPositionProperty.js";
22
24
  import TimeIntervalCollectionPositionProperty from "./TimeIntervalCollectionPositionProperty.js";
25
+ import Quaternion from "../Core/Quaternion.js";
26
+
27
+ const update3DMatrix3Scratch1 = new Matrix3();
28
+ const update3DMatrix3Scratch2 = new Matrix3();
29
+ const update3DMatrix3Scratch3 = new Matrix3();
30
+ const update3DCartesian3Scratch0 = new Cartesian3();
31
+ const update3DCartesian3Scratch1 = new Cartesian3();
32
+ const update3DCartesian3Scratch2 = new Cartesian3();
33
+ const update3DCartesian3Scratch3 = new Cartesian3();
34
+
35
+ const transformOrientationScratch = new Quaternion();
36
+ const transformVvlhScratch = new Matrix4();
37
+ const transformRotationScratch = new Matrix3();
38
+
39
+ /**
40
+ * Transforms a path entity's position into the local frame of the reference entity.
41
+ * If the reference entity has an orientation, uses that orientation to define the local frame.
42
+ * Otherwise, falls back to a VVLH (Vehicle Velocity Local Horizontal) frame derived from the reference entity's velocity.
43
+ *
44
+ * @param {JulianDate} time The time at which to evaluate the orientation or VVLH frame.
45
+ * @param {Cartesian3} pathEntityPos The position of the path entity in the FIXED reference frame.
46
+ * @param {Cartesian3} refEntityPos The position of the reference entity in the FIXED reference frame.
47
+ * @param {Entity} refEntity The reference entity whose frame to transform into.
48
+ * @param {Cartesian3} result The object onto which to store the result.
49
+ * @returns {Cartesian3 | undefined} The transformed position in the reference entity's local frame, or undefined if either input position is undefined.
50
+ */
51
+ function transformToEntityFrame(
52
+ time,
53
+ pathEntityPos,
54
+ refEntityPos,
55
+ refEntity,
56
+ result,
57
+ ) {
58
+ if (!defined(pathEntityPos) || !defined(refEntityPos)) {
59
+ return undefined;
60
+ }
61
+
62
+ Cartesian3.subtract(pathEntityPos, refEntityPos, result);
63
+ if (defined(refEntity.orientation)) {
64
+ if (refEntity.orientation.getValue(time, transformOrientationScratch)) {
65
+ Quaternion.conjugate(
66
+ transformOrientationScratch,
67
+ transformOrientationScratch,
68
+ );
69
+ Matrix3.fromQuaternion(
70
+ transformOrientationScratch,
71
+ transformRotationScratch,
72
+ );
73
+ Matrix3.multiplyByVector(transformRotationScratch, result, result);
74
+ }
75
+ } else if (
76
+ defined(
77
+ computeVvlhTransform(time, refEntity.position, transformVvlhScratch),
78
+ )
79
+ ) {
80
+ Matrix4.inverse(transformVvlhScratch, transformVvlhScratch);
81
+ Matrix4.getRotation(transformVvlhScratch, transformRotationScratch);
82
+ Matrix3.multiplyByVector(transformRotationScratch, result, result);
83
+ } else {
84
+ // If neither ref entity's orientation nor VVLH are defined, return undefined
85
+ // This could happen if, for a given position of the entity we are drawing the path for,
86
+ // the ref entity doesn't have a position defined
87
+ return undefined;
88
+ }
89
+
90
+ return result;
91
+ }
92
+
93
+ /**
94
+ * Compute the vehicle velocity, local horizontal (VVLH) transform for a position property at a given time.
95
+ * The VVLH axes is defined based on the motion of the provided position point as follows:
96
+ * - The X axis is directed toward the point's velocity vector, in the direction of motion.
97
+ * - The Y axis is along the angular momentum vector.
98
+ * - The Z axis is along the position vector.
99
+ *
100
+ * @param {JulianDate} time The time at which to compute the VVLH transform.
101
+ * @param {PositionProperty} positionProperty The position to compute the VVLH frame for.
102
+ * @param {Matrix4} result The object onto which to store the result.
103
+ * @returns {Matrix4} The VVLH transform.
104
+ */
105
+ function computeVvlhTransform(time, positionProperty, result) {
106
+ const cartesian = positionProperty.getValue(time, update3DCartesian3Scratch0);
107
+ if (defined(cartesian)) {
108
+ // The time delta was determined based on how fast satellites move compared to vehicles near the surface.
109
+ // Slower moving vehicles will most likely default to east-north-up, while faster ones will be LVLH.
110
+ const deltaTime = JulianDate.addSeconds(time, 0.01, new JulianDate());
111
+ const deltaCartesian = positionProperty.getValue(
112
+ deltaTime,
113
+ update3DCartesian3Scratch1,
114
+ );
115
+ if (
116
+ defined(deltaCartesian) &&
117
+ !Cartesian3.equalsEpsilon(cartesian, deltaCartesian, CesiumMath.EPSILON16)
118
+ ) {
119
+ let toInertial = Transforms.computeFixedToIcrfMatrix(
120
+ time,
121
+ update3DMatrix3Scratch1,
122
+ );
123
+ let toInertialDelta = Transforms.computeFixedToIcrfMatrix(
124
+ deltaTime,
125
+ update3DMatrix3Scratch2,
126
+ );
127
+ let toFixed;
128
+
129
+ if (!defined(toInertial) || !defined(toInertialDelta)) {
130
+ toFixed = Transforms.computeTemeToPseudoFixedMatrix(
131
+ time,
132
+ update3DMatrix3Scratch3,
133
+ );
134
+ toInertial = Matrix3.transpose(toFixed, update3DMatrix3Scratch1);
135
+ toInertialDelta = Transforms.computeTemeToPseudoFixedMatrix(
136
+ deltaTime,
137
+ update3DMatrix3Scratch2,
138
+ );
139
+ Matrix3.transpose(toInertialDelta, toInertialDelta);
140
+ } else {
141
+ toFixed = Matrix3.transpose(toInertial, update3DMatrix3Scratch3);
142
+ }
143
+
144
+ // Z along the position
145
+ const zBasis = update3DCartesian3Scratch2;
146
+ Cartesian3.normalize(cartesian, zBasis);
147
+ Cartesian3.normalize(deltaCartesian, deltaCartesian);
148
+
149
+ Matrix3.multiplyByVector(toInertial, zBasis, zBasis);
150
+ Matrix3.multiplyByVector(toInertialDelta, deltaCartesian, deltaCartesian);
151
+
152
+ // Y is along the angular momentum vector (e.g. "orbit normal")
153
+ const yBasis = Cartesian3.cross(
154
+ zBasis,
155
+ deltaCartesian,
156
+ update3DCartesian3Scratch3,
157
+ );
158
+ if (
159
+ !Cartesian3.equalsEpsilon(yBasis, Cartesian3.ZERO, CesiumMath.EPSILON16)
160
+ ) {
161
+ // X is along the cross of y and z (right handed basis / in the direction of motion)
162
+ const xBasis = Cartesian3.cross(
163
+ yBasis,
164
+ zBasis,
165
+ update3DCartesian3Scratch1,
166
+ );
167
+
168
+ Matrix3.multiplyByVector(toFixed, xBasis, xBasis);
169
+ Matrix3.multiplyByVector(toFixed, yBasis, yBasis);
170
+ Matrix3.multiplyByVector(toFixed, zBasis, zBasis);
171
+
172
+ Cartesian3.normalize(xBasis, xBasis);
173
+ Cartesian3.normalize(yBasis, yBasis);
174
+ Cartesian3.normalize(zBasis, zBasis);
175
+
176
+ if (!defined(result)) {
177
+ result = new Matrix4();
178
+ }
179
+
180
+ result[0] = xBasis.x;
181
+ result[1] = xBasis.y;
182
+ result[2] = xBasis.z;
183
+ result[3] = 0.0;
184
+ result[4] = yBasis.x;
185
+ result[5] = yBasis.y;
186
+ result[6] = yBasis.z;
187
+ result[7] = 0.0;
188
+ result[8] = zBasis.x;
189
+ result[9] = zBasis.y;
190
+ result[10] = zBasis.z;
191
+ result[11] = 0.0;
192
+ result[12] = cartesian.x;
193
+ result[13] = cartesian.y;
194
+ result[14] = cartesian.z;
195
+ result[15] = 1.0;
196
+ return result;
197
+ }
198
+ }
199
+ }
200
+ return undefined;
201
+ }
23
202
 
24
203
  const defaultResolution = 60.0;
25
204
  const defaultWidth = 1.0;
@@ -35,6 +214,7 @@ function EntityData(entity) {
35
214
  this.updater = undefined;
36
215
  }
37
216
 
217
+ const sampleScratch = new Cartesian3();
38
218
  function subSampleSampledProperty(
39
219
  property,
40
220
  start,
@@ -46,12 +226,38 @@ function subSampleSampledProperty(
46
226
  startingIndex,
47
227
  result,
48
228
  ) {
229
+ let refEntity;
230
+ let refPosition;
231
+
232
+ let entityFrame = false;
233
+ if (referenceFrame instanceof Entity) {
234
+ refEntity = referenceFrame;
235
+ refPosition = refEntity.position;
236
+ referenceFrame = ReferenceFrame.FIXED;
237
+ entityFrame = true;
238
+ }
239
+
49
240
  let r = startingIndex;
50
241
  //Always step exactly on start (but only use it if it exists.)
51
242
  let tmp;
243
+ let tmp2;
52
244
  tmp = property.getValueInReferenceFrame(start, referenceFrame, result[r]);
53
- if (defined(tmp)) {
54
- result[r++] = tmp;
245
+ if (!entityFrame) {
246
+ if (defined(tmp)) {
247
+ result[r++] = tmp;
248
+ }
249
+ } else {
250
+ tmp2 = refPosition.getValueInReferenceFrame(
251
+ start,
252
+ referenceFrame,
253
+ sampleScratch,
254
+ );
255
+
256
+ // Transform to frame of reference - either reference entity's orientation, or VVLH
257
+ tmp = transformToEntityFrame(start, tmp, tmp2, refEntity, tmp);
258
+ if (defined(tmp)) {
259
+ result[r++] = tmp;
260
+ }
55
261
  }
56
262
 
57
263
  let steppedOnNow =
@@ -78,8 +284,22 @@ function subSampleSampledProperty(
78
284
  referenceFrame,
79
285
  result[r],
80
286
  );
81
- if (defined(tmp)) {
82
- result[r++] = tmp;
287
+ if (!entityFrame) {
288
+ if (defined(tmp)) {
289
+ result[r++] = tmp;
290
+ }
291
+ } else {
292
+ tmp2 = refPosition.getValueInReferenceFrame(
293
+ updateTime,
294
+ referenceFrame,
295
+ sampleScratch,
296
+ );
297
+ if (defined(tmp) && defined(tmp2)) {
298
+ tmp = transformToEntityFrame(updateTime, tmp, tmp2, refEntity, tmp);
299
+ if (defined(tmp)) {
300
+ result[r++] = tmp;
301
+ }
302
+ }
83
303
  }
84
304
  steppedOnNow = true;
85
305
  }
@@ -93,8 +313,22 @@ function subSampleSampledProperty(
93
313
  referenceFrame,
94
314
  result[r],
95
315
  );
96
- if (defined(tmp)) {
97
- result[r++] = tmp;
316
+ if (!entityFrame) {
317
+ if (defined(tmp)) {
318
+ result[r++] = tmp;
319
+ }
320
+ } else {
321
+ tmp2 = refPosition.getValueInReferenceFrame(
322
+ current,
323
+ referenceFrame,
324
+ sampleScratch,
325
+ );
326
+ if (defined(tmp) && defined(tmp2)) {
327
+ tmp = transformToEntityFrame(current, tmp, tmp2, refEntity, tmp);
328
+ if (defined(tmp)) {
329
+ result[r++] = tmp;
330
+ }
331
+ }
98
332
  }
99
333
  }
100
334
 
@@ -129,8 +363,22 @@ function subSampleSampledProperty(
129
363
 
130
364
  //Always step exactly on stop (but only use it if it exists.)
131
365
  tmp = property.getValueInReferenceFrame(stop, referenceFrame, result[r]);
132
- if (defined(tmp)) {
133
- result[r++] = tmp;
366
+ if (!entityFrame) {
367
+ if (defined(tmp)) {
368
+ result[r++] = tmp;
369
+ }
370
+ } else {
371
+ tmp2 = refPosition.getValueInReferenceFrame(
372
+ stop,
373
+ referenceFrame,
374
+ sampleScratch,
375
+ );
376
+ if (defined(tmp) && defined(tmp2)) {
377
+ tmp = transformToEntityFrame(stop, tmp, tmp2, refEntity, tmp);
378
+ if (defined(tmp)) {
379
+ result[r++] = tmp;
380
+ }
381
+ }
134
382
  }
135
383
 
136
384
  return r;
@@ -484,6 +732,8 @@ function subSample(
484
732
  }
485
733
 
486
734
  const toFixedScratch = new Matrix3();
735
+ const updateOrientationScratch = new Quaternion();
736
+ const updateRotationScratch = new Matrix3();
487
737
  function PolylineUpdater(scene, referenceFrame) {
488
738
  this._unusedIndexes = [];
489
739
  this._polylineCollection = new PolylineCollection();
@@ -493,16 +743,38 @@ function PolylineUpdater(scene, referenceFrame) {
493
743
  }
494
744
 
495
745
  PolylineUpdater.prototype.update = function (time) {
496
- if (this._referenceFrame === ReferenceFrame.INERTIAL) {
497
- const toFixed = Transforms.computeIcrfToCentralBodyFixedMatrix(
498
- time,
499
- toFixedScratch,
500
- );
746
+ const frame = this._referenceFrame;
747
+ if (frame === ReferenceFrame.INERTIAL) {
748
+ let toFixed = Transforms.computeIcrfToFixedMatrix(time, toFixedScratch);
749
+ if (!defined(toFixed)) {
750
+ toFixed = Transforms.computeTemeToPseudoFixedMatrix(time, toFixedScratch);
751
+ }
501
752
  Matrix4.fromRotationTranslation(
502
753
  toFixed,
503
754
  Cartesian3.ZERO,
504
755
  this._polylineCollection.modelMatrix,
505
756
  );
757
+ } else if (frame instanceof Entity) {
758
+ const position = frame.position.getValue(time);
759
+
760
+ // Use the reference frame entity's orientation if it has one
761
+ if (defined(frame.orientation)) {
762
+ if (defined(frame.orientation.getValue(time, updateOrientationScratch))) {
763
+ // Calculate the model matrix that places the body-frame path points into the world
764
+ Matrix3.fromQuaternion(updateOrientationScratch, updateRotationScratch);
765
+ Matrix4.fromRotationTranslation(
766
+ updateRotationScratch,
767
+ position,
768
+ this._polylineCollection.modelMatrix,
769
+ );
770
+ }
771
+ } else {
772
+ computeVvlhTransform(
773
+ time,
774
+ frame.position,
775
+ this._polylineCollection.modelMatrix,
776
+ );
777
+ }
506
778
  }
507
779
  };
508
780
 
@@ -597,8 +869,7 @@ PolylineUpdater.prototype.updateObject = function (time, item) {
597
869
  defaultResolution,
598
870
  );
599
871
 
600
- polyline.show = true;
601
- polyline.positions = subSample(
872
+ const positions = subSample(
602
873
  positionProperty,
603
874
  sampleStart,
604
875
  sampleStop,
@@ -607,6 +878,16 @@ PolylineUpdater.prototype.updateObject = function (time, item) {
607
878
  resolution,
608
879
  polyline.positions.slice(),
609
880
  );
881
+
882
+ // If the path only has one point, don't show it
883
+ // This can happen if the position is sampled at a time when it is only defined at a single point
884
+ if (positions.length < 2) {
885
+ polyline.show = false;
886
+ return;
887
+ }
888
+
889
+ polyline.show = true;
890
+ polyline.positions = positions;
610
891
  polyline.material = MaterialProperty.getValue(
611
892
  time,
612
893
  pathGraphics._material,
@@ -710,15 +991,40 @@ PathVisualizer.prototype.update = function (time) {
710
991
  const item = items[i];
711
992
  const entity = item.entity;
712
993
  const positionProperty = entity._position;
994
+ const pathGraphics = entity._path;
713
995
 
714
996
  const lastUpdater = item.updater;
715
997
 
998
+ let isRelative = false;
999
+
716
1000
  let frameToVisualize = ReferenceFrame.FIXED;
1001
+ let frameToVisualizeKey = frameToVisualize.toString();
717
1002
  if (this._scene.mode === SceneMode.SCENE3D) {
718
- frameToVisualize = positionProperty.referenceFrame;
1003
+ const relativeTo = Property.getValueOrUndefined(
1004
+ pathGraphics.relativeTo,
1005
+ time,
1006
+ );
1007
+ if (defined(relativeTo)) {
1008
+ if (relativeTo === "FIXED") {
1009
+ frameToVisualize = ReferenceFrame.FIXED;
1010
+ frameToVisualizeKey = frameToVisualize.toString();
1011
+ } else if (relativeTo === "INERTIAL") {
1012
+ frameToVisualize = ReferenceFrame.INERTIAL;
1013
+ frameToVisualizeKey = frameToVisualize.toString();
1014
+ } else {
1015
+ // Path should be relative to entity
1016
+ // Current implementation uses VVLH, ignores entity orientation
1017
+ isRelative = true;
1018
+ frameToVisualize = this._entityCollection.getById(relativeTo);
1019
+ frameToVisualizeKey = relativeTo;
1020
+ }
1021
+ } else {
1022
+ frameToVisualize = positionProperty.referenceFrame;
1023
+ frameToVisualizeKey = frameToVisualize.toString();
1024
+ }
719
1025
  }
720
1026
 
721
- let currentUpdater = this._updaters[frameToVisualize];
1027
+ let currentUpdater = this._updaters[frameToVisualizeKey];
722
1028
 
723
1029
  if (lastUpdater === currentUpdater && defined(currentUpdater)) {
724
1030
  currentUpdater.updateObject(time, item);
@@ -729,10 +1035,14 @@ PathVisualizer.prototype.update = function (time) {
729
1035
  lastUpdater.removeObject(item);
730
1036
  }
731
1037
 
1038
+ if (isRelative && !defined(frameToVisualize)) {
1039
+ continue;
1040
+ }
1041
+
732
1042
  if (!defined(currentUpdater)) {
733
1043
  currentUpdater = new PolylineUpdater(this._scene, frameToVisualize);
734
1044
  currentUpdater.update(time);
735
- this._updaters[frameToVisualize] = currentUpdater;
1045
+ this._updaters[frameToVisualizeKey] = currentUpdater;
736
1046
  }
737
1047
 
738
1048
  item.updater = currentUpdater;
@@ -820,4 +1130,6 @@ PathVisualizer.prototype._onCollectionChanged = function (
820
1130
 
821
1131
  //for testing
822
1132
  PathVisualizer._subSample = subSample;
1133
+ PathVisualizer._computeVvlhTransform = computeVvlhTransform;
1134
+ PathVisualizer._transformToEntityFrame = transformToEntityFrame;
823
1135
  export default PathVisualizer;
@@ -147,18 +147,23 @@ Batch.prototype.update = function (time) {
147
147
  this.depthFailMaterial,
148
148
  );
149
149
  }
150
- depthFailAppearance = new this.depthFailAppearanceType({
150
+
151
+ const DepthFailAppearanceType = this.depthFailAppearanceType;
152
+
153
+ depthFailAppearance = new DepthFailAppearanceType({
151
154
  material: this.depthFailMaterial,
152
155
  translucent: this.translucent,
153
156
  closed: this.closed,
154
157
  });
155
158
  }
156
159
 
160
+ const AppearanceType = this.appearanceType;
161
+
157
162
  primitive = new Primitive({
158
163
  show: false,
159
164
  asynchronous: true,
160
165
  geometryInstances: geometries.slice(),
161
- appearance: new this.appearanceType({
166
+ appearance: new AppearanceType({
162
167
  translucent: this.translucent,
163
168
  closed: this.closed,
164
169
  }),
@@ -154,18 +154,23 @@ Batch.prototype.update = function (time) {
154
154
  this.depthFailMaterialProperty,
155
155
  this.depthFailMaterial,
156
156
  );
157
- depthFailAppearance = new this.depthFailAppearanceType({
157
+
158
+ const DepthFailAppearanceType = this.depthFailAppearanceType;
159
+
160
+ depthFailAppearance = new DepthFailAppearanceType({
158
161
  material: this.depthFailMaterial,
159
162
  translucent: this.depthFailMaterial.isTranslucent(),
160
163
  closed: this.closed,
161
164
  });
162
165
  }
163
166
 
167
+ const AppearanceType = this.appearanceType;
168
+
164
169
  primitive = new Primitive({
165
170
  show: false,
166
171
  asynchronous: true,
167
172
  geometryInstances: geometries.slice(),
168
- appearance: new this.appearanceType({
173
+ appearance: new AppearanceType({
169
174
  material: this.material,
170
175
  translucent: this.material.isTranslucent(),
171
176
  closed: this.closed,
@@ -118,6 +118,7 @@ Batch.prototype.remove = function (updater) {
118
118
  if (defined(unsubscribe)) {
119
119
  unsubscribe();
120
120
  this.subscriptions.remove(id);
121
+ this.showsUpdated.remove(id);
121
122
  }
122
123
  return true;
123
124
  }
@@ -157,11 +158,13 @@ Batch.prototype.update = function (time) {
157
158
  this.material,
158
159
  );
159
160
 
161
+ const AppearanceType = this.appearanceType;
162
+
160
163
  primitive = new GroundPrimitive({
161
164
  show: false,
162
165
  asynchronous: true,
163
166
  geometryInstances: geometries.slice(),
164
- appearance: new this.appearanceType({
167
+ appearance: new AppearanceType({
165
168
  material: this.material,
166
169
  // translucent and closed properties overridden
167
170
  }),
@@ -113,6 +113,7 @@ Batch.prototype.remove = function (updater) {
113
113
  if (defined(unsubscribe)) {
114
114
  unsubscribe();
115
115
  this.subscriptions.remove(id);
116
+ this.showsUpdated.remove(id);
116
117
  }
117
118
  return true;
118
119
  }
@@ -139,11 +140,13 @@ Batch.prototype.update = function (time) {
139
140
  }
140
141
  }
141
142
 
143
+ const AppearanceType = this.appearanceType;
144
+
142
145
  primitive = new GroundPolylinePrimitive({
143
146
  show: false,
144
147
  asynchronous: this._asynchronous,
145
148
  geometryInstances: geometries.slice(),
146
- appearance: new this.appearanceType(),
149
+ appearance: new AppearanceType(),
147
150
  classificationType: this.classificationType,
148
151
  });
149
152
 
@@ -1,3 +1,5 @@
1
+ // @ts-check
2
+
1
3
  /**
2
4
  * Defined the orientation of stripes in {@link StripeMaterialProperty}.
3
5
  *
@@ -16,4 +18,7 @@ const StripeOrientation = {
16
18
  */
17
19
  VERTICAL: 1,
18
20
  };
19
- export default Object.freeze(StripeOrientation);
21
+
22
+ Object.freeze(StripeOrientation);
23
+
24
+ export default StripeOrientation;
@@ -1,21 +1,32 @@
1
+ // @ts-check
2
+
1
3
  import WebGLConstants from "../Core/WebGLConstants.js";
2
4
 
3
5
  /**
4
6
  * @private
7
+ * @enum {number}
5
8
  */
6
9
  const BufferUsage = {
7
10
  STREAM_DRAW: WebGLConstants.STREAM_DRAW,
8
11
  STATIC_DRAW: WebGLConstants.STATIC_DRAW,
9
12
  DYNAMIC_DRAW: WebGLConstants.DYNAMIC_DRAW,
10
13
  DYNAMIC_READ: WebGLConstants.DYNAMIC_READ,
14
+ };
11
15
 
12
- validate: function (bufferUsage) {
13
- return (
14
- bufferUsage === BufferUsage.STREAM_DRAW ||
15
- bufferUsage === BufferUsage.STATIC_DRAW ||
16
- bufferUsage === BufferUsage.DYNAMIC_DRAW ||
17
- bufferUsage === BufferUsage.DYNAMIC_READ
18
- );
19
- },
16
+ /**
17
+ * @private
18
+ * @param {BufferUsage} bufferUsage
19
+ */
20
+ // @ts-expect-error https://github.com/CesiumGS/cesium/issues/13420
21
+ BufferUsage.validate = function (bufferUsage) {
22
+ return (
23
+ bufferUsage === BufferUsage.STREAM_DRAW ||
24
+ bufferUsage === BufferUsage.STATIC_DRAW ||
25
+ bufferUsage === BufferUsage.DYNAMIC_DRAW ||
26
+ bufferUsage === BufferUsage.DYNAMIC_READ
27
+ );
20
28
  };
21
- export default Object.freeze(BufferUsage);
29
+
30
+ Object.freeze(BufferUsage);
31
+
32
+ export default BufferUsage;
@@ -22,6 +22,7 @@ import ContextLimits from "./ContextLimits.js";
22
22
  import CubeMap from "./CubeMap.js";
23
23
  import DrawCommand from "./DrawCommand.js";
24
24
  import PassState from "./PassState.js";
25
+ import PickId from "./PickId.js";
25
26
  import PixelDatatype from "./PixelDatatype.js";
26
27
  import RenderState from "./RenderState.js";
27
28
  import ShaderCache from "./ShaderCache.js";
@@ -1657,41 +1658,13 @@ Context.prototype.getObjectByPickColor = function (pickColor) {
1657
1658
  return this._pickObjects.get(pickColor);
1658
1659
  };
1659
1660
 
1660
- /**
1661
- *
1662
- * @param {Map<number, object>} pickObjects
1663
- * @param {number} key
1664
- * @param {Color} color
1665
- */
1666
- function PickId(pickObjects, key, color) {
1667
- this._pickObjects = pickObjects;
1668
- this.key = key;
1669
- this.color = color;
1670
- }
1671
-
1672
- Object.defineProperties(PickId.prototype, {
1673
- object: {
1674
- get: function () {
1675
- return this._pickObjects.get(this.key);
1676
- },
1677
- set: function (value) {
1678
- this._pickObjects.set(this.key, value);
1679
- },
1680
- },
1681
- });
1682
-
1683
- PickId.prototype.destroy = function () {
1684
- this._pickObjects.delete(this.key);
1685
- return undefined;
1686
- };
1687
-
1688
1661
  /**
1689
1662
  * Creates a unique ID associated with the input object for use with color-buffer picking.
1690
1663
  * The ID has an RGBA color value unique to this context. You must call destroy()
1691
1664
  * on the pick ID when destroying the input object.
1692
1665
  *
1693
1666
  * @param {object} object The object to associate with the pick ID.
1694
- * @returns {object} A PickId object with a <code>color</code> property.
1667
+ * @returns {PickId} A PickId object with a <code>color</code> property.
1695
1668
  *
1696
1669
  * @exception {RuntimeError} Out of unique Pick IDs.
1697
1670
  *