@cesium/engine 25.0.0 → 26.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/Build/Workers/{chunk-GPIGURCG.js → chunk-3VFEWOBI.js} +7 -7
  2. package/Build/Workers/{chunk-BTX2NL3P.js → chunk-424RNO3D.js} +18 -18
  3. package/Build/Workers/{chunk-HSVQATK2.js → chunk-4MGMYHOO.js} +6 -6
  4. package/Build/Workers/{chunk-FIBS5S7R.js → chunk-4S7IE3LB.js} +2 -2
  5. package/Build/Workers/{chunk-A7ZBMVFS.js → chunk-52JDLOEM.js} +14 -14
  6. package/Build/Workers/{chunk-ZCCIIBZT.js → chunk-54I6Y66F.js} +6 -6
  7. package/Build/Workers/{chunk-J647NNZW.js → chunk-6YEE6JDR.js} +6 -6
  8. package/Build/Workers/{chunk-HVMG6AG4.js → chunk-7J2HKPRH.js} +9 -9
  9. package/Build/Workers/{chunk-K6NFIRFB.js → chunk-7WM2PX4V.js} +5 -5
  10. package/Build/Workers/{chunk-3LSD7OOA.js → chunk-ACXQXN46.js} +16 -16
  11. package/Build/Workers/{chunk-CZ23Y3RM.js → chunk-AYKR4VBR.js} +2 -2
  12. package/Build/Workers/{chunk-4MTRQFJP.js → chunk-C6J67V5A.js} +1 -1
  13. package/Build/Workers/{chunk-WTQGE7Q6.js → chunk-C6KNZ7T4.js} +17 -17
  14. package/Build/Workers/{chunk-AWFZHD2B.js → chunk-CFQP6LYM.js} +4 -4
  15. package/Build/Workers/{chunk-ST2UWDUU.js → chunk-CXOYE2WM.js} +5 -5
  16. package/Build/Workers/{chunk-H2A4USJR.js → chunk-CZEYZU4N.js} +10 -10
  17. package/Build/Workers/{chunk-DFEI5MAV.js → chunk-DBOEKL43.js} +7 -7
  18. package/Build/Workers/{chunk-A7A433MD.js → chunk-DDWSZVMY.js} +5 -5
  19. package/Build/Workers/{chunk-J7KQEKPK.js → chunk-DOBXCNC3.js} +13 -13
  20. package/Build/Workers/{chunk-URUCCIPS.js → chunk-E7VQ76KE.js} +6 -6
  21. package/Build/Workers/{chunk-ZAPOS52G.js → chunk-EBSIOBXY.js} +8 -8
  22. package/Build/Workers/{chunk-3VDDRF2E.js → chunk-EF2QYXGA.js} +14 -14
  23. package/Build/Workers/{chunk-WN6P5UDH.js → chunk-EPYXRCDB.js} +12 -12
  24. package/Build/Workers/{chunk-EZARA5FJ.js → chunk-F6QDY6HU.js} +13 -13
  25. package/Build/Workers/{chunk-GL7DNVUS.js → chunk-FRQZECAO.js} +5 -5
  26. package/Build/Workers/{chunk-VQKLRBIK.js → chunk-G7PXZRVF.js} +7 -7
  27. package/Build/Workers/{chunk-4QQXGTCE.js → chunk-INUEEEQA.js} +8 -8
  28. package/Build/Workers/{chunk-ITD2IN7N.js → chunk-IRBKFCEJ.js} +2 -2
  29. package/Build/Workers/{chunk-6SDGQI27.js → chunk-IYOUHCZB.js} +1 -1
  30. package/Build/Workers/{chunk-DYT5NR6P.js → chunk-J6BWOHUF.js} +3 -3
  31. package/Build/Workers/{chunk-4GF4MVPY.js → chunk-KFSTQKNM.js} +7 -7
  32. package/Build/Workers/{chunk-4XXHJI6Y.js → chunk-KKOSKAZB.js} +17 -17
  33. package/Build/Workers/{chunk-WC57YYBN.js → chunk-KSSWJIZW.js} +2 -2
  34. package/Build/Workers/{chunk-5T6QQAJW.js → chunk-M3B5JKSM.js} +1 -1
  35. package/Build/Workers/{chunk-QO2CGXMP.js → chunk-MPZHGZU6.js} +6 -6
  36. package/Build/Workers/{chunk-WUBKZFF6.js → chunk-MYP774IS.js} +9 -9
  37. package/Build/Workers/{chunk-WNN5D4W3.js → chunk-O3EA5HS7.js} +10 -10
  38. package/Build/Workers/{chunk-77RL3MBD.js → chunk-P3CK7MCY.js} +25 -4
  39. package/Build/Workers/{chunk-QXNQQYPV.js → chunk-Q3PY526V.js} +8 -8
  40. package/Build/Workers/{chunk-CKQP3DSS.js → chunk-QN67VG36.js} +6 -6
  41. package/Build/Workers/{chunk-ACFFCHHZ.js → chunk-QRWGUWI6.js} +11 -11
  42. package/Build/Workers/{chunk-LH5SF3XV.js → chunk-S4MCOY6I.js} +5 -5
  43. package/Build/Workers/{chunk-FVLVVOBQ.js → chunk-SMQZZOW6.js} +10 -10
  44. package/Build/Workers/{chunk-TA777BGS.js → chunk-TKKIREQ6.js} +1 -1
  45. package/Build/Workers/{chunk-AEAVLYPS.js → chunk-U3ZA64U7.js} +2 -2
  46. package/Build/Workers/{chunk-7LSFAEWF.js → chunk-UA25D5MX.js} +10 -10
  47. package/Build/Workers/{chunk-J3OFS2RD.js → chunk-UOOIQ3KX.js} +12 -12
  48. package/Build/Workers/{chunk-ND3NTTOF.js → chunk-V7VQKN6N.js} +6 -6
  49. package/Build/Workers/{chunk-I3A6DXYZ.js → chunk-VQYETPWC.js} +4 -4
  50. package/Build/Workers/{chunk-35H3UBIO.js → chunk-VWV2IJRB.js} +11 -11
  51. package/Build/Workers/{chunk-QSDY4NS7.js → chunk-XZMBNNDX.js} +9 -9
  52. package/Build/Workers/{chunk-TAI4HLII.js → chunk-Y57HREW5.js} +4 -4
  53. package/Build/Workers/{chunk-3TKLDHV3.js → chunk-Y5BF6AFU.js} +2 -2
  54. package/Build/Workers/{chunk-3XY3MVPG.js → chunk-YLY7NKAB.js} +4 -4
  55. package/Build/Workers/{chunk-BVAIWR7O.js → chunk-ZK3CF7ZD.js} +12 -12
  56. package/Build/Workers/{chunk-DH26SNAB.js → chunk-ZP7JMQV4.js} +1 -1
  57. package/Build/Workers/{chunk-3RFFPH4M.js → chunk-ZZ46LWL6.js} +1 -1
  58. package/Build/Workers/combineGeometry.js +24 -24
  59. package/Build/Workers/createBoxGeometry.js +18 -18
  60. package/Build/Workers/createBoxOutlineGeometry.js +16 -16
  61. package/Build/Workers/createCircleGeometry.js +26 -26
  62. package/Build/Workers/createCircleOutlineGeometry.js +19 -19
  63. package/Build/Workers/createCoplanarPolygonGeometry.js +33 -33
  64. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +31 -31
  65. package/Build/Workers/createCorridorGeometry.js +29 -29
  66. package/Build/Workers/createCorridorOutlineGeometry.js +28 -28
  67. package/Build/Workers/createCylinderGeometry.js +20 -20
  68. package/Build/Workers/createCylinderOutlineGeometry.js +18 -18
  69. package/Build/Workers/createEllipseGeometry.js +26 -26
  70. package/Build/Workers/createEllipseOutlineGeometry.js +19 -19
  71. package/Build/Workers/createEllipsoidGeometry.js +19 -19
  72. package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -18
  73. package/Build/Workers/createFrustumGeometry.js +18 -18
  74. package/Build/Workers/createFrustumOutlineGeometry.js +18 -18
  75. package/Build/Workers/createGeometry.js +24 -24
  76. package/Build/Workers/createGroundPolylineGeometry.js +22 -22
  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 +22 -22
  98. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +20 -20
  99. package/Build/Workers/createWallGeometry.js +24 -24
  100. package/Build/Workers/createWallOutlineGeometry.js +23 -23
  101. package/Build/Workers/decodeDraco.js +10 -10
  102. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
  103. package/Build/Workers/decodeI3S.js +10 -10
  104. package/Build/Workers/gaussianSplatSorter.js +4 -4
  105. package/Build/Workers/gaussianSplatTextureGenerator.js +4 -4
  106. package/Build/Workers/incrementallyBuildTerrainPicker.js +10 -10
  107. package/Build/Workers/transcodeKTX2.js +6 -6
  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/Cartesian2.js +1 -1
  112. package/Source/Core/Cartesian3.js +1 -1
  113. package/Source/Core/Cartesian4.js +1 -1
  114. package/Source/Core/ComponentDatatype.js +35 -0
  115. package/Source/Core/Ion.js +1 -1
  116. package/Source/Core/MapProjection.js +1 -0
  117. package/Source/Core/Matrix2.js +1 -1
  118. package/Source/Core/Matrix3.js +1 -1
  119. package/Source/Core/Matrix4.js +1 -1
  120. package/Source/Core/Resource.js +1 -1
  121. package/Source/Core/ScreenSpaceEventHandler.js +51 -41
  122. package/Source/Core/createColorRamp.js +37 -0
  123. package/Source/Core/globalTypes.js +25 -0
  124. package/Source/Renderer/Pass.js +3 -2
  125. package/Source/Renderer/createUniform.js +346 -239
  126. package/Source/Renderer/createUniformArray.js +494 -381
  127. package/Source/Scene/ArcGisMapService.js +1 -1
  128. package/Source/Scene/BufferPoint.js +1 -0
  129. package/Source/Scene/BufferPointCollection.js +14 -1
  130. package/Source/Scene/BufferPolygon.js +3 -2
  131. package/Source/Scene/BufferPolygonCollection.js +10 -0
  132. package/Source/Scene/BufferPolyline.js +1 -0
  133. package/Source/Scene/BufferPolylineCollection.js +2 -0
  134. package/Source/Scene/BufferPrimitiveCollection.js +79 -28
  135. package/Source/Scene/CameraEventAggregator.js +30 -18
  136. package/Source/Scene/Cesium3DTile.js +54 -1
  137. package/Source/Scene/Cesium3DTileContent.js +195 -254
  138. package/Source/Scene/Cesium3DTileContentFactory.js +10 -2
  139. package/Source/Scene/Cesium3DTileset.js +45 -5
  140. package/Source/Scene/Composite3DTileContent.js +254 -292
  141. package/Source/Scene/EdgeDisplayMode.js +50 -0
  142. package/Source/Scene/Empty3DTileContent.js +100 -132
  143. package/Source/Scene/GaussianSplat3DTileContent.js +436 -478
  144. package/Source/Scene/GeoJsonPrimitive.js +874 -0
  145. package/Source/Scene/Geometry3DTileContent.js +151 -185
  146. package/Source/Scene/GltfLoader.js +109 -0
  147. package/Source/Scene/Implicit3DTileContent.js +179 -214
  148. package/Source/Scene/MVTDataProvider.js +147 -0
  149. package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +79 -311
  150. package/Source/Scene/Model/Model.js +34 -0
  151. package/Source/Scene/Model/Model3DTileContent.js +424 -458
  152. package/Source/Scene/Model/ModelDrawCommand.js +31 -3
  153. package/Source/Scene/Model/ModelUtility.js +4 -0
  154. package/Source/Scene/Model/createVectorTileBuffersFromModelComponents.js +466 -150
  155. package/Source/Scene/ModelComponents.js +39 -1
  156. package/Source/Scene/Multiple3DTileContent.js +291 -334
  157. package/Source/Scene/Scene.js +26 -0
  158. package/Source/Scene/Tileset3DTileContent.js +113 -146
  159. package/Source/Scene/UrlTemplate3DTilesDataProvider.js +499 -0
  160. package/Source/Scene/Vector3DTileContent.js +205 -234
  161. package/Source/Scene/VectorGltf3DTileContent.js +85 -36
  162. package/Source/Scene/VoxelPrimitive.js +159 -175
  163. package/Source/Scene/VoxelProvider.js +64 -91
  164. package/Source/Scene/buildVectorGltfFromMVT.js +1059 -0
  165. package/Source/Scene/buildVoxelCustomShader.js +199 -0
  166. package/Source/Scene/decodeMVT.js +634 -0
  167. package/Source/Scene/renderBufferPointCollection.js +110 -64
  168. package/Source/Scene/renderBufferPolygonCollection.js +102 -55
  169. package/Source/Scene/renderBufferPolylineCollection.js +365 -166
  170. package/Source/Shaders/BufferPointMaterialFS.glsl +1 -0
  171. package/Source/Shaders/BufferPointMaterialFS.js +1 -0
  172. package/Source/Shaders/BufferPointMaterialVS.glsl +19 -9
  173. package/Source/Shaders/BufferPointMaterialVS.js +20 -10
  174. package/Source/Shaders/BufferPolygonMaterialVS.glsl +13 -4
  175. package/Source/Shaders/BufferPolygonMaterialVS.js +14 -5
  176. package/Source/Shaders/BufferPolylineMaterialVS.glsl +16 -2
  177. package/Source/Shaders/BufferPolylineMaterialVS.js +17 -3
  178. package/Source/Shaders/Builtin/Constants/passCesium3DTileEdgesDirect.glsl +9 -0
  179. package/Source/Shaders/Builtin/Constants/passCesium3DTileEdgesDirect.js +11 -0
  180. package/Source/Shaders/Builtin/Constants/passOverlay.glsl +1 -1
  181. package/Source/Shaders/Builtin/Constants/passOverlay.js +1 -1
  182. package/Source/Shaders/Builtin/CzmBuiltins.js +2 -0
  183. package/Source/Shaders/Model/EdgeVisibilityStageVS.glsl +0 -1
  184. package/Source/Shaders/Model/EdgeVisibilityStageVS.js +0 -1
  185. package/index.d.ts +253 -35
  186. package/index.js +71 -62
  187. package/package.json +2 -2
