@cesium/engine 24.0.0 → 26.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 (362) hide show
  1. package/Build/Workers/{chunk-6WLHJFD3.js → chunk-3VFEWOBI.js} +59 -32
  2. package/Build/Workers/{chunk-UQU4RXLT.js → chunk-424RNO3D.js} +50 -45
  3. package/Build/Workers/chunk-4MGMYHOO.js +147 -0
  4. package/Build/Workers/{chunk-AMIHNSST.js → chunk-4S7IE3LB.js} +2 -2
  5. package/Build/Workers/{chunk-J6AW5YHS.js → chunk-52JDLOEM.js} +14 -14
  6. package/Build/Workers/{chunk-6RMS4S72.js → chunk-54I6Y66F.js} +6 -6
  7. package/Build/Workers/{chunk-C6P4IG5P.js → chunk-6YEE6JDR.js} +6 -6
  8. package/Build/Workers/{chunk-72VYSVEW.js → chunk-7J2HKPRH.js} +11 -10
  9. package/Build/Workers/{chunk-7O5XJTVE.js → chunk-7WM2PX4V.js} +5 -5
  10. package/Build/Workers/{chunk-5A2SW66E.js → chunk-ACXQXN46.js} +16 -16
  11. package/Build/Workers/{chunk-VLDEUTOP.js → chunk-AYKR4VBR.js} +2 -2
  12. package/Build/Workers/{chunk-YQFTYQMZ.js → chunk-C6J67V5A.js} +3 -2
  13. package/Build/Workers/{chunk-D4EJ2NXG.js → chunk-C6KNZ7T4.js} +17 -17
  14. package/Build/Workers/{chunk-7MDYBRYJ.js → chunk-CFQP6LYM.js} +4 -4
  15. package/Build/Workers/{chunk-YAOZMOFL.js → chunk-CXOYE2WM.js} +5 -5
  16. package/Build/Workers/{chunk-B6SCUUFP.js → chunk-CZEYZU4N.js} +10 -10
  17. package/Build/Workers/{chunk-NPF7SSHZ.js → chunk-DBOEKL43.js} +7 -7
  18. package/Build/Workers/{chunk-44EMEGKW.js → chunk-DDWSZVMY.js} +5 -5
  19. package/Build/Workers/{chunk-7X322WP2.js → chunk-DOBXCNC3.js} +13 -13
  20. package/Build/Workers/{chunk-JCI63T3K.js → chunk-E7VQ76KE.js} +6 -6
  21. package/Build/Workers/{chunk-7TYLCBGK.js → chunk-EBSIOBXY.js} +12 -10
  22. package/Build/Workers/{chunk-GQUNK2XC.js → chunk-EF2QYXGA.js} +14 -14
  23. package/Build/Workers/{chunk-BJD6QGXZ.js → chunk-EPYXRCDB.js} +12 -12
  24. package/Build/Workers/{chunk-63SIWPLS.js → chunk-F6QDY6HU.js} +13 -13
  25. package/Build/Workers/{chunk-XY6HMDGI.js → chunk-FRQZECAO.js} +5 -5
  26. package/Build/Workers/{chunk-VMVOUQ5J.js → chunk-G7PXZRVF.js} +7 -7
  27. package/Build/Workers/{chunk-N65BAKSH.js → chunk-INUEEEQA.js} +8 -8
  28. package/Build/Workers/{chunk-7QRFIKWQ.js → chunk-IRBKFCEJ.js} +2 -2
  29. package/Build/Workers/{chunk-UIGVOKKI.js → chunk-IYOUHCZB.js} +3 -2
  30. package/Build/Workers/{chunk-5GXYJQ2K.js → chunk-J6BWOHUF.js} +3 -3
  31. package/Build/Workers/{chunk-A47HVBC5.js → chunk-KFSTQKNM.js} +7 -7
  32. package/Build/Workers/{chunk-EV3VGO6Y.js → chunk-KKOSKAZB.js} +17 -17
  33. package/Build/Workers/{chunk-6MPGQEHA.js → chunk-KSSWJIZW.js} +2 -2
  34. package/Build/Workers/{chunk-DHKPFLSJ.js → chunk-M3B5JKSM.js} +3 -2
  35. package/Build/Workers/chunk-MPZHGZU6.js +2342 -0
  36. package/Build/Workers/{chunk-YJZGW74L.js → chunk-MYP774IS.js} +2213 -1349
  37. package/Build/Workers/{chunk-LIB2H534.js → chunk-O3EA5HS7.js} +12 -11
  38. package/Build/Workers/{chunk-ILMFADZA.js → chunk-P3CK7MCY.js} +27 -5
  39. package/Build/Workers/chunk-Q3PY526V.js +3201 -0
  40. package/Build/Workers/chunk-QN67VG36.js +973 -0
  41. package/Build/Workers/{chunk-XJRBB253.js → chunk-QRWGUWI6.js} +11 -11
  42. package/Build/Workers/{chunk-AF3MU2RL.js → chunk-S4MCOY6I.js} +7 -6
  43. package/Build/Workers/{chunk-Y7HNNPNK.js → chunk-SMQZZOW6.js} +10 -10
  44. package/Build/Workers/{chunk-PVV64VFW.js → chunk-TKKIREQ6.js} +3 -2
  45. package/Build/Workers/{chunk-MKM27KGV.js → chunk-U3ZA64U7.js} +2 -2
  46. package/Build/Workers/{chunk-2N4KDHS3.js → chunk-UA25D5MX.js} +12 -11
  47. package/Build/Workers/{chunk-RQNJD3O4.js → chunk-UOOIQ3KX.js} +12 -12
  48. package/Build/Workers/{chunk-GOQBUCXH.js → chunk-V7VQKN6N.js} +709 -431
  49. package/Build/Workers/{chunk-LXMCPFFS.js → chunk-VQYETPWC.js} +4 -4
  50. package/Build/Workers/{chunk-NKT5K3K3.js → chunk-VWV2IJRB.js} +13 -12
  51. package/Build/Workers/chunk-XZMBNNDX.js +1287 -0
  52. package/Build/Workers/{chunk-ISY4EZCA.js → chunk-Y57HREW5.js} +4 -4
  53. package/Build/Workers/{chunk-EDXL4W76.js → chunk-Y5BF6AFU.js} +2 -2
  54. package/Build/Workers/{chunk-Q3C6VQH6.js → chunk-YLY7NKAB.js} +4 -4
  55. package/Build/Workers/{chunk-4TIG36AW.js → chunk-ZK3CF7ZD.js} +12 -12
  56. package/Build/Workers/{chunk-AJLTU6PF.js → chunk-ZP7JMQV4.js} +4 -1
  57. package/Build/Workers/{chunk-HXJMS2ZI.js → chunk-ZZ46LWL6.js} +1 -1
  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 +24 -24
  100. package/Build/Workers/createWallOutlineGeometry.js +23 -23
  101. package/Build/Workers/decodeDraco.js +10 -10
  102. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
  103. package/Build/Workers/decodeI3S.js +10 -10
  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 +1 -1
  116. package/Source/Core/Cartesian3.js +2 -3
  117. package/Source/Core/Cartesian4.js +1 -1
  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 +844 -835
  122. package/Source/Core/ComponentDatatype.js +39 -1
  123. package/Source/Core/CornerType.js +6 -1
  124. package/Source/Core/Credit.js +121 -124
  125. package/Source/Core/Ellipsoid.js +637 -660
  126. package/Source/Core/ExtrapolationType.js +6 -1
  127. package/Source/Core/GeocodeType.js +6 -1
  128. package/Source/Core/GeographicProjection.js +74 -74
  129. package/Source/Core/GeographicTilingScheme.js +179 -198
  130. package/Source/Core/GeometryOffsetAttribute.js +7 -1
  131. package/Source/Core/GeometryType.js +7 -1
  132. package/Source/Core/HeightmapEncoding.js +6 -1
  133. package/Source/Core/Iau2006XysData.js +24 -13
  134. package/Source/Core/IndexDatatype.js +3 -1
  135. package/Source/Core/InterpolationType.js +5 -1
  136. package/Source/Core/Intersect.js +6 -1
  137. package/Source/Core/Ion.js +1 -1
  138. package/Source/Core/IonGeocodeProviderType.js +5 -1
  139. package/Source/Core/JulianDate.js +850 -848
  140. package/Source/Core/KeyboardEventModifier.js +6 -1
  141. package/Source/Core/MapProjection.js +40 -44
  142. package/Source/Core/Matrix2.js +906 -893
  143. package/Source/Core/Matrix3.js +1643 -1575
  144. package/Source/Core/Matrix4.js +2903 -2872
  145. package/Source/Core/PixelFormat.js +3 -1
  146. package/Source/Core/PrimitiveType.js +11 -1
  147. package/Source/Core/Ray.js +62 -60
  148. package/Source/Core/Rectangle.js +913 -904
  149. package/Source/Core/ReferenceFrame.js +6 -1
  150. package/Source/Core/RequestScheduler.js +8 -3
  151. package/Source/Core/RequestState.js +6 -1
  152. package/Source/Core/RequestType.js +6 -1
  153. package/Source/Core/Resource.js +1 -1
  154. package/Source/Core/ScreenSpaceEventHandler.js +51 -41
  155. package/Source/Core/ScreenSpaceEventType.js +6 -1
  156. package/Source/Core/TerrainQuantization.js +6 -1
  157. package/Source/Core/TilingScheme.js +100 -98
  158. package/Source/Core/TimeConstants.js +6 -1
  159. package/Source/Core/TimeStandard.js +6 -1
  160. package/Source/Core/TrackingReferenceFrame.js +6 -1
  161. package/Source/Core/Visibility.js +6 -1
  162. package/Source/Core/VulkanConstants.js +6 -1
  163. package/Source/Core/WebGLConstants.js +6 -1
  164. package/Source/Core/WebMercatorProjection.js +108 -109
  165. package/Source/Core/WebMercatorTilingScheme.js +246 -242
  166. package/Source/Core/WindingOrder.js +3 -1
  167. package/Source/Core/createColorRamp.js +37 -0
  168. package/Source/Core/globalTypes.js +25 -0
  169. package/Source/DataSources/StaticGroundGeometryPerMaterialBatch.js +1 -0
  170. package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +1 -0
  171. package/Source/DataSources/StripeOrientation.js +6 -1
  172. package/Source/Renderer/BufferUsage.js +20 -9
  173. package/Source/Renderer/Context.js +2 -29
  174. package/Source/Renderer/DrawCommand.js +435 -403
  175. package/Source/Renderer/MipmapHint.js +5 -1
  176. package/Source/Renderer/Pass.js +10 -3
  177. package/Source/Renderer/PickId.js +44 -0
  178. package/Source/Renderer/PixelDatatype.js +3 -1
  179. package/Source/Renderer/RenderbufferFormat.js +5 -1
  180. package/Source/Renderer/ShaderDestination.js +4 -1
  181. package/Source/Renderer/TextureMagnificationFilter.js +3 -1
  182. package/Source/Renderer/TextureMinificationFilter.js +3 -1
  183. package/Source/Renderer/TextureWrap.js +5 -1
  184. package/Source/Renderer/createUniform.js +346 -239
  185. package/Source/Renderer/createUniformArray.js +494 -381
  186. package/Source/Scene/AlphaMode.js +5 -1
  187. package/Source/Scene/ArcGisBaseMapType.js +6 -1
  188. package/Source/Scene/ArcGisMapService.js +1 -1
  189. package/Source/Scene/AttributeType.js +3 -1
  190. package/Source/Scene/Axis.js +3 -1
  191. package/Source/Scene/BingMapsStyle.js +6 -1
  192. package/Source/Scene/BlendEquation.js +6 -1
  193. package/Source/Scene/BlendFunction.js +6 -1
  194. package/Source/Scene/BlendOption.js +6 -1
  195. package/Source/Scene/BlendingState.js +6 -1
  196. package/Source/Scene/BufferLoader.js +0 -2
  197. package/Source/Scene/BufferPoint.js +1 -0
  198. package/Source/Scene/BufferPointCollection.js +17 -1
  199. package/Source/Scene/BufferPolygon.js +3 -2
  200. package/Source/Scene/BufferPolygonCollection.js +13 -1
  201. package/Source/Scene/BufferPolyline.js +1 -0
  202. package/Source/Scene/BufferPolylineCollection.js +5 -1
  203. package/Source/Scene/BufferPrimitiveCollection.js +210 -43
  204. package/Source/Scene/CameraEventAggregator.js +30 -18
  205. package/Source/Scene/CameraEventType.js +6 -1
  206. package/Source/Scene/Cesium3DTile.js +54 -1
  207. package/Source/Scene/Cesium3DTileColorBlendMode.js +6 -1
  208. package/Source/Scene/Cesium3DTileContent.js +195 -254
  209. package/Source/Scene/Cesium3DTileContentFactory.js +10 -2
  210. package/Source/Scene/Cesium3DTileContentState.js +6 -1
  211. package/Source/Scene/Cesium3DTileContentType.js +3 -1
  212. package/Source/Scene/Cesium3DTileFeature.js +289 -306
  213. package/Source/Scene/Cesium3DTileOptimizationHint.js +6 -1
  214. package/Source/Scene/Cesium3DTilePass.js +5 -1
  215. package/Source/Scene/Cesium3DTilePointFeature.js +433 -511
  216. package/Source/Scene/Cesium3DTileRefine.js +6 -1
  217. package/Source/Scene/Cesium3DTileVectorFeature.js +586 -0
  218. package/Source/Scene/Cesium3DTileset.js +46 -6
  219. package/Source/Scene/ClassificationType.js +3 -1
  220. package/Source/Scene/CloudType.js +3 -1
  221. package/Source/Scene/ColorBlendMode.js +4 -1
  222. package/Source/Scene/Composite3DTileContent.js +254 -292
  223. package/Source/Scene/CullFace.js +6 -1
  224. package/Source/Scene/DepthFunction.js +6 -1
  225. package/Source/Scene/DynamicAtmosphereLightingType.js +3 -1
  226. package/Source/Scene/EdgeDisplayMode.js +50 -0
  227. package/Source/Scene/Empty3DTileContent.js +100 -132
  228. package/Source/Scene/EquirectangularPanorama.js +1 -0
  229. package/Source/Scene/ExpressionNodeType.js +6 -1
  230. package/Source/Scene/GaussianSplat3DTileContent.js +436 -478
  231. package/Source/Scene/GeoJsonPrimitive.js +874 -0
  232. package/Source/Scene/Geometry3DTileContent.js +151 -185
  233. package/Source/Scene/GltfBufferViewLoader.js +0 -2
  234. package/Source/Scene/GltfDracoLoader.js +0 -2
  235. package/Source/Scene/GltfImageLoader.js +0 -3
  236. package/Source/Scene/GltfIndexBufferLoader.js +0 -4
  237. package/Source/Scene/GltfJsonLoader.js +0 -2
  238. package/Source/Scene/GltfLoader.js +109 -5
  239. package/Source/Scene/GltfLoaderUtil.js +14 -0
  240. package/Source/Scene/GltfSpzLoader.js +0 -2
  241. package/Source/Scene/GltfStructuralMetadataLoader.js +0 -2
  242. package/Source/Scene/GltfTextureLoader.js +0 -2
  243. package/Source/Scene/GltfVertexBufferLoader.js +0 -4
  244. package/Source/Scene/HeightReference.js +5 -1
  245. package/Source/Scene/HorizontalOrigin.js +6 -1
  246. package/Source/Scene/ImageryProvider.js +1 -1
  247. package/Source/Scene/ImageryState.js +6 -1
  248. package/Source/Scene/Implicit3DTileContent.js +179 -214
  249. package/Source/Scene/ImplicitSubdivisionScheme.js +3 -1
  250. package/Source/Scene/InstanceAttributeSemantic.js +3 -1
  251. package/Source/Scene/IonWorldImageryStyle.js +6 -1
  252. package/Source/Scene/JobType.js +6 -1
  253. package/Source/Scene/LabelStyle.js +6 -1
  254. package/Source/Scene/MVTDataProvider.js +147 -0
  255. package/Source/Scene/MapMode2D.js +6 -1
  256. package/Source/Scene/MetadataComponentType.js +3 -1
  257. package/Source/Scene/MetadataSchemaLoader.js +0 -2
  258. package/Source/Scene/MetadataSemantic.js +6 -2
  259. package/Source/Scene/MetadataType.js +3 -1
  260. package/Source/Scene/Model/B3dmLoader.js +0 -3
  261. package/Source/Scene/Model/CustomShaderMode.js +3 -1
  262. package/Source/Scene/Model/CustomShaderTranslucencyMode.js +5 -1
  263. package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +78 -337
  264. package/Source/Scene/Model/Extensions/Gpm/PpeSource.js +5 -1
  265. package/Source/Scene/Model/Extensions/Gpm/StorageType.js +5 -1
  266. package/Source/Scene/Model/GeoJsonLoader.js +0 -2
  267. package/Source/Scene/Model/I3dmLoader.js +0 -3
  268. package/Source/Scene/Model/InstancingPipelineStage.js +1 -1
  269. package/Source/Scene/Model/LightingModel.js +5 -1
  270. package/Source/Scene/Model/MaterialPipelineStage.js +184 -3
  271. package/Source/Scene/Model/Model.js +34 -0
  272. package/Source/Scene/Model/Model3DTileContent.js +424 -458
  273. package/Source/Scene/Model/ModelDrawCommand.js +31 -3
  274. package/Source/Scene/Model/ModelReader.js +474 -3
  275. package/Source/Scene/Model/ModelRuntimePrimitive.js +2 -1
  276. package/Source/Scene/Model/ModelType.js +3 -1
  277. package/Source/Scene/Model/ModelUtility.js +4 -0
  278. package/Source/Scene/Model/PntsLoader.js +4 -3
  279. package/Source/Scene/Model/StyleCommandsNeeded.js +3 -1
  280. package/Source/Scene/Model/UniformType.js +5 -1
  281. package/Source/Scene/Model/VaryingType.js +5 -1
  282. package/Source/Scene/Model/createVectorTileBuffersFromModelComponents.js +500 -139
  283. package/Source/Scene/Model/pickModel.js +94 -299
  284. package/Source/Scene/ModelAnimationLoop.js +6 -1
  285. package/Source/Scene/ModelAnimationState.js +6 -1
  286. package/Source/Scene/ModelComponents.js +47 -2
  287. package/Source/Scene/Multiple3DTileContent.js +291 -334
  288. package/Source/Scene/PrimitiveState.js +7 -1
  289. package/Source/Scene/QuadtreeOccluders.js +20 -15
  290. package/Source/Scene/QuadtreeTile.js +547 -541
  291. package/Source/Scene/QuadtreeTileLoadState.js +6 -1
  292. package/Source/Scene/QuadtreeTileProvider.js +159 -175
  293. package/Source/Scene/ResourceLoader.js +0 -1
  294. package/Source/Scene/ResourceLoaderState.js +7 -1
  295. package/Source/Scene/Scene.js +26 -0
  296. package/Source/Scene/SceneMode.js +4 -1
  297. package/Source/Scene/ShadowMode.js +3 -1
  298. package/Source/Scene/SkyBox.js +1 -1
  299. package/Source/Scene/SplitDirection.js +6 -1
  300. package/Source/Scene/StencilFunction.js +6 -1
  301. package/Source/Scene/StencilOperation.js +6 -1
  302. package/Source/Scene/TerrainState.js +7 -1
  303. package/Source/Scene/TileState.js +7 -1
  304. package/Source/Scene/Tileset3DTileContent.js +113 -146
  305. package/Source/Scene/Tonemapper.js +5 -1
  306. package/Source/Scene/UrlTemplate3DTilesDataProvider.js +499 -0
  307. package/Source/Scene/Vector3DTileContent.js +205 -234
  308. package/Source/Scene/VectorGltf3DTileContent.js +131 -61
  309. package/Source/Scene/VertexAttributeSemantic.js +3 -1
  310. package/Source/Scene/VerticalOrigin.js +6 -1
  311. package/Source/Scene/VoxelBoxShape.js +12 -6
  312. package/Source/Scene/VoxelContent.js +2 -0
  313. package/Source/Scene/VoxelCylinderShape.js +39 -38
  314. package/Source/Scene/VoxelEllipsoidShape.js +46 -96
  315. package/Source/Scene/VoxelMetadataOrder.js +6 -1
  316. package/Source/Scene/VoxelPrimitive.js +159 -175
  317. package/Source/Scene/VoxelProvider.js +64 -90
  318. package/Source/Scene/VoxelShapeType.js +3 -1
  319. package/Source/Scene/buildVectorGltfFromMVT.js +1059 -0
  320. package/Source/Scene/buildVoxelCustomShader.js +199 -0
  321. package/Source/Scene/decodeMVT.js +634 -0
  322. package/Source/Scene/renderBufferPointCollection.js +124 -127
  323. package/Source/Scene/renderBufferPolygonCollection.js +122 -122
  324. package/Source/Scene/renderBufferPolylineCollection.js +386 -238
  325. package/Source/Shaders/BufferPointMaterialFS.glsl +1 -0
  326. package/Source/Shaders/BufferPointMaterialFS.js +1 -0
  327. package/Source/Shaders/BufferPointMaterialVS.glsl +19 -9
  328. package/Source/Shaders/BufferPointMaterialVS.js +20 -10
  329. package/Source/Shaders/BufferPolygonMaterialVS.glsl +13 -4
  330. package/Source/Shaders/BufferPolygonMaterialVS.js +14 -5
  331. package/Source/Shaders/BufferPolylineMaterialVS.glsl +16 -2
  332. package/Source/Shaders/BufferPolylineMaterialVS.js +17 -3
  333. package/Source/Shaders/Builtin/Constants/passCesium3DTileEdgesDirect.glsl +9 -0
  334. package/Source/Shaders/Builtin/Constants/passCesium3DTileEdgesDirect.js +11 -0
  335. package/Source/Shaders/Builtin/Constants/passOverlay.glsl +1 -1
  336. package/Source/Shaders/Builtin/Constants/passOverlay.js +1 -1
  337. package/Source/Shaders/Builtin/CzmBuiltins.js +4 -0
  338. package/Source/Shaders/Builtin/Functions/computeTextureTransform.glsl +24 -0
  339. package/Source/Shaders/Builtin/Functions/computeTextureTransform.js +25 -0
  340. package/Source/Shaders/Model/ConstantLodStageFS.glsl +60 -0
  341. package/Source/Shaders/Model/ConstantLodStageFS.js +62 -0
  342. package/Source/Shaders/Model/ConstantLodStageVS.glsl +12 -0
  343. package/Source/Shaders/Model/ConstantLodStageVS.js +13 -0
  344. package/Source/Shaders/Model/EdgeVisibilityStageVS.glsl +0 -1
  345. package/Source/Shaders/Model/EdgeVisibilityStageVS.js +0 -1
  346. package/Source/Shaders/Model/MaterialStageFS.glsl +46 -20
  347. package/Source/Shaders/Model/MaterialStageFS.js +46 -20
  348. package/Source/Shaders/Voxels/convertLocalToBoxUv.glsl +0 -1
  349. package/Source/Shaders/Voxels/convertLocalToBoxUv.js +0 -1
  350. package/Source/Shaders/Voxels/convertLocalToCylinderUv.glsl +7 -9
  351. package/Source/Shaders/Voxels/convertLocalToCylinderUv.js +7 -9
  352. package/Source/Shaders/Voxels/convertLocalToEllipsoidUv.glsl +7 -17
  353. package/Source/Shaders/Voxels/convertLocalToEllipsoidUv.js +7 -17
  354. package/Source/Widget/CesiumWidget.js +11 -4
  355. package/index.d.ts +595 -343
  356. package/index.js +392 -378
  357. package/package.json +3 -3
  358. package/Build/Workers/chunk-DVB56LG7.js +0 -114
  359. package/Build/Workers/chunk-HKUES6UG.js +0 -2357
  360. package/Build/Workers/chunk-HRHRYFHS.js +0 -940
  361. package/Build/Workers/chunk-KLPGTXS3.js +0 -642
  362. package/Build/Workers/chunk-ZBZRTRJB.js +0 -1829
