@cesium/engine 2.1.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/Build/Workers/{AttributeCompression-8a5a065e.js → AttributeCompression-f9f6c717.js} +1 -1
  2. package/Build/Workers/{AxisAlignedBoundingBox-a6f9f0e5.js → AxisAlignedBoundingBox-31fadcf0.js} +1 -1
  3. package/Build/Workers/{BoundingRectangle-b0a68595.js → BoundingRectangle-995f0079.js} +1 -1
  4. package/Build/Workers/{BoxGeometry-baedd794.js → BoxGeometry-7eb1af60.js} +1 -1
  5. package/Build/Workers/{Color-f85df1be.js → Color-2dc49658.js} +1 -1
  6. package/Build/Workers/{CoplanarPolygonGeometryLibrary-30516950.js → CoplanarPolygonGeometryLibrary-d7d972d6.js} +1 -1
  7. package/Build/Workers/{CorridorGeometryLibrary-5d5d3b3a.js → CorridorGeometryLibrary-1f5ef7b3.js} +1 -1
  8. package/Build/Workers/{CylinderGeometry-d899ae26.js → CylinderGeometry-23c67a6c.js} +1 -1
  9. package/Build/Workers/{CylinderGeometryLibrary-135b0858.js → CylinderGeometryLibrary-7bf291b4.js} +1 -1
  10. package/Build/Workers/{EllipseGeometry-a49f8449.js → EllipseGeometry-37014da4.js} +1 -1
  11. package/Build/Workers/{EllipseGeometryLibrary-cba7edde.js → EllipseGeometryLibrary-92ab6b1e.js} +1 -1
  12. package/Build/Workers/{EllipseOutlineGeometry-8095c8cb.js → EllipseOutlineGeometry-12b6fef5.js} +1 -1
  13. package/Build/Workers/{EllipsoidGeodesic-dcff5cbd.js → EllipsoidGeodesic-5b3623dc.js} +1 -1
  14. package/Build/Workers/{EllipsoidGeometry-ed93f571.js → EllipsoidGeometry-508da15c.js} +1 -1
  15. package/Build/Workers/{EllipsoidOutlineGeometry-e4854854.js → EllipsoidOutlineGeometry-40d97455.js} +1 -1
  16. package/Build/Workers/{EllipsoidRhumbLine-b672d507.js → EllipsoidRhumbLine-ef872433.js} +1 -1
  17. package/Build/Workers/{EllipsoidTangentPlane-7ae1aa9a.js → EllipsoidTangentPlane-46d4d9c2.js} +1 -1
  18. package/Build/Workers/{EncodedCartesian3-e8bbca36.js → EncodedCartesian3-57415c8a.js} +1 -1
  19. package/Build/Workers/{FrustumGeometry-b62db3e3.js → FrustumGeometry-38605e69.js} +32 -4
  20. package/Build/Workers/{GeometryAttribute-780af4fa.js → GeometryAttribute-a466e9c7.js} +1 -1
  21. package/Build/Workers/{GeometryInstance-3fb607b7.js → GeometryInstance-34d9e21e.js} +1 -1
  22. package/Build/Workers/{GeometryPipeline-36b61c99.js → GeometryPipeline-dcf79306.js} +1 -1
  23. package/Build/Workers/{IndexDatatype-b8f3e09d.js → IndexDatatype-2643aa47.js} +1 -1
  24. package/Build/Workers/{IntersectionTests-e889fcf0.js → IntersectionTests-88c49b2e.js} +1 -1
  25. package/Build/Workers/{Math-dad82b4d.js → Math-0a2ac845.js} +12 -2
  26. package/Build/Workers/{Matrix2-1e403d0e.js → Matrix2-e1298525.js} +1 -1
  27. package/Build/Workers/{Matrix3-fa806b97.js → Matrix3-41c58dde.js} +1 -1
  28. package/Build/Workers/{OrientedBoundingBox-43478ac8.js → OrientedBoundingBox-2dd47921.js} +5 -3
  29. package/Build/Workers/{Plane-c27e1ac6.js → Plane-4c3d403b.js} +1 -1
  30. package/Build/Workers/{PolygonGeometryLibrary-38a98276.js → PolygonGeometryLibrary-59126025.js} +1 -1
  31. package/Build/Workers/PolygonPipeline-1fe328c0.js +1344 -0
  32. package/Build/Workers/{PolylinePipeline-30e4cec9.js → PolylinePipeline-896735cc.js} +1 -1
  33. package/Build/Workers/{PolylineVolumeGeometryLibrary-90551d26.js → PolylineVolumeGeometryLibrary-9c0639f7.js} +1 -1
  34. package/Build/Workers/{PrimitivePipeline-558d9cb0.js → PrimitivePipeline-fc1a47ff.js} +1 -1
  35. package/Build/Workers/{RectangleGeometryLibrary-815c68df.js → RectangleGeometryLibrary-a23c9ebe.js} +1 -1
  36. package/Build/Workers/{TerrainEncoding-341ead52.js → TerrainEncoding-51b8b33b.js} +1 -1
  37. package/Build/Workers/Transforms-bc45e707.js +14699 -0
  38. package/Build/Workers/{WallGeometryLibrary-ccf90976.js → WallGeometryLibrary-007e9883.js} +1 -1
  39. package/Build/Workers/{WebMercatorProjection-76a3fcc0.js → WebMercatorProjection-13ed1a6e.js} +1 -1
  40. package/Build/Workers/{arrayRemoveDuplicates-fac118a8.js → arrayRemoveDuplicates-d2061e85.js} +1 -1
  41. package/Build/Workers/cesiumWorkerBootstrapper.js +1 -1
  42. package/Build/Workers/combineGeometry.js +1 -1
  43. package/Build/Workers/createBoxGeometry.js +1 -1
  44. package/Build/Workers/createBoxOutlineGeometry.js +1 -1
  45. package/Build/Workers/createCircleGeometry.js +1 -1
  46. package/Build/Workers/createCircleOutlineGeometry.js +1 -1
  47. package/Build/Workers/createCoplanarPolygonGeometry.js +1 -1
  48. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +1 -1
  49. package/Build/Workers/createCorridorGeometry.js +1 -1
  50. package/Build/Workers/createCorridorOutlineGeometry.js +1 -1
  51. package/Build/Workers/createCylinderGeometry.js +1 -1
  52. package/Build/Workers/createCylinderOutlineGeometry.js +1 -1
  53. package/Build/Workers/createEllipseGeometry.js +1 -1
  54. package/Build/Workers/createEllipseOutlineGeometry.js +1 -1
  55. package/Build/Workers/createEllipsoidGeometry.js +1 -1
  56. package/Build/Workers/createEllipsoidOutlineGeometry.js +1 -1
  57. package/Build/Workers/createFrustumGeometry.js +1 -1
  58. package/Build/Workers/createFrustumOutlineGeometry.js +1 -1
  59. package/Build/Workers/createGeometry.js +1 -1
  60. package/Build/Workers/createGroundPolylineGeometry.js +1 -1
  61. package/Build/Workers/createPlaneGeometry.js +1 -1
  62. package/Build/Workers/createPlaneOutlineGeometry.js +1 -1
  63. package/Build/Workers/createPolygonGeometry.js +1 -1
  64. package/Build/Workers/createPolygonOutlineGeometry.js +1 -1
  65. package/Build/Workers/createPolylineGeometry.js +1 -1
  66. package/Build/Workers/createPolylineVolumeGeometry.js +1 -1
  67. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +1 -1
  68. package/Build/Workers/createRectangleGeometry.js +1 -1
  69. package/Build/Workers/createRectangleOutlineGeometry.js +1 -1
  70. package/Build/Workers/createSimplePolylineGeometry.js +1 -1
  71. package/Build/Workers/createSphereGeometry.js +1 -1
  72. package/Build/Workers/createSphereOutlineGeometry.js +1 -1
  73. package/Build/Workers/createVectorTileClampedPolylines.js +1 -1
  74. package/Build/Workers/createVectorTileGeometries.js +1 -1
  75. package/Build/Workers/createVectorTilePoints.js +1 -1
  76. package/Build/Workers/createVectorTilePolygons.js +1 -1
  77. package/Build/Workers/createVectorTilePolylines.js +1 -1
  78. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +1 -1
  79. package/Build/Workers/createVerticesFromHeightmap.js +5 -8
  80. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +10 -15
  81. package/Build/Workers/createWallGeometry.js +1 -1
  82. package/Build/Workers/createWallOutlineGeometry.js +1 -1
  83. package/Build/Workers/decodeDraco.js +1 -1
  84. package/Build/Workers/decodeI3S.js +1 -1
  85. package/Build/Workers/package.js +1 -1
  86. package/Build/Workers/transferTypedArrayTest.js +1 -1
  87. package/Build/Workers/upsampleQuantizedTerrainMesh.js +1 -1
  88. package/Source/Core/ArcGISTiledElevationTerrainProvider.js +291 -191
  89. package/Source/Core/BingMapsGeocoderService.js +19 -1
  90. package/Source/Core/CartographicGeocoderService.js +15 -0
  91. package/Source/Core/CesiumTerrainProvider.js +571 -434
  92. package/Source/Core/Credit.js +1 -1
  93. package/Source/Core/CustomHeightmapTerrainProvider.js +12 -0
  94. package/Source/Core/EllipsoidTerrainProvider.js +17 -10
  95. package/Source/Core/FrustumGeometry.js +4 -3
  96. package/Source/Core/GeocoderService.js +32 -1
  97. package/Source/Core/GoogleEarthEnterpriseMetadata.js +86 -34
  98. package/Source/Core/GoogleEarthEnterpriseTerrainProvider.js +119 -82
  99. package/Source/Core/Ion.js +1 -1
  100. package/Source/Core/IonGeocoderService.js +17 -2
  101. package/Source/Core/IonResource.js +14 -3
  102. package/Source/Core/OpenCageGeocoderService.js +18 -1
  103. package/Source/Core/OrientedBoundingBox.js +4 -2
  104. package/Source/Core/OrthographicFrustum.js +13 -0
  105. package/Source/Core/PeliasGeocoderService.js +14 -1
  106. package/Source/Core/PerspectiveFrustum.js +14 -0
  107. package/Source/Core/Request.js +3 -2
  108. package/Source/Core/RequestScheduler.js +10 -5
  109. package/Source/Core/Resource.js +230 -236
  110. package/Source/Core/TerrainProvider.js +9 -14
  111. package/Source/Core/TileProviderError.js +8 -8
  112. package/Source/Core/VRTheWorldTerrainProvider.js +193 -124
  113. package/Source/Core/buildModuleUrl.js +4 -3
  114. package/Source/Core/createWorldTerrain.js +20 -2
  115. package/Source/Core/createWorldTerrainAsync.js +48 -0
  116. package/Source/Core/sampleTerrain.js +9 -10
  117. package/Source/Core/sampleTerrainMostDetailed.js +66 -72
  118. package/Source/DataSources/Cesium3DTilesetVisualizer.js +37 -26
  119. package/Source/DataSources/DataSourceDisplay.js +2 -2
  120. package/Source/DataSources/Entity.js +6 -1
  121. package/Source/DataSources/EntityCluster.js +126 -128
  122. package/Source/DataSources/ModelVisualizer.js +104 -34
  123. package/Source/DataSources/PolygonGraphics.js +1 -1
  124. package/Source/Renderer/UniformState.js +3 -2
  125. package/Source/Renderer/demodernizeShader.js +5 -5
  126. package/Source/Scene/ArcGisBaseMapType.js +12 -0
  127. package/Source/Scene/ArcGisMapServerImageryProvider.js +694 -376
  128. package/Source/Scene/ArcGisMapService.js +83 -0
  129. package/Source/Scene/BingMapsImageryProvider.js +511 -305
  130. package/Source/Scene/BufferLoader.js +29 -34
  131. package/Source/Scene/Camera.js +8 -7
  132. package/Source/Scene/Cesium3DTile.js +392 -254
  133. package/Source/Scene/Cesium3DTileBatchTable.js +2 -2
  134. package/Source/Scene/Cesium3DTileContent.js +16 -0
  135. package/Source/Scene/Cesium3DTileContentFactory.js +4 -4
  136. package/Source/Scene/Cesium3DTilePass.js +8 -11
  137. package/Source/Scene/Cesium3DTileStyleEngine.js +1 -1
  138. package/Source/Scene/Cesium3DTilesVoxelProvider.js +225 -117
  139. package/Source/Scene/Cesium3DTileset.js +756 -482
  140. package/Source/Scene/Cesium3DTilesetBaseTraversal.js +301 -0
  141. package/Source/Scene/Cesium3DTilesetMostDetailedTraversal.js +33 -46
  142. package/Source/Scene/Cesium3DTilesetSkipTraversal.js +421 -0
  143. package/Source/Scene/Cesium3DTilesetTraversal.js +219 -671
  144. package/Source/Scene/ClassificationPrimitive.js +7 -0
  145. package/Source/Scene/Composite3DTileContent.js +69 -26
  146. package/Source/Scene/CreditDisplay.js +132 -20
  147. package/Source/Scene/DepthPlane.js +1 -1
  148. package/Source/Scene/Empty3DTileContent.js +31 -1
  149. package/Source/Scene/Geometry3DTileContent.js +47 -7
  150. package/Source/Scene/Globe.js +5 -1
  151. package/Source/Scene/GlobeSurfaceTile.js +2 -1
  152. package/Source/Scene/GlobeSurfaceTileProvider.js +53 -30
  153. package/Source/Scene/GltfBufferViewLoader.js +47 -91
  154. package/Source/Scene/GltfDracoLoader.js +110 -112
  155. package/Source/Scene/GltfImageLoader.js +71 -78
  156. package/Source/Scene/GltfIndexBufferLoader.js +108 -121
  157. package/Source/Scene/GltfJsonLoader.js +87 -74
  158. package/Source/Scene/GltfLoader.js +381 -300
  159. package/Source/Scene/GltfStructuralMetadataLoader.js +109 -110
  160. package/Source/Scene/GltfTextureLoader.js +97 -96
  161. package/Source/Scene/GltfVertexBufferLoader.js +128 -133
  162. package/Source/Scene/GoogleEarthEnterpriseImageryProvider.js +353 -225
  163. package/Source/Scene/GoogleEarthEnterpriseMapsProvider.js +491 -331
  164. package/Source/Scene/GridImageryProvider.js +267 -104
  165. package/Source/Scene/GroundPolylinePrimitive.js +12 -1
  166. package/Source/Scene/GroundPrimitive.js +8 -1
  167. package/Source/Scene/I3SDataProvider.js +214 -113
  168. package/Source/Scene/I3SFeature.js +7 -6
  169. package/Source/Scene/I3SLayer.js +26 -37
  170. package/Source/Scene/I3SNode.js +59 -66
  171. package/Source/Scene/Imagery.js +6 -1
  172. package/Source/Scene/ImageryLayer.js +299 -48
  173. package/Source/Scene/ImageryLayerCollection.js +26 -0
  174. package/Source/Scene/ImageryProvider.js +129 -111
  175. package/Source/Scene/Implicit3DTileContent.js +72 -23
  176. package/Source/Scene/ImplicitSubtree.js +66 -45
  177. package/Source/Scene/IonImageryProvider.js +482 -275
  178. package/Source/Scene/MapboxImageryProvider.js +272 -112
  179. package/Source/Scene/MapboxStyleImageryProvider.js +270 -111
  180. package/Source/Scene/MetadataSchemaLoader.js +26 -36
  181. package/Source/Scene/Model/B3dmLoader.js +42 -46
  182. package/Source/Scene/Model/GeoJsonLoader.js +8 -32
  183. package/Source/Scene/Model/I3dmLoader.js +48 -74
  184. package/Source/Scene/Model/MaterialPipelineStage.js +12 -12
  185. package/Source/Scene/Model/Model.js +514 -135
  186. package/Source/Scene/Model/Model3DTileContent.js +83 -31
  187. package/Source/Scene/Model/ModelAnimationCollection.js +3 -3
  188. package/Source/Scene/Model/ModelDrawCommand.js +15 -26
  189. package/Source/Scene/Model/ModelUtility.js +16 -16
  190. package/Source/Scene/Model/PntsLoader.js +27 -32
  191. package/Source/Scene/Model/UniformType.js +1 -1
  192. package/Source/Scene/Multiple3DTileContent.js +134 -115
  193. package/Source/Scene/Picking.js +3 -2
  194. package/Source/Scene/PointCloud.js +11 -19
  195. package/Source/Scene/Primitive.js +20 -0
  196. package/Source/Scene/QuadtreePrimitive.js +5 -2
  197. package/Source/Scene/QuadtreeTileProvider.js +4 -8
  198. package/Source/Scene/ResourceCache.js +47 -105
  199. package/Source/Scene/ResourceCacheStatistics.js +24 -58
  200. package/Source/Scene/ResourceLoader.js +5 -17
  201. package/Source/Scene/ResourceLoaderState.js +12 -4
  202. package/Source/Scene/Scene.js +65 -0
  203. package/Source/Scene/SceneTransforms.js +3 -2
  204. package/Source/Scene/ScreenSpaceCameraController.js +2 -2
  205. package/Source/Scene/SingleTileImageryProvider.js +382 -209
  206. package/Source/Scene/Terrain.js +196 -0
  207. package/Source/Scene/TileCoordinatesImageryProvider.js +267 -104
  208. package/Source/Scene/TileMapServiceImageryProvider.js +177 -85
  209. package/Source/Scene/Tileset3DTileContent.js +47 -5
  210. package/Source/Scene/TimeDynamicPointCloud.js +15 -2
  211. package/Source/Scene/UrlTemplateImageryProvider.js +343 -215
  212. package/Source/Scene/Vector3DTileClampedPolylines.js +96 -84
  213. package/Source/Scene/Vector3DTileContent.js +47 -22
  214. package/Source/Scene/Vector3DTileGeometry.js +57 -52
  215. package/Source/Scene/Vector3DTilePoints.js +97 -81
  216. package/Source/Scene/Vector3DTilePolygons.js +118 -117
  217. package/Source/Scene/Vector3DTilePolylines.js +86 -82
  218. package/Source/Scene/Vector3DTilePrimitive.js +0 -1
  219. package/Source/Scene/VoxelContent.js +61 -63
  220. package/Source/Scene/VoxelPrimitive.js +39 -91
  221. package/Source/Scene/VoxelProvider.js +2 -2
  222. package/Source/Scene/WebMapServiceImageryProvider.js +272 -111
  223. package/Source/Scene/WebMapTileServiceImageryProvider.js +270 -107
  224. package/Source/Scene/computeFlyToLocationForRectangle.js +33 -37
  225. package/Source/Scene/createOsmBuildings.js +6 -0
  226. package/Source/Scene/createOsmBuildingsAsync.js +82 -0
  227. package/Source/Scene/createWorldImagery.js +14 -5
  228. package/Source/Scene/createWorldImageryAsync.js +39 -0
  229. package/Source/Shaders/AtmosphereCommon.glsl +51 -8
  230. package/Source/Shaders/AtmosphereCommon.js +51 -8
  231. package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.glsl +1 -1
  232. package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.js +1 -1
  233. package/Source/Shaders/PostProcessStages/AmbientOcclusionModulate.glsl +3 -3
  234. package/Source/Shaders/PostProcessStages/AmbientOcclusionModulate.js +3 -3
  235. package/Source/Widget/CesiumWidget.js +67 -27
  236. package/index.d.ts +2429 -1475
  237. package/index.js +324 -315
  238. package/package.json +4 -4
  239. package/Build/Workers/PolygonPipeline-d31ff61c.js +0 -1345
  240. package/Build/Workers/Transforms-9e9df299.js +0 -14714
