@cesium/engine 23.0.1 → 25.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (398) hide show
  1. package/Build/Workers/{chunk-ZEMJQKHD.js → chunk-35H3UBIO.js} +13 -12
  2. package/Build/Workers/{chunk-PQTSXJBJ.js → chunk-3LSD7OOA.js} +16 -16
  3. package/Build/Workers/{chunk-PUO7BYDY.js → chunk-3RFFPH4M.js} +1 -1
  4. package/Build/Workers/{chunk-PBECJOWF.js → chunk-3TKLDHV3.js} +2 -2
  5. package/Build/Workers/{chunk-TMCTZ5E3.js → chunk-3VDDRF2E.js} +14 -14
  6. package/Build/Workers/{chunk-FKU77FNM.js → chunk-3XY3MVPG.js} +4 -4
  7. package/Build/Workers/{chunk-2OBWHTIC.js → chunk-4GF4MVPY.js} +7 -7
  8. package/Build/Workers/{chunk-JUKGMJX7.js → chunk-4MTRQFJP.js} +3 -2
  9. package/Build/Workers/{chunk-66OWUDO7.js → chunk-4QQXGTCE.js} +8 -8
  10. package/Build/Workers/{chunk-ALTCIHRH.js → chunk-4XXHJI6Y.js} +17 -17
  11. package/Build/Workers/{chunk-K7UTK4OM.js → chunk-5T6QQAJW.js} +3 -2
  12. package/Build/Workers/{chunk-IJ3SUMK3.js → chunk-6SDGQI27.js} +3 -2
  13. package/Build/Workers/{chunk-FXSRA5UG.js → chunk-77RL3MBD.js} +6 -5
  14. package/Build/Workers/{chunk-G6MJ3ZW3.js → chunk-7LSFAEWF.js} +12 -11
  15. package/Build/Workers/{chunk-C6HHBKT5.js → chunk-A7A433MD.js} +5 -5
  16. package/Build/Workers/{chunk-PGZ3B6CB.js → chunk-A7ZBMVFS.js} +14 -14
  17. package/Build/Workers/{chunk-OZYB3AOR.js → chunk-ACFFCHHZ.js} +11 -11
  18. package/Build/Workers/{chunk-DNMASBMH.js → chunk-AEAVLYPS.js} +2 -2
  19. package/Build/Workers/{chunk-VPWYHFQA.js → chunk-AWFZHD2B.js} +4 -4
  20. package/Build/Workers/{chunk-TFPG3ZKW.js → chunk-BTX2NL3P.js} +59 -46
  21. package/Build/Workers/{chunk-TNXOPEIG.js → chunk-BVAIWR7O.js} +12 -12
  22. package/Build/Workers/chunk-CKQP3DSS.js +973 -0
  23. package/Build/Workers/{chunk-N6HRZLS6.js → chunk-CZ23Y3RM.js} +2 -2
  24. package/Build/Workers/{chunk-EIC3VAOZ.js → chunk-DFEI5MAV.js} +7 -7
  25. package/Build/Workers/{chunk-BTP3634E.js → chunk-DH26SNAB.js} +4 -1
  26. package/Build/Workers/{chunk-TXYQNXNW.js → chunk-DYT5NR6P.js} +3 -3
  27. package/Build/Workers/{chunk-O67UP5YO.js → chunk-EZARA5FJ.js} +13 -13
  28. package/Build/Workers/{chunk-YSJRB2UZ.js → chunk-FIBS5S7R.js} +2 -2
  29. package/Build/Workers/{chunk-2M7DKGLW.js → chunk-FVLVVOBQ.js} +10 -10
  30. package/Build/Workers/{chunk-B2VA6IEL.js → chunk-GL7DNVUS.js} +5 -5
  31. package/Build/Workers/{chunk-77DJBHMI.js → chunk-GPIGURCG.js} +59 -32
  32. package/Build/Workers/{chunk-QPXGGVHC.js → chunk-H2A4USJR.js} +10 -10
  33. package/Build/Workers/chunk-HSVQATK2.js +147 -0
  34. package/Build/Workers/{chunk-HXEPZWJN.js → chunk-HVMG6AG4.js} +11 -10
  35. package/Build/Workers/{chunk-H3TVRJLY.js → chunk-I3A6DXYZ.js} +4 -4
  36. package/Build/Workers/{chunk-UEWYSOFD.js → chunk-ITD2IN7N.js} +2 -2
  37. package/Build/Workers/{chunk-CYOPNGPX.js → chunk-J3OFS2RD.js} +12 -12
  38. package/Build/Workers/{chunk-RZX6LOG6.js → chunk-J647NNZW.js} +6 -6
  39. package/Build/Workers/{chunk-GLCPE2BJ.js → chunk-J7KQEKPK.js} +13 -13
  40. package/Build/Workers/{chunk-XPMXRJDD.js → chunk-K6NFIRFB.js} +5 -5
  41. package/Build/Workers/{chunk-CID5SY7L.js → chunk-LH5SF3XV.js} +7 -6
  42. package/Build/Workers/{chunk-UOQB7XQI.js → chunk-ND3NTTOF.js} +713 -435
  43. package/Build/Workers/chunk-QO2CGXMP.js +2342 -0
  44. package/Build/Workers/chunk-QSDY4NS7.js +1287 -0
  45. package/Build/Workers/chunk-QXNQQYPV.js +3201 -0
  46. package/Build/Workers/{chunk-CJ7ZDY77.js → chunk-ST2UWDUU.js} +5 -5
  47. package/Build/Workers/{chunk-YDR5LX5Z.js → chunk-TA777BGS.js} +3 -2
  48. package/Build/Workers/{chunk-U4SWB6TI.js → chunk-TAI4HLII.js} +4 -4
  49. package/Build/Workers/{chunk-VX774SWE.js → chunk-URUCCIPS.js} +6 -6
  50. package/Build/Workers/{chunk-MNSNOONX.js → chunk-VQKLRBIK.js} +7 -7
  51. package/Build/Workers/{chunk-CVAAIRNP.js → chunk-WC57YYBN.js} +2 -2
  52. package/Build/Workers/{chunk-QNABVTTP.js → chunk-WN6P5UDH.js} +12 -12
  53. package/Build/Workers/{chunk-CNLXMOPM.js → chunk-WNN5D4W3.js} +12 -11
  54. package/Build/Workers/{chunk-4JJQRZYL.js → chunk-WTQGE7Q6.js} +17 -17
  55. package/Build/Workers/{chunk-FCJQO4NC.js → chunk-WUBKZFF6.js} +2213 -1349
  56. package/Build/Workers/{chunk-3UQ2YMPP.js → chunk-ZAPOS52G.js} +12 -10
  57. package/Build/Workers/{chunk-LHFC4R7Z.js → chunk-ZCCIIBZT.js} +6 -6
  58. package/Build/Workers/combineGeometry.js +24 -24
  59. package/Build/Workers/createBoxGeometry.js +18 -18
  60. package/Build/Workers/createBoxOutlineGeometry.js +16 -16
  61. package/Build/Workers/createCircleGeometry.js +26 -26
  62. package/Build/Workers/createCircleOutlineGeometry.js +19 -19
  63. package/Build/Workers/createCoplanarPolygonGeometry.js +33 -33
  64. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +31 -31
  65. package/Build/Workers/createCorridorGeometry.js +29 -29
  66. package/Build/Workers/createCorridorOutlineGeometry.js +28 -28
  67. package/Build/Workers/createCylinderGeometry.js +20 -20
  68. package/Build/Workers/createCylinderOutlineGeometry.js +18 -18
  69. package/Build/Workers/createEllipseGeometry.js +26 -26
  70. package/Build/Workers/createEllipseOutlineGeometry.js +19 -19
  71. package/Build/Workers/createEllipsoidGeometry.js +19 -19
  72. package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -18
  73. package/Build/Workers/createFrustumGeometry.js +18 -18
  74. package/Build/Workers/createFrustumOutlineGeometry.js +18 -18
  75. package/Build/Workers/createGeometry.js +24 -24
  76. package/Build/Workers/createGroundPolylineGeometry.js +175 -118
  77. package/Build/Workers/createPlaneGeometry.js +16 -16
  78. package/Build/Workers/createPlaneOutlineGeometry.js +15 -15
  79. package/Build/Workers/createPolygonGeometry.js +32 -32
  80. package/Build/Workers/createPolygonOutlineGeometry.js +30 -30
  81. package/Build/Workers/createPolylineGeometry.js +25 -25
  82. package/Build/Workers/createPolylineVolumeGeometry.js +31 -31
  83. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +27 -27
  84. package/Build/Workers/createRectangleGeometry.js +27 -27
  85. package/Build/Workers/createRectangleOutlineGeometry.js +20 -20
  86. package/Build/Workers/createSimplePolylineGeometry.js +23 -23
  87. package/Build/Workers/createSphereGeometry.js +19 -19
  88. package/Build/Workers/createSphereOutlineGeometry.js +18 -18
  89. package/Build/Workers/createTaskProcessorWorker.js +3 -3
  90. package/Build/Workers/createVectorTileClampedPolylines.js +14 -14
  91. package/Build/Workers/createVectorTileGeometries.js +24 -24
  92. package/Build/Workers/createVectorTilePoints.js +13 -13
  93. package/Build/Workers/createVectorTilePolygons.js +22 -22
  94. package/Build/Workers/createVectorTilePolylines.js +14 -14
  95. package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +25 -25
  96. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +22 -22
  97. package/Build/Workers/createVerticesFromHeightmap.js +24 -23
  98. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +20 -20
  99. package/Build/Workers/createWallGeometry.js +25 -25
  100. package/Build/Workers/createWallOutlineGeometry.js +24 -24
  101. package/Build/Workers/decodeDraco.js +10 -10
  102. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
  103. package/Build/Workers/decodeI3S.js +12 -12
  104. package/Build/Workers/gaussianSplatSorter.js +4 -4
  105. package/Build/Workers/gaussianSplatTextureGenerator.js +4 -4
  106. package/Build/Workers/incrementallyBuildTerrainPicker.js +10 -10
  107. package/Build/Workers/transcodeKTX2.js +12 -9
  108. package/Build/Workers/transferTypedArrayTest.js +1 -1
  109. package/Build/Workers/upsampleQuantizedTerrainMesh.js +22 -22
  110. package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +25 -25
  111. package/Source/Core/ArcType.js +6 -1
  112. package/Source/Core/ArticulationStageType.js +5 -1
  113. package/Source/Core/AssociativeArray.js +100 -94
  114. package/Source/Core/BoundingSphere.js +1296 -1300
  115. package/Source/Core/Cartesian2.js +7 -5
  116. package/Source/Core/Cartesian3.js +9 -8
  117. package/Source/Core/Cartesian4.js +8 -6
  118. package/Source/Core/Cartographic.js +257 -249
  119. package/Source/Core/ClockRange.js +6 -1
  120. package/Source/Core/ClockStep.js +6 -1
  121. package/Source/Core/Color.js +846 -835
  122. package/Source/Core/ComponentDatatype.js +4 -1
  123. package/Source/Core/CornerType.js +6 -1
  124. package/Source/Core/Credit.js +121 -124
  125. package/Source/Core/DeveloperError.js +2 -1
  126. package/Source/Core/Ellipsoid.js +637 -660
  127. package/Source/Core/ExtrapolationType.js +6 -1
  128. package/Source/Core/GeocodeType.js +6 -1
  129. package/Source/Core/GeographicProjection.js +74 -74
  130. package/Source/Core/GeographicTilingScheme.js +179 -198
  131. package/Source/Core/GeometryOffsetAttribute.js +7 -1
  132. package/Source/Core/GeometryType.js +7 -1
  133. package/Source/Core/HeightmapEncoding.js +6 -1
  134. package/Source/Core/ITwinPlatform.js +1 -0
  135. package/Source/Core/Iau2006XysData.js +24 -13
  136. package/Source/Core/IndexDatatype.js +3 -1
  137. package/Source/Core/InterpolationType.js +5 -1
  138. package/Source/Core/Intersect.js +6 -1
  139. package/Source/Core/Ion.js +1 -1
  140. package/Source/Core/IonGeocodeProviderType.js +5 -1
  141. package/Source/Core/JulianDate.js +850 -848
  142. package/Source/Core/KeyboardEventModifier.js +6 -1
  143. package/Source/Core/MapProjection.js +39 -44
  144. package/Source/Core/Matrix2.js +906 -893
  145. package/Source/Core/Matrix3.js +1643 -1575
  146. package/Source/Core/Matrix4.js +2903 -2872
  147. package/Source/Core/PixelFormat.js +3 -1
  148. package/Source/Core/PrimitiveType.js +11 -1
  149. package/Source/Core/Ray.js +62 -60
  150. package/Source/Core/Rectangle.js +913 -904
  151. package/Source/Core/ReferenceFrame.js +6 -1
  152. package/Source/Core/RequestScheduler.js +8 -3
  153. package/Source/Core/RequestState.js +6 -1
  154. package/Source/Core/RequestType.js +6 -1
  155. package/Source/Core/S2Cell.js +2 -2
  156. package/Source/Core/ScreenSpaceEventType.js +6 -1
  157. package/Source/Core/TerrainMesh.js +10 -1
  158. package/Source/Core/TerrainPicker.js +1 -0
  159. package/Source/Core/TerrainQuantization.js +6 -1
  160. package/Source/Core/TilingScheme.js +100 -98
  161. package/Source/Core/TimeConstants.js +6 -1
  162. package/Source/Core/TimeStandard.js +6 -1
  163. package/Source/Core/TrackingReferenceFrame.js +6 -1
  164. package/Source/Core/Visibility.js +6 -1
  165. package/Source/Core/VulkanConstants.js +6 -1
  166. package/Source/Core/WallGeometry.js +1 -1
  167. package/Source/Core/WallOutlineGeometry.js +1 -1
  168. package/Source/Core/WebGLConstants.js +6 -1
  169. package/Source/Core/WebMercatorProjection.js +108 -109
  170. package/Source/Core/WebMercatorTilingScheme.js +246 -242
  171. package/Source/Core/WindingOrder.js +3 -1
  172. package/Source/Core/assert.js +27 -0
  173. package/Source/Core/globalTypes.js +4 -0
  174. package/Source/DataSources/CzmlDataSource.js +9 -0
  175. package/Source/DataSources/PathGraphics.js +13 -0
  176. package/Source/DataSources/PathVisualizer.js +330 -18
  177. package/Source/DataSources/StaticGeometryColorBatch.js +7 -2
  178. package/Source/DataSources/StaticGeometryPerMaterialBatch.js +7 -2
  179. package/Source/DataSources/StaticGroundGeometryPerMaterialBatch.js +4 -1
  180. package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +4 -1
  181. package/Source/DataSources/StripeOrientation.js +6 -1
  182. package/Source/Renderer/BufferUsage.js +20 -9
  183. package/Source/Renderer/Context.js +2 -29
  184. package/Source/Renderer/DrawCommand.js +435 -403
  185. package/Source/Renderer/MipmapHint.js +5 -1
  186. package/Source/Renderer/Pass.js +7 -1
  187. package/Source/Renderer/PickId.js +44 -0
  188. package/Source/Renderer/PixelDatatype.js +3 -1
  189. package/Source/Renderer/RenderState.js +2 -2
  190. package/Source/Renderer/RenderbufferFormat.js +5 -1
  191. package/Source/Renderer/ShaderDestination.js +4 -1
  192. package/Source/Renderer/TextureMagnificationFilter.js +3 -1
  193. package/Source/Renderer/TextureMinificationFilter.js +3 -1
  194. package/Source/Renderer/TextureWrap.js +5 -1
  195. package/Source/Renderer/VertexArray.js +80 -0
  196. package/Source/Scene/AlphaMode.js +5 -1
  197. package/Source/Scene/ArcGisBaseMapType.js +6 -1
  198. package/Source/Scene/ArcGisMapService.js +1 -1
  199. package/Source/Scene/AttributeType.js +3 -1
  200. package/Source/Scene/Axis.js +3 -1
  201. package/Source/Scene/BillboardCollection.js +65 -364
  202. package/Source/Scene/BingMapsStyle.js +6 -1
  203. package/Source/Scene/BlendEquation.js +6 -1
  204. package/Source/Scene/BlendFunction.js +6 -1
  205. package/Source/Scene/BlendOption.js +6 -1
  206. package/Source/Scene/BlendingState.js +6 -1
  207. package/Source/Scene/BufferLoader.js +0 -2
  208. package/Source/Scene/BufferPoint.js +148 -0
  209. package/Source/Scene/BufferPointCollection.js +138 -0
  210. package/Source/Scene/BufferPointMaterial.js +95 -0
  211. package/Source/Scene/BufferPolygon.js +516 -0
  212. package/Source/Scene/BufferPolygonCollection.js +370 -0
  213. package/Source/Scene/BufferPolygonMaterial.js +41 -0
  214. package/Source/Scene/BufferPolyline.js +185 -0
  215. package/Source/Scene/BufferPolylineCollection.js +138 -0
  216. package/Source/Scene/BufferPolylineMaterial.js +93 -0
  217. package/Source/Scene/BufferPrimitive.js +347 -0
  218. package/Source/Scene/BufferPrimitiveCollection.js +818 -0
  219. package/Source/Scene/BufferPrimitiveMaterial.js +140 -0
  220. package/Source/Scene/CameraEventType.js +6 -1
  221. package/Source/Scene/Cesium3DTileColorBlendMode.js +6 -1
  222. package/Source/Scene/Cesium3DTileContent.js +5 -1
  223. package/Source/Scene/Cesium3DTileContentFactory.js +9 -0
  224. package/Source/Scene/Cesium3DTileContentState.js +6 -1
  225. package/Source/Scene/Cesium3DTileContentType.js +3 -1
  226. package/Source/Scene/Cesium3DTileFeature.js +289 -306
  227. package/Source/Scene/Cesium3DTileOptimizationHint.js +6 -1
  228. package/Source/Scene/Cesium3DTilePass.js +5 -1
  229. package/Source/Scene/Cesium3DTilePointFeature.js +433 -511
  230. package/Source/Scene/Cesium3DTileRefine.js +6 -1
  231. package/Source/Scene/Cesium3DTileStyle.js +22 -0
  232. package/Source/Scene/Cesium3DTileVectorFeature.js +586 -0
  233. package/Source/Scene/Cesium3DTileset.js +2 -1
  234. package/Source/Scene/ClassificationType.js +3 -1
  235. package/Source/Scene/ClippingPolygonCollection.js +270 -101
  236. package/Source/Scene/CloudType.js +3 -1
  237. package/Source/Scene/ColorBlendMode.js +4 -1
  238. package/Source/Scene/CubeMapPanorama.js +4 -4
  239. package/Source/Scene/CullFace.js +6 -1
  240. package/Source/Scene/DepthFunction.js +6 -1
  241. package/Source/Scene/DynamicAtmosphereLightingType.js +3 -1
  242. package/Source/Scene/EquirectangularPanorama.js +1 -0
  243. package/Source/Scene/ExpressionNodeType.js +6 -1
  244. package/Source/Scene/GaussianSplat3DTileContent.js +40 -46
  245. package/Source/Scene/GaussianSplatPrimitive.js +413 -70
  246. package/Source/Scene/GetFeatureInfoFormat.js +3 -3
  247. package/Source/Scene/GltfBufferViewLoader.js +0 -2
  248. package/Source/Scene/GltfDracoLoader.js +0 -2
  249. package/Source/Scene/GltfImageLoader.js +0 -3
  250. package/Source/Scene/GltfIndexBufferLoader.js +0 -4
  251. package/Source/Scene/GltfJsonLoader.js +0 -2
  252. package/Source/Scene/GltfLoader.js +215 -39
  253. package/Source/Scene/GltfLoaderUtil.js +14 -0
  254. package/Source/Scene/GltfSpzLoader.js +109 -2
  255. package/Source/Scene/GltfStructuralMetadataLoader.js +0 -2
  256. package/Source/Scene/GltfTextureLoader.js +0 -2
  257. package/Source/Scene/GltfVertexBufferLoader.js +0 -4
  258. package/Source/Scene/HeightReference.js +5 -1
  259. package/Source/Scene/HorizontalOrigin.js +6 -1
  260. package/Source/Scene/ITwinData.js +1 -0
  261. package/Source/Scene/ImageryProvider.js +1 -1
  262. package/Source/Scene/ImageryState.js +6 -1
  263. package/Source/Scene/ImplicitSubdivisionScheme.js +3 -1
  264. package/Source/Scene/InstanceAttributeSemantic.js +3 -1
  265. package/Source/Scene/IonWorldImageryStyle.js +6 -1
  266. package/Source/Scene/JobType.js +6 -1
  267. package/Source/Scene/Label.js +32 -0
  268. package/Source/Scene/LabelCollection.js +14 -13
  269. package/Source/Scene/LabelStyle.js +6 -1
  270. package/Source/Scene/MapMode2D.js +6 -1
  271. package/Source/Scene/Material.js +2 -0
  272. package/Source/Scene/Megatexture.js +1 -0
  273. package/Source/Scene/MetadataClassProperty.js +24 -10
  274. package/Source/Scene/MetadataComponentType.js +118 -24
  275. package/Source/Scene/MetadataSchemaLoader.js +0 -2
  276. package/Source/Scene/MetadataSemantic.js +6 -2
  277. package/Source/Scene/MetadataType.js +3 -1
  278. package/Source/Scene/Model/B3dmLoader.js +0 -3
  279. package/Source/Scene/Model/CustomShaderMode.js +3 -1
  280. package/Source/Scene/Model/CustomShaderPipelineStage.js +3 -1
  281. package/Source/Scene/Model/CustomShaderTranslucencyMode.js +5 -1
  282. package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +735 -264
  283. package/Source/Scene/Model/Extensions/Gpm/PpeSource.js +5 -1
  284. package/Source/Scene/Model/Extensions/Gpm/StorageType.js +5 -1
  285. package/Source/Scene/Model/GeoJsonLoader.js +0 -2
  286. package/Source/Scene/Model/I3dmLoader.js +0 -3
  287. package/Source/Scene/Model/InstancingPipelineStage.js +1 -1
  288. package/Source/Scene/Model/LightingModel.js +5 -1
  289. package/Source/Scene/Model/MaterialPipelineStage.js +331 -3
  290. package/Source/Scene/Model/MetadataPipelineStage.js +3 -3
  291. package/Source/Scene/Model/ModelDrawCommand.js +6 -0
  292. package/Source/Scene/Model/ModelReader.js +475 -4
  293. package/Source/Scene/Model/ModelRuntimePrimitive.js +2 -1
  294. package/Source/Scene/Model/ModelType.js +3 -1
  295. package/Source/Scene/Model/ModelUtility.js +3 -1
  296. package/Source/Scene/Model/PntsLoader.js +4 -3
  297. package/Source/Scene/Model/StyleCommandsNeeded.js +3 -1
  298. package/Source/Scene/Model/UniformType.js +5 -1
  299. package/Source/Scene/Model/VaryingType.js +5 -1
  300. package/Source/Scene/Model/createVectorTileBuffersFromModelComponents.js +375 -0
  301. package/Source/Scene/Model/pickModel.js +94 -299
  302. package/Source/Scene/ModelAnimationLoop.js +6 -1
  303. package/Source/Scene/ModelAnimationState.js +6 -1
  304. package/Source/Scene/ModelComponents.js +1639 -1542
  305. package/Source/Scene/PickedMetadataInfo.js +1 -0
  306. package/Source/Scene/PrimitiveState.js +7 -1
  307. package/Source/Scene/QuadtreeOccluders.js +20 -15
  308. package/Source/Scene/QuadtreeTile.js +547 -541
  309. package/Source/Scene/QuadtreeTileLoadState.js +6 -1
  310. package/Source/Scene/QuadtreeTileProvider.js +159 -175
  311. package/Source/Scene/ResourceLoader.js +0 -1
  312. package/Source/Scene/ResourceLoaderState.js +7 -1
  313. package/Source/Scene/SceneMode.js +4 -1
  314. package/Source/Scene/ScreenSpaceCameraController.js +13 -0
  315. package/Source/Scene/ShadowMode.js +3 -1
  316. package/Source/Scene/SkyBox.js +17 -8
  317. package/Source/Scene/SplitDirection.js +6 -1
  318. package/Source/Scene/StencilFunction.js +6 -1
  319. package/Source/Scene/StencilOperation.js +6 -1
  320. package/Source/Scene/TerrainState.js +7 -1
  321. package/Source/Scene/TileBoundingRegion.js +1 -1
  322. package/Source/Scene/TileBoundingS2Cell.js +1 -1
  323. package/Source/Scene/TileBoundingSphere.js +1 -1
  324. package/Source/Scene/TileState.js +7 -1
  325. package/Source/Scene/Tonemapper.js +5 -1
  326. package/Source/Scene/TweenCollection.js +7 -0
  327. package/Source/Scene/VectorGltf3DTileContent.js +403 -0
  328. package/Source/Scene/VertexAttributeSemantic.js +17 -1
  329. package/Source/Scene/VerticalOrigin.js +6 -1
  330. package/Source/Scene/VoxelBoxShape.js +12 -6
  331. package/Source/Scene/VoxelContent.js +2 -0
  332. package/Source/Scene/VoxelCylinderShape.js +39 -38
  333. package/Source/Scene/VoxelEllipsoidShape.js +46 -96
  334. package/Source/Scene/VoxelMetadataOrder.js +6 -1
  335. package/Source/Scene/VoxelProvider.js +1 -0
  336. package/Source/Scene/VoxelShapeType.js +3 -1
  337. package/Source/Scene/WebMapServiceImageryProvider.js +2 -2
  338. package/Source/Scene/WebMapTileServiceImageryProvider.js +366 -131
  339. package/Source/Scene/parseStructuralMetadata.js +97 -37
  340. package/Source/Scene/renderBufferPointCollection.js +285 -0
  341. package/Source/Scene/renderBufferPolygonCollection.js +339 -0
  342. package/Source/Scene/renderBufferPolylineCollection.js +478 -0
  343. package/Source/Shaders/BillboardCollectionFS.glsl +2 -77
  344. package/Source/Shaders/BillboardCollectionFS.js +2 -77
  345. package/Source/Shaders/BillboardCollectionVS.glsl +2 -60
  346. package/Source/Shaders/BillboardCollectionVS.js +2 -60
  347. package/Source/Shaders/BufferPointMaterialFS.glsl +27 -0
  348. package/Source/Shaders/BufferPointMaterialFS.js +29 -0
  349. package/Source/Shaders/BufferPointMaterialVS.glsl +48 -0
  350. package/Source/Shaders/BufferPointMaterialVS.js +50 -0
  351. package/Source/Shaders/BufferPolygonMaterialFS.glsl +13 -0
  352. package/Source/Shaders/BufferPolygonMaterialFS.js +15 -0
  353. package/Source/Shaders/BufferPolygonMaterialVS.glsl +30 -0
  354. package/Source/Shaders/BufferPolygonMaterialVS.js +32 -0
  355. package/Source/Shaders/BufferPolylineMaterialFS.glsl +13 -0
  356. package/Source/Shaders/BufferPolylineMaterialFS.js +15 -0
  357. package/Source/Shaders/BufferPolylineMaterialVS.glsl +49 -0
  358. package/Source/Shaders/BufferPolylineMaterialVS.js +51 -0
  359. package/Source/Shaders/Builtin/CzmBuiltins.js +2 -0
  360. package/Source/Shaders/Builtin/Functions/computeTextureTransform.glsl +24 -0
  361. package/Source/Shaders/Builtin/Functions/computeTextureTransform.js +25 -0
  362. package/Source/Shaders/Model/ConstantLodStageFS.glsl +60 -0
  363. package/Source/Shaders/Model/ConstantLodStageFS.js +62 -0
  364. package/Source/Shaders/Model/ConstantLodStageVS.glsl +12 -0
  365. package/Source/Shaders/Model/ConstantLodStageVS.js +13 -0
  366. package/Source/Shaders/Model/EdgeVisibilityStageFS.glsl +34 -48
  367. package/Source/Shaders/Model/EdgeVisibilityStageFS.js +34 -49
  368. package/Source/Shaders/Model/EdgeVisibilityStageVS.glsl +98 -0
  369. package/Source/Shaders/Model/EdgeVisibilityStageVS.js +100 -0
  370. package/Source/Shaders/Model/MaterialStageFS.glsl +46 -20
  371. package/Source/Shaders/Model/MaterialStageFS.js +46 -20
  372. package/Source/Shaders/Model/ModelFS.glsl +15 -0
  373. package/Source/Shaders/Model/ModelFS.js +15 -0
  374. package/Source/Shaders/Model/ModelVS.glsl +8 -0
  375. package/Source/Shaders/Model/ModelVS.js +8 -0
  376. package/Source/Shaders/PolygonSignedDistanceFS.glsl +64 -33
  377. package/Source/Shaders/PolygonSignedDistanceFS.js +64 -33
  378. package/Source/Shaders/PrimitiveGaussianSplatVS.glsl +9 -2
  379. package/Source/Shaders/PrimitiveGaussianSplatVS.js +9 -2
  380. package/Source/Shaders/Voxels/VoxelFS.glsl +1 -1
  381. package/Source/Shaders/Voxels/VoxelFS.js +1 -1
  382. package/Source/Shaders/Voxels/convertLocalToBoxUv.glsl +0 -1
  383. package/Source/Shaders/Voxels/convertLocalToBoxUv.js +0 -1
  384. package/Source/Shaders/Voxels/convertLocalToCylinderUv.glsl +7 -9
  385. package/Source/Shaders/Voxels/convertLocalToCylinderUv.js +7 -9
  386. package/Source/Shaders/Voxels/convertLocalToEllipsoidUv.glsl +7 -17
  387. package/Source/Shaders/Voxels/convertLocalToEllipsoidUv.js +7 -17
  388. package/Source/Widget/CesiumWidget.js +11 -4
  389. package/Source/Workers/decodeDraco.js +3 -0
  390. package/Source/Workers/decodeI3S.js +5 -2
  391. package/index.d.ts +1332 -402
  392. package/index.js +111 -81
  393. package/package.json +3 -3
  394. package/Build/Workers/chunk-54O3AGOA.js +0 -642
  395. package/Build/Workers/chunk-6U5QMZU3.js +0 -940
  396. package/Build/Workers/chunk-HNDE73JK.js +0 -1829
  397. package/Build/Workers/chunk-PAFMAR7A.js +0 -2357
  398. package/Build/Workers/chunk-S53HSRT6.js +0 -114
