@cesium/engine 26.2.0 → 26.3.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 (366) hide show
  1. package/Build/ThirdParty/Workers/zip-web-worker.js +656 -518
  2. package/Build/Workers/{chunk-FU4BGABC.js → chunk-2DKJSPYF.js} +14 -14
  3. package/Build/Workers/{chunk-NCL22ZUX.js → chunk-2PWVICP6.js} +1 -1
  4. package/Build/Workers/{chunk-ILME5BXA.js → chunk-2YY724ZX.js} +8 -8
  5. package/Build/Workers/{chunk-IJZJMIUY.js → chunk-4DMAXPKB.js} +11 -11
  6. package/Build/Workers/{chunk-IMBVP57H.js → chunk-4LRFYRBX.js} +2 -2
  7. package/Build/Workers/{chunk-76FDC45O.js → chunk-5JCZHJUU.js} +13 -13
  8. package/Build/Workers/{chunk-5LSOO2KD.js → chunk-5KG7KDDW.js} +7 -7
  9. package/Build/Workers/{chunk-UAZUP4I5.js → chunk-6BSNYZZG.js} +5 -5
  10. package/Build/Workers/{chunk-D6AY775A.js → chunk-6R6SGKYN.js} +6 -6
  11. package/Build/Workers/{chunk-3PSS3T43.js → chunk-6V2KDEHL.js} +4 -4
  12. package/Build/Workers/{chunk-GHXVQVUM.js → chunk-75BC2IHI.js} +7 -7
  13. package/Build/Workers/{chunk-SMTGMFBL.js → chunk-7SESBH2I.js} +4 -4
  14. package/Build/Workers/{chunk-NEFDMMLY.js → chunk-7WXBTNRV.js} +8 -8
  15. package/Build/Workers/{chunk-NXGQBQWE.js → chunk-A7SMPV6B.js} +12 -12
  16. package/Build/Workers/{chunk-O3XFXGPZ.js → chunk-ATSXKJ3L.js} +7 -7
  17. package/Build/Workers/{chunk-AHWAZRBV.js → chunk-B4AVL7VI.js} +1 -1
  18. package/Build/Workers/{chunk-OZGPS7FB.js → chunk-B7Q2WF6Q.js} +4 -4
  19. package/Build/Workers/{chunk-2RGJPWQX.js → chunk-BNDSDQ7D.js} +9 -9
  20. package/Build/Workers/{chunk-2Z4ZLVOD.js → chunk-CKK6CUXK.js} +6 -6
  21. package/Build/Workers/{chunk-FCP2QY4G.js → chunk-COKOYTRS.js} +5 -5
  22. package/Build/Workers/{chunk-6FZDPMTO.js → chunk-CQ4TZXAT.js} +6 -6
  23. package/Build/Workers/{chunk-HDL4HOXZ.js → chunk-DKSANM4A.js} +12 -12
  24. package/Build/Workers/{chunk-XCBZVTIV.js → chunk-DZK34ZVD.js} +1 -1
  25. package/Build/Workers/{chunk-N7CCOFLX.js → chunk-E7G32DWL.js} +1 -1
  26. package/Build/Workers/{chunk-XDWCTQCZ.js → chunk-EDETO6NY.js} +2 -2
  27. package/Build/Workers/{chunk-NSKZ6SBK.js → chunk-F34TJJLA.js} +14 -14
  28. package/Build/Workers/{chunk-GXWQZBAI.js → chunk-GLHDTTTO.js} +2 -2
  29. package/Build/Workers/{chunk-SJYSIOEM.js → chunk-GS7RY2DH.js} +11 -11
  30. package/Build/Workers/{chunk-5YPQBFRD.js → chunk-HDD3RFLT.js} +3 -3
  31. package/Build/Workers/{chunk-36NI5E6W.js → chunk-HDPNFEPP.js} +18 -18
  32. package/Build/Workers/{chunk-DSGLDRTI.js → chunk-JBJ6BRIM.js} +4 -4
  33. package/Build/Workers/{chunk-DZUFEE4L.js → chunk-JKTWW7IO.js} +5 -5
  34. package/Build/Workers/{chunk-O3DKEX7Q.js → chunk-JL4NWWQY.js} +5 -5
  35. package/Build/Workers/{chunk-I74ZH5LK.js → chunk-JMUUAW4X.js} +10 -10
  36. package/Build/Workers/{chunk-SXSP3JHS.js → chunk-KBGAHN5R.js} +1 -1
  37. package/Build/Workers/{chunk-GVA7XQI2.js → chunk-KEWK6VZL.js} +12 -12
  38. package/Build/Workers/{chunk-EOWDZN5S.js → chunk-L73K5UPP.js} +10 -10
  39. package/Build/Workers/{chunk-J73T2VOY.js → chunk-LL2SGJYH.js} +6 -6
  40. package/Build/Workers/{chunk-QFSSCLLZ.js → chunk-LYJUL4XQ.js} +6 -6
  41. package/Build/Workers/{chunk-MAAHFYPC.js → chunk-M6W46OAP.js} +7 -7
  42. package/Build/Workers/{chunk-FX3VEAIU.js → chunk-MDDKCLMF.js} +16 -16
  43. package/Build/Workers/{chunk-M6QKXVAU.js → chunk-MUW4DJV7.js} +17 -17
  44. package/Build/Workers/{chunk-EZGQPOIG.js → chunk-N5YK44FS.js} +5 -5
  45. package/Build/Workers/{chunk-27FWRTJI.js → chunk-NZQUP52G.js} +9 -9
  46. package/Build/Workers/{chunk-A62YI6S6.js → chunk-PKZA44LH.js} +4 -4
  47. package/Build/Workers/{chunk-7MM3N2VE.js → chunk-Q2JS5LCB.js} +17 -17
  48. package/Build/Workers/{chunk-KGXSYGBG.js → chunk-QTAEVUED.js} +13 -13
  49. package/Build/Workers/{chunk-KP5QD7WU.js → chunk-SEJIXZZ4.js} +10 -10
  50. package/Build/Workers/{chunk-PRWUMCXF.js → chunk-SL2HCFYW.js} +10 -10
  51. package/Build/Workers/{chunk-NJVBJG63.js → chunk-SLHK3KAR.js} +5 -5
  52. package/Build/Workers/{chunk-JKXV6PG5.js → chunk-UZY5XRL2.js} +1 -1
  53. package/Build/Workers/{chunk-LDRQSYBN.js → chunk-VRECSMG3.js} +2 -2
  54. package/Build/Workers/{chunk-NLLCQBX3.js → chunk-X27HKF5E.js} +2 -2
  55. package/Build/Workers/{chunk-B3QHNA4A.js → chunk-XBY3354M.js} +6 -6
  56. package/Build/Workers/{chunk-CRCGE4J4.js → chunk-XRZCS3HE.js} +8 -8
  57. package/Build/Workers/{chunk-XLQZNQ4Z.js → chunk-XSIUYAT6.js} +2 -2
  58. package/Build/Workers/{chunk-SA2A2AN5.js → chunk-Z2DW5NM2.js} +4 -4
  59. package/Build/Workers/combineGeometry.js +24 -24
  60. package/Build/Workers/createBoxGeometry.js +18 -18
  61. package/Build/Workers/createBoxOutlineGeometry.js +16 -16
  62. package/Build/Workers/createCircleGeometry.js +26 -26
  63. package/Build/Workers/createCircleOutlineGeometry.js +19 -19
  64. package/Build/Workers/createCoplanarPolygonGeometry.js +33 -33
  65. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +31 -31
  66. package/Build/Workers/createCorridorGeometry.js +29 -29
  67. package/Build/Workers/createCorridorOutlineGeometry.js +28 -28
  68. package/Build/Workers/createCylinderGeometry.js +20 -20
  69. package/Build/Workers/createCylinderOutlineGeometry.js +18 -18
  70. package/Build/Workers/createEllipseGeometry.js +26 -26
  71. package/Build/Workers/createEllipseOutlineGeometry.js +19 -19
  72. package/Build/Workers/createEllipsoidGeometry.js +19 -19
  73. package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -18
  74. package/Build/Workers/createFrustumGeometry.js +18 -18
  75. package/Build/Workers/createFrustumOutlineGeometry.js +18 -18
  76. package/Build/Workers/createGeometry.js +24 -24
  77. package/Build/Workers/createGroundPolylineGeometry.js +22 -22
  78. package/Build/Workers/createPlaneGeometry.js +16 -16
  79. package/Build/Workers/createPlaneOutlineGeometry.js +15 -15
  80. package/Build/Workers/createPolygonGeometry.js +32 -32
  81. package/Build/Workers/createPolygonOutlineGeometry.js +30 -30
  82. package/Build/Workers/createPolylineGeometry.js +25 -25
  83. package/Build/Workers/createPolylineVolumeGeometry.js +31 -31
  84. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +27 -27
  85. package/Build/Workers/createRectangleGeometry.js +27 -27
  86. package/Build/Workers/createRectangleOutlineGeometry.js +20 -20
  87. package/Build/Workers/createSimplePolylineGeometry.js +23 -23
  88. package/Build/Workers/createSphereGeometry.js +19 -19
  89. package/Build/Workers/createSphereOutlineGeometry.js +18 -18
  90. package/Build/Workers/createTaskProcessorWorker.js +3 -3
  91. package/Build/Workers/createVectorTileClampedPolylines.js +14 -14
  92. package/Build/Workers/createVectorTileGeometries.js +24 -24
  93. package/Build/Workers/createVectorTilePoints.js +13 -13
  94. package/Build/Workers/createVectorTilePolygons.js +22 -22
  95. package/Build/Workers/createVectorTilePolylines.js +14 -14
  96. package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +25 -25
  97. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +22 -22
  98. package/Build/Workers/createVerticesFromHeightmap.js +22 -22
  99. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +20 -20
  100. package/Build/Workers/createWallGeometry.js +24 -24
  101. package/Build/Workers/createWallOutlineGeometry.js +23 -23
  102. package/Build/Workers/decodeDraco.js +10 -10
  103. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
  104. package/Build/Workers/decodeI3S.js +10 -10
  105. package/Build/Workers/gaussianSplatSorter.js +4 -4
  106. package/Build/Workers/gaussianSplatTextureGenerator.js +4 -4
  107. package/Build/Workers/incrementallyBuildTerrainPicker.js +10 -10
  108. package/Build/Workers/transcodeKTX2.js +6 -6
  109. package/Build/Workers/transferTypedArrayTest.js +1 -1
  110. package/Build/Workers/upsampleQuantizedTerrainMesh.js +22 -22
  111. package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +25 -25
  112. package/Source/Core/Ion.js +1 -1
  113. package/Source/Core/IonResource.js +5 -0
  114. package/Source/Core/IonSnapGeometryType.js +59 -0
  115. package/Source/Core/IonSnapHeat.js +33 -0
  116. package/Source/Core/IonSnapMode.js +45 -0
  117. package/Source/Core/IonSnapParentGeometryType.js +52 -0
  118. package/Source/Core/IonSnapService.js +369 -0
  119. package/Source/Core/SnapService.js +63 -0
  120. package/Source/Core/VectorPipeline.js +139 -45
  121. package/Source/Core/VectorProvider.js +311 -71
  122. package/Source/Renderer/AutomaticUniforms.js +44 -2
  123. package/Source/Renderer/ShaderBuilder.js +1 -1
  124. package/Source/Renderer/UniformState.js +47 -1
  125. package/Source/Scene/ArcGisMapService.js +1 -1
  126. package/Source/Scene/BufferPointCollection.js +4 -7
  127. package/Source/Scene/BufferPolygonCollection.js +56 -27
  128. package/Source/Scene/BufferPolylineCollection.js +61 -8
  129. package/Source/Scene/BufferPolylineMaterial.js +6 -5
  130. package/Source/Scene/BufferPrimitiveCollection.js +199 -29
  131. package/Source/Scene/Cesium3DTile.js +12 -0
  132. package/Source/Scene/Cesium3DTileset.js +61 -8
  133. package/Source/Scene/Cesium3DTilesetBaseTraversal.js +15 -3
  134. package/Source/Scene/Cesium3DTilesetCache.js +15 -0
  135. package/Source/Scene/ClippingPolygon.js +154 -100
  136. package/Source/Scene/ClippingPolygonCollection.js +352 -694
  137. package/Source/Scene/CreditDisplay.js +62 -0
  138. package/Source/Scene/GeoJsonPrimitive.js +114 -24
  139. package/Source/Scene/GlobeSurfaceShaderSet.js +33 -54
  140. package/Source/Scene/GlobeSurfaceTile.js +14 -1
  141. package/Source/Scene/GlobeSurfaceTileProvider.js +232 -25
  142. package/Source/Scene/GltfLoader.js +56 -6
  143. package/Source/Scene/HeightReference.js +1 -1
  144. package/Source/Scene/MVTDataProvider.js +9 -0
  145. package/Source/Scene/Model/Model.js +242 -16
  146. package/Source/Scene/Model/Model3DTileContent.js +5 -0
  147. package/Source/Scene/Model/ModelClippingPolygonsPipelineStage.js +54 -19
  148. package/Source/Scene/Model/ModelRenderResources.js +2 -3
  149. package/Source/Scene/Model/ModelSceneGraph.js +10 -1
  150. package/Source/Scene/Model/ModelVectorLookupPipelineStage.js +205 -0
  151. package/Source/Scene/Model/PickingPipelineStage.js +4 -0
  152. package/Source/Scene/PostProcessStage.js +22 -3
  153. package/Source/Scene/Scene.js +56 -1
  154. package/Source/Scene/Snapping.js +57 -0
  155. package/Source/Scene/UrlTemplate3DTilesDataProvider.js +12 -1
  156. package/Source/Scene/VectorGltf3DTileContent.js +10 -2
  157. package/Source/Scene/WebMapServiceImageryProvider.js +5 -1
  158. package/Source/Scene/WebMapTileServiceImageryProvider.js +6 -1
  159. package/Source/Scene/renderBufferPolylineCollection.js +5 -1
  160. package/Source/Shaders/BufferPolylineMaterialVS.glsl +14 -2
  161. package/Source/Shaders/BufferPolylineMaterialVS.js +14 -2
  162. package/Source/Shaders/Builtin/CzmBuiltins.js +2 -4
  163. package/Source/Shaders/Builtin/Functions/eyeToCartographicDelta.glsl +74 -0
  164. package/Source/Shaders/Builtin/Functions/eyeToCartographicDelta.js +76 -0
  165. package/Source/Shaders/GlobeFS.glsl +10 -9
  166. package/Source/Shaders/GlobeFS.js +11 -9
  167. package/Source/Shaders/GlobeVS.glsl +0 -32
  168. package/Source/Shaders/GlobeVS.js +0 -32
  169. package/Source/Shaders/Model/ModelClippingPolygonsStageFS.glsl +15 -3
  170. package/Source/Shaders/Model/ModelClippingPolygonsStageFS.js +15 -3
  171. package/Source/Shaders/Model/ModelClippingPolygonsStageVS.glsl +20 -24
  172. package/Source/Shaders/Model/ModelClippingPolygonsStageVS.js +20 -24
  173. package/Source/Shaders/Model/ModelFS.glsl +4 -0
  174. package/Source/Shaders/Model/ModelFS.js +4 -0
  175. package/Source/Shaders/Model/ModelVS.glsl +7 -2
  176. package/Source/Shaders/Model/ModelVS.js +7 -2
  177. package/Source/Shaders/Model/ModelVectorLookupStageFS.glsl +6 -0
  178. package/Source/Shaders/Model/ModelVectorLookupStageFS.js +8 -0
  179. package/Source/Shaders/Model/ModelVectorLookupStageVS.glsl +15 -0
  180. package/Source/Shaders/Model/ModelVectorLookupStageVS.js +17 -0
  181. package/Source/Shaders/Model/VerticalExaggerationStageVS.glsl +9 -10
  182. package/Source/Shaders/Model/VerticalExaggerationStageVS.js +9 -11
  183. package/Source/Shaders/VectorCommon.glsl +177 -50
  184. package/Source/Shaders/VectorCommon.js +251 -19
  185. package/Source/ThirdParty/Workers/zip-web-worker.js +1 -1
  186. package/index.d.ts +556 -55
  187. package/index.js +20 -13
  188. package/package.json +6 -6
  189. package/Build/Workers/chunk-2EFYUSUY.js +0 -1483
  190. package/Build/Workers/chunk-2H5264K7.js +0 -1284
  191. package/Build/Workers/chunk-2H73KDBM.js +0 -511
  192. package/Build/Workers/chunk-2ZKH2QZB.js +0 -387
  193. package/Build/Workers/chunk-37SW7SYS.js +0 -778
  194. package/Build/Workers/chunk-3GHVJ3SO.js +0 -455
  195. package/Build/Workers/chunk-3LB4UVPU.js +0 -387
  196. package/Build/Workers/chunk-3PONLKEL.js +0 -778
  197. package/Build/Workers/chunk-3QR662HH.js +0 -3820
  198. package/Build/Workers/chunk-3SX2WYSO.js +0 -973
  199. package/Build/Workers/chunk-3UDN6LYX.js +0 -476
  200. package/Build/Workers/chunk-47MCBSXI.js +0 -9237
  201. package/Build/Workers/chunk-4E626OCE.js +0 -1067
  202. package/Build/Workers/chunk-4NW2MJKH.js +0 -455
  203. package/Build/Workers/chunk-52YK5BSN.js +0 -198
  204. package/Build/Workers/chunk-5RNAQZK6.js +0 -9234
  205. package/Build/Workers/chunk-6FHT43QR.js +0 -140
  206. package/Build/Workers/chunk-6HK6IXK2.js +0 -138
  207. package/Build/Workers/chunk-6R5X2GUA.js +0 -1284
  208. package/Build/Workers/chunk-6YR6JBMY.js +0 -163
  209. package/Build/Workers/chunk-7A2OGDHT.js +0 -305
  210. package/Build/Workers/chunk-7CGEQUM2.js +0 -305
  211. package/Build/Workers/chunk-7D2HZKH7.js +0 -455
  212. package/Build/Workers/chunk-7I325HV6.js +0 -1344
  213. package/Build/Workers/chunk-7KVKHY7O.js +0 -147
  214. package/Build/Workers/chunk-7TKLTCZW.js +0 -219
  215. package/Build/Workers/chunk-7UUKBDH6.js +0 -1054
  216. package/Build/Workers/chunk-7W6DUHAB.js +0 -693
  217. package/Build/Workers/chunk-7XM5JK5F.js +0 -162
  218. package/Build/Workers/chunk-7YG3ND3P.js +0 -454
  219. package/Build/Workers/chunk-A3O6EDBK.js +0 -73
  220. package/Build/Workers/chunk-A6X24AZI.js +0 -1992
  221. package/Build/Workers/chunk-A7TTWVTF.js +0 -2719
  222. package/Build/Workers/chunk-ACTVJHSP.js +0 -519
  223. package/Build/Workers/chunk-ADX3CBKD.js +0 -9234
  224. package/Build/Workers/chunk-AF7DTMJ7.js +0 -398
  225. package/Build/Workers/chunk-AJSFRY4U.js +0 -1344
  226. package/Build/Workers/chunk-ARZICEEP.js +0 -301
  227. package/Build/Workers/chunk-B4CQSLZJ.js +0 -305
  228. package/Build/Workers/chunk-BKPQFCXH.js +0 -511
  229. package/Build/Workers/chunk-BSPCI2LO.js +0 -959
  230. package/Build/Workers/chunk-BUJWSX5S.js +0 -301
  231. package/Build/Workers/chunk-C7JQVRLM.js +0 -497
  232. package/Build/Workers/chunk-C7QDUNI3.js +0 -138
  233. package/Build/Workers/chunk-CDJDJ5LK.js +0 -44
  234. package/Build/Workers/chunk-CEEZE3YZ.js +0 -476
  235. package/Build/Workers/chunk-CIV5DJOQ.js +0 -778
  236. package/Build/Workers/chunk-CLCTQVVL.js +0 -241
  237. package/Build/Workers/chunk-CQNFIAZU.js +0 -56
  238. package/Build/Workers/chunk-CUTRKXUQ.js +0 -288
  239. package/Build/Workers/chunk-DBD5WWG2.js +0 -959
  240. package/Build/Workers/chunk-DIGUUD6G.js +0 -171
  241. package/Build/Workers/chunk-DZBQUULR.js +0 -138
  242. package/Build/Workers/chunk-E2NKV5YT.js +0 -3820
  243. package/Build/Workers/chunk-E7NZJOK7.js +0 -3792
  244. package/Build/Workers/chunk-EB3Y5P3A.js +0 -368
  245. package/Build/Workers/chunk-EHTS2YPT.js +0 -2719
  246. package/Build/Workers/chunk-ELE6SC2C.js +0 -837
  247. package/Build/Workers/chunk-ENNFMWDW.js +0 -789
  248. package/Build/Workers/chunk-ERKUET22.js +0 -3201
  249. package/Build/Workers/chunk-F2IMBMZY.js +0 -241
  250. package/Build/Workers/chunk-F4CSNRZO.js +0 -219
  251. package/Build/Workers/chunk-FBP4DUQJ.js +0 -693
  252. package/Build/Workers/chunk-FDK4K5IA.js +0 -280
  253. package/Build/Workers/chunk-FGQFQHN5.js +0 -1054
  254. package/Build/Workers/chunk-FJWZMGOQ.js +0 -1992
  255. package/Build/Workers/chunk-FQ42MT7M.js +0 -58
  256. package/Build/Workers/chunk-GGNWQWSB.js +0 -301
  257. package/Build/Workers/chunk-GNKXEN4C.js +0 -682
  258. package/Build/Workers/chunk-GSWMAFTE.js +0 -9230
  259. package/Build/Workers/chunk-GXDHRC4J.js +0 -1344
  260. package/Build/Workers/chunk-GYSYP6PC.js +0 -1067
  261. package/Build/Workers/chunk-H2WCFXLP.js +0 -241
  262. package/Build/Workers/chunk-HHV3MCGV.js +0 -162
  263. package/Build/Workers/chunk-HLW2ZRVK.js +0 -368
  264. package/Build/Workers/chunk-HS6AD4P2.js +0 -398
  265. package/Build/Workers/chunk-HT6FASOT.js +0 -973
  266. package/Build/Workers/chunk-IDVHUDZT.js +0 -352
  267. package/Build/Workers/chunk-IGAZBTFZ.js +0 -3201
  268. package/Build/Workers/chunk-IOO7Z2AV.js +0 -57
  269. package/Build/Workers/chunk-IUIFLOYO.js +0 -44
  270. package/Build/Workers/chunk-JALGQYDY.js +0 -288
  271. package/Build/Workers/chunk-JW6OZT4R.js +0 -288
  272. package/Build/Workers/chunk-JXYLJCTC.js +0 -124
  273. package/Build/Workers/chunk-K27QOAW6.js +0 -97
  274. package/Build/Workers/chunk-KMV25A63.js +0 -789
  275. package/Build/Workers/chunk-KZWFWJML.js +0 -2719
  276. package/Build/Workers/chunk-LCXRRALY.js +0 -387
  277. package/Build/Workers/chunk-LD64RPYV.js +0 -368
  278. package/Build/Workers/chunk-LGNDTZVX.js +0 -97
  279. package/Build/Workers/chunk-LNSQVXFH.js +0 -1800
  280. package/Build/Workers/chunk-M4JZ6TSZ.js +0 -959
  281. package/Build/Workers/chunk-MCJDRDJQ.js +0 -102
  282. package/Build/Workers/chunk-MEENMEAH.js +0 -198
  283. package/Build/Workers/chunk-NAWU5RF4.js +0 -162
  284. package/Build/Workers/chunk-NIWITKQK.js +0 -693
  285. package/Build/Workers/chunk-OA6MYL2C.js +0 -837
  286. package/Build/Workers/chunk-OBEU25PI.js +0 -1067
  287. package/Build/Workers/chunk-OHP4ELS7.js +0 -198
  288. package/Build/Workers/chunk-PCL3Y7H5.js +0 -82
  289. package/Build/Workers/chunk-PD4GK4EM.js +0 -57
  290. package/Build/Workers/chunk-PEDU33QG.js +0 -2342
  291. package/Build/Workers/chunk-PVTSNNVI.js +0 -288
  292. package/Build/Workers/chunk-QHPZH22L.js +0 -241
  293. package/Build/Workers/chunk-QIZDWZK6.js +0 -301
  294. package/Build/Workers/chunk-QV6DG2YX.js +0 -1483
  295. package/Build/Workers/chunk-QVLAFFJY.js +0 -56
  296. package/Build/Workers/chunk-R4FPNAZ2.js +0 -352
  297. package/Build/Workers/chunk-R4K7EHOU.js +0 -171
  298. package/Build/Workers/chunk-R7JGHDD6.js +0 -789
  299. package/Build/Workers/chunk-RASQEYD4.js +0 -1483
  300. package/Build/Workers/chunk-RG4F5R57.js +0 -454
  301. package/Build/Workers/chunk-RW6ITX7Q.js +0 -3820
  302. package/Build/Workers/chunk-RYSQVJR6.js +0 -398
  303. package/Build/Workers/chunk-S6RJU5NM.js +0 -1054
  304. package/Build/Workers/chunk-SDFHDNS4.js +0 -147
  305. package/Build/Workers/chunk-SF6K72D7.js +0 -124
  306. package/Build/Workers/chunk-SGRGNDOD.js +0 -682
  307. package/Build/Workers/chunk-SM2CDCYF.js +0 -198
  308. package/Build/Workers/chunk-SS5ABQGY.js +0 -102
  309. package/Build/Workers/chunk-T5QBPLE3.js +0 -414
  310. package/Build/Workers/chunk-TN35HP5B.js +0 -1067
  311. package/Build/Workers/chunk-TNWKJNUZ.js +0 -454
  312. package/Build/Workers/chunk-TOAF47AQ.js +0 -102
  313. package/Build/Workers/chunk-TQ4QCOXT.js +0 -2719
  314. package/Build/Workers/chunk-TSDSILQB.js +0 -124
  315. package/Build/Workers/chunk-TVZD72WJ.js +0 -778
  316. package/Build/Workers/chunk-U5LV3F3Z.js +0 -1054
  317. package/Build/Workers/chunk-UEY73NRN.js +0 -38
  318. package/Build/Workers/chunk-UF46SZEZ.js +0 -789
  319. package/Build/Workers/chunk-UNRTMCET.js +0 -398
  320. package/Build/Workers/chunk-UTB7U3O6.js +0 -1992
  321. package/Build/Workers/chunk-UVO6COT2.js +0 -352
  322. package/Build/Workers/chunk-V46YGZE6.js +0 -352
  323. package/Build/Workers/chunk-VAL7DYNR.js +0 -278
  324. package/Build/Workers/chunk-VDGOCROW.js +0 -57
  325. package/Build/Workers/chunk-VFWSSBPT.js +0 -511
  326. package/Build/Workers/chunk-VVYMXI3I.js +0 -1284
  327. package/Build/Workers/chunk-VXWHPYQM.js +0 -837
  328. package/Build/Workers/chunk-VXYUBRSB.js +0 -219
  329. package/Build/Workers/chunk-VZLDLEWI.js +0 -387
  330. package/Build/Workers/chunk-W5OCKMPJ.js +0 -101
  331. package/Build/Workers/chunk-WBSY7HDY.js +0 -837
  332. package/Build/Workers/chunk-WN3F4CVG.js +0 -3201
  333. package/Build/Workers/chunk-WPRUWXGV.js +0 -693
  334. package/Build/Workers/chunk-WTO2ERBP.js +0 -414
  335. package/Build/Workers/chunk-WVHMDVG4.js +0 -959
  336. package/Build/Workers/chunk-XGA23TAX.js +0 -73
  337. package/Build/Workers/chunk-XLXSDIP5.js +0 -973
  338. package/Build/Workers/chunk-XQ3SKCMM.js +0 -140
  339. package/Build/Workers/chunk-XQH66YJC.js +0 -147
  340. package/Build/Workers/chunk-XTA7BXJG.js +0 -682
  341. package/Build/Workers/chunk-XTIDAFRS.js +0 -476
  342. package/Build/Workers/chunk-XUEDWBUD.js +0 -682
  343. package/Build/Workers/chunk-XYFLRH3H.js +0 -124
  344. package/Build/Workers/chunk-Y7JRTRTO.js +0 -305
  345. package/Build/Workers/chunk-Y7QSMDCJ.js +0 -352
  346. package/Build/Workers/chunk-YCB5TYTR.js +0 -1483
  347. package/Build/Workers/chunk-YEYOSTJX.js +0 -219
  348. package/Build/Workers/chunk-YGFVAGYF.js +0 -630
  349. package/Build/Workers/chunk-YIIACKQO.js +0 -368
  350. package/Build/Workers/chunk-YJGSP6PE.js +0 -511
  351. package/Build/Workers/chunk-YKU2Q3A2.js +0 -1287
  352. package/Build/Workers/chunk-Z4LR5EHE.js +0 -454
  353. package/Build/Workers/chunk-Z66EVE2A.js +0 -44
  354. package/Build/Workers/chunk-ZHIHHHTB.js +0 -414
  355. package/Build/Workers/chunk-ZMBHFYOX.js +0 -1344
  356. package/Build/Workers/chunk-ZNWHFSLE.js +0 -171
  357. package/Build/Workers/chunk-ZQLZG4IN.js +0 -2342
  358. package/Build/Workers/chunk-ZRTSMUZ2.js +0 -414
  359. package/Build/Workers/chunk-ZSGUV73H.js +0 -2342
  360. package/Build/Workers/chunk-ZZUVT5BM.js +0 -476
  361. package/Source/Shaders/Builtin/Functions/clipPolygons.glsl +0 -37
  362. package/Source/Shaders/Builtin/Functions/clipPolygons.js +0 -39
  363. package/Source/Shaders/Builtin/Functions/unpackClippingExtents.glsl +0 -14
  364. package/Source/Shaders/Builtin/Functions/unpackClippingExtents.js +0 -15
  365. package/Source/Shaders/PolygonSignedDistanceFS.glsl +0 -131
  366. package/Source/Shaders/PolygonSignedDistanceFS.js +0 -132