package/index.d.ts CHANGED
@@ -9571,7 +9571,7 @@ export interface MapProjection {
9571
9571
  /**
9572
9572
  * Gets the {@link Ellipsoid}.
9573
9573
  */
9574
- ellipsoid: Ellipsoid;
9574
+ readonly ellipsoid: Ellipsoid;
9575
9575
  /**
9576
9576
  * Projects {@link Cartographic} coordinates, in radians, to projection-specific map coordinates, in meters.
9577
9577
  * @param cartographic - The coordinates to project.
@@ -16122,25 +16122,25 @@ export class ScreenSpaceEventHandler {
16122
16122
  * Set a function to be executed on an input event.
16123
16123
  * @param action - Function to be executed when the input event occurs.
16124
16124
  * @param type - The ScreenSpaceEventType of input event.
16125
- * @param [modifier] - A KeyboardEventModifier key that is held when a <code>type</code>
16125
+ * @param [modifiers] - The KeyboardEventModifier keys that are held when a <code>type</code>
16126
16126
  * event occurs.
16127
16127
  */
16128
- setInputAction(action: ScreenSpaceEventHandler.PositionedEventCallback | ScreenSpaceEventHandler.MotionEventCallback | ScreenSpaceEventHandler.WheelEventCallback | ScreenSpaceEventHandler.TwoPointEventCallback | ScreenSpaceEventHandler.TwoPointMotionEventCallback, type: ScreenSpaceEventType, modifier?: KeyboardEventModifier): void;
16128
+ setInputAction(action: ScreenSpaceEventHandler.PositionedEventCallback | ScreenSpaceEventHandler.MotionEventCallback | ScreenSpaceEventHandler.WheelEventCallback | ScreenSpaceEventHandler.TwoPointEventCallback | ScreenSpaceEventHandler.TwoPointMotionEventCallback, type: ScreenSpaceEventType, modifiers?: KeyboardEventModifier[] | KeyboardEventModifier): void;
16129
16129
  /**
16130
16130
  * Returns the function to be executed on an input event.
16131
16131
  * @param type - The ScreenSpaceEventType of input event.
16132
- * @param [modifier] - A KeyboardEventModifier key that is held when a <code>type</code>
16132
+ * @param [modifiers] - The KeyboardEventModifier keys that are held when a <code>type</code>
16133
16133
  * event occurs.
16134
16134
  * @returns The function to be executed on an input event.
16135
16135
  */
16136
- getInputAction(type: ScreenSpaceEventType, modifier?: KeyboardEventModifier): ScreenSpaceEventHandler.PositionedEventCallback | ScreenSpaceEventHandler.MotionEventCallback | ScreenSpaceEventHandler.WheelEventCallback | ScreenSpaceEventHandler.TwoPointEventCallback | ScreenSpaceEventHandler.TwoPointMotionEventCallback;
16136
+ getInputAction(type: ScreenSpaceEventType, modifiers?: KeyboardEventModifier[] | KeyboardEventModifier): ScreenSpaceEventHandler.PositionedEventCallback | ScreenSpaceEventHandler.MotionEventCallback | ScreenSpaceEventHandler.WheelEventCallback | ScreenSpaceEventHandler.TwoPointEventCallback | ScreenSpaceEventHandler.TwoPointMotionEventCallback;
16137
16137
  /**
16138
16138
  * Removes the function to be executed on an input event.
16139
16139
  * @param type - The ScreenSpaceEventType of input event.
16140
- * @param [modifier] - A KeyboardEventModifier key that is held when a <code>type</code>
16140
+ * @param [modifiers] - The KeyboardEventModifier keys that are held when a <code>type</code>
16141
16141
  * event occurs.
16142
16142
  */
16143
- removeInputAction(type: ScreenSpaceEventType, modifier?: KeyboardEventModifier): void;
16143
+ removeInputAction(type: ScreenSpaceEventType, modifiers?: KeyboardEventModifier[] | KeyboardEventModifier): void;
16144
16144
  /**
16145
16145
  * Returns true if this object was destroyed; otherwise, false.
16146
16146
  * <br /><br />
@@ -18940,6 +18940,31 @@ export type TypedArrayConstructor = Float64ArrayConstructor | Float32ArrayConstr
18940
18940
 
18941
18941
  export type Destroyable = any;
18942
18942
 
18943
+ /**
18944
+ * A GeoJSON position expressed as [longitude, latitude] or [longitude, latitude, altitude].
18945
+ */
18946
+ export type GeoJsonPosition = number[];
18947
+
18948
+ /**
18949
+ * A GeoJSON geometry object.
18950
+ */
18951
+ export type GeoJsonGeometry = any;
18952
+
18953
+ /**
18954
+ * A GeoJSON feature object.
18955
+ */
18956
+ export type GeoJsonFeature = any;
18957
+
18958
+ /**
18959
+ * A GeoJSON feature collection object.
18960
+ */
18961
+ export type GeoJsonFeatureCollection = any;
18962
+
18963
+ /**
18964
+ * A top-level GeoJSON object (Geometry, Feature, or FeatureCollection).
18965
+ */
18966
+ export type GeoJson = GeoJsonGeometry | GeoJsonFeature | GeoJsonFeatureCollection;
18967
+
18943
18968
  /**
18944
18969
  * Determines if a given date is a leap year.
18945
18970
  * @example
@@ -27711,13 +27736,24 @@ export type BufferPointOptions = {
27711
27736
  * collection.get(i, point);
27712
27737
  * point.setMaterial(material);
27713
27738
  * }
27739
+ * @param [options.modelMatrix = Matrix4.IDENTITY] - Transforms geometry from model to world coordinates.
27740
+ * @param [options.allowPicking = false] - When <code>true</code>, primitives are pickable with {@link Scene#pick}. When <code>false</code>, memory and initialization cost are lower.
27741
+ * @param [options.boundingVolume] - Bounding volume, in world space, for the collection. When
27742
+ * unspecified, a bounding volume is computed automatically and updated when primitive positions change. When
27743
+ * specified, users are responsible for updating bounding volume as needed. Pre-computing the bounding volume
27744
+ * manually, and updating it only as needed, will improve performance for larger dynamic collections.
27714
27745
  */
27715
27746
  export class BufferPointCollection extends BufferPrimitiveCollection<BufferPoint> {
27716
27747
  constructor(options: {
27748
+ modelMatrix?: Matrix4;
27717
27749
  primitiveCountMax?: number;
27750
+ positionDatatype?: ComponentDatatype;
27751
+ positionNormalized?: boolean;
27718
27752
  show?: boolean;
27719
- debugShowBoundingVolume?: boolean;
27720
27753
  allowPicking?: boolean;
27754
+ boundingVolume?: BoundingSphere;
27755
+ debugShowBoundingVolume?: boolean;
27756
+ blendOption?: BlendOption;
27721
27757
  });
27722
27758
  /**
27723
27759
  * Adds a new point to the collection, with the specified options. A
@@ -27946,6 +27982,10 @@ export type BufferPolygonOptions = {
27946
27982
  * polygon.setMaterial(material);
27947
27983
  * }
27948
27984
  * @param [options.allowPicking = true] - When <code>true</code>, primitives are pickable with {@link Scene#pick}. When <code>false</code>, memory and initialization cost are lower.
27985
+ * @param [options.boundingVolume] - Bounding volume, in world space, for the collection. When
27986
+ * unspecified, a bounding volume is computed automatically and updated when primitive positions change. When
27987
+ * specified, users are responsible for updating bounding volume as needed. Pre-computing the bounding volume
27988
+ * manually, and updating it only as needed, will improve performance for larger dynamic collections.
27949
27989
  */
27950
27990
  export class BufferPolygonCollection extends BufferPrimitiveCollection<BufferPolygon> {
27951
27991
  constructor(options: {
@@ -27954,9 +27994,12 @@ export class BufferPolygonCollection extends BufferPrimitiveCollection<BufferPol
27954
27994
  holeCountMax?: number;
27955
27995
  triangleCountMax?: number;
27956
27996
  positionDatatype?: ComponentDatatype;
27997
+ positionNormalized?: boolean;
27957
27998
  show?: boolean;
27958
27999
  allowPicking?: boolean;
28000
+ boundingVolume?: BoundingSphere;
27959
28001
  debugShowBoundingVolume?: boolean;
28002
+ blendOption?: BlendOption;
27960
28003
  });
27961
28004
  /**
27962
28005
  * Duplicates the contents of this collection into the result collection.
@@ -28236,7 +28279,14 @@ export type BufferPrimitiveOptions = {
28236
28279
  * {@link Color}, {@link Cartesian3}, and other objects can all be reused when working with large collections,
28237
28280
  * using the {@link https://en.wikipedia.org/wiki/Flyweight_pattern|flyweight pattern}.</p>
28238
28281
  * @param [options.modelMatrix = Matrix4.IDENTITY] - Transforms geometry from model to world coordinates.
28282
+ * @param [options.positionNormalized = false] - When <code>true</code>, integer position values are treated as normalized,
28283
+ * where the full integer range maps to [-1, 1] (signed) or [0, 1] (unsigned). Only relevant for integer position datatypes
28284
+ * (BYTE, UNSIGNED_BYTE, SHORT, UNSIGNED_SHORT).
28239
28285
  * @param [options.allowPicking = false] - When <code>true</code>, primitives are pickable with {@link Scene#pick}. When <code>false</code>, memory and initialization cost are lower.
28286
+ * @param [options.boundingVolume] - Bounding volume, in world space, for the collection. When
28287
+ * unspecified, a bounding volume is computed automatically and updated when primitive positions change. When
28288
+ * specified, users are responsible for updating bounding volume as needed. Pre-computing the bounding volume
28289
+ * manually, and updating it only as needed, will improve performance for larger dynamic collections.
28240
28290
  */
28241
28291
  export class BufferPrimitiveCollection<T extends BufferPrimitive> {
28242
28292
  constructor(options: {
@@ -28245,16 +28295,22 @@ export class BufferPrimitiveCollection<T extends BufferPrimitive> {
28245
28295
  vertexCountMax?: number;
28246
28296
  show?: boolean;
28247
28297
  positionDatatype?: ComponentDatatype;
28298
+ positionNormalized?: boolean;
28248
28299
  allowPicking?: boolean;
28300
+ boundingVolume?: BoundingSphere;
28249
28301
  debugShowBoundingVolume?: boolean;
28302
+ blendOption?: BlendOption;
28250
28303
  });
28251
28304
  /**
28252
28305
  * Determines if primitives in this collection will be shown.
28253
28306
  */
28254
28307
  show: boolean;
28308
+ /**
28309
+ * Transforms geometry from model to world coordinates.
28310
+ */
28255
28311
  protected readonly _modelMatrix: Matrix4;
28256
28312
  protected readonly _boundingVolume: BoundingSphere;
28257
- protected readonly _boundingVolumeWC: BoundingSphere;
28313
+ protected readonly _boundingVolumeAutoUpdate: boolean;
28258
28314
  /**
28259
28315
  * This property is for debugging only; it is not for production use nor is it optimized.
28260
28316
  * <p>
@@ -28349,15 +28405,20 @@ export class BufferPrimitiveCollection<T extends BufferPrimitive> {
28349
28405
  */
28350
28406
  readonly modelMatrix: Matrix4;
28351
28407
  /**
28352
- * Local bounding volume for all primitives in the collection, including both
28408
+ * World-space bounding volume for all primitives in the collection, including both
28353
28409
  * shown and hidden primitives.
28354
28410
  */
28355
28411
  readonly boundingVolume: BoundingSphere;
28356
28412
  /**
28357
- * World bounding volume for all primitives in the collection, including both
28358
- * shown and hidden primitives.
28413
+ * The component datatype used to store position values.
28414
+ */
28415
+ readonly positionDatatype: ComponentDatatype;
28416
+ /**
28417
+ * When <code>true</code>, integer position values are treated as normalized
28418
+ * values, where the full integer range maps to [-1, 1] (signed) or [0, 1]
28419
+ * (unsigned).
28359
28420
  */
28360
- readonly boundingVolumeWC: BoundingSphere;
28421
+ readonly positionNormalized: boolean;
28361
28422
  /**
28362
28423
  * Returns a JSON-serializable array representing the collection. This encoding
28363
28424
  * is not memory-efficient, and should generally be used for debugging and
@@ -29321,8 +29382,7 @@ export enum Cesium3DTileColorBlendMode {
29321
29382
  * This type describes an interface and is not intended to be instantiated directly.
29322
29383
  * </p>
29323
29384
  */
29324
- export class Cesium3DTileContent {
29325
- constructor();
29385
+ export interface Cesium3DTileContent {
29326
29386
  /**
29327
29387
  * Gets the number of features in the tile.
29328
29388
  */
@@ -30683,6 +30743,7 @@ export namespace Cesium3DTileset {
30683
30743
  * @property [debugColorizeTiles = false] - For debugging only. When true, assigns a random color to each tile.
30684
30744
  * @property [enableDebugWireframe = false] - For debugging only. This must be true for debugWireframe to work in WebGL1. This cannot be set after the tileset has been created.
30685
30745
  * @property [debugWireframe = false] - For debugging only. When true, render's each tile's content as a wireframe.
30746
+ * @property [edgeDisplayMode = EdgeDisplayMode.SURFACES_ONLY] - Controls how edges from the {@link https://github.com/KhronosGroup/glTF/pull/2479|EXT_mesh_primitive_edge_visibility} glTF extension are rendered relative to surface geometry.
30686
30747
  * @property [debugShowBoundingVolume = false] - For debugging only. When true, renders the bounding volume for each tile.
30687
30748
  * @property [debugShowContentBoundingVolume = false] - For debugging only. When true, renders the bounding volume for each tile's content.
30688
30749
  * @property [debugShowViewerRequestVolume = false] - For debugging only. When true, renders the viewer request volume for each tile.
@@ -30751,6 +30812,7 @@ export namespace Cesium3DTileset {
30751
30812
  debugColorizeTiles?: boolean;
30752
30813
  enableDebugWireframe?: boolean;
30753
30814
  debugWireframe?: boolean;
30815
+ edgeDisplayMode?: EdgeDisplayMode;
30754
30816
  debugShowBoundingVolume?: boolean;
30755
30817
  debugShowContentBoundingVolume?: boolean;
30756
30818
  debugShowViewerRequestVolume?: boolean;
@@ -31175,6 +31237,13 @@ export class Cesium3DTileset {
31175
31237
  * </p>
31176
31238
  */
31177
31239
  debugWireframe: boolean;
31240
+ /**
31241
+ * Controls how edges from the
31242
+ * {@link https://github.com/KhronosGroup/glTF/pull/2479|EXT_mesh_primitive_edge_visibility}
31243
+ * glTF extension are rendered relative to surface geometry. Tile content
31244
+ * primitives that do not declare the extension are unaffected.
31245
+ */
31246
+ edgeDisplayMode: EdgeDisplayMode;
31178
31247
  /**
31179
31248
  * This property is for debugging only; it is not optimized for production use.
31180
31249
  * <p>
@@ -33404,6 +33473,35 @@ export class DynamicEnvironmentMapManager {
33404
33473
  static readonly DEFAULT_SPHERICAL_HARMONIC_COEFFICIENTS: Cartesian3[];
33405
33474
  }
33406
33475
 
33476
+ /**
33477
+ * Defines how edges contributed by the
33478
+ * {@link https://github.com/KhronosGroup/glTF/pull/2479|EXT_mesh_primitive_edge_visibility}
33479
+ * glTF extension are rendered relative to surface geometry.
33480
+ * <p>
33481
+ * Primitives that do not include the extension are unaffected by this setting
33482
+ * and always render normally.
33483
+ * </p>
33484
+ */
33485
+ export enum EdgeDisplayMode {
33486
+ /**
33487
+ * Render surfaces only. Edges from the
33488
+ * {@link https://github.com/KhronosGroup/glTF/pull/2479|EXT_mesh_primitive_edge_visibility}
33489
+ * extension are hidden.
33490
+ */
33491
+ SURFACES_ONLY = 0,
33492
+ /**
33493
+ * Render both surfaces and edges. Edges from the
33494
+ * {@link https://github.com/KhronosGroup/glTF/pull/2479|EXT_mesh_primitive_edge_visibility}
33495
+ * extension are composited on top of the surface geometry.
33496
+ */
33497
+ SURFACES_AND_EDGES = 1,
33498
+ /**
33499
+ * Render edges only. Surface geometry is hidden for primitives that have edge visibility data,
33500
+ * approximating CAD-style wireframe rendering. Primitives without the extension are unaffected.
33501
+ */
33502
+ EDGES_ONLY = 2
33503
+ }
33504
+
33407
33505
  /**
33408
33506
  * An appearance for geometry on the surface of the ellipsoid like {@link PolygonGeometry}
33409
33507
  * and {@link RectangleGeometry}, which supports all materials like {@link MaterialAppearance}
@@ -33861,14 +33959,16 @@ export class FrameRateMonitor {
33861
33959
  destroy(): void;
33862
33960
  }
33863
33961
 
33962
+ export interface GaussianSplat3DTileContent extends Cesium3DTileContent {
33963
+ }
33964
+
33864
33965
  /**
33865
33966
  * Represents the contents of a glTF or glb using the {@link https://github.com/CesiumGS/glTF/tree/draft-splat-spz/extensions/2.0/Khronos/KHR_gaussian_splatting | KHR_gaussian_splatting} and {@link https://github.com/CesiumGS/glTF/tree/draft-splat-spz/extensions/2.0/Khronos/KHR_gaussian_splatting_compression_spz_2 | KHR_gaussian_splatting_compression_spz_2} extensions.
33866
33967
  * <p>
33867
33968
  * Implements the {@link Cesium3DTileContent} interface.
33868
33969
  * </p>
33869
33970
  */
33870
- export class GaussianSplat3DTileContent {
33871
- constructor();
33971
+ export class GaussianSplat3DTileContent implements Cesium3DTileContent {
33872
33972
  /**
33873
33973
  * Performs checks to ensure that the provided tileset has the Gaussian Splatting extensions.
33874
33974
  * @param tileset - The tileset to check for the extensions.
@@ -33933,7 +34033,7 @@ export class GaussianSplat3DTileContent {
33933
34033
  * The resource that this content was loaded from.
33934
34034
  * <p>
33935
34035
  */
33936
- readonly url: Resource;
34036
+ readonly url: string;
33937
34037
  /**
33938
34038
  * Returns whether the feature has this property.
33939
34039
  * @param batchId - The batchId for the feature.
@@ -33954,6 +34054,75 @@ export class GaussianSplat3DTileContent {
33954
34054
  getFeature(batchId: number): Cesium3DTileFeature;
33955
34055
  }
33956
34056
 
34057
+ export type GeoJsonPrimitiveConstructorOptions = {
34058
+ geoJson?: any;
34059
+ url?: Resource | string;
34060
+ ellipsoid?: Ellipsoid;
34061
+ allowPicking?: boolean;
34062
+ show?: boolean;
34063
+ pickObjectFactory?: (...params: any[]) => any;
34064
+ };
34065
+
34066
+ /**
34067
+ * Lightweight GeoJSON loader that converts features directly into
34068
+ * {@link BufferPointCollection}, {@link BufferPolylineCollection}, and
34069
+ * {@link BufferPolygonCollection}.
34070
+ *
34071
+ * Unlike {@link GeoJsonDataSource}, this path does not create entities.
34072
+ * Instead, it exposes high-throughput buffer primitive collections that can be
34073
+ * added directly to {@link Scene#primitives}.
34074
+ * @example
34075
+ * const loader = await Cesium.GeoJsonPrimitive.fromUrl("./data.geojson");
34076
+ * viewer.scene.primitives.add(loader);
34077
+ *
34078
+ * loader.points; // BufferPointCollection | undefined
34079
+ * loader.polylines; // BufferPolylineCollection | undefined
34080
+ * loader.polygons; // BufferPolygonCollection | undefined
34081
+ * loader.ids; // source feature IDs
34082
+ * loader.properties; // source feature properties
34083
+ */
34084
+ export class GeoJsonPrimitive {
34085
+ constructor(options?: GeoJsonPrimitiveConstructorOptions);
34086
+ /**
34087
+ * Loader source URL when created via {@link GeoJsonPrimitive.fromUrl}.
34088
+ */
34089
+ readonly url: string | undefined;
34090
+ /**
34091
+ * Feature count represented by the loaded collections.
34092
+ */
34093
+ readonly featureCount: number;
34094
+ /**
34095
+ * Lookup table from integer ID generated by GeoJsonPrimitive, to integer or string Feature ID from GeoJSON source.
34096
+ */
34097
+ readonly ids: (string | number | undefined)[];
34098
+ /**
34099
+ * Source GeoJSON properties, indexed by generated integer ID.
34100
+ */
34101
+ readonly properties: Record<string, unknown>[];
34102
+ /**
34103
+ * Buffer point collection for point geometries.
34104
+ */
34105
+ readonly points: BufferPointCollection | undefined;
34106
+ /**
34107
+ * Buffer polyline collection for linestring geometries.
34108
+ */
34109
+ readonly polylines: BufferPolylineCollection | undefined;
34110
+ /**
34111
+ * Buffer polygon collection for polygon geometries.
34112
+ */
34113
+ readonly polygons: BufferPolygonCollection | undefined;
34114
+ /**
34115
+ * Loads GeoJSON from a URL or {@link Resource}.
34116
+ */
34117
+ static fromUrl(url: Resource | string, options?: GeoJsonPrimitiveConstructorOptions): Promise<GeoJsonPrimitive>;
34118
+ /**
34119
+ * Creates a loader directly from a parsed GeoJSON object.
34120
+ */
34121
+ static fromGeoJson(geoJson: any, options?: GeoJsonPrimitiveConstructorOptions): GeoJsonPrimitive;
34122
+ getId(featureId: number): void;
34123
+ getProperties(featureId: number): void;
34124
+ }
34125
+
33957
34126
  /**
33958
34127
  * Describes the format in which to request GetFeatureInfo from a Web Map Service (WMS) or Web Map Tile Service (WMTS) server.
33959
34128
  * @param type - The type of response to expect from a GetFeatureInfo request. Valid
@@ -34359,6 +34528,15 @@ export class GlobeTranslucency {
34359
34528
  */
34360
34529
  export function loadGltfJson(): void;
34361
34530
 
34531
+ export type EXTMeshPolygonExtension = {
34532
+ count: number;
34533
+ indicesOffsets: number;
34534
+ loopIndices?: number;
34535
+ loopIndicesOffsets?: number;
34536
+ triangleIndices?: number;
34537
+ triangleIndicesOffsets?: number;
34538
+ };
34539
+
34362
34540
  /**
34363
34541
  * Removes an extension from gltf.extensions, gltf.extensionsUsed, gltf.extensionsRequired, and any other objects in the glTF if it is present.
34364
34542
  * @param gltf - A javascript object containing a glTF asset.
@@ -37654,6 +37832,32 @@ export class Light {
37654
37832
  intensity: number;
37655
37833
  }
37656
37834
 
37835
+ /**
37836
+ * A Mapbox Vector Tiles (MVT) data provider. Loads .mvt or .pbf tiles, converting tiles
37837
+ * dynamically (at runtime) into 3D Tiles.
37838
+ *
37839
+ * <div class="notice">
37840
+ * This object is normally not instantiated directly, use {@link MVTDataProvider.fromUrl}.
37841
+ * </div>
37842
+ */
37843
+ export class MVTDataProvider {
37844
+ /**
37845
+ * Creates an MVTDataProvider from the specified URL template and options.
37846
+ * @param url - URL template, containing {z}, {x}, and {y} placeholders.
37847
+ * @param [options] - Provider options.
37848
+ * @param [options.minZoom = 0] - Minimum zoom level represented in the generated tileset.
37849
+ * @param [options.maxZoom = 14] - Maximum zoom level represented in the generated tileset.
37850
+ * @param [options.extent] - Optional geographic extent in radians to constrain the generated tile tree.
37851
+ * @param [options.featureIdProperty] - MVT property name to use as feature ID.
37852
+ */
37853
+ static fromUrl(url: Resource | string, options?: {
37854
+ minZoom?: number;
37855
+ maxZoom?: number;
37856
+ extent?: Rectangle;
37857
+ featureIdProperty?: string;
37858
+ }): void;
37859
+ }
37860
+
37657
37861
  /**
37658
37862
  * Describes how the map will operate in 2D.
37659
37863
  */
@@ -39524,6 +39728,11 @@ export enum LightingModel {
39524
39728
  * {@link https://github.com/KhronosGroup/glTF/pull/2514|EXT_mesh_primitive_restart}
39525
39729
  * </li>
39526
39730
  * <li>
39731
+ * {@link https://github.com/KhronosGroup/glTF/pull/2479|EXT_mesh_primitive_edge_visibility}
39732
+ * (edges are hidden by default; set {@link EdgeDisplayMode} via
39733
+ * {@link Model#edgeDisplayMode} or {@link Cesium3DTileset#edgeDisplayMode} to display them)
39734
+ * </li>
39735
+ * <li>
39527
39736
  * {@link https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Vendor/EXT_meshopt_compression|EXT_meshopt_compression}
39528
39737
  * </li>
39529
39738
  * <li>
@@ -39696,6 +39905,13 @@ export class Model {
39696
39905
  * </p>
39697
39906
  */
39698
39907
  debugWireframe: boolean;
39908
+ /**
39909
+ * Controls how edges from the
39910
+ * {@link https://github.com/KhronosGroup/glTF/pull/2479|EXT_mesh_primitive_edge_visibility}
39911
+ * glTF extension are rendered relative to surface geometry. Primitives that
39912
+ * do not declare the extension are unaffected by this setting.
39913
+ */
39914
+ edgeDisplayMode: EdgeDisplayMode;
39699
39915
  /**
39700
39916
  * Whether or not to render the model.
39701
39917
  */
@@ -39995,6 +40211,7 @@ export class Model {
39995
40211
  * @param [options.color] - A color that blends with the model's rendered color.
39996
40212
  * @param [options.colorBlendMode = ColorBlendMode.HIGHLIGHT] - Defines how the color blends with the model.
39997
40213
  * @param [options.colorBlendAmount = 0.5] - Value used to determine the color strength when the <code>colorBlendMode</code> is <code>MIX</code>. A value of 0.0 results in the model's rendered color while a value of 1.0 results in a solid color, with any value in-between resulting in a mix of the two.
40214
+ * @param [options.edgeDisplayMode = EdgeDisplayMode.SURFACES_ONLY] - Controls how edges from the {@link https://github.com/KhronosGroup/glTF/pull/2479|EXT_mesh_primitive_edge_visibility} extension are rendered relative to surface geometry.
39998
40215
  * @param [options.silhouetteColor = Color.RED] - The silhouette color. If more than 256 models have silhouettes enabled, there is a small chance that overlapping models will have minor artifacts.
39999
40216
  * @param [options.silhouetteSize = 0.0] - The size of the silhouette in pixels.
40000
40217
  * @param [options.enableShowOutline = true] - Whether to enable outlines for models using the {@link https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/CESIUM_primitive_outline|CESIUM_primitive_outline} extension. This can be set false to avoid post-processing geometry at load time. When false, the showOutlines and outlineColor options are ignored.
@@ -40049,6 +40266,7 @@ export class Model {
40049
40266
  color?: Color;
40050
40267
  colorBlendMode?: ColorBlendMode;
40051
40268
  colorBlendAmount?: number;
40269
+ edgeDisplayMode?: EdgeDisplayMode;
40052
40270
  silhouetteColor?: Color;
40053
40271
  silhouetteSize?: number;
40054
40272
  enableShowOutline?: boolean;
@@ -46107,7 +46325,8 @@ export class VoxelPrimitive {
46107
46325
  */
46108
46326
  clippingPlanes: ClippingPlaneCollection;
46109
46327
  /**
46110
- * Gets or sets the custom shader. If undefined, {@link VoxelPrimitive.DefaultCustomShader} is set.
46328
+ * Gets or sets the custom shader. If undefined, attempt to build a default custom shader
46329
+ * appropriate to the metadata type. If that fails, use {@link VoxelPrimitive.DefaultCustomShader}.
46111
46330
  */
46112
46331
  customShader: CustomShader;
46113
46332
  /**
@@ -46140,7 +46359,21 @@ export class VoxelPrimitive {
46140
46359
  * This type describes an interface and is not intended to be instantiated directly.
46141
46360
  */
46142
46361
  export class VoxelProvider {
46143
- constructor();
46362
+ /**
46363
+ * Requests the data for a given tile.
46364
+ * @param [options] - Object with the following properties:
46365
+ * @param [options.tileLevel = 0] - The tile's level.
46366
+ * @param [options.tileX = 0] - The tile's X coordinate.
46367
+ * @param [options.tileY = 0] - The tile's Y coordinate.
46368
+ * @param [options.tileZ = 0] - The tile's Z coordinate.
46369
+ * @returns A promise resolving to a VoxelContent containing the data for the tile, or undefined if the request could not be scheduled this frame.
46370
+ */
46371
+ requestData(options?: {
46372
+ tileLevel?: number;
46373
+ tileX?: number;
46374
+ tileY?: number;
46375
+ tileZ?: number;
46376
+ }): Promise<VoxelContent> | undefined;
46144
46377
  /**
46145
46378
  * A transform from local space to global space.
46146
46379
  */
@@ -46205,21 +46438,6 @@ export class VoxelProvider {
46205
46438
  * The number of levels of detail containing available tiles in the tileset.
46206
46439
  */
46207
46440
  readonly availableLevels: number | undefined;
46208
- /**
46209
- * Requests the data for a given tile.
46210
- * @param [options] - Object with the following properties:
46211
- * @param [options.tileLevel = 0] - The tile's level.
46212
- * @param [options.tileX = 0] - The tile's X coordinate.
46213
- * @param [options.tileY = 0] - The tile's Y coordinate.
46214
- * @param [options.tileZ = 0] - The tile's Z coordinate.
46215
- * @returns A promise resolving to a VoxelContent containing the data for the tile, or undefined if the request could not be scheduled this frame.
46216
- */
46217
- requestData(options?: {
46218
- tileLevel?: number;
46219
- tileX?: number;
46220
- tileY?: number;
46221
- tileZ?: number;
46222
- }): Promise<VoxelContent> | undefined;
46223
46441
  }
46224
46442
 
46225
46443
  /**