@@ -0,0 +1,196 @@
1
+ import Check from "../Core/Check.js";
2
+ import Event from "../Core/Event.js";
3
+ import createWorldTerrainAsync from "../Core/createWorldTerrainAsync.js";
4
+
5
+ /**
6
+ * A helper to manage async operations of a terrain provider.
7
+ *
8
+ * @alias Terrain
9
+ * @constructor
10
+ *
11
+ * @see Terrain.fromWorldTerrain
12
+ * @see CesiumTerrainProvider
13
+ * @see VRTheWorldTerrainProvider
14
+ * @see GoogleEarthEnterpriseTerrainProvider
15
+ *
16
+ * @example
17
+ * // Create
18
+ * const viewer = new Cesium.Viewer("cesiumContainer", {
19
+ * terrain: new Cesium.Terrain(Cesium.CesiumTerrainProvider.fromUrl("https://myTestTerrain.com"));
20
+ * });
21
+ *
22
+ * @example
23
+ * // Handle loading events
24
+ * const terrain = new Cesium.Terrain(Cesium.CesiumTerrainProvider.fromUrl("https://myTestTerrain.com"));
25
+ *
26
+ * scene.setTerrain(terrain);
27
+ *
28
+ * terrain.readyEvent.addEventListener(provider => {
29
+ * scene.globe.enableLighting = true;
30
+ *
31
+ * terrain.provider.errorEvent.addEventListener(error => {
32
+ * alert(`Encountered an error while loading terrain tiles! ${error}`);
33
+ * });
34
+ * });
35
+ *
36
+ * terrain.errorEvent.addEventListener(error => {
37
+ * alert(`Encountered an error while creating terrain! ${error}`);
38
+ * });
39
+ *
40
+ * @param {Promise<TerrainProvider>} terrainProviderPromise A promise which resolves to a terrain provider
41
+ */
42
+ function Terrain(terrainProviderPromise) {
43
+ //>>includeStart('debug', pragmas.debug);
44
+ Check.typeOf.object("terrainProviderPromise", terrainProviderPromise);
45
+ //>>includeEnd('debug');
46
+
47
+ this._ready = false;
48
+ this._provider = undefined;
49
+ this._errorEvent = new Event();
50
+ this._readyEvent = new Event();
51
+
52
+ handlePromise(this, terrainProviderPromise);
53
+ }
54
+
55
+ Object.defineProperties(Terrain.prototype, {
56
+ /**
57
+ * Gets an event that is raised when the terrain provider encounters an asynchronous error. By subscribing
58
+ * to the event, you will be notified of the error and can potentially recover from it. Event listeners
59
+ * are passed an instance of the thrown error.
60
+ * @memberof Terrain.prototype
61
+ * @type {Event<Terrain.ErrorEventCallback>}
62
+ * @readonly
63
+ */
64
+ errorEvent: {
65
+ get: function () {
66
+ return this._errorEvent;
67
+ },
68
+ },
69
+
70
+ /**
71
+ * Gets an event that is raised when the terrain provider has been successfully created. Event listeners
72
+ * are passed the created instance of {@link TerrainProvider}.
73
+ * @memberof Terrain.prototype
74
+ * @type {Event<Terrain.ReadyEventCallback>}
75
+ * @readonly
76
+ */
77
+ readyEvent: {
78
+ get: function () {
79
+ return this._readyEvent;
80
+ },
81
+ },
82
+
83
+ /**
84
+ * Returns true when the terrain provider has been successfully created. Otherwise, returns false.
85
+ * @memberof Viewer.prototype
86
+ *
87
+ * @type {boolean}
88
+ * @readonly
89
+ */
90
+ ready: {
91
+ get: function () {
92
+ return this._ready;
93
+ },
94
+ },
95
+
96
+ /**
97
+ * The terrain provider providing surface geometry to a globe. Do not use until {@link Terrain.readyEvent} is raised.
98
+ * @memberof Viewer.prototype
99
+ *
100
+ * @type {TerrainProvider}
101
+ * @readonly
102
+ */
103
+ provider: {
104
+ get: function () {
105
+ return this._provider;
106
+ },
107
+ },
108
+ });
109
+ /**
110
+ * Creates a {@link Terrain} instance for {@link https://cesium.com/content/#cesium-world-terrain|Cesium World Terrain}.
111
+ *
112
+ * @function
113
+ *
114
+ * @param {Object} [options] Object with the following properties:
115
+ * @param {Boolean} [options.requestVertexNormals=false] Flag that indicates if the client should request additional lighting information from the server if available.
116
+ * @param {Boolean} [options.requestWaterMask=false] Flag that indicates if the client should request per tile water masks from the server if available.
117
+ * @returns {Terrain} An asynchronous helper object for a CesiumTerrainProvider
118
+ *
119
+ * @see Ion
120
+ * @see createWorldTerrainAsync
121
+ *
122
+ * @example
123
+ * // Create Cesium World Terrain with default settings
124
+ * const viewer = new Cesium.Viewer("cesiumContainer", {
125
+ * terrain: Cesium.Terrain.fromWorldTerrain()
126
+ * });
127
+ *
128
+ * @example
129
+ * // Create Cesium World Terrain with water and normals.
130
+ * const viewer1 = new Cesium.Viewer("cesiumContainer", {
131
+ * terrain: Cesium.Terrain.fromWorldTerrain({
132
+ * requestWaterMask: true,
133
+ * requestVertexNormals: true
134
+ * });
135
+ * });
136
+ *
137
+ * @example
138
+ * // Handle loading events
139
+ * const terrain = Cesium.Terrain.fromWorldTerrain();
140
+ *
141
+ * scene.setTerrain(terrain);
142
+ *
143
+ * terrain.readyEvent.addEventListener(provider => {
144
+ * scene.globe.enableLighting = true;
145
+ *
146
+ * terrain.provider.errorEvent.addEventListener(error => {
147
+ * alert(`Encountered an error while loading terrain tiles! ${error}`);
148
+ * });
149
+ * });
150
+ *
151
+ * terrain.errorEvent.addEventListener(error => {
152
+ * alert(`Encountered an error while creating terrain! ${error}`);
153
+ * });
154
+ */
155
+ Terrain.fromWorldTerrain = function (options) {
156
+ return new Terrain(createWorldTerrainAsync(options));
157
+ };
158
+
159
+ function handleError(errorEvent, error) {
160
+ if (errorEvent.numberOfListeners > 0) {
161
+ errorEvent.raiseEvent(error);
162
+ } else {
163
+ // Default handler is to log to the console
164
+ console.error(error);
165
+ }
166
+ }
167
+
168
+ async function handlePromise(instance, promise) {
169
+ let provider;
170
+ try {
171
+ provider = await Promise.resolve(promise);
172
+ instance._provider = provider;
173
+ instance._ready = true;
174
+ instance._readyEvent.raiseEvent(provider);
175
+ } catch (error) {
176
+ handleError(instance._errorEvent, error);
177
+ }
178
+ }
179
+
180
+ export default Terrain;
181
+
182
+ /**
183
+ * A function that is called when an error occurs.
184
+ * @callback Terrain.ErrorEventCallback
185
+ *
186
+ * @this Terrain
187
+ * @param {Error} err An object holding details about the error that occurred.
188
+ */
189
+
190
+ /**
191
+ * A function that is called when the provider has been created
192
+ * @callback Terrain.ReadyEventCallback
193
+ *
194
+ * @this Terrain
195
+ * @param {TerrainProvider} provider The created terrain provider.
196
+ */
@@ -1,6 +1,7 @@
1
1
  import Color from "../Core/Color.js";
