@cesium/engine 9.2.0 → 10.1.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 (301) hide show
  1. package/Build/Workers/{chunk-GOQEANLM.js → chunk-2GEAGYUY.js} +13 -13
  2. package/Build/Workers/{chunk-WOYQB5HM.js → chunk-2J3JKXCP.js} +5 -5
  3. package/Build/Workers/{chunk-IXYFH7DV.js → chunk-3WUV74WM.js} +2 -2
  4. package/Build/Workers/{chunk-WHDEZSAL.js → chunk-4MSUJ4I7.js} +8 -8
  5. package/Build/Workers/chunk-4RMIRG6T.js +1800 -0
  6. package/Build/Workers/{chunk-CVCVMOQA.js → chunk-4VFBBNQ3.js} +1 -1
  7. package/Build/Workers/{chunk-ZHJDE6JN.js → chunk-4YSNMHZ4.js} +6 -6
  8. package/Build/Workers/{chunk-YGNQJ4YI.js → chunk-5BLJ5ZM6.js} +5 -5
  9. package/Build/Workers/{chunk-4RG6WOXH.js → chunk-5KWHSZYL.js} +11 -11
  10. package/Build/Workers/{chunk-BBBTT36L.js → chunk-5O6JWQ4E.js} +14 -14
  11. package/Build/Workers/{chunk-GX2BWBN2.js → chunk-65MZOUNU.js} +14 -14
  12. package/Build/Workers/{chunk-K5F23SZO.js → chunk-6D66DPRV.js} +7 -7
  13. package/Build/Workers/{chunk-2TRB253J.js → chunk-6OFDHMHR.js} +7 -7
  14. package/Build/Workers/{chunk-U6MTSO6A.js → chunk-76BYYG7N.js} +424 -449
  15. package/Build/Workers/{chunk-3PV5HQ2R.js → chunk-A5CODJ4M.js} +6 -6
  16. package/Build/Workers/{chunk-IF2OX6R4.js → chunk-AA4GZKOT.js} +1 -1
  17. package/Build/Workers/{chunk-OYP23VAL.js → chunk-ACRTCBN5.js} +11 -11
  18. package/Build/Workers/chunk-B75IEX2S.js +390 -0
  19. package/Build/Workers/{chunk-EODIOQ35.js → chunk-BAVI3ZS2.js} +1 -1
  20. package/Build/Workers/{chunk-CFBGPZU6.js → chunk-BBDZYSZB.js} +10 -10
  21. package/Build/Workers/{chunk-LZFFO4KB.js → chunk-BGE4QVG7.js} +12 -12
  22. package/Build/Workers/chunk-BY3E4ONI.js +456 -0
  23. package/Build/Workers/{chunk-RDR4KVPA.js → chunk-C3Z23UUJ.js} +18 -18
  24. package/Build/Workers/{chunk-I6CW7ZE5.js → chunk-C45MU4GZ.js} +10 -8
  25. package/Build/Workers/chunk-CF7P7K7E.js +684 -0
  26. package/Build/Workers/{chunk-KTZK2UDR.js → chunk-D2U4RI64.js} +7 -7
  27. package/Build/Workers/{chunk-QZIWFSRM.js → chunk-D4K27X2M.js} +4 -4
  28. package/Build/Workers/{chunk-UYKG3UFK.js → chunk-DKVHRNFY.js} +5 -5
  29. package/Build/Workers/{chunk-5OK5JFDP.js → chunk-EB7PNZTK.js} +5 -5
  30. package/Build/Workers/{chunk-7PFZ4Z7C.js → chunk-ELI4BUOT.js} +11 -9
  31. package/Build/Workers/chunk-F3NDOSTZ.js +963 -0
  32. package/Build/Workers/{chunk-3VDHTBY5.js → chunk-FDCLACT5.js} +10 -10
  33. package/Build/Workers/{chunk-BNT2SNWU.js → chunk-FEVVHITK.js} +4 -4
  34. package/Build/Workers/{chunk-7HLZRYGD.js → chunk-FOZWUH4T.js} +7 -7
  35. package/Build/Workers/chunk-FQPSOOPH.js +258 -0
  36. package/Build/Workers/{chunk-A5CSB5ZE.js → chunk-G5V4GPZE.js} +9 -9
  37. package/Build/Workers/{chunk-TDIGL45B.js → chunk-GNHZH7HP.js} +1 -1
  38. package/Build/Workers/{chunk-26NE4LRW.js → chunk-GPJR7MPQ.js} +11 -8
  39. package/Build/Workers/chunk-GWT64LKY.js +171 -0
  40. package/Build/Workers/{chunk-PUQR43HZ.js → chunk-HGEEOMSC.js} +6 -6
  41. package/Build/Workers/{chunk-SC3TBKST.js → chunk-I2RC4XVN.js} +4 -4
  42. package/Build/Workers/chunk-IUROUBPA.js +300 -0
  43. package/Build/Workers/{chunk-G7IAO7CW.js → chunk-J7MQUQJY.js} +7 -7
  44. package/Build/Workers/chunk-JNLWLSTP.js +476 -0
  45. package/Build/Workers/{chunk-TP4FFUAH.js → chunk-JYQNWIQQ.js} +2 -2
  46. package/Build/Workers/{chunk-RRUO4QEK.js → chunk-KUN2ZA5X.js} +4 -4
  47. package/Build/Workers/chunk-KV4EQHK4.js +1477 -0
  48. package/Build/Workers/chunk-LSSWVB2X.js +138 -0
  49. package/Build/Workers/{chunk-EJZVBTX4.js → chunk-LXQ5QAEJ.js} +6 -6
  50. package/Build/Workers/chunk-MBZH7YZ7.js +945 -0
  51. package/Build/Workers/{chunk-WP3LCUOE.js → chunk-MKXWJTFQ.js} +13 -13
  52. package/Build/Workers/{chunk-AROLUUGS.js → chunk-MMV6TO3P.js} +2 -2
  53. package/Build/Workers/{chunk-ETC45PHH.js → chunk-MSKXMXJI.js} +4 -4
  54. package/Build/Workers/chunk-N4QEHO3U.js +75 -0
  55. package/Build/Workers/chunk-NVOABL76.js +100 -0
  56. package/Build/Workers/chunk-OAPA2RTG.js +239 -0
  57. package/Build/Workers/{chunk-PHT53MCH.js → chunk-OE4MCOC7.js} +13 -13
  58. package/Build/Workers/chunk-OJF4RTJG.js +634 -0
  59. package/Build/Workers/{chunk-UICVDDCQ.js → chunk-OOK53QUQ.js} +1 -1
  60. package/Build/Workers/{chunk-W4OS542B.js → chunk-OOMCT7OL.js} +13 -13
  61. package/Build/Workers/{chunk-YGTWKLFY.js → chunk-OWGTMVDB.js} +19 -19
  62. package/Build/Workers/{chunk-GUFV24F4.js → chunk-OXALEQPI.js} +61 -17
  63. package/Build/Workers/chunk-OXSI7N4C.js +768 -0
  64. package/Build/Workers/{chunk-26XJDV3D.js → chunk-PNFHVBSF.js} +15 -15
  65. package/Build/Workers/chunk-POSRARY7.js +834 -0
  66. package/Build/Workers/{chunk-GX5LMUGZ.js → chunk-PYHLO636.js} +42 -13
  67. package/Build/Workers/chunk-Q55ECN3Y.js +37 -0
  68. package/Build/Workers/chunk-QD4KM3GO.js +138 -0
  69. package/Build/Workers/chunk-QMLTCCYG.js +55 -0
  70. package/Build/Workers/chunk-QX5XS4LC.js +101 -0
  71. package/Build/Workers/{chunk-UKJCFXVV.js → chunk-QYQIVZBU.js} +6 -6
  72. package/Build/Workers/chunk-R3TKLC6E.js +1075 -0
  73. package/Build/Workers/chunk-R4OIEIPE.js +500 -0
  74. package/Build/Workers/chunk-R4ZEWO4I.js +122 -0
  75. package/Build/Workers/chunk-R6B7UCQB.js +44 -0
  76. package/Build/Workers/chunk-RCK55EDX.js +691 -0
  77. package/Build/Workers/chunk-RHBWXX7C.js +629 -0
  78. package/Build/Workers/chunk-RZLZWKFN.js +305 -0
  79. package/Build/Workers/{chunk-DIVFF6DK.js → chunk-S3PI2KFM.js} +2 -2
  80. package/Build/Workers/chunk-SAPFXU5X.js +102 -0
  81. package/Build/Workers/chunk-T6LPN7RI.js +2857 -0
  82. package/Build/Workers/{chunk-U2LSTOMA.js → chunk-T77JILCU.js} +2 -2
  83. package/Build/Workers/chunk-TBBFDFCS.js +368 -0
  84. package/Build/Workers/chunk-TF776XCO.js +1258 -0
  85. package/Build/Workers/chunk-TGY6H6N6.js +163 -0
  86. package/Build/Workers/{chunk-RTIT7UDN.js → chunk-TO2PVHKI.js} +2 -2
  87. package/Build/Workers/chunk-UCIPJSZX.js +398 -0
  88. package/Build/Workers/chunk-UOEUCKKU.js +59 -0
  89. package/Build/Workers/chunk-VE7BFUIX.js +39 -0
  90. package/Build/Workers/chunk-VFBNELXB.js +353 -0
  91. package/Build/Workers/chunk-VRZ46QZ5.js +781 -0
  92. package/Build/Workers/chunk-VYWUFRRR.js +1052 -0
  93. package/Build/Workers/chunk-WVSELU6O.js +2716 -0
  94. package/Build/Workers/chunk-X23FRWHJ.js +117 -0
  95. package/Build/Workers/chunk-X2ZQ7RJR.js +287 -0
  96. package/Build/Workers/chunk-X43SJLQL.js +10364 -0
  97. package/Build/Workers/chunk-XLTOBCDI.js +220 -0
  98. package/Build/Workers/chunk-XQI7XZHX.js +196 -0
  99. package/Build/Workers/chunk-XUOJCLOH.js +511 -0
  100. package/Build/Workers/chunk-XZZNKIEV.js +157 -0
  101. package/Build/Workers/chunk-YLYBLJ3Y.js +73 -0
  102. package/Build/Workers/chunk-ZEE2EIFD.js +430 -0
  103. package/Build/Workers/chunk-ZIKGV7EL.js +58 -0
  104. package/Build/Workers/chunk-ZU334IDQ.js +421 -0
  105. package/Build/Workers/combineGeometry.js +22 -22
  106. package/Build/Workers/createBoxGeometry.js +16 -16
  107. package/Build/Workers/createBoxOutlineGeometry.js +14 -14
  108. package/Build/Workers/createCircleGeometry.js +29 -25
  109. package/Build/Workers/createCircleOutlineGeometry.js +17 -17
  110. package/Build/Workers/createCoplanarPolygonGeometry.js +32 -32
  111. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +29 -29
  112. package/Build/Workers/createCorridorGeometry.js +29 -29
  113. package/Build/Workers/createCorridorOutlineGeometry.js +27 -27
  114. package/Build/Workers/createCylinderGeometry.js +18 -18
  115. package/Build/Workers/createCylinderOutlineGeometry.js +16 -16
  116. package/Build/Workers/createEllipseGeometry.js +24 -24
  117. package/Build/Workers/createEllipseOutlineGeometry.js +17 -17
  118. package/Build/Workers/createEllipsoidGeometry.js +17 -17
  119. package/Build/Workers/createEllipsoidOutlineGeometry.js +16 -16
  120. package/Build/Workers/createFrustumGeometry.js +16 -16
  121. package/Build/Workers/createFrustumOutlineGeometry.js +16 -16
  122. package/Build/Workers/createGeometry.js +22 -22
  123. package/Build/Workers/createGroundPolylineGeometry.js +24 -24
  124. package/Build/Workers/createPlaneGeometry.js +14 -14
  125. package/Build/Workers/createPlaneOutlineGeometry.js +13 -13
  126. package/Build/Workers/createPolygonGeometry.js +32 -32
  127. package/Build/Workers/createPolygonOutlineGeometry.js +29 -29
  128. package/Build/Workers/createPolylineGeometry.js +24 -24
  129. package/Build/Workers/createPolylineVolumeGeometry.js +30 -30
  130. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +26 -26
  131. package/Build/Workers/createRectangleGeometry.js +27 -27
  132. package/Build/Workers/createRectangleOutlineGeometry.js +19 -19
  133. package/Build/Workers/createSimplePolylineGeometry.js +22 -22
  134. package/Build/Workers/createSphereGeometry.js +17 -17
  135. package/Build/Workers/createSphereOutlineGeometry.js +16 -16
  136. package/Build/Workers/createTaskProcessorWorker.js +3 -3
  137. package/Build/Workers/createVectorTileClampedPolylines.js +13 -13
  138. package/Build/Workers/createVectorTileGeometries.js +22 -22
  139. package/Build/Workers/createVectorTilePoints.js +12 -12
  140. package/Build/Workers/createVectorTilePolygons.js +20 -20
  141. package/Build/Workers/createVectorTilePolylines.js +13 -13
  142. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +20 -20
  143. package/Build/Workers/createVerticesFromHeightmap.js +21 -21
  144. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +17 -17
  145. package/Build/Workers/createWallGeometry.js +23 -23
  146. package/Build/Workers/createWallOutlineGeometry.js +22 -22
  147. package/Build/Workers/decodeDraco.js +11 -11
  148. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
  149. package/Build/Workers/decodeI3S.js +10 -10
  150. package/Build/Workers/transcodeKTX2.js +8 -11
  151. package/Build/Workers/transferTypedArrayTest.js +1 -1
  152. package/Build/Workers/upsampleQuantizedTerrainMesh.js +20 -20
  153. package/Source/Core/ApproximateTerrainHeights.js +4 -4
  154. package/Source/Core/ArcGISTiledElevationTerrainProvider.js +12 -8
  155. package/Source/Core/BoundingRectangle.js +2 -0
  156. package/Source/Core/BoundingSphere.js +4 -2
  157. package/Source/Core/Cartesian3.js +13 -10
  158. package/Source/Core/Cartographic.js +11 -8
  159. package/Source/Core/CesiumTerrainProvider.js +3 -2
  160. package/Source/Core/CircleGeometry.js +6 -2
  161. package/Source/Core/CircleOutlineGeometry.js +1 -1
  162. package/Source/Core/CoplanarPolygonGeometry.js +3 -3
  163. package/Source/Core/CorridorGeometry.js +4 -4
  164. package/Source/Core/CorridorOutlineGeometry.js +2 -2
  165. package/Source/Core/Credit.js +3 -2
  166. package/Source/Core/CustomHeightmapTerrainProvider.js +17 -3
  167. package/Source/Core/EllipseGeometry.js +4 -4
  168. package/Source/Core/EllipseOutlineGeometry.js +2 -2
  169. package/Source/Core/Ellipsoid.js +34 -0
  170. package/Source/Core/EllipsoidGeodesic.js +2 -2
  171. package/Source/Core/EllipsoidRhumbLine.js +4 -4
  172. package/Source/Core/EllipsoidTangentPlane.js +3 -3
  173. package/Source/Core/EllipsoidTerrainProvider.js +3 -3
  174. package/Source/Core/GeographicProjection.js +4 -3
  175. package/Source/Core/GeographicTilingScheme.js +3 -3
  176. package/Source/Core/GeometryPipeline.js +2 -2
  177. package/Source/Core/GoogleEarthEnterpriseTerrainProvider.js +1 -1
  178. package/Source/Core/GoogleMaps.js +1 -1
  179. package/Source/Core/GroundPolylineGeometry.js +1 -1
  180. package/Source/Core/HeightmapTessellator.js +2 -2
  181. package/Source/Core/Ion.js +1 -1
  182. package/Source/Core/Occluder.js +3 -3
  183. package/Source/Core/OrientedBoundingBox.js +2 -2
  184. package/Source/Core/PolygonGeometry.js +4 -4
  185. package/Source/Core/PolygonGeometryLibrary.js +1 -1
  186. package/Source/Core/PolygonOutlineGeometry.js +3 -3
  187. package/Source/Core/PolygonPipeline.js +2 -2
  188. package/Source/Core/PolylineGeometry.js +2 -2
  189. package/Source/Core/PolylinePipeline.js +6 -6
  190. package/Source/Core/PolylineVolumeGeometry.js +2 -2
  191. package/Source/Core/PolylineVolumeOutlineGeometry.js +2 -2
  192. package/Source/Core/Rectangle.js +6 -6
  193. package/Source/Core/RectangleGeometry.js +6 -6
  194. package/Source/Core/RectangleGeometryLibrary.js +3 -0
  195. package/Source/Core/RectangleOutlineGeometry.js +2 -2
  196. package/Source/Core/Simon1994PlanetaryPositions.js +4 -2
  197. package/Source/Core/SimplePolylineGeometry.js +2 -2
  198. package/Source/Core/Stereographic.js +2 -2
  199. package/Source/Core/Transforms.js +154 -19
  200. package/Source/Core/VRTheWorldTerrainProvider.js +2 -2
  201. package/Source/Core/WallGeometry.js +3 -3
  202. package/Source/Core/WallOutlineGeometry.js +3 -3
  203. package/Source/Core/WebMercatorTilingScheme.js +3 -3
  204. package/Source/Core/createWorldTerrainAsync.js +2 -0
  205. package/Source/DataSources/BillboardGraphics.js +16 -0
  206. package/Source/DataSources/BillboardVisualizer.js +7 -0
  207. package/Source/DataSources/BoxGeometryUpdater.js +2 -2
  208. package/Source/DataSources/CylinderGeometryUpdater.js +2 -2
  209. package/Source/DataSources/CzmlDataSource.js +8 -8
  210. package/Source/DataSources/EllipsoidGeometryUpdater.js +3 -3
  211. package/Source/DataSources/EntityCluster.js +1 -1
  212. package/Source/DataSources/EntityView.js +2 -2
  213. package/Source/DataSources/KmlDataSource.js +4 -4
  214. package/Source/DataSources/ModelVisualizer.js +1 -2
  215. package/Source/DataSources/PathVisualizer.js +4 -4
  216. package/Source/DataSources/PointGraphics.js +17 -0
  217. package/Source/DataSources/PointVisualizer.js +12 -0
  218. package/Source/DataSources/PolygonGeometryUpdater.js +1 -1
  219. package/Source/DataSources/PolylineGeometryUpdater.js +3 -2
  220. package/Source/DataSources/PositionProperty.js +4 -7
  221. package/Source/DataSources/RectangleGeometryUpdater.js +1 -1
  222. package/Source/DataSources/ScaledPositionProperty.js +2 -2
  223. package/Source/DataSources/TerrainOffsetProperty.js +3 -7
  224. package/Source/DataSources/VelocityOrientationProperty.js +2 -2
  225. package/Source/DataSources/exportKml.js +2 -2
  226. package/Source/Renderer/AutomaticUniforms.js +1 -1
  227. package/Source/Renderer/UniformState.js +6 -12
  228. package/Source/Scene/ArcGisMapServerImageryProvider.js +2 -2
  229. package/Source/Scene/ArcGisMapService.js +1 -1
  230. package/Source/Scene/Billboard.js +35 -6
  231. package/Source/Scene/BillboardCollection.js +49 -0
  232. package/Source/Scene/BingMapsImageryProvider.js +11 -2
  233. package/Source/Scene/Camera.js +16 -10
  234. package/Source/Scene/Cesium3DTileset.js +1 -1
  235. package/Source/Scene/ClippingPolygon.js +2 -2
  236. package/Source/Scene/ClippingPolygonCollection.js +1 -1
  237. package/Source/Scene/CreditDisplay.js +94 -104
  238. package/Source/Scene/Globe.js +16 -13
  239. package/Source/Scene/GltfLoaderUtil.js +2 -4
  240. package/Source/Scene/GoogleEarthEnterpriseImageryProvider.js +1 -1
  241. package/Source/Scene/GoogleEarthEnterpriseMapsProvider.js +1 -1
  242. package/Source/Scene/GridImageryProvider.js +2 -2
  243. package/Source/Scene/ImageBasedLighting.js +2 -2
  244. package/Source/Scene/ImageryLayerCollection.js +2 -2
  245. package/Source/Scene/MapboxImageryProvider.js +1 -1
  246. package/Source/Scene/MapboxStyleImageryProvider.js +1 -1
  247. package/Source/Scene/MetadataSemantic.js +4 -4
  248. package/Source/Scene/Model/InstancingPipelineStage.js +3 -3
  249. package/Source/Scene/Model/MaterialPipelineStage.js +49 -0
  250. package/Source/Scene/Model/Model.js +8 -5
  251. package/Source/Scene/Model/ModelSceneGraph.js +1 -1
  252. package/Source/Scene/Model/SceneMode2DPipelineStage.js +3 -3
  253. package/Source/Scene/Model/pickModel.js +2 -2
  254. package/Source/Scene/ModelComponents.js +9 -0
  255. package/Source/Scene/OctahedralProjectedCubeMap.js +5 -6
  256. package/Source/Scene/Picking.js +4 -13
  257. package/Source/Scene/PointPrimitive.js +33 -4
  258. package/Source/Scene/PointPrimitiveCollection.js +22 -9
  259. package/Source/Scene/Scene.js +39 -31
  260. package/Source/Scene/SceneTransforms.js +78 -20
  261. package/Source/Scene/SceneTransitioner.js +2 -2
  262. package/Source/Scene/ScreenSpaceCameraController.js +29 -19
  263. package/Source/Scene/SkyBox.js +26 -0
  264. package/Source/Scene/Sun.js +1 -1
  265. package/Source/Shaders/BillboardCollectionFS.glsl +4 -0
  266. package/Source/Shaders/BillboardCollectionFS.js +4 -0
  267. package/Source/Shaders/BillboardCollectionVS.glsl +3 -1
  268. package/Source/Shaders/BillboardCollectionVS.js +3 -1
  269. package/Source/Shaders/BrdfLutGeneratorFS.glsl +30 -13
  270. package/Source/Shaders/BrdfLutGeneratorFS.js +30 -13
  271. package/Source/Shaders/Builtin/CzmBuiltins.js +2 -2
  272. package/Source/Shaders/Builtin/Functions/ellipsoidTextureCoordinates.glsl +10 -0
  273. package/Source/Shaders/Builtin/Functions/{ellipsoidWgs84TextureCoordinates.js → ellipsoidTextureCoordinates.js} +3 -3
  274. package/Source/Shaders/Builtin/Functions/pbrLighting.glsl +40 -39
  275. package/Source/Shaders/Builtin/Functions/pbrLighting.js +40 -39
  276. package/Source/Shaders/Builtin/Functions/sampleOctahedralProjection.glsl +1 -1
  277. package/Source/Shaders/Builtin/Functions/sampleOctahedralProjection.js +1 -1
  278. package/Source/Shaders/Builtin/Structs/materialInput.glsl +1 -1
  279. package/Source/Shaders/Builtin/Structs/materialInput.js +1 -1
  280. package/Source/Shaders/Builtin/Structs/modelMaterial.glsl +2 -0
  281. package/Source/Shaders/Builtin/Structs/modelMaterial.js +2 -0
  282. package/Source/Shaders/EllipsoidFS.glsl +1 -1
  283. package/Source/Shaders/EllipsoidFS.js +1 -1
  284. package/Source/Shaders/GlobeFS.glsl +2 -2
  285. package/Source/Shaders/GlobeFS.js +2 -2
  286. package/Source/Shaders/Model/ImageBasedLightingStageFS.glsl +23 -23
  287. package/Source/Shaders/Model/ImageBasedLightingStageFS.js +23 -23
  288. package/Source/Shaders/Model/LightingStageFS.glsl +6 -5
  289. package/Source/Shaders/Model/LightingStageFS.js +6 -5
  290. package/Source/Shaders/Model/MaterialStageFS.glsl +31 -26
  291. package/Source/Shaders/Model/MaterialStageFS.js +31 -26
  292. package/Source/Shaders/PointPrimitiveCollectionFS.glsl +4 -0
  293. package/Source/Shaders/PointPrimitiveCollectionFS.js +4 -0
  294. package/Source/Shaders/PointPrimitiveCollectionVS.glsl +9 -7
  295. package/Source/Shaders/PointPrimitiveCollectionVS.js +9 -7
  296. package/Source/Widget/CesiumWidget.css +0 -5
  297. package/Source/Widget/CesiumWidget.js +29 -28
  298. package/index.d.ts +254 -117
  299. package/index.js +45 -45
  300. package/package.json +4 -4
  301. package/Source/Shaders/Builtin/Functions/ellipsoidWgs84TextureCoordinates.glsl +0 -10