@@ -52,49 +52,80 @@ void main() {\n\
52
52
  dimension = ceil(log2(float(u_extentsLength)));\n\
53
53
  }\n\
54
54
  int regionIndex = getPolygonIndex(dimension, v_textureCoordinates);\n\
55
+ \n\
56
+ if (regionIndex >= u_extentsLength) {\n\
57
+ return; // done (no polygons in this region)\n\
58
+ }\n\
55
59
  \n\
56
60
  for (int polygonIndex = 0; polygonIndex < u_polygonsLength; polygonIndex++) {\n\
57
61
  ivec2 positionsLengthAndExtents = getPositionsLengthAndExtentsIndex(lastPolygonIndex);\n\
58
62
  int positionsLength = positionsLengthAndExtents.x;\n\
59
63
  int polygonExtentsIndex = positionsLengthAndExtents.y;\n\
60
64
  lastPolygonIndex += 1;\n\
65
+ \n\
66
+ // Read the individual polygon extent (2 pixels: south/west, latRange/lonRange)\n\
67
+ vec2 extentsSouthWest = getPolygonPosition(lastPolygonIndex);\n\
68
+ vec2 extentsRange = getPolygonPosition(lastPolygonIndex + 1);\n\
69
+ vec4 polygonExtent = vec4(extentsSouthWest, extentsRange);\n\
70
+ lastPolygonIndex += 2;\n\
71
+ \n\
72
+ if (polygonExtentsIndex < regionIndex) {\n\
73
+ lastPolygonIndex += positionsLength;\n\
74
+ continue; // skip to next (TODO: could optimize further if we knew how many polygons to skip)\n\
75
+ } else if (polygonExtentsIndex > regionIndex) {\n\
76
+ break; // done (we know polygons are sorted by regionIndex)\n\
77
+ }\n\
61
78
  \n\
62
79
  // Only compute signed distance for the relevant part of the atlas\n\
63
- if (polygonExtentsIndex == regionIndex) {\n\
64
- float clipAmount = czm_infinity;\n\
65
- vec4 extents = getExtents(polygonExtentsIndex);\n\
66
- vec2 textureOffset = vec2(mod(float(polygonExtentsIndex), dimension), floor(float(polygonExtentsIndex) / dimension)) / dimension;\n\
67
- vec2 p = getCoordinates((v_textureCoordinates - textureOffset) * dimension, extents);\n\
68
- float s = 1.0;\n\
69
- \n\
70
- // Check each edge for absolute distance\n\
71
- for (int i = 0, j = positionsLength - 1; i < positionsLength; j = i, i++) {\n\
72
- vec2 a = getPolygonPosition(lastPolygonIndex + i);\n\
73
- vec2 b = getPolygonPosition(lastPolygonIndex + j);\n\
74
- \n\
75
- vec2 ab = b - a;\n\
76
- vec2 pa = p - a;\n\
77
- float t = dot(pa, ab) / dot(ab, ab);\n\
78
- t = clamp(t, 0.0, 1.0);\n\
79
- \n\
80
- vec2 pq = pa - t * ab;\n\
81
- float d = length(pq);\n\
82
- \n\
83
- // Inside / outside computation to determine sign\n\
84
- bvec3 cond = bvec3(p.y >= a.y, \n\
85
- p.y < b.y, \n\
86
- ab.x * pa.y > ab.y * pa.x);\n\
87
- if (all(cond) || all(not(cond))) s = -s;\n\
88
- if (abs(d) < abs(clipAmount)) {\n\
89
- clipAmount = d;\n\
90
- }\n\
80
+ float clipAmount = czm_infinity;\n\
81
+ vec4 extents = getExtents(polygonExtentsIndex);\n\
82
+ vec2 textureOffset = vec2(mod(float(polygonExtentsIndex), dimension), floor(float(polygonExtentsIndex) / dimension)) / dimension;\n\
83
+ vec2 p = getCoordinates((v_textureCoordinates - textureOffset) * dimension, extents); // current pixel position\n\
84
+ \n\
85
+ // Only consider polygons whos boundingbox includes current pixel (with a slight padding)\n\
86
+ float padding = 0.05; // 5% of polygon extents\n\
87
+ float polygonNorth = polygonExtent.x + polygonExtent.z;\n\
88
+ float polygonEast = polygonExtent.y + polygonExtent.w;\n\
89
+ float latPadding = padding * polygonExtent.z; // padding as fraction of latitude range\n\
90
+ float lonPadding = padding * polygonExtent.w; // padding as fraction of longitude range\n\
91
+ if (p.x < polygonExtent.x - latPadding || p.x > polygonNorth + latPadding ||\n\
92
+ p.y < polygonExtent.y - lonPadding || p.y > polygonEast + lonPadding) {\n\
93
+ lastPolygonIndex += positionsLength;\n\
94
+ continue; // skip to next\n\
95
+ }\n\
96
+ \n\
97
+ float s = 1.0;\n\
98
+ \n\
99
+ // Check each edge for absolute distance.\n\
100
+ // Cache the previous vertex to halve the texture reads per iteration.\n\
101
+ vec2 prev = getPolygonPosition(lastPolygonIndex + positionsLength - 1);\n\
102
+ for (int i = 0; i < positionsLength; i++) {\n\
103
+ vec2 a = getPolygonPosition(lastPolygonIndex + i);\n\
104
+ vec2 b = prev;\n\
105
+ prev = a;\n\
106
+ \n\
107
+ vec2 ab = b - a;\n\
108
+ vec2 pa = p - a;\n\
109
+ float t = dot(pa, ab) / dot(ab, ab);\n\
110
+ t = clamp(t, 0.0, 1.0);\n\
111
+ \n\
112
+ vec2 pq = pa - t * ab;\n\
113
+ float d = length(pq);\n\
114
+ \n\
115
+ // Inside / outside computation to determine sign\n\
116
+ bvec3 cond = bvec3(p.y >= a.y, \n\
117
+ p.y < b.y, \n\
118
+ ab.x * pa.y > ab.y * pa.x);\n\
119
+ if (all(cond) || all(not(cond))) s = -s;\n\
120
+ if (abs(d) < abs(clipAmount)) {\n\
121
+ clipAmount = d;\n\
91
122
  }\n\
123
+ }\n\
92
124
  \n\
93
- // Normalize the range to [0,1]\n\
94
- vec4 result = (s * vec4(clipAmount * length(extents.zw))) / 2.0 + 0.5;\n\
95
- // In the case where we've iterated through multiple polygons, take the minimum\n\
96
- out_FragColor = min(out_FragColor, result);\n\
97
- }\n\
125
+ // Normalize the range to [0,1]\n\
126
+ vec4 result = (s * vec4(clipAmount * length(extents.zw))) / 2.0 + 0.5;\n\
127
+ // In the case where we've iterated through multiple polygons, take the minimum\n\
128
+ out_FragColor = min(out_FragColor, result);\n\
98
129
  \n\
99
130
  lastPolygonIndex += positionsLength;\n\
100
131
  }\n\
@@ -142,7 +142,14 @@ highp vec4 discardVec = vec4(0.0, 0.0, 2.0, 1.0);
142
142
 
143
143
  void main() {
144
144
  uint texIdx = uint(a_splatIndex);
145
- ivec2 posCoord = ivec2((texIdx & 0x3ffu) << 1, texIdx >> 10);
145
+ // u_splatRowMask and u_splatRowShift encode the row width of the splat
146
+ // attribute texture. The texture width is always maximumTextureSize, which
147
+ // varies by GPU, so these are passed as uniforms rather than constants.
148
+ // rowMask = maximumTextureSize/2 - 1
149
+ // rowShift = log2(maximumTextureSize/2)
150
+ uint rowMask = uint(u_splatRowMask);
151
+ uint rowShift = uint(u_splatRowShift);
152
+ ivec2 posCoord = ivec2(int((texIdx & rowMask) << 1), int(texIdx >> rowShift));
146
153
  vec4 splatPosition = vec4( uintBitsToFloat(uvec4(texelFetch(u_splatAttributeTexture, posCoord, 0))) );
147
154
 
148
155
  vec4 splatViewPos = czm_modelView * vec4(splatPosition.xyz, 1.0);
@@ -155,7 +162,7 @@ void main() {
155
162
  return;
156
163
  }
157
164
 
158
- ivec2 covCoord = ivec2(((texIdx & 0x3ffu) << 1) | 1u, texIdx >> 10);
165
+ ivec2 covCoord = ivec2(int(((texIdx & rowMask) << 1) | 1u), int(texIdx >> rowShift));
159
166
  uvec4 covariance = uvec4(texelFetch(u_splatAttributeTexture, covCoord, 0));
160
167
 
161
168
  gl_Position = clipPosition;
@@ -143,7 +143,14 @@ highp vec4 discardVec = vec4(0.0, 0.0, 2.0, 1.0);\n\
143
143
  \n\
144
144
  void main() {\n\
145
145
  uint texIdx = uint(a_splatIndex);\n\
146
- ivec2 posCoord = ivec2((texIdx & 0x3ffu) << 1, texIdx >> 10);\n\
146
+ // u_splatRowMask and u_splatRowShift encode the row width of the splat\n\
147
+ // attribute texture. The texture width is always maximumTextureSize, which\n\
148
+ // varies by GPU, so these are passed as uniforms rather than constants.\n\
149
+ // rowMask = maximumTextureSize/2 - 1\n\
150
+ // rowShift = log2(maximumTextureSize/2)\n\
151
+ uint rowMask = uint(u_splatRowMask);\n\
152
+ uint rowShift = uint(u_splatRowShift);\n\
153
+ ivec2 posCoord = ivec2(int((texIdx & rowMask) << 1), int(texIdx >> rowShift));\n\
147
154
  vec4 splatPosition = vec4( uintBitsToFloat(uvec4(texelFetch(u_splatAttributeTexture, posCoord, 0))) );\n\
148
155
  \n\
149
156
  vec4 splatViewPos = czm_modelView * vec4(splatPosition.xyz, 1.0);\n\
@@ -156,7 +163,7 @@ void main() {\n\
156
163
  return;\n\
157
164
  }\n\
158
165
  \n\
159
- ivec2 covCoord = ivec2(((texIdx & 0x3ffu) << 1) | 1u, texIdx >> 10);\n\
166
+ ivec2 covCoord = ivec2(int(((texIdx & rowMask) << 1) | 1u), int(texIdx >> rowShift));\n\
160
167
  uvec4 covariance = uvec4(texelFetch(u_splatAttributeTexture, covCoord, 0));\n\
161
168
  \n\
162
169
  gl_Position = clipPosition;\n\
@@ -213,7 +213,7 @@ void main()
213
213
  if (step.w == 0.0) {
214
214
  // Shape is infinitely thin. The ray may have hit the edge of a
215
215
  // foreground voxel. Step ahead slightly to check for more voxels
216
- step.w == 0.00001;
216
+ step.w = 0.001;
217
217
  }
218
218
 
219
219
  // Keep raymarching
@@ -214,7 +214,7 @@ void main()\n\
214
214
  if (step.w == 0.0) {\n\
215
215
  // Shape is infinitely thin. The ray may have hit the edge of a\n\
216
216
  // foreground voxel. Step ahead slightly to check for more voxels\n\
217
- step.w == 0.00001;\n\
217
+ step.w = 0.001;\n\
218
218
  }\n\
219
219
  \n\
220
220
  // Keep raymarching\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 = {
@@ -1,3 +1,6 @@
1
+ // Draco API uses many capitalized non-constructor methods.
2
+ /* eslint-disable new-cap */
3
+
1
4
  import ComponentDatatype from "../Core/ComponentDatatype.js";
2
5
  import defined from "../Core/defined.js";
3
6
  import IndexDatatype from "../Core/IndexDatatype.js";
@@ -1,3 +1,6 @@
1
+ // Draco API uses many capitalized non-constructor methods.
2
+ /* eslint-disable new-cap */
3
+
1
4
  import createTaskProcessorWorker from "./createTaskProcessorWorker.js";
2
5
  import defined from "../Core/defined.js";
3
6
  import WebMercatorProjection from "../Core/WebMercatorProjection.js";
@@ -808,8 +811,8 @@ function generateGltfBuffer(
808
811
  componentType: 5126,
809
812
  count: meshPositions.length / 3,
810
813
  type: "VEC3",
811
- max: [minX, minY, minZ],
812
- min: [maxX, maxY, maxZ],
814
+ min: [minX, minY, minZ],
815
+ max: [maxX, maxY, maxZ],
813
816
  });
814
817
 
815
818
  // NORMALS