mars3d-cesium 1.96.8 → 1.101.1

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 (237) hide show
  1. package/Build/Cesium/Cesium.d.ts +632 -1275
  2. package/Build/Cesium/Cesium.js +13975 -8807
  3. package/Build/Cesium/ThirdParty/Workers/basis_transcoder.js +0 -25
  4. package/Build/Cesium/ThirdParty/Workers/draco_decoder_nodejs.js +1 -26
  5. package/Build/Cesium/ThirdParty/Workers/package.js +0 -25
  6. package/Build/Cesium/ThirdParty/Workers/pako_deflate.min.js +1 -26
  7. package/Build/Cesium/ThirdParty/Workers/pako_inflate.min.js +1 -26
  8. package/Build/Cesium/ThirdParty/Workers/z-worker-pako.js +1 -26
  9. package/Build/Cesium/ThirdParty/draco_decoder.wasm +0 -0
  10. package/Build/Cesium/ThirdParty/google-earth-dbroot-parser.js +0 -25
  11. package/Build/Cesium/Widgets/Animation/Animation.css +127 -1
  12. package/Build/Cesium/Widgets/Animation/lighter.css +70 -1
  13. package/Build/Cesium/Widgets/BaseLayerPicker/BaseLayerPicker.css +108 -1
  14. package/Build/Cesium/Widgets/BaseLayerPicker/lighter.css +22 -1
  15. package/Build/Cesium/Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector.css +102 -1
  16. package/Build/Cesium/Widgets/CesiumInspector/CesiumInspector.css +113 -1
  17. package/Build/Cesium/Widgets/CesiumWidget/CesiumWidget.css +124 -1
  18. package/Build/Cesium/Widgets/CesiumWidget/lighter.css +14 -1
  19. package/Build/Cesium/Widgets/FullscreenButton/FullscreenButton.css +8 -1
  20. package/Build/Cesium/Widgets/Geocoder/Geocoder.css +70 -1
  21. package/Build/Cesium/Widgets/Geocoder/lighter.css +17 -1
  22. package/Build/Cesium/Widgets/InfoBox/InfoBox.css +92 -1
  23. package/Build/Cesium/Widgets/InfoBox/InfoBoxDescription.css +178 -1
  24. package/Build/Cesium/Widgets/NavigationHelpButton/NavigationHelpButton.css +93 -1
  25. package/Build/Cesium/Widgets/NavigationHelpButton/lighter.css +38 -1
  26. package/Build/Cesium/Widgets/PerformanceWatchdog/PerformanceWatchdog.css +15 -1
  27. package/Build/Cesium/Widgets/ProjectionPicker/ProjectionPicker.css +38 -1
  28. package/Build/Cesium/Widgets/SceneModePicker/SceneModePicker.css +56 -1
  29. package/Build/Cesium/Widgets/SelectionIndicator/SelectionIndicator.css +20 -1
  30. package/Build/Cesium/Widgets/Timeline/Timeline.css +96 -1
  31. package/Build/Cesium/Widgets/Timeline/lighter.css +18 -1
  32. package/Build/Cesium/Widgets/VRButton/VRButton.css +8 -1
  33. package/Build/Cesium/Widgets/Viewer/Viewer.css +107 -1
  34. package/Build/Cesium/Widgets/VoxelInspector/VoxelInspector.css +16 -0
  35. package/Build/Cesium/Widgets/lighter.css +232 -1
  36. package/Build/Cesium/Widgets/lighterShared.css +46 -1
  37. package/Build/Cesium/Widgets/shared.css +103 -1
  38. package/Build/Cesium/Widgets/widgets.css +1311 -1
  39. package/Build/Cesium/Workers/ArcType-3d26c7db.js +1 -0
  40. package/Build/Cesium/Workers/AttributeCompression-5fa81749.js +1 -0
  41. package/Build/Cesium/Workers/AxisAlignedBoundingBox-ba8ff526.js +1 -0
  42. package/Build/Cesium/Workers/BoundingRectangle-d5562dff.js +1 -0
  43. package/Build/Cesium/Workers/BoxGeometry-dd38aa6b.js +1 -0
  44. package/Build/Cesium/Workers/Color-0023019e.js +1 -0
  45. package/Build/Cesium/Workers/ComponentDatatype-dd0b58d1.js +1 -0
  46. package/Build/Cesium/Workers/CoplanarPolygonGeometryLibrary-2fb2715b.js +1 -0
  47. package/Build/Cesium/Workers/CorridorGeometryLibrary-c5b09da3.js +1 -0
  48. package/Build/Cesium/Workers/CylinderGeometry-f7520869.js +1 -0
  49. package/Build/Cesium/Workers/CylinderGeometryLibrary-db7678f5.js +1 -0
  50. package/Build/Cesium/Workers/EllipseGeometry-cf52e05b.js +1 -0
  51. package/Build/Cesium/Workers/EllipseGeometryLibrary-574e5a91.js +1 -0
  52. package/Build/Cesium/Workers/EllipseOutlineGeometry-50ba7912.js +1 -0
  53. package/Build/Cesium/Workers/EllipsoidGeodesic-9484ceff.js +1 -0
  54. package/Build/Cesium/Workers/EllipsoidGeometry-756342f9.js +1 -0
  55. package/Build/Cesium/Workers/EllipsoidOutlineGeometry-783b26cc.js +1 -0
  56. package/Build/Cesium/Workers/EllipsoidRhumbLine-1dd98535.js +1 -0
  57. package/Build/Cesium/Workers/EllipsoidTangentPlane-fc1becbb.js +1 -0
  58. package/Build/Cesium/Workers/EncodedCartesian3-f2554a3b.js +1 -0
  59. package/Build/Cesium/Workers/FrustumGeometry-66dd29e8.js +1 -0
  60. package/Build/Cesium/Workers/GeometryAttribute-944b7aef.js +1 -0
  61. package/Build/Cesium/Workers/GeometryAttributes-52134c76.js +1 -0
  62. package/Build/Cesium/Workers/GeometryInstance-c620c48b.js +1 -0
  63. package/Build/Cesium/Workers/GeometryOffsetAttribute-b6810db4.js +1 -0
  64. package/Build/Cesium/Workers/GeometryPipeline-fafdd6b1.js +1 -0
  65. package/Build/Cesium/Workers/IndexDatatype-eddea9c9.js +1 -0
  66. package/Build/Cesium/Workers/IntersectionTests-da3e2bdf.js +1 -0
  67. package/Build/Cesium/Workers/Math-8e567554.js +1 -0
  68. package/Build/Cesium/Workers/Matrix2-66622085.js +1 -0
  69. package/Build/Cesium/Workers/Matrix3-d6f3913c.js +1 -0
  70. package/Build/Cesium/Workers/OrientedBoundingBox-ac323c64.js +1 -0
  71. package/Build/Cesium/Workers/Plane-6aee7ffc.js +1 -0
  72. package/Build/Cesium/Workers/PolygonGeometryLibrary-528d15dd.js +1 -0
  73. package/Build/Cesium/Workers/PolygonPipeline-7de38ba5.js +1 -0
  74. package/Build/Cesium/Workers/PolylinePipeline-576cc29e.js +1 -0
  75. package/Build/Cesium/Workers/PolylineVolumeGeometryLibrary-bf1fd89f.js +1 -0
  76. package/Build/Cesium/Workers/PrimitivePipeline-6dcd9231.js +1 -0
  77. package/Build/Cesium/Workers/RectangleGeometryLibrary-d62cc89b.js +1 -0
  78. package/Build/Cesium/Workers/RuntimeError-3c5db370.js +1 -0
  79. package/Build/Cesium/Workers/TerrainEncoding-99f48506.js +1 -0
  80. package/Build/Cesium/Workers/Transforms-b1441a66.js +14 -0
  81. package/Build/Cesium/Workers/VertexFormat-848ec33d.js +1 -0
  82. package/Build/Cesium/Workers/WallGeometryLibrary-1f160087.js +1 -0
  83. package/Build/Cesium/Workers/{WebGLConstants-dc5a5fcc.js → WebGLConstants-f7267ced.js} +0 -24
  84. package/Build/Cesium/Workers/WebMercatorProjection-53aa47d9.js +1 -0
  85. package/Build/Cesium/Workers/arrayRemoveDuplicates-bb49591c.js +1 -0
  86. package/Build/Cesium/Workers/cesiumWorkerBootstrapper.js +3 -3
  87. package/Build/Cesium/Workers/combine-6eb6e848.js +1 -0
  88. package/Build/Cesium/Workers/combineGeometry.js +1 -25
  89. package/Build/Cesium/Workers/createBoxGeometry.js +1 -25
  90. package/Build/Cesium/Workers/createBoxOutlineGeometry.js +1 -25
  91. package/Build/Cesium/Workers/createCircleGeometry.js +1 -25
  92. package/Build/Cesium/Workers/createCircleOutlineGeometry.js +1 -25
  93. package/Build/Cesium/Workers/createCoplanarPolygonGeometry.js +1 -25
  94. package/Build/Cesium/Workers/createCoplanarPolygonOutlineGeometry.js +1 -25
  95. package/Build/Cesium/Workers/createCorridorGeometry.js +1 -25
  96. package/Build/Cesium/Workers/createCorridorOutlineGeometry.js +1 -25
  97. package/Build/Cesium/Workers/createCylinderGeometry.js +1 -25
  98. package/Build/Cesium/Workers/createCylinderOutlineGeometry.js +1 -25
  99. package/Build/Cesium/Workers/createEllipseGeometry.js +1 -25
  100. package/Build/Cesium/Workers/createEllipseOutlineGeometry.js +1 -25
  101. package/Build/Cesium/Workers/createEllipsoidGeometry.js +1 -25
  102. package/Build/Cesium/Workers/createEllipsoidOutlineGeometry.js +1 -25
  103. package/Build/Cesium/Workers/createFrustumGeometry.js +1 -25
  104. package/Build/Cesium/Workers/createFrustumOutlineGeometry.js +1 -25
  105. package/Build/Cesium/Workers/createGeometry.js +1 -25
  106. package/Build/Cesium/Workers/createGroundPolylineGeometry.js +1 -25
  107. package/Build/Cesium/Workers/createPlaneGeometry.js +1 -25
  108. package/Build/Cesium/Workers/createPlaneOutlineGeometry.js +1 -25
  109. package/Build/Cesium/Workers/createPolygonGeometry.js +1 -25
  110. package/Build/Cesium/Workers/createPolygonOutlineGeometry.js +1 -25
  111. package/Build/Cesium/Workers/createPolylineGeometry.js +1 -25
  112. package/Build/Cesium/Workers/createPolylineVolumeGeometry.js +1 -25
  113. package/Build/Cesium/Workers/createPolylineVolumeOutlineGeometry.js +1 -25
  114. package/Build/Cesium/Workers/createRectangleGeometry.js +1 -25
  115. package/Build/Cesium/Workers/createRectangleOutlineGeometry.js +1 -25
  116. package/Build/Cesium/Workers/createSimplePolylineGeometry.js +1 -25
  117. package/Build/Cesium/Workers/createSphereGeometry.js +1 -25
  118. package/Build/Cesium/Workers/createSphereOutlineGeometry.js +1 -25
  119. package/Build/Cesium/Workers/createTaskProcessorWorker.js +1 -25
  120. package/Build/Cesium/Workers/createVectorTileClampedPolylines.js +1 -25
  121. package/Build/Cesium/Workers/createVectorTileGeometries.js +1 -25
  122. package/Build/Cesium/Workers/createVectorTilePoints.js +1 -25
  123. package/Build/Cesium/Workers/createVectorTilePolygons.js +1 -25
  124. package/Build/Cesium/Workers/createVectorTilePolylines.js +1 -25
  125. package/Build/Cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +1 -25
  126. package/Build/Cesium/Workers/createVerticesFromHeightmap.js +2 -26
  127. package/Build/Cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +1 -25
  128. package/Build/Cesium/Workers/createWallGeometry.js +1 -25
  129. package/Build/Cesium/Workers/createWallOutlineGeometry.js +1 -25
  130. package/Build/Cesium/Workers/decodeDraco.js +1 -25
  131. package/Build/Cesium/Workers/decodeGoogleEarthEnterprisePacket.js +1 -25
  132. package/Build/Cesium/Workers/decodeI3S.js +1 -0
  133. package/Build/Cesium/Workers/defaultValue-040c41f9.js +1 -0
  134. package/Build/Cesium/Workers/package.js +1 -1
  135. package/Build/Cesium/Workers/transcodeKTX2.js +1 -25
  136. package/Build/Cesium/Workers/transferTypedArrayTest.js +1 -1
  137. package/Build/Cesium/Workers/upsampleQuantizedTerrainMesh.js +1 -25
  138. package/Build/Cesium/index.cjs +14035 -8868
  139. package/Build/Cesium/index.js +13975 -8807
  140. package/package.json +49 -56
  141. package/Build/Cesium/README.md +0 -13
  142. package/Build/Cesium/Workers/ArcType-08a03e11.js +0 -25
  143. package/Build/Cesium/Workers/ArcType-8a3a359b.js +0 -26
  144. package/Build/Cesium/Workers/AttributeCompression-18035d40.js +0 -26
  145. package/Build/Cesium/Workers/AttributeCompression-857bc071.js +0 -25
  146. package/Build/Cesium/Workers/AxisAlignedBoundingBox-9370e41b.js +0 -25
  147. package/Build/Cesium/Workers/AxisAlignedBoundingBox-ca05cfa4.js +0 -26
  148. package/Build/Cesium/Workers/BoundingRectangle-a2ace56e.js +0 -26
  149. package/Build/Cesium/Workers/BoundingRectangle-e2d7a766.js +0 -25
  150. package/Build/Cesium/Workers/BoxGeometry-267165b6.js +0 -25
  151. package/Build/Cesium/Workers/BoxGeometry-ef98ea8e.js +0 -26
  152. package/Build/Cesium/Workers/Color-2af17825.js +0 -26
  153. package/Build/Cesium/Workers/Color-7c70ee41.js +0 -25
  154. package/Build/Cesium/Workers/ComponentDatatype-438cad2a.js +0 -26
  155. package/Build/Cesium/Workers/ComponentDatatype-cb7120fd.js +0 -25
  156. package/Build/Cesium/Workers/CoplanarPolygonGeometryLibrary-439554e8.js +0 -26
  157. package/Build/Cesium/Workers/CoplanarPolygonGeometryLibrary-a0c77862.js +0 -25
  158. package/Build/Cesium/Workers/CorridorGeometryLibrary-45bbd272.js +0 -25
  159. package/Build/Cesium/Workers/CorridorGeometryLibrary-c263be65.js +0 -26
  160. package/Build/Cesium/Workers/CylinderGeometry-0ffc7ef5.js +0 -26
  161. package/Build/Cesium/Workers/CylinderGeometry-97bb7e50.js +0 -25
  162. package/Build/Cesium/Workers/CylinderGeometryLibrary-37f2ca9d.js +0 -26
  163. package/Build/Cesium/Workers/CylinderGeometryLibrary-eb8570d0.js +0 -25
  164. package/Build/Cesium/Workers/EllipseGeometry-bf751fdd.js +0 -25
  165. package/Build/Cesium/Workers/EllipseGeometry-cb625fa5.js +0 -26
  166. package/Build/Cesium/Workers/EllipseGeometryLibrary-461ff9ca.js +0 -25
  167. package/Build/Cesium/Workers/EllipseGeometryLibrary-5f21f480.js +0 -26
  168. package/Build/Cesium/Workers/EllipseOutlineGeometry-bf79daa0.js +0 -26
  169. package/Build/Cesium/Workers/EllipseOutlineGeometry-d49f5b3c.js +0 -25
  170. package/Build/Cesium/Workers/EllipsoidGeodesic-0454f1c2.js +0 -26
  171. package/Build/Cesium/Workers/EllipsoidGeodesic-dc777b49.js +0 -25
  172. package/Build/Cesium/Workers/EllipsoidGeometry-5f67ae07.js +0 -25
  173. package/Build/Cesium/Workers/EllipsoidGeometry-7909d903.js +0 -26
  174. package/Build/Cesium/Workers/EllipsoidOutlineGeometry-17b3e928.js +0 -26
  175. package/Build/Cesium/Workers/EllipsoidOutlineGeometry-78afd83e.js +0 -25
  176. package/Build/Cesium/Workers/EllipsoidRhumbLine-248c8a1e.js +0 -26
  177. package/Build/Cesium/Workers/EllipsoidRhumbLine-9457c601.js +0 -25
  178. package/Build/Cesium/Workers/EllipsoidTangentPlane-100869c1.js +0 -26
  179. package/Build/Cesium/Workers/EllipsoidTangentPlane-28ea5df2.js +0 -25
  180. package/Build/Cesium/Workers/EncodedCartesian3-b59dee27.js +0 -26
  181. package/Build/Cesium/Workers/EncodedCartesian3-f4bbf636.js +0 -25
  182. package/Build/Cesium/Workers/FrustumGeometry-68f2152a.js +0 -26
  183. package/Build/Cesium/Workers/FrustumGeometry-6ebade62.js +0 -25
  184. package/Build/Cesium/Workers/GeometryAttribute-2cdece80.js +0 -26
  185. package/Build/Cesium/Workers/GeometryAttribute-7b85a4f4.js +0 -25
  186. package/Build/Cesium/Workers/GeometryAttributes-98e858da.js +0 -26
  187. package/Build/Cesium/Workers/GeometryAttributes-9da88d6e.js +0 -25
  188. package/Build/Cesium/Workers/GeometryInstance-5be181eb.js +0 -25
  189. package/Build/Cesium/Workers/GeometryInstance-bbed0de0.js +0 -26
  190. package/Build/Cesium/Workers/GeometryOffsetAttribute-116f8293.js +0 -26
  191. package/Build/Cesium/Workers/GeometryOffsetAttribute-a6457b88.js +0 -25
  192. package/Build/Cesium/Workers/GeometryPipeline-b0b332fc.js +0 -25
  193. package/Build/Cesium/Workers/GeometryPipeline-d062bcb6.js +0 -26
  194. package/Build/Cesium/Workers/IndexDatatype-5062f28c.js +0 -25
  195. package/Build/Cesium/Workers/IndexDatatype-dfa09980.js +0 -26
  196. package/Build/Cesium/Workers/IntersectionTests-54d7f8a4.js +0 -26
  197. package/Build/Cesium/Workers/IntersectionTests-a8d45b72.js +0 -25
  198. package/Build/Cesium/Workers/Matrix2-4706dd70.js +0 -32
  199. package/Build/Cesium/Workers/Matrix2-f4a72982.js +0 -25
  200. package/Build/Cesium/Workers/OrientedBoundingBox-1ead2ca7.js +0 -26
  201. package/Build/Cesium/Workers/OrientedBoundingBox-993c42bb.js +0 -25
  202. package/Build/Cesium/Workers/Plane-7efd9975.js +0 -25
  203. package/Build/Cesium/Workers/Plane-f4cd36d8.js +0 -26
  204. package/Build/Cesium/Workers/PolygonGeometryLibrary-6306e6e0.js +0 -25
  205. package/Build/Cesium/Workers/PolygonGeometryLibrary-b10640f5.js +0 -26
  206. package/Build/Cesium/Workers/PolygonPipeline-bdb47718.js +0 -25
  207. package/Build/Cesium/Workers/PolygonPipeline-ec925640.js +0 -26
  208. package/Build/Cesium/Workers/PolylinePipeline-52ab0181.js +0 -26
  209. package/Build/Cesium/Workers/PolylinePipeline-f14a929f.js +0 -25
  210. package/Build/Cesium/Workers/PolylineVolumeGeometryLibrary-c7bd0e64.js +0 -26
  211. package/Build/Cesium/Workers/PolylineVolumeGeometryLibrary-d1616a52.js +0 -25
  212. package/Build/Cesium/Workers/PrimitivePipeline-6af778fc.js +0 -26
  213. package/Build/Cesium/Workers/PrimitivePipeline-94215433.js +0 -25
  214. package/Build/Cesium/Workers/RectangleGeometryLibrary-625692af.js +0 -26
  215. package/Build/Cesium/Workers/RectangleGeometryLibrary-db12a2fa.js +0 -25
  216. package/Build/Cesium/Workers/RuntimeError-a977b8e0.js +0 -28
  217. package/Build/Cesium/Workers/RuntimeError-ed67c927.js +0 -25
  218. package/Build/Cesium/Workers/TerrainEncoding-4bb009a9.js +0 -25
  219. package/Build/Cesium/Workers/TerrainEncoding-dd4228a5.js +0 -26
  220. package/Build/Cesium/Workers/Transforms-66eda18c.js +0 -62
  221. package/Build/Cesium/Workers/Transforms-e2b46a6c.js +0 -63
  222. package/Build/Cesium/Workers/VertexFormat-3518f543.js +0 -26
  223. package/Build/Cesium/Workers/VertexFormat-a6a7080e.js +0 -25
  224. package/Build/Cesium/Workers/WallGeometryLibrary-683d8796.js +0 -25
  225. package/Build/Cesium/Workers/WallGeometryLibrary-f709492a.js +0 -26
  226. package/Build/Cesium/Workers/WebGLConstants-0ff1ce58.js +0 -26
  227. package/Build/Cesium/Workers/WebMercatorProjection-9ab65454.js +0 -25
  228. package/Build/Cesium/Workers/WebMercatorProjection-9bd06b6c.js +0 -26
  229. package/Build/Cesium/Workers/_commonjsHelpers-3aae1032-f55dc0c4.js +0 -26
  230. package/Build/Cesium/Workers/_commonjsHelpers-b40762ca.js +0 -25
  231. package/Build/Cesium/Workers/arrayRemoveDuplicates-ca6f0282.js +0 -26
  232. package/Build/Cesium/Workers/arrayRemoveDuplicates-cb6282cf.js +0 -25
  233. package/Build/Cesium/Workers/combine-13bb426d.js +0 -26
  234. package/Build/Cesium/Workers/combine-36f11d2f.js +0 -25
  235. package/Build/Cesium/Workers/defaultValue-028a8a27.js +0 -26
  236. package/Build/Cesium/Workers/defaultValue-ff4e651f.js +0 -25
  237. package/Build/Cesium/Workers/package.json +0 -1