@@ -21,6 +21,7 @@ import HorizontalOrigin from "./HorizontalOrigin.js";
21
21
  import SceneMode from "./SceneMode.js";
22
22
  import SceneTransforms from "./SceneTransforms.js";
23
23
  import VerticalOrigin from "./VerticalOrigin.js";
24
+ import SplitDirection from "./SplitDirection.js";
24
25
 
25
26
  /**
26
27
  * @typedef {object} Billboard.ConstructorOptions
@@ -49,6 +50,7 @@ import VerticalOrigin from "./VerticalOrigin.js";
49
50
  * @property {BoundingRectangle} [imageSubRegion] A {@link BoundingRectangle} Specifying the sub-region of the image to use for the billboard, rather than the entire image.
50
51
  * @property {DistanceDisplayCondition} [distanceDisplayCondition] A {@link DistanceDisplayCondition} Specifying the distance from the camera at which this billboard will be displayed.
51
52
  * @property {number} [disableDepthTestDistance] A number specifying the distance from the camera at which to disable the depth test to, for example, prevent clipping against terrain.
53
+ * @property {SplitDirection} [splitDirection] A {@link SplitDirection} Specifying the split property of the billboard.
52
54
  */
53
55
 
54
56
  /**
@@ -250,6 +252,11 @@ function Billboard(options, billboardCollection) {
250
252
  this._outlineWidth = defaultValue(options.outlineWidth, 0.0);
251
253
 
252
254
  this._updateClamping();
255
+
256
+ this._splitDirection = defaultValue(
257
+ options.splitDirection,
258
+ SplitDirection.NONE
259
+ );
253
260
  }
254
261
 
255
262
  const SHOW_INDEX = (Billboard.SHOW_INDEX = 0);
@@ -270,7 +277,8 @@ const DISTANCE_DISPLAY_CONDITION = (Billboard.DISTANCE_DISPLAY_CONDITION = 14);
270
277
  const DISABLE_DEPTH_DISTANCE = (Billboard.DISABLE_DEPTH_DISTANCE = 15);
271
278
  Billboard.TEXTURE_COORDINATE_BOUNDS = 16;
272
279
  const SDF_INDEX = (Billboard.SDF_INDEX = 17);
273
- Billboard.NUMBER_OF_PROPERTIES = 18;
280
+ const SPLIT_DIRECTION_INDEX = (Billboard.SPLIT_DIRECTION_INDEX = 18);
281
+ Billboard.NUMBER_OF_PROPERTIES = 19;
274
282
 
275
283
  function makeDirty(billboard, propertyChanged) {
276
284
  const billboardCollection = billboard._billboardCollection;
@@ -1072,6 +1080,24 @@ Object.defineProperties(Billboard.prototype, {
1072
1080
  }
1073
1081
  },
1074
1082
  },
1083
+
1084
+ /**
1085
+ * Gets or sets the {@link SplitDirection} of this billboard.
1086
+ * @memberof Billboard.prototype
1087
+ * @type {SplitDirection}
1088
+ * @default {@link SplitDirection.NONE}
1089
+ */
1090
+ splitDirection: {
1091
+ get: function () {
1092
+ return this._splitDirection;
1093
+ },
1094
+ set: function (value) {
1095
+ if (this._splitDirection !== value) {
1096
+ this._splitDirection = value;
1097
+ makeDirty(this, SPLIT_DIRECTION_INDEX);
1098
+ }
1099
+ },
1100
+ },
1075
1101
  });
