@cesium/engine 2.1.0 → 2.2.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.
- package/Build/Workers/{AxisAlignedBoundingBox-a6f9f0e5.js → AxisAlignedBoundingBox-379015ef.js} +1 -1
- package/Build/Workers/{BoundingRectangle-b0a68595.js → BoundingRectangle-57f2b24f.js} +1 -1
- package/Build/Workers/{BoxGeometry-baedd794.js → BoxGeometry-ecabfc78.js} +1 -1
- package/Build/Workers/{Color-f85df1be.js → Color-14d1a36d.js} +1 -1
- package/Build/Workers/{CoplanarPolygonGeometryLibrary-30516950.js → CoplanarPolygonGeometryLibrary-048c3c14.js} +1 -1
- package/Build/Workers/{CorridorGeometryLibrary-5d5d3b3a.js → CorridorGeometryLibrary-520c8619.js} +1 -1
- package/Build/Workers/{CylinderGeometry-d899ae26.js → CylinderGeometry-119068b8.js} +1 -1
- package/Build/Workers/{EllipseGeometry-a49f8449.js → EllipseGeometry-2dfc3523.js} +1 -1
- package/Build/Workers/{EllipseGeometryLibrary-cba7edde.js → EllipseGeometryLibrary-0a1e0170.js} +1 -1
- package/Build/Workers/{EllipseOutlineGeometry-8095c8cb.js → EllipseOutlineGeometry-c5251669.js} +1 -1
- package/Build/Workers/{EllipsoidGeometry-ed93f571.js → EllipsoidGeometry-d10a5221.js} +1 -1
- package/Build/Workers/{EllipsoidOutlineGeometry-e4854854.js → EllipsoidOutlineGeometry-7039a0ae.js} +1 -1
- package/Build/Workers/{EllipsoidTangentPlane-7ae1aa9a.js → EllipsoidTangentPlane-857186be.js} +1 -1
- package/Build/Workers/{FrustumGeometry-b62db3e3.js → FrustumGeometry-400fa1b7.js} +2 -2
- package/Build/Workers/{GeometryAttribute-780af4fa.js → GeometryAttribute-7a2de5c6.js} +1 -1
- package/Build/Workers/{GeometryPipeline-36b61c99.js → GeometryPipeline-916636fa.js} +1 -1
- package/Build/Workers/{IntersectionTests-e889fcf0.js → IntersectionTests-b4d02d4d.js} +1 -1
- package/Build/Workers/{OrientedBoundingBox-43478ac8.js → OrientedBoundingBox-96fe1752.js} +5 -3
- package/Build/Workers/{PolygonGeometryLibrary-38a98276.js → PolygonGeometryLibrary-931f1ec6.js} +1 -1
- package/Build/Workers/{PolygonPipeline-d31ff61c.js → PolygonPipeline-32fc92cc.js} +1 -1
- package/Build/Workers/{PolylinePipeline-30e4cec9.js → PolylinePipeline-6d5c63e5.js} +1 -1
- package/Build/Workers/{PolylineVolumeGeometryLibrary-90551d26.js → PolylineVolumeGeometryLibrary-f068c1fb.js} +1 -1
- package/Build/Workers/{PrimitivePipeline-558d9cb0.js → PrimitivePipeline-879f996a.js} +1 -1
- package/Build/Workers/{RectangleGeometryLibrary-815c68df.js → RectangleGeometryLibrary-2d6f36f3.js} +1 -1
- package/Build/Workers/{TerrainEncoding-341ead52.js → TerrainEncoding-82882059.js} +1 -1
- package/Build/Workers/{Transforms-9e9df299.js → Transforms-9052372a.js} +6 -5
- package/Build/Workers/{WallGeometryLibrary-ccf90976.js → WallGeometryLibrary-db7a64fb.js} +1 -1
- package/Build/Workers/cesiumWorkerBootstrapper.js +1 -1
- package/Build/Workers/combineGeometry.js +1 -1
- package/Build/Workers/createBoxGeometry.js +1 -1
- package/Build/Workers/createBoxOutlineGeometry.js +1 -1
- package/Build/Workers/createCircleGeometry.js +1 -1
- package/Build/Workers/createCircleOutlineGeometry.js +1 -1
- package/Build/Workers/createCoplanarPolygonGeometry.js +1 -1
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +1 -1
- package/Build/Workers/createCorridorGeometry.js +1 -1
- package/Build/Workers/createCorridorOutlineGeometry.js +1 -1
- package/Build/Workers/createCylinderGeometry.js +1 -1
- package/Build/Workers/createCylinderOutlineGeometry.js +1 -1
- package/Build/Workers/createEllipseGeometry.js +1 -1
- package/Build/Workers/createEllipseOutlineGeometry.js +1 -1
- package/Build/Workers/createEllipsoidGeometry.js +1 -1
- package/Build/Workers/createEllipsoidOutlineGeometry.js +1 -1
- package/Build/Workers/createFrustumGeometry.js +1 -1
- package/Build/Workers/createFrustumOutlineGeometry.js +1 -1
- package/Build/Workers/createGeometry.js +1 -1
- package/Build/Workers/createGroundPolylineGeometry.js +1 -1
- package/Build/Workers/createPlaneGeometry.js +1 -1
- package/Build/Workers/createPlaneOutlineGeometry.js +1 -1
- package/Build/Workers/createPolygonGeometry.js +1 -1
- package/Build/Workers/createPolygonOutlineGeometry.js +1 -1
- package/Build/Workers/createPolylineGeometry.js +1 -1
- package/Build/Workers/createPolylineVolumeGeometry.js +1 -1
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +1 -1
- package/Build/Workers/createRectangleGeometry.js +1 -1
- package/Build/Workers/createRectangleOutlineGeometry.js +1 -1
- package/Build/Workers/createSimplePolylineGeometry.js +1 -1
- package/Build/Workers/createSphereGeometry.js +1 -1
- package/Build/Workers/createSphereOutlineGeometry.js +1 -1
- package/Build/Workers/createVectorTileGeometries.js +1 -1
- package/Build/Workers/createVectorTilePolygons.js +1 -1
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +1 -1
- package/Build/Workers/createVerticesFromHeightmap.js +1 -1
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +10 -15
- package/Build/Workers/createWallGeometry.js +1 -1
- package/Build/Workers/createWallOutlineGeometry.js +1 -1
- package/Build/Workers/package.js +1 -1
- package/Build/Workers/transferTypedArrayTest.js +1 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +1 -1
- package/Source/Core/ArcGISTiledElevationTerrainProvider.js +291 -191
- package/Source/Core/CesiumTerrainProvider.js +571 -434
- package/Source/Core/CustomHeightmapTerrainProvider.js +12 -0
- package/Source/Core/EllipsoidTerrainProvider.js +17 -10
- package/Source/Core/FrustumGeometry.js +1 -1
- package/Source/Core/GoogleEarthEnterpriseMetadata.js +86 -34
- package/Source/Core/GoogleEarthEnterpriseTerrainProvider.js +119 -82
- package/Source/Core/Ion.js +1 -1
- package/Source/Core/IonResource.js +14 -3
- package/Source/Core/OrientedBoundingBox.js +4 -2
- package/Source/Core/RequestScheduler.js +1 -1
- package/Source/Core/Resource.js +2 -2
- package/Source/Core/TerrainProvider.js +9 -14
- package/Source/Core/TileProviderError.js +8 -8
- package/Source/Core/VRTheWorldTerrainProvider.js +193 -124
- package/Source/Core/buildModuleUrl.js +4 -3
- package/Source/Core/createWorldTerrain.js +20 -2
- package/Source/Core/createWorldTerrainAsync.js +48 -0
- package/Source/Core/sampleTerrain.js +9 -10
- package/Source/Core/sampleTerrainMostDetailed.js +66 -72
- package/Source/DataSources/Cesium3DTilesetVisualizer.js +37 -26
- package/Source/DataSources/Entity.js +6 -1
- package/Source/DataSources/ModelVisualizer.js +99 -31
- package/Source/DataSources/PolygonGraphics.js +1 -1
- package/Source/Scene/ArcGisMapServerImageryProvider.js +552 -376
- package/Source/Scene/BingMapsImageryProvider.js +511 -305
- package/Source/Scene/BufferLoader.js +29 -34
- package/Source/Scene/Cesium3DTile.js +388 -251
- package/Source/Scene/Cesium3DTileBatchTable.js +2 -2
- package/Source/Scene/Cesium3DTileContent.js +16 -0
- package/Source/Scene/Cesium3DTileContentFactory.js +4 -4
- package/Source/Scene/Cesium3DTilePass.js +8 -11
- package/Source/Scene/Cesium3DTileStyleEngine.js +1 -1
- package/Source/Scene/Cesium3DTilesVoxelProvider.js +225 -117
- package/Source/Scene/Cesium3DTileset.js +755 -481
- package/Source/Scene/Cesium3DTilesetBaseTraversal.js +301 -0
- package/Source/Scene/Cesium3DTilesetMostDetailedTraversal.js +33 -46
- package/Source/Scene/Cesium3DTilesetSkipTraversal.js +421 -0
- package/Source/Scene/Cesium3DTilesetTraversal.js +219 -671
- package/Source/Scene/ClassificationPrimitive.js +7 -0
- package/Source/Scene/Composite3DTileContent.js +69 -26
- package/Source/Scene/CreditDisplay.js +20 -4
- package/Source/Scene/DepthPlane.js +1 -1
- package/Source/Scene/Empty3DTileContent.js +31 -1
- package/Source/Scene/Geometry3DTileContent.js +47 -7
- package/Source/Scene/Globe.js +5 -1
- package/Source/Scene/GlobeSurfaceTile.js +2 -1
- package/Source/Scene/GlobeSurfaceTileProvider.js +50 -27
- package/Source/Scene/GltfBufferViewLoader.js +47 -91
- package/Source/Scene/GltfDracoLoader.js +110 -112
- package/Source/Scene/GltfImageLoader.js +71 -78
- package/Source/Scene/GltfIndexBufferLoader.js +108 -121
- package/Source/Scene/GltfJsonLoader.js +75 -74
- package/Source/Scene/GltfLoader.js +392 -280
- package/Source/Scene/GltfStructuralMetadataLoader.js +109 -110
- package/Source/Scene/GltfTextureLoader.js +97 -96
- package/Source/Scene/GltfVertexBufferLoader.js +128 -133
- package/Source/Scene/GoogleEarthEnterpriseImageryProvider.js +353 -225
- package/Source/Scene/GoogleEarthEnterpriseMapsProvider.js +491 -331
- package/Source/Scene/GridImageryProvider.js +267 -104
- package/Source/Scene/GroundPolylinePrimitive.js +12 -1
- package/Source/Scene/GroundPrimitive.js +8 -1
- package/Source/Scene/I3SDataProvider.js +214 -113
- package/Source/Scene/I3SFeature.js +7 -6
- package/Source/Scene/I3SLayer.js +26 -37
- package/Source/Scene/I3SNode.js +59 -66
- package/Source/Scene/Imagery.js +6 -1
- package/Source/Scene/ImageryLayer.js +299 -48
- package/Source/Scene/ImageryLayerCollection.js +26 -0
- package/Source/Scene/ImageryProvider.js +129 -111
- package/Source/Scene/Implicit3DTileContent.js +72 -23
- package/Source/Scene/ImplicitSubtree.js +66 -45
- package/Source/Scene/IonImageryProvider.js +471 -264
- package/Source/Scene/MapboxImageryProvider.js +272 -112
- package/Source/Scene/MapboxStyleImageryProvider.js +270 -111
- package/Source/Scene/MetadataSchemaLoader.js +26 -36
- package/Source/Scene/Model/B3dmLoader.js +42 -46
- package/Source/Scene/Model/GeoJsonLoader.js +8 -32
- package/Source/Scene/Model/I3dmLoader.js +48 -74
- package/Source/Scene/Model/Model.js +470 -132
- package/Source/Scene/Model/Model3DTileContent.js +83 -31
- package/Source/Scene/Model/ModelAnimationCollection.js +3 -3
- package/Source/Scene/Model/ModelDrawCommand.js +15 -26
- package/Source/Scene/Model/ModelUtility.js +16 -16
- package/Source/Scene/Model/PntsLoader.js +27 -32
- package/Source/Scene/Multiple3DTileContent.js +134 -115
- package/Source/Scene/PointCloud.js +11 -19
- package/Source/Scene/Primitive.js +20 -0
- package/Source/Scene/QuadtreePrimitive.js +2 -0
- package/Source/Scene/QuadtreeTileProvider.js +4 -8
- package/Source/Scene/ResourceCache.js +47 -105
- package/Source/Scene/ResourceCacheStatistics.js +24 -58
- package/Source/Scene/ResourceLoader.js +5 -17
- package/Source/Scene/ResourceLoaderState.js +12 -4
- package/Source/Scene/Scene.js +65 -0
- package/Source/Scene/ScreenSpaceCameraController.js +1 -1
- package/Source/Scene/SingleTileImageryProvider.js +382 -209
- package/Source/Scene/Terrain.js +196 -0
- package/Source/Scene/TileCoordinatesImageryProvider.js +267 -104
- package/Source/Scene/TileMapServiceImageryProvider.js +177 -85
- package/Source/Scene/Tileset3DTileContent.js +47 -5
- package/Source/Scene/TimeDynamicPointCloud.js +15 -2
- package/Source/Scene/UrlTemplateImageryProvider.js +343 -215
- package/Source/Scene/Vector3DTileClampedPolylines.js +96 -84
- package/Source/Scene/Vector3DTileContent.js +47 -22
- package/Source/Scene/Vector3DTileGeometry.js +57 -52
- package/Source/Scene/Vector3DTilePoints.js +72 -68
- package/Source/Scene/Vector3DTilePolygons.js +118 -117
- package/Source/Scene/Vector3DTilePolylines.js +86 -82
- package/Source/Scene/Vector3DTilePrimitive.js +0 -1
- package/Source/Scene/VoxelContent.js +61 -63
- package/Source/Scene/VoxelPrimitive.js +39 -91
- package/Source/Scene/VoxelProvider.js +2 -2
- package/Source/Scene/WebMapServiceImageryProvider.js +272 -111
- package/Source/Scene/WebMapTileServiceImageryProvider.js +270 -107
- package/Source/Scene/computeFlyToLocationForRectangle.js +33 -37
- package/Source/Scene/createOsmBuildings.js +6 -0
- package/Source/Scene/createOsmBuildingsAsync.js +82 -0
- package/Source/Scene/createWorldImagery.js +14 -5
- package/Source/Scene/createWorldImageryAsync.js +39 -0
- package/Source/Widget/CesiumWidget.js +55 -27
- package/index.d.ts +2158 -1395
- package/index.js +58 -51
- package/package.json +1 -1
|
@@ -51,59 +51,77 @@ import Cartographic from "../Core/Cartographic.js";
|
|
|
51
51
|
import Check from "../Core/Check.js";
|
|
52
52
|
import defaultValue from "../Core/defaultValue.js";
|
|
53
53
|
import defined from "../Core/defined.js";
|
|
54
|
+
import deprecationWarning from "../Core/deprecationWarning.js";
|
|
54
55
|
import destroyObject from "../Core/destroyObject.js";
|
|
55
|
-
import DeveloperError from "../Core/DeveloperError.js";
|
|
56
56
|
import HeightmapEncoding from "../Core/HeightmapEncoding.js";
|
|
57
57
|
import Resource from "../Core/Resource.js";
|
|
58
|
+
import RuntimeError from "../Core/RuntimeError.js";
|
|
58
59
|
import TaskProcessor from "../Core/TaskProcessor.js";
|
|
59
60
|
import WebMercatorProjection from "../Core/WebMercatorProjection.js";
|
|
60
61
|
import I3SLayer from "./I3SLayer.js";
|
|
61
62
|
import Lerc from "lerc";
|
|
62
63
|
import Rectangle from "../Core/Rectangle.js";
|
|
63
64
|
|
|
65
|
+
/**
|
|
66
|
+
* @typedef {Object} I3SDataProvider.ConstructorOptions
|
|
67
|
+
*
|
|
68
|
+
* Initialization options for the I3SDataProvider constructor
|
|
69
|
+
*
|
|
70
|
+
* @property {Resource|string} [url] The url of the I3S dataset. Deprecated.
|
|
71
|
+
* @property {string} [name] The name of the I3S dataset.
|
|
72
|
+
* @property {boolean} [show=true] Determines if the dataset will be shown.
|
|
73
|
+
* @property {ArcGISTiledElevationTerrainProvider|Promise<ArcGISTiledElevationTerrainProvider>} [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.
|
|
74
|
+
* @property {boolean} [traceFetches=false] Debug option. When true, log a message whenever an I3S tile is fetched.
|
|
75
|
+
* @property {Cesium3DTileset.ConstructorOptions} [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.
|
|
76
|
+
*/
|
|
77
|
+
|
|
64
78
|
/**
|
|
65
79
|
* An I3SDataProvider is the main public class for I3S support. The url option
|
|
66
80
|
* should return a scene object. Currently supported I3S versions are 1.6 and
|
|
67
81
|
* 1.7/1.8 (OGC I3S 1.2). I3SFeature and I3SNode classes implement the
|
|
68
82
|
* Object Model for I3S entities, with public interfaces.
|
|
69
83
|
*
|
|
84
|
+
* <div class="notice">
|
|
85
|
+
* This object is normally not instantiated directly, use {@link I3SDataProvider.fromUrl}.
|
|
86
|
+
* </div>
|
|
87
|
+
*
|
|
70
88
|
* @alias I3SDataProvider
|
|
71
89
|
* @constructor
|
|
72
90
|
*
|
|
73
|
-
* @param {
|
|
74
|
-
*
|
|
75
|
-
* @
|
|
76
|
-
* @
|
|
77
|
-
* @param {ArcGISTiledElevationTerrainProvider} [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.
|
|
78
|
-
* @param {boolean} [options.traceFetches=false] Debug option. When true, log a message whenever an I3S tile is fetched.
|
|
79
|
-
* @param {object} [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.
|
|
91
|
+
* @param {I3SDataProvider.ConstructorOptions} options An object describing initialization options
|
|
92
|
+
*
|
|
93
|
+
* @see I3SDataProvider.fromUrl
|
|
94
|
+
* @see ArcGISTiledElevationTerrainProvider
|
|
80
95
|
*
|
|
81
96
|
* @example
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
*
|
|
97
|
+
* try {
|
|
98
|
+
* const i3sData = await I3SDataProvider.fromUrl(
|
|
99
|
+
* "https://tiles.arcgis.com/tiles/z2tnIkrLQ2BRzr6P/arcgis/rest/services/Frankfurt2017_vi3s_18/SceneServer/layers/0"
|
|
100
|
+
* );
|
|
101
|
+
* viewer.scene.primitives.add(i3sData);
|
|
102
|
+
* } catch (error) {
|
|
103
|
+
* console.log(`There was an error creating the I3S Data Provider: ${error}`);
|
|
104
|
+
* }
|
|
86
105
|
*
|
|
87
106
|
* @example
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
107
|
+
* try {
|
|
108
|
+
* const geoidService = await Cesium.ArcGISTiledElevationTerrainProvider.fromUrl(
|
|
109
|
+
* "https://tiles.arcgis.com/tiles/z2tnIkrLQ2BRzr6P/arcgis/rest/services/EGM2008/ImageServer"
|
|
110
|
+
* );
|
|
111
|
+
* const i3sData = await I3SDataProvider.fromUrl(
|
|
112
|
+
* "https://tiles.arcgis.com/tiles/z2tnIkrLQ2BRzr6P/arcgis/rest/services/Frankfurt2017_vi3s_18/SceneServer/layers/0", {
|
|
113
|
+
* geoidTiledTerrainProvider: geoidService
|
|
114
|
+
* });
|
|
115
|
+
* viewer.scene.primitives.add(i3sData);
|
|
116
|
+
* } catch (error) {
|
|
117
|
+
* console.log(`There was an error creating the I3S Data Provider: ${error}`);
|
|
118
|
+
* }
|
|
96
119
|
*/
|
|
97
120
|
function I3SDataProvider(options) {
|
|
98
121
|
options = defaultValue(options, defaultValue.EMPTY_OBJECT);
|
|
99
122
|
|
|
100
|
-
//>>includeStart('debug', pragmas.debug);
|
|
101
|
-
Check.defined("options.url", options.url);
|
|
102
|
-
//>>includeEnd('debug');
|
|
103
|
-
|
|
104
123
|
// All public configuration is defined as ES5 properties
|
|
105
124
|
// These are just the "private" variables and their defaults.
|
|
106
|
-
this._resource = Resource.createIfNeeded(options.url);
|
|
107
125
|
this._name = options.name;
|
|
108
126
|
this._show = defaultValue(options.show, true);
|
|
109
127
|
this._geoidTiledTerrainProvider = options.geoidTiledTerrainProvider;
|
|
@@ -117,13 +135,22 @@ function I3SDataProvider(options) {
|
|
|
117
135
|
this._layers = [];
|
|
118
136
|
this._data = undefined;
|
|
119
137
|
this._extent = undefined;
|
|
120
|
-
this.
|
|
138
|
+
this._geoidDataPromise = undefined;
|
|
121
139
|
this._geoidDataList = undefined;
|
|
122
140
|
this._decoderTaskProcessor = undefined;
|
|
123
|
-
this.
|
|
124
|
-
|
|
141
|
+
this._taskProcessorReadyPromise = undefined;
|
|
142
|
+
|
|
143
|
+
if (defined(options.url)) {
|
|
144
|
+
deprecationWarning(
|
|
145
|
+
"I3SDataProvider options.url",
|
|
146
|
+
"I3SDataProvider constructor parameter options.url was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use I3SDataProvider.fromUrl instead."
|
|
147
|
+
);
|
|
148
|
+
this._readyPromise = undefined;
|
|
149
|
+
this._ready = false;
|
|
125
150
|
|
|
126
|
-
|
|
151
|
+
this._resource = Resource.createIfNeeded(options.url);
|
|
152
|
+
this._load();
|
|
153
|
+
}
|
|
127
154
|
}
|
|
128
155
|
|
|
129
156
|
Object.defineProperties(I3SDataProvider.prototype, {
|
|
@@ -200,14 +227,6 @@ Object.defineProperties(I3SDataProvider.prototype, {
|
|
|
200
227
|
*/
|
|
201
228
|
layers: {
|
|
202
229
|
get: function () {
|
|
203
|
-
//>>includeStart('debug', pragmas.debug);
|
|
204
|
-
if (!this.ready) {
|
|
205
|
-
throw new DeveloperError(
|
|
206
|
-
"The dataset is not loaded. Use I3SDataProvider.readyPromise or wait for I3SDataProvider.ready to be true."
|
|
207
|
-
);
|
|
208
|
-
}
|
|
209
|
-
//>>includeEnd('debug');
|
|
210
|
-
|
|
211
230
|
return this._layers;
|
|
212
231
|
},
|
|
213
232
|
},
|
|
@@ -220,14 +239,6 @@ Object.defineProperties(I3SDataProvider.prototype, {
|
|
|
220
239
|
*/
|
|
221
240
|
data: {
|
|
222
241
|
get: function () {
|
|
223
|
-
//>>includeStart('debug', pragmas.debug);
|
|
224
|
-
if (!this.ready) {
|
|
225
|
-
throw new DeveloperError(
|
|
226
|
-
"The dataset is not loaded. Use I3SDataProvider.readyPromise or wait for I3SDataProvider.ready to be true."
|
|
227
|
-
);
|
|
228
|
-
}
|
|
229
|
-
//>>includeEnd('debug');
|
|
230
|
-
|
|
231
242
|
return this._data;
|
|
232
243
|
},
|
|
233
244
|
},
|
|
@@ -240,14 +251,6 @@ Object.defineProperties(I3SDataProvider.prototype, {
|
|
|
240
251
|
*/
|
|
241
252
|
extent: {
|
|
242
253
|
get: function () {
|
|
243
|
-
//>>includeStart('debug', pragmas.debug);
|
|
244
|
-
if (!this.ready) {
|
|
245
|
-
throw new DeveloperError(
|
|
246
|
-
"The dataset is not loaded. Use I3SDataProvider.readyPromise or wait for I3SDataProvider.ready to be true."
|
|
247
|
-
);
|
|
248
|
-
}
|
|
249
|
-
//>>includeEnd('debug');
|
|
250
|
-
|
|
251
254
|
return this._extent;
|
|
252
255
|
},
|
|
253
256
|
},
|
|
@@ -257,9 +260,14 @@ Object.defineProperties(I3SDataProvider.prototype, {
|
|
|
257
260
|
* @memberof I3SDataProvider.prototype
|
|
258
261
|
* @type {Promise<I3SDataProvider>}
|
|
259
262
|
* @readonly
|
|
263
|
+
* @deprecated
|
|
260
264
|
*/
|
|
261
265
|
readyPromise: {
|
|
262
266
|
get: function () {
|
|
267
|
+
deprecationWarning(
|
|
268
|
+
"I3SDataProvider.readyPromise",
|
|
269
|
+
"I3SDataProvider.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use I3SDataProvider.fromUrl instead."
|
|
270
|
+
);
|
|
263
271
|
return this._readyPromise;
|
|
264
272
|
},
|
|
265
273
|
},
|
|
@@ -270,9 +278,14 @@ Object.defineProperties(I3SDataProvider.prototype, {
|
|
|
270
278
|
* @memberof I3SDataProvider.prototype
|
|
271
279
|
* @type {boolean}
|
|
272
280
|
* @readonly
|
|
281
|
+
* @deprecated
|
|
273
282
|
*/
|
|
274
283
|
ready: {
|
|
275
284
|
get: function () {
|
|
285
|
+
deprecationWarning(
|
|
286
|
+
"I3SDataProvider.ready",
|
|
287
|
+
"I3SDataProvider.ready was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use I3SDataProvider.fromUrl instead."
|
|
288
|
+
);
|
|
276
289
|
return this._ready;
|
|
277
290
|
},
|
|
278
291
|
},
|
|
@@ -333,9 +346,7 @@ I3SDataProvider.prototype.isDestroyed = function () {
|
|
|
333
346
|
*/
|
|
334
347
|
I3SDataProvider.prototype.update = function (frameState) {
|
|
335
348
|
for (let i = 0; i < this._layers.length; i++) {
|
|
336
|
-
|
|
337
|
-
// when initially loading the tileset
|
|
338
|
-
if (defined(this._layers[i]._tileset) && this._layers[i]._tileset.ready) {
|
|
349
|
+
if (defined(this._layers[i]._tileset)) {
|
|
339
350
|
this._layers[i]._tileset.update(frameState);
|
|
340
351
|
}
|
|
341
352
|
}
|
|
@@ -346,7 +357,7 @@ I3SDataProvider.prototype.update = function (frameState) {
|
|
|
346
357
|
*/
|
|
347
358
|
I3SDataProvider.prototype.prePassesUpdate = function (frameState) {
|
|
348
359
|
for (let i = 0; i < this._layers.length; i++) {
|
|
349
|
-
if (defined(this._layers[i]._tileset)
|
|
360
|
+
if (defined(this._layers[i]._tileset)) {
|
|
350
361
|
this._layers[i]._tileset.prePassesUpdate(frameState);
|
|
351
362
|
}
|
|
352
363
|
}
|
|
@@ -357,7 +368,7 @@ I3SDataProvider.prototype.prePassesUpdate = function (frameState) {
|
|
|
357
368
|
*/
|
|
358
369
|
I3SDataProvider.prototype.postPassesUpdate = function (frameState) {
|
|
359
370
|
for (let i = 0; i < this._layers.length; i++) {
|
|
360
|
-
if (defined(this._layers[i]._tileset)
|
|
371
|
+
if (defined(this._layers[i]._tileset)) {
|
|
361
372
|
this._layers[i]._tileset.postPassesUpdate(frameState);
|
|
362
373
|
}
|
|
363
374
|
}
|
|
@@ -368,40 +379,113 @@ I3SDataProvider.prototype.postPassesUpdate = function (frameState) {
|
|
|
368
379
|
*/
|
|
369
380
|
I3SDataProvider.prototype.updateForPass = function (frameState, passState) {
|
|
370
381
|
for (let i = 0; i < this._layers.length; i++) {
|
|
371
|
-
if (defined(this._layers[i]._tileset)
|
|
382
|
+
if (defined(this._layers[i]._tileset)) {
|
|
372
383
|
this._layers[i]._tileset.updateForPass(frameState, passState);
|
|
373
384
|
}
|
|
374
385
|
}
|
|
375
386
|
};
|
|
376
387
|
|
|
388
|
+
/**
|
|
389
|
+
* Creates an I3SDataProvider. Currently supported I3S versions are 1.6 and
|
|
390
|
+
* 1.7/1.8 (OGC I3S 1.2).
|
|
391
|
+
*
|
|
392
|
+
* @param {string|Resource} url The url of the I3S dataset, which should return an I3S scene object
|
|
393
|
+
* @param {I3SDataProvider.ConstructorOptions} options An object describing initialization options
|
|
394
|
+
* @returns {Promise<I3SDataProvider>}
|
|
395
|
+
*
|
|
396
|
+
* @example
|
|
397
|
+
* try {
|
|
398
|
+
* const i3sData = await I3SDataProvider.fromUrl(
|
|
399
|
+
* "https://tiles.arcgis.com/tiles/z2tnIkrLQ2BRzr6P/arcgis/rest/services/Frankfurt2017_vi3s_18/SceneServer/layers/0"
|
|
400
|
+
* );
|
|
401
|
+
* viewer.scene.primitives.add(i3sData);
|
|
402
|
+
* } catch (error) {
|
|
403
|
+
* console.log(`There was an error creating the I3S Data Provider: ${error}`);
|
|
404
|
+
* }
|
|
405
|
+
*
|
|
406
|
+
* @example
|
|
407
|
+
* try {
|
|
408
|
+
* const geoidService = await Cesium.ArcGISTiledElevationTerrainProvider.fromUrl(
|
|
409
|
+
* "https://tiles.arcgis.com/tiles/z2tnIkrLQ2BRzr6P/arcgis/rest/services/EGM2008/ImageServer"
|
|
410
|
+
* );
|
|
411
|
+
* const i3sData = await I3SDataProvider.fromUrl(
|
|
412
|
+
* "https://tiles.arcgis.com/tiles/z2tnIkrLQ2BRzr6P/arcgis/rest/services/Frankfurt2017_vi3s_18/SceneServer/layers/0", {
|
|
413
|
+
* geoidTiledTerrainProvider: geoidService
|
|
414
|
+
* });
|
|
415
|
+
* viewer.scene.primitives.add(i3sData);
|
|
416
|
+
* } catch (error) {
|
|
417
|
+
* console.log(`There was an error creating the I3S Data Provider: ${error}`);
|
|
418
|
+
* }
|
|
419
|
+
*/
|
|
420
|
+
I3SDataProvider.fromUrl = async function (url, options) {
|
|
421
|
+
//>>includeStart('debug', pragmas.debug);
|
|
422
|
+
Check.defined("url", url);
|
|
423
|
+
//>>includeEnd('debug');
|
|
424
|
+
|
|
425
|
+
options = defaultValue(options, defaultValue.EMPTY_OBJECT);
|
|
426
|
+
|
|
427
|
+
const resource = Resource.createIfNeeded(url);
|
|
428
|
+
const data = await I3SDataProvider.loadJson(resource);
|
|
429
|
+
|
|
430
|
+
const provider = new I3SDataProvider(options);
|
|
431
|
+
provider._resource = resource;
|
|
432
|
+
provider._data = data;
|
|
433
|
+
|
|
434
|
+
// Success
|
|
435
|
+
if (defined(data.layers)) {
|
|
436
|
+
for (let layerIndex = 0; layerIndex < data.layers.length; layerIndex++) {
|
|
437
|
+
const newLayer = new I3SLayer(
|
|
438
|
+
provider,
|
|
439
|
+
data.layers[layerIndex],
|
|
440
|
+
layerIndex
|
|
441
|
+
);
|
|
442
|
+
provider._layers.push(newLayer);
|
|
443
|
+
}
|
|
444
|
+
} else {
|
|
445
|
+
const newLayer = new I3SLayer(provider, data, data.id);
|
|
446
|
+
provider._layers.push(newLayer);
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
provider._computeExtent();
|
|
450
|
+
|
|
451
|
+
// Start loading all of the tiles
|
|
452
|
+
const layerPromises = [];
|
|
453
|
+
for (let i = 0; i < provider._layers.length; i++) {
|
|
454
|
+
layerPromises.push(provider._layers[i].load());
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
await Promise.all(layerPromises);
|
|
458
|
+
provider._ready = true;
|
|
459
|
+
provider._readyPromise = Promise.resolve(provider);
|
|
460
|
+
return provider;
|
|
461
|
+
};
|
|
462
|
+
|
|
377
463
|
/**
|
|
378
464
|
* @private
|
|
379
465
|
*/
|
|
380
466
|
I3SDataProvider.prototype._load = function () {
|
|
381
467
|
const that = this;
|
|
382
|
-
this._readyPromise =
|
|
468
|
+
this._readyPromise = I3SDataProvider.loadJson(
|
|
469
|
+
this._resource,
|
|
470
|
+
this._traceFetches
|
|
471
|
+
).then(function (data) {
|
|
383
472
|
// Success
|
|
384
473
|
that._data = data;
|
|
385
|
-
if (defined(
|
|
386
|
-
for (
|
|
387
|
-
let layerIndex = 0;
|
|
388
|
-
layerIndex < that._data.layers.length;
|
|
389
|
-
layerIndex++
|
|
390
|
-
) {
|
|
474
|
+
if (defined(data.layers)) {
|
|
475
|
+
for (let layerIndex = 0; layerIndex < data.layers.length; layerIndex++) {
|
|
391
476
|
const newLayer = new I3SLayer(
|
|
392
477
|
that,
|
|
393
|
-
|
|
478
|
+
data.layers[layerIndex],
|
|
394
479
|
layerIndex
|
|
395
480
|
);
|
|
396
481
|
that._layers.push(newLayer);
|
|
397
482
|
}
|
|
398
483
|
} else {
|
|
399
|
-
const newLayer = new I3SLayer(that,
|
|
484
|
+
const newLayer = new I3SLayer(that, data, data.id);
|
|
400
485
|
that._layers.push(newLayer);
|
|
401
486
|
}
|
|
402
487
|
|
|
403
488
|
that._computeExtent();
|
|
404
|
-
that._loadGeoidData();
|
|
405
489
|
|
|
406
490
|
// Start loading all of the tiles
|
|
407
491
|
const layerPromises = [];
|
|
@@ -427,27 +511,32 @@ I3SDataProvider._fetchJson = function (resource) {
|
|
|
427
511
|
|
|
428
512
|
/**
|
|
429
513
|
* @private
|
|
514
|
+
*
|
|
515
|
+
* @param {Resource} resource The JSON resource to request
|
|
516
|
+
* @param {boolean} [trace=false] Log the resource
|
|
517
|
+
* @returns {Promise<object>} The fetched data
|
|
430
518
|
*/
|
|
431
|
-
I3SDataProvider.
|
|
432
|
-
if (
|
|
519
|
+
I3SDataProvider.loadJson = async function (resource, trace) {
|
|
520
|
+
if (trace) {
|
|
433
521
|
console.log("I3S FETCH:", resource.url);
|
|
434
522
|
}
|
|
435
523
|
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
}
|
|
524
|
+
const data = await I3SDataProvider._fetchJson(resource);
|
|
525
|
+
if (defined(data.error)) {
|
|
526
|
+
console.error("Failed to fetch I3S ", resource.url);
|
|
527
|
+
if (defined(data.error.message)) {
|
|
528
|
+
console.error(data.error.message);
|
|
529
|
+
}
|
|
530
|
+
if (defined(data.error.details)) {
|
|
531
|
+
for (let i = 0; i < data.error.details.length; i++) {
|
|
532
|
+
console.log(data.error.details[i]);
|
|
446
533
|
}
|
|
447
|
-
return Promise.reject(data.error);
|
|
448
534
|
}
|
|
449
|
-
|
|
450
|
-
|
|
535
|
+
|
|
536
|
+
throw new RuntimeError(data.error);
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
return data;
|
|
451
540
|
};
|
|
452
541
|
|
|
453
542
|
/**
|
|
@@ -496,25 +585,32 @@ I3SDataProvider.prototype._binarizeGltf = function (rawGltf) {
|
|
|
496
585
|
|
|
497
586
|
/**
|
|
498
587
|
* @private
|
|
588
|
+
* @returns {Promise<TaskProcessor>}
|
|
499
589
|
*/
|
|
500
|
-
I3SDataProvider.prototype.
|
|
590
|
+
I3SDataProvider.prototype.getDecoderTaskProcessor = function () {
|
|
591
|
+
if (defined(this._taskProcessorReadyPromise)) {
|
|
592
|
+
return this._taskProcessorReadyPromise;
|
|
593
|
+
}
|
|
594
|
+
|
|
501
595
|
if (!defined(this._decoderTaskProcessor)) {
|
|
502
596
|
const processor = new TaskProcessor("decodeI3S");
|
|
503
|
-
this._taskProcessorReadyPromise = processor
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
597
|
+
this._taskProcessorReadyPromise = processor
|
|
598
|
+
.initWebAssemblyModule({
|
|
599
|
+
modulePath: "ThirdParty/Workers/draco_decoder_nodejs.js",
|
|
600
|
+
wasmBinaryFile: "ThirdParty/draco_decoder.wasm",
|
|
601
|
+
})
|
|
602
|
+
.then(() => {
|
|
603
|
+
return processor;
|
|
604
|
+
});
|
|
507
605
|
|
|
508
606
|
this._decoderTaskProcessor = processor;
|
|
509
607
|
}
|
|
510
608
|
|
|
511
|
-
return this.
|
|
609
|
+
return this._taskProcessorReadyPromise;
|
|
512
610
|
};
|
|
513
611
|
|
|
514
612
|
function getCoveredTiles(terrainProvider, extent) {
|
|
515
|
-
return terrainProvider
|
|
516
|
-
return getTiles(terrainProvider, extent);
|
|
517
|
-
});
|
|
613
|
+
return getTiles(terrainProvider, extent);
|
|
518
614
|
}
|
|
519
615
|
|
|
520
616
|
const scratchCartesian2 = new Cartesian2();
|
|
@@ -614,35 +710,40 @@ function getTiles(terrainProvider, extent) {
|
|
|
614
710
|
});
|
|
615
711
|
}
|
|
616
712
|
|
|
617
|
-
|
|
618
|
-
* @private
|
|
619
|
-
*/
|
|
620
|
-
I3SDataProvider.prototype._loadGeoidData = function () {
|
|
713
|
+
async function loadGeoidData(provider) {
|
|
621
714
|
// Load tiles from arcgis
|
|
622
|
-
const
|
|
623
|
-
const geoidTerrainProvider = this._geoidTiledTerrainProvider;
|
|
715
|
+
const geoidTerrainProvider = provider._geoidTiledTerrainProvider;
|
|
624
716
|
|
|
625
717
|
if (!defined(geoidTerrainProvider)) {
|
|
626
718
|
console.log(
|
|
627
719
|
"No Geoid Terrain service provided - no geoid conversion will be performed."
|
|
628
720
|
);
|
|
629
|
-
|
|
630
|
-
return this._geoidDataIsReadyPromise;
|
|
721
|
+
return;
|
|
631
722
|
}
|
|
632
723
|
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
724
|
+
try {
|
|
725
|
+
const heightMaps = await getCoveredTiles(
|
|
726
|
+
geoidTerrainProvider,
|
|
727
|
+
provider._extent
|
|
728
|
+
);
|
|
729
|
+
provider._geoidDataList = heightMaps;
|
|
730
|
+
} catch (error) {
|
|
731
|
+
console.log(
|
|
732
|
+
"Error retrieving Geoid Terrain tiles - no geoid conversion will be performed."
|
|
733
|
+
);
|
|
734
|
+
}
|
|
735
|
+
}
|
|
736
|
+
|
|
737
|
+
/**
|
|
738
|
+
* @private
|
|
739
|
+
*/
|
|
740
|
+
I3SDataProvider.prototype.loadGeoidData = async function () {
|
|
741
|
+
if (defined(this._geoidDataPromise)) {
|
|
742
|
+
return this._geoidDataPromise;
|
|
743
|
+
}
|
|
644
744
|
|
|
645
|
-
|
|
745
|
+
this._geoidDataPromise = loadGeoidData(this);
|
|
746
|
+
return this._geoidDataPromise;
|
|
646
747
|
};
|
|
647
748
|
|
|
648
749
|
/**
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import defined from "../Core/defined.js";
|
|
2
|
+
import I3SDataProvider from "./I3SDataProvider.js";
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* This class implements an I3S Feature.
|
|
@@ -52,12 +53,12 @@ Object.defineProperties(I3SFeature.prototype, {
|
|
|
52
53
|
* @returns {Promise} A promise that is resolved when the data of the I3S feature is loaded
|
|
53
54
|
* @private
|
|
54
55
|
*/
|
|
55
|
-
I3SFeature.prototype.load = function () {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
56
|
+
I3SFeature.prototype.load = async function () {
|
|
57
|
+
this._data = await I3SDataProvider.loadJson(
|
|
58
|
+
this._resource,
|
|
59
|
+
this._dataProvider._traceFetches
|
|
60
|
+
);
|
|
61
|
+
return this._data;
|
|
61
62
|
};
|
|
62
63
|
|
|
63
64
|
export default I3SFeature;
|
package/Source/Scene/I3SLayer.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import defined from "../Core/defined.js";
|
|
2
2
|
import Rectangle from "../Core/Rectangle.js";
|
|
3
3
|
import Resource from "../Core/Resource.js";
|
|
4
|
+
import RuntimeError from "../Core/RuntimeError.js";
|
|
4
5
|
import Cesium3DTileset from "./Cesium3DTileset.js";
|
|
5
6
|
import I3SNode from "./I3SNode.js";
|
|
6
7
|
|
|
@@ -84,7 +85,7 @@ Object.defineProperties(I3SLayer.prototype, {
|
|
|
84
85
|
/**
|
|
85
86
|
* Gets the Cesium3DTileset for this layer.
|
|
86
87
|
* @memberof I3SLayer.prototype
|
|
87
|
-
* @type {Cesium3DTileset}
|
|
88
|
+
* @type {Cesium3DTileset|undefined}
|
|
88
89
|
* @readonly
|
|
89
90
|
*/
|
|
90
91
|
tileset: {
|
|
@@ -167,28 +168,22 @@ Object.defineProperties(I3SLayer.prototype, {
|
|
|
167
168
|
* @returns {Promise} A promise that is resolved when the layer data is loaded
|
|
168
169
|
* @private
|
|
169
170
|
*/
|
|
170
|
-
I3SLayer.prototype.load = function () {
|
|
171
|
-
const that = this;
|
|
172
|
-
|
|
171
|
+
I3SLayer.prototype.load = async function () {
|
|
173
172
|
if (this._data.spatialReference.wkid !== 4326) {
|
|
174
|
-
|
|
173
|
+
throw new RuntimeError(
|
|
175
174
|
`Unsupported spatial reference: ${this._data.spatialReference.wkid}`
|
|
176
175
|
);
|
|
177
|
-
return Promise.reject();
|
|
178
176
|
}
|
|
179
177
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
});
|
|
190
|
-
});
|
|
191
|
-
});
|
|
178
|
+
await this._dataProvider.loadGeoidData();
|
|
179
|
+
await this._loadRootNode();
|
|
180
|
+
await this._create3DTileset();
|
|
181
|
+
|
|
182
|
+
this._rootNode._tile = this._tileset._root;
|
|
183
|
+
this._tileset._root._i3sNode = this._rootNode;
|
|
184
|
+
if (this.legacyVersion16) {
|
|
185
|
+
return this._rootNode._loadChildren();
|
|
186
|
+
}
|
|
192
187
|
};
|
|
193
188
|
|
|
194
189
|
/**
|
|
@@ -378,7 +373,7 @@ I3SLayer.prototype._computeExtent = function () {
|
|
|
378
373
|
/**
|
|
379
374
|
* @private
|
|
380
375
|
*/
|
|
381
|
-
I3SLayer.prototype._create3DTileset = function () {
|
|
376
|
+
I3SLayer.prototype._create3DTileset = async function () {
|
|
382
377
|
const inPlaceTileset = {
|
|
383
378
|
asset: {
|
|
384
379
|
version: "1.0",
|
|
@@ -391,7 +386,7 @@ I3SLayer.prototype._create3DTileset = function () {
|
|
|
391
386
|
type: "application/json",
|
|
392
387
|
});
|
|
393
388
|
|
|
394
|
-
const
|
|
389
|
+
const tilesetUrl = URL.createObjectURL(tilesetBlob);
|
|
395
390
|
|
|
396
391
|
const tilesetOptions = {};
|
|
397
392
|
if (defined(this._dataProvider._cesium3dTilesetOptions)) {
|
|
@@ -401,26 +396,20 @@ I3SLayer.prototype._create3DTileset = function () {
|
|
|
401
396
|
}
|
|
402
397
|
}
|
|
403
398
|
}
|
|
404
|
-
tilesetOptions.url = inPlaceTilesetURL;
|
|
405
|
-
tilesetOptions.show = this._dataProvider.show;
|
|
406
|
-
|
|
407
|
-
this._tileset = new Cesium3DTileset(tilesetOptions);
|
|
408
399
|
|
|
400
|
+
this._tileset = await Cesium3DTileset.fromUrl(tilesetUrl, tilesetOptions);
|
|
401
|
+
this._tileset.show = this._dataProvider.show;
|
|
409
402
|
this._tileset._isI3STileSet = true;
|
|
403
|
+
this._tileset.tileUnload.addEventListener(function (tile) {
|
|
404
|
+
tile._i3sNode._clearGeometryData();
|
|
405
|
+
URL.revokeObjectURL(tile._contentResource._url);
|
|
406
|
+
tile._contentResource = tile._i3sNode.resource;
|
|
407
|
+
});
|
|
410
408
|
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
URL.revokeObjectURL(tile._contentResource._url);
|
|
416
|
-
tile._contentResource = tile._i3sNode.resource;
|
|
417
|
-
});
|
|
418
|
-
|
|
419
|
-
that._tileset.tileVisible.addEventListener(function (tile) {
|
|
420
|
-
if (defined(tile._i3sNode)) {
|
|
421
|
-
tile._i3sNode._loadChildren();
|
|
422
|
-
}
|
|
423
|
-
});
|
|
409
|
+
this._tileset.tileVisible.addEventListener(function (tile) {
|
|
410
|
+
if (defined(tile._i3sNode)) {
|
|
411
|
+
tile._i3sNode._loadChildren();
|
|
412
|
+
}
|
|
424
413
|
});
|
|
425
414
|
};
|
|
426
415
|
|