2
2
  import defaultValue from "../Core/defaultValue.js";
3
3
  import defined from "../Core/defined.js";
4
+ import deprecationWarning from "../Core/deprecationWarning.js";
4
5
  import Event from "../Core/Event.js";
5
6
  import GeographicTilingScheme from "../Core/GeographicTilingScheme.js";
6
7
 
@@ -38,93 +39,19 @@ function TileCoordinatesImageryProvider(options) {
38
39
  this._errorEvent = new Event();
39
40
  this._tileWidth = defaultValue(options.tileWidth, 256);
40
41
  this._tileHeight = defaultValue(options.tileHeight, 256);
42
+ this._ready = true;
41
43
  this._readyPromise = Promise.resolve(true);
42
44
 
43
- /**
44
- * The default alpha blending value of this provider, with 0.0 representing fully transparent and
45
- * 1.0 representing fully opaque.
46
- *
47
- * @type {number|undefined}
48
- * @default undefined
49
- */
50
- this.defaultAlpha = undefined;
51
-
52
- /**
53
- * The default alpha blending value on the night side of the globe of this provider, with 0.0 representing fully transparent and
54
- * 1.0 representing fully opaque.
55
- *
56
- * @type {number|undefined}
57
- * @default undefined
58
- */
59
- this.defaultNightAlpha = undefined;
60
-
61
- /**
62
- * The default alpha blending value on the day side of the globe of this provider, with 0.0 representing fully transparent and
63
- * 1.0 representing fully opaque.
64
- *
65
- * @type {number|undefined}
66
- * @default undefined
67
- */
68
- this.defaultDayAlpha = undefined;
69
-
70
- /**
71
- * The default brightness of this provider. 1.0 uses the unmodified imagery color. Less than 1.0
72
- * makes the imagery darker while greater than 1.0 makes it brighter.
73
- *
74
- * @type {number|undefined}
75
- * @default undefined
76
- */
77
- this.defaultBrightness = undefined;
78
-
79
- /**
80
- * The default contrast of this provider. 1.0 uses the unmodified imagery color. Less than 1.0 reduces
81
- * the contrast while greater than 1.0 increases it.
82
- *
83
- * @type {number|undefined}
84
- * @default undefined
85
- */
86
- this.defaultContrast = undefined;
87
-
88
- /**
89
- * The default hue of this provider in radians. 0.0 uses the unmodified imagery color.
90
- *
91
- * @type {number|undefined}
92
- * @default undefined
93
- */
94
- this.defaultHue = undefined;
95
-
96
- /**
97
- * The default saturation of this provider. 1.0 uses the unmodified imagery color. Less than 1.0 reduces the
98
- * saturation while greater than 1.0 increases it.
99
- *
100
- * @type {number|undefined}
101
- * @default undefined
102
- */
103
- this.defaultSaturation = undefined;
104
-
105
- /**
106
- * The default gamma correction to apply to this provider. 1.0 uses the unmodified imagery color.
107
- *
108
- * @type {number|undefined}
109
- * @default undefined
110
- */
111
- this.defaultGamma = undefined;
112
-
113
- /**
114
- * The default texture minification filter to apply to this provider.
115
- *
116
- * @type {TextureMinificationFilter}
117
- * @default undefined
118
- */
119
- this.defaultMinificationFilter = undefined;
120
-
121
- /**
122
- * The default texture magnification filter to apply to this provider.
123
- *
124
- * @type {TextureMagnificationFilter}
125
- * @default undefined
126
- */
127
- this.defaultMagnificationFilter = undefined;
45
+ this._defaultAlpha = undefined;
46
+ this._defaultNightAlpha = undefined;
47
+ this._defaultDayAlpha = undefined;
48
+ this._defaultBrightness = undefined;
49
+ this._defaultContrast = undefined;
50
+ this._defaultHue = undefined;
51
+ this._defaultSaturation = undefined;
52
+ this._defaultGamma = undefined;
53
+ this._defaultMinificationFilter = undefined;
54
+ this._defaultMagnificationFilter = undefined;
128
55
  }