1076
1102
 
1077
1103
  Billboard.prototype.getPickId = function (context) {
@@ -1104,8 +1130,7 @@ Billboard._updateClamping = function (collection, owner) {
1104
1130
  return;
1105
1131
  }
1106
1132
 
1107
- const globe = scene.globe;
1108
- const ellipsoid = defaultValue(globe?.ellipsoid, Ellipsoid.WGS84);
1133
+ const ellipsoid = defaultValue(scene.ellipsoid, Ellipsoid.default);
1109
1134
 
1110
1135
  const mode = scene.frameState.mode;
1111
1136
 
@@ -1375,7 +1400,10 @@ Billboard._computeActualPosition = function (
1375
1400
  }
1376
1401
 
1377
1402
  Matrix4.multiplyByPoint(modelMatrix, position, tempCartesian3);
1378
- return SceneTransforms.computeActualWgs84Position(frameState, tempCartesian3);
1403
+ return SceneTransforms.computeActualEllipsoidPosition(
1404
+ frameState,
1405
+ tempCartesian3
1406
+ );
1379
1407
  };
1380
1408
 
1381
1409
  const scratchCartesian3 = new Cartesian3();
@@ -1397,7 +1425,7 @@ Billboard._computeScreenSpacePosition = function (
1397
1425
  );
