@cesium/engine 23.0.1 → 25.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (398) hide show
  1. package/Build/Workers/{chunk-ZEMJQKHD.js → chunk-35H3UBIO.js} +13 -12
  2. package/Build/Workers/{chunk-PQTSXJBJ.js → chunk-3LSD7OOA.js} +16 -16
  3. package/Build/Workers/{chunk-PUO7BYDY.js → chunk-3RFFPH4M.js} +1 -1
  4. package/Build/Workers/{chunk-PBECJOWF.js → chunk-3TKLDHV3.js} +2 -2
  5. package/Build/Workers/{chunk-TMCTZ5E3.js → chunk-3VDDRF2E.js} +14 -14
  6. package/Build/Workers/{chunk-FKU77FNM.js → chunk-3XY3MVPG.js} +4 -4
  7. package/Build/Workers/{chunk-2OBWHTIC.js → chunk-4GF4MVPY.js} +7 -7
  8. package/Build/Workers/{chunk-JUKGMJX7.js → chunk-4MTRQFJP.js} +3 -2
  9. package/Build/Workers/{chunk-66OWUDO7.js → chunk-4QQXGTCE.js} +8 -8
  10. package/Build/Workers/{chunk-ALTCIHRH.js → chunk-4XXHJI6Y.js} +17 -17
  11. package/Build/Workers/{chunk-K7UTK4OM.js → chunk-5T6QQAJW.js} +3 -2
  12. package/Build/Workers/{chunk-IJ3SUMK3.js → chunk-6SDGQI27.js} +3 -2
  13. package/Build/Workers/{chunk-FXSRA5UG.js → chunk-77RL3MBD.js} +6 -5
  14. package/Build/Workers/{chunk-G6MJ3ZW3.js → chunk-7LSFAEWF.js} +12 -11
  15. package/Build/Workers/{chunk-C6HHBKT5.js → chunk-A7A433MD.js} +5 -5
  16. package/Build/Workers/{chunk-PGZ3B6CB.js → chunk-A7ZBMVFS.js} +14 -14
  17. package/Build/Workers/{chunk-OZYB3AOR.js → chunk-ACFFCHHZ.js} +11 -11
  18. package/Build/Workers/{chunk-DNMASBMH.js → chunk-AEAVLYPS.js} +2 -2
  19. package/Build/Workers/{chunk-VPWYHFQA.js → chunk-AWFZHD2B.js} +4 -4
  20. package/Build/Workers/{chunk-TFPG3ZKW.js → chunk-BTX2NL3P.js} +59 -46
  21. package/Build/Workers/{chunk-TNXOPEIG.js → chunk-BVAIWR7O.js} +12 -12
  22. package/Build/Workers/chunk-CKQP3DSS.js +973 -0
  23. package/Build/Workers/{chunk-N6HRZLS6.js → chunk-CZ23Y3RM.js} +2 -2
  24. package/Build/Workers/{chunk-EIC3VAOZ.js → chunk-DFEI5MAV.js} +7 -7
  25. package/Build/Workers/{chunk-BTP3634E.js → chunk-DH26SNAB.js} +4 -1
  26. package/Build/Workers/{chunk-TXYQNXNW.js → chunk-DYT5NR6P.js} +3 -3
  27. package/Build/Workers/{chunk-O67UP5YO.js → chunk-EZARA5FJ.js} +13 -13
  28. package/Build/Workers/{chunk-YSJRB2UZ.js → chunk-FIBS5S7R.js} +2 -2
  29. package/Build/Workers/{chunk-2M7DKGLW.js → chunk-FVLVVOBQ.js} +10 -10
  30. package/Build/Workers/{chunk-B2VA6IEL.js → chunk-GL7DNVUS.js} +5 -5
  31. package/Build/Workers/{chunk-77DJBHMI.js → chunk-GPIGURCG.js} +59 -32
  32. package/Build/Workers/{chunk-QPXGGVHC.js → chunk-H2A4USJR.js} +10 -10
  33. package/Build/Workers/chunk-HSVQATK2.js +147 -0
  34. package/Build/Workers/{chunk-HXEPZWJN.js → chunk-HVMG6AG4.js} +11 -10
  35. package/Build/Workers/{chunk-H3TVRJLY.js → chunk-I3A6DXYZ.js} +4 -4
  36. package/Build/Workers/{chunk-UEWYSOFD.js → chunk-ITD2IN7N.js} +2 -2
  37. package/Build/Workers/{chunk-CYOPNGPX.js → chunk-J3OFS2RD.js} +12 -12
  38. package/Build/Workers/{chunk-RZX6LOG6.js → chunk-J647NNZW.js} +6 -6
  39. package/Build/Workers/{chunk-GLCPE2BJ.js → chunk-J7KQEKPK.js} +13 -13
  40. package/Build/Workers/{chunk-XPMXRJDD.js → chunk-K6NFIRFB.js} +5 -5
  41. package/Build/Workers/{chunk-CID5SY7L.js → chunk-LH5SF3XV.js} +7 -6
  42. package/Build/Workers/{chunk-UOQB7XQI.js → chunk-ND3NTTOF.js} +713 -435
  43. package/Build/Workers/chunk-QO2CGXMP.js +2342 -0
  44. package/Build/Workers/chunk-QSDY4NS7.js +1287 -0
  45. package/Build/Workers/chunk-QXNQQYPV.js +3201 -0
  46. package/Build/Workers/{chunk-CJ7ZDY77.js → chunk-ST2UWDUU.js} +5 -5
  47. package/Build/Workers/{chunk-YDR5LX5Z.js → chunk-TA777BGS.js} +3 -2
  48. package/Build/Workers/{chunk-U4SWB6TI.js → chunk-TAI4HLII.js} +4 -4
  49. package/Build/Workers/{chunk-VX774SWE.js → chunk-URUCCIPS.js} +6 -6
  50. package/Build/Workers/{chunk-MNSNOONX.js → chunk-VQKLRBIK.js} +7 -7
  51. package/Build/Workers/{chunk-CVAAIRNP.js → chunk-WC57YYBN.js} +2 -2
  52. package/Build/Workers/{chunk-QNABVTTP.js → chunk-WN6P5UDH.js} +12 -12
  53. package/Build/Workers/{chunk-CNLXMOPM.js → chunk-WNN5D4W3.js} +12 -11
  54. package/Build/Workers/{chunk-4JJQRZYL.js → chunk-WTQGE7Q6.js} +17 -17
  55. package/Build/Workers/{chunk-FCJQO4NC.js → chunk-WUBKZFF6.js} +2213 -1349
  56. package/Build/Workers/{chunk-3UQ2YMPP.js → chunk-ZAPOS52G.js} +12 -10
  57. package/Build/Workers/{chunk-LHFC4R7Z.js → chunk-ZCCIIBZT.js} +6 -6
  58. package/Build/Workers/combineGeometry.js +24 -24
  59. package/Build/Workers/createBoxGeometry.js +18 -18
  60. package/Build/Workers/createBoxOutlineGeometry.js +16 -16
  61. package/Build/Workers/createCircleGeometry.js +26 -26
  62. package/Build/Workers/createCircleOutlineGeometry.js +19 -19
  63. package/Build/Workers/createCoplanarPolygonGeometry.js +33 -33
  64. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +31 -31
  65. package/Build/Workers/createCorridorGeometry.js +29 -29
  66. package/Build/Workers/createCorridorOutlineGeometry.js +28 -28
  67. package/Build/Workers/createCylinderGeometry.js +20 -20
  68. package/Build/Workers/createCylinderOutlineGeometry.js +18 -18
  69. package/Build/Workers/createEllipseGeometry.js +26 -26
  70. package/Build/Workers/createEllipseOutlineGeometry.js +19 -19
  71. package/Build/Workers/createEllipsoidGeometry.js +19 -19
  72. package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -18
  73. package/Build/Workers/createFrustumGeometry.js +18 -18
  74. package/Build/Workers/createFrustumOutlineGeometry.js +18 -18
  75. package/Build/Workers/createGeometry.js +24 -24
  76. package/Build/Workers/createGroundPolylineGeometry.js +175 -118
  77. package/Build/Workers/createPlaneGeometry.js +16 -16
  78. package/Build/Workers/createPlaneOutlineGeometry.js +15 -15
  79. package/Build/Workers/createPolygonGeometry.js +32 -32
  80. package/Build/Workers/createPolygonOutlineGeometry.js +30 -30
  81. package/Build/Workers/createPolylineGeometry.js +25 -25
  82. package/Build/Workers/createPolylineVolumeGeometry.js +31 -31
  83. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +27 -27
  84. package/Build/Workers/createRectangleGeometry.js +27 -27
  85. package/Build/Workers/createRectangleOutlineGeometry.js +20 -20
  86. package/Build/Workers/createSimplePolylineGeometry.js +23 -23
  87. package/Build/Workers/createSphereGeometry.js +19 -19
  88. package/Build/Workers/createSphereOutlineGeometry.js +18 -18
  89. package/Build/Workers/createTaskProcessorWorker.js +3 -3
  90. package/Build/Workers/createVectorTileClampedPolylines.js +14 -14
  91. package/Build/Workers/createVectorTileGeometries.js +24 -24
  92. package/Build/Workers/createVectorTilePoints.js +13 -13
  93. package/Build/Workers/createVectorTilePolygons.js +22 -22
  94. package/Build/Workers/createVectorTilePolylines.js +14 -14
  95. package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +25 -25
  96. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +22 -22
  97. package/Build/Workers/createVerticesFromHeightmap.js +24 -23
  98. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +20 -20
  99. package/Build/Workers/createWallGeometry.js +25 -25
  100. package/Build/Workers/createWallOutlineGeometry.js +24 -24
  101. package/Build/Workers/decodeDraco.js +10 -10
  102. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
  103. package/Build/Workers/decodeI3S.js +12 -12
  104. package/Build/Workers/gaussianSplatSorter.js +4 -4
  105. package/Build/Workers/gaussianSplatTextureGenerator.js +4 -4
  106. package/Build/Workers/incrementallyBuildTerrainPicker.js +10 -10
  107. package/Build/Workers/transcodeKTX2.js +12 -9
  108. package/Build/Workers/transferTypedArrayTest.js +1 -1
  109. package/Build/Workers/upsampleQuantizedTerrainMesh.js +22 -22
  110. package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +25 -25
  111. package/Source/Core/ArcType.js +6 -1
  112. package/Source/Core/ArticulationStageType.js +5 -1
  113. package/Source/Core/AssociativeArray.js +100 -94
  114. package/Source/Core/BoundingSphere.js +1296 -1300
  115. package/Source/Core/Cartesian2.js +7 -5
  116. package/Source/Core/Cartesian3.js +9 -8
  117. package/Source/Core/Cartesian4.js +8 -6
  118. package/Source/Core/Cartographic.js +257 -249
  119. package/Source/Core/ClockRange.js +6 -1
  120. package/Source/Core/ClockStep.js +6 -1
  121. package/Source/Core/Color.js +846 -835
  122. package/Source/Core/ComponentDatatype.js +4 -1
  123. package/Source/Core/CornerType.js +6 -1
  124. package/Source/Core/Credit.js +121 -124
  125. package/Source/Core/DeveloperError.js +2 -1
  126. package/Source/Core/Ellipsoid.js +637 -660
  127. package/Source/Core/ExtrapolationType.js +6 -1
  128. package/Source/Core/GeocodeType.js +6 -1
  129. package/Source/Core/GeographicProjection.js +74 -74
  130. package/Source/Core/GeographicTilingScheme.js +179 -198
  131. package/Source/Core/GeometryOffsetAttribute.js +7 -1
  132. package/Source/Core/GeometryType.js +7 -1
  133. package/Source/Core/HeightmapEncoding.js +6 -1
  134. package/Source/Core/ITwinPlatform.js +1 -0
  135. package/Source/Core/Iau2006XysData.js +24 -13
  136. package/Source/Core/IndexDatatype.js +3 -1
  137. package/Source/Core/InterpolationType.js +5 -1
  138. package/Source/Core/Intersect.js +6 -1
  139. package/Source/Core/Ion.js +1 -1
  140. package/Source/Core/IonGeocodeProviderType.js +5 -1
  141. package/Source/Core/JulianDate.js +850 -848
  142. package/Source/Core/KeyboardEventModifier.js +6 -1
  143. package/Source/Core/MapProjection.js +39 -44
  144. package/Source/Core/Matrix2.js +906 -893
  145. package/Source/Core/Matrix3.js +1643 -1575
  146. package/Source/Core/Matrix4.js +2903 -2872
  147. package/Source/Core/PixelFormat.js +3 -1
  148. package/Source/Core/PrimitiveType.js +11 -1
  149. package/Source/Core/Ray.js +62 -60
  150. package/Source/Core/Rectangle.js +913 -904
  151. package/Source/Core/ReferenceFrame.js +6 -1
  152. package/Source/Core/RequestScheduler.js +8 -3
  153. package/Source/Core/RequestState.js +6 -1
  154. package/Source/Core/RequestType.js +6 -1
  155. package/Source/Core/S2Cell.js +2 -2
  156. package/Source/Core/ScreenSpaceEventType.js +6 -1
  157. package/Source/Core/TerrainMesh.js +10 -1
  158. package/Source/Core/TerrainPicker.js +1 -0
  159. package/Source/Core/TerrainQuantization.js +6 -1
  160. package/Source/Core/TilingScheme.js +100 -98
  161. package/Source/Core/TimeConstants.js +6 -1
  162. package/Source/Core/TimeStandard.js +6 -1
  163. package/Source/Core/TrackingReferenceFrame.js +6 -1
  164. package/Source/Core/Visibility.js +6 -1
  165. package/Source/Core/VulkanConstants.js +6 -1
  166. package/Source/Core/WallGeometry.js +1 -1
  167. package/Source/Core/WallOutlineGeometry.js +1 -1
  168. package/Source/Core/WebGLConstants.js +6 -1
  169. package/Source/Core/WebMercatorProjection.js +108 -109
  170. package/Source/Core/WebMercatorTilingScheme.js +246 -242
  171. package/Source/Core/WindingOrder.js +3 -1
  172. package/Source/Core/assert.js +27 -0
  173. package/Source/Core/globalTypes.js +4 -0
  174. package/Source/DataSources/CzmlDataSource.js +9 -0
  175. package/Source/DataSources/PathGraphics.js +13 -0
  176. package/Source/DataSources/PathVisualizer.js +330 -18
  177. package/Source/DataSources/StaticGeometryColorBatch.js +7 -2
  178. package/Source/DataSources/StaticGeometryPerMaterialBatch.js +7 -2
  179. package/Source/DataSources/StaticGroundGeometryPerMaterialBatch.js +4 -1
  180. package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +4 -1
  181. package/Source/DataSources/StripeOrientation.js +6 -1
  182. package/Source/Renderer/BufferUsage.js +20 -9
  183. package/Source/Renderer/Context.js +2 -29
  184. package/Source/Renderer/DrawCommand.js +435 -403
  185. package/Source/Renderer/MipmapHint.js +5 -1
  186. package/Source/Renderer/Pass.js +7 -1
  187. package/Source/Renderer/PickId.js +44 -0
  188. package/Source/Renderer/PixelDatatype.js +3 -1
  189. package/Source/Renderer/RenderState.js +2 -2
  190. package/Source/Renderer/RenderbufferFormat.js +5 -1
  191. package/Source/Renderer/ShaderDestination.js +4 -1
  192. package/Source/Renderer/TextureMagnificationFilter.js +3 -1
  193. package/Source/Renderer/TextureMinificationFilter.js +3 -1
  194. package/Source/Renderer/TextureWrap.js +5 -1
  195. package/Source/Renderer/VertexArray.js +80 -0
  196. package/Source/Scene/AlphaMode.js +5 -1
  197. package/Source/Scene/ArcGisBaseMapType.js +6 -1
  198. package/Source/Scene/ArcGisMapService.js +1 -1
  199. package/Source/Scene/AttributeType.js +3 -1
  200. package/Source/Scene/Axis.js +3 -1
  201. package/Source/Scene/BillboardCollection.js +65 -364
  202. package/Source/Scene/BingMapsStyle.js +6 -1
  203. package/Source/Scene/BlendEquation.js +6 -1
  204. package/Source/Scene/BlendFunction.js +6 -1
  205. package/Source/Scene/BlendOption.js +6 -1
  206. package/Source/Scene/BlendingState.js +6 -1
  207. package/Source/Scene/BufferLoader.js +0 -2
  208. package/Source/Scene/BufferPoint.js +148 -0
  209. package/Source/Scene/BufferPointCollection.js +138 -0
  210. package/Source/Scene/BufferPointMaterial.js +95 -0
  211. package/Source/Scene/BufferPolygon.js +516 -0
  212. package/Source/Scene/BufferPolygonCollection.js +370 -0
  213. package/Source/Scene/BufferPolygonMaterial.js +41 -0
  214. package/Source/Scene/BufferPolyline.js +185 -0
  215. package/Source/Scene/BufferPolylineCollection.js +138 -0
  216. package/Source/Scene/BufferPolylineMaterial.js +93 -0
  217. package/Source/Scene/BufferPrimitive.js +347 -0
  218. package/Source/Scene/BufferPrimitiveCollection.js +818 -0
  219. package/Source/Scene/BufferPrimitiveMaterial.js +140 -0
  220. package/Source/Scene/CameraEventType.js +6 -1
  221. package/Source/Scene/Cesium3DTileColorBlendMode.js +6 -1
  222. package/Source/Scene/Cesium3DTileContent.js +5 -1
  223. package/Source/Scene/Cesium3DTileContentFactory.js +9 -0
  224. package/Source/Scene/Cesium3DTileContentState.js +6 -1
  225. package/Source/Scene/Cesium3DTileContentType.js +3 -1
  226. package/Source/Scene/Cesium3DTileFeature.js +289 -306
  227. package/Source/Scene/Cesium3DTileOptimizationHint.js +6 -1
  228. package/Source/Scene/Cesium3DTilePass.js +5 -1
  229. package/Source/Scene/Cesium3DTilePointFeature.js +433 -511
  230. package/Source/Scene/Cesium3DTileRefine.js +6 -1
  231. package/Source/Scene/Cesium3DTileStyle.js +22 -0
  232. package/Source/Scene/Cesium3DTileVectorFeature.js +586 -0
  233. package/Source/Scene/Cesium3DTileset.js +2 -1
  234. package/Source/Scene/ClassificationType.js +3 -1
  235. package/Source/Scene/ClippingPolygonCollection.js +270 -101
  236. package/Source/Scene/CloudType.js +3 -1
  237. package/Source/Scene/ColorBlendMode.js +4 -1
  238. package/Source/Scene/CubeMapPanorama.js +4 -4
  239. package/Source/Scene/CullFace.js +6 -1
  240. package/Source/Scene/DepthFunction.js +6 -1
  241. package/Source/Scene/DynamicAtmosphereLightingType.js +3 -1
  242. package/Source/Scene/EquirectangularPanorama.js +1 -0
  243. package/Source/Scene/ExpressionNodeType.js +6 -1
  244. package/Source/Scene/GaussianSplat3DTileContent.js +40 -46
  245. package/Source/Scene/GaussianSplatPrimitive.js +413 -70
  246. package/Source/Scene/GetFeatureInfoFormat.js +3 -3
  247. package/Source/Scene/GltfBufferViewLoader.js +0 -2
  248. package/Source/Scene/GltfDracoLoader.js +0 -2
  249. package/Source/Scene/GltfImageLoader.js +0 -3
  250. package/Source/Scene/GltfIndexBufferLoader.js +0 -4
  251. package/Source/Scene/GltfJsonLoader.js +0 -2
  252. package/Source/Scene/GltfLoader.js +215 -39
  253. package/Source/Scene/GltfLoaderUtil.js +14 -0
  254. package/Source/Scene/GltfSpzLoader.js +109 -2
  255. package/Source/Scene/GltfStructuralMetadataLoader.js +0 -2
  256. package/Source/Scene/GltfTextureLoader.js +0 -2
  257. package/Source/Scene/GltfVertexBufferLoader.js +0 -4
  258. package/Source/Scene/HeightReference.js +5 -1
  259. package/Source/Scene/HorizontalOrigin.js +6 -1
  260. package/Source/Scene/ITwinData.js +1 -0
  261. package/Source/Scene/ImageryProvider.js +1 -1
  262. package/Source/Scene/ImageryState.js +6 -1
  263. package/Source/Scene/ImplicitSubdivisionScheme.js +3 -1
  264. package/Source/Scene/InstanceAttributeSemantic.js +3 -1
  265. package/Source/Scene/IonWorldImageryStyle.js +6 -1
  266. package/Source/Scene/JobType.js +6 -1
  267. package/Source/Scene/Label.js +32 -0
  268. package/Source/Scene/LabelCollection.js +14 -13
  269. package/Source/Scene/LabelStyle.js +6 -1
  270. package/Source/Scene/MapMode2D.js +6 -1
  271. package/Source/Scene/Material.js +2 -0
  272. package/Source/Scene/Megatexture.js +1 -0
  273. package/Source/Scene/MetadataClassProperty.js +24 -10
  274. package/Source/Scene/MetadataComponentType.js +118 -24
  275. package/Source/Scene/MetadataSchemaLoader.js +0 -2
  276. package/Source/Scene/MetadataSemantic.js +6 -2
  277. package/Source/Scene/MetadataType.js +3 -1
  278. package/Source/Scene/Model/B3dmLoader.js +0 -3
  279. package/Source/Scene/Model/CustomShaderMode.js +3 -1
  280. package/Source/Scene/Model/CustomShaderPipelineStage.js +3 -1
  281. package/Source/Scene/Model/CustomShaderTranslucencyMode.js +5 -1
  282. package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +735 -264
  283. package/Source/Scene/Model/Extensions/Gpm/PpeSource.js +5 -1
  284. package/Source/Scene/Model/Extensions/Gpm/StorageType.js +5 -1
  285. package/Source/Scene/Model/GeoJsonLoader.js +0 -2
  286. package/Source/Scene/Model/I3dmLoader.js +0 -3
  287. package/Source/Scene/Model/InstancingPipelineStage.js +1 -1
  288. package/Source/Scene/Model/LightingModel.js +5 -1
  289. package/Source/Scene/Model/MaterialPipelineStage.js +331 -3
  290. package/Source/Scene/Model/MetadataPipelineStage.js +3 -3
  291. package/Source/Scene/Model/ModelDrawCommand.js +6 -0
  292. package/Source/Scene/Model/ModelReader.js +475 -4
  293. package/Source/Scene/Model/ModelRuntimePrimitive.js +2 -1
  294. package/Source/Scene/Model/ModelType.js +3 -1
  295. package/Source/Scene/Model/ModelUtility.js +3 -1
  296. package/Source/Scene/Model/PntsLoader.js +4 -3
  297. package/Source/Scene/Model/StyleCommandsNeeded.js +3 -1
  298. package/Source/Scene/Model/UniformType.js +5 -1
  299. package/Source/Scene/Model/VaryingType.js +5 -1
  300. package/Source/Scene/Model/createVectorTileBuffersFromModelComponents.js +375 -0
  301. package/Source/Scene/Model/pickModel.js +94 -299
  302. package/Source/Scene/ModelAnimationLoop.js +6 -1
  303. package/Source/Scene/ModelAnimationState.js +6 -1
  304. package/Source/Scene/ModelComponents.js +1639 -1542
  305. package/Source/Scene/PickedMetadataInfo.js +1 -0
  306. package/Source/Scene/PrimitiveState.js +7 -1
  307. package/Source/Scene/QuadtreeOccluders.js +20 -15
  308. package/Source/Scene/QuadtreeTile.js +547 -541
  309. package/Source/Scene/QuadtreeTileLoadState.js +6 -1
  310. package/Source/Scene/QuadtreeTileProvider.js +159 -175
  311. package/Source/Scene/ResourceLoader.js +0 -1
  312. package/Source/Scene/ResourceLoaderState.js +7 -1
  313. package/Source/Scene/SceneMode.js +4 -1
  314. package/Source/Scene/ScreenSpaceCameraController.js +13 -0
  315. package/Source/Scene/ShadowMode.js +3 -1
  316. package/Source/Scene/SkyBox.js +17 -8
  317. package/Source/Scene/SplitDirection.js +6 -1
  318. package/Source/Scene/StencilFunction.js +6 -1
  319. package/Source/Scene/StencilOperation.js +6 -1
  320. package/Source/Scene/TerrainState.js +7 -1
  321. package/Source/Scene/TileBoundingRegion.js +1 -1
  322. package/Source/Scene/TileBoundingS2Cell.js +1 -1
  323. package/Source/Scene/TileBoundingSphere.js +1 -1
  324. package/Source/Scene/TileState.js +7 -1
  325. package/Source/Scene/Tonemapper.js +5 -1
  326. package/Source/Scene/TweenCollection.js +7 -0
  327. package/Source/Scene/VectorGltf3DTileContent.js +403 -0
  328. package/Source/Scene/VertexAttributeSemantic.js +17 -1
  329. package/Source/Scene/VerticalOrigin.js +6 -1
  330. package/Source/Scene/VoxelBoxShape.js +12 -6
  331. package/Source/Scene/VoxelContent.js +2 -0
  332. package/Source/Scene/VoxelCylinderShape.js +39 -38
  333. package/Source/Scene/VoxelEllipsoidShape.js +46 -96
  334. package/Source/Scene/VoxelMetadataOrder.js +6 -1
  335. package/Source/Scene/VoxelProvider.js +1 -0
  336. package/Source/Scene/VoxelShapeType.js +3 -1
  337. package/Source/Scene/WebMapServiceImageryProvider.js +2 -2
  338. package/Source/Scene/WebMapTileServiceImageryProvider.js +366 -131
  339. package/Source/Scene/parseStructuralMetadata.js +97 -37
  340. package/Source/Scene/renderBufferPointCollection.js +285 -0
  341. package/Source/Scene/renderBufferPolygonCollection.js +339 -0
  342. package/Source/Scene/renderBufferPolylineCollection.js +478 -0
  343. package/Source/Shaders/BillboardCollectionFS.glsl +2 -77
  344. package/Source/Shaders/BillboardCollectionFS.js +2 -77
  345. package/Source/Shaders/BillboardCollectionVS.glsl +2 -60
  346. package/Source/Shaders/BillboardCollectionVS.js +2 -60
  347. package/Source/Shaders/BufferPointMaterialFS.glsl +27 -0
  348. package/Source/Shaders/BufferPointMaterialFS.js +29 -0
  349. package/Source/Shaders/BufferPointMaterialVS.glsl +48 -0
  350. package/Source/Shaders/BufferPointMaterialVS.js +50 -0
  351. package/Source/Shaders/BufferPolygonMaterialFS.glsl +13 -0
  352. package/Source/Shaders/BufferPolygonMaterialFS.js +15 -0
  353. package/Source/Shaders/BufferPolygonMaterialVS.glsl +30 -0
  354. package/Source/Shaders/BufferPolygonMaterialVS.js +32 -0
  355. package/Source/Shaders/BufferPolylineMaterialFS.glsl +13 -0
  356. package/Source/Shaders/BufferPolylineMaterialFS.js +15 -0
  357. package/Source/Shaders/BufferPolylineMaterialVS.glsl +49 -0
  358. package/Source/Shaders/BufferPolylineMaterialVS.js +51 -0
  359. package/Source/Shaders/Builtin/CzmBuiltins.js +2 -0
  360. package/Source/Shaders/Builtin/Functions/computeTextureTransform.glsl +24 -0
  361. package/Source/Shaders/Builtin/Functions/computeTextureTransform.js +25 -0
  362. package/Source/Shaders/Model/ConstantLodStageFS.glsl +60 -0
  363. package/Source/Shaders/Model/ConstantLodStageFS.js +62 -0
  364. package/Source/Shaders/Model/ConstantLodStageVS.glsl +12 -0
  365. package/Source/Shaders/Model/ConstantLodStageVS.js +13 -0
  366. package/Source/Shaders/Model/EdgeVisibilityStageFS.glsl +34 -48
  367. package/Source/Shaders/Model/EdgeVisibilityStageFS.js +34 -49
  368. package/Source/Shaders/Model/EdgeVisibilityStageVS.glsl +98 -0
  369. package/Source/Shaders/Model/EdgeVisibilityStageVS.js +100 -0
  370. package/Source/Shaders/Model/MaterialStageFS.glsl +46 -20
  371. package/Source/Shaders/Model/MaterialStageFS.js +46 -20
  372. package/Source/Shaders/Model/ModelFS.glsl +15 -0
  373. package/Source/Shaders/Model/ModelFS.js +15 -0
  374. package/Source/Shaders/Model/ModelVS.glsl +8 -0
  375. package/Source/Shaders/Model/ModelVS.js +8 -0
  376. package/Source/Shaders/PolygonSignedDistanceFS.glsl +64 -33
  377. package/Source/Shaders/PolygonSignedDistanceFS.js +64 -33
  378. package/Source/Shaders/PrimitiveGaussianSplatVS.glsl +9 -2
  379. package/Source/Shaders/PrimitiveGaussianSplatVS.js +9 -2
  380. package/Source/Shaders/Voxels/VoxelFS.glsl +1 -1
  381. package/Source/Shaders/Voxels/VoxelFS.js +1 -1
  382. package/Source/Shaders/Voxels/convertLocalToBoxUv.glsl +0 -1
  383. package/Source/Shaders/Voxels/convertLocalToBoxUv.js +0 -1
  384. package/Source/Shaders/Voxels/convertLocalToCylinderUv.glsl +7 -9
  385. package/Source/Shaders/Voxels/convertLocalToCylinderUv.js +7 -9
  386. package/Source/Shaders/Voxels/convertLocalToEllipsoidUv.glsl +7 -17
  387. package/Source/Shaders/Voxels/convertLocalToEllipsoidUv.js +7 -17
  388. package/Source/Widget/CesiumWidget.js +11 -4
  389. package/Source/Workers/decodeDraco.js +3 -0
  390. package/Source/Workers/decodeI3S.js +5 -2
  391. package/index.d.ts +1332 -402
  392. package/index.js +111 -81
  393. package/package.json +3 -3
  394. package/Build/Workers/chunk-54O3AGOA.js +0 -642
  395. package/Build/Workers/chunk-6U5QMZU3.js +0 -940
  396. package/Build/Workers/chunk-HNDE73JK.js +0 -1829
  397. package/Build/Workers/chunk-PAFMAR7A.js +0 -2357
  398. package/Build/Workers/chunk-S53HSRT6.js +0 -114