@@ -6478,28 +6478,6 @@ export namespace EventHelper {
6478
6478
  type RemoveCallback = () => void;
6479
6479
  }
6480
6480
 
6481
- /**
6482
- * Flags to enable experimental features in CesiumJS. Stability and performance
6483
- may not be optimal when these are enabled. Experimental features are subject
6484
- to change without Cesium's standard deprecation policy.
6485
- <p>
6486
- Experimental features must still uphold Cesium's quality standards. Here
6487
- are some guidelines:
6488
- </p>
6489
- <ul>
6490
- <li>Experimental features must have high unit test coverage like any other feature.</li>
6491
- <li>Experimental features are intended for large features where there is benefit of merging some of the code sooner (e.g. to avoid long-running staging branches)</li>
6492
- <li>Experimental flags should be short-lived. Make it clear in the PR what it would take to promote the feature to a regular feature.</li>
6493
- <li>To avoid cluttering the code, check the flag in as few places as possible. Ideally this would be a single place.</li>
6494
- </ul>
6495
- */
6496
- export namespace ExperimentalFeatures {
6497
- /**
6498
- * Toggles the usage of the ModelExperimental class.
6499
- */
6500
- var enableModelExperimental: boolean;
6501
- }
6502
-
6503
6481
  /**
6504
6482
  * Constants to determine how an interpolated value is extrapolated
6505
6483
  when querying outside the bounds of available data.
@@ -11074,14 +11052,14 @@ export class Matrix4 implements ArrayLike<number> {
11074
11052
  * @param rotation - The rotation matrix.
11075
11053
  * @returns The modified result parameter.
11076
11054
  */
11077
- static setRotation(matrix: Matrix4, rotation: Matrix4): Matrix4;
11055
+ static setRotation(matrix: Matrix4, rotation: Matrix3): Matrix4;
11078
11056
  /**
11079
11057
  * Extracts the rotation matrix assuming the matrix is an affine transformation.
11080
11058
  * @param matrix - The matrix.
11081
11059
  * @param result - The object onto which to store the result.
11082
11060
  * @returns The modified result parameter.
11083
11061
  */
11084
- static getRotation(matrix: Matrix4, result: Matrix4): Matrix4;
11062
+ static getRotation(matrix: Matrix4, result: Matrix3): Matrix3;
11085
11063
  /**
11086
11064
  * Computes the product of two matrices.
11087
11065
  * @param left - The first matrix.
@@ -16770,10 +16748,9 @@ export class TileProviderError {
16770
16748
  */
16771
16749
  error: Error;
16772
16750
  /**
16773
- * Handles an error in an {@link ImageryProvider} or {@link TerrainProvider} by raising an event if it has any listeners, or by
16751
+ * Reports an error in an {@link ImageryProvider} or {@link TerrainProvider} by raising an event if it has any listeners, or by
16774
16752
  logging the error to the console if the event has no listeners. This method also tracks the number
16775
- of times the operation has been retried and will automatically retry if requested to do so by the
16776
- event listeners.
16753
+ of times the operation has been retried.
16777
16754
  * @param previousError - The error instance returned by this function the last
16778
16755
  time it was called for this error, or undefined if this is the first time this error has
16779
16756
  occurred.
@@ -16786,21 +16763,19 @@ export class TileProviderError {
16786
16763
  error is not specific to a particular tile.
16787
16764
  * @param level - The level-of-detail of the tile that experienced the error, or undefined if the
16788
16765
  error is not specific to a particular tile.
16789
- * @param retryFunction - The function to call to retry the operation. If undefined, the
16790
- operation will not be retried.
16791
16766
  * @param [errorDetails] - The error or exception that occurred, if any.
16792
16767
  * @returns The error instance that was passed to the event listeners and that
16793
16768
  should be passed to this function the next time it is called for the same error in order
16794
16769
  to track retry counts.
16795
16770
  */
16796
- static handleError(previousError: TileProviderError, provider: ImageryProvider | TerrainProvider, event: Event, message: string, x: number, y: number, level: number, retryFunction: TileProviderError.RetryFunction, errorDetails?: Error): TileProviderError;
16771
+ static reportError(previousError: TileProviderError, provider: ImageryProvider | TerrainProvider, event: Event, message: string, x: number, y: number, level: number, errorDetails?: Error): TileProviderError;
16797
16772
  /**
16798
- * Handles success of an operation by resetting the retry count of a previous error, if any. This way,
16773
+ * Reports success of an operation by resetting the retry count of a previous error, if any. This way,
16799
16774
  if the error occurs again in the future, the listeners will be informed that it has not yet been retried.
16800
16775
  * @param previousError - The previous error, or undefined if this operation has
16801
16776
  not previously resulted in an error.
16802
16777
  */
16803
- static handleSuccess(previousError: TileProviderError): void;
16778
+ static reportSuccess(previousError: TileProviderError): void;
16804
16779
  }
16805
16780
 