1398
1426
 
1399
1427
  // World to window coordinates
1400
- const positionWC = SceneTransforms.wgs84WithEyeOffsetToWindowCoordinates(
1428
+ const positionWC = SceneTransforms.worldWithEyeOffsetToWindowCoordinates(
1401
1429
  scene,
1402
1430
  positionWorld,
1403
1431
  eyeOffset,
@@ -1565,7 +1593,8 @@ Billboard.prototype.equals = function (other) {
1565
1593
  this._distanceDisplayCondition,
1566
1594
  other._distanceDisplayCondition
1567
1595
  ) &&
1568
- this._disableDepthTestDistance === other._disableDepthTestDistance)
1596
+ this._disableDepthTestDistance === other._disableDepthTestDistance &&
1597
+ this._splitDirection === other._splitDirection)
1569
1598
  );
1570
1599
  };
1571
1600
 
@@ -54,6 +54,7 @@ const DISTANCE_DISPLAY_CONDITION_INDEX = Billboard.DISTANCE_DISPLAY_CONDITION;
54
54
  const DISABLE_DEPTH_DISTANCE = Billboard.DISABLE_DEPTH_DISTANCE;
55
55
  const TEXTURE_COORDINATE_BOUNDS = Billboard.TEXTURE_COORDINATE_BOUNDS;