@@ -162,8 +162,10 @@ function UniformState() {
162
162
  this._frustum2DWidth = 0.0;
163
163
  this._eyeHeight = 0.0;
164
164
  this._eyeHeight2D = new Cartesian2();
165
+ this._eyeCartographic = new Cartesian3();
165
166
  this._eyeEllipsoidNormalEC = new Cartesian3();
166
167
  this._eyeEllipsoidCurvature = new Cartesian2();
168
+ this._eyeToEnu = new Matrix3();
167
169
  this._modelToEnu = new Matrix4();
168
170
  this._enuToModel = new Matrix4();
169
171
  this._pixelRatio = 1.0;
@@ -715,6 +717,19 @@ Object.defineProperties(UniformState.prototype, {
715
717
  },
716
718
  },
717
719
 
720
+ /**
721
+ * The geodetic longitude (<code>x</code>), latitude (<code>y</code>) in radians and
722
+ * height (<code>z</code>) in meters of the eye (camera).
723
+ * This is only valid when the {@link SceneMode} is <code>SCENE3D</code>.
724
+ * @memberof UniformState.prototype
725
+ * @type {Cartesian3}
726
+ */
727
+ eyeCartographic: {
728
+ get: function () {
729
+ return this._eyeCartographic;
730
+ },
731
+ },
732
+
718
733
  /**
719
734
  * The height (<code>x</code>) and the height squared (<code>y</code>)
720
735
  * in meters of the eye (camera) above the 2D world plane. This uniform is only valid
@@ -751,9 +766,22 @@ Object.defineProperties(UniformState.prototype, {
751
766
  },
752
767
  },
753
768
 
769
+ /**
770
+ * A 3x3 rotation from eye coordinates to an east-north-up coordinate system
771
+ * centered at the position on the ellipsoid below the camera.
772
+ * This uniform is only valid when the {@link SceneMode} is <code>SCENE3D</code>.
773
+ * @memberof UniformState.prototype
774
+ * @type {Matrix3}
775
+ */
776
+ eyeToEnu: {
777
+ get: function () {
778
+ return this._eyeToEnu;
779
+ },
780
+ },
781
+
754
782
  /**
755
783
  * A transform from model coordinates to an east-north-up coordinate system
756
- * centered at the position on the ellipsoid below the camera
784
+ * centered at the position on the ellipsoid nearest to the camera.
757
785
  * @memberof UniformState.prototype
758
786
  * @type {Matrix4}
759
787
  */
@@ -1241,6 +1269,7 @@ function setInfiniteProjection(uniformState, matrix) {
1241
1269
 
1242
1270
  const surfacePositionScratch = new Cartesian3();
1243
1271
  const enuTransformScratch = new Matrix4();
1272
+ const enuRotationScratch = new Matrix3();
1244
1273
 
1245
1274
  function setCamera(uniformState, camera) {
1246
1275
  Cartesian3.clone(camera.positionWC, uniformState._cameraPosition);
@@ -1266,6 +1295,12 @@ function setCamera(uniformState, camera) {
1266
1295
  );
1267
1296
  } else {
1268
1297
  uniformState._eyeHeight = positionCartographic.height;
1298
+ uniformState._eyeCartographic = Cartesian3.fromElements(
1299
+ positionCartographic.longitude,
1300
+ positionCartographic.latitude,
1301
+ positionCartographic.height,
1302
+ uniformState._eyeCartographic,
1303
+ );
1269
1304
  uniformState._eyeEllipsoidNormalEC =
1270
1305
  ellipsoid.geodeticSurfaceNormalCartographic(
1271
1306
  positionCartographic,
@@ -1307,6 +1342,17 @@ function setCamera(uniformState, camera) {
1307
1342
  uniformState._modelToEnu,
1308
1343
  );
1309
1344
 
1345
+ const enuToWorldRotation = Matrix4.getRotation(
1346
+ enuToWorld,
1347
+ enuRotationScratch,
1348
+ );
1349
+ const enuToView = Matrix3.multiply(
1350
+ uniformState._viewRotation,
1351
+ enuToWorldRotation,
1352
+ enuRotationScratch,
1353
+ );
1354
+ uniformState._eyeToEnu = Matrix3.transpose(enuToView, uniformState._eyeToEnu);
1355
+
1310
1356
  if (
1311
1357
  !CesiumMath.equalsEpsilon(
1312
1358
  ellipsoid._radii.x,
@@ -4,7 +4,7 @@ import Resource from "../Core/Resource.js";
4
4
 
5
5
  let defaultTokenCredit;
6
6
  const defaultAccessToken =
7
- "AAPTa7BPWL4PoZRFPJ2CM2YRclg..ub1vMOBXctC7ozMMKNnmx3ZwVTsDJAXo2GLomQ2CZjuOc2HLr1-CryeuRo9ZsV65cuZ9xN1yFKeLTu7Cxld7B97aI28os_NnuC9nvWde_l4G1DTApSHmhrVoZfKgO0bqOrsDfvvSgO-cdkUEvBASNX_4Lb9tB5fEY7lbYaWdOOWBXyZylR9il0-biB248V6HdDT1kgkSwz9esfKialRTLgxJx8AFM9is--UXK0CLvZn6JUU44PZSFuMyAT1_rgxsirsZ";
7
+ "AAPTaeRGM19PsTpo1ePVkJZk4Tg..zqn3rpU4kUaF-8QMW-oWZntlxvKhdUFXLBoo5dQwRNEKd1EoKJh-Ha2zxbrz2Nhz2tV_gLVZTQwFHLzJHKwsGDz4GTKV8jeUgb12Ci9CeU_9sOrauJYnGK2vHhtSSAQ-73rmKzNG_2lZ0zuCCEKslxCmXUw2mT1Cpk0RoCCtDheWByX1e7Lnb3LKCBDt9VhGFSGCOiaFfizFRLld8LWukKgxCgluTpKgUuUi4OytX84roEpm6mP7PE91AT1_5Uash6To";
8
8
  /**
9
9
  * Default options for accessing the ArcGIS image tile service.
10
10
  *
@@ -12,6 +12,7 @@ import BufferPointMaterial from "./BufferPointMaterial.js";
12
12
  /** @import ComponentDatatype from "../Core/ComponentDatatype.js"; */
13
13
  /** @import Matrix4 from "../Core/Matrix4.js"; */
14
14
  /** @import FrameState from "./FrameState.js"; */
15
+ /** @import { BufferPrimitiveCollectionOptions } from "./BufferPrimitiveCollection.js"; */
15
16
 
16
17
  /**
17
18
  * @typedef {object} BufferPointOptions
@@ -91,17 +92,13 @@ class BufferPointCollection extends BufferPrimitiveCollection {
91
92
  // COLLECTION LIFECYCLE
92
93
 
93
94
  /**
94
- * @param {BufferPointCollection} collection
95
+ * @param {BufferPrimitiveCollectionOptions} [options]
95
96
  * @returns {BufferPointCollection}
96
97
  * @override
97
98
  * @ignore
98
99
  */
99
- static _cloneEmpty(collection) {
100
- return new BufferPointCollection({
101
- primitiveCountMax: collection.primitiveCountMax,
102
- positionDatatype: collection.positionDatatype,
103
- positionNormalized: collection.positionNormalized,
104
- });
100
+ _cloneEmpty(options = Frozen.EMPTY_OBJECT) {
101
+ return new BufferPointCollection(this._cloneEmptyBaseArgs(options));
105
102
  }
106
103
 
107
104
  /////////////////////////////////////////////////////////////////////////////
@@ -14,6 +14,7 @@ import BufferPolygonMaterial from "./BufferPolygonMaterial.js";
14
14
  /** @import { TypedArray } from "../Core/globalTypes.js"; */
15
15
  /** @import Matrix4 from "../Core/Matrix4.js"; */
16
16
  /** @import FrameState from "./FrameState.js" */
17
+ /** @import HeightReference from "./HeightReference.js"; */
17
18
  /** @import ComponentDatatype from "../Core/ComponentDatatype.js"; */
18
19
 
19
20
  const { ERR_CAPACITY } = BufferPrimitiveCollection.Error;
@@ -31,6 +32,29 @@ const { ERR_CAPACITY } = BufferPrimitiveCollection.Error;
31
32
  * @experimental This feature is not final and is subject to change without Cesium's standard deprecation policy.
32
33
  */
33
34
 
35
+ /**
36
+ * @typedef {object} BufferPolygonCollectionOptions
37
+ * @property {number} [primitiveCountMax=BufferPrimitiveCollection.DEFAULT_CAPACITY] Maximum number of polygons.
38
+ * @property {number} [vertexCountMax=BufferPrimitiveCollection.DEFAULT_CAPACITY] Maximum number of vertices.
39
+ * @property {number} [holeCountMax=BufferPrimitiveCollection.DEFAULT_CAPACITY] Maximum number of holes.
40
+ * @property {number} [triangleCountMax=BufferPrimitiveCollection.DEFAULT_CAPACITY] Maximum number of triangles.
41
+ * @property {ComponentDatatype} [positionDatatype=ComponentDatatype.DOUBLE] The component datatype used to store position values.
42
+ * @property {boolean} [positionNormalized=false] When <code>true</code>, integer position values are treated as normalized,
43
+ * where the full integer range maps to [-1, 1] (signed) or [0, 1] (unsigned). Only relevant for integer position datatypes
44
+ * (BYTE, UNSIGNED_BYTE, SHORT, UNSIGNED_SHORT).
45
+ * @property {boolean} [show=true]
46
+ * @property {boolean} [allowPicking=true] When <code>true</code>, primitives are pickable with {@link Scene#pick}. When <code>false</code>, memory and initialization cost are lower.
47
+ * @property {BoundingSphere} [boundingVolume] Bounding volume, in world space, for the collection. When
48
+ * unspecified, a bounding volume is computed automatically and updated when primitive positions change. When
49
+ * specified, users are responsible for updating bounding volume as needed. Pre-computing the bounding volume
50
+ * manually, and updating it only as needed, will improve performance for larger dynamic collections.
51
+ * @property {boolean} [debugShowBoundingVolume=false]
52
+ * @property {BlendOption} [blendOption=BlendOption.TRANSLUCENT]
53
+ * @property {HeightReference} [heightReference=HeightReference.NONE] When set to a clamping value, the
54
+ * collection is draped onto terrain and/or 3D Tiles, rather than drawn as geometry of its own.
55
+ * @experimental This feature is not final and is subject to change without Cesium's standard deprecation policy.
56
+ */
57
+
34
58
  /**
35
59
  * Collection of polygons held in ArrayBuffer storage for performance and memory optimization.
36
60
  *
@@ -76,21 +100,7 @@ const { ERR_CAPACITY } = BufferPrimitiveCollection.Error;
76
100
  */
77
101
  class BufferPolygonCollection extends BufferPrimitiveCollection {
78
102
  /**
79
- * @param {object} options
80
- * @param {number} [options.primitiveCountMax=BufferPrimitiveCollection.DEFAULT_CAPACITY]
81
- * @param {number} [options.vertexCountMax=BufferPrimitiveCollection.DEFAULT_CAPACITY]
82
- * @param {number} [options.holeCountMax=BufferPrimitiveCollection.DEFAULT_CAPACITY]
83
- * @param {number} [options.triangleCountMax=BufferPrimitiveCollection.DEFAULT_CAPACITY]
84
- * @param {ComponentDatatype} [options.positionDatatype=ComponentDatatype.DOUBLE]
85
- * @param {boolean} [options.positionNormalized=false]
86
- * @param {boolean} [options.show=true]
87
- * @param {boolean} [options.allowPicking=true] When <code>true</code>, primitives are pickable with {@link Scene#pick}. When <code>false</code>, memory and initialization cost are lower.
88
- * @param {BoundingSphere} [options.boundingVolume] Bounding volume, in world space, for the collection. When
89
- * unspecified, a bounding volume is computed automatically and updated when primitive positions change. When
90
- * specified, users are responsible for updating bounding volume as needed. Pre-computing the bounding volume
91
- * manually, and updating it only as needed, will improve performance for larger dynamic collections.
92
- * @param {boolean} [options.debugShowBoundingVolume=false]
93
- * @param {BlendOption} [options.blendOption=BlendOption.TRANSLUCENT]
103
+ * @param {BufferPolygonCollectionOptions} [options]
94
104
  */
95
105
  constructor(options = Frozen.EMPTY_OBJECT) {
96
106
  super(options);
@@ -193,10 +203,16 @@ class BufferPolygonCollection extends BufferPrimitiveCollection {
193
203
  *
194
204
  * @param {BufferPolygonCollection} collection
195
205
  * @param {BufferPolygonCollection} result
206
+ * @param {function(BufferPolygon, number): boolean} [predicate] When provided, only polygons for which this returns <code>true</code> are copied. Surviving polygons are compacted into contiguous indices.
196
207
  * @returns {BufferPolygonCollection}
197
208
  */
198
- static clone(collection, result) {
199
- super.clone(collection, result);
209
+ static clone(collection, result, predicate) {
210
+ super.clone(collection, result, predicate);
211
+
212
+ // Base class's filtered clone uses PrimitiveClass.clone, which handles holes and triangles, so just return the result.
213
+ if (defined(predicate)) {
214
+ return result;
215
+ }
200
216
 
201
217
  //>>includeStart('debug', pragmas.debug);
202
218
  assert(collection.holeCount <= result.holeCountMax, ERR_CAPACITY);
@@ -222,19 +238,33 @@ class BufferPolygonCollection extends BufferPrimitiveCollection {
222
238
  }
223
239
 
224
240
  /**
225
- * @param {BufferPolygonCollection} collection
241
+ * Returns a copy of the given collection, overriding any constructor options
242
+ * provided. Omitted options are inherited from the source collection. Any
243
+ * resized buffers must be large enough to hold every polygon.
244
+ *
245
+ * @param {BufferPolygonCollection} collection Source collection to copy.
246
+ * @param {BufferPolygonCollectionOptions} [options] Constructor options to override. Omitted options are inherited from the source collection.
247
+ * @param {function(BufferPolygon, number): boolean} [predicate] When provided, only polygons for which this returns <code>true</code> are copied. Surviving polygons are compacted into contiguous indices.
248
+ * @returns {BufferPolygonCollection}
249
+ * @override
250
+ */
251
+ static fromCollection(collection, options, predicate) {
252
+ return /** @type {BufferPolygonCollection} */ (
253
+ super.fromCollection(collection, options, predicate)
254
+ );
255
+ }
256
+
257
+ /**
258
+ * @param {BufferPolygonCollectionOptions} [options]
226
259
  * @returns {BufferPolygonCollection}
227
260
  * @override
228
261
  * @ignore
229
262
  */
230
- static _cloneEmpty(collection) {
263
+ _cloneEmpty(options = Frozen.EMPTY_OBJECT) {
231
264
  return new BufferPolygonCollection({
232
- primitiveCountMax: collection.primitiveCountMax,
233
- vertexCountMax: collection.vertexCountMax,
234
- holeCountMax: collection.holeCountMax,
235
- triangleCountMax: collection.triangleCountMax,
236
- positionDatatype: collection.positionDatatype,
237
- positionNormalized: collection.positionNormalized,
265
+ holeCountMax: this.holeCountMax,
266
+ triangleCountMax: this.triangleCountMax,
267
+ ...this._cloneEmptyBaseArgs(options),
238
268
  });
239
269
  }
240
270
 
@@ -305,8 +335,7 @@ class BufferPolygonCollection extends BufferPrimitiveCollection {
305
335
  update(frameState) {
306
336
  super.update(frameState);
307
337
 
308
- const passes = frameState.passes;
309
- if (this.show && (passes.render || passes.pick)) {
338
+ if (this._isRendered(frameState)) {
310
339
  this._renderContext = renderPolygons(
311
340
  this,
312
341
  frameState,
@@ -1,6 +1,8 @@
1
1
  // @ts-check
2
2
 
3
3
  import defined from "../Core/defined.js";
4
+ import DeveloperError from "../Core/DeveloperError.js";
5
+ import Frozen from "../Core/Frozen.js";
4
6
  import BufferPrimitiveCollection from "./BufferPrimitiveCollection.js";
5
7
  import BufferPolyline from "./BufferPolyline.js";
6
8
  import renderPolylines from "./renderBufferPolylineCollection.js";
@@ -8,7 +10,12 @@ import BufferPolylineMaterial from "./BufferPolylineMaterial.js";
8
10
 
9
11
  /** @import { TypedArray } from "../Core/globalTypes.js"; */
10
12
  /** @import Matrix4 from "../Core/Matrix4.js"; */
13
+ /** @import BoundingSphere from "../Core/BoundingSphere.js"; */
14
+ /** @import ComponentDatatype from "../Core/ComponentDatatype.js"; */
15
+ /** @import BlendOption from "./BlendOption.js"; */
16
+ /** @import HeightReference from "./HeightReference.js"; */
11
17
  /** @import FrameState from "./FrameState.js" */
18
+ /** @import { BufferPrimitiveCollectionOptions } from "./BufferPrimitiveCollection.js"; */
12
19
 
13
20
  /**
14
21
  * @typedef {object} BufferPolylineOptions
@@ -57,6 +64,55 @@ import BufferPolylineMaterial from "./BufferPolylineMaterial.js";
57
64
  * @experimental This feature is not final and is subject to change without Cesium's standard deprecation policy.
58
65
  */
59
66
  class BufferPolylineCollection extends BufferPrimitiveCollection {
67
+ /**
68
+ * @param {object} [options]
69
+ * @param {Matrix4} [options.modelMatrix=Matrix4.IDENTITY] Transforms geometry from model to world coordinates.
70
+ * @param {number} [options.primitiveCountMax=BufferPrimitiveCollection.DEFAULT_CAPACITY]
71
+ * @param {number} [options.vertexCountMax=BufferPrimitiveCollection.DEFAULT_CAPACITY]
72
+ * @param {boolean} [options.show=true]
73
+ * @param {ComponentDatatype} [options.positionDatatype=ComponentDatatype.DOUBLE]
74
+ * @param {boolean} [options.positionNormalized=false]
75
+ * @param {boolean} [options.allowPicking=false] When <code>true</code>, primitives are pickable with {@link Scene#pick}. When <code>false</code>, memory and initialization cost are lower.
76
+ * @param {BoundingSphere} [options.boundingVolume] Bounding volume, in world space, for the collection.
77
+ * @param {boolean} [options.debugShowBoundingVolume=false]
78
+ * @param {BlendOption} [options.blendOption=BlendOption.TRANSLUCENT]
79
+ * @param {HeightReference} [options.heightReference=HeightReference.NONE]
80
+ * @param {"pixels"|"meters"} [options.widthUnits="pixels"] Unit of polyline widths in this collection:
81
+ * <code>"pixels"</code> on the screen, or <code>"meters"</code> in world space. A clamped
82
+ * {@link HeightReference} measures those meters on the ellipsoid surface, so elevation and terrain
83
+ * slope stretch the drawn width.
84
+ */
85
+ constructor(options = Frozen.EMPTY_OBJECT) {
86
+ super(options);
87
+
88
+ const widthUnits = options.widthUnits ?? "pixels";
89
+
90
+ //>>includeStart('debug', pragmas.debug);
91
+ if (widthUnits !== "pixels" && widthUnits !== "meters") {
92
+ throw new DeveloperError(
93
+ 'options.widthUnits must be "pixels" or "meters".',
94
+ );
95
+ }
96
+ //>>includeEnd('debug');
97
+
98
+ /**
99
+ * @type {"pixels"|"meters"}
100
+ * @private
101
+ */
102
+ this._widthUnits = widthUnits;
103
+ }
104
+
105
+ /**
106
+ * Unit of polyline widths in this collection: <code>"pixels"</code> on the screen, or
107
+ * <code>"meters"</code> in world space, measured on the ellipsoid surface when clamped.
108
+ *
109
+ * @type {"pixels"|"meters"}
110
+ * @readonly
111
+ */
112
+ get widthUnits() {
113
+ return this._widthUnits;
114
+ }
115
+
60
116
  _getCollectionClass() {
61
117
  return BufferPolylineCollection;
62
118
  }
@@ -73,17 +129,15 @@ class BufferPolylineCollection extends BufferPrimitiveCollection {
73
129
  // COLLECTION LIFECYCLE
74
130
 
75
131
  /**
76
- * @param {BufferPolylineCollection} collection
132
+ * @param {BufferPrimitiveCollectionOptions} [options]
77
133
  * @returns {BufferPolylineCollection}
78
134
  * @override
79
135
  * @ignore
80
136
  */
81
- static _cloneEmpty(collection) {
137
+ _cloneEmpty(options = Frozen.EMPTY_OBJECT) {
82
138
  return new BufferPolylineCollection({
83
- primitiveCountMax: collection.primitiveCountMax,
84
- vertexCountMax: collection.vertexCountMax,
85
- positionDatatype: collection.positionDatatype,
86
- positionNormalized: collection.positionNormalized,
139
+ widthUnits: this._widthUnits,
140
+ ...this._cloneEmptyBaseArgs(options),
87
141
  });
88
142
  }
89
143
 
@@ -126,8 +180,7 @@ class BufferPolylineCollection extends BufferPrimitiveCollection {
126
180
  update(frameState) {
127
181
  super.update(frameState);
128
182
 
129
- const passes = frameState.passes;
130
- if (this.show && (passes.render || passes.pick)) {
183
+ if (this._isRendered(frameState)) {
131
184
  this._renderContext = renderPolylines(
132
185
  this,
133
186
  frameState,
@@ -11,7 +11,8 @@ import BufferPrimitiveMaterial from "./BufferPrimitiveMaterial.js";
11
11
  * @property {Color} [color=Color.WHITE] Color of fill.
12
12
  * @property {Color} [outlineColor=Color.WHITE] Color of outline.
13
13
  * @property {number} [outlineWidth=0.0] Width of outline, 0-255px.
14
- * @property {number} [width=1.0] Width of line, 0-255px.
14
+ * @property {number} [width=1.0] Width of line, in the unit selected by
15
+ * {@link BufferPolylineCollection#widthUnits}.
15
16
  */
16
17
 
17
18
  /**
@@ -28,7 +29,7 @@ class BufferPolylineMaterial extends BufferPrimitiveMaterial {
28
29
  /** @ignore */
29
30
  static Layout = {
30
31
  ...BufferPrimitiveMaterial.Layout,
31
- WIDTH_U8: BufferPrimitiveMaterial.Layout.__BYTE_LENGTH,
32
+ WIDTH_F32: BufferPrimitiveMaterial.Layout.__BYTE_LENGTH,
32
33
  __BYTE_LENGTH: BufferPrimitiveMaterial.Layout.__BYTE_LENGTH + 4,
33
34
  };
34
35
 
@@ -45,7 +46,7 @@ class BufferPolylineMaterial extends BufferPrimitiveMaterial {
45
46
  super(options);
46
47
 
47
48
  /**
48
- * Width of polyline, 0–255px.
49
+ * Width of polyline, in the unit selected by {@link BufferPolylineCollection#widthUnits}.
49
50
  * @type {number}
50
51
  */
51
52
  this.width = options.width ?? 1;
@@ -59,7 +60,7 @@ class BufferPolylineMaterial extends BufferPrimitiveMaterial {
59
60
  */
60
61
  static pack(material, view, byteOffset) {
61
62
  super.pack(material, view, byteOffset);
62
- view.setUint8(this.Layout.WIDTH_U8 + byteOffset, material.width);
63
+ view.setFloat32(this.Layout.WIDTH_F32 + byteOffset, material.width, true);
63
64
  }
64
65
 
65
66
  /**
@@ -71,7 +72,7 @@ class BufferPolylineMaterial extends BufferPrimitiveMaterial {
71
72
  */
72
73
  static unpack(view, byteOffset, result) {
73
74
  super.unpack(view, byteOffset, result);
74
- result.width = view.getUint8(this.Layout.WIDTH_U8 + byteOffset);
75
+ result.width = view.getFloat32(this.Layout.WIDTH_F32 + byteOffset, true);
75
76
  return result;
76
77
  }
77
78