@@ -1,3 +1,5 @@
1
+ // @ts-check
2
+
1
3
  /**
2
4
  * The refinement approach for a tile.
3
5
  * <p>
@@ -26,4 +28,7 @@ const Cesium3DTileRefine = {
26
28
  */
27
29
  REPLACE: 1,
28
30
  };
29
- export default Object.freeze(Cesium3DTileRefine);
31
+
32
+ Object.freeze(Cesium3DTileRefine);
33
+
34
+ export default Cesium3DTileRefine;
@@ -74,6 +74,9 @@ function Cesium3DTileStyle(style) {
74
74
  this._labelVerticalOrigin = undefined;
75
75
  this._meta = undefined;
76
76
 
77
+ // Vector Tiles in 3D Tiles 2.0.
78
+ this._lineWidth = undefined;
79
+
77
80
  this._colorShaderFunction = undefined;
78
81
  this._showShaderFunction = undefined;
79
82
  this._pointSizeShaderFunction = undefined;
@@ -117,6 +120,9 @@ function setup(that, styleJson) {
117
120
  that.labelHorizontalOrigin = styleJson.labelHorizontalOrigin;
118
121
  that.labelVerticalOrigin = styleJson.labelVerticalOrigin;
119
122
 
123
+ // Vector Tiles in 3D Tiles 2.0.
124
+ that.lineWidth = styleJson.lineWidth;
125
+
120
126
  const meta = {};
121
127
  if (defined(styleJson.meta)) {
122
128
  const defines = styleJson.defines;
@@ -1284,6 +1290,22 @@ Object.defineProperties(Cesium3DTileStyle.prototype, {
1284
1290
  },
1285
1291
  },
1286
1292
 
1293
+ /**
1294
+ * Internal-only, supported in Vector Tiles with 3D Tiles 2.0.
1295
+ * @memberof Cesium3DTileStyle.prototype
1296
+ * @type {StyleExpression}
1297
+ * @ignore
1298
+ */
1299
+ lineWidth: {
1300
+ get: function () {
1301
+ return this._lineWidth;
1302
+ },
1303
+ set: function (value) {
1304
+ this._lineWidth = getExpression(this, value);
1305
+ this._style.lineWidth = getJsonFromExpression(this._lineWidth);
1306
+ },
1307
+ },
1308
+
1287
1309
  /**
1288
1310
  * Gets or sets the object containing application-specific expression that can be explicitly
1289
1311
  * evaluated, e.g., for display in a UI.
@@ -0,0 +1,586 @@
1
+ // @ts-check
2
+
3
+ import DeveloperError from "../Core/DeveloperError.js";
4
+ import BufferPoint from "./BufferPoint.js";
5
+ import BufferPointCollection from "./BufferPointCollection.js";
6
+ import BufferPointMaterial from "./BufferPointMaterial.js";
7
+ import BufferPolygon from "./BufferPolygon.js";
8
+ import BufferPolygonCollection from "./BufferPolygonCollection.js";
9
+ import BufferPolygonMaterial from "./BufferPolygonMaterial.js";
10
+ import BufferPolyline from "./BufferPolyline.js";
11
+ import BufferPolylineCollection from "./BufferPolylineCollection.js";
12
+ import BufferPolylineMaterial from "./BufferPolylineMaterial.js";
13
+ import Cesium3DTileFeature from "./Cesium3DTileFeature.js";
14
+ import Color from "../Core/Color.js";
15
+ import defined from "../Core/defined.js";
16
+
17
+ /** @import BufferPrimitive from "./BufferPrimitive.js"; */
18
+ /** @import BufferPrimitiveMaterial from "./BufferPrimitiveMaterial.js"; */
19
+ /** @import Cesium3DTileBatchTable from "./Cesium3DTileBatchTable.js"; */
20
+ /** @import Cesium3DTileContent from "./Cesium3DTileContent.js"; */
21
+ /** @import Cesium3DTileset from "./Cesium3DTileset.js"; */
22
+ /** @import VectorGltf3DTileContent from "./VectorGltf3DTileContent.js"; */
23
+
24
+ const point = new BufferPoint();
25
+ const polyline = new BufferPolyline();
26
+ const polygon = new BufferPolygon();
27
+
28
+ const pointMaterial = new BufferPointMaterial();
29
+ const polylineMaterial = new BufferPolylineMaterial();
30
+ const polygonMaterial = new BufferPolygonMaterial();
31
+
32
+ /**
33
+ * A vector feature of a {@link Cesium3DTileset}.
34
+ * <p>
35
+ * Provides access to a feature's properties stored in the tile's batch table, as well
36
+ * as the ability to show/hide and style the feature
37
+ * </p>
38
+ * <p>
39
+ * Modifications to a <code>Cesium3DTileVectorFeature</code> object have the lifetime of the tile's
40
+ * content. If the tile's content is unloaded, e.g., due to it going out of view and needing
41
+ * to free space in the cache for visible tiles, listen to the {@link Cesium3DTileset#tileUnload} event to save any
42
+ * modifications. Also listen to the {@link Cesium3DTileset#tileVisible} event to reapply any modifications.
43
+ * </p>
44
+ * <p>
45
+ * Do not construct this directly. Access it through {@link Cesium3DTileContent#getFeature}
46
+ * or picking using {@link Scene#pick} and {@link Scene#pickPosition}.
47
+ * </p>
48
+ *
49
+ * @experimental This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.
50
+ *
51
+ * @example
52
+ * // On mouse over, display all the properties for a feature in the console log.
53
+ * handler.setInputAction(function(movement) {
54
+ * const feature = scene.pick(movement.endPosition);
55
+ * if (feature instanceof Cesium.Cesium3DTileVectorFeature) {
56
+ * const propertyIds = feature.getPropertyIds();
57
+ * const length = propertyIds.length;
58
+ * for (let i = 0; i < length; ++i) {
59
+ * const propertyId = propertyIds[i];
60
+ * console.log(`{propertyId}: ${feature.getProperty(propertyId)}`);
61
+ * }
62
+ * }
63
+ * }, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
64
+ *
65
+ * @ignore
66
+ */
67
+ class Cesium3DTileVectorFeature {
68
+ /** @private */
69
+ _color = new Color();
70
+
71
+ /** @private */
72
+ _outlineColor = new Color();
73
+
74
+ /**
75
+ * @param {VectorGltf3DTileContent} content
76
+ * @param {number} batchId
77
+ * @param {number} [batchTableId=0]
78
+ */
79
+ constructor(content, batchId, batchTableId = 0) {
80
+ this._content = content;
81
+ this._batchId = batchId;
82
+ this._batchTableId = batchTableId;
83
+
84
+ /**
85
+ * For each collection index N, this map returns the indices of all
86
+ * primitive in the collection associated with this feature.
87
+ * @type {Map<number, number[]>}
88
+ * @private
89
+ */
90
+ this._primitivesByCollection = new Map();
91
+ }
92
+
93
+ /**
94
+ * @param {number} collectionIndex
95
+ * @param {number} primitiveIndex
96
+ */
97
+ addPrimitiveByCollection(collectionIndex, primitiveIndex) {
98
+ let primitiveIndices = this._primitivesByCollection.get(collectionIndex);
99
+ if (!primitiveIndices) {
100
+ primitiveIndices = [];
101
+ this._primitivesByCollection.set(collectionIndex, primitiveIndices);
102
+ }
103
+ primitiveIndices.push(primitiveIndex);
104
+ }
105
+
106
+ /**
107
+ * @type {boolean}
108
+ * @default true
109
+ */
110
+ get show() {
111
+ for (const prim of this._iteratePrimitives()) {
112
+ if (prim.show) {
113
+ return true;
114
+ }
115
+ }
116
+ return false;
117
+ }
118
+
119
+ set show(value) {
120
+ for (const prim of this._iteratePrimitives()) {
121
+ prim.show = value;
122
+ }
123
+ }
124
+
125
+ /**
126
+ * @type {Color}
127
+ * @default Color.WHITE
128
+ */
129
+ get color() {
130
+ for (const material of this._iterateMaterials()) {
131
+ return Color.clone(material.color, this._color);
132
+ }
133
+ return Color.clone(Color.WHITE, this._color);
134
+ }
135
+
136
+ set color(value) {
137
+ for (const material of this._iterateMaterials()) {
138
+ Color.clone(value, material.color);
139
+ }
140
+ }
141
+
142
+ /**
143
+ * @type {number}
144
+ * @default 1
145
+ */
146
+ get pointSize() {
147
+ for (const material of this._iteratePointMaterials()) {
148
+ return material.size;
149
+ }
150
+ return 1;
151
+ }
152
+
153
+ set pointSize(value) {
154
+ for (const material of this._iteratePointMaterials()) {
155
+ material.size = value;
156
+ }
157
+ }
158
+
159
+ /**
160
+ * @type {Color}
161
+ * @default Color.WHITE
162
+ */
163
+ get pointOutlineColor() {
164
+ for (const material of this._iteratePointMaterials()) {
165
+ return Color.clone(material.outlineColor, this._outlineColor);
166
+ }
167
+ return Color.clone(Color.WHITE, this._outlineColor);
168
+ }
169
+
170
+ set pointOutlineColor(value) {
171
+ for (const material of this._iteratePointMaterials()) {
172
+ Color.clone(value, material.outlineColor);
173
+ }
174
+ }
175
+
176
+ /**
177
+ * @type {number}
178
+ * @default 0
179
+ */
180
+ get pointOutlineWidth() {
181
+ for (const material of this._iteratePointMaterials()) {
182
+ return material.outlineWidth;
183
+ }
184
+ return 0;
185
+ }
186
+
187
+ set pointOutlineWidth(value) {
188
+ for (const material of this._iteratePointMaterials()) {
189
+ material.outlineWidth = value;
190
+ }
191
+ }
192
+
193
+ /**
194
+ * @type {number}
195
+ * @default 1
196
+ */
197
+ get lineWidth() {
198
+ for (const material of this._iteratePolylineMaterials()) {
199
+ return material.width;
200
+ }
201
+ return 1;
202
+ }
203
+
204
+ set lineWidth(value) {
205
+ for (const material of this._iteratePolylineMaterials()) {
206
+ material.width = value;
207
+ }
208
+ }
209
+
210
+ /**
211
+ * @type {Color}
212
+ * @default Color.WHITE
213
+ */
214
+ get lineOutlineColor() {
215
+ for (const material of this._iteratePolylineMaterials()) {
216
+ return Color.clone(material.outlineColor, this._outlineColor);
217
+ }
218
+ return Color.clone(Color.WHITE, this._outlineColor);
219
+ }
220
+
221
+ set lineOutlineColor(value) {
222
+ for (const material of this._iteratePolylineMaterials()) {
223
+ Color.clone(value, material.outlineColor);
224
+ }
225
+ }
226
+
227
+ /**
228
+ * @type {number}
229
+ * @default 0
230
+ */
231
+ get lineOutlineWidth() {
232
+ for (const material of this._iteratePolylineMaterials()) {
233
+ return material.outlineWidth;
234
+ }
235
+ return 0;
236
+ }
237
+
238
+ set lineOutlineWidth(value) {
239
+ for (const material of this._iteratePolylineMaterials()) {
240
+ material.outlineWidth = value;
241
+ }
242
+ }
243
+
244
+ /**
245
+ * @type {Color}
246
+ * @default Color.WHITE
247
+ */
248
+ get polygonOutlineColor() {
249
+ for (const material of this._iteratePolygonMaterials()) {
250
+ return Color.clone(material.outlineColor, this._outlineColor);
251
+ }
252
+ return Color.clone(Color.WHITE, this._outlineColor);
253
+ }
254
+
255
+ set polygonOutlineColor(value) {
256
+ for (const material of this._iteratePolygonMaterials()) {
257
+ Color.clone(value, material.outlineColor);
258
+ }
259
+ }
260
+
261
+ /**
262
+ * @type {number}
263
+ * @default 0
264
+ */
265
+ get polygonOutlineWidth() {
266
+ for (const material of this._iteratePolygonMaterials()) {
267
+ return material.outlineWidth;
268
+ }
269
+ return 0;
270
+ }
271
+
272
+ set polygonOutlineWidth(value) {
273
+ for (const material of this._iteratePolygonMaterials()) {
274
+ material.outlineWidth = value;
275
+ }
276
+ }
277
+
278
+ /**
279
+ * Gets the content of the tile containing the feature.
280
+ *
281
+ * @type {VectorGltf3DTileContent}
282
+ *
283
+ * @ignore
284
+ */
285
+ get content() {
286
+ return this._content;
287
+ }
288
+
289
+ /**
290
+ * Gets the tileset containing the feature.
291
+ *
292
+ * @type {Cesium3DTileset}
293
+ */
294
+ get tileset() {
295
+ return this._content.tileset;
296
+ }
297
+
298
+ /**
299
+ * All objects returned by {@link Scene#pick} have a <code>primitive</code> property. This returns
300
+ * the tileset containing the feature.
301
+ *
302
+ * @type {Cesium3DTileset}
303
+ */
304
+ get primitive() {
305
+ return this._content.tileset;
306
+ }
307
+
308
+ /**
309
+ * Get the feature ID associated with this feature. Using EXT_mesh_features,
310
+ * this is the feature ID from the selected feature ID set.
311
+ *
312
+ * @type {number}
313
+ *
314
+ * @readonly
315
+ */
316
+ get featureId() {
317
+ return this._batchId;
318
+ }
319
+
320
+ /**
321
+ * @type {Cesium3DTileBatchTable|undefined}
322
+ * @private
323
+ */
324
+ get _batchTable() {
325
+ return this._content.batchTables[this._batchTableId];
326
+ }
327
+
328
+ /**
329
+ * @type {number[]}
330
+ * @ignore
331
+ */
332
+ get pickIds() {
333
+ const pickIds = [];
334
+ for (const prim of this._iteratePrimitives()) {
335
+ pickIds.push(prim._pickId);
336
+ }
337
+ return pickIds;
338
+ }
339
+
340
+ /**
341
+ * Returns whether the feature contains this property. This includes properties from this feature's
342
+ * class and inherited classes when using a batch table hierarchy.
343
+ *
344
+ * @see {@link https://github.com/CesiumGS/3d-tiles/tree/main/extensions/3DTILES_batch_table_hierarchy}
345
+ *
346
+ * @param {string} name The case-sensitive name of the property.
347
+ * @returns {boolean} Whether the feature contains this property.
348
+ */
349
+ hasProperty(name) {
350
+ if (!defined(this._batchTable)) {
351
+ return false;
352
+ }
353
+ return this._batchTable.hasProperty(this._batchId, name);
354
+ }
355
+
356
+ /**
357
+ * Returns an array of property IDs for the feature. This includes properties from this feature's
358
+ * class and inherited classes when using a batch table hierarchy.
359
+ *
360
+ * @see {@link https://github.com/CesiumGS/3d-tiles/tree/main/extensions/3DTILES_batch_table_hierarchy}
361
+ *
362
+ * @param {string[]} [results] An array into which to store the results.
363
+ * @returns {string[]} The IDs of the feature's properties.
364
+ */
365
+ getPropertyIds(results) {
366
+ if (!defined(this._batchTable)) {
367
+ return [];
368
+ }
369
+ return this._batchTable.getPropertyIds(this._batchId, results);
370
+ }
371
+
372
+ /**
373
+ * Returns a copy of the value of the feature's property with the given name. This includes properties from this feature's
374
+ * class and inherited classes when using a batch table hierarchy.
375
+ *
376
+ * @see {@link https://github.com/CesiumGS/3d-tiles/tree/main/extensions/3DTILES_batch_table_hierarchy}
377
+ *
378
+ * @param {string} name The case-sensitive name of the property.
379
+ * @returns {*} The value of the property or <code>undefined</code> if the feature does not have this property.
380
+ *
381
+ * @example
382
+ * // Display all the properties for a feature in the console log.
383
+ * const propertyIds = feature.getPropertyIds();
384
+ * const length = propertyIds.length;
385
+ * for (let i = 0; i < length; ++i) {
386
+ * const propertyId = propertyIds[i];
387
+ * console.log(`{propertyId} : ${feature.getProperty(propertyId)}`);
388
+ * }
389
+ */
390
+ getProperty(name) {
391
+ if (!defined(this._batchTable)) {
392
+ return undefined;
393
+ }
394
+ return this._batchTable.getProperty(this._batchId, name);
395
+ }
396
+
397
+ /**
398
+ * Returns a copy of the value of the feature's property with the given name.
399
+ * If the feature is contained within a tileset that has metadata (3D Tiles 1.1)
400
+ * or uses the <code>3DTILES_metadata</code> extension, tileset, group and tile metadata is
401
+ * inherited.
402
+ * <p>
403
+ * To resolve name conflicts, this method resolves names from most specific to
404
+ * least specific by metadata granularity in the order: feature, tile, group,
405
+ * tileset. Within each granularity, semantics are resolved first, then other
406
+ * properties.
407
+ * </p>
408
+ * @param {string} name The case-sensitive name of the property.
409
+ * @returns {*} The value of the property or <code>undefined</code> if the feature does not have this property.
410
+ * @private
411
+ * @experimental This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.
412
+ */
413
+ getPropertyInherited(name) {
414
+ return Cesium3DTileFeature.getPropertyInherited(
415
+ // @ts-expect-error Requires type checking in Cesium3DTileContent.
416
+ this._content,
417
+ this._batchId,
418
+ name,
419
+ this._batchTable,
420
+ );
421
+ }
422
+
423
+ /**
424
+ * Sets the value of the feature's property with the given name.
425
+ * <p>
426
+ * If a property with the given name doesn't exist, it is created.
427
+ * </p>
428
+ *
429
+ * @param {string} name The case-sensitive name of the property.
430
+ * @param {*} value The value of the property that will be copied.
431
+ *
432
+ * @exception {DeveloperError} Inherited batch table hierarchy property is read only.
433
+ *
434
+ * @example
435
+ * const height = feature.getProperty('Height'); // e.g., the height of a building
436
+ *
437
+ * @example
438
+ * const name = 'clicked';
439
+ * if (feature.getProperty(name)) {
440
+ * console.log('already clicked');
441
+ * } else {
442
+ * feature.setProperty(name, true);
443
+ * console.log('first click');
444
+ * }
445
+ */
446
+ setProperty(name, value) {
447
+ throw new DeveloperError("Not implemented");
448
+ }
449
+
450
+ /**
451
+ * Returns whether the feature's class name equals <code>className</code>. Unlike {@link Cesium3DTileVectorFeature#isClass}
452
+ * this function only checks the feature's exact class and not inherited classes.
453
+ * <p>
454
+ * This function returns <code>false</code> if no batch table hierarchy is present.
455
+ * </p>
456
+ *
457
+ * @param {string} className The name to check against.
458
+ * @returns {boolean} Whether the feature's class name equals <code>className</code>
459
+ *
460
+ * @private
461
+ */
462
+ isExactClass(className) {
463
+ if (!defined(this._batchTable)) {
464
+ return false;
465
+ }
466
+ return this._batchTable.isExactClass(this._batchId, className);
467
+ }
468
+
469
+ /**
470
+ * Returns whether the feature's class or any inherited classes are named <code>className</code>.
471
+ * <p>
472
+ * This function returns <code>false</code> if no batch table hierarchy is present.
473
+ * </p>
474
+ *
475
+ * @param {string} className The name to check against.
476
+ * @returns {boolean} Whether the feature's class or inherited classes are named <code>className</code>
477
+ *
478
+ * @private
479
+ */
480
+ isClass(className) {
481
+ if (!defined(this._batchTable)) {
482
+ return false;
483
+ }
484
+ return this._batchTable.isClass(this._batchId, className);
485
+ }
486
+
487
+ /**
488
+ * Returns the feature's class name.
489
+ * <p>
490
+ * This function returns <code>undefined</code> if no batch table hierarchy is present.
491
+ * </p>
492
+ *
493
+ * @returns {string} The feature's class name.
494
+ *
495
+ * @private
496
+ */
497
+ getExactClassName() {
498
+ if (!defined(this._batchTable)) {
499
+ return undefined;
500
+ }
501
+ return this._batchTable.getExactClassName(this._batchId);
502
+ }
503
+
504
+ /////////////////////////////////////////////////////////////////////////////
505
+ // INTERNAL ITERATORS
506
+
507
+ /**
508
+ * @returns {Iterable<BufferPrimitive>}
509
+ */
510
+ *_iteratePrimitives() {
511
+ yield* this._iteratePrimitivesWith(BufferPointCollection, point);
512
+ yield* this._iteratePrimitivesWith(BufferPolylineCollection, polyline);
513
+ yield* this._iteratePrimitivesWith(BufferPolygonCollection, polygon);
514
+ }
515
+
516
+ /**
517
+ * @param {*} CollectionType
518
+ * @param {BufferPrimitive} result
519
+ * @returns {Iterable<BufferPrimitive>}
520
+ */
521
+ *_iteratePrimitivesWith(CollectionType, result) {
522
+ const collections = this._content._collections;
523
+ for (let i = 0; i < collections.length; i++) {
524
+ const collection = collections[i];
525
+ const primitiveIndices = this._primitivesByCollection.get(i);
526
+ if (primitiveIndices && collection instanceof CollectionType) {
527
+ for (const primitiveIndex of primitiveIndices) {
528
+ collection.get(primitiveIndex, result);
529
+ yield result;
530
+ }
531
+ }
532
+ }
533
+ }
534
+
535
+ /** @returns {Iterable<BufferPrimitiveMaterial>} */
536
+ *_iterateMaterials() {
537
+ yield* this._iteratePointMaterials();
538
+ yield* this._iteratePolylineMaterials();
539
+ yield* this._iteratePolygonMaterials();
540
+ }
541
+
542
+ /** @returns {Iterable<BufferPointMaterial>} */
543
+ *_iteratePointMaterials() {
544
+ yield* /** @type {Iterable<BufferPointMaterial>} */ (
545
+ this._iterateMaterialsWith(BufferPointCollection, point, pointMaterial)
546
+ );
547
+ }
548
+
549
+ /** @returns {Iterable<BufferPolylineMaterial>} */
550
+ *_iteratePolylineMaterials() {
551
+ yield* /** @type {Iterable<BufferPolylineMaterial>} */ (
552
+ this._iterateMaterialsWith(
553
+ BufferPolylineCollection,
554
+ polyline,
555
+ polylineMaterial,
556
+ )
557
+ );
558
+ }
559
+
560
+ /** @returns {Iterable<BufferPolygonMaterial>} */
561
+ *_iteratePolygonMaterials() {
562
+ yield* /** @type {Iterable<BufferPolygonMaterial>} */ (
563
+ this._iterateMaterialsWith(
564
+ BufferPolygonCollection,
565
+ polygon,
566
+ polygonMaterial,
567
+ )
568
+ );
569
+ }
570
+
571
+ /**
572
+ * @param {*} CollectionType
573
+ * @param {BufferPrimitive} primitive
574
+ * @param {BufferPrimitiveMaterial} result
575
+ * @returns {Iterable<BufferPrimitiveMaterial>}
576
+ */
577
+ *_iterateMaterialsWith(CollectionType, primitive, result) {
578
+ for (const prim of this._iteratePrimitivesWith(CollectionType, primitive)) {
579
+ prim.getMaterial(result);
580
+ yield result;
581
+ prim.setMaterial(result);
582
+ }
583
+ }
584
+ }
585
+
586
+ export default Cesium3DTileVectorFeature;
@@ -1835,7 +1835,7 @@ Object.defineProperties(Cesium3DTileset.prototype, {
1835
1835
  /**
1836
1836
  * The {@link CesiumWidget#scene} that the tileset will be rendered in, required for tilesets that specify a {@link heightReference} value for clamping 3D Tiles vector data content- like points, lines, and labels- to terrain or 3D tiles.
1837
1837
  *
1838
- * @member of Cesium3DTileset.prototype
1838
+ * @memberof Cesium3DTileset.prototype
1839
1839
  *
1840
1840
  * @type {Scene | undefined}
1841
1841
  * @default undefined
@@ -3674,6 +3674,7 @@ Cesium3DTileset.supportedExtensions = {
3674
3674
  "3DTILES_bounding_volume_S2": true,
3675
3675
  "3DTILES_batch_table_hierarchy": true,
3676
3676
  "3DTILES_draco_point_compression": true,
3677
+ CESIUM_mesh_vector: true,
3677
3678
  MAXAR_content_geojson: true,
3678
3679
  };
3679
3680
 
@@ -32,4 +32,6 @@ const ClassificationType = {
32
32
  */
33
33
  ClassificationType.NUMBER_OF_CLASSIFICATION_TYPES = 3;
34
34
 
35
- export default Object.freeze(ClassificationType);
35
+ Object.freeze(ClassificationType);
36
+
37
+ export default ClassificationType;