@@ -11,17 +11,12 @@ vec3 blend(vec3 sourceColor, vec3 styleColor, float styleColorBlend)
11
11
  return color;
12
12
  }
13
13
 
14
- vec2 computeTextureTransform(vec2 texCoord, mat3 textureTransform)
15
- {
16
- return vec2(textureTransform * vec3(texCoord, 1.0));
17
- }
18
-
19
14
  #ifdef HAS_NORMAL_TEXTURE
20
15
  vec2 getNormalTexCoords()
21
16
  {
22
17
  vec2 texCoord = TEXCOORD_NORMAL;
23
18
  #ifdef HAS_NORMAL_TEXTURE_TRANSFORM
24
- texCoord = vec2(u_normalTextureTransform * vec3(texCoord, 1.0));
19
+ texCoord = czm_computeTextureTransform(texCoord, u_normalTextureTransform);
25
20
  #endif
26
21
  return texCoord;
27
22
  }
@@ -64,7 +59,18 @@ NormalInfo getNormalInfo(ProcessedAttributes attributes)
64
59
 
65
60
  #ifdef HAS_NORMAL_TEXTURE
66
61
  mat3 tbn = mat3(tangent, bitangent, geometryNormal);
67
- vec3 normalSample = texture(u_normalTexture, normalTexCoords).rgb;
62
+
63
+ vec3 normalSample;
64
+ #if defined(HAS_NORMAL_CONSTANT_LOD) && defined(HAS_CONSTANT_LOD)
65
+ #ifdef HAS_NORMAL_TEXTURE_TRANSFORM
66
+ normalSample = constantLodTextureLookup(u_normalTexture, u_normalTextureConstantLodParams, u_normalTextureTransform).rgb;
67
+ #else
68
+ normalSample = constantLodTextureLookup(u_normalTexture, u_normalTextureConstantLodParams).rgb;
69
+ #endif
70
+ #else
71
+ normalSample = texture(u_normalTexture, normalTexCoords).rgb;
72
+ #endif
73
+
68
74
  normalSample = 2.0 * normalSample - 1.0;