16806
16781
  export namespace TileProviderError {
@@ -21920,11 +21895,11 @@ export class KmlTour {
21920
21895
  addPlaylistEntry(entry: KmlTourFlyTo | KmlTourWait): void;
21921
21896
  /**
21922
21897
  * Play this tour.
21923
- * @param viewer - viewer widget.
21898
+ * @param widget - The widget.
21924
21899
  * @param [cameraOptions] - these options will be merged with {@link Camera#flyTo}
21925
21900
  options for FlyTo playlist entries.
21926
21901
  */
21927
- play(viewer: Viewer, cameraOptions?: any): void;
21902
+ play(widget: Viewer | CesiumWidget, cameraOptions?: any): void;
21928
21903
  /**
21929
21904
  * Stop curently playing tour.
21930
21905
  */
@@ -22301,6 +22276,7 @@ export namespace ModelGraphics {
22301
22276
  * @property [nodeTransformations] - An object, where keys are names of nodes, and values are {@link TranslationRotationScale} Properties describing the transformation to apply to that node. The transformation is applied after the node's existing transformation as specified in the glTF, and does not replace the node's existing transformation.
22302
22277
  * @property [articulations] - An object, where keys are composed of an articulation name, a single space, and a stage name, and the values are numeric properties.
22303
22278
  * @property [clippingPlanes] - A property specifying the {@link ClippingPlaneCollection} used to selectively disable rendering the model.
22279
+ * @property [customShader] - A property specifying the {@link CustomShader} to apply to this model.
22304
22280
  */
22305
22281
  type ConstructorOptions = {
22306
22282
  show?: Property | boolean;
@@ -22328,6 +22304,7 @@ export namespace ModelGraphics {
22328
22304
  [key: string]: number;
22329
22305
  };
22330
22306
  clippingPlanes?: Property | ClippingPlaneCollection;
22307
+ customShader?: Property | CustomShader;
22331
22308
  };
22332
22309
  }
22333
22310
 
@@ -22444,6 +22421,10 @@ export class ModelGraphics {
22444
22421
  * A property specifying the {@link ClippingPlaneCollection} used to selectively disable rendering the model.
22445
22422
  */
22446
22423
  clippingPlanes: Property | undefined;
22424
+ /**
22425
+ * Gets or sets the {@link CustomShader} to apply to this model. When <code>undefined</code>, no custom shader code is used.
22426
+ */
22427
+ customShader: Property | undefined;
22447
22428
  /**
22448
22429
  * Duplicates this instance.
22449
22430
  * @param [result] - The object onto which to store the result.
@@ -25397,9 +25378,12 @@ export enum Axis {
25397
25378
  }
25398
25379
 
25399
25380
  /**
25400
- * A viewport-aligned image positioned in the 3D scene, that is created
25401
- and rendered using a {@link BillboardCollection}. A billboard is created and its initial
25402
- properties are set by calling {@link BillboardCollection#add}.
25381
+ * <div class="notice">
25382
+ A billboard is created and its initial
25383
+ properties are set by calling {@link BillboardCollection#add}. Do not call the constructor directly.
25384
+ </div>
25385
+ A viewport-aligned image positioned in the 3D scene, that is created
25386
+ and rendered using a {@link BillboardCollection}.
25403
25387
  <br /><br />
25404
25388
  <div align='center'>
25405
25389
  <img src='Images/Billboard.png' width='400' height='300' /><br />
@@ -27175,6 +27159,10 @@ export class Cesium3DTile {
27175
27159
  Returns <code>undefined</code> if <code>extras</code> does not exist.
27176
27160
  */
27177
27161
  readonly extras: any;
27162
+ /**
27163
+ * Gets the I3S Node for the tile.
27164
+ */
27165
+ i3sNode: string;
27178
27166
  }
27179
27167
 
27180
27168
  /**
@@ -27370,13 +27358,6 @@ export class Cesium3DTileFeature {
27370
27358
  * @returns Whether the feature contains this property.
27371
27359
  */
27372
27360
  hasProperty(name: string): boolean;
27373
- /**
27374
- * Returns an array of property names for the feature. This includes properties from this feature's
27375
- class and inherited classes when using a batch table hierarchy.
27376
- * @param [results] - An array into which to store the results.
27377
- * @returns The names of the feature's properties.
27378
- */
27379
- getPropertyNames(results?: string[]): string[];
27380
27361
  /**
27381
27362
  * Returns an array of property IDs for the feature. This includes properties from this feature's
27382
27363
  class and inherited classes when using a batch table hierarchy.
@@ -27653,13 +27634,6 @@ export class Cesium3DTilePointFeature {
27653
27634
  * @returns Whether the feature contains this property.
27654
27635
  */
27655
27636
  hasProperty(name: string): boolean;
27656
- /**
27657
- * Returns an array of property names for the feature. This includes properties from this feature's
27658
- class and inherited classes when using a batch table hierarchy.
27659
- * @param [results] - An array into which to store the results.
27660
- * @returns The names of the feature's properties.
27661
- */
27662
- getPropertyNames(results?: string[]): string[];
27663
27637
  /**
27664
27638
  * Returns an array of property IDs for the feature. This includes properties from this feature's
27665
27639
  class and inherited classes when using a batch table hierarchy.
@@ -27769,7 +27743,9 @@ const tileset = scene.primitives.add(new Cesium.Cesium3DTileset({
27769
27743
  * @param [options.lightColor] - The light color when shading models. When <code>undefined</code> the scene's light color is used instead.
27770
27744
  * @param [options.imageBasedLighting] - The properties for managing image-based lighting for this tileset.
27771
27745
  * @param [options.backFaceCulling = true] - Whether to cull back-facing geometry. When true, back face culling is determined by the glTF material's doubleSided property; when false, back face culling is disabled.
27746
+ * @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 to false to avoid the additional processing of geometry at load time. When false, the showOutlines and outlineColor options are ignored.
27772
27747
  * @param [options.showOutline = true] - Whether to display the outline for models using the {@link https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/CESIUM_primitive_outline|CESIUM_primitive_outline} extension. When true, outlines are displayed. When false, outlines are not displayed.
27748
+ * @param [options.outlineColor = Color.BLACK] - The color to use when rendering outlines.
27773
27749
  * @param [options.vectorClassificationOnly = false] - Indicates that only the tileset's vector tiles should be used for classification.
27774
27750
  * @param [options.vectorKeepDecodedPositions = false] - Whether vector tiles should keep decoded positions in memory. This is used with {@link Cesium3DTileFeature.getPolylinePositions}.
27775
27751
  * @param [options.featureIdLabel = "featureId_0"] - Label of the feature ID set to use for picking and styling. For EXT_mesh_features, this is the feature ID's label property, or "featureId_N" (where N is the index in the featureIds array) when not specified. EXT_feature_metadata did not have a label field, so such feature ID sets are always labeled "featureId_N" where N is the index in the list of all feature Ids, where feature ID attributes are listed before feature ID textures. If featureIdLabel is an integer N, it is converted to the string "featureId_N" automatically. If both per-primitive and per-instance feature IDs are present, the instance feature IDs take priority.
@@ -27780,7 +27756,7 @@ const tileset = scene.primitives.add(new Cesium.Cesium3DTileset({
27780
27756
  * @param [options.debugHeatmapTilePropertyName] - The tile variable to colorize as a heatmap. All rendered tiles will be colorized relative to each other's specified variable value.
27781
27757
  * @param [options.debugFreezeFrame = false] - For debugging only. Determines if only the tiles from last frame should be used for rendering.
27782
27758
  * @param [options.debugColorizeTiles = false] - For debugging only. When true, assigns a random color to each tile.
27783
- * @param [options.enableDebugWireframe] - For debugging only. This must be true for debugWireframe to work for ModelExperimental in WebGL1. This cannot be set after the tileset has loaded.
27759
+ * @param [options.enableDebugWireframe] - For debugging only. This must be true for debugWireframe to work in WebGL1. This cannot be set after the tileset has loaded.
27784
27760
  * @param [options.debugWireframe = false] - For debugging only. When true, render's each tile's content as a wireframe.
27785
27761
  * @param [options.debugShowBoundingVolume = false] - For debugging only. When true, renders the bounding volume for each tile.
27786
27762
  * @param [options.debugShowContentBoundingVolume = false] - For debugging only. When true, renders the bounding volume for each tile's content.
@@ -27829,7 +27805,9 @@ export class Cesium3DTileset {
27829
27805
  lightColor?: Cartesian3;
27830
27806
  imageBasedLighting?: ImageBasedLighting;
27831
27807
  backFaceCulling?: boolean;
27808
+ enableShowOutline?: boolean;
27832
27809
  showOutline?: boolean;
27810
+ outlineColor?: Color;
27833
27811
  vectorClassificationOnly?: boolean;
27834
27812
  vectorKeepDecodedPositions?: boolean;
27835
27813
  featureIdLabel?: string | number;
@@ -28067,8 +28045,8 @@ export class Cesium3DTileset {
28067
28045
  </p>
28068
28046
  * @example
28069
28047
  * tileset.tileVisible.addEventListener(function(tile) {
28070
- if (tile.content instanceof Cesium.Batched3DModel3DTileContent) {
28071
- console.log('A Batched 3D Model tile is visible.');
28048
+ if (tile.content instanceof Cesium.Model3DTileContent) {
28049
+ console.log('A 3D model tile is visible.');
28072
28050
  }
28073
28051
  });
28074
28052
  * @example
@@ -28154,7 +28132,11 @@ export class Cesium3DTileset {
28154
28132
  {@link https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/CESIUM_primitive_outline|CESIUM_primitive_outline} extension.
28155
28133
  When true, outlines are displayed. When false, outlines are not displayed.
28156
28134
  */
28157
- readonly showOutline: boolean;
28135
+ showOutline: boolean;
28136
+ /**
28137
+ * The color to use when rendering outlines.
28138
+ */
28139
+ outlineColor: Color;
28158
28140
  /**
28159
28141
  * The {@link SplitDirection} to apply to this tileset.
28160
28142
  */
@@ -28341,11 +28323,8 @@ export class Cesium3DTileset {
28341
28323
  style: Cesium3DTileStyle | undefined;
28342
28324
  /**
28343
28325
  * A custom shader to apply to all tiles in the tileset. Only used for
28344
- contents that use {@link ModelExperimental}. Using custom shaders with a
28326
+ contents that use {@link Model}. Using custom shaders with a
28345
28327
  {@link Cesium3DTileStyle} may lead to undefined behavior.
28346
- <p>
28347
- To enable {@link ModelExperimental}, set {@link ExperimentalFeatures.enableModelExperimental} or tileset.enableModelExperimental to <code>true</code>.
28348
- </p>
28349
28328
  */
28350
28329
  customShader: CustomShader | undefined;
28351
28330
  /**
@@ -28426,22 +28405,28 @@ export class Cesium3DTileset {
28426
28405
  */
28427
28406
  readonly totalMemoryUsageInBytes: number;
28428
28407
  /**
28429
- * Determines whether terrain, 3D Tiles or both will be classified by this tileset.
28408
+ * Determines whether terrain, 3D Tiles, or both will be classified by this tileset.
28430
28409
  <p>
28431
- This option is only applied to tilesets containing batched 3D models, geometry data, or vector data. Even when undefined, vector data and geometry data
28432
- must render as classifications and will default to rendering on both terrain and other 3D Tiles tilesets.
28410
+ This option is only applied to tilesets containing batched 3D models,
28411
+ glTF content, geometry data, or vector data. Even when undefined, vector
28412
+ and geometry data must render as classifications and will default to
28413
+ rendering on both terrain and other 3D Tiles tilesets.
28433
28414
  </p>
28434
28415
  <p>
28435
- When enabled for batched 3D model tilesets, there are a few requirements/limitations on the glTF:
28416
+ When enabled for batched 3D model and glTF tilesets, there are a few
28417
+ requirements/limitations on the glTF:
28436
28418
  <ul>
28437
- <li>POSITION and _BATCHID semantics are required.</li>
28438
- <li>All indices with the same batch id must occupy contiguous sections of the index buffer.</li>
28439
- <li>All shaders and techniques are ignored. The generated shader simply multiplies the position by the model-view-projection matrix.</li>
28440
- <li>The only supported extensions are CESIUM_RTC and WEB3D_quantized_attributes.</li>
28441
- <li>Only one node is supported.</li>
28442
- <li>Only one mesh per node is supported.</li>
28443
- <li>Only one primitive per mesh is supported.</li>
28419
+ <li>The glTF cannot contain morph targets, skins, or animations.</li>
28420
+ <li>The glTF cannot contain the <code>EXT_mesh_gpu_instancing</code> extension.</li>
28421
+ <li>Only meshes with TRIANGLES can be used to classify other assets.</li>
28422
+ <li>The <code>POSITION</code> semantic is required.</li>
28423
+ <li>If <code>_BATCHID</code>s and an index buffer are both present, all indices with the same batch id must occupy contiguous sections of the index buffer.</li>
28424
+ <li>If <code>_BATCHID</code>s are present with no index buffer, all positions with the same batch id must occupy contiguous sections of the position buffer.</li>
28444
28425
  </ul>
28426
+ </p>
28427
+ <p>
28428
+ Additionally, classification is not supported for points or instanced 3D
28429
+ models.
28445
28430
  </p>
28446
28431
  */
28447
28432
  readonly classificationType: ClassificationType;
@@ -28604,15 +28589,6 @@ export class Cesium3DTileStyle {
28604
28589
  {@link https://github.com/CesiumGS/3d-tiles/tree/main/specification/Styling|3D Tiles Styling language}.
28605
28590
  */
28606
28591
  readonly style: any;
28607
- /**
28608
- * When <code>true</code>, the style is ready and its expressions can be evaluated. When
28609
- a style is constructed with an object, as opposed to a url, this is <code>true</code> immediately.
28610
- */
28611
- readonly ready: boolean;
28612
- /**
28613
- * Gets the promise that will be resolved when the the style is ready and its expressions can be evaluated.
28614
- */
28615
- readonly readyPromise: Promise<Cesium3DTileStyle>;
28616
28592
  /**
28617
28593
  * Gets or sets the {@link StyleExpression} object used to evaluate the style's <code>show</code> property. Alternatively a boolean, string, or object defining a show style can be used.
28618
28594
  The getter will return the internal {@link Expression} or {@link ConditionsExpression}, which may differ from the value provided to the setter.
@@ -30010,12 +29986,14 @@ viewer.scene.primitives.add(Cesium.createOsmBuildings({
30010
29986
  specified, a default style is used which gives each building or building part a
30011
29987
  color inferred from its OpenStreetMap <code>tags</code>. If no color can be inferred,
30012
29988
  <code>options.defaultColor</code> is used.
29989
+ * @param [options.enableShowOutline = true] - If true, enable rendering outlines. This can be set to false to avoid the additional processing of geometry at load time.
30013
29990
  * @param [options.showOutline = true] - Whether to show outlines around buildings. When true,
30014
29991
  outlines are displayed. When false, outlines are not displayed.
30015
29992
  */
30016
29993
  export function createOsmBuildings(options?: {
30017
29994
  defaultColor?: Color;
30018
29995
  style?: Cesium3DTileStyle;
29996
+ enableShowOutline?: boolean;
30019
29997
  showOutline?: boolean;
30020
29998
  }): Cesium3DTileset;
30021
29999
 
@@ -30144,9 +30122,11 @@ export enum CullFace {
30144
30122
  }
30145
30123
 
30146
30124
  /**
30147
- * A cumulus cloud billboard positioned in the 3D scene, that is created and rendered using a {@link CloudCollection}.
30125
+ * <div class="notice">
30148
30126
  A cloud is created and its initial properties are set by calling {@link CloudCollection#add}.
30149
- and {@link CloudCollection#remove}.
30127
+ and {@link CloudCollection#remove}. Do not call the constructor directly.
30128
+ </div>
30129
+ A cumulus cloud billboard positioned in the 3D scene, that is created and rendered using a {@link CloudCollection}.
30150
30130
  <br /><br />
30151
30131
  <div align='center'>
30152
30132
  <img src='Images/CumulusCloud.png' width='400' height='300' /><br />
@@ -31352,6 +31332,14 @@ export class GlobeTranslucency {
31352
31332
  rectangle: Rectangle;
31353
31333
  }
31354
31334
 
31335
+ /**
31336
+ * Removes an extension from gltf.extensions, gltf.extensionsUsed, gltf.extensionsRequired, and any other objects in the glTF if it is present.
31337
+ * @param gltf - A javascript object containing a glTF asset.
31338
+ * @param extension - The extension to remove.
31339
+ * @returns The extension data removed from gltf.extensions.
31340
+ */
31341
+ export function removeExtension(gltf: any, extension: string): any;
31342
+
31355
31343
  export namespace GoogleEarthEnterpriseImageryProvider {
31356
31344
  /**
31357
31345
  * Initialization options for the GoogleEarthEnterpriseImageryProvider constructor
@@ -32425,6 +32413,263 @@ export enum HorizontalOrigin {
32425
32413
  RIGHT = -1
32426
32414
  }
32427
32415
 
32416
+ /**
32417
+ * An I3SDataProvider is the main public class for I3S support. The url option
32418
+ should return a scene object. Currently supported I3S versions are 1.6 and
32419
+ 1.7/1.8 (OGC I3S 1.2). I3SFeature and I3SNode classes implement the
32420
+ Object Model for I3S entities, with public interfaces.
32421
+ * @example
32422
+ * const i3sData = new I3SDataProvider({
32423
+ url: 'https://tiles.arcgis.com/tiles/z2tnIkrLQ2BRzr6P/arcgis/rest/services/Frankfurt2017_vi3s_18/SceneServer/layers/0'
32424
+ });
32425
+ viewer.scene.primitives.add(i3sData);
32426
+ * @example
32427
+ * const geoidService = new Cesium.ArcGISTiledElevationTerrainProvider({
32428
+ url: "https://tiles.arcgis.com/tiles/z2tnIkrLQ2BRzr6P/arcgis/rest/services/EGM2008/ImageServer",
32429
+ });
32430
+ let i3sData = new I3SDataProvider({
32431
+ url: 'https://tiles.arcgis.com/tiles/z2tnIkrLQ2BRzr6P/arcgis/rest/services/Frankfurt2017_vi3s_18/SceneServer/layers/0',
32432
+ geoidTiledTerrainProvider: geoidService
32433
+ });
32434
+ viewer.scene.primitives.add(i3sData);
32435
+ * @param options - Object with the following properties:
32436
+ * @param options.url - The url of the I3S dataset.
32437
+ * @param [options.name] - The name of the I3S dataset.
32438
+ * @param [options.show = true] - Determines if the dataset will be shown.
32439
+ * @param [options.geoidTiledTerrainProvider] - Tiled elevation provider describing an Earth Gravitational Model. If defined, geometry will be shifted based on the offsets given by this provider. Required to position I3S data sets with gravity-related height at the correct location.
32440
+ * @param [options.traceFetches = false] - Debug option. When true, log a message whenever an I3S tile is fetched.
32441
+ * @param [options.cesium3dTilesetOptions] - Object containing options to pass to an internally created {@link Cesium3DTileset}. See {@link Cesium3DTileset} for list of valid properties. All options can be used with the exception of <code>url</code> and <code>show</code> which are overridden by values from I3SDataProvider.
32442
+ */
32443
+ export class I3SDataProvider {
32444
+ constructor(options: {
32445
+ url: Resource | string;
32446
+ name?: string;
32447
+ show?: boolean;
32448
+ geoidTiledTerrainProvider?: ArcGISTiledElevationTerrainProvider;
32449
+ traceFetches?: boolean;
32450
+ cesium3dTilesetOptions?: any;
32451
+ });
32452
+ /**
32453
+ * Gets a human-readable name for this dataset.
32454
+ */
32455
+ readonly name: string;
32456
+ /**
32457
+ * Determines if the dataset will be shown.
32458
+ */
32459
+ show: boolean;
32460
+ /**
32461
+ * Gets or sets debugging and tracing of I3S fetches.
32462
+ */
32463
+ traceFetches: boolean;
32464
+ /**
32465
+ * The terrain provider referencing the GEOID service to be used for orthometric to ellipsoidal conversion.
32466
+ */
32467
+ readonly geoidTiledTerrainProvider: ArcGISTiledElevationTerrainProvider;
32468
+ /**
32469
+ * Gets the collection of layers.
32470
+ */
32471
+ readonly layers: I3SLayer[];
32472
+ /**
32473
+ * Gets the I3S data for this object.
32474
+ */
32475
+ readonly data: any;
32476
+ /**
32477
+ * Gets the extent covered by this I3S.
32478
+ */
32479
+ readonly extent: Rectangle;
32480
+ /**
32481
+ * Gets the promise that will be resolved when the I3S scene is loaded.
32482
+ */
32483
+ readonly readyPromise: Promise<I3SDataProvider>;
32484
+ /**
32485
+ * When <code>true</code>, the I3S scene is loaded.
32486
+ This is set to <code>true</code> right before {@link I3SDataProvider#readyPromise} is resolved.
32487
+ */
32488
+ readonly ready: boolean;
32489
+ /**
32490
+ * The resource used to fetch the I3S dataset.
32491
+ */
32492
+ readonly resource: Resource;
32493
+ /**
32494
+ * Destroys the WebGL resources held by this object. Destroying an object allows for deterministic
32495
+ release of WebGL resources, instead of relying on the garbage collector to destroy this object.
32496
+ <p>
32497
+ Once an object is destroyed, it should not be used; calling any function other than
32498
+ <code>isDestroyed</code> will result in a {@link DeveloperError} exception. Therefore,
32499
+ assign the return value (<code>undefined</code>) to the object as done in the example.
32500
+ </p>
32501
+ */
32502
+ destroy(): void;
32503
+ /**
32504
+ * Returns true if this object was destroyed; otherwise, false.
32505
+ <p>
32506
+ If this object was destroyed, it should not be used; calling any function other than
32507
+ <code>isDestroyed</code> will result in a {@link DeveloperError} exception.
32508
+ </p>
32509
+ * @returns <code>true</code> if this object was destroyed; otherwise, <code>false</code>.
32510
+ */
32511
+ isDestroyed(): boolean;
32512
+ }
32513
+
32514
+ /**
32515
+ * This class implements an I3S Feature.
32516
+ <p>
32517
+ Do not construct this directly, instead access tiles through {@link I3SNode}.
32518
+ </p>
32519
+ */
32520
+ export class I3SFeature {
32521
+ constructor();
32522
+ /**
32523
+ * Gets the resource for the feature
32524
+ */
32525
+ readonly resource: Resource;
32526
+ /**
32527
+ * Gets the I3S data for this object.
32528
+ */
32529
+ readonly data: any;
32530
+ }
32531
+
32532
+ /**
32533
+ * This class implements an I3S Field which is custom data attached
32534
+ to nodes
32535
+ */
32536
+ export class I3SField {
32537
+ constructor();
32538
+ /**
32539
+ * Gets the resource for the fields
32540
+ */
32541
+ readonly resource: Resource;
32542
+ /**
32543
+ * Gets the header for this field.
32544
+ */
32545
+ readonly header: any;
32546
+ /**
32547
+ * Gets the values for this field.
32548
+ */
32549
+ readonly values: any;
32550
+ /**
32551
+ * Gets the name for the field.
32552
+ */
32553
+ readonly name: string;
32554
+ /**
32555
+ * Loads the content.
32556
+ * @returns A promise that is resolved when the field data is loaded
32557
+ */
32558
+ load(): Promise<void>;
32559
+ }
32560
+
32561
+ /**
32562
+ * This class implements an I3S Geometry. Each I3SGeometry
32563
+ generates an in memory glTF to be used as content for a Cesium3DTile
32564
+ <p>
32565
+ Do not construct this directly, instead access tiles through {@link I3SNode}.
32566
+ </p>
32567
+ */
32568
+ export class I3SGeometry {
32569
+ constructor();
32570
+ /**
32571
+ * Gets the resource for the geometry
32572
+ */
32573
+ readonly resource: Resource;
32574
+ /**
32575
+ * Gets the I3S data for this object.
32576
+ */
32577
+ readonly data: any;
32578
+ /**
32579
+ * Gets the custom attributes of the geometry.
32580
+ */
32581
+ readonly customAttributes: any;
32582
+ /**
32583
+ * Find a triangle touching the point [px, py, pz], then return the vertex closest to the search point
32584
+ * @param px - The x component of the point to query
32585
+ * @param py - The y component of the point to query
32586
+ * @param pz - The z component of the point to query
32587
+ * @returns A structure containing the index of the closest point,
32588
+ the squared distance from the queried point to the point that is found,
32589
+ the distance from the queried point to the point that is found,
32590
+ the queried position in local space,
32591
+ the closest position in local space
32592
+ */
32593
+ getClosestPointIndexOnTriangle(px: number, py: number, pz: number): any;
32594
+ }
32595
+
32596
+ /**
32597
+ * This class implements an I3S layer. In CesiumJS each I3SLayer creates a Cesium3DTileset.
32598
+ <p>
32599
+ Do not construct this directly, instead access layers through {@link I3SDataProvider}.
32600
+ </p>
32601
+ */
32602
+ export class I3SLayer {
32603
+ constructor();
32604
+ /**
32605
+ * Gets the resource for the layer.
32606
+ */
32607
+ readonly resource: Resource;
32608
+ /**
32609
+ * Gets the root node of this layer.
32610
+ */
32611
+ readonly rootNode: I3SNode;
32612
+ /**
32613
+ * Gets the Cesium3DTileset for this layer.
32614
+ */
32615
+ readonly tileset: Cesium3DTileset;
32616
+ /**
32617
+ * Gets the I3S data for this object.
32618
+ */
32619
+ readonly data: any;
32620
+ }
32621
+
32622
+ /**
32623
+ * This class implements an I3S Node. In CesiumJS each I3SNode creates a Cesium3DTile.
32624
+ <p>
32625
+ Do not construct this directly, instead access tiles through {@link I3SLayer}.
32626
+ </p>
32627
+ */
32628
+ export class I3SNode {
32629
+ constructor();
32630
+ /**
32631
+ * Gets the resource for the node.
32632
+ */
32633
+ readonly resource: Resource;
32634
+ /**
32635
+ * Gets the parent layer.
32636
+ */
32637
+ readonly layer: I3SLayer;
32638
+ /**
32639
+ * Gets the parent node.
32640
+ */
32641
+ readonly parent: I3SNode | undefined;
32642
+ /**
32643
+ * Gets the children nodes.
32644
+ */
32645
+ readonly children: I3SNode[];
32646
+ /**
32647
+ * Gets the collection of geometries.
32648
+ */
32649
+ readonly geometryData: I3SGeometry[];
32650
+ /**
32651
+ * Gets the collection of features.
32652
+ */
32653
+ readonly featureData: I3SFeature[];
32654
+ /**
32655
+ * Gets the collection of fields.
32656
+ */
32657
+ readonly fields: I3SField[];
32658
+ /**
32659
+ * Gets the Cesium3DTile for this node.
32660
+ */
32661
+ readonly tile: Cesium3DTile;
32662
+ /**
32663
+ * Gets the I3S data for this object.
32664
+ */
32665
+ readonly data: any;
32666
+ /**
32667
+ * Loads the node fields.
32668
+ * @returns A promise that is resolved when the I3S Node fields are loaded
32669
+ */
32670
+ loadFields(): Promise<void>;
32671
+ }
32672
+
32428
32673
  /**
32429
32674
  * Properties for managing image-based lighting on tilesets and models.
32430
32675
  Also manages the necessary resources and textures.
@@ -33329,8 +33574,9 @@ export enum IonWorldImageryStyle {
33329
33574
  }
33330
33575
 
33331
33576
  /**
33332
- * A Label draws viewport-aligned text positioned in the 3D scene. This constructor
33333
- should not be used directly, instead create labels by calling {@link LabelCollection#add}.
33577
+ * <div class="notice">
33578
+ Create labels by calling {@link LabelCollection#add}. Do not call the constructor directly.
33579
+ </div>
33334
33580
  */
33335
33581
  export class Label {
33336
33582
  constructor();
@@ -34764,843 +35010,6 @@ export namespace MaterialAppearance {
34764
35010
  }
34765
35011
  }
34766
35012
 
34767
- /**
34768
- * A 3D model based on glTF, the runtime asset format for WebGL, OpenGL ES, and OpenGL.
34769
- <p>
34770
- Cesium includes support for geometry and materials, glTF animations, and glTF skinning.
34771
- In addition, individual glTF nodes are pickable with {@link Scene#pick} and animatable
34772
- with {@link Model#getNode}. glTF cameras and lights are not currently supported.
34773
- </p>
34774
- <p>
34775
- An external glTF asset is created with {@link Model.fromGltf}. glTF JSON can also be
34776
- created at runtime and passed to this constructor function. In either case, the
34777
- {@link Model#readyPromise} is resolved when the model is ready to render, i.e.,
34778
- when the external binary, image, and shader files are downloaded and the WebGL
34779
- resources are created.
34780
- </p>
34781
- <p>
34782
- Cesium supports glTF assets with the following extensions:
34783
- <ul>
34784
- <li>
34785
- {@link https://github.com/KhronosGroup/glTF/blob/master/extensions/1.0/Khronos/KHR_binary_glTF/README.md|KHR_binary_glTF (glTF 1.0)}
34786
- </li><li>
34787
- {@link https://github.com/KhronosGroup/glTF/blob/master/extensions/1.0/Khronos/KHR_materials_common/README.md|KHR_materials_common (glTF 1.0)}
34788
- </li><li>
34789
- {@link https://github.com/KhronosGroup/glTF/blob/master/extensions/1.0/Vendor/WEB3D_quantized_attributes/README.md|WEB3D_quantized_attributes (glTF 1.0)}
34790
- </li><li>
34791
- {@link https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/AGI_articulations/README.md|AGI_articulations}
34792
- </li><li>
34793
- {@link https://github.com/KhronosGroup/glTF/pull/1302|KHR_blend (draft)}
34794
- </li><li>
34795
- {@link https://github.com/KhronosGroup/glTF/blob/master/extensions/2.0/Khronos/KHR_draco_mesh_compression/README.md|KHR_draco_mesh_compression}
34796
- </li><li>
34797
- {@link https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_pbrSpecularGlossiness/README.md|KHR_materials_pbrSpecularGlossiness}
34798
- </li><li>
34799
- {@link https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_unlit/README.md|KHR_materials_unlit}
34800
- </li><li>
34801
- {@link https://github.com/KhronosGroup/glTF/blob/master/extensions/2.0/Khronos/KHR_techniques_webgl/README.md|KHR_techniques_webgl}
34802
- </li><li>
34803
- {@link https://github.com/KhronosGroup/glTF/blob/master/extensions/2.0/Khronos/KHR_texture_transform/README.md|KHR_texture_transform}
34804
- </li><li>
34805
- {@link https://github.com/KhronosGroup/glTF/blob/master/extensions/2.0/Khronos/KHR_texture_basisu|KHR_texture_basisu}
34806
- </li>
34807
- </ul>
34808
- </p>
34809
- <p>
34810
- Note: for models with compressed textures using the KHR_texture_basisu extension, we recommend power of 2 textures in both dimensions
34811
- for maximum compatibility. This is because some samplers require power of 2 textures ({@link https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/Tutorial/Using_textures_in_WebGL|Using textures in WebGL})
34812
- and KHR_texture_basisu requires multiple of 4 dimensions ({@link https://github.com/KhronosGroup/glTF/blob/master/extensions/2.0/Khronos/KHR_texture_basisu/README.md#additional-requirements|KHR_texture_basisu additional requirements}).
34813
- </p>
34814
- <p>
34815
- For high-precision rendering, Cesium supports the {@link https://github.com/KhronosGroup/glTF/blob/master/extensions/1.0/Vendor/CESIUM_RTC/README.md|CESIUM_RTC} extension, which introduces the
34816
- CESIUM_RTC_MODELVIEW parameter semantic that says the node is in WGS84 coordinates translated
34817
- relative to a local origin.
34818
- </p>
34819
- * @param [options] - Object with the following properties:
34820
- * @param [options.gltf] - A glTF JSON object, or a binary glTF buffer.
34821
- * @param [options.basePath = ''] - The base path that paths in the glTF JSON are relative to.
34822
- * @param [options.show = true] - Determines if the model primitive will be shown.
34823
- * @param [options.modelMatrix = Matrix4.IDENTITY] - The 4x4 transformation matrix that transforms the model from model to world coordinates.
34824
- * @param [options.scale = 1.0] - A uniform scale applied to this model.
34825
- * @param [options.minimumPixelSize = 0.0] - The approximate minimum pixel size of the model regardless of zoom.
34826
- * @param [options.maximumScale] - The maximum scale size of a model. An upper limit for minimumPixelSize.
34827
- * @param [options.id] - A user-defined object to return when the model is picked with {@link Scene#pick}.
34828
- * @param [options.allowPicking = true] - When <code>true</code>, each glTF mesh and primitive is pickable with {@link Scene#pick}.
34829
- * @param [options.incrementallyLoadTextures = true] - Determine if textures may continue to stream in after the model is loaded.
34830
- * @param [options.asynchronous = true] - Determines if model WebGL resource creation will be spread out over several frames or block until completion once all glTF files are loaded.
34831
- * @param [options.clampAnimations = true] - Determines if the model's animations should hold a pose over frames where no keyframes are specified.
34832
- * @param [options.shadows = ShadowMode.ENABLED] - Determines whether the model casts or receives shadows from light sources.
34833
- * @param [options.debugShowBoundingVolume = false] - For debugging only. Draws the bounding sphere for each draw command in the model.
34834
- * @param [options.debugWireframe = false] - For debugging only. Draws the model in wireframe.
34835
- * @param [options.heightReference = HeightReference.NONE] - Determines how the model is drawn relative to terrain.
34836
- * @param [options.scene] - Must be passed in for models that use the height reference property.
34837
- * @param [options.distanceDisplayCondition] - The condition specifying at what distance from the camera that this model will be displayed.
34838
- * @param [options.color = Color.WHITE] - A color that blends with the model's rendered color.
34839
- * @param [options.colorBlendMode = ColorBlendMode.HIGHLIGHT] - Defines how the color blends with the model.
34840
- * @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.
34841
- * @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.
34842
- * @param [options.silhouetteSize = 0.0] - The size of the silhouette in pixels.
34843
- * @param [options.clippingPlanes] - The {@link ClippingPlaneCollection} used to selectively disable rendering the model.
34844
- * @param [options.dequantizeInShader = true] - Determines if a {@link https://github.com/google/draco|Draco} encoded model is dequantized on the GPU. This decreases total memory usage for encoded models. Deprecated in CesiumJS 1.94, will be removed in CesiumJS 1.96.
34845
- * @param [options.lightColor] - The light color when shading the model. When <code>undefined</code> the scene's light color is used instead.
34846
- * @param [options.imageBasedLighting] - The properties for managing image-based lighting on this model.
34847
- * @param [options.credit] - A credit for the data source, which is displayed on the canvas.
34848
- * @param [options.showCreditsOnScreen = false] - Whether to display the credits of this model on screen.
34849
- * @param [options.backFaceCulling = true] - Whether to cull back-facing geometry. When true, back face culling is determined by the material's doubleSided property; when false, back face culling is disabled. Back faces are not culled if {@link Model#color} is translucent or {@link Model#silhouetteSize} is greater than 0.0.
34850
- * @param [options.showOutline = true] - Whether to display the outline for models using the {@link https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/CESIUM_primitive_outline|CESIUM_primitive_outline} extension. When true, outlines are displayed. When false, outlines are not displayed.
34851
- * @param [options.splitDirection = SplitDirection.NONE] - The {@link SplitDirection} split to apply to this model.
34852
- */
34853
- export class Model {
34854
- constructor(options?: {
34855
- gltf?: any | ArrayBuffer | Uint8Array;
34856
- basePath?: Resource | string;
34857
- show?: boolean;
34858
- modelMatrix?: Matrix4;
34859
- scale?: number;
34860
- minimumPixelSize?: number;
34861
- maximumScale?: number;
34862
- id?: any;
34863
- allowPicking?: boolean;
34864
- incrementallyLoadTextures?: boolean;
34865
- asynchronous?: boolean;
34866
- clampAnimations?: boolean;
34867
- shadows?: ShadowMode;
34868
- debugShowBoundingVolume?: boolean;
34869
- debugWireframe?: boolean;
34870
- heightReference?: HeightReference;
34871
- scene?: Scene;
34872
- distanceDisplayCondition?: DistanceDisplayCondition;
34873
- color?: Color;
34874
- colorBlendMode?: ColorBlendMode;
34875
- colorBlendAmount?: number;
34876
- silhouetteColor?: Color;
34877
- silhouetteSize?: number;
34878
- clippingPlanes?: ClippingPlaneCollection;
34879
- dequantizeInShader?: boolean;
34880
- lightColor?: Cartesian3;
34881
- imageBasedLighting?: ImageBasedLighting;
34882
- credit?: Credit | string;
34883
- showCreditsOnScreen?: boolean;
34884
- backFaceCulling?: boolean;
34885
- showOutline?: boolean;
34886
- splitDirection?: SplitDirection;
34887
- });
34888
- /**
34889
- * Determines if the model primitive will be shown.
34890
- */
34891
- show: boolean;
34892
- /**
34893
- * The silhouette color.
34894
- */
34895
- silhouetteColor: Color;
34896
- /**
34897
- * The size of the silhouette in pixels.
34898
- */
34899
- silhouetteSize: number;
34900
- /**
34901
- * The 4x4 transformation matrix that transforms the model from model to world coordinates.
34902
- When this is the identity matrix, the model is drawn in world coordinates, i.e., Earth's WGS84 coordinates.
34903
- Local reference frames can be used by providing a different transformation matrix, like that returned
34904
- by {@link Transforms.eastNorthUpToFixedFrame}.
34905
- * @example
34906
- * const origin = Cesium.Cartesian3.fromDegrees(-95.0, 40.0, 200000.0);
34907
- m.modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(origin);
34908
- */
34909
- modelMatrix: Matrix4;
34910
- /**
34911
- * A uniform scale applied to this model before the {@link Model#modelMatrix}.
34912
- Values greater than <code>1.0</code> increase the size of the model; values
34913
- less than <code>1.0</code> decrease.
34914
- */
34915
- scale: number;
34916
- /**
34917
- * The approximate minimum pixel size of the model regardless of zoom.
34918
- This can be used to ensure that a model is visible even when the viewer
34919
- zooms out. When <code>0.0</code>, no minimum size is enforced.
34920
- */
34921
- minimumPixelSize: number;
34922
- /**
34923
- * The maximum scale size for a model. This can be used to give
34924
- an upper limit to the {@link Model#minimumPixelSize}, ensuring that the model
34925
- is never an unreasonable scale.
34926
- */
34927
- maximumScale: number;
34928
- /**
34929
- * User-defined object returned when the model is picked.
34930
- */
34931
- id: any;
34932
- /**
34933
- * Returns the height reference of the model
34934
- */
34935
- heightReference: HeightReference;
34936
- /**
34937
- * The currently playing glTF animations.
34938
- */
34939
- activeAnimations: ModelAnimationCollection;
34940
- /**
34941
- * Determines if the model's animations should hold a pose over frames where no keyframes are specified.
34942
- */
34943
- clampAnimations: boolean;
34944
- /**
34945
- * Determines whether the model casts or receives shadows from light sources.
34946
- */
34947
- shadows: ShadowMode;
34948
- /**
34949
- * A color that blends with the model's rendered color.
34950
- */
34951
- color: Color;
34952
- /**
34953
- * Defines how the color blends with the model.
34954
- */
34955
- colorBlendMode: ColorBlendMode;
34956
- /**
34957
- * Value used to determine the color strength when the <code>colorBlendMode</code> is <code>MIX</code>.
34958
- A value of 0.0 results in the model's rendered color while a value of 1.0 results in a solid color, with
34959
- any value in-between resulting in a mix of the two.
34960
- */
34961
- colorBlendAmount: number;
34962
- /**
34963
- * Whether to cull back-facing geometry. When true, back face culling is
34964
- determined by the material's doubleSided property; when false, back face
34965
- culling is disabled. Back faces are not culled if {@link Model#color} is
34966
- translucent or {@link Model#silhouetteSize} is greater than 0.0.
34967
- */
34968
- backFaceCulling: boolean;
34969
- /**
34970
- * Whether to display the outline for models using the
34971
- {@link https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/CESIUM_primitive_outline|CESIUM_primitive_outline} extension.
34972
- When true, outlines are displayed. When false, outlines are not displayed.
34973
- */
34974
- readonly showOutline: boolean;
34975
- /**
34976
- * The {@link SplitDirection} to apply to this model.
34977
- */
34978
- splitDirection: SplitDirection;
34979
- /**
34980
- * This property is for debugging only; it is not for production use nor is it optimized.
34981
- <p>
34982
- Draws the bounding sphere for each draw command in the model. A glTF primitive corresponds
34983
- to one draw command. A glTF mesh has an array of primitives, often of length one.
34984
- </p>
34985
- */
34986
- debugShowBoundingVolume: boolean;
34987
- /**
34988
- * This property is for debugging only; it is not for production use nor is it optimized.
34989
- <p>
34990
- Draws the model in wireframe.
34991
- </p>
34992
- */
34993
- debugWireframe: boolean;
34994
- /**
34995
- * The object for the glTF JSON, including properties with default values omitted
34996
- from the JSON provided to this model.
34997
- */
34998
- readonly gltf: any;
34999
- /**
35000
- * The base path that paths in the glTF JSON are relative to. The base
35001
- path is the same path as the path containing the .gltf file
35002
- minus the .gltf file, when binary, image, and shader files are
35003
- in the same directory as the .gltf. When this is <code>''</code>,
35004
- the app's base path is used.
35005
- */
35006
- readonly basePath: string;
35007
- /**
35008
- * The model's bounding sphere in its local coordinate system. This does not take into
35009
- account glTF animations and skins nor does it take into account {@link Model#minimumPixelSize}.
35010
- * @example
35011
- * // Center in WGS84 coordinates
35012
- const center = Cesium.Matrix4.multiplyByPoint(model.modelMatrix, model.boundingSphere.center, new Cesium.Cartesian3());
35013
- */
35014
- readonly boundingSphere: BoundingSphere;
35015
- /**
35016
- * When <code>true</code>, this model is ready to render, i.e., the external binary, image,
35017
- and shader files were downloaded and the WebGL resources were created. This is set to
35018
- <code>true</code> right before {@link Model#readyPromise} is resolved.
35019
- */
35020
- readonly ready: boolean;
35021
- /**
35022
- * Gets the promise that will be resolved when this model is ready to render, i.e., when the external binary, image,
35023
- and shader files were downloaded and the WebGL resources were created.
35024
- <p>
35025
- This promise is resolved at the end of the frame before the first frame the model is rendered in.
35026
- </p>
35027
- * @example
35028
- * // Play all animations at half-speed when the model is ready to render
35029
- Promise.resolve(model.readyPromise).then(function(model) {
35030
- model.activeAnimations.addAll({
35031
- multiplier : 0.5
35032
- });
35033
- }).catch(function(error){
35034
- window.alert(error);
35035
- });
35036
- */
35037
- readonly readyPromise: Promise<Model>;
35038
- /**
35039
- * Determines if model WebGL resource creation will be spread out over several frames or
35040
- block until completion once all glTF files are loaded.
35041
- */
35042
- readonly asynchronous: boolean;
35043
- /**
35044
- * When <code>true</code>, each glTF mesh and primitive is pickable with {@link Scene#pick}. When <code>false</code>, GPU memory is saved.
35045
- */
35046
- readonly allowPicking: boolean;
35047
- /**
35048
- * Determine if textures may continue to stream in after the model is loaded.
35049
- */
35050
- readonly incrementallyLoadTextures: boolean;
35051
- /**
35052
- * Return the number of pending texture loads.
35053
- */
35054
- readonly pendingTextureLoads: number;
35055
- /**
35056
- * Gets or sets the condition specifying at what distance from the camera that this model will be displayed.
35057
- */
35058
- distanceDisplayCondition: DistanceDisplayCondition;
35059
- /**
35060
- * The {@link ClippingPlaneCollection} used to selectively disable rendering the model.
35061
- */
35062
- clippingPlanes: ClippingPlaneCollection;
35063
- /**
35064
- * The light color when shading the model. When <code>undefined</code> the scene's light color is used instead.
35065
- <p>
35066
- For example, disabling additional light sources by setting
35067
- <code>model.imageBasedLighting.imageBasedLightingFactor = new Cesium.Cartesian2(0.0, 0.0)</code>
35068
- will make the model much darker. Here, increasing the intensity of the light source will make the model brighter.
35069
- </p>
35070
- */
35071
- lightColor: Cartesian3;
35072
- /**
35073
- * The properties for managing image-based lighting on this model.
35074
- */
35075
- imageBasedLighting: ImageBasedLighting;
35076
- /**
35077
- * Gets the credit that will be displayed for the model
35078
- */
35079
- credit: Credit;
35080
- /**
35081
- * Gets or sets whether the credits of the model will be displayed on the screen
35082
- */
35083
- showCreditsOnScreen: boolean;
35084
- /**
35085
- * Determines if silhouettes are supported.
35086
- * @param scene - The scene.
35087
- * @returns <code>true</code> if silhouettes are supported; otherwise, returns <code>false</code>
35088
- */
35089
- static silhouetteSupported(scene: Scene): boolean;
35090
- /**
35091
- * <p>
35092
- Creates a model from a glTF asset. When the model is ready to render, i.e., when the external binary, image,
35093
- and shader files are downloaded and the WebGL resources are created, the {@link Model#readyPromise} is resolved.
35094
- </p>
35095
- <p>
35096
- The model can be a traditional glTF asset with a .gltf extension or a Binary glTF using the .glb extension.
35097
- </p>
35098
- <p>
35099
- Cesium supports glTF assets with the following extensions:
35100
- <ul>
35101
- <li>
35102
- {@link https://github.com/KhronosGroup/glTF/blob/master/extensions/1.0/Khronos/KHR_binary_glTF/README.md|KHR_binary_glTF (glTF 1.0)}
35103
- </li><li>
35104
- {@link https://github.com/KhronosGroup/glTF/blob/master/extensions/1.0/Khronos/KHR_materials_common/README.md|KHR_materials_common (glTF 1.0)}
35105
- </li><li>
35106
- {@link https://github.com/KhronosGroup/glTF/blob/master/extensions/1.0/Vendor/WEB3D_quantized_attributes/README.md|WEB3D_quantized_attributes (glTF 1.0)}
35107
- </li><li>
35108
- {@link https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/AGI_articulations/README.md|AGI_articulations}
35109
- </li><li>
35110
- {@link https://github.com/KhronosGroup/glTF/pull/1302|KHR_blend (draft)}
35111
- </li><li>
35112
- {@link https://github.com/KhronosGroup/glTF/blob/master/extensions/2.0/Khronos/KHR_draco_mesh_compression/README.md|KHR_draco_mesh_compression}
35113
- </li><li>
35114
- {@link https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_pbrSpecularGlossiness/README.md|KHR_materials_pbrSpecularGlossiness}
35115
- </li><li>
35116
- {@link https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_unlit/README.md|KHR_materials_unlit}
35117
- </li><li>
35118
- {@link https://github.com/KhronosGroup/glTF/blob/master/extensions/2.0/Khronos/KHR_techniques_webgl/README.md|KHR_techniques_webgl}
35119
- </li><li>
35120
- {@link https://github.com/KhronosGroup/glTF/blob/master/extensions/2.0/Khronos/KHR_texture_transform/README.md|KHR_texture_transform}
35121
- </li><li>
35122
- {@link https://github.com/KhronosGroup/glTF/blob/master/extensions/2.0/Khronos/KHR_texture_basisu/README.md|KHR_texture_basisu}
35123
- </li>
35124
- </ul>
35125
- </p>
35126
- <p>
35127
- For high-precision rendering, Cesium supports the {@link https://github.com/KhronosGroup/glTF/blob/master/extensions/1.0/Vendor/CESIUM_RTC/README.md|CESIUM_RTC} extension, which introduces the
35128
- CESIUM_RTC_MODELVIEW parameter semantic that says the node is in WGS84 coordinates translated
35129
- relative to a local origin.
35130
- </p>
35131
- * @example
35132
- * // Example 1. Create a model from a glTF asset
35133
- const model = scene.primitives.add(Cesium.Model.fromGltf({
35134
- url : './duck/duck.gltf'
35135
- }));
35136
- * @example
35137
- * // Example 2. Create model and provide all properties and events
35138
- const origin = Cesium.Cartesian3.fromDegrees(-95.0, 40.0, 200000.0);
35139
- const modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(origin);
35140
-
35141
- const model = scene.primitives.add(Cesium.Model.fromGltf({
35142
- url : './duck/duck.gltf',
35143
- show : true, // default
35144
- modelMatrix : modelMatrix,
35145
- scale : 2.0, // double size
35146
- minimumPixelSize : 128, // never smaller than 128 pixels
35147
- maximumScale: 20000, // never larger than 20000 * model size (overrides minimumPixelSize)
35148
- allowPicking : false, // not pickable
35149
- debugShowBoundingVolume : false, // default
35150
- debugWireframe : false
35151
- }));
35152
-
35153
- model.readyPromise.then(function(model) {
35154
- // Play all animations when the model is ready to render
35155
- model.activeAnimations.addAll();
35156
- });
35157
- * @param options - Object with the following properties:
35158
- * @param options.url - The url to the .gltf file.
35159
- * @param [options.basePath] - The base path that paths in the glTF JSON are relative to.
35160
- * @param [options.show = true] - Determines if the model primitive will be shown.
35161
- * @param [options.modelMatrix = Matrix4.IDENTITY] - The 4x4 transformation matrix that transforms the model from model to world coordinates.
35162
- * @param [options.scale = 1.0] - A uniform scale applied to this model.
35163
- * @param [options.minimumPixelSize = 0.0] - The approximate minimum pixel size of the model regardless of zoom.
35164
- * @param [options.maximumScale] - The maximum scale for the model.
35165
- * @param [options.id] - A user-defined object to return when the model is picked with {@link Scene#pick}.
35166
- * @param [options.allowPicking = true] - When <code>true</code>, each glTF mesh and primitive is pickable with {@link Scene#pick}.
35167
- * @param [options.incrementallyLoadTextures = true] - Determine if textures may continue to stream in after the model is loaded.
35168
- * @param [options.asynchronous = true] - Determines if model WebGL resource creation will be spread out over several frames or block until completion once all glTF files are loaded.
35169
- * @param [options.clampAnimations = true] - Determines if the model's animations should hold a pose over frames where no keyframes are specified.
35170
- * @param [options.shadows = ShadowMode.ENABLED] - Determines whether the model casts or receives shadows from light sources.
35171
- * @param [options.debugShowBoundingVolume = false] - For debugging only. Draws the bounding sphere for each draw command in the model.
35172
- * @param [options.debugWireframe = false] - For debugging only. Draws the model in wireframe.
35173
- * @param [options.heightReference = HeightReference.NONE] - Determines how the model is drawn relative to terrain.
35174
- * @param [options.scene] - Must be passed in for models that use the height reference property.
35175
- * @param [options.distanceDisplayCondition] - The condition specifying at what distance from the camera that this model will be displayed.
35176
- * @param [options.color = Color.WHITE] - A color that blends with the model's rendered color.
35177
- * @param [options.colorBlendMode = ColorBlendMode.HIGHLIGHT] - Defines how the color blends with the model.
35178
- * @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.
35179
- * @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.
35180
- * @param [options.silhouetteSize = 0.0] - The size of the silhouette in pixels.
35181
- * @param [options.clippingPlanes] - The {@link ClippingPlaneCollection} used to selectively disable rendering the model.
35182
- * @param [options.dequantizeInShader = true] - Determines if a {@link https://github.com/google/draco|Draco} encoded model is dequantized on the GPU. This decreases total memory usage for encoded models. Deprecated in CesiumJS 1.94, will be removed in CesiumJS 1.96.
35183
- * @param [options.lightColor] - The light color when shading the model. When <code>undefined</code> the scene's light color is used instead.
35184
- * @param [options.imageBasedLighting] - The properties for managing image-based lighting for this tileset.
35185
- * @param [options.credit] - A credit for the model, which is displayed on the canvas.
35186
- * @param [options.showCreditsOnScreen = false] - Whether to display the credits of this model on screen.
35187
- * @param [options.backFaceCulling = true] - Whether to cull back-facing geometry. When true, back face culling is determined by the material's doubleSided property; when false, back face culling is disabled. Back faces are not culled if {@link Model#color} is translucent or {@link Model#silhouetteSize} is greater than 0.0.
35188
- * @param [options.showOutline = true] - Whether to display the outline for models using the {@link https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/CESIUM_primitive_outline|CESIUM_primitive_outline} extension. When true, outlines are displayed. When false, outlines are not displayed.
35189
- * @returns The newly created model.
35190
- */
35191
- static fromGltf(options: {
35192
- url: Resource | string;
35193
- basePath?: Resource | string;
35194
- show?: boolean;
35195
- modelMatrix?: Matrix4;
35196
- scale?: number;
35197
- minimumPixelSize?: number;
35198
- maximumScale?: number;
35199
- id?: any;
35200
- allowPicking?: boolean;
35201
- incrementallyLoadTextures?: boolean;
35202
- asynchronous?: boolean;
35203
- clampAnimations?: boolean;
35204
- shadows?: ShadowMode;
35205
- debugShowBoundingVolume?: boolean;
35206
- debugWireframe?: boolean;
35207
- heightReference?: HeightReference;
35208
- scene?: Scene;
35209
- distanceDisplayCondition?: DistanceDisplayCondition;
35210
- color?: Color;
35211
- colorBlendMode?: ColorBlendMode;
35212
- colorBlendAmount?: number;
35213
- silhouetteColor?: Color;
35214
- silhouetteSize?: number;
35215
- clippingPlanes?: ClippingPlaneCollection;
35216
- dequantizeInShader?: boolean;
35217
- lightColor?: Cartesian3;
35218
- imageBasedLighting?: ImageBasedLighting;
35219
- credit?: Credit | string;
35220
- showCreditsOnScreen?: boolean;
35221
- backFaceCulling?: boolean;
35222
- showOutline?: boolean;
35223
- }): Model;
35224
- /**
35225
- * Returns the glTF node with the given <code>name</code> property. This is used to
35226
- modify a node's transform for animation outside of glTF animations.
35227
- * @example
35228
- * // Apply non-uniform scale to node LOD3sp
35229
- const node = model.getNode('LOD3sp');
35230
- node.matrix = Cesium.Matrix4.fromScale(new Cesium.Cartesian3(5.0, 1.0, 1.0), node.matrix);
35231
- * @param name - The glTF name of the node.
35232
- * @returns The node or <code>undefined</code> if no node with <code>name</code> exists.
35233
- */
35234
- getNode(name: string): ModelNode;
35235
- /**
35236
- * Returns the glTF mesh with the given <code>name</code> property.
35237
- * @param name - The glTF name of the mesh.
35238
- * @returns The mesh or <code>undefined</code> if no mesh with <code>name</code> exists.
35239
- */
35240
- getMesh(name: string): ModelMesh;
35241
- /**
35242
- * Returns the glTF material with the given <code>name</code> property.
35243
- * @param name - The glTF name of the material.
35244
- * @returns The material or <code>undefined</code> if no material with <code>name</code> exists.
35245
- */
35246
- getMaterial(name: string): ModelMaterial;
35247
- /**
35248
- * Sets the current value of an articulation stage. After setting one or multiple stage values, call
35249
- Model.applyArticulations() to cause the node matrices to be recalculated.
35250
- * @param articulationStageKey - The name of the articulation, a space, and the name of the stage.
35251
- * @param value - The numeric value of this stage of the articulation.
35252
- */
35253
- setArticulationStage(articulationStageKey: string, value: number): void;
35254
- /**
35255
- * Applies any modified articulation stages to the matrix of each node that participates
35256
- in any articulation. Note that this will overwrite any nodeTransformations on participating nodes.
35257
- */
35258
- applyArticulations(): void;
35259
- /**
35260
- * Called when {@link Viewer} or {@link CesiumWidget} render the scene to
35261
- get the draw commands needed to render this primitive.
35262
- <p>
35263
- Do not call this function directly. This is documented just to
35264
- list the exceptions that may be propagated when the scene is rendered:
35265
- </p>
35266
- */
35267
- update(): void;
35268
- /**
35269
- * Returns true if this object was destroyed; otherwise, false.
35270
- <br /><br />
35271
- If this object was destroyed, it should not be used; calling any function other than
35272
- <code>isDestroyed</code> will result in a {@link DeveloperError} exception.
35273
- * @returns <code>true</code> if this object was destroyed; otherwise, <code>false</code>.
35274
- */
35275
- isDestroyed(): boolean;
35276
- /**
35277
- * Destroys the WebGL resources held by this object. Destroying an object allows for deterministic
35278
- release of WebGL resources, instead of relying on the garbage collector to destroy this object.
35279
- <br /><br />
35280
- Once an object is destroyed, it should not be used; calling any function other than
35281
- <code>isDestroyed</code> will result in a {@link DeveloperError} exception. Therefore,
35282
- assign the return value (<code>undefined</code>) to the object as done in the example.
35283
- * @example
35284
- * model = model && model.destroy();
35285
- */
35286
- destroy(): void;
35287
- }
35288
-
35289
- /**
35290
- * An active glTF animation. A glTF asset can contain animations. An active animation
35291
- is an animation that is currently playing or scheduled to be played because it was
35292
- added to a model's {@link ModelAnimationCollection}. An active animation is an
35293
- instance of an animation; for example, there can be multiple active animations
35294
- for the same glTF animation, each with a different start time.
35295
- <p>
35296
- Create this by calling {@link ModelAnimationCollection#add}.
35297
- </p>
35298
- */
35299
- export class ModelAnimation {
35300
- constructor();
35301
- /**
35302
- * When <code>true</code>, the animation is removed after it stops playing.
35303
- This is slightly more efficient that not removing it, but if, for example,
35304
- time is reversed, the animation is not played again.
35305
- */
35306
- removeOnStop: boolean;
35307
- /**
35308
- * The event fired when this animation is started. This can be used, for
35309
- example, to play a sound or start a particle system, when the animation starts.
35310
- <p>
35311
- This event is fired at the end of the frame after the scene is rendered.
35312
- </p>
35313
- * @example
35314
- * animation.start.addEventListener(function(model, animation) {
35315
- console.log(`Animation started: ${animation.name}`);
35316
- });
35317
- */
35318
- start: Event;
35319
- /**
35320
- * The event fired when on each frame when this animation is updated. The
35321
- current time of the animation, relative to the glTF animation time span, is
35322
- passed to the event, which allows, for example, starting new animations at a
35323
- specific time relative to a playing animation.
35324
- <p>
35325
- This event is fired at the end of the frame after the scene is rendered.
35326
- </p>
35327
- * @example
35328
- * animation.update.addEventListener(function(model, animation, time) {
35329
- console.log(`Animation updated: ${animation.name}. glTF animation time: ${time}`);
35330
- });
35331
- */
35332
- update: Event;
35333
- /**
35334
- * The event fired when this animation is stopped. This can be used, for
35335
- example, to play a sound or start a particle system, when the animation stops.
35336
- <p>
35337
- This event is fired at the end of the frame after the scene is rendered.
35338
- </p>
35339
- * @example
35340
- * animation.stop.addEventListener(function(model, animation) {
35341
- console.log(`Animation stopped: ${animation.name}`);
35342
- });
35343
- */
35344
- stop: Event;
35345
- /**
35346
- * The glTF animation name that identifies this animation.
35347
- */
35348
- readonly name: string;
35349
- /**
35350
- * The scene time to start playing this animation. When this is <code>undefined</code>,
35351
- the animation starts at the next frame.
35352
- */
35353
- readonly startTime: JulianDate;
35354
- /**
35355
- * The delay, in seconds, from {@link ModelAnimation#startTime} to start playing.
35356
- */
35357
- readonly delay: number;
35358
- /**
35359
- * The scene time to stop playing this animation. When this is <code>undefined</code>,
35360
- the animation is played for its full duration and perhaps repeated depending on
35361
- {@link ModelAnimation#loop}.
35362
- */
35363
- readonly stopTime: JulianDate;
35364
- /**
35365
- * Values greater than <code>1.0</code> increase the speed that the animation is played relative
35366
- to the scene clock speed; values less than <code>1.0</code> decrease the speed. A value of
35367
- <code>1.0</code> plays the animation at the speed in the glTF animation mapped to the scene
35368
- clock speed. For example, if the scene is played at 2x real-time, a two-second glTF animation
35369
- will play in one second even if <code>multiplier</code> is <code>1.0</code>.
35370
- */
35371
- readonly multiplier: number;
35372
- /**
35373
- * When <code>true</code>, the animation is played in reverse.
35374
- */
35375
- readonly reverse: boolean;
35376
- /**
35377
- * Determines if and how the animation is looped.
35378
- */
35379
- readonly loop: ModelAnimationLoop;
35380
- /**
35381
- * If this is defined, it will be used to compute the local animation time
35382
- instead of the scene's time.
35383
- */
35384
- animationTime: ModelAnimation.AnimationTimeCallback;
35385
- }
35386
-
35387
- export namespace ModelAnimation {
35388
- /**
35389
- * A function used to compute the local animation time for a ModelAnimation.
35390
- * @example
35391
- * // Use real time for model animation (assuming animateWhilePaused was set to true)
35392
- function animationTime(duration) {
35393
- return Date.now() / 1000 / duration;
35394
- }
35395
- * @example
35396
- * // Offset the phase of the animation, so it starts halfway through its cycle.
35397
- function animationTime(duration, seconds) {
35398
- return seconds / duration + 0.5;
35399
- }
35400
- * @param duration - The animation's original duration in seconds.
35401
- * @param seconds - The seconds since the animation started, in scene time.
35402
- */
35403
- type AnimationTimeCallback = (duration: number, seconds: number) => number;
35404
- }
35405
-
35406
- /**
35407
- * A collection of active model animations. Access this using {@link Model#activeAnimations}.
35408
- */
35409
- export class ModelAnimationCollection {
35410
- constructor();
35411
- /**
35412
- * The event fired when an animation is added to the collection. This can be used, for
35413
- example, to keep a UI in sync.
35414
- * @example
35415
- * model.activeAnimations.animationAdded.addEventListener(function(model, animation) {
35416
- console.log(`Animation added: ${animation.name}`);
35417
- });
35418
- */
35419
- animationAdded: Event;
35420
- /**
35421
- * The event fired when an animation is removed from the collection. This can be used, for
35422
- example, to keep a UI in sync.
35423
- * @example
35424
- * model.activeAnimations.animationRemoved.addEventListener(function(model, animation) {
35425
- console.log(`Animation removed: ${animation.name}`);
35426
- });
35427
- */
35428
- animationRemoved: Event;
35429
- /**
35430
- * When true, the animation will play even when the scene time is paused. However,
35431
- whether animation takes place will depend on the animationTime functions assigned
35432
- to the model's animations. By default, this is based on scene time, so models using
35433
- the default will not animate regardless of this setting.
35434
- */
35435
- animateWhilePaused: boolean;
35436
- /**
35437
- * The number of animations in the collection.
35438
- */
35439
- readonly length: number;
35440
- /**
35441
- * Creates and adds an animation with the specified initial properties to the collection.
35442
- <p>
35443
- This raises the {@link ModelAnimationCollection#animationAdded} event so, for example, a UI can stay in sync.
35444
- </p>
35445
- * @example
35446
- * // Example 1. Add an animation by name
35447
- model.activeAnimations.add({
35448
- name : 'animation name'
35449
- });
35450
-
35451
- // Example 2. Add an animation by index
35452
- model.activeAnimations.add({
35453
- index : 0
35454
- });
35455
- * @example
35456
- * // Example 3. Add an animation and provide all properties and events
35457
- const startTime = Cesium.JulianDate.now();
35458
-
35459
- const animation = model.activeAnimations.add({
35460
- name : 'another animation name',
35461
- startTime : startTime,
35462
- delay : 0.0, // Play at startTime (default)
35463
- stopTime : Cesium.JulianDate.addSeconds(startTime, 4.0, new Cesium.JulianDate()),
35464
- removeOnStop : false, // Do not remove when animation stops (default)
35465
- multiplier : 2.0, // Play at double speed
35466
- reverse : true, // Play in reverse
35467
- loop : Cesium.ModelAnimationLoop.REPEAT // Loop the animation
35468
- });
35469
-
35470
- animation.start.addEventListener(function(model, animation) {
35471
- console.log(`Animation started: ${animation.name}`);
35472
- });
35473
- animation.update.addEventListener(function(model, animation, time) {
35474
- console.log(`Animation updated: ${animation.name}. glTF animation time: ${time}`);
35475
- });
35476
- animation.stop.addEventListener(function(model, animation) {
35477
- console.log(`Animation stopped: ${animation.name}`);
35478
- });
35479
- * @param options - Object with the following properties:
35480
- * @param [options.name] - The glTF animation name that identifies the animation. Must be defined if <code>options.index</code> is <code>undefined</code>.
35481
- * @param [options.index] - The glTF animation index that identifies the animation. Must be defined if <code>options.name</code> is <code>undefined</code>.
35482
- * @param [options.startTime] - The scene time to start playing the animation. When this is <code>undefined</code>, the animation starts at the next frame.
35483
- * @param [options.delay = 0.0] - The delay, in seconds, from <code>startTime</code> to start playing.
35484
- * @param [options.stopTime] - The scene time to stop playing the animation. When this is <code>undefined</code>, the animation is played for its full duration.
35485
- * @param [options.removeOnStop = false] - When <code>true</code>, the animation is removed after it stops playing.
35486
- * @param [options.multiplier = 1.0] - Values greater than <code>1.0</code> increase the speed that the animation is played relative to the scene clock speed; values less than <code>1.0</code> decrease the speed.
35487
- * @param [options.reverse = false] - When <code>true</code>, the animation is played in reverse.
35488
- * @param [options.loop = ModelAnimationLoop.NONE] - Determines if and how the animation is looped.
35489
- * @param [options.animationTime] - If defined, computes the local animation time for this animation.
35490
- * @returns The animation that was added to the collection.
35491
- */
35492
- add(options: {
35493
- name?: string;
35494
- index?: number;
35495
- startTime?: JulianDate;
35496
- delay?: number;
35497
- stopTime?: JulianDate;
35498
- removeOnStop?: boolean;
35499
- multiplier?: number;
35500
- reverse?: boolean;
35501
- loop?: ModelAnimationLoop;
35502
- animationTime?: ModelAnimation.AnimationTimeCallback;
35503
- }): ModelAnimation;
35504
- /**
35505
- * Creates and adds an animation with the specified initial properties to the collection
35506
- for each animation in the model.
35507
- <p>
35508
- This raises the {@link ModelAnimationCollection#animationAdded} event for each model so, for example, a UI can stay in sync.
35509
- </p>
35510
- * @example
35511
- * model.activeAnimations.addAll({
35512
- multiplier : 0.5, // Play at half-speed
35513
- loop : Cesium.ModelAnimationLoop.REPEAT // Loop the animations
35514
- });
35515
- * @param [options] - Object with the following properties:
35516
- * @param [options.startTime] - The scene time to start playing the animations. When this is <code>undefined</code>, the animations starts at the next frame.
35517
- * @param [options.delay = 0.0] - The delay, in seconds, from <code>startTime</code> to start playing.
35518
- * @param [options.stopTime] - The scene time to stop playing the animations. When this is <code>undefined</code>, the animations are played for its full duration.
35519
- * @param [options.removeOnStop = false] - When <code>true</code>, the animations are removed after they stop playing.
35520
- * @param [options.multiplier = 1.0] - Values greater than <code>1.0</code> increase the speed that the animations play relative to the scene clock speed; values less than <code>1.0</code> decrease the speed.
35521
- * @param [options.reverse = false] - When <code>true</code>, the animations are played in reverse.
35522
- * @param [options.loop = ModelAnimationLoop.NONE] - Determines if and how the animations are looped.
35523
- * @param [options.animationTime] - If defined, computes the local animation time for all of the animations.
35524
- * @returns An array of {@link ModelAnimation} objects, one for each animation added to the collection. If there are no glTF animations, the array is empty.
35525
- */
35526
- addAll(options?: {
35527
- startTime?: JulianDate;
35528
- delay?: number;
35529
- stopTime?: JulianDate;
35530
- removeOnStop?: boolean;
35531
- multiplier?: number;
35532
- reverse?: boolean;
35533
- loop?: ModelAnimationLoop;
35534
- animationTime?: ModelAnimation.AnimationTimeCallback;
35535
- }): ModelAnimation[];
35536
- /**
35537
- * Removes an animation from the collection.
35538
- <p>
35539
- This raises the {@link ModelAnimationCollection#animationRemoved} event so, for example, a UI can stay in sync.
35540
- </p>
35541
- <p>
35542
- An animation can also be implicitly removed from the collection by setting {@link ModelAnimation#removeOnStop} to
35543
- <code>true</code>. The {@link ModelAnimationCollection#animationRemoved} event is still fired when the animation is removed.
35544
- </p>
35545
- * @example
35546
- * const a = model.activeAnimations.add({
35547
- name : 'animation name'
35548
- });
35549
- model.activeAnimations.remove(a); // Returns true
35550
- * @param animation - The animation to remove.
35551
- * @returns <code>true</code> if the animation was removed; <code>false</code> if the animation was not found in the collection.
35552
- */
35553
- remove(animation: ModelAnimation): boolean;
35554
- /**
35555
- * Removes all animations from the collection.
35556
- <p>
35557
- This raises the {@link ModelAnimationCollection#animationRemoved} event for each
35558
- animation so, for example, a UI can stay in sync.
35559
- </p>
35560
- */
35561
- removeAll(): void;
35562
- /**
35563
- * Determines whether this collection contains a given animation.
35564
- * @param animation - The animation to check for.
35565
- * @returns <code>true</code> if this collection contains the animation, <code>false</code> otherwise.
35566
- */
35567
- contains(animation: ModelAnimation): boolean;
35568
- /**
35569
- * Returns the animation in the collection at the specified index. Indices are zero-based
35570
- and increase as animations are added. Removing an animation shifts all animations after
35571
- it to the left, changing their indices. This function is commonly used to iterate over
35572
- all the animations in the collection.
35573
- * @example
35574
- * // Output the names of all the animations in the collection.
35575
- const animations = model.activeAnimations;
35576
- const length = animations.length;
35577
- for (let i = 0; i < length; ++i) {
35578
- console.log(animations.get(i).name);
35579
- }
35580
- * @param index - The zero-based index of the animation.
35581
- * @returns The animation at the specified index.
35582
- */
35583
- get(index: number): ModelAnimation;
35584
- }
35585
-
35586
- /**
35587
- * Determines if and how a glTF animation is looped.
35588
- */
35589
- export enum ModelAnimationLoop {
35590
- /**
35591
- * Play the animation once; do not loop it.
35592
- */
35593
- NONE = 0,
35594
- /**
35595
- * Loop the animation playing it from the start immediately after it stops.
35596
- */
35597
- REPEAT = 1,
35598
- /**
35599
- * Loop the animation. First, playing it forward, then in reverse, then forward, and so on.
35600
- */
35601
- MIRRORED_REPEAT = 2
35602
- }
35603
-
35604
35013
  /**
35605
35014
  * An object describing a uniform, its type, and an initial value
35606
35015
  * @property type - The Glsl type of the uniform.
@@ -35612,7 +35021,7 @@ export type UniformSpecifier = {
35612
35021
  };
35613
35022
 
35614
35023
  /**
35615
- * A user defined GLSL shader used with {@link ModelExperimental} as well
35024
+ * A user defined GLSL shader used with {@link Model} as well
35616
35025
  as {@link Cesium3DTileset}.
35617
35026
  <p>
35618
35027
  If texture uniforms are used, additional resource management must be done:
@@ -35620,7 +35029,7 @@ If texture uniforms are used, additional resource management must be done:
35620
35029
  <ul>
35621
35030
  <li>
35622
35031
  The <code>update</code> function must be called each frame. When a
35623
- custom shader is passed to a {@link ModelExperimental} or a
35032
+ custom shader is passed to a {@link Model} or a
35624
35033
  {@link Cesium3DTileset}, this step is handled automaticaly
35625
35034
  </li>
35626
35035
  <li>
@@ -35630,9 +35039,6 @@ If texture uniforms are used, additional resource management must be done:
35630
35039
  </li>
35631
35040
  </ul>
35632
35041
  <p>
35633
- To enable the use of {@link ModelExperimental} in {@link Cesium3DTileset}, set {@link ExperimentalFeatures.enableModelExperimental} to <code>true</code> or tileset.enableModelExperimental to <code>true</code>.
35634
- </p>
35635
- <p>
35636
35042
  See the {@link https://github.com/CesiumGS/cesium/tree/main/Documentation/CustomShaderGuide|Custom Shader Guide} for more detailed documentation.
35637
35043
  </p>
35638
35044
  * @example
@@ -35668,7 +35074,7 @@ See the {@link https://github.com/CesiumGS/cesium/tree/main/Documentation/Custom
35668
35074
  * @param options - An object with the following options
35669
35075
  * @param [options.mode = CustomShaderMode.MODIFY_MATERIAL] - The custom shader mode, which determines how the custom shader code is inserted into the fragment shader.
35670
35076
  * @param [options.lightingModel] - The lighting model (e.g. PBR or unlit). If present, this overrides the default lighting for the model.
35671
- * @param [options.isTranslucent = false] - If set, the model will be rendered as translucent. This overrides the default settings for the model.
35077
+ * @param [options.translucencyMode = CustomShaderTranslucencyMode.INHERIT] - The translucency mode, which determines how the custom shader will be applied. If the value is CustomShaderTransulcencyMode.OPAQUE or CustomShaderTransulcencyMode.TRANSLUCENT, the custom shader will override settings from the model's material. If the value is CustomShaderTransulcencyMode.INHERIT, the custom shader will render as either opaque or translucent depending on the primitive's material settings.
35672
35078
  * @param [options.uniforms] - A dictionary for user-defined uniforms. The key is the uniform name that will appear in the GLSL code. The value is an object that describes the uniform type and initial value
35673
35079
  * @param [options.varyings] - A dictionary for declaring additional GLSL varyings used in the shader. The key is the varying name that will appear in the GLSL code. The value is the data type of the varying. For each varying, the declaration will be added to the top of the shader automatically. The caller is responsible for assigning a value in the vertex shader and using the value in the fragment shader.
35674
35080
  * @param [options.vertexShaderText] - The custom vertex shader as a string of GLSL code. It must include a GLSL function called vertexMain. See the example for the expected signature. If not specified, the custom vertex shader step will be skipped in the computed vertex shader.
@@ -35678,7 +35084,7 @@ export class CustomShader {
35678
35084
  constructor(options: {
35679
35085
  mode?: CustomShaderMode;
35680
35086
  lightingModel?: LightingModel;
35681
- isTranslucent?: boolean;
35087
+ translucencyMode?: CustomShaderTranslucencyMode;
35682
35088
  uniforms?: {
35683
35089
  [key: string]: UniformSpecifier;
35684
35090
  };
@@ -35688,6 +35094,44 @@ export class CustomShader {
35688
35094
  vertexShaderText?: string;
35689
35095
  fragmentShaderText?: string;
35690
35096
  });
35097
+ /**
35098
+ * A value determining how the custom shader interacts with the overall
35099
+ fragment shader. This is used by {@link CustomShaderPipelineStage}
35100
+ */
35101
+ readonly mode: CustomShaderMode;
35102
+ /**
35103
+ * The lighting model to use when using the custom shader.
35104
+ This is used by {@link CustomShaderPipelineStage}
35105
+ */
35106
+ readonly lightingModel: LightingModel;
35107
+ /**
35108
+ * Additional uniforms as declared by the user.
35109
+ */
35110
+ readonly uniforms: {
35111
+ [key: string]: UniformSpecifier;
35112
+ };
35113
+ /**
35114
+ * Additional varyings as declared by the user.
35115
+ This is used by {@link CustomShaderPipelineStage}
35116
+ */
35117
+ readonly varyings: {
35118
+ [key: string]: VaryingType;
35119
+ };
35120
+ /**
35121
+ * The user-defined GLSL code for the vertex shader
35122
+ */
35123
+ readonly vertexShaderText: string;
35124
+ /**
35125
+ * The user-defined GLSL code for the fragment shader
35126
+ */
35127
+ readonly fragmentShaderText: string;
35128
+ /**
35129
+ * The translucency mode, which determines how the custom shader will be applied. If the value is
35130
+ CustomShaderTransulcencyMode.OPAQUE or CustomShaderTransulcencyMode.TRANSLUCENT, the custom shader
35131
+ will override settings from the model's material. If the value isCustomShaderTransulcencyMode.INHERIT,
35132
+ the custom shader will render as either opaque or translucent depending on the primitive's material settings.
35133
+ */
35134
+ readonly translucencyMode: CustomShaderTranslucencyMode;
35691
35135
  /**
35692
35136
  * Update the value of a uniform declared in the shader
35693
35137
  * @param uniformName - The GLSL name of the uniform. This must match one of the uniforms declared in the constructor
@@ -35696,48 +35140,6 @@ export class CustomShader {
35696
35140
  setUniform(uniformName: string, value: boolean | number | Cartesian2 | Cartesian3 | Cartesian4 | Matrix2 | Matrix3 | Matrix4 | string | Resource): void;
35697
35141
  }
35698
35142
 
35699
- /**
35700
- * A value determining how the custom shader interacts with the overall
35701
- fragment shader. This is used by {@link CustomShaderPipelineStage}
35702
- */
35703
- export const mode: CustomShaderMode;
35704
-
35705
- /**
35706
- * The lighting model to use when using the custom shader.
35707
- This is used by {@link CustomShaderPipelineStage}
35708
- */
35709
- export const lightingModel: LightingModel;
35710
-
35711
- /**
35712
- * Additional uniforms as declared by the user.
35713
- */
35714
- export const uniforms: {
35715
- [key: string]: UniformSpecifier;
35716
- };
35717
-
35718
- /**
35719
- * Additional varyings as declared by the user.
35720
- This is used by {@link CustomShaderPipelineStage}
35721
- */
35722
- export const varyings: {
35723
- [key: string]: VaryingType;
35724
- };
35725
-
35726
- /**
35727
- * The user-defined GLSL code for the vertex shader
35728
- */
35729
- export const vertexShaderText: string;
35730
-
35731
- /**
35732
- * The user-defined GLSL code for the fragment shader
35733
- */
35734
- export const fragmentShaderText: string;
35735
-
35736
- /**
35737
- * Whether the shader should be rendered as translucent
35738
- */
35739
- export const isTranslucent: boolean;
35740
-
35741
35143
  /**
35742
35144
  * An enum describing how the {@link CustomShader} will be added to the
35743
35145
  fragment shader. This determines how the shader interacts with the material.
@@ -35756,7 +35158,28 @@ export enum CustomShaderMode {
35756
35158
  }
35757
35159
 
35758
35160
  /**
35759
- * The lighting model to use for lighting a {@link ModelExperimental}.
35161
+ * An enum for controling how {@link CustomShader} handles translucency compared with the original
35162
+ primitive.
35163
+ */
35164
+ export enum CustomShaderTranslucencyMode {
35165
+ /**
35166
+ * Inherit translucency settings from the primitive's material. If the primitive used a
35167
+ translucent material, the custom shader will also be considered translucent. If the primitive
35168
+ used an opaque material, the custom shader will be considered opaque.
35169
+ */
35170
+ INHERIT = 0,
35171
+ /**
35172
+ * Force the primitive to render the primitive as opaque, ignoring any material settings.
35173
+ */
35174
+ OPAQUE = 1,
35175
+ /**
35176
+ * Force the primitive to render the primitive as translucent, ignoring any material settings.
35177
+ */
35178
+ TRANSLUCENT = 2
35179
+ }
35180
+
35181
+ /**
35182
+ * The lighting model to use for lighting a {@link Model}.
35760
35183
  */
35761
35184
  export enum LightingModel {
35762
35185
  /**
@@ -35775,92 +35198,68 @@ export enum LightingModel {
35775
35198
  }
35776
35199
 
35777
35200
  /**
35778
- * A 3D model. This is a new architecture that is more decoupled than the older {@link Model}. This class is still experimental.
35201
+ * <div class="notice">
35202
+ To construct a Model, call {@link Model.fromGltf}. Do not call the constructor directly.
35203
+ </div>
35204
+ A 3D model based on glTF, the runtime asset format for WebGL, OpenGL ES, and OpenGL.
35779
35205
  <p>
35780
- Do not call this function directly, instead use the `from` functions to create
35781
- the Model from your source data type.
35206
+ Cesium supports glTF assets with the following extensions:
35207
+ <ul>
35208
+ <li>
35209
+ {@link https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/AGI_articulations/README.md|AGI_articulations}
35210
+ </li>
35211
+ <li>
35212
+ {@link https://github.com/KhronosGroup/glTF/blob/master/extensions/2.0/Khronos/KHR_draco_mesh_compression/README.md|KHR_draco_mesh_compression}
35213
+ </li>
35214
+ <li>
35215
+ {@link https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_pbrSpecularGlossiness/README.md|KHR_materials_pbrSpecularGlossiness}
35216
+ </li>
35217
+ <li>
35218
+ {@link https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_unlit/README.md|KHR_materials_unlit}
35219
+ </li>
35220
+ <li>
35221
+ {@link https://github.com/KhronosGroup/glTF/blob/master/extensions/2.0/Khronos/KHR_texture_transform/README.md|KHR_texture_transform}
35222
+ </li>
35223
+ <li>
35224
+ {@link https://github.com/KhronosGroup/glTF/blob/master/extensions/2.0/Khronos/KHR_texture_basisu|KHR_texture_basisu}
35225
+ </li>
35226
+ <li>
35227
+ {@link https://github.com/KhronosGroup/glTF/blob/master/extensions/1.0/Vendor/CESIUM_RTC/README.md|CESIUM_RTC}
35228
+ </li>
35229
+ </ul>
35230
+ </p>
35231
+ <p>
35232
+ Note: for models with compressed textures using the KHR_texture_basisu extension, we recommend power of 2 textures in both dimensions
35233
+ for maximum compatibility. This is because some samplers require power of 2 textures ({@link https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/Tutorial/Using_textures_in_WebGL|Using textures in WebGL})
35234
+ and KHR_texture_basisu requires multiple of 4 dimensions ({@link https://github.com/KhronosGroup/glTF/blob/master/extensions/2.0/Khronos/KHR_texture_basisu/README.md#additional-requirements|KHR_texture_basisu additional requirements}).
35782
35235
  </p>
35783
- * @param options - Object with the following properties:
35784
- * @param options.resource - The Resource to the 3D model.
35785
- * @param [options.show = true] - Whether or not to render the model.
35786
- * @param [options.modelMatrix = Matrix4.IDENTITY] - The 4x4 transformation matrix that transforms the model from model to world coordinates.
35787
- * @param [options.scale = 1.0] - A uniform scale applied to this model.
35788
- * @param [options.minimumPixelSize = 0.0] - The approximate minimum pixel size of the model regardless of zoom.
35789
- * @param [options.maximumScale] - The maximum scale size of a model. An upper limit for minimumPixelSize.
35790
- * @param [options.id] - A user-defined object to return when the model is picked with {@link Scene#pick}.
35791
- * @param [options.allowPicking = true] - When <code>true</code>, each primitive is pickable with {@link Scene#pick}.
35792
- * @param [options.clampAnimations = true] - Determines if the model's animations should hold a pose over frames where no keyframes are specified.
35793
- * @param [options.shadows = ShadowMode.ENABLED] - Determines whether the model casts or receives shadows from light sources.
35794
- * @param [options.debugShowBoundingVolume = false] - For debugging only. Draws the bounding sphere for each draw command in the model.
35795
- * @param [options.enableDebugWireframe = false] - For debugging only. This must be set to true for debugWireframe to work in WebGL1. This cannot be set after the model has loaded.
35796
- * @param [options.debugWireframe = false] - For debugging only. Draws the model in wireframe. Will only work for WebGL1 if enableDebugWireframe is set to true.
35797
- * @param [options.cull = true] - Whether or not to cull the model using frustum/horizon culling. If the model is part of a 3D Tiles tileset, this property will always be false, since the 3D Tiles culling system is used.
35798
- * @param [options.opaquePass = Pass.OPAQUE] - The pass to use in the {@link DrawCommand} for the opaque portions of the model.
35799
- * @param [options.customShader] - A custom shader. This will add user-defined GLSL code to the vertex and fragment shaders. Using custom shaders with a {@link Cesium3DTileStyle} may lead to undefined behavior.
35800
- * @param [options.content] - The tile content this model belongs to. This property will be undefined if model is not loaded as part of a tileset.
35801
- * @param [options.heightReference = HeightReference.NONE] - Determines how the model is drawn relative to terrain.
35802
- * @param [options.scene] - Must be passed in for models that use the height reference property.
35803
- * @param [options.distanceDisplayCondition] - The condition specifying at what distance from the camera that this model will be displayed.
35804
- * @param [options.color] - A color that blends with the model's rendered color.
35805
- * @param [options.colorBlendMode = ColorBlendMode.HIGHLIGHT] - Defines how the color blends with the model.
35806
- * @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.
35807
- * @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.
35808
- * @param [options.silhouetteSize = 0.0] - The size of the silhouette in pixels.
35809
- * @param [options.clippingPlanes] - The {@link ClippingPlaneCollection} used to selectively disable rendering the model.
35810
- * @param [options.lightColor] - The light color when shading the model. When <code>undefined</code> the scene's light color is used instead.
35811
- * @param [options.imageBasedLighting] - The properties for managing image-based lighting on this model.
35812
- * @param [options.backFaceCulling = true] - Whether to cull back-facing geometry. When true, back face culling is determined by the material's doubleSided property; when false, back face culling is disabled. Back faces are not culled if the model's color is translucent.
35813
- * @param [options.credit] - A credit for the data source, which is displayed on the canvas.
35814
- * @param [options.showCreditsOnScreen = false] - Whether to display the credits of this model on screen.
35815
- * @param [options.splitDirection = SplitDirection.NONE] - The {@link SplitDirection} split to apply to this model.
35816
- * @param [options.projectTo2D = false] - Whether to accurately project the model's positions in 2D. If this is true, the model will be projected accurately to 2D, but it will use more memory to do so. If this is false, the model will use less memory and will still render in 2D / CV mode, but its positions may be inaccurate. This disables minimumPixelSize and prevents future modification to the model matrix. This also cannot be set after the model has loaded.
35817
- * @param [options.featureIdLabel = "featureId_0"] - Label of the feature ID set to use for picking and styling. For EXT_mesh_features, this is the feature ID's label property, or "featureId_N" (where N is the index in the featureIds array) when not specified. EXT_feature_metadata did not have a label field, so such feature ID sets are always labeled "featureId_N" where N is the index in the list of all feature Ids, where feature ID attributes are listed before feature ID textures. If featureIdLabel is an integer N, it is converted to the string "featureId_N" automatically. If both per-primitive and per-instance feature IDs are present, the instance feature IDs take priority.
35818
- * @param [options.instanceFeatureIdLabel = "instanceFeatureId_0"] - Label of the instance feature ID set used for picking and styling. If instanceFeatureIdLabel is set to an integer N, it is converted to the string "instanceFeatureId_N" automatically. If both per-primitive and per-instance feature IDs are present, the instance feature IDs take priority.
35819
- * @param [options.pointCloudShading] - Options for constructing a {@link PointCloudShading} object to control point attenuation based on geometric error and lighting.
35820
35236
  */
35821
- export class ModelExperimental {
35822
- constructor(options: {
35823
- resource: Resource;
35824
- show?: boolean;
35825
- modelMatrix?: Matrix4;
35826
- scale?: number;
35827
- minimumPixelSize?: number;
35828
- maximumScale?: number;
35829
- id?: any;
35830
- allowPicking?: boolean;
35831
- clampAnimations?: boolean;
35832
- shadows?: ShadowMode;
35833
- debugShowBoundingVolume?: boolean;
35834
- enableDebugWireframe?: boolean;
35835
- debugWireframe?: boolean;
35836
- cull?: boolean;
35837
- opaquePass?: boolean;
35838
- customShader?: CustomShader;
35839
- content?: Cesium3DTileContent;
35840
- heightReference?: HeightReference;
35841
- scene?: Scene;
35842
- distanceDisplayCondition?: DistanceDisplayCondition;
35843
- color?: Color;
35844
- colorBlendMode?: ColorBlendMode;
35845
- colorBlendAmount?: number;
35846
- silhouetteColor?: Color;
35847
- silhouetteSize?: number;
35848
- clippingPlanes?: ClippingPlaneCollection;
35849
- lightColor?: Cartesian3;
35850
- imageBasedLighting?: ImageBasedLighting;
35851
- backFaceCulling?: boolean;
35852
- credit?: Credit | string;
35853
- showCreditsOnScreen?: boolean;
35854
- splitDirection?: SplitDirection;
35855
- projectTo2D?: boolean;
35856
- featureIdLabel?: string | number;
35857
- instanceFeatureIdLabel?: string | number;
35858
- pointCloudShading?: any;
35859
- });
35237
+ export class Model {
35238
+ constructor();
35239
+ /**
35240
+ * The 4x4 transformation matrix that transforms the model from model to world coordinates.
35241
+ When this is the identity matrix, the model is drawn in world coordinates, i.e., Earth's Cartesian WGS84 coordinates.
35242
+ Local reference frames can be used by providing a different transformation matrix, like that returned
35243
+ by {@link Transforms.eastNorthUpToFixedFrame}.
35244
+ * @example
35245
+ * const origin = Cesium.Cartesian3.fromDegrees(-95.0, 40.0, 200000.0);
35246
+ m.modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(origin);
35247
+ */
35248
+ modelMatrix: Matrix4;
35249
+ /**
35250
+ * Whether to display the outline for models using the
35251
+ {@link https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/CESIUM_primitive_outline|CESIUM_primitive_outline} extension.
35252
+ When true, outlines are displayed. When false, outlines are not displayed.
35253
+ */
35254
+ showOutline: boolean;
35255
+ /**
35256
+ * The color to use when rendering outlines.
35257
+ */
35258
+ outlineColor: Color;
35860
35259
  /**
35861
35260
  * When <code>true</code>, this model is ready to render, i.e., the external binary, image,
35862
35261
  and shader files were downloaded and the WebGL resources were created. This is set to
35863
- <code>true</code> right before {@link ModelExperimental#readyPromise} is resolved.
35262
+ <code>true</code> right before {@link Model#readyPromise} is resolved.
35864
35263
  */
35865
35264
  readonly ready: boolean;
35866
35265
  /**
@@ -35870,11 +35269,11 @@ export class ModelExperimental {
35870
35269
  This promise is resolved at the end of the frame before the first frame the model is rendered in.
35871
35270
  </p>
35872
35271
  */
35873
- readonly readyPromise: Promise<ModelExperimental>;
35272
+ readonly readyPromise: Promise<Model>;
35874
35273
  /**
35875
35274
  * The currently playing glTF animations.
35876
35275
  */
35877
- readonly activeAnimations: ModelExperimentalAnimationCollection;
35276
+ readonly activeAnimations: ModelAnimationCollection;
35878
35277
  /**
35879
35278
  * Determines if the model's animations should hold a pose over frames where no keyframes are specified.
35880
35279
  */
@@ -35905,7 +35304,7 @@ export class ModelExperimental {
35905
35304
  */
35906
35305
  id: any;
35907
35306
  /**
35908
- * The style to apply the to the features in the model. Cannot be applied if a {@link CustomShader} is also applied.
35307
+ * The style to apply to the features in the model. Cannot be applied if a {@link CustomShader} is also applied.
35909
35308
  */
35910
35309
  style: Cesium3DTileStyle;
35911
35310
  /**
@@ -35931,7 +35330,7 @@ export class ModelExperimental {
35931
35330
  /**
35932
35331
  * Gets the model's bounding sphere in world space. This does not take into account
35933
35332
  glTF animations, skins, or morph targets. It also does not account for
35934
- {@link ModelExperimental#minimumPixelSize}.
35333
+ {@link Model#minimumPixelSize}.
35935
35334
  */
35936
35335
  readonly boundingSphere: BoundingSphere;
35937
35336
  /**
@@ -36000,8 +35399,8 @@ export class ModelExperimental {
36000
35399
  /**
36001
35400
  * Whether to cull back-facing geometry. When true, back face culling is
36002
35401
  determined by the material's doubleSided property; when false, back face
36003
- culling is disabled. Back faces are not culled if {@link ModelExperimental#color}
36004
- is translucent or {@link ModelExperimental#silhouetteSize} is greater than 0.0.
35402
+ culling is disabled. Back faces are not culled if {@link Model#color}
35403
+ is translucent or {@link Model#silhouetteSize} is greater than 0.0.
36005
35404
  */
36006
35405
  backFaceCulling: boolean;
36007
35406
  /**
@@ -36027,20 +35426,48 @@ export class ModelExperimental {
36027
35426
  */
36028
35427
  shadows: ShadowMode;
36029
35428
  /**
36030
- * Gets the credit that will be displayed for the model
35429
+ * Gets the credit that will be displayed for the model.
36031
35430
  */
36032
35431
  readonly credit: Credit;
36033
35432
  /**
36034
- * Gets or sets whether the credits of the model will be displayed on the screen
35433
+ * Gets or sets whether the credits of the model will be displayed
35434
+ on the screen.
36035
35435
  */
36036
35436
  showCreditsOnScreen: boolean;
36037
35437
  /**
36038
35438
  * The {@link SplitDirection} to apply to this model.
36039
35439
  */
36040
35440
  splitDirection: SplitDirection;
35441
+ /**
35442
+ * Gets the model's classification type. This determines whether terrain,
35443
+ 3D Tiles, or both will be classified by this model.
35444
+ <p>
35445
+ Additionally, there are a few requirements/limitations:
35446
+ <ul>
35447
+ <li>The glTF cannot contain morph targets, skins, or animations.</li>
35448
+ <li>The glTF cannot contain the <code>EXT_mesh_gpu_instancing</code> extension.</li>
35449
+ <li>Only meshes with TRIANGLES can be used to classify other assets.</li>
35450
+ <li>The position attribute is required.</li>
35451
+ <li>If feature IDs and an index buffer are both present, all indices with the same feature id must occupy contiguous sections of the index buffer.</li>
35452
+ <li>If feature IDs are present without an index buffer, all positions with the same feature id must occupy contiguous sections of the position buffer.</li>
35453
+ </ul>
35454
+ </p>
35455
+ */
35456
+ readonly classificationType: ClassificationType;
35457
+ /**
35458
+ * Returns the node with the given <code>name</code> in the glTF. This is used to
35459
+ modify a node's transform for user-defined animation.
35460
+ * @example
35461
+ * // Apply non-uniform scale to node "Hand"
35462
+ const node = model.getNode("Hand");
35463
+ node.matrix = Cesium.Matrix4.fromScale(new Cesium.Cartesian3(5.0, 1.0, 1.0), node.matrix);
35464
+ * @param name - The name of the node in the glTF.
35465
+ * @returns The node, or <code>undefined</code> if no node with the <code>name</code> exists.
35466
+ */
35467
+ getNode(name: string): ModelNode;
36041
35468
  /**
36042
35469
  * Sets the current value of an articulation stage. After setting one or
36043
- multiple stage values, call ModelExperimental.applyArticulations() to
35470
+ multiple stage values, call Model.applyArticulations() to
36044
35471
  cause the node matrices to be recalculated.
36045
35472
  * @example
36046
35473
  * // Sets the value of the stage named "MoveX" belonging to the articulation named "SampleArticulation"
@@ -36055,6 +35482,11 @@ export class ModelExperimental {
36055
35482
  transformations on participating nodes.
36056
35483
  */
36057
35484
  applyArticulations(): void;
35485
+ /**
35486
+ * Marks the model's {@link Model#style} as dirty, which forces all features
35487
+ to re-evaluate the style in the next frame the model is visible.
35488
+ */
35489
+ makeStyleDirty(): void;
36058
35490
  /**
36059
35491
  * Called when {@link Viewer} or {@link CesiumWidget} render the scene to
36060
35492
  get the draw commands needed to render this primitive.
@@ -36122,6 +35554,9 @@ export class ModelExperimental {
36122
35554
  * @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.
36123
35555
  * @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.
36124
35556
  * @param [options.silhouetteSize = 0.0] - The size of the silhouette in pixels.
35557
+ * @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.
35558
+ * @param [options.showOutline = true] - Whether to display the outline for models using the {@link https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/CESIUM_primitive_outline|CESIUM_primitive_outline} extension. When true, outlines are displayed. When false, outlines are not displayed.
35559
+ * @param [options.outlineColor = Color.BLACK] - The color to use when rendering outlines.
36125
35560
  * @param [options.clippingPlanes] - The {@link ClippingPlaneCollection} used to selectively disable rendering the model.
36126
35561
  * @param [options.lightColor] - The light color when shading the model. When <code>undefined</code> the scene's light color is used instead.
36127
35562
  * @param [options.imageBasedLighting] - The properties for managing image-based lighting on this model.
@@ -36133,6 +35568,7 @@ export class ModelExperimental {
36133
35568
  * @param [options.featureIdLabel = "featureId_0"] - Label of the feature ID set to use for picking and styling. For EXT_mesh_features, this is the feature ID's label property, or "featureId_N" (where N is the index in the featureIds array) when not specified. EXT_feature_metadata did not have a label field, so such feature ID sets are always labeled "featureId_N" where N is the index in the list of all feature Ids, where feature ID attributes are listed before feature ID textures. If featureIdLabel is an integer N, it is converted to the string "featureId_N" automatically. If both per-primitive and per-instance feature IDs are present, the instance feature IDs take priority.
36134
35569
  * @param [options.instanceFeatureIdLabel = "instanceFeatureId_0"] - Label of the instance feature ID set used for picking and styling. If instanceFeatureIdLabel is set to an integer N, it is converted to the string "instanceFeatureId_N" automatically. If both per-primitive and per-instance feature IDs are present, the instance feature IDs take priority.
36135
35570
  * @param [options.pointCloudShading] - Options for constructing a {@link PointCloudShading} object to control point attenuation and lighting.
35571
+ * @param [options.classificationType] - Determines whether terrain, 3D Tiles or both will be classified by this model. This cannot be set after the model has loaded.
36136
35572
  * @returns The newly created model.
36137
35573
  */
36138
35574
  static fromGltf(options: {
@@ -36167,6 +35603,9 @@ export class ModelExperimental {
36167
35603
  colorBlendAmount?: number;
36168
35604
  silhouetteColor?: Color;
36169
35605
  silhouetteSize?: number;
35606
+ enableShowOutline?: boolean;
35607
+ showOutline?: boolean;
35608
+ outlineColor?: Color;
36170
35609
  clippingPlanes?: ClippingPlaneCollection;
36171
35610
  lightColor?: Cartesian3;
36172
35611
  imageBasedLighting?: ImageBasedLighting;
@@ -36178,31 +35617,22 @@ export class ModelExperimental {
36178
35617
  featureIdLabel?: string | number;
36179
35618
  instanceFeatureIdLabel?: string | number;
36180
35619
  pointCloudShading?: any;
36181
- }): ModelExperimental;
35620
+ classificationType?: ClassificationType;
35621
+ }): Model;
36182
35622
  }
36183
35623
 
36184
35624
  /**
36185
- * The 4x4 transformation matrix that transforms the model from model to world coordinates.
36186
- When this is the identity matrix, the model is drawn in world coordinates, i.e., Earth's Cartesian WGS84 coordinates.
36187
- Local reference frames can be used by providing a different transformation matrix, like that returned
36188
- by {@link Transforms.eastNorthUpToFixedFrame}.
36189
- * @example
36190
- * const origin = Cesium.Cartesian3.fromDegrees(-95.0, 40.0, 200000.0);
36191
- m.modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(origin);
36192
- */
36193
- export var modelMatrix: Matrix4;
35625
+ * <div class="notice">
35626
+ Create animations by calling {@link ModelAnimationCollection#add}. Do not call the constructor directly.
35627
+ </div>
36194
35628
 
36195
- /**
36196
- * An active animation derived from a glTF asset. An active animation is an
35629
+ An active animation derived from a glTF asset. An active animation is an
36197
35630
  animation that is either currently playing or scheduled to be played due to
36198
- being added to a model's {@link ModelExperimentalAnimationCollection}. An active animation
35631
+ being added to a model's {@link ModelAnimationCollection}. An active animation
36199
35632
  is an instance of an animation; for example, there can be multiple active
36200
35633
  animations for the same glTF animation, each with a different start time.
36201
- <p>
36202
- Create this by calling {@link ModelExperimentalAnimationCollection#add}.
36203
- </p>
36204
35634
  */
36205
- export class ModelExperimentalAnimation {
35635
+ export class ModelAnimation {
36206
35636
  constructor();
36207
35637
  /**
36208
35638
  * When <code>true</code>, the animation is removed after it stops playing.
@@ -36258,13 +35688,13 @@ export class ModelExperimentalAnimation {
36258
35688
  */
36259
35689
  readonly startTime: JulianDate;
36260
35690
  /**
36261
- * The delay, in seconds, from {@link ModelExperimentalAnimation#startTime} to start playing.
35691
+ * The delay, in seconds, from {@link ModelAnimation#startTime} to start playing.
36262
35692
  */
36263
35693
  readonly delay: number;
36264
35694
  /**
36265
35695
  * The scene time to stop playing this animation. When this is <code>undefined</code>,
36266
35696
  the animation is played for its full duration and perhaps repeated depending on
36267
- {@link ModelExperimentalAnimation#loop}.
35697
+ {@link ModelAnimation#loop}.
36268
35698
  */
36269
35699
  readonly stopTime: JulianDate;
36270
35700
  /**
@@ -36287,12 +35717,12 @@ export class ModelExperimentalAnimation {
36287
35717
  * If this is defined, it will be used to compute the local animation time
36288
35718
  instead of the scene's time.
36289
35719
  */
36290
- animationTime: ModelExperimentalAnimation.AnimationTimeCallback;
35720
+ animationTime: ModelAnimation.AnimationTimeCallback;
36291
35721
  }
36292
35722
 
36293
- export namespace ModelExperimentalAnimation {
35723
+ export namespace ModelAnimation {
36294
35724
  /**
36295
- * A function used to compute the local animation time for a ModelExperimentalAnimation.
35725
+ * A function used to compute the local animation time for a ModelAnimation.
36296
35726
  * @example
36297
35727
  * // Use real time for model animation (assuming animateWhilePaused was set to true)
36298
35728
  function animationTime(duration) {
@@ -36310,9 +35740,13 @@ export namespace ModelExperimentalAnimation {
36310
35740
  }
36311
35741
 
36312
35742
  /**
36313
- * A collection of active model animations. Access this using {@link ModelExperimental#activeAnimations}.
35743
+ * <div class="notice">
35744
+ Access a model's animations {@link Model#activeAnimations}. Do not call the constructor directly
35745
+ </div>
35746
+
35747
+ A collection of active model animations.
36314
35748
  */
36315
- export class ModelExperimentalAnimationCollection {
35749
+ export class ModelAnimationCollection {
36316
35750
  constructor();
36317
35751
  /**
36318
35752
  * The event fired when an animation is added to the collection. This can be used, for
@@ -36346,11 +35780,11 @@ export class ModelExperimentalAnimationCollection {
36346
35780
  /**
36347
35781
  * The model that owns this animation collection.
36348
35782
  */
36349
- readonly model: ModelExperimental;
35783
+ readonly model: Model;
36350
35784
  /**
36351
35785
  * Creates and adds an animation with the specified initial properties to the collection.
36352
35786
  <p>
36353
- This raises the {@link ModelExperimentalAnimationCollection#animationAdded} event so, for example, a UI can stay in sync.
35787
+ This raises the {@link ModelAnimationCollection#animationAdded} event so, for example, a UI can stay in sync.
36354
35788
  </p>
36355
35789
  * @example
36356
35790
  * // Example 1. Add an animation by name
@@ -36409,13 +35843,13 @@ export class ModelExperimentalAnimationCollection {
36409
35843
  multiplier?: number;
36410
35844
  reverse?: boolean;
36411
35845
  loop?: ModelAnimationLoop;
36412
- animationTime?: ModelExperimentalAnimation.AnimationTimeCallback;
36413
- }): ModelExperimentalAnimation;
35846
+ animationTime?: ModelAnimation.AnimationTimeCallback;
35847
+ }): ModelAnimation;
36414
35848
  /**
36415
35849
  * Creates and adds animations with the specified initial properties to the collection
36416
35850
  for all animations in the model.
36417
35851
  <p>
36418
- This raises the {@link ModelExperimentalAnimationCollection#animationAdded} event for each model so, for example, a UI can stay in sync.
35852
+ This raises the {@link ModelAnimationCollection#animationAdded} event for each model so, for example, a UI can stay in sync.
36419
35853
  </p>
36420
35854
  * @example
36421
35855
  * model.activeAnimations.addAll({
@@ -36431,7 +35865,7 @@ export class ModelExperimentalAnimationCollection {
36431
35865
  * @param [options.reverse = false] - When <code>true</code>, the animations are played in reverse.
36432
35866
  * @param [options.loop = ModelAnimationLoop.NONE] - Determines if and how the animations are looped.
36433
35867
  * @param [options.animationTime] - If defined, computes the local animation time for all of the animations.
36434
- * @returns An array of {@link ModelExperimentalAnimation} objects, one for each animation added to the collection. If there are no glTF animations, the array is empty.
35868
+ * @returns An array of {@link ModelAnimation} objects, one for each animation added to the collection. If there are no glTF animations, the array is empty.
36435
35869
  */
36436
35870
  addAll(options?: {
36437
35871
  startTime?: JulianDate;
@@ -36441,16 +35875,16 @@ export class ModelExperimentalAnimationCollection {
36441
35875
  multiplier?: number;
36442
35876
  reverse?: boolean;
36443
35877
  loop?: ModelAnimationLoop;
36444
- animationTime?: ModelExperimentalAnimation.AnimationTimeCallback;
36445
- }): ModelExperimentalAnimation[];
35878
+ animationTime?: ModelAnimation.AnimationTimeCallback;
35879
+ }): ModelAnimation[];
36446
35880
  /**
36447
35881
  * Removes an animation from the collection.
36448
35882
  <p>
36449
- This raises the {@link ModelExperimentalAnimationCollection#animationRemoved} event so, for example, a UI can stay in sync.
35883
+ This raises the {@link ModelAnimationCollection#animationRemoved} event so, for example, a UI can stay in sync.
36450
35884
  </p>
36451
35885
  <p>
36452
- An animation can also be implicitly removed from the collection by setting {@link ModelExperimentalAnimationCollection#removeOnStop} to
36453
- <code>true</code>. The {@link ModelExperimentalAnimationCollection#animationRemoved} event is still fired when the animation is removed.
35886
+ An animation can also be implicitly removed from the collection by setting {@link ModelAnimationCollection#removeOnStop} to
35887
+ <code>true</code>. The {@link ModelAnimationCollection#animationRemoved} event is still fired when the animation is removed.
36454
35888
  </p>
36455
35889
  * @example
36456
35890
  * const a = model.activeAnimations.add({
@@ -36460,11 +35894,11 @@ export class ModelExperimentalAnimationCollection {
36460
35894
  * @param runtimeAnimation - The runtime animation to remove.
36461
35895
  * @returns <code>true</code> if the animation was removed; <code>false</code> if the animation was not found in the collection.
36462
35896
  */
36463
- remove(runtimeAnimation: ModelExperimentalAnimation): boolean;
35897
+ remove(runtimeAnimation: ModelAnimation): boolean;
36464
35898
  /**
36465
35899
  * Removes all animations from the collection.
36466
35900
  <p>
36467
- This raises the {@link ModelExperimentalAnimationCollection#animationRemoved} event for each
35901
+ This raises the {@link ModelAnimationCollection#animationRemoved} event for each
36468
35902
  animation so, for example, a UI can stay in sync.
36469
35903
  </p>
36470
35904
  */
@@ -36474,7 +35908,7 @@ export class ModelExperimentalAnimationCollection {
36474
35908
  * @param runtimeAnimation - The runtime animation to check for.
36475
35909
  * @returns <code>true</code> if this collection contains the animation, <code>false</code> otherwise.
36476
35910
  */
36477
- contains(runtimeAnimation: ModelExperimentalAnimation): boolean;
35911
+ contains(runtimeAnimation: ModelAnimation): boolean;
36478
35912
  /**
36479
35913
  * Returns the animation in the collection at the specified index. Indices are zero-based
36480
35914
  and increase as animations are added. Removing an animation shifts all animations after
@@ -36490,16 +35924,11 @@ export class ModelExperimentalAnimationCollection {
36490
35924
  * @param index - The zero-based index of the animation.
36491
35925
  * @returns The runtime animation at the specified index.
36492
35926
  */
36493
- get(index: number): ModelExperimentalAnimation;
35927
+ get(index: number): ModelAnimation;
36494
35928
  }
36495
35929
 
36496
35930
  /**
36497
- * The indices of the children of this node in the scene graph.
36498
- */
36499
- export const children: number[];
36500
-
36501
- /**
36502
- * A feature of a {@link ModelExperimental}.
35931
+ * A feature of a {@link Model}.
36503
35932
  <p>
36504
35933
  Provides access to a feature's properties stored in the model's feature table.
36505
35934
  </p>
@@ -36523,7 +35952,7 @@ handler.setInputAction(function(movement) {
36523
35952
  */
36524
35953
  export class ModelFeature {
36525
35954
  constructor(options: {
36526
- model: ModelExperimental;
35955
+ model: Model;
36527
35956
  featureId: number;
36528
35957
  });
36529
35958
  /**
@@ -36580,12 +36009,6 @@ export class ModelFeature {
36580
36009
  * @returns The value of the property or <code>undefined</code> if the feature does not have this property.
36581
36010
  */
36582
36011
  getPropertyInherited(name: string): any;
36583
- /**
36584
- * Returns an array of property names for the feature.
36585
- * @param [results] - An array into which to store the results.
36586
- * @returns The names of the feature's properties.
36587
- */
36588
- getPropertyNames(results?: string[]): string[];
36589
36012
  /**
36590
36013
  * Returns an array of property IDs for the feature.
36591
36014
  * @param [results] - An array into which to store the results.
@@ -36611,6 +36034,53 @@ export class ModelFeature {
36611
36034
  setProperty(name: string, value: any): boolean;
36612
36035
  }
36613
36036
 
36037
+ /**
36038
+ * <div class="notice">
36039
+ Use {@link Model#getNode} to get a node from a loaded model. Do not call the constructor directly.
36040
+ </div>
36041
+
36042
+ A model node with a modifiable transform to allow users to define their
36043
+ own animations. While a model's asset can contain animations that target
36044
+ a node's transform, this class allows users to change a node's transform
36045
+ externally. In this way, animation can be driven by another source, not
36046
+ just by the model's asset.
36047
+ * @example
36048
+ * const node = model.getNode("Hand");
36049
+ node.matrix = Cesium.Matrix4.fromScale(new Cesium.Cartesian3(5.0, 1.0, 1.0), node.matrix);
36050
+ */
36051
+ export class ModelNode {
36052
+ constructor();
36053
+ /**
36054
+ * The value of the <code>name</code> property of this node.
36055
+ */
36056
+ readonly name: string;
36057
+ /**
36058
+ * The index of the node in the glTF.
36059
+ */
36060
+ readonly id: number;
36061
+ /**
36062
+ * Determines if this node and its children will be shown.
36063
+ */
36064
+ show: boolean;
36065
+ /**
36066
+ * The node's 4x4 matrix transform from its local coordinates to
36067
+ its parent's. Setting the matrix to undefined will restore the
36068
+ node's original transform, and allow the node to be animated by
36069
+ any animations in the model again.
36070
+ <p>
36071
+ For changes to take effect, this property must be assigned to;
36072
+ setting individual elements of the matrix will not work.
36073
+ </p>
36074
+ */
36075
+ matrix: Matrix4;
36076
+ /**
36077
+ * Gets the node's original 4x4 matrix transform from its local
36078
+ coordinates to its parent's, without any node transformations
36079
+ or articulations applied.
36080
+ */
36081
+ originalMatrix: Matrix4;
36082
+ }
36083
+
36614
36084
  /**
36615
36085
  * A simple struct that serves as a value of a <code>sampler2D</code>-valued
36616
36086
  uniform. This is used with {@link CustomShader} and {@link TextureManager}
@@ -36749,108 +36219,21 @@ export enum VaryingType {
36749
36219
  }
36750
36220
 
36751
36221
  /**
36752
- * A model's material with modifiable parameters. A glTF material
36753
- contains parameters defined by the material's technique with values
36754
- defined by the technique and potentially overridden by the material.
36755
- This class allows changing these values at runtime.
36756
- <p>
36757
- Use {@link Model#getMaterial} to create an instance.
36758
- </p>
36759
- */
36760
- export class ModelMaterial {
36761
- constructor();
36762
- /**
36763
- * The value of the <code>name</code> property of this material.
36764
- */
36765
- readonly name: string;
36766
- /**
36767
- * The index of the material.
36768
- */
36769
- readonly id: string;
36770
- /**
36771
- * Assigns a value to a material parameter. The type for <code>value</code>
36772
- depends on the glTF type of the parameter. It will be a floating-point
36773
- number, Cartesian, or matrix.
36774
- * @example
36775
- * material.setValue('diffuse', new Cesium.Cartesian4(1.0, 0.0, 0.0, 1.0)); // vec4
36776
- material.setValue('shininess', 256.0); // scalar
36777
- * @param name - The name of the parameter.
36778
- * @param [value] - The value to assign to the parameter.
36779
- */
36780
- setValue(name: string, value?: any): void;
36781
- /**
36782
- * Returns the value of the parameter with the given <code>name</code>. The type of the
36783
- returned object depends on the glTF type of the parameter. It will be a floating-point
36784
- number, Cartesian, or matrix.
36785
- * @param name - The name of the parameter.
36786
- * @returns The value of the parameter or <code>undefined</code> if the parameter does not exist.
36787
- */
36788
- getValue(name: string): any;
36789
- }
36790
-
36791
- /**
36792
- * A model's mesh and its materials.
36793
- <p>
36794
- Use {@link Model#getMesh} to create an instance.
36795
- </p>
36796
- */
36797
- export class ModelMesh {
36798
- constructor();
36799
- /**
36800
- * The value of the <code>name</code> property of this mesh.
36801
- */
36802
- readonly name: string;
36803
- /**
36804
- * The index of the mesh.
36805
- */
36806
- readonly id: string;
36807
- /**
36808
- * An array of {@link ModelMaterial} instances indexed by the mesh's
36809
- primitive indices.
36810
- */
36811
- readonly materials: ModelMaterial[];
36812
- }
36813
-
36814
- /**
36815
- * A model node with a transform for user-defined animations. A glTF asset can
36816
- contain animations that target a node's transform. This class allows
36817
- changing a node's transform externally so animation can be driven by another
36818
- source, not just an animation in the glTF asset.
36819
- <p>
36820
- Use {@link Model#getNode} to create an instance.
36821
- </p>
36822
- * @example
36823
- * const node = model.getNode('LOD3sp');
36824
- node.matrix = Cesium.Matrix4.fromScale(new Cesium.Cartesian3(5.0, 1.0, 1.0), node.matrix);
36222
+ * Determines if and how a glTF animation is looped.
36825
36223
  */
36826
- export class ModelNode {
36827
- constructor();
36828
- /**
36829
- * The value of the <code>name</code> property of this node.
36830
- */
36831
- readonly name: string;
36832
- /**
36833
- * The index of the node.
36834
- */
36835
- readonly id: string;
36224
+ export enum ModelAnimationLoop {
36836
36225
  /**
36837
- * Determines if this node and its children will be shown.
36226
+ * Play the animation once; do not loop it.
36838
36227
  */
36839
- show: boolean;
36228
+ NONE = 0,
36840
36229
  /**
36841
- * The node's 4x4 matrix transform from its local coordinates to
36842
- its parent's.
36843
- <p>
36844
- For changes to take effect, this property must be assigned to;
36845
- setting individual elements of the matrix will not work.
36846
- </p>
36230
+ * Loop the animation playing it from the start immediately after it stops.
36847
36231
  */
36848
- matrix: Matrix4;
36232
+ REPEAT = 1,
36849
36233
  /**
36850
- * Gets the node's original 4x4 matrix transform from its local coordinates to
36851
- its parent's, without any node transformations or articulations applied.
36234
+ * Loop the animation. First, playing it forward, then in reverse, then forward, and so on.
36852
36235
  */
36853
- originalMatrix: Matrix4;
36236
+ MIRRORED_REPEAT = 2
36854
36237
  }
36855
36238
 
36856
36239
  /**
@@ -37509,9 +36892,11 @@ export class PointCloudShading {
37509
36892
  }
37510
36893
 
37511
36894
  /**
37512
- * A graphical point positioned in the 3D scene, that is created
37513
- and rendered using a {@link PointPrimitiveCollection}. A point is created and its initial
37514
- properties are set by calling {@link PointPrimitiveCollection#add}.
36895
+ * <div class="notice">
36896
+ A point is created and its initial properties are set by calling {@link PointPrimitiveCollection#add}. Do not call the constructor directly.
36897
+ </div>
36898
+ A graphical point positioned in the 3D scene, that is created
36899
+ and rendered using a {@link PointPrimitiveCollection}.
37515
36900
  */
37516
36901
  export class PointPrimitive {
37517
36902
  constructor();
@@ -37788,27 +37173,14 @@ export class PointPrimitiveCollection {
37788
37173
  }
37789
37174
 
37790
37175
  /**
37791
- * A renderable polyline. Create this by calling {@link PolylineCollection#add}
37792
- * @param options - Object with the following properties:
37793
- * @param [options.show = true] - <code>true</code> if this polyline will be shown; otherwise, <code>false</code>.
37794
- * @param [options.width = 1.0] - The width of the polyline in pixels.
37795
- * @param [options.loop = false] - Whether a line segment will be added between the last and first line positions to make this line a loop.
37796
- * @param [options.material = Material.ColorType] - The material.
37797
- * @param [options.positions] - The positions.
37798
- * @param [options.id] - The user-defined object to be returned when this polyline is picked.
37799
- * @param [options.distanceDisplayCondition] - The condition specifying at what distance from the camera that this polyline will be displayed.
37800
- * @param polylineCollection - The renderable polyline collection.
37176
+ * <div class="notice">
37177
+ Create this by calling {@link PolylineCollection#add}. Do not call the constructor directly.
37178
+ </div>
37179
+
37180
+ A renderable polyline.
37801
37181
  */
37802
37182
  export class Polyline {
37803
- constructor(options: {
37804
- show?: boolean;
37805
- width?: number;
37806
- loop?: boolean;
37807
- material?: Material;
37808
- positions?: Cartesian3[];
37809
- id?: any;
37810
- distanceDisplayCondition?: DistanceDisplayCondition;
37811
- }, polylineCollection: PolylineCollection);
37183
+ constructor();
37812
37184
  /**
37813
37185
  * Determines if this polyline will be shown. Use this to hide or show a polyline, instead
37814
37186
  of removing it and re-adding it to the collection.
@@ -40135,41 +39507,17 @@ export class ScreenSpaceCameraController {
40135
39507
  }
40136
39508
 
40137
39509
  /**
40138
- * Use {@link Viewer#shadowMap} to get the scene's shadow map. Do not construct this directly.
39510
+ * <div class="notice">
39511
+ Use {@link Viewer#shadowMap} to get the scene's shadow map. Do not construct this directly.
39512
+ </div>
40139
39513
 
40140
39514
  <p>
40141
39515
  The normalOffset bias pushes the shadows forward slightly, and may be disabled
40142
39516
  for applications that require ultra precise shadows.
40143
39517
  </p>
40144
- * @param options - An object containing the following properties:
40145
- * @param options.lightCamera - A camera representing the light source.
40146
- * @param [options.enabled = true] - Whether the shadow map is enabled.
40147
- * @param [options.isPointLight = false] - Whether the light source is a point light. Point light shadows do not use cascades.
40148
- * @param [options.pointLightRadius = 100.0] - Radius of the point light.
40149
- * @param [options.cascadesEnabled = true] - Use multiple shadow maps to cover different partitions of the view frustum.
40150
- * @param [options.numberOfCascades = 4] - The number of cascades to use for the shadow map. Supported values are one and four.
40151
- * @param [options.maximumDistance = 5000.0] - The maximum distance used for generating cascaded shadows. Lower values improve shadow quality.
40152
- * @param [options.size = 2048] - The width and height, in pixels, of each shadow map.
40153
- * @param [options.softShadows = false] - Whether percentage-closer-filtering is enabled for producing softer shadows.
40154
- * @param [options.darkness = 0.3] - The shadow darkness.
40155
- * @param [options.normalOffset = true] - Whether a normal bias is applied to shadows.
40156
- * @param [options.fadingEnabled = true] - Whether shadows start to fade out once the light gets closer to the horizon.
40157
39518
  */
40158
39519
  export class ShadowMap {
40159
- constructor(options: {
40160
- lightCamera: Camera;
40161
- enabled?: boolean;
40162
- isPointLight?: boolean;
40163
- pointLightRadius?: number;
40164
- cascadesEnabled?: boolean;
40165
- numberOfCascades?: number;
40166
- maximumDistance?: number;
40167
- size?: number;
40168
- softShadows?: boolean;
40169
- darkness?: number;
40170
- normalOffset?: boolean;
40171
- fadingEnabled?: boolean;
40172
- });
39520
+ constructor();
40173
39521
  /**
40174
39522
  * Determines the darkness of the shadows.
40175
39523
  */
@@ -42247,9 +41595,9 @@ const widget = new Cesium.Animation('animationContainer', viewModel);
42247
41595
 
42248
41596
  function tick() {
42249
41597
  clock.tick();
42250
- Cesium.requestAnimationFrame(tick);
41598
+ requestAnimationFrame(tick);
42251
41599
  }
42252
- Cesium.requestAnimationFrame(tick);
41600
+ requestAnimationFrame(tick);
42253
41601
  * @param container - The DOM element or ID that will contain the widget.
42254
41602
  * @param viewModel - The view model used by this widget.
42255
41603
  */
@@ -42686,6 +42034,10 @@ export class Cesium3DTilesInspectorViewModel {
42686
42034
  * Gets or sets the JSON for the tileset style. This property is observable.
42687
42035
  */
42688
42036
  styleString: string;
42037
+ /**
42038
+ * Gets or sets the JSON for the tileset enableDebugWireframe attribute. This property is observable.
42039
+ */
42040
+ hasEnabledWireframe: boolean;
42689
42041
  /**
42690
42042
  * Gets the names of the properties in the tileset. This property is observable.
42691
42043
  */
@@ -43211,6 +42563,7 @@ const widget2 = new Cesium.CesiumWidget('cesiumContainer', {
43211
42563
  * @param [options.shadows = false] - Determines if shadows are cast by light sources.
43212
42564
  * @param [options.terrainShadows = ShadowMode.RECEIVE_ONLY] - Determines if the terrain casts or receives shadows from light sources.
43213
42565
  * @param [options.mapMode2D = MapMode2D.INFINITE_SCROLL] - Determines if the 2D map is rotatable or can be scrolled infinitely in the horizontal direction.
42566
+ * @param [options.blurActiveElementOnCanvasFocus = true] - If true, the active element will blur when the viewer's canvas is clicked. Setting this to false is useful for cases when the canvas is clicked only for retrieving position or an entity data without actually meaning to set the canvas to be the active element.
43214
42567
  * @param [options.requestRenderMode = false] - If true, rendering a frame will only occur when needed as determined by changes within the scene. Enabling improves performance of the application, but requires using {@link Scene#requestRender} to render a new frame explicitly in this mode. This will be necessary in many cases after making changes to the scene in other parts of the API. See {@link https://cesium.com/blog/2018/01/24/cesium-scene-rendering-performance/|Improving Performance with Explicit Rendering}.
43215
42568
  * @param [options.maximumRenderTimeChange = 0.0] - If requestRenderMode is true, this value defines the maximum change in simulation time allowed before a render is requested. See {@link https://cesium.com/blog/2018/01/24/cesium-scene-rendering-performance/|Improving Performance with Explicit Rendering}.
43216
42569
  * @param [options.msaaSamples = 1] - If provided, this value controls the rate of multisample antialiasing. Typical multisampling rates are 2, 4, and sometimes 8 samples per pixel. Higher sampling rates of MSAA may impact performance in exchange for improved visual quality. This value only applies to WebGL2 contexts that support multisample render targets.
@@ -43237,6 +42590,7 @@ export class CesiumWidget {
43237
42590
  shadows?: boolean;
43238
42591
  terrainShadows?: ShadowMode;
43239
42592
  mapMode2D?: MapMode2D;
42593
+ blurActiveElementOnCanvasFocus?: boolean;
43240
42594
  requestRenderMode?: boolean;
43241
42595
  maximumRenderTimeChange?: number;
43242
42596
  msaaSamples?: number;
@@ -43283,14 +42637,14 @@ export class CesiumWidget {
43283
42637
  readonly screenSpaceEventHandler: ScreenSpaceEventHandler;
43284
42638
  /**
43285
42639
  * Gets or sets the target frame rate of the widget when <code>useDefaultRenderLoop</code>
43286
- is true. If undefined, the browser's {@link requestAnimationFrame} implementation
42640
+ is true. If undefined, the browser's requestAnimationFrame implementation
43287
42641
  determines the frame rate. If defined, this value must be greater than 0. A value higher
43288
42642
  than the underlying requestAnimationFrame implementation will have no effect.
43289
42643
  */
43290
42644
  targetFrameRate: number;
43291
42645
  /**
43292
42646
  * Gets or sets whether or not this widget should control the render loop.
43293
- If set to true the widget will use {@link requestAnimationFrame} to
42647
+ If true the widget will use requestAnimationFrame to
43294
42648
  perform rendering and resizing of the widget, as well as drive the
43295
42649
  simulation clock. If set to false, you must manually call the
43296
42650
  <code>resize</code>, <code>render</code> methods as part of a custom
@@ -44342,6 +43696,7 @@ export namespace Viewer {
44342
43696
  * @property [terrainShadows = ShadowMode.RECEIVE_ONLY] - Determines if the terrain casts or receives shadows from light sources.
44343
43697
  * @property [mapMode2D = MapMode2D.INFINITE_SCROLL] - Determines if the 2D map is rotatable or can be scrolled infinitely in the horizontal direction.
44344
43698
  * @property [projectionPicker = false] - If set to true, the ProjectionPicker widget will be created.
43699
+ * @property [blurActiveElementOnCanvasFocus = true] - If true, the active element will blur when the viewer's canvas is clicked. Setting this to false is useful for cases when the canvas is clicked only for retrieving position or an entity data without actually meaning to set the canvas to be the active element.
44345
43700
  * @property [requestRenderMode = false] - If true, rendering a frame will only occur when needed as determined by changes within the scene. Enabling reduces the CPU/GPU usage of your application and uses less battery on mobile, but requires using {@link Scene#requestRender} to render a new frame explicitly in this mode. This will be necessary in many cases after making changes to the scene in other parts of the API. See {@link https://cesium.com/blog/2018/01/24/cesium-scene-rendering-performance/|Improving Performance with Explicit Rendering}.
44346
43701
  * @property [maximumRenderTimeChange = 0.0] - If requestRenderMode is true, this value defines the maximum change in simulation time allowed before a render is requested. See {@link https://cesium.com/blog/2018/01/24/cesium-scene-rendering-performance/|Improving Performance with Explicit Rendering}.
44347
43702
  * @property [depthPlaneEllipsoidOffset = 0.0] - Adjust the DepthPlane to address rendering artefacts below ellipsoid zero elevation.
@@ -44389,6 +43744,7 @@ export namespace Viewer {
44389
43744
  terrainShadows?: ShadowMode;
44390
43745
  mapMode2D?: MapMode2D;
44391
43746
  projectionPicker?: boolean;
43747
+ blurActiveElementOnCanvasFocus?: boolean;
44392
43748
  requestRenderMode?: boolean;
44393
43749
  maximumRenderTimeChange?: number;
44394
43750
  depthPlaneEllipsoidOffset?: number;
@@ -44569,14 +43925,14 @@ export class Viewer {
44569
43925
  readonly screenSpaceEventHandler: ScreenSpaceEventHandler;
44570
43926
  /**
44571
43927
  * Gets or sets the target frame rate of the widget when <code>useDefaultRenderLoop</code>
44572
- is true. If undefined, the browser's {@link requestAnimationFrame} implementation
43928
+ is true. If undefined, the browser's requestAnimationFrame implementation
44573
43929
  determines the frame rate. If defined, this value must be greater than 0. A value higher
44574
43930
  than the underlying requestAnimationFrame implementation will have no effect.
44575
43931
  */
44576
43932
  targetFrameRate: number;
44577
43933
  /**
44578
43934
  * Gets or sets whether or not this widget should control the render loop.
44579
- If set to true the widget will use {@link requestAnimationFrame} to
43935
+ If true the widget will use requestAnimationFrame to
44580
43936
  perform rendering and resizing of the widget, as well as drive the
44581
43937
  simulation clock. If set to false, you must manually call the
44582
43938
  <code>resize</code>, <code>render</code> methods
@@ -44913,7 +44269,6 @@ declare module "cesium/Source/Core/EllipsoidTangentPlane" { import { EllipsoidTa
44913
44269
  declare module "cesium/Source/Core/EllipsoidTerrainProvider" { import { EllipsoidTerrainProvider } from 'mars3d-cesium'; export default EllipsoidTerrainProvider; }
44914
44270
  declare module "cesium/Source/Core/Event" { import { Event } from 'mars3d-cesium'; export default Event; }
44915
44271
  declare module "cesium/Source/Core/EventHelper" { import { EventHelper } from 'mars3d-cesium'; export default EventHelper; }
44916
- declare module "cesium/Source/Core/ExperimentalFeatures" { import { ExperimentalFeatures } from 'mars3d-cesium'; export default ExperimentalFeatures; }
44917
44272
  declare module "cesium/Source/Core/FeatureDetection" { import { FeatureDetection } from 'mars3d-cesium'; export default FeatureDetection; }
44918
44273
  declare module "cesium/Source/Core/formatError" { import { formatError } from 'mars3d-cesium'; export default formatError; }
44919
44274
  declare module "cesium/Source/Core/FrustumGeometry" { import { FrustumGeometry } from 'mars3d-cesium'; export default FrustumGeometry; }
@@ -45175,6 +44530,12 @@ declare module "cesium/Source/Scene/GoogleEarthEnterpriseMapsProvider" { import
45175
44530
  declare module "cesium/Source/Scene/GridImageryProvider" { import { GridImageryProvider } from 'mars3d-cesium'; export default GridImageryProvider; }
45176
44531
  declare module "cesium/Source/Scene/GroundPolylinePrimitive" { import { GroundPolylinePrimitive } from 'mars3d-cesium'; export default GroundPolylinePrimitive; }
45177
44532
  declare module "cesium/Source/Scene/GroundPrimitive" { import { GroundPrimitive } from 'mars3d-cesium'; export default GroundPrimitive; }
44533
+ declare module "cesium/Source/Scene/I3SDataProvider" { import { I3SDataProvider } from 'mars3d-cesium'; export default I3SDataProvider; }
44534
+ declare module "cesium/Source/Scene/I3SFeature" { import { I3SFeature } from 'mars3d-cesium'; export default I3SFeature; }
44535
+ declare module "cesium/Source/Scene/I3SField" { import { I3SField } from 'mars3d-cesium'; export default I3SField; }
44536
+ declare module "cesium/Source/Scene/I3SGeometry" { import { I3SGeometry } from 'mars3d-cesium'; export default I3SGeometry; }
44537
+ declare module "cesium/Source/Scene/I3SLayer" { import { I3SLayer } from 'mars3d-cesium'; export default I3SLayer; }
44538
+ declare module "cesium/Source/Scene/I3SNode" { import { I3SNode } from 'mars3d-cesium'; export default I3SNode; }
45178
44539
  declare module "cesium/Source/Scene/ImageBasedLighting" { import { ImageBasedLighting } from 'mars3d-cesium'; export default ImageBasedLighting; }
45179
44540
  declare module "cesium/Source/Scene/ImageryLayer" { import { ImageryLayer } from 'mars3d-cesium'; export default ImageryLayer; }
45180
44541
  declare module "cesium/Source/Scene/ImageryLayerCollection" { import { ImageryLayerCollection } from 'mars3d-cesium'; export default ImageryLayerCollection; }
@@ -45188,12 +44549,6 @@ declare module "cesium/Source/Scene/MapboxImageryProvider" { import { MapboxImag
45188
44549
  declare module "cesium/Source/Scene/MapboxStyleImageryProvider" { import { MapboxStyleImageryProvider } from 'mars3d-cesium'; export default MapboxStyleImageryProvider; }
45189
44550
  declare module "cesium/Source/Scene/Material" { import { Material } from 'mars3d-cesium'; export default Material; }
45190
44551
  declare module "cesium/Source/Scene/MaterialAppearance" { import { MaterialAppearance } from 'mars3d-cesium'; export default MaterialAppearance; }
45191
- declare module "cesium/Source/Scene/Model" { import { Model } from 'mars3d-cesium'; export default Model; }
45192
- declare module "cesium/Source/Scene/ModelAnimation" { import { ModelAnimation } from 'mars3d-cesium'; export default ModelAnimation; }
45193
- declare module "cesium/Source/Scene/ModelAnimationCollection" { import { ModelAnimationCollection } from 'mars3d-cesium'; export default ModelAnimationCollection; }
45194
- declare module "cesium/Source/Scene/ModelMaterial" { import { ModelMaterial } from 'mars3d-cesium'; export default ModelMaterial; }
45195
- declare module "cesium/Source/Scene/ModelMesh" { import { ModelMesh } from 'mars3d-cesium'; export default ModelMesh; }
45196
- declare module "cesium/Source/Scene/ModelNode" { import { ModelNode } from 'mars3d-cesium'; export default ModelNode; }
45197
44552
  declare module "cesium/Source/Scene/Moon" { import { Moon } from 'mars3d-cesium'; export default Moon; }
45198
44553
  declare module "cesium/Source/Scene/NeverTileDiscardPolicy" { import { NeverTileDiscardPolicy } from 'mars3d-cesium'; export default NeverTileDiscardPolicy; }
45199
44554
  declare module "cesium/Source/Scene/OpenStreetMapImageryProvider" { import { OpenStreetMapImageryProvider } from 'mars3d-cesium'; export default OpenStreetMapImageryProvider; }
@@ -45240,12 +44595,14 @@ declare module "cesium/Source/Widgets/Command" { import { Command } from 'mars3d
45240
44595
  declare module "cesium/Source/Widgets/createCommand" { import { createCommand } from 'mars3d-cesium'; export default createCommand; }
45241
44596
  declare module "cesium/Source/Widgets/SvgPathBindingHandler" { import { SvgPathBindingHandler } from 'mars3d-cesium'; export default SvgPathBindingHandler; }
45242
44597
  declare module "cesium/Source/Widgets/ToggleButtonViewModel" { import { ToggleButtonViewModel } from 'mars3d-cesium'; export default ToggleButtonViewModel; }
45243
- declare module "cesium/Source/Scene/ModelExperimental/CustomShader" { import { CustomShader } from 'mars3d-cesium'; export default CustomShader; }
45244
- declare module "cesium/Source/Scene/ModelExperimental/ModelExperimental" { import { ModelExperimental } from 'mars3d-cesium'; export default ModelExperimental; }
45245
- declare module "cesium/Source/Scene/ModelExperimental/ModelExperimentalAnimation" { import { ModelExperimentalAnimation } from 'mars3d-cesium'; export default ModelExperimentalAnimation; }
45246
- declare module "cesium/Source/Scene/ModelExperimental/ModelExperimentalAnimationCollection" { import { ModelExperimentalAnimationCollection } from 'mars3d-cesium'; export default ModelExperimentalAnimationCollection; }
45247
- declare module "cesium/Source/Scene/ModelExperimental/ModelFeature" { import { ModelFeature } from 'mars3d-cesium'; export default ModelFeature; }
45248
- declare module "cesium/Source/Scene/ModelExperimental/TextureUniform" { import { TextureUniform } from 'mars3d-cesium'; export default TextureUniform; }
44598
+ declare module "cesium/Source/Scene/GltfPipeline/removeExtension" { import { removeExtension } from 'mars3d-cesium'; export default removeExtension; }
44599
+ declare module "cesium/Source/Scene/Model/CustomShader" { import { CustomShader } from 'mars3d-cesium'; export default CustomShader; }
44600
+ declare module "cesium/Source/Scene/Model/Model" { import { Model } from 'mars3d-cesium'; export default Model; }
44601
+ declare module "cesium/Source/Scene/Model/ModelAnimation" { import { ModelAnimation } from 'mars3d-cesium'; export default ModelAnimation; }
44602
+ declare module "cesium/Source/Scene/Model/ModelAnimationCollection" { import { ModelAnimationCollection } from 'mars3d-cesium'; export default ModelAnimationCollection; }
44603
+ declare module "cesium/Source/Scene/Model/ModelFeature" { import { ModelFeature } from 'mars3d-cesium'; export default ModelFeature; }
44604
+ declare module "cesium/Source/Scene/Model/ModelNode" { import { ModelNode } from 'mars3d-cesium'; export default ModelNode; }
44605
+ declare module "cesium/Source/Scene/Model/TextureUniform" { import { TextureUniform } from 'mars3d-cesium'; export default TextureUniform; }
45249
44606
  declare module "cesium/Source/Widgets/Animation/Animation" { import { Animation } from 'mars3d-cesium'; export default Animation; }
45250
44607
  declare module "cesium/Source/Widgets/Animation/AnimationViewModel" { import { AnimationViewModel } from 'mars3d-cesium'; export default AnimationViewModel; }
45251
44608
  declare module "cesium/Source/Widgets/BaseLayerPicker/BaseLayerPicker" { import { BaseLayerPicker } from 'mars3d-cesium'; export default BaseLayerPicker; }