129
56
 
130
57
  Object.defineProperties(TileCoordinatesImageryProvider.prototype, {
@@ -141,8 +68,7 @@ Object.defineProperties(TileCoordinatesImageryProvider.prototype, {
141
68
  },
142
69
 
143
70
  /**
144
- * Gets the width of each tile, in pixels. This function should
145
- * not be called before {@link TileCoordinatesImageryProvider#ready} returns true.
71
+ * Gets the width of each tile, in pixels.
146
72
  * @memberof TileCoordinatesImageryProvider.prototype
147
73
  * @type {number}
148
74
  * @readonly
@@ -154,8 +80,7 @@ Object.defineProperties(TileCoordinatesImageryProvider.prototype, {
154
80
  },
155
81
 
156
82
  /**
157
- * Gets the height of each tile, in pixels. This function should
158
- * not be called before {@link TileCoordinatesImageryProvider#ready} returns true.
83
+ * Gets the height of each tile, in pixels.
159
84
  * @memberof TileCoordinatesImageryProvider.prototype
160
85
  * @type {number}
161
86
  * @readonly
@@ -167,8 +92,7 @@ Object.defineProperties(TileCoordinatesImageryProvider.prototype, {
167
92
  },
168
93
 
169
94
  /**
170
- * Gets the maximum level-of-detail that can be requested. This function should
171
- * not be called before {@link TileCoordinatesImageryProvider#ready} returns true.
95
+ * Gets the maximum level-of-detail that can be requested.
172
96
  * @memberof TileCoordinatesImageryProvider.prototype
173
97
  * @type {number|undefined}
174
98
  * @readonly
@@ -180,8 +104,7 @@ Object.defineProperties(TileCoordinatesImageryProvider.prototype, {
180
104
  },
181
105
 
182
106
  /**
183
- * Gets the minimum level-of-detail that can be requested. This function should
184
- * not be called before {@link TileCoordinatesImageryProvider#ready} returns true.
107
+ * Gets the minimum level-of-detail that can be requested.
185
108
  * @memberof TileCoordinatesImageryProvider.prototype
186
109
  * @type {number}
187
110
  * @readonly
@@ -193,8 +116,7 @@ Object.defineProperties(TileCoordinatesImageryProvider.prototype, {
193
116
  },
194
117
 
195
118
  /**
196
- * Gets the tiling scheme used by this provider. This function should
197
- * not be called before {@link TileCoordinatesImageryProvider#ready} returns true.
119
+ * Gets the tiling scheme used by this provider.
198
120
  * @memberof TileCoordinatesImageryProvider.prototype
199
121
  * @type {TilingScheme}
200
122
  * @readonly
@@ -206,8 +128,7 @@ Object.defineProperties(TileCoordinatesImageryProvider.prototype, {
206
128
  },
207
129
 
208
130
  /**
209
- * Gets the rectangle, in radians, of the imagery provided by this instance. This function should
210
- * not be called before {@link TileCoordinatesImageryProvider#ready} returns true.
131
+ * Gets the rectangle, in radians, of the imagery provided by this instance.
211
132
  * @memberof TileCoordinatesImageryProvider.prototype
212
133
  * @type {Rectangle}
213
134
  * @readonly
@@ -221,8 +142,7 @@ Object.defineProperties(TileCoordinatesImageryProvider.prototype, {
221
142
  /**
222
143
  * Gets the tile discard policy. If not undefined, the discard policy is responsible
223
144
  * for filtering out "missing" tiles via its shouldDiscardImage function. If this function
224
- * returns undefined, no tiles are filtered. This function should
225
- * not be called before {@link TileCoordinatesImageryProvider#ready} returns true.
145
+ * returns undefined, no tiles are filtered.
226
146
  * @memberof TileCoordinatesImageryProvider.prototype
227
147
  * @type {TileDiscardPolicy}
228
148
  * @readonly
@@ -252,9 +172,14 @@ Object.defineProperties(TileCoordinatesImageryProvider.prototype, {
252
172
  * @memberof TileCoordinatesImageryProvider.prototype
253
173
  * @type {boolean}
254
174
  * @readonly
175
+ * @deprecated
255
176
  */
256
177
  ready: {
257
178
  get: function () {
179
+ deprecationWarning(
180
+ "TileCoordinatesImageryProvider.ready",
181
+ "TileCoordinatesImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."
182
+ );
258
183
  return true;
259
184
  },
260
185
  },
@@ -264,16 +189,21 @@ Object.defineProperties(TileCoordinatesImageryProvider.prototype, {
264
189
  * @memberof TileCoordinatesImageryProvider.prototype
265
190
  * @type {Promise<boolean>}
266
191
  * @readonly
192
+ * @deprecated
267
193
  */
268
194
  readyPromise: {
269
195
  get: function () {
196
+ deprecationWarning(
197
+ "TileCoordinatesImageryProvider.readyPromise",
198
+ "TileCoordinatesImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."
199
+ );
270
200
  return this._readyPromise;
271
201
  },
272
202
  },
273
203
 
274
204
  /**
275
205
  * Gets the credit to display when this imagery provider is active. Typically this is used to credit
276
- * the source of the imagery. This function should not be called before {@link TileCoordinatesImageryProvider#ready} returns true.
206
+ * the source of the imagery.
277
207
  * @memberof TileCoordinatesImageryProvider.prototype
278
208
  * @type {Credit}
279
209
  * @readonly
@@ -299,6 +229,242 @@ Object.defineProperties(TileCoordinatesImageryProvider.prototype, {
299
229
  return true;
300
230
  },
301
231
  },
232
+
233
+ /**
234
+ * The default alpha blending value of this provider, with 0.0 representing fully transparent and
235
+ * 1.0 representing fully opaque.
236
+ * @memberof TileCoordinatesImageryProvider.prototype
237
+ * @type {Number|undefined}
238
+ * @deprecated
239
+ */
240
+ defaultAlpha: {
241
+ get: function () {
242
+ deprecationWarning(
243
+ "TileCoordinatesImageryProvider.defaultAlpha",
244
+ "TileCoordinatesImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."
245
+ );
246
+ return this._defaultAlpha;
247
+ },
248
+ set: function (value) {
249
+ deprecationWarning(
250
+ "TileCoordinatesImageryProvider.defaultAlpha",
251
+ "TileCoordinatesImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."
252
+ );
253
+ this._defaultAlpha = value;
254
+ },
255
+ },
256
+
257
+ /**
258
+ * The default alpha blending value on the night side of the globe of this provider, with 0.0 representing fully transparent and
259
+ * 1.0 representing fully opaque.
260
+ * @memberof TileCoordinatesImageryProvider.prototype
261
+ * @type {Number|undefined}
262
+ * @deprecated
263
+ */
264
+ defaultNightAlpha: {
265
+ get: function () {
266
+ deprecationWarning(
267
+ "TileCoordinatesImageryProvider.defaultNightAlpha",
268
+ "TileCoordinatesImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."
269
+ );
270
+ return this._defaultNightAlpha;
271
+ },
272
+ set: function (value) {
273
+ deprecationWarning(
274
+ "TileCoordinatesImageryProvider.defaultNightAlpha",
275
+ "TileCoordinatesImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."
276
+ );
277
+ this._defaultNightAlpha = value;
278
+ },
279
+ },
280
+
281
+ /**
282
+ * The default alpha blending value on the day side of the globe of this provider, with 0.0 representing fully transparent and
283
+ * 1.0 representing fully opaque.
284
+ * @memberof TileCoordinatesImageryProvider.prototype
285
+ * @type {Number|undefined}
286
+ * @deprecated
287
+ */
288
+ defaultDayAlpha: {
289
+ get: function () {
290
+ deprecationWarning(
291
+ "TileCoordinatesImageryProvider.defaultDayAlpha",
292
+ "TileCoordinatesImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."
293
+ );
294
+ return this._defaultDayAlpha;
295
+ },
296
+ set: function (value) {
297
+ deprecationWarning(
298
+ "TileCoordinatesImageryProvider.defaultDayAlpha",
299
+ "TileCoordinatesImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."
300
+ );
301
+ this._defaultDayAlpha = value;
302
+ },
303
+ },
304
+
305
+ /**
306
+ * The default brightness of this provider. 1.0 uses the unmodified imagery color. Less than 1.0
307
+ * makes the imagery darker while greater than 1.0 makes it brighter.
308
+ * @memberof TileCoordinatesImageryProvider.prototype
309
+ * @type {Number|undefined}
310
+ * @deprecated
311
+ */
312
+ defaultBrightness: {
313
+ get: function () {
314
+ deprecationWarning(
315
+ "TileCoordinatesImageryProvider.defaultBrightness",
316
+ "TileCoordinatesImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."
317
+ );
318
+ return this._defaultBrightness;
319
+ },
320
+ set: function (value) {
321
+ deprecationWarning(
322
+ "TileCoordinatesImageryProvider.defaultBrightness",
323
+ "TileCoordinatesImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."
324
+ );
325
+ this._defaultBrightness = value;
326
+ },
327
+ },
328
+
329
+ /**
330
+ * The default contrast of this provider. 1.0 uses the unmodified imagery color. Less than 1.0 reduces
331
+ * the contrast while greater than 1.0 increases it.
332
+ * @memberof TileCoordinatesImageryProvider.prototype
333
+ * @type {Number|undefined}
334
+ * @deprecated
335
+ */
336
+ defaultContrast: {
337
+ get: function () {
338
+ deprecationWarning(
339
+ "TileCoordinatesImageryProvider.defaultContrast",
340
+ "TileCoordinatesImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."
341
+ );
342
+ return this._defaultContrast;
343
+ },
344
+ set: function (value) {
345
+ deprecationWarning(
346
+ "TileCoordinatesImageryProvider.defaultContrast",
347
+ "TileCoordinatesImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."
348
+ );
349
+ this._defaultContrast = value;
350
+ },
351
+ },
352
+
353
+ /**
354
+ * The default hue of this provider in radians. 0.0 uses the unmodified imagery color.
355
+ * @memberof TileCoordinatesImageryProvider.prototype
356
+ * @type {Number|undefined}
357
+ * @deprecated
358
+ */
359
+ defaultHue: {
360
+ get: function () {
361
+ deprecationWarning(
362
+ "TileCoordinatesImageryProvider.defaultHue",
363
+ "TileCoordinatesImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."
364
+ );
365
+ return this._defaultHue;
366
+ },
367
+ set: function (value) {
368
+ deprecationWarning(
369
+ "TileCoordinatesImageryProvider.defaultHue",
370
+ "TileCoordinatesImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."
371
+ );
372
+ this._defaultHue = value;
373
+ },
374
+ },
375
+
376
+ /**
377
+ * The default saturation of this provider. 1.0 uses the unmodified imagery color. Less than 1.0 reduces the
378
+ * saturation while greater than 1.0 increases it.
379
+ * @memberof TileCoordinatesImageryProvider.prototype
380
+ * @type {Number|undefined}
381
+ * @deprecated
382
+ */
383
+ defaultSaturation: {
384
+ get: function () {
385
+ deprecationWarning(
386
+ "TileCoordinatesImageryProvider.defaultSaturation",
387
+ "TileCoordinatesImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."
388
+ );
389
+ return this._defaultSaturation;
390
+ },
391
+ set: function (value) {
392
+ deprecationWarning(
393
+ "TileCoordinatesImageryProvider.defaultSaturation",
394
+ "TileCoordinatesImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."
395
+ );
396
+ this._defaultSaturation = value;
397
+ },
398
+ },
399
+
400
+ /**
401
+ * The default gamma correction to apply to this provider. 1.0 uses the unmodified imagery color.
402
+ * @memberof TileCoordinatesImageryProvider.prototype
403
+ * @type {Number|undefined}
404
+ * @deprecated
405
+ */
406
+ defaultGamma: {
407
+ get: function () {
408
+ deprecationWarning(
409
+ "TileCoordinatesImageryProvider.defaultGamma",
410
+ "TileCoordinatesImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."
411
+ );
412
+ return this._defaultGamma;
413
+ },
414
+ set: function (value) {
415
+ deprecationWarning(
416
+ "TileCoordinatesImageryProvider.defaultGamma",
417
+ "TileCoordinatesImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."
418
+ );
419
+ this._defaultGamma = value;
420
+ },
421
+ },
422
+
423
+ /**
424
+ * The default texture minification filter to apply to this provider.
425
+ * @memberof TileCoordinatesImageryProvider.prototype
426
+ * @type {TextureMinificationFilter}
427
+ * @deprecated
428
+ */
429
+ defaultMinificationFilter: {
430
+ get: function () {
431
+ deprecationWarning(
432
+ "TileCoordinatesImageryProvider.defaultMinificationFilter",
433
+ "TileCoordinatesImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."
434
+ );
435
+ return this._defaultMinificationFilter;
436
+ },
437
+ set: function (value) {
438
+ deprecationWarning(
439
+ "TileCoordinatesImageryProvider.defaultMinificationFilter",
440
+ "TileCoordinatesImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."
441
+ );
442
+ this._defaultMinificationFilter = value;
443
+ },
444
+ },
445
+
446
+ /**
447
+ * The default texture magnification filter to apply to this provider.
448
+ * @memberof TileCoordinatesImageryProvider.prototype
449
+ * @type {TextureMagnificationFilter}
450
+ * @deprecated
451
+ */
452
+ defaultMagnificationFilter: {
453
+ get: function () {
454
+ deprecationWarning(
455
+ "TileCoordinatesImageryProvider.defaultMagnificationFilter",
456
+ "TileCoordinatesImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."
457
+ );
458
+ return this._defaultMagnificationFilter;
459
+ },
460
+ set: function (value) {
461
+ deprecationWarning(
462
+ "TileCoordinatesImageryProvider.defaultMagnificationFilter",
463
+ "TileCoordinatesImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."
464
+ );
465
+ this._defaultMagnificationFilter = value;
466
+ },
467
+ },
302
468
  });
303
469
 
304
470
  /**
@@ -308,8 +474,6 @@ Object.defineProperties(TileCoordinatesImageryProvider.prototype, {
308
474
  * @param {number} y The tile Y coordinate.
309
475
  * @param {number} level The tile level;
310
476
  * @returns {Credit[]} The credits to be displayed when the tile is displayed.
311
- *
312
- * @exception {DeveloperError} <code>getTileCredits</code> must not be called before the imagery provider is ready.
313
477
  */
314
478
  TileCoordinatesImageryProvider.prototype.getTileCredits = function (
315
479
  x,
@@ -320,8 +484,7 @@ TileCoordinatesImageryProvider.prototype.getTileCredits = function (
320
484
  };
321
485
 
322
486
  /**
323
- * Requests the image for a given tile. This function should
324
- * not be called before {@link TileCoordinatesImageryProvider#ready} returns true.
487
+ * Requests the image for a given tile.
325
488
  *
326
489
  * @param {number} x The tile X coordinate.
327
490
  * @param {number} y The tile Y coordinate.