69
75
  #ifdef HAS_NORMAL_TEXTURE_SCALE
70
76
  normalSample.xy *= u_normalTextureScale;
@@ -109,7 +115,18 @@ vec3 getNormalFromTexture(ProcessedAttributes attributes, vec3 geometryNormal)
109
115
  #endif
110
116
 
111
117
  mat3 tbn = mat3(t, b, geometryNormal);
112
- vec3 normalSample = texture(u_normalTexture, normalTexCoords).rgb;
118
+
119
+ vec3 normalSample;
120
+ #if defined(HAS_NORMAL_CONSTANT_LOD) && defined(HAS_CONSTANT_LOD)
121
+ #ifdef HAS_NORMAL_TEXTURE_TRANSFORM
122
+ normalSample = constantLodTextureLookup(u_normalTexture, u_normalTextureConstantLodParams, u_normalTextureTransform).rgb;
123
+ #else
124
+ normalSample = constantLodTextureLookup(u_normalTexture, u_normalTextureConstantLodParams).rgb;
125
+ #endif
126
+ #else
127
+ normalSample = texture(u_normalTexture, normalTexCoords).rgb;
128
+ #endif
129
+
113
130
  normalSample = 2.0 * normalSample - 1.0;
114
131
  #ifdef HAS_NORMAL_TEXTURE_SCALE
