@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
@@ -0,0 +1,138 @@
1
+ // @ts-check
2
+
3
+ import defined from "../Core/defined.js";
4
+ import BufferPrimitiveCollection from "./BufferPrimitiveCollection.js";
5
+ import BufferPolyline from "./BufferPolyline.js";
6
+ import renderPolylines from "./renderBufferPolylineCollection.js";
7
+ import BufferPolylineMaterial from "./BufferPolylineMaterial.js";
8
+
9
+ /** @import { TypedArray } from "../Core/globalTypes.js"; */
10
+ /** @import Matrix4 from "../Core/Matrix4.js"; */
11
+ /** @import FrameState from "./FrameState.js" */
12
+
13
+ /**
14
+ * @typedef {object} BufferPolylineOptions
15
+ * @property {Matrix4} [modelMatrix=Matrix4.IDENTITY] Transforms geometry from model to world coordinates.
16
+ * @property {boolean} [show=true]
17
+ * @property {BufferPolylineMaterial} [material=BufferPolylineMaterial.DEFAULT_MATERIAL]
18
+ * @property {number} [featureId]
19
+ * @property {object} [pickObject]
20
+ * @property {TypedArray} [positions]
21
+ * @experimental This feature is not final and is subject to change without Cesium's standard deprecation policy.
22
+ */
23
+
24
+ /**
25
+ * Collection of polylines held in ArrayBuffer storage for performance and memory optimization.
26
+ *
27
+ * <p>Default buffer memory allocation is arbitrary, and collections cannot be resized,
28
+ * so specific per-buffer capacities should be provided in the collection
29
+ * constructor when available.</p>
30
+ *
31
+ * @example
32
+ * const collection = new BufferPolylineCollection({
33
+ * primitiveCountMax: 1024,
34
+ * vertexCountMax: 4096,
35
+ * });
36
+ *
37
+ * const polyline = new BufferPolyline();
38
+ * const material = new BufferPolylineMaterial({color: Color.WHITE});
39
+ *
40
+ * // Create a new polyline, temporarily bound to 'polyline' local variable.
41
+ * collection.add({
42
+ * positions: new Float64Array([ ... ]),
43
+ * material,
44
+ * }, polyline);
45
+ *
46
+ * // Iterate over all polylines in collection, temporarily binding 'polyline'
47
+ * // local variable to each, and updating polyline material.
48
+ * for (let i = 0; i < collection.primitiveCount; i++) {
49
+ * collection.get(i, polyline);
50
+ * polyline.setMaterial(material);
51
+ * }
52
+ *
53
+ * @see BufferPolyline
54
+ * @see BufferPolylineMaterial
55
+ * @see BufferPrimitiveCollection
56
+ * @extends BufferPrimitiveCollection<BufferPolyline>
57
+ * @experimental This feature is not final and is subject to change without Cesium's standard deprecation policy.
58
+ */
59
+ class BufferPolylineCollection extends BufferPrimitiveCollection {
60
+ _getCollectionClass() {
61
+ return BufferPolylineCollection;
62
+ }
63
+
64
+ _getPrimitiveClass() {
65
+ return BufferPolyline;
66
+ }
67
+
68
+ _getMaterialClass() {
69
+ return BufferPolylineMaterial;
70
+ }
71
+
72
+ /////////////////////////////////////////////////////////////////////////////
73
+ // COLLECTION LIFECYCLE
74
+
75
+ /**
76
+ * @param {BufferPolylineCollection} collection
77
+ * @returns {BufferPolylineCollection}
78
+ * @override
79
+ * @ignore
80
+ */
81
+ static _cloneEmpty(collection) {
82
+ return new BufferPolylineCollection({
83
+ primitiveCountMax: collection.primitiveCountMax,
84
+ vertexCountMax: collection.vertexCountMax,
85
+ });
86
+ }
87
+
88
+ /////////////////////////////////////////////////////////////////////////////
89
+ // PRIMITIVE LIFECYCLE
90
+
91
+ /**
92
+ * Adds a new polyline to the collection, with the specified options. A
93
+ * {@link BufferPolyline} instance is linked to the new polyline, using
94
+ * the 'result' argument if given, or a new instance if not. For repeated
95
+ * calls, prefer to reuse a single BufferPolyline instance rather than
96
+ * allocating a new instance on each call.
97
+ *
98
+ * @param {BufferPolylineOptions} options
99
+ * @param {BufferPolyline} result
100
+ * @returns {BufferPolyline}
101
+ * @override
102
+ */
103
+ add(options, result = new BufferPolyline()) {
104
+ super.add(options, result);
105
+
106
+ const vertexOffset = this._positionCount;
107
+ result._setUint32(BufferPolyline.Layout.POSITION_OFFSET_U32, vertexOffset);
108
+ result._setUint32(BufferPolyline.Layout.POSITION_COUNT_U32, 0);
109
+
110
+ if (defined(options.positions)) {
111
+ result.setPositions(options.positions);
112
+ }
113
+
114
+ return result;
115
+ }
116
+
117
+ /////////////////////////////////////////////////////////////////////////////
118
+ // RENDER
119
+
120
+ /**
121
+ * @param {FrameState} frameState
122
+ * @ignore
123
+ */
124
+ update(frameState) {
125
+ super.update(frameState);
126
+
127
+ const passes = frameState.passes;
128
+ if (this.show && (passes.render || passes.pick)) {
129
+ this._renderContext = renderPolylines(
130
+ this,
131
+ frameState,
132
+ this._renderContext,
133
+ );
134
+ }
135
+ }
136
+ }
137
+
138
+ export default BufferPolylineCollection;
@@ -0,0 +1,93 @@
1
+ // @ts-check
2
+
3
+ import Frozen from "../Core/Frozen.js";
4
+ import BufferPrimitiveMaterial from "./BufferPrimitiveMaterial.js";
5
+
6
+ /** @import Color from "../Core/Color.js"; */
7
+ /** @import BufferPolyline from "./BufferPolyline.js"; */
8
+
9
+ /**
10
+ * @typedef {object} BufferPolylineMaterialOptions
11
+ * @property {Color} [color=Color.WHITE] Color of fill.
12
+ * @property {Color} [outlineColor=Color.WHITE] Color of outline.
13
+ * @property {number} [outlineWidth=0.0] Width of outline, 0-255px.
14
+ * @property {number} [width=1.0] Width of line, 0-255px.
15
+ */
16
+
17
+ /**
18
+ * Material description for a {@link BufferPolyline}.
19
+ *
20
+ * <p>BufferPolylineMaterial objects are {@link Packable|packable}, stored
21
+ * when calling {@link BufferPolyline#setMaterial}. Subsequent changes to the
22
+ * material will not affect the polyline until setMaterial() is called again.</p>
23
+ *
24
+ * @experimental This feature is not final and is subject to change without Cesium's standard deprecation policy.
25
+ * @extends BufferPrimitiveMaterial
26
+ */
27
+ class BufferPolylineMaterial extends BufferPrimitiveMaterial {
28
+ /** @ignore */
29
+ static Layout = {
30
+ ...BufferPrimitiveMaterial.Layout,
31
+ WIDTH_U8: BufferPrimitiveMaterial.Layout.__BYTE_LENGTH,
32
+ __BYTE_LENGTH: BufferPrimitiveMaterial.Layout.__BYTE_LENGTH + 4,
33
+ };
34
+
35
+ /**
36
+ * @type {BufferPolylineMaterial}
37
+ * @ignore
38
+ */
39
+ static DEFAULT_MATERIAL = Object.freeze(new BufferPolylineMaterial());
40
+
41
+ /**
42
+ * @param {BufferPolylineMaterialOptions} [options]
43
+ */
44
+ constructor(options = Frozen.EMPTY_OBJECT) {
45
+ super(options);
46
+
47
+ /**
48
+ * Width of polyline, 0–255px.
49
+ * @type {number}
50
+ */
51
+ this.width = options.width ?? 1;
52
+ }
53
+
54
+ /**
55
+ * @param {BufferPolylineMaterial} material
56
+ * @param {DataView} view
57
+ * @param {number} byteOffset
58
+ * @override
59
+ */
60
+ static pack(material, view, byteOffset) {
61
+ super.pack(material, view, byteOffset);
62
+ view.setUint8(this.Layout.WIDTH_U8 + byteOffset, material.width);
63
+ }
64
+
65
+ /**
66
+ * @param {DataView} view
67
+ * @param {number} byteOffset
68
+ * @param {BufferPolylineMaterial} result
69
+ * @returns {BufferPolylineMaterial}
70
+ * @override
71
+ */
72
+ static unpack(view, byteOffset, result) {
73
+ super.unpack(view, byteOffset, result);
74
+ result.width = view.getUint8(this.Layout.WIDTH_U8 + byteOffset);
75
+ return result;
76
+ }
77
+
78
+ /////////////////////////////////////////////////////////////////////////////
79
+ // DEBUG
80
+
81
+ /**
82
+ * Returns a JSON-serializable object representing the material. This encoding
83
+ * is not memory-efficient, and should generally be used for debugging and
84
+ * testing.
85
+ *
86
+ * @returns {Object} JSON-serializable object.
87
+ */
88
+ toJSON() {
89
+ return { ...super.toJSON(), width: this.width };
90
+ }
91
+ }
92
+
93
+ export default BufferPolylineMaterial;
@@ -0,0 +1,347 @@
1
+ // @ts-check
2
+
3
+ import assert from "../Core/assert.js";
4
+
5
+ /** @import BufferPrimitiveCollection from './BufferPrimitiveCollection.js'; */
6
+ /** @import BufferPrimitiveMaterial from "./BufferPrimitiveMaterial.js"; */
7
+
8
+ /**
9
+ * View bound to the underlying buffer data of a {@link BufferPrimitiveCollection}. Abstract.
10
+ *
11
+ * <p>BufferPrimitive instances are intended to be reused when iterating over large collections,
12
+ * and temporarily bound to a primitive index while performing read/write operations on that primitive,
13
+ * before being rebound to the next primitive, using the
14
+ * {@link https://en.wikipedia.org/wiki/Flyweight_pattern|flyweight pattern}.</p>
15
+ *
16
+ * @see BufferPrimitiveCollection
17
+ * @see BufferPrimitiveMaterial
18
+ * @see BufferPoint
19
+ * @see BufferPolyline
20
+ * @see BufferPolygon
21
+ *
22
+ * @abstract
23
+ * @experimental This feature is not final and is subject to change without Cesium's standard deprecation policy.
24
+ */
25
+ class BufferPrimitive {
26
+ /**
27
+ * Collecton containing the primitive(s) for which this instance currently
28
+ * provides a view.
29
+ *
30
+ * @type {BufferPrimitiveCollection<BufferPrimitive>}
31
+ * @ignore
32
+ */
33
+ _collection = null;
34
+
35
+ /**
36
+ * Index of the primitive for which this instance currently provides a view.
37
+ *
38
+ * @type {number}
39
+ * @ignore
40
+ */
41
+ _index = -1;
42
+
43
+ /**
44
+ * Byte offset, into the collection's primitive buffer, of the primitive for
45
+ * which this instance currently provides a view.
46
+ *
47
+ * @type {number}
48
+ * @ignore
49
+ */
50
+ _byteOffset = -1;
51
+
52
+ /**
53
+ * Binary layout for this primitive type in collection's primitive buffer.
54
+ * Each `Layout.MY_KEY_U32` entry is an offset in bytes, relative to the
55
+ * start offset of the primitive, with the suffix indicating the data type
56
+ * stored at that offset.
57
+ *
58
+ * The final entry, `__BYTE_LENGTH`, is not a pointer into a buffer — its
59
+ * literal value is the total byte length of one primitive in the primitive
60
+ * buffer, exclusive of other buffers.
61
+ *
62
+ * @ignore
63
+ */
64
+ static Layout = {
65
+ /**
66
+ * Feature ID associated with the primitive; not required to be unique.
67
+ * @type {number}
68
+ * @ignore
69
+ */
70
+ FEATURE_ID_U32: 0,
71
+
72
+ /**
73
+ * Boolean (0 or 1) flag indicating whether primitive is shown.
74
+ * @type {number}
75
+ * @ignore
76
+ */
77
+ SHOW_U8: 4,
78
+
79
+ /**
80
+ * Boolean (0 or 1) flag indicating whether primitive is dirty.
81
+ * @type {number}
82
+ * @ignore
83
+ */
84
+ DIRTY_U8: 5,
85
+
86
+ /**
87
+ * Pick ID (uint32) of primitive.
88
+ * @type {number}
89
+ * @ignore
90
+ */
91
+ PICK_ID_U32: 8,
92
+
93
+ /**
94
+ * Byte length of one primitive in the primitive buffer, exclusive of
95
+ * other buffers. Literal value, not a pointer.
96
+ * @type {number}
97
+ * @ignore
98
+ */
99
+ __BYTE_LENGTH: 12,
100
+ };
101
+
102
+ /////////////////////////////////////////////////////////////////////////////
103
+ // LIFECYCLE
104
+
105
+ /**
106
+ * Copies data from source primitive to result. If the result primitive is not
107
+ * new (the last primitive in the collection) then source and result primitives
108
+ * must have the same vertex counts.
109
+ *
110
+ * @param {BufferPrimitive} primitive
111
+ * @param {BufferPrimitive} result
112
+ * @returns {BufferPrimitive}
113
+ */
114
+ static clone(primitive, result) {
115
+ const SrcMaterialClass = primitive._collection._getMaterialClass();
116
+
117
+ //>>includeStart('debug', pragmas.debug);
118
+ const DstMaterialClass = result._collection._getMaterialClass();
119
+ assert(SrcMaterialClass === DstMaterialClass, "Incompatible materials");
120
+ //>>includeEnd('debug');
121
+
122
+ result.featureId = primitive.featureId;
123
+ result.show = primitive.show;
124
+ result.setMaterial(primitive.getMaterial(new SrcMaterialClass()));
125
+ return result;
126
+ }
127
+
128
+ /**
129
+ * Returns true if this primitive's memory footprint is resizable. Only the
130
+ * newest (most recently created) primitive in a collection can be resized,
131
+ * to guarantee fast and stable performance.
132
+ *
133
+ * @returns {boolean}
134
+ * @protected
135
+ * @ignore
136
+ */
137
+ _isResizable() {
138
+ return this._index === this._collection.primitiveCount - 1;
139
+ }
140
+
141
+ /////////////////////////////////////////////////////////////////////////////
142
+ // ACCESSORS
143
+
144
+ /**
145
+ * Feature ID associated with the primitive; not required to be unique.
146
+ * @type {number}
147
+ */
148
+ get featureId() {
149
+ return this._getUint32(BufferPrimitive.Layout.FEATURE_ID_U32);
150
+ }
151
+
152
+ set featureId(featureId) {
153
+ this._setUint32(BufferPrimitive.Layout.FEATURE_ID_U32, featureId);
154
+ }
155
+
156
+ /**
157
+ * Whether primitive is shown.
158
+ * @type {boolean}
159
+ */
160
+ get show() {
161
+ return this._getUint8(BufferPrimitive.Layout.SHOW_U8) === 1;
162
+ }
163
+
164
+ set show(show) {
165
+ this._setUint8(BufferPrimitive.Layout.SHOW_U8, show ? 1 : 0);
166
+ }
167
+
168
+ /**
169
+ * @param {BufferPrimitiveMaterial} result
170
+ * @returns {BufferPrimitiveMaterial}
171
+ */
172
+ getMaterial(result) {
173
+ const collection = this._collection;
174
+ const MaterialClass = collection._getMaterialClass();
175
+
176
+ return MaterialClass.unpack(
177
+ collection._materialView,
178
+ this._index * MaterialClass.packedLength,
179
+ result,
180
+ );
181
+ }
182
+
183
+ /**
184
+ * @param {BufferPrimitiveMaterial} material
185
+ */
186
+ setMaterial(material) {
187
+ const collection = this._collection;
188
+ const MaterialClass = collection._getMaterialClass();
189
+
190
+ MaterialClass.pack(
191
+ material,
192
+ collection._materialView,
193
+ this._index * MaterialClass.packedLength,
194
+ );
195
+
196
+ this._dirty = true;
197
+
198
+ return material;
199
+ }
200
+
201
+ /**
202
+ * Whether the primitive requires an update on next render. Renderers should
203
+ * _not_ iterate over all primitives each frame, but must instead inspect
204
+ * only the dirty range of the parent collection. This flag is managed
205
+ * automatically, by primitive setters and collection renderers.
206
+ *
207
+ * @type {boolean}
208
+ * @ignore
209
+ *
210
+ * @see BufferPrimitiveCollection#_dirtyOffset
211
+ * @see BufferPrimitiveCollection#_dirtyCount
212
+ */
213
+ get _dirty() {
214
+ return this._getUint8(BufferPrimitive.Layout.DIRTY_U8) === 1;
215
+ }
216
+
217
+ set _dirty(dirty) {
218
+ // Avoid `._setUint8()` here, which would infinitely loop `._dirty = true`.
219
+ this._collection._primitiveView.setUint8(
220
+ this._byteOffset + BufferPrimitive.Layout.DIRTY_U8,
221
+ dirty ? 1 : 0,
222
+ );
223
+
224
+ // A 'dirty' primitive is responsible for notifying the collection. Applying
225
+ // updates and marking the primitive 'clean' will be handled by the collection,
226
+ // so we don't notify the collection here in that case.
227
+ if (dirty) {
228
+ this._collection._makeDirty(this._index);
229
+ }
230
+ }
231
+
232
+ /**
233
+ * Pick ID (uint32) of primitive.
234
+ * @type {number}
235
+ * @ignore
236
+ */
237
+ get _pickId() {
238
+ return this._getUint32(BufferPrimitive.Layout.PICK_ID_U32);
239
+ }
240
+
241
+ set _pickId(pickId) {
242
+ this._setUint32(BufferPrimitive.Layout.PICK_ID_U32, pickId);
243
+ }
244
+
245
+ /////////////////////////////////////////////////////////////////////////////
246
+ // BUFFER ACCESSORS
247
+
248
+ /**
249
+ * @param {number} itemByteOffset
250
+ * @returns {number}
251
+ * @ignore
252
+ */
253
+ _getUint8(itemByteOffset) {
254
+ return this._collection._primitiveView.getUint8(
255
+ this._byteOffset + itemByteOffset,
256
+ );
257
+ }
258
+
259
+ /**
260
+ * @param {number} itemByteOffset
261
+ * @param {number} itemValue
262
+ * @ignore
263
+ */
264
+ _setUint8(itemByteOffset, itemValue) {
265
+ this._collection._primitiveView.setUint8(
266
+ this._byteOffset + itemByteOffset,
267
+ itemValue,
268
+ );
269
+ this._dirty = true;
270
+ }
271
+
272
+ /**
273
+ * @param {number} itemByteOffset
274
+ * @returns {number}
275
+ * @ignore
276
+ */
277
+ _getUint32(itemByteOffset) {
278
+ return this._collection._primitiveView.getUint32(
279
+ this._byteOffset + itemByteOffset,
280
+ true,
281
+ );
282
+ }
283
+
284
+ /**
285
+ * @param {number} itemByteOffset
286
+ * @param {number} itemValue
287
+ * @ignore
288
+ */
289
+ _setUint32(itemByteOffset, itemValue) {
290
+ this._collection._primitiveView.setUint32(
291
+ this._byteOffset + itemByteOffset,
292
+ itemValue,
293
+ true,
294
+ );
295
+ this._dirty = true;
296
+ }
297
+
298
+ /**
299
+ * @param {number} itemByteOffset
300
+ * @returns {number}
301
+ * @ignore
302
+ */
303
+ _getFloat32(itemByteOffset) {
304
+ return this._collection._primitiveView.getFloat32(
305
+ this._byteOffset + itemByteOffset,
306
+ true,
307
+ );
308
+ }
309
+
310
+ /**
311
+ * @param {number} itemByteOffset
312
+ * @param {number} itemValue
313
+ * @ignore
314
+ */
315
+ _setFloat32(itemByteOffset, itemValue) {
316
+ this._collection._primitiveView.setFloat32(
317
+ this._byteOffset + itemByteOffset,
318
+ itemValue,
319
+ true,
320
+ );
321
+ this._dirty = true;
322
+ }
323
+
324
+ /////////////////////////////////////////////////////////////////////////////
325
+ // DEBUG
326
+
327
+ /**
328
+ * Returns a JSON-serializable object representing the primitive. This encoding
329
+ * is not memory-efficient, and should generally be used for debugging and
330
+ * testing.
331
+ *
332
+ * @returns {Object} JSON-serializable object.
333
+ */
334
+ toJSON() {
335
+ const collection = this._collection;
336
+ const MaterialClass = collection._getMaterialClass();
337
+
338
+ return {
339
+ featureId: this.featureId,
340
+ show: this.show,
341
+ dirty: this._dirty,
342
+ material: this.getMaterial(new MaterialClass()).toJSON(),
343
+ };
344
+ }
345
+ }
346
+
347
+ export default BufferPrimitive;