56
56
  const SDF_INDEX = Billboard.SDF_INDEX;
57
+ const SPLIT_DIRECTION_INDEX = Billboard.SPLIT_DIRECTION_INDEX;
57
58
  const NUMBER_OF_PROPERTIES = Billboard.NUMBER_OF_PROPERTIES;
58
59
 
59
60
  let attributeLocations;
@@ -71,6 +72,7 @@ const attributeLocationsBatched = {
71
72
  textureCoordinateBoundsOrLabelTranslate: 9,
72
73
  a_batchId: 10,
73
74
  sdf: 11,
75
+ splitDirection: 12,
74
76
  };
75
77
 
76
78
  const attributeLocationsInstanced = {
@@ -87,6 +89,7 @@ const attributeLocationsInstanced = {
87
89
  textureCoordinateBoundsOrLabelTranslate: 10,
88
90
  a_batchId: 11,
89
91
  sdf: 12,
92
+ splitDirection: 13,
90
93
  };
91
94
 
92
95
  /**
@@ -311,6 +314,7 @@ function BillboardCollection(options) {
311
314
  BufferUsage.STATIC_DRAW, // PIXEL_OFFSET_SCALE_BY_DISTANCE_INDEX
312
315
  BufferUsage.STATIC_DRAW, // DISTANCE_DISPLAY_CONDITION_INDEX
313
316
  BufferUsage.STATIC_DRAW, // TEXTURE_COORDINATE_BOUNDS
317
+ BufferUsage.STATIC_DRAW, // SPLIT_DIRECTION_INDEX
314
318
  ];
315
319
 
316
320
  this._highlightColor = Color.clone(Color.WHITE); // Only used by Vector3DTilePoints
@@ -777,6 +781,12 @@ function createVAF(
777
781
  componentDatatype: ComponentDatatype.FLOAT,
778
782
  usage: buffersUsage[TEXTURE_COORDINATE_BOUNDS],
779
783
  },
784
+ {
785
+ index: attributeLocations.splitDirection,
786
+ componentsPerAttribute: 1,
787
+ componentDatatype: ComponentDatatype.FLOAT,
788
+ usage: buffersUsage[SPLIT_DIRECTION_INDEX],
789
+ },
780
790
  ];
781
791
 
782
792
  // Instancing requires one non-instanced attribute.
@@ -1586,6 +1596,34 @@ function writeSDF(
1586
1596
  }
1587
1597
  }
1588
1598
 
1599
+ function writeSplitDirection(
1600
+ billboardCollection,
1601
+ frameState,
1602
+ textureAtlasCoordinates,
1603
+ vafWriters,
1604
+ billboard
1605
+ ) {
1606
+ const writer = vafWriters[attributeLocations.splitDirection];
1607
+ let direction = 0.0;
1608
+
1609
+ const split = billboard.splitDirection;
1610
+ if (defined(split)) {
1611
+ direction = split;
1612
+ }
1613
+
1614
+ let i;
1615
+ if (billboardCollection._instanced) {
1616
+ i = billboard._index;
1617
+ writer(i, direction);
1618
+ } else {
1619
+ i = billboard._index * 4;
1620
+ writer(i + 0, direction);
1621
+ writer(i + 1, direction);
1622
+ writer(i + 2, direction);
1623
+ writer(i + 3, direction);
1624
+ }
1625
+ }
1626
+
1589
1627
  function writeBillboard(
1590
1628
  billboardCollection,
1591
1629
  frameState,
@@ -1670,6 +1708,13 @@ function writeBillboard(
1670
1708
  vafWriters,
1671
1709
  billboard
1672
1710
  );
1711
+ writeSplitDirection(
1712
+ billboardCollection,
1713
+ frameState,
1714
+ textureAtlasCoordinates,
1715
+ vafWriters,
1716
+ billboard
1717
+ );
1673
1718
  }
1674
1719
 
1675
1720
  function recomputeActualPositions(
@@ -1981,6 +2026,10 @@ BillboardCollection.prototype.update = function (frameState) {
1981
2026
  writers.push(writeSDF);
1982
2027
  }
1983
2028
 
2029
+ if (properties[SPLIT_DIRECTION_INDEX]) {
2030
+ writers.push(writeSplitDirection);
2031
+ }
2032
+
1984
2033
  const numWriters = writers.length;
1985
2034
  vafWriters = this._vaf.writers;
1986
2035
 
@@ -28,7 +28,7 @@ import ImageryProvider from "./ImageryProvider.js";
28
28
  * @property {string} [culture=''] The culture to use when requesting Bing Maps imagery. Not
29
29
  * all cultures are supported. See {@link http://msdn.microsoft.com/en-us/library/hh441729.aspx}
30
30
  * for information on the supported cultures.
31
- * @property {Ellipsoid} [ellipsoid] The ellipsoid. If not specified, the WGS84 ellipsoid is used.
31
+ * @property {Ellipsoid} [ellipsoid=Ellipsoid.default] The ellipsoid. If not specified, the default ellipsoid is used.
32
32
  * @property {TileDiscardPolicy} [tileDiscardPolicy] The policy that determines if a tile
33
33
  * is invalid and should be discarded. By default, a {@link DiscardEmptyTileImagePolicy}
34
34
  * will be used, with the expectation that the Bing Maps server will send a zero-length response for missing tiles.
@@ -120,7 +120,16 @@ function metadataSuccess(data, imageryProviderBuilder) {
120
120
  imageryProviderBuilder.maximumLevel = resource.zoomMax - 1;
121
121
  imageryProviderBuilder.imageUrlSubdomains = resource.imageUrlSubdomains;
122
122
  imageryProviderBuilder.imageUrlTemplate = resource.imageUrl;
123
- imageryProviderBuilder.attributionList = resource.imageryProviders;
123
+
124
+ let validProviders = resource.imageryProviders;
125
+ if (defined(resource.imageryProviders)) {
126
+ // prevent issues with the imagery API from crashing the viewer when the expected properties are not there
127
+ // See https://github.com/CesiumGS/cesium/issues/12088
128
+ validProviders = resource.imageryProviders.filter((provider) =>
129
+ provider.coverageAreas?.some((area) => defined(area.bbox))
130
+ );
131
+ }
132
+ imageryProviderBuilder.attributionList = validProviders;
124
133
  }
125
134
 
126
135
  function metadataFailure(metadataResource, error, provider) {
@@ -1436,7 +1436,7 @@ const scratchHpr = new HeadingPitchRoll();
1436
1436
  * Sets the camera position, orientation and transform.
1437
1437
  *
1438
1438
  * @param {object} options Object with the following properties:
1439
- * @param {Cartesian3|Rectangle} [options.destination] The final position of the camera in WGS84 (world) coordinates or a rectangle that would be visible from a top-down view.
1439
+ * @param {Cartesian3|Rectangle} [options.destination] The final position of the camera in world coordinates or a rectangle that would be visible from a top-down view.
1440
1440
  * @param {HeadingPitchRollValues|DirectionUp} [options.orientation] An object that contains either direction and up properties or heading, pitch and roll properties. By default, the direction will point
1441
1441
  * towards the center of the frame in 3D and in the negative z direction in Columbus view. The up direction will point towards local north in 3D and in the positive
1442
1442
  * y direction in Columbus view. Orientation is not used in 2D when in infinite scrolling mode.
@@ -2343,9 +2343,12 @@ Camera.prototype.lookAt = function (target, offset) {
2343
2343
  }
2344
2344
  //>>includeEnd('debug');
2345
2345
 
2346
+ const scene = this._scene;
2347
+ const ellipsoid = defaultValue(scene.ellipsoid, Ellipsoid.default);
2348
+
2346
2349
  const transform = Transforms.eastNorthUpToFixedFrame(
2347
2350
  target,
2348
- Ellipsoid.WGS84,
2351
+ ellipsoid,
2349
2352
  scratchLookAtMatrix4
2350
2353
  );
2351
2354
  this.lookAtTransform(transform, offset);
@@ -2841,7 +2844,7 @@ Camera.prototype.getRectangleCameraCoordinates = function (rectangle, result) {
2841
2844
 
2842
2845
  const pickEllipsoid3DRay = new Ray();
2843
2846
  function pickEllipsoid3D(camera, windowPosition, ellipsoid, result) {
2844
- ellipsoid = defaultValue(ellipsoid, Ellipsoid.WGS84);
2847
+ ellipsoid = defaultValue(ellipsoid, Ellipsoid.default);
2845
2848
  const ray = camera.getPickRay(windowPosition, pickEllipsoid3DRay);
2846
2849
  const intersection = IntersectionTests.rayEllipsoid(ray, ellipsoid);
2847
2850
  if (!intersection) {
@@ -2893,7 +2896,7 @@ function pickMapColumbusView(camera, windowPosition, projection, result) {
2893
2896
  * Pick an ellipsoid or map.
2894
2897
  *
2895
2898
  * @param {Cartesian2} windowPosition The x and y coordinates of a pixel.
2896
- * @param {Ellipsoid} [ellipsoid=Ellipsoid.WGS84] The ellipsoid to pick.
2899
+ * @param {Ellipsoid} [ellipsoid=Ellipsoid.default] The ellipsoid to pick.
2897
2900
  * @param {Cartesian3} [result] The object onto which to store the result.
2898
2901
  * @returns {Cartesian3 | undefined} If the ellipsoid or map was picked,
2899
2902
  * returns the point on the surface of the ellipsoid or map in world
@@ -2902,7 +2905,7 @@ function pickMapColumbusView(camera, windowPosition, projection, result) {
2902
2905
  * @example
2903
2906
  * const canvas = viewer.scene.canvas;
2904
2907
  * const center = new Cesium.Cartesian2(canvas.clientWidth / 2.0, canvas.clientHeight / 2.0);
2905
- * const ellipsoid = viewer.scene.globe.ellipsoid;
2908
+ * const ellipsoid = viewer.scene.ellipsoid;
2906
2909
  * const result = viewer.camera.pickEllipsoid(center, ellipsoid);
2907
2910
  */
2908
2911
  Camera.prototype.pickEllipsoid = function (windowPosition, ellipsoid, result) {
@@ -2921,7 +2924,7 @@ Camera.prototype.pickEllipsoid = function (windowPosition, ellipsoid, result) {
2921
2924
  result = new Cartesian3();
2922
2925
  }
2923
2926
 
2924
- ellipsoid = defaultValue(ellipsoid, Ellipsoid.WGS84);
2927
+ ellipsoid = defaultValue(ellipsoid, Ellipsoid.default);
2925
2928
 
2926
2929
  if (this._mode === SceneMode.SCENE3D) {
2927
2930
  result = pickEllipsoid3D(this, windowPosition, ellipsoid, result);
@@ -3316,7 +3319,7 @@ Camera.prototype.completeFlight = function () {
3316
3319
  * Flies the camera from its current position to a new position.
3317
3320
  *
3318
3321
  * @param {object} options Object with the following properties:
3319
- * @param {Cartesian3|Rectangle} options.destination The final position of the camera in WGS84 (world) coordinates or a rectangle that would be visible from a top-down view.
3322
+ * @param {Cartesian3|Rectangle} options.destination The final position of the camera in world coordinates or a rectangle that would be visible from a top-down view.
3320
3323
  * @param {object} [options.orientation] An object that contains either direction and up properties or heading, pitch and roll properties. By default, the direction will point
3321
3324
  * towards the center of the frame in 3D and in the negative z direction in Columbus view. The up direction will point towards local north in 3D and in the positive
3322
3325
  * y direction in Columbus view. Orientation is not used in 2D when in infinite scrolling mode.
@@ -3632,9 +3635,12 @@ Camera.prototype.flyToBoundingSphere = function (boundingSphere, options) {
3632
3635
  );
3633
3636
  }
3634
3637
 
3638
+ const scene = this._scene;
3639
+ const ellipsoid = defaultValue(scene.ellipsoid, Ellipsoid.default);
3640
+
3635
3641
  const transform = Transforms.eastNorthUpToFixedFrame(
3636
3642
  boundingSphere.center,
3637
- Ellipsoid.WGS84,
3643
+ ellipsoid,
3638
3644
  scratchflyToBoundingSphereTransform
3639
3645
  );
3640
3646
  Matrix4.multiplyByPoint(transform, position, position);
@@ -3814,13 +3820,13 @@ function addToResult(x, y, index, camera, ellipsoid, computedHorizonQuad) {
3814
3820
  /**
3815
3821
  * Computes the approximate visible rectangle on the ellipsoid.
3816
3822
  *
3817
- * @param {Ellipsoid} [ellipsoid=Ellipsoid.WGS84] The ellipsoid that you want to know the visible region.
3823
+ * @param {Ellipsoid} [ellipsoid=Ellipsoid.default] The ellipsoid that you want to know the visible region.
3818
3824
  * @param {Rectangle} [result] The rectangle in which to store the result
3819
3825
  *
3820
3826
  * @returns {Rectangle|undefined} The visible rectangle or undefined if the ellipsoid isn't visible at all.
3821
3827
  */
3822
3828
  Camera.prototype.computeViewRectangle = function (ellipsoid, result) {
3823
- ellipsoid = defaultValue(ellipsoid, Ellipsoid.WGS84);
3829
+ ellipsoid = defaultValue(ellipsoid, Ellipsoid.default);
3824
3830
  const cullingVolume = this.frustum.computeCullingVolume(
3825
3831
  this.positionWC,
3826
3832
  this.directionWC,
@@ -3568,7 +3568,7 @@ Cesium3DTileset.prototype.getHeight = function (cartographic, scene) {
3568
3568
  Check.typeOf.object("scene", scene);
3569
3569
  //>>includeEnd('debug');
3570
3570
 
3571
- let ellipsoid = scene.globe?.ellipsoid;
3571
+ let ellipsoid = scene.ellipsoid;
3572
3572
  if (!defined(ellipsoid)) {
3573
3573
  ellipsoid = Ellipsoid.WGS84;
3574
3574
  }
@@ -15,7 +15,7 @@ import Rectangle from "../Core/Rectangle.js";
15
15
  *
16
16
  * @param {object} options Object with the following properties:
17
17
  * @param {Cartesian3[]} options.positions A list of three or more Cartesian coordinates defining the outer ring of the clipping polygon.
18
- * @param {Ellipsoid} [options.ellipsoid=Ellipsoid.WGS84]
18
+ * @param {Ellipsoid} [options.ellipsoid=Ellipsoid.default]
19
19
  *
20
20
  * @example
21
21
  * const positions = Cesium.Cartesian3.fromRadiansArray([
@@ -46,7 +46,7 @@ function ClippingPolygon(options) {
46
46
  );
47
47
  //>>includeEnd('debug');
48
48
 
49
- this._ellipsoid = defaultValue(options.ellipsoid, Ellipsoid.WGS84);
49
+ this._ellipsoid = defaultValue(options.ellipsoid, Ellipsoid.default);
50
50
  this._positions = [...options.positions];
51
51
  }
52
52
 
@@ -737,7 +737,7 @@ const scratchRectangleIntersection = new Rectangle();
737
737
  * @private
738
738
  *
739
739
  * @param {object} tileBoundingVolume The volume to determine the intersection with the polygons.
740
- * @param {Ellipsoid} [ellipsoid=WGS84] The ellipsoid on which the bounding volumes are defined.
740
+ * @param {Ellipsoid} [ellipsoid=Ellipsoid.default] The ellipsoid on which the bounding volumes are defined.
741
741
  * @returns {Intersect} The intersection type: {@link Intersect.OUTSIDE} if the entire volume is not clipped, {@link Intersect.INSIDE}
742
742
  * if the entire volume should be clipped, and {@link Intersect.INTERSECTING} if the volume intersects the polygons and will partially clipped.
743
743
  */
@@ -163,112 +163,102 @@ function styleLightboxContainer(that) {
163
163
  }
164
164
  }
165
165
 
166
- function addStyle(selector, styles) {
167
- let style = `${selector} {`;
168
- for (const attribute in styles) {
169
- if (styles.hasOwnProperty(attribute)) {
170
- style += `${attribute}: ${styles[attribute]}; `;
171
- }
172
- }
173
- style += " }\n";
174
- return style;
175
- }
176
-
177
166
  function appendCss(container) {
178
- let style = "";
179
- style += addStyle(".cesium-credit-lightbox-overlay", {
180
- display: "none",
181
- "z-index": "1", //must be at least 1 to draw over top other Cesium widgets
182
- position: "absolute",
183
- top: "0",
184
- left: "0",
185
- width: "100%",
186
- height: "100%",
187
- "background-color": "rgba(80, 80, 80, 0.8)",
188
- });
189
-
190
- style += addStyle(".cesium-credit-lightbox", {
191
- "background-color": "#303336",
192
- color: textColor,
193
- position: "relative",
194
- "min-height": `${lightboxHeight}px`,
195
- margin: "auto",
196
- });
197
-
198
- style += addStyle(
199
- ".cesium-credit-lightbox > ul > li a, .cesium-credit-lightbox > ul > li a:visited",
200
- {
201
- color: textColor,
202
- }
203
- );
204
-
205
- style += addStyle(".cesium-credit-lightbox > ul > li a:hover", {
206
- color: highlightColor,
207
- });
208
-
209
- style += addStyle(".cesium-credit-lightbox.cesium-credit-lightbox-expanded", {
210
- border: "1px solid #444",
211
- "border-radius": "5px",
212
- "max-width": "370px",
213
- });
214
-
215
- style += addStyle(".cesium-credit-lightbox.cesium-credit-lightbox-mobile", {
216
- height: "100%",
217
- width: "100%",
218
- });
219
-
220
- style += addStyle(".cesium-credit-lightbox-title", {
221
- padding: "20px 20px 0 20px",
222
- });
223
-
224
- style += addStyle(".cesium-credit-lightbox-close", {
225
- "font-size": "18pt",
226
- cursor: "pointer",
227
- position: "absolute",
228
- top: "0",
229
- right: "6px",
230
- color: textColor,
231
- });
167
+ const style = /*css*/ `
168
+ .cesium-credit-lightbox-overlay {
169
+ display: none;
170
+ z-index: 1;
171
+ position: absolute;
172
+ top: 0;
173
+ left: 0;
174
+ width: 100%;
175
+ height: 100%;
176
+ background-color: rgba(80, 80, 80, 0.8);
177
+ }
232
178
 
233
- style += addStyle(".cesium-credit-lightbox-close:hover", {
234
- color: highlightColor,
235
- });
179
+ .cesium-credit-lightbox {
180
+ background-color: #303336;
181
+ color: ${textColor};
182
+ position: relative;
183
+ min-height: ${lightboxHeight}px;
184
+ margin: auto;
185
+ }
186
+ .cesium-credit-lightbox > ul > li a,
187
+ .cesium-credit-lightbox > ul > li a:visited,
188
+ .cesium-credit-wrapper a,
189
+ .cesium-credit-wrapper a:visited {
190
+ color: ${textColor};
191
+ }
192
+ .cesium-credit-lightbox > ul > li a:hover {
193
+ color: ${highlightColor};
194
+ }
195
+ .cesium-credit-lightbox.cesium-credit-lightbox-expanded {
196
+ border: 1px solid #444;
197
+ border-radius: 5px;
198
+ max-width: 370px;
199
+ }
200
+ .cesium-credit-lightbox.cesium-credit-lightbox-mobile {
201
+ height: 100%;
202
+ width: 100%;
203
+ }
204
+ .cesium-credit-lightbox-title {
205
+ padding: 20px 20px 0 20px;
206
+ }
207
+ .cesium-credit-lightbox-close {
208
+ font-size: 18pt;
209
+ cursor: pointer;
210
+ position: absolute;
211
+ top: 0;
212
+ right: 6px;
213
+ color: ${textColor};
214
+ }
215
+ .cesium-credit-lightbox-close:hover {
216
+ color: ${highlightColor};
217
+ }
218
+ .cesium-credit-lightbox > ul {
219
+ margin: 0;
220
+ padding: 12px 20px 12px 40px;
221
+ font-size: 13px;
222
+ }
223
+ .cesium-credit-lightbox > ul > li {
224
+ padding-bottom: 6px;
225
+ }
226
+ .cesium-credit-lightbox > ul > li * {
227
+ padding: 0;
228
+ margin: 0;
229
+ }
236
230
 
237
- style += addStyle(".cesium-credit-lightbox > ul", {
238
- margin: "0",
239
- padding: "12px 20px 12px 40px",
240
- "font-size": "13px",
241
- });
231
+ .cesium-credit-expand-link {
232
+ padding-left: 5px;
233
+ cursor: pointer;
234
+ text-decoration: underline;
235
+ color: ${textColor};
236
+ }
237
+ .cesium-credit-expand-link:hover {
238
+ color: ${highlightColor};
239
+ }
242
240
 
243
- style += addStyle(".cesium-credit-lightbox > ul > li", {
244
- "padding-bottom": "6px",
245
- });
241
+ .cesium-credit-text {
242
+ color: ${textColor};
243
+ }
246
244
 
247
- style += addStyle(".cesium-credit-lightbox > ul > li *", {
248
- padding: "0",
249
- margin: "0",
250
- });
245
+ .cesium-credit-delimiter {
246
+ padding: 0 5px;
247
+ }
251
248
 
252
- style += addStyle(".cesium-credit-expand-link", {
253
- "padding-left": "5px",
254
- cursor: "pointer",
255
- "text-decoration": "underline",
256
- color: textColor,
257
- });
258
- style += addStyle(".cesium-credit-expand-link:hover", {
259
- color: highlightColor,
260
- });
249
+ .cesium-credit-textContainer *,
250
+ .cesium-credit-logoContainer * {
251
+ display: inline;
252
+ }
261
253
 
262
- style += addStyle(".cesium-credit-text", {
263
- color: textColor,
264
- });
254
+ .cesium-credit-textContainer a:hover {
255
+ color: ${highlightColor}
256
+ }
265
257
 
266
- style += addStyle(
267
- ".cesium-credit-textContainer *, .cesium-credit-logoContainer *",
268
- {
269
- display: "inline",
270
- }
271
- );
258
+ .cesium-credit-textContainer .cesium-credit-wrapper:first-of-type {
259
+ padding-left: 5px;
260
+ }
261
+ `;
272
262
 
273
263
  function getShadowRoot(container) {
274
264
  if (container.shadowRoot) {
@@ -287,16 +277,16 @@ function appendCss(container) {
287
277
  getShadowRoot(container),
288
278
  document.head
289
279
  );
290
- const css = document.createElement("style");
291
- css.innerHTML = style;
292
- shadowRootOrDocumentHead.appendChild(css);
280
+ const styleElem = document.createElement("style");
281
+ styleElem.innerHTML = style;
282
+ shadowRootOrDocumentHead.appendChild(styleElem);
293
283
  }
294
284
 
295
285
  /**
296
286
  * The credit display is responsible for displaying credits on screen.
297
287
  *
298
288
  * @param {HTMLElement} container The HTML element where credits will be displayed
299
- * @param {string} [delimiter= ' '] The string to separate text credits
289
+ * @param {string} [delimiter= '•'] The string to separate text credits
300
290
  * @param {HTMLElement} [viewport=document.body] The HTML element that will contain the credits popup
301
291
  *
302
292
  * @alias CreditDisplay
@@ -369,7 +359,7 @@ function CreditDisplay(container, delimiter, viewport) {
369
359
  appendCss(container);
370
360
  const cesiumCredit = Credit.clone(CreditDisplay.cesiumCredit);
371
361
 
372
- this._delimiter = defaultValue(delimiter, " ");
362
+ this._delimiter = defaultValue(delimiter, "•");
373
363
  this._screenContainer = screenContainer;
374
364
  this._cesiumCreditContainer = cesiumCreditContainer;
375
365
  this._lastViewportHeight = undefined;
@@ -634,7 +624,7 @@ function getDefaultCredit() {
634
624
  }
635
625
 
636
626
  defaultCredit = new Credit(
637
- `<a href="https://cesium.com/" target="_blank"><img src="${logo}" title="Cesium ion"/></a>`,
627
+ `<a href="https://cesium.com/" target="_blank"><img src="${logo}" style="vertical-align: -7px" title="Cesium ion"/></a>`,
638
628
  true
639
629
  );
640
630
  }