115
132
  normalSample.xy *= u_normalTextureScale;
@@ -171,10 +188,19 @@ vec4 getBaseColorFromTexture()
171
188
  {
172
189
  vec2 baseColorTexCoords = TEXCOORD_BASE_COLOR;
173
190
  #ifdef HAS_BASE_COLOR_TEXTURE_TRANSFORM
174
- baseColorTexCoords = computeTextureTransform(baseColorTexCoords, u_baseColorTextureTransform);
191
+ baseColorTexCoords = czm_computeTextureTransform(baseColorTexCoords, u_baseColorTextureTransform);
175
192
  #endif
176
193
 
177
- vec4 baseColorWithAlpha = czm_srgbToLinear(texture(u_baseColorTexture, baseColorTexCoords));
194
+ vec4 baseColorWithAlpha;
195
+ #if defined(HAS_BASE_COLOR_CONSTANT_LOD) && defined(HAS_CONSTANT_LOD)
196
+ #ifdef HAS_BASE_COLOR_TEXTURE_TRANSFORM
197
+ baseColorWithAlpha = czm_srgbToLinear(constantLodTextureLookup(u_baseColorTexture, u_baseColorTextureConstantLodParams, u_baseColorTextureTransform));
198
+ #else
199
+ baseColorWithAlpha = czm_srgbToLinear(constantLodTextureLookup(u_baseColorTexture, u_baseColorTextureConstantLodParams));
200
+ #endif
201
+ #else
202
+ baseColorWithAlpha = czm_srgbToLinear(texture(u_baseColorTexture, baseColorTexCoords));
203
+ #endif
178
204
 
179
205
  #ifdef HAS_BASE_COLOR_FACTOR
180
206
  baseColorWithAlpha *= u_baseColorFactor;
@@ -189,7 +215,7 @@ vec3 getEmissiveFromTexture()
189
215
  {
190
216
  vec2 emissiveTexCoords = TEXCOORD_EMISSIVE;
191
217
  #ifdef HAS_EMISSIVE_TEXTURE_TRANSFORM
192
- emissiveTexCoords = computeTextureTransform(emissiveTexCoords, u_emissiveTextureTransform);
218
+ emissiveTexCoords = czm_computeTextureTransform(emissiveTexCoords, u_emissiveTextureTransform);
193
219
  #endif
194
220
 
195
221
  vec3 emissive = czm_srgbToLinear(texture(u_emissiveTexture, emissiveTexCoords).rgb);
@@ -207,7 +233,7 @@ void setSpecularGlossiness(inout czm_modelMaterial material)
207
233
  #ifdef HAS_SPECULAR_GLOSSINESS_TEXTURE
208
234
  vec2 specularGlossinessTexCoords = TEXCOORD_SPECULAR_GLOSSINESS;
209
235
  #ifdef HAS_SPECULAR_GLOSSINESS_TEXTURE_TRANSFORM
210
- specularGlossinessTexCoords = computeTextureTransform(specularGlossinessTexCoords, u_specularGlossinessTextureTransform);
236
+ specularGlossinessTexCoords = czm_computeTextureTransform(specularGlossinessTexCoords, u_specularGlossinessTextureTransform);
211
237
  #endif
212
238
 
213
239
  vec4 specularGlossiness = czm_srgbToLinear(texture(u_specularGlossinessTexture, specularGlossinessTexCoords));
@@ -237,7 +263,7 @@ void setSpecularGlossiness(inout czm_modelMaterial material)
237
263
  #ifdef HAS_DIFFUSE_TEXTURE
238
264
  vec2 diffuseTexCoords = TEXCOORD_DIFFUSE;
239
265
  #ifdef HAS_DIFFUSE_TEXTURE_TRANSFORM
240
- diffuseTexCoords = computeTextureTransform(diffuseTexCoords, u_diffuseTextureTransform);
266
+ diffuseTexCoords = czm_computeTextureTransform(diffuseTexCoords, u_diffuseTextureTransform);
241
267
  #endif
242
268
 
243
269
  vec4 diffuse = czm_srgbToLinear(texture(u_diffuseTexture, diffuseTexCoords));
@@ -266,7 +292,7 @@ float setMetallicRoughness(inout czm_modelMaterial material)
266
292
  #ifdef HAS_METALLIC_ROUGHNESS_TEXTURE
267
293
  vec2 metallicRoughnessTexCoords = TEXCOORD_METALLIC_ROUGHNESS;
268
294
  #ifdef HAS_METALLIC_ROUGHNESS_TEXTURE_TRANSFORM
269
- metallicRoughnessTexCoords = computeTextureTransform(metallicRoughnessTexCoords, u_metallicRoughnessTextureTransform);
295
+ metallicRoughnessTexCoords = czm_computeTextureTransform(metallicRoughnessTexCoords, u_metallicRoughnessTextureTransform);
270
296
  #endif
271
297
 
272
298
  vec3 metallicRoughness = texture(u_metallicRoughnessTexture, metallicRoughnessTexCoords).rgb;
@@ -313,7 +339,7 @@ void setSpecular(inout czm_modelMaterial material, in float metalness)
313
339
  #ifdef HAS_SPECULAR_TEXTURE
314
340
  vec2 specularTexCoords = TEXCOORD_SPECULAR;
315
341
  #ifdef HAS_SPECULAR_TEXTURE_TRANSFORM
316
- specularTexCoords = computeTextureTransform(specularTexCoords, u_specularTextureTransform);
342
+ specularTexCoords = czm_computeTextureTransform(specularTexCoords, u_specularTextureTransform);
317
343
  #endif
318
344
  float specularWeight = texture(u_specularTexture, specularTexCoords).a;
319
345
  #ifdef HAS_SPECULAR_FACTOR
@@ -330,7 +356,7 @@ void setSpecular(inout czm_modelMaterial material, in float metalness)
330
356
  #ifdef HAS_SPECULAR_COLOR_TEXTURE
331
357
  vec2 specularColorTexCoords = TEXCOORD_SPECULAR_COLOR;
332
358
  #ifdef HAS_SPECULAR_COLOR_TEXTURE_TRANSFORM
333
- specularColorTexCoords = computeTextureTransform(specularColorTexCoords, u_specularColorTextureTransform);
359
+ specularColorTexCoords = czm_computeTextureTransform(specularColorTexCoords, u_specularColorTextureTransform);
334
360
  #endif
335
361
  vec3 specularColorSample = texture(u_specularColorTexture, specularColorTexCoords).rgb;
336
362
  vec3 specularColorFactor = czm_srgbToLinear(specularColorSample);
@@ -360,7 +386,7 @@ void setAnisotropy(inout czm_modelMaterial material, in NormalInfo normalInfo)
360
386
  #ifdef HAS_ANISOTROPY_TEXTURE
361
387
  vec2 anisotropyTexCoords = TEXCOORD_ANISOTROPY;
362
388
  #ifdef HAS_ANISOTROPY_TEXTURE_TRANSFORM
363
- anisotropyTexCoords = computeTextureTransform(anisotropyTexCoords, u_anisotropyTextureTransform);
389
+ anisotropyTexCoords = czm_computeTextureTransform(anisotropyTexCoords, u_anisotropyTextureTransform);
364
390
  #endif
365
391
  vec3 anisotropySample = texture(u_anisotropyTexture, anisotropyTexCoords).rgb;
366
392
  direction = anisotropySample.rg * 2.0 - vec2(1.0);
@@ -383,7 +409,7 @@ void setClearcoat(inout czm_modelMaterial material, in ProcessedAttributes attri
383
409
  #ifdef HAS_CLEARCOAT_TEXTURE
384
410
  vec2 clearcoatTexCoords = TEXCOORD_CLEARCOAT;
385
411
  #ifdef HAS_CLEARCOAT_TEXTURE_TRANSFORM
386
- clearcoatTexCoords = computeTextureTransform(clearcoatTexCoords, u_clearcoatTextureTransform);
412
+ clearcoatTexCoords = czm_computeTextureTransform(clearcoatTexCoords, u_clearcoatTextureTransform);
387
413
  #endif
388
414
  float clearcoatFactor = texture(u_clearcoatTexture, clearcoatTexCoords).r;
389
415
  #ifdef HAS_CLEARCOAT_FACTOR
@@ -401,7 +427,7 @@ void setClearcoat(inout czm_modelMaterial material, in ProcessedAttributes attri
401
427
  #ifdef HAS_CLEARCOAT_ROUGHNESS_TEXTURE
402
428
  vec2 clearcoatRoughnessTexCoords = TEXCOORD_CLEARCOAT_ROUGHNESS;
403
429
  #ifdef HAS_CLEARCOAT_ROUGHNESS_TEXTURE_TRANSFORM
404
- clearcoatRoughnessTexCoords = computeTextureTransform(clearcoatRoughnessTexCoords, u_clearcoatRoughnessTextureTransform);
430
+ clearcoatRoughnessTexCoords = czm_computeTextureTransform(clearcoatRoughnessTexCoords, u_clearcoatRoughnessTextureTransform);
405
431
  #endif
406
432
  float clearcoatRoughness = texture(u_clearcoatRoughnessTexture, clearcoatRoughnessTexCoords).g;
407
433
  #ifdef HAS_CLEARCOAT_ROUGHNESS_FACTOR
@@ -469,7 +495,7 @@ void materialStage(inout czm_modelMaterial material, ProcessedAttributes attribu
469
495
  #ifdef HAS_OCCLUSION_TEXTURE
470
496
  vec2 occlusionTexCoords = TEXCOORD_OCCLUSION;
471
497
  #ifdef HAS_OCCLUSION_TEXTURE_TRANSFORM
472
- occlusionTexCoords = computeTextureTransform(occlusionTexCoords, u_occlusionTextureTransform);
498
+ occlusionTexCoords = czm_computeTextureTransform(occlusionTexCoords, u_occlusionTextureTransform);
473
499
  #endif
474
500
  material.occlusion = texture(u_occlusionTexture, occlusionTexCoords).r;
475
501
  #endif
@@ -12,17 +12,12 @@ vec3 blend(vec3 sourceColor, vec3 styleColor, float styleColorBlend)\n\
12
12
  return color;\n\
13
13
  }\n\
14
14
  \n\
15
- vec2 computeTextureTransform(vec2 texCoord, mat3 textureTransform)\n\
16
- {\n\
17
- return vec2(textureTransform * vec3(texCoord, 1.0));\n\
18
- }\n\
19
- \n\
20
15
  #ifdef HAS_NORMAL_TEXTURE\n\
21
16
  vec2 getNormalTexCoords()\n\
22
17
  {\n\
23
18
  vec2 texCoord = TEXCOORD_NORMAL;\n\
24
19
  #ifdef HAS_NORMAL_TEXTURE_TRANSFORM\n\
25
- texCoord = vec2(u_normalTextureTransform * vec3(texCoord, 1.0));\n\
20
+ texCoord = czm_computeTextureTransform(texCoord, u_normalTextureTransform);\n\
26
21
  #endif\n\
27
22
  return texCoord;\n\
28
23
  }\n\
@@ -65,7 +60,18 @@ NormalInfo getNormalInfo(ProcessedAttributes attributes)\n\
65
60
  \n\
66
61
  #ifdef HAS_NORMAL_TEXTURE\n\
67
62
  mat3 tbn = mat3(tangent, bitangent, geometryNormal);\n\
68
- vec3 normalSample = texture(u_normalTexture, normalTexCoords).rgb;\n\
63
+ \n\
64
+ vec3 normalSample;\n\
65
+ #if defined(HAS_NORMAL_CONSTANT_LOD) && defined(HAS_CONSTANT_LOD)\n\
66
+ #ifdef HAS_NORMAL_TEXTURE_TRANSFORM\n\
67
+ normalSample = constantLodTextureLookup(u_normalTexture, u_normalTextureConstantLodParams, u_normalTextureTransform).rgb;\n\
68
+ #else\n\
69
+ normalSample = constantLodTextureLookup(u_normalTexture, u_normalTextureConstantLodParams).rgb;\n\
70
+ #endif\n\
71
+ #else\n\
72
+ normalSample = texture(u_normalTexture, normalTexCoords).rgb;\n\
73
+ #endif\n\
74
+ \n\
69
75
  normalSample = 2.0 * normalSample - 1.0;\n\
70
76
  #ifdef HAS_NORMAL_TEXTURE_SCALE\n\
71
77
  normalSample.xy *= u_normalTextureScale;\n\
@@ -110,7 +116,18 @@ vec3 getNormalFromTexture(ProcessedAttributes attributes, vec3 geometryNormal)\n
110
116
  #endif\n\
111
117
  \n\
112
118
  mat3 tbn = mat3(t, b, geometryNormal);\n\
113
- vec3 normalSample = texture(u_normalTexture, normalTexCoords).rgb;\n\
119
+ \n\
120
+ vec3 normalSample;\n\
121
+ #if defined(HAS_NORMAL_CONSTANT_LOD) && defined(HAS_CONSTANT_LOD)\n\
122
+ #ifdef HAS_NORMAL_TEXTURE_TRANSFORM\n\
123
+ normalSample = constantLodTextureLookup(u_normalTexture, u_normalTextureConstantLodParams, u_normalTextureTransform).rgb;\n\
124
+ #else\n\
125
+ normalSample = constantLodTextureLookup(u_normalTexture, u_normalTextureConstantLodParams).rgb;\n\
126
+ #endif\n\
127
+ #else\n\
128
+ normalSample = texture(u_normalTexture, normalTexCoords).rgb;\n\
129
+ #endif\n\
130
+ \n\
114
131
  normalSample = 2.0 * normalSample - 1.0;\n\
115
132
  #ifdef HAS_NORMAL_TEXTURE_SCALE\n\
116
133
  normalSample.xy *= u_normalTextureScale;\n\
@@ -172,10 +189,19 @@ vec4 getBaseColorFromTexture()\n\
172
189
  {\n\
173
190
  vec2 baseColorTexCoords = TEXCOORD_BASE_COLOR;\n\
174
191
  #ifdef HAS_BASE_COLOR_TEXTURE_TRANSFORM\n\
175
- baseColorTexCoords = computeTextureTransform(baseColorTexCoords, u_baseColorTextureTransform);\n\
192
+ baseColorTexCoords = czm_computeTextureTransform(baseColorTexCoords, u_baseColorTextureTransform);\n\
176
193
  #endif\n\
177
194
  \n\
178
- vec4 baseColorWithAlpha = czm_srgbToLinear(texture(u_baseColorTexture, baseColorTexCoords));\n\
195
+ vec4 baseColorWithAlpha;\n\
196
+ #if defined(HAS_BASE_COLOR_CONSTANT_LOD) && defined(HAS_CONSTANT_LOD)\n\
197
+ #ifdef HAS_BASE_COLOR_TEXTURE_TRANSFORM\n\
198
+ baseColorWithAlpha = czm_srgbToLinear(constantLodTextureLookup(u_baseColorTexture, u_baseColorTextureConstantLodParams, u_baseColorTextureTransform));\n\
199
+ #else\n\
200
+ baseColorWithAlpha = czm_srgbToLinear(constantLodTextureLookup(u_baseColorTexture, u_baseColorTextureConstantLodParams));\n\
201
+ #endif\n\
202
+ #else\n\
203
+ baseColorWithAlpha = czm_srgbToLinear(texture(u_baseColorTexture, baseColorTexCoords));\n\
204
+ #endif\n\
179
205
  \n\
180
206
  #ifdef HAS_BASE_COLOR_FACTOR\n\
181
207
  baseColorWithAlpha *= u_baseColorFactor;\n\
@@ -190,7 +216,7 @@ vec3 getEmissiveFromTexture()\n\
190
216
  {\n\
191
217
  vec2 emissiveTexCoords = TEXCOORD_EMISSIVE;\n\
192
218
  #ifdef HAS_EMISSIVE_TEXTURE_TRANSFORM\n\
193
- emissiveTexCoords = computeTextureTransform(emissiveTexCoords, u_emissiveTextureTransform);\n\
219
+ emissiveTexCoords = czm_computeTextureTransform(emissiveTexCoords, u_emissiveTextureTransform);\n\
194
220
  #endif\n\
195
221
  \n\
196
222
  vec3 emissive = czm_srgbToLinear(texture(u_emissiveTexture, emissiveTexCoords).rgb);\n\
@@ -208,7 +234,7 @@ void setSpecularGlossiness(inout czm_modelMaterial material)\n\
208
234
  #ifdef HAS_SPECULAR_GLOSSINESS_TEXTURE\n\
209
235
  vec2 specularGlossinessTexCoords = TEXCOORD_SPECULAR_GLOSSINESS;\n\
210
236
  #ifdef HAS_SPECULAR_GLOSSINESS_TEXTURE_TRANSFORM\n\
211
- specularGlossinessTexCoords = computeTextureTransform(specularGlossinessTexCoords, u_specularGlossinessTextureTransform);\n\
237
+ specularGlossinessTexCoords = czm_computeTextureTransform(specularGlossinessTexCoords, u_specularGlossinessTextureTransform);\n\
212
238
  #endif\n\
213
239
  \n\
214
240
  vec4 specularGlossiness = czm_srgbToLinear(texture(u_specularGlossinessTexture, specularGlossinessTexCoords));\n\
@@ -238,7 +264,7 @@ void setSpecularGlossiness(inout czm_modelMaterial material)\n\
238
264
  #ifdef HAS_DIFFUSE_TEXTURE\n\
239
265
  vec2 diffuseTexCoords = TEXCOORD_DIFFUSE;\n\
240
266
  #ifdef HAS_DIFFUSE_TEXTURE_TRANSFORM\n\
241
- diffuseTexCoords = computeTextureTransform(diffuseTexCoords, u_diffuseTextureTransform);\n\
267
+ diffuseTexCoords = czm_computeTextureTransform(diffuseTexCoords, u_diffuseTextureTransform);\n\
242
268
  #endif\n\
243
269
  \n\
244
270
  vec4 diffuse = czm_srgbToLinear(texture(u_diffuseTexture, diffuseTexCoords));\n\
@@ -267,7 +293,7 @@ float setMetallicRoughness(inout czm_modelMaterial material)\n\
267
293
  #ifdef HAS_METALLIC_ROUGHNESS_TEXTURE\n\
268
294
  vec2 metallicRoughnessTexCoords = TEXCOORD_METALLIC_ROUGHNESS;\n\
269
295
  #ifdef HAS_METALLIC_ROUGHNESS_TEXTURE_TRANSFORM\n\
270
- metallicRoughnessTexCoords = computeTextureTransform(metallicRoughnessTexCoords, u_metallicRoughnessTextureTransform);\n\
296
+ metallicRoughnessTexCoords = czm_computeTextureTransform(metallicRoughnessTexCoords, u_metallicRoughnessTextureTransform);\n\
271
297
  #endif\n\
272
298
  \n\
273
299
  vec3 metallicRoughness = texture(u_metallicRoughnessTexture, metallicRoughnessTexCoords).rgb;\n\
@@ -314,7 +340,7 @@ void setSpecular(inout czm_modelMaterial material, in float metalness)\n\
314
340
  #ifdef HAS_SPECULAR_TEXTURE\n\
315
341
  vec2 specularTexCoords = TEXCOORD_SPECULAR;\n\
316
342
  #ifdef HAS_SPECULAR_TEXTURE_TRANSFORM\n\
317
- specularTexCoords = computeTextureTransform(specularTexCoords, u_specularTextureTransform);\n\
343
+ specularTexCoords = czm_computeTextureTransform(specularTexCoords, u_specularTextureTransform);\n\
318
344
  #endif\n\
319
345
  float specularWeight = texture(u_specularTexture, specularTexCoords).a;\n\
320
346
  #ifdef HAS_SPECULAR_FACTOR\n\
@@ -331,7 +357,7 @@ void setSpecular(inout czm_modelMaterial material, in float metalness)\n\
331
357
  #ifdef HAS_SPECULAR_COLOR_TEXTURE\n\
332
358
  vec2 specularColorTexCoords = TEXCOORD_SPECULAR_COLOR;\n\
333
359
  #ifdef HAS_SPECULAR_COLOR_TEXTURE_TRANSFORM\n\
334
- specularColorTexCoords = computeTextureTransform(specularColorTexCoords, u_specularColorTextureTransform);\n\
360
+ specularColorTexCoords = czm_computeTextureTransform(specularColorTexCoords, u_specularColorTextureTransform);\n\
335
361
  #endif\n\
336
362
  vec3 specularColorSample = texture(u_specularColorTexture, specularColorTexCoords).rgb;\n\
337
363
  vec3 specularColorFactor = czm_srgbToLinear(specularColorSample);\n\
@@ -361,7 +387,7 @@ void setAnisotropy(inout czm_modelMaterial material, in NormalInfo normalInfo)\n
361
387
  #ifdef HAS_ANISOTROPY_TEXTURE\n\
362
388
  vec2 anisotropyTexCoords = TEXCOORD_ANISOTROPY;\n\
363
389
  #ifdef HAS_ANISOTROPY_TEXTURE_TRANSFORM\n\
364
- anisotropyTexCoords = computeTextureTransform(anisotropyTexCoords, u_anisotropyTextureTransform);\n\
390
+ anisotropyTexCoords = czm_computeTextureTransform(anisotropyTexCoords, u_anisotropyTextureTransform);\n\
365
391
  #endif\n\
366
392
  vec3 anisotropySample = texture(u_anisotropyTexture, anisotropyTexCoords).rgb;\n\
367
393
  direction = anisotropySample.rg * 2.0 - vec2(1.0);\n\
@@ -384,7 +410,7 @@ void setClearcoat(inout czm_modelMaterial material, in ProcessedAttributes attri
384
410
  #ifdef HAS_CLEARCOAT_TEXTURE\n\
385
411
  vec2 clearcoatTexCoords = TEXCOORD_CLEARCOAT;\n\
386
412
  #ifdef HAS_CLEARCOAT_TEXTURE_TRANSFORM\n\
387
- clearcoatTexCoords = computeTextureTransform(clearcoatTexCoords, u_clearcoatTextureTransform);\n\
413
+ clearcoatTexCoords = czm_computeTextureTransform(clearcoatTexCoords, u_clearcoatTextureTransform);\n\
388
414
  #endif\n\
389
415
  float clearcoatFactor = texture(u_clearcoatTexture, clearcoatTexCoords).r;\n\
390
416
  #ifdef HAS_CLEARCOAT_FACTOR\n\
@@ -402,7 +428,7 @@ void setClearcoat(inout czm_modelMaterial material, in ProcessedAttributes attri
402
428
  #ifdef HAS_CLEARCOAT_ROUGHNESS_TEXTURE\n\
403
429
  vec2 clearcoatRoughnessTexCoords = TEXCOORD_CLEARCOAT_ROUGHNESS;\n\
404
430
  #ifdef HAS_CLEARCOAT_ROUGHNESS_TEXTURE_TRANSFORM\n\
405
- clearcoatRoughnessTexCoords = computeTextureTransform(clearcoatRoughnessTexCoords, u_clearcoatRoughnessTextureTransform);\n\
431
+ clearcoatRoughnessTexCoords = czm_computeTextureTransform(clearcoatRoughnessTexCoords, u_clearcoatRoughnessTextureTransform);\n\
406
432
  #endif\n\
407
433
  float clearcoatRoughness = texture(u_clearcoatRoughnessTexture, clearcoatRoughnessTexCoords).g;\n\
408
434
  #ifdef HAS_CLEARCOAT_ROUGHNESS_FACTOR\n\
@@ -470,7 +496,7 @@ void materialStage(inout czm_modelMaterial material, ProcessedAttributes attribu
470
496
  #ifdef HAS_OCCLUSION_TEXTURE\n\
471
497
  vec2 occlusionTexCoords = TEXCOORD_OCCLUSION;\n\
472
498
  #ifdef HAS_OCCLUSION_TEXTURE_TRANSFORM\n\
473
- occlusionTexCoords = computeTextureTransform(occlusionTexCoords, u_occlusionTextureTransform);\n\
499
+ occlusionTexCoords = czm_computeTextureTransform(occlusionTexCoords, u_occlusionTextureTransform);\n\
474
500
  #endif\n\
475
501
  material.occlusion = texture(u_occlusionTexture, occlusionTexCoords).r;\n\
476
502
  #endif\n\
@@ -1,5 +1,4 @@
1
1
  uniform vec3 u_boxLocalToShapeUvScale;
2
- uniform vec3 u_boxLocalToShapeUvTranslate;
3
2
 
4
3
  uniform ivec4 u_cameraTileCoordinates;
5
4
  uniform vec3 u_cameraTileUv;
@@ -1,6 +1,5 @@
1
1
  //This file is automatically rebuilt by the Cesium build process.
2
2
  export default "uniform vec3 u_boxLocalToShapeUvScale;\n\
3
- uniform vec3 u_boxLocalToShapeUvTranslate;\n\
4
3
  \n\
5
4
  uniform ivec4 u_cameraTileCoordinates;\n\
6
5
  uniform vec3 u_cameraTileUv;\n\
@@ -1,6 +1,4 @@
1
- uniform vec2 u_cylinderLocalToShapeUvRadius; // x = scale, y = offset
2
- uniform vec2 u_cylinderLocalToShapeUvHeight; // x = scale, y = offset
3
- uniform vec2 u_cylinderLocalToShapeUvAngle; // x = scale, y = offset
1
+ uniform vec3 u_cylinderLocalToShapeUvScale; // x = radius scale, y = angle scale, z = height scale
4
2
  uniform float u_cylinderShapeUvAngleRangeOrigin;
5
3
  uniform mat3 u_cylinderEcToRadialTangentUp;
6
4
  uniform ivec4 u_cameraTileCoordinates;
@@ -15,9 +13,9 @@ mat3 convertLocalToShapeSpaceDerivative(in vec3 position) {
15
13
  }
16
14
 
17
15
  vec3 scaleShapeUvToShapeSpace(in vec3 shapeUv) {
18
- float radius = shapeUv.x / u_cylinderLocalToShapeUvRadius.x;
19
- float angle = shapeUv.y * czm_twoPi / u_cylinderLocalToShapeUvAngle.x;
20
- float height = shapeUv.z / u_cylinderLocalToShapeUvHeight.x;
16
+ float radius = shapeUv.x / u_cylinderLocalToShapeUvScale.x;
17
+ float angle = shapeUv.y * czm_twoPi / u_cylinderLocalToShapeUvScale.y;
18
+ float height = shapeUv.z / u_cylinderLocalToShapeUvScale.z;
21
19
 
22
20
  return vec3(radius, angle, height);
23
21
  }
@@ -49,7 +47,7 @@ vec3 convertEcToDeltaShape(in vec3 positionEC) {
49
47
  vec3 convertEcToDeltaTile(in vec3 positionEC) {
50
48
  vec3 deltaShape = convertEcToDeltaShape(positionEC);
51
49
  // Convert to tileset coordinates in [0, 1]
52
- float dx = u_cylinderLocalToShapeUvRadius.x * deltaShape.x;
50
+ float dx = u_cylinderLocalToShapeUvScale.x * deltaShape.x;
53
51
  float dy = deltaShape.y / czm_twoPi;
54
52
  #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE)
55
53
  // Wrap to ensure dy is not crossing through the unoccupied angle range, where
@@ -60,8 +58,8 @@ vec3 convertEcToDeltaTile(in vec3 positionEC) {
60
58
  float rotation = floor(rawOutputUvAngle);
61
59
  dy -= rotation;
62
60
  #endif
63
- dy *= u_cylinderLocalToShapeUvAngle.x;
64
- float dz = u_cylinderLocalToShapeUvHeight.x * deltaShape.z;
61
+ dy *= u_cylinderLocalToShapeUvScale.y;
62
+ float dz = u_cylinderLocalToShapeUvScale.z * deltaShape.z;
65
63
  // Convert to tile coordinate changes
66
64
  return vec3(dx, dy, dz) * float(1 << u_cameraTileCoordinates.w);
67
65
  }
@@ -1,7 +1,5 @@
1
1
  //This file is automatically rebuilt by the Cesium build process.
2
- export default "uniform vec2 u_cylinderLocalToShapeUvRadius; // x = scale, y = offset\n\
3
- uniform vec2 u_cylinderLocalToShapeUvHeight; // x = scale, y = offset\n\
4
- uniform vec2 u_cylinderLocalToShapeUvAngle; // x = scale, y = offset\n\
2
+ export default "uniform vec3 u_cylinderLocalToShapeUvScale; // x = radius scale, y = angle scale, z = height scale\n\
5
3
  uniform float u_cylinderShapeUvAngleRangeOrigin;\n\
6
4
  uniform mat3 u_cylinderEcToRadialTangentUp;\n\
7
5
  uniform ivec4 u_cameraTileCoordinates;\n\
@@ -16,9 +14,9 @@ mat3 convertLocalToShapeSpaceDerivative(in vec3 position) {\n\
16
14
  }\n\
17
15
  \n\
18
16
  vec3 scaleShapeUvToShapeSpace(in vec3 shapeUv) {\n\
19
- float radius = shapeUv.x / u_cylinderLocalToShapeUvRadius.x;\n\
20
- float angle = shapeUv.y * czm_twoPi / u_cylinderLocalToShapeUvAngle.x;\n\
21
- float height = shapeUv.z / u_cylinderLocalToShapeUvHeight.x;\n\
17
+ float radius = shapeUv.x / u_cylinderLocalToShapeUvScale.x;\n\
18
+ float angle = shapeUv.y * czm_twoPi / u_cylinderLocalToShapeUvScale.y;\n\
19
+ float height = shapeUv.z / u_cylinderLocalToShapeUvScale.z;\n\
22
20
  \n\
23
21
  return vec3(radius, angle, height);\n\
24
22
  }\n\
@@ -50,7 +48,7 @@ vec3 convertEcToDeltaShape(in vec3 positionEC) {\n\
50
48
  vec3 convertEcToDeltaTile(in vec3 positionEC) {\n\
51
49
  vec3 deltaShape = convertEcToDeltaShape(positionEC);\n\
52
50
  // Convert to tileset coordinates in [0, 1]\n\
53
- float dx = u_cylinderLocalToShapeUvRadius.x * deltaShape.x;\n\
51
+ float dx = u_cylinderLocalToShapeUvScale.x * deltaShape.x;\n\
54
52
  float dy = deltaShape.y / czm_twoPi;\n\
55
53
  #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE)\n\
56
54
  // Wrap to ensure dy is not crossing through the unoccupied angle range, where\n\
@@ -61,8 +59,8 @@ vec3 convertEcToDeltaTile(in vec3 positionEC) {\n\
61
59
  float rotation = floor(rawOutputUvAngle);\n\
62
60
  dy -= rotation;\n\
63
61
  #endif\n\
64
- dy *= u_cylinderLocalToShapeUvAngle.x;\n\
65
- float dz = u_cylinderLocalToShapeUvHeight.x * deltaShape.z;\n\
62
+ dy *= u_cylinderLocalToShapeUvScale.y;\n\
63
+ float dz = u_cylinderLocalToShapeUvScale.z * deltaShape.z;\n\
66
64
  // Convert to tile coordinate changes\n\
67
65
  return vec3(dx, dy, dz) * float(1 << u_cameraTileCoordinates.w);\n\
68
66
  }\n\
@@ -1,8 +1,5 @@
1
1
  /* Ellipsoid defines (set in Scene/VoxelEllipsoidShape.js)
2
- #define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY
3
- #define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY
4
2
  #define ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE
5
- #define ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED
6
3
  #define ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE
7
4
  */
8
5
 
@@ -12,17 +9,10 @@ uniform mat3 u_ellipsoidEcToEastNorthUp;
12
9
  uniform vec3 u_ellipsoidRadii;
13
10
  uniform vec2 u_evoluteScale; // (radii.x ^ 2 - radii.z ^ 2) * vec2(1.0, -1.0) / radii;
14
11
  uniform vec3 u_ellipsoidInverseRadiiSquared;
15
- #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY) || defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED)
16
- uniform vec3 u_ellipsoidShapeUvLongitudeMinMaxMid;
17
- #endif
18
12
  #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE)
19
- uniform vec2 u_ellipsoidLocalToShapeUvLongitude; // x = scale, y = offset
20
13
  uniform float u_ellipsoidShapeUvLongitudeRangeOrigin;
21
14
  #endif
22
- #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE)
23
- uniform vec2 u_ellipsoidLocalToShapeUvLatitude; // x = scale, y = offset
24
- #endif
25
- uniform float u_ellipsoidInverseHeightDifference;
15
+ uniform vec3 u_ellipsoidLocalToShapeUvScale; // x = longitude scale, y = latitude scale, z = height scale
26
16
 
27
17
  uniform ivec4 u_cameraTileCoordinates;
28
18
  uniform vec3 u_cameraTileUv;
@@ -82,16 +72,16 @@ vec3 scaleShapeUvToShapeSpace(in vec3 shapeUv) {
82
72
  // Convert from [0, 1] to radians [-pi, pi]
83
73
  float longitude = shapeUv.x * czm_twoPi;
84
74
  #if defined (ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE)
85
- longitude /= u_ellipsoidLocalToShapeUvLongitude.x;
75
+ longitude /= u_ellipsoidLocalToShapeUvScale.x;
86
76
  #endif
87
77
 
88
78
  // Convert from [0, 1] to radians [-pi/2, pi/2]
89
79
  float latitude = shapeUv.y * czm_pi;
90
80
  #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE)
91
- latitude /= u_ellipsoidLocalToShapeUvLatitude.x;
81
+ latitude /= u_ellipsoidLocalToShapeUvScale.y;
92
82
  #endif
93
83
 
94
- float height = shapeUv.z / u_ellipsoidInverseHeightDifference;
84
+ float height = shapeUv.z / u_ellipsoidLocalToShapeUvScale.z;
95
85
 
96
86
  return vec3(longitude, latitude, height);
97
87
  }
@@ -149,15 +139,15 @@ vec3 convertEcToDeltaTile(in vec3 positionEC) {
149
139
  float rawOutputUvLongitude = cameraUvLongitudeShift + dx;
150
140
  float rotation = floor(rawOutputUvLongitude);
151
141
  dx -= rotation;
152
- dx *= u_ellipsoidLocalToShapeUvLongitude.x;
142
+ dx *= u_ellipsoidLocalToShapeUvScale.x;
153
143
  #endif
154
144
 
155
145
  float dy = deltaShape.y / czm_pi;
156
146
  #if (defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE))
157
- dy *= u_ellipsoidLocalToShapeUvLatitude.x;
147
+ dy *= u_ellipsoidLocalToShapeUvScale.y;
158
148
  #endif
159
149
 
160
- float dz = u_ellipsoidInverseHeightDifference * deltaShape.z;
150
+ float dz = u_ellipsoidLocalToShapeUvScale.z * deltaShape.z;
161
151
  // Convert to tile coordinate changes
162
152
  return vec3(dx, dy, dz) * float(1 << u_cameraTileCoordinates.w);
163
153
  }
@@ -1,9 +1,6 @@
1
1
  //This file is automatically rebuilt by the Cesium build process.
2
2
  export default "/* Ellipsoid defines (set in Scene/VoxelEllipsoidShape.js)\n\
3
- #define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY\n\
4
- #define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY\n\
5
3
  #define ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE\n\
6
- #define ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED\n\
7
4
  #define ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE\n\
8
5
  */\n\
9
6
  \n\
@@ -13,17 +10,10 @@ uniform mat3 u_ellipsoidEcToEastNorthUp;\n\
13
10
  uniform vec3 u_ellipsoidRadii;\n\
14
11
  uniform vec2 u_evoluteScale; // (radii.x ^ 2 - radii.z ^ 2) * vec2(1.0, -1.0) / radii;\n\
15
12
  uniform vec3 u_ellipsoidInverseRadiiSquared;\n\
16
- #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY) || defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED)\n\
17
- uniform vec3 u_ellipsoidShapeUvLongitudeMinMaxMid;\n\
18
- #endif\n\
19
13
  #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE)\n\
20
- uniform vec2 u_ellipsoidLocalToShapeUvLongitude; // x = scale, y = offset\n\
21
14
  uniform float u_ellipsoidShapeUvLongitudeRangeOrigin;\n\
22
15
  #endif\n\
23
- #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE)\n\
24
- uniform vec2 u_ellipsoidLocalToShapeUvLatitude; // x = scale, y = offset\n\
25
- #endif\n\
26
- uniform float u_ellipsoidInverseHeightDifference;\n\
16
+ uniform vec3 u_ellipsoidLocalToShapeUvScale; // x = longitude scale, y = latitude scale, z = height scale\n\
27
17
  \n\
28
18
  uniform ivec4 u_cameraTileCoordinates;\n\
29
19
  uniform vec3 u_cameraTileUv;\n\
@@ -83,16 +73,16 @@ vec3 scaleShapeUvToShapeSpace(in vec3 shapeUv) {\n\
83
73
  // Convert from [0, 1] to radians [-pi, pi]\n\
84
74
  float longitude = shapeUv.x * czm_twoPi;\n\
85
75
  #if defined (ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE)\n\
86
- longitude /= u_ellipsoidLocalToShapeUvLongitude.x;\n\
76
+ longitude /= u_ellipsoidLocalToShapeUvScale.x;\n\
87
77
  #endif\n\
88
78
  \n\
89
79
  // Convert from [0, 1] to radians [-pi/2, pi/2]\n\
90
80
  float latitude = shapeUv.y * czm_pi;\n\
91
81
  #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE)\n\
92
- latitude /= u_ellipsoidLocalToShapeUvLatitude.x;\n\
82
+ latitude /= u_ellipsoidLocalToShapeUvScale.y;\n\
93
83
  #endif\n\
94
84
  \n\
95
- float height = shapeUv.z / u_ellipsoidInverseHeightDifference;\n\
85
+ float height = shapeUv.z / u_ellipsoidLocalToShapeUvScale.z;\n\
96
86
  \n\
97
87
  return vec3(longitude, latitude, height);\n\
98
88
  }\n\
@@ -150,15 +140,15 @@ vec3 convertEcToDeltaTile(in vec3 positionEC) {\n\
150
140
  float rawOutputUvLongitude = cameraUvLongitudeShift + dx;\n\
151
141
  float rotation = floor(rawOutputUvLongitude);\n\
152
142
  dx -= rotation;\n\
153
- dx *= u_ellipsoidLocalToShapeUvLongitude.x;\n\
143
+ dx *= u_ellipsoidLocalToShapeUvScale.x;\n\
154
144
  #endif\n\
155
145
  \n\
156
146
  float dy = deltaShape.y / czm_pi;\n\
157
147
  #if (defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE))\n\
158
- dy *= u_ellipsoidLocalToShapeUvLatitude.x;\n\
148
+ dy *= u_ellipsoidLocalToShapeUvScale.y;\n\
159
149
  #endif\n\
160
150
  \n\
161
- float dz = u_ellipsoidInverseHeightDifference * deltaShape.z;\n\
151
+ float dz = u_ellipsoidLocalToShapeUvScale.z * deltaShape.z;\n\
162
152
  // Convert to tile coordinate changes\n\
163
153
  return vec3(dx, dy, dz) * float(1 << u_cameraTileCoordinates.w);\n\
164
154
  }\n\
@@ -33,6 +33,7 @@ import SkyBox from "../Scene/SkyBox.js";
33
33
  import Sun from "../Scene/Sun.js";
34
34
  import TimeDynamicPointCloud from "../Scene/TimeDynamicPointCloud.js";
35
35
  import VoxelPrimitive from "../Scene/VoxelPrimitive.js";
36
+ import BufferPrimitiveCollection from "../Scene/BufferPrimitiveCollection.js";
36
37
 
37
38
  function trackDataSourceClock(clock, dataSource) {
38
39
  if (defined(dataSource)) {
@@ -1241,7 +1242,7 @@ CesiumWidget.prototype._onDataSourceRemoved = function (
1241
1242
  * target will be the range. The heading will be determined from the offset. If the heading cannot be
1242
1243
  * determined from the offset, the heading will be north.</p>
1243
1244
  *
1244
- * @param {Entity|Entity[]|EntityCollection|DataSource|ImageryLayer|Cesium3DTileset|TimeDynamicPointCloud|Promise<Entity|Entity[]|EntityCollection|DataSource|ImageryLayer|Cesium3DTileset|TimeDynamicPointCloud|VoxelPrimitive>} target The entity, array of entities, entity collection, data source, Cesium3DTileset, point cloud, or imagery layer to view. You can also pass a promise that resolves to one of the previously mentioned types.
1245
+ * @param {Entity|Entity[]|EntityCollection|DataSource|ImageryLayer|Cesium3DTileset|TimeDynamicPointCloud|Promise<Entity|Entity[]|EntityCollection|DataSource|ImageryLayer|Cesium3DTileset|TimeDynamicPointCloud|VoxelPrimitive|BufferPrimitiveCollection<BufferPrimitive>>} target The entity, array of entities, entity collection, data source, Cesium3DTileset, point cloud, or imagery layer to view. You can also pass a promise that resolves to one of the previously mentioned types.
1245
1246
  * @param {HeadingPitchRange} [offset] The offset from the center of the entity in the local east-north-up reference frame.
1246
1247
  * @returns {Promise<boolean>} A Promise that resolves to true if the zoom was successful or false if the target is not currently visualized in the scene or the zoom was cancelled.
1247
1248
  */
@@ -1267,7 +1268,7 @@ CesiumWidget.prototype.zoomTo = function (target, offset) {
1267
1268
  * target will be the range. The heading will be determined from the offset. If the heading cannot be
1268
1269
  * determined from the offset, the heading will be north.</p>
1269
1270
  *
1270
- * @param {Entity|Entity[]|EntityCollection|DataSource|ImageryLayer|Cesium3DTileset|TimeDynamicPointCloud|Promise<Entity|Entity[]|EntityCollection|DataSource|ImageryLayer|Cesium3DTileset|TimeDynamicPointCloud|VoxelPrimitive>} target The entity, array of entities, entity collection, data source, Cesium3DTileset, point cloud, or imagery layer to view. You can also pass a promise that resolves to one of the previously mentioned types.
1271
+ * @param {Entity|Entity[]|EntityCollection|DataSource|ImageryLayer|Cesium3DTileset|TimeDynamicPointCloud|Promise<Entity|Entity[]|EntityCollection|DataSource|ImageryLayer|Cesium3DTileset|TimeDynamicPointCloud|VoxelPrimitive|BufferPrimitiveCollection<BufferPrimitive>>} target The entity, array of entities, entity collection, data source, Cesium3DTileset, point cloud, or imagery layer to view. You can also pass a promise that resolves to one of the previously mentioned types.
1271
1272
  * @param {object} [options] Object with the following properties:
1272
1273
  * @param {number} [options.duration=3.0] The duration of the flight in seconds.
1273
1274
  * @param {number} [options.maximumHeight] The maximum height at the peak of the flight.
@@ -1336,7 +1337,8 @@ function zoomToOrFly(that, zoomTarget, options, isFlight) {
1336
1337
  if (
1337
1338
  zoomTarget instanceof Cesium3DTileset ||
1338
1339
  zoomTarget instanceof TimeDynamicPointCloud ||
1339
- zoomTarget instanceof VoxelPrimitive
1340
+ zoomTarget instanceof VoxelPrimitive ||
1341
+ zoomTarget instanceof BufferPrimitiveCollection
1340
1342
  ) {
1341
1343
  that._zoomTarget = zoomTarget;
1342
1344
  return;
@@ -1439,7 +1441,7 @@ function updateZoomTarget(widget) {
1439
1441
  };
1440
1442
 
1441
1443
  if (widget._zoomIsFlight) {
1442
- camera.flyToBoundingSphere(target.boundingSphere, options);
1444
+ camera.flyToBoundingSphere(boundingSphere, options);
1443
1445
  } else {
1444
1446
  camera.viewBoundingSphere(boundingSphere, zoomOptions.offset);
1445
1447
  camera.lookAtTransform(Matrix4.IDENTITY);
@@ -1472,6 +1474,11 @@ function updateZoomTarget(widget) {
1472
1474
  return;
1473
1475
  }
1474
1476
 
1477
+ if (target instanceof BufferPrimitiveCollection) {
1478
+ zoomToBoundingSphere(target.boundingVolume);
1479
+ return;
1480
+ }
1481
+
1475
1482
  // If zoomTarget was an ImageryLayer
1476
1483
  if (target instanceof Cartographic) {
1477
1484
  options = {