@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.
- package/Build/Workers/{AttributeCompression-8a5a065e.js → AttributeCompression-f9f6c717.js} +1 -1
- package/Build/Workers/{AxisAlignedBoundingBox-a6f9f0e5.js → AxisAlignedBoundingBox-31fadcf0.js} +1 -1
- package/Build/Workers/{BoundingRectangle-b0a68595.js → BoundingRectangle-995f0079.js} +1 -1
- package/Build/Workers/{BoxGeometry-baedd794.js → BoxGeometry-7eb1af60.js} +1 -1
- package/Build/Workers/{Color-f85df1be.js → Color-2dc49658.js} +1 -1
- package/Build/Workers/{CoplanarPolygonGeometryLibrary-30516950.js → CoplanarPolygonGeometryLibrary-d7d972d6.js} +1 -1
- package/Build/Workers/{CorridorGeometryLibrary-5d5d3b3a.js → CorridorGeometryLibrary-1f5ef7b3.js} +1 -1
- package/Build/Workers/{CylinderGeometry-d899ae26.js → CylinderGeometry-23c67a6c.js} +1 -1
- package/Build/Workers/{CylinderGeometryLibrary-135b0858.js → CylinderGeometryLibrary-7bf291b4.js} +1 -1
- package/Build/Workers/{EllipseGeometry-a49f8449.js → EllipseGeometry-37014da4.js} +1 -1
- package/Build/Workers/{EllipseGeometryLibrary-cba7edde.js → EllipseGeometryLibrary-92ab6b1e.js} +1 -1
- package/Build/Workers/{EllipseOutlineGeometry-8095c8cb.js → EllipseOutlineGeometry-12b6fef5.js} +1 -1
- package/Build/Workers/{EllipsoidGeodesic-dcff5cbd.js → EllipsoidGeodesic-5b3623dc.js} +1 -1
- package/Build/Workers/{EllipsoidGeometry-ed93f571.js → EllipsoidGeometry-508da15c.js} +1 -1
- package/Build/Workers/{EllipsoidOutlineGeometry-e4854854.js → EllipsoidOutlineGeometry-40d97455.js} +1 -1
- package/Build/Workers/{EllipsoidRhumbLine-b672d507.js → EllipsoidRhumbLine-ef872433.js} +1 -1
- package/Build/Workers/{EllipsoidTangentPlane-7ae1aa9a.js → EllipsoidTangentPlane-46d4d9c2.js} +1 -1
- package/Build/Workers/{EncodedCartesian3-e8bbca36.js → EncodedCartesian3-57415c8a.js} +1 -1
- package/Build/Workers/{FrustumGeometry-b62db3e3.js → FrustumGeometry-38605e69.js} +32 -4
- package/Build/Workers/{GeometryAttribute-780af4fa.js → GeometryAttribute-a466e9c7.js} +1 -1
- package/Build/Workers/{GeometryInstance-3fb607b7.js → GeometryInstance-34d9e21e.js} +1 -1
- package/Build/Workers/{GeometryPipeline-36b61c99.js → GeometryPipeline-dcf79306.js} +1 -1
- package/Build/Workers/{IndexDatatype-b8f3e09d.js → IndexDatatype-2643aa47.js} +1 -1
- package/Build/Workers/{IntersectionTests-e889fcf0.js → IntersectionTests-88c49b2e.js} +1 -1
- package/Build/Workers/{Math-dad82b4d.js → Math-0a2ac845.js} +12 -2
- package/Build/Workers/{Matrix2-1e403d0e.js → Matrix2-e1298525.js} +1 -1
- package/Build/Workers/{Matrix3-fa806b97.js → Matrix3-41c58dde.js} +1 -1
- package/Build/Workers/{OrientedBoundingBox-43478ac8.js → OrientedBoundingBox-2dd47921.js} +5 -3
- package/Build/Workers/{Plane-c27e1ac6.js → Plane-4c3d403b.js} +1 -1
- package/Build/Workers/{PolygonGeometryLibrary-38a98276.js → PolygonGeometryLibrary-59126025.js} +1 -1
- package/Build/Workers/PolygonPipeline-1fe328c0.js +1344 -0
- package/Build/Workers/{PolylinePipeline-30e4cec9.js → PolylinePipeline-896735cc.js} +1 -1
- package/Build/Workers/{PolylineVolumeGeometryLibrary-90551d26.js → PolylineVolumeGeometryLibrary-9c0639f7.js} +1 -1
- package/Build/Workers/{PrimitivePipeline-558d9cb0.js → PrimitivePipeline-fc1a47ff.js} +1 -1
- package/Build/Workers/{RectangleGeometryLibrary-815c68df.js → RectangleGeometryLibrary-a23c9ebe.js} +1 -1
- package/Build/Workers/{TerrainEncoding-341ead52.js → TerrainEncoding-51b8b33b.js} +1 -1
- package/Build/Workers/Transforms-bc45e707.js +14699 -0
- package/Build/Workers/{WallGeometryLibrary-ccf90976.js → WallGeometryLibrary-007e9883.js} +1 -1
- package/Build/Workers/{WebMercatorProjection-76a3fcc0.js → WebMercatorProjection-13ed1a6e.js} +1 -1
- package/Build/Workers/{arrayRemoveDuplicates-fac118a8.js → arrayRemoveDuplicates-d2061e85.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/createVectorTileClampedPolylines.js +1 -1
- package/Build/Workers/createVectorTileGeometries.js +1 -1
- package/Build/Workers/createVectorTilePoints.js +1 -1
- package/Build/Workers/createVectorTilePolygons.js +1 -1
- package/Build/Workers/createVectorTilePolylines.js +1 -1
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +1 -1
- package/Build/Workers/createVerticesFromHeightmap.js +5 -8
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +10 -15
- package/Build/Workers/createWallGeometry.js +1 -1
- package/Build/Workers/createWallOutlineGeometry.js +1 -1
- package/Build/Workers/decodeDraco.js +1 -1
- package/Build/Workers/decodeI3S.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/BingMapsGeocoderService.js +19 -1
- package/Source/Core/CartographicGeocoderService.js +15 -0
- package/Source/Core/CesiumTerrainProvider.js +571 -434
- package/Source/Core/Credit.js +1 -1
- package/Source/Core/CustomHeightmapTerrainProvider.js +12 -0
- package/Source/Core/EllipsoidTerrainProvider.js +17 -10
- package/Source/Core/FrustumGeometry.js +4 -3
- package/Source/Core/GeocoderService.js +32 -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/IonGeocoderService.js +17 -2
- package/Source/Core/IonResource.js +14 -3
- package/Source/Core/OpenCageGeocoderService.js +18 -1
- package/Source/Core/OrientedBoundingBox.js +4 -2
- package/Source/Core/OrthographicFrustum.js +13 -0
- package/Source/Core/PeliasGeocoderService.js +14 -1
- package/Source/Core/PerspectiveFrustum.js +14 -0
- package/Source/Core/Request.js +3 -2
- package/Source/Core/RequestScheduler.js +10 -5
- package/Source/Core/Resource.js +230 -236
- 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/DataSourceDisplay.js +2 -2
- package/Source/DataSources/Entity.js +6 -1
- package/Source/DataSources/EntityCluster.js +126 -128
- package/Source/DataSources/ModelVisualizer.js +104 -34
- package/Source/DataSources/PolygonGraphics.js +1 -1
- package/Source/Renderer/UniformState.js +3 -2
- package/Source/Renderer/demodernizeShader.js +5 -5
- package/Source/Scene/ArcGisBaseMapType.js +12 -0
- package/Source/Scene/ArcGisMapServerImageryProvider.js +694 -376
- package/Source/Scene/ArcGisMapService.js +83 -0
- package/Source/Scene/BingMapsImageryProvider.js +511 -305
- package/Source/Scene/BufferLoader.js +29 -34
- package/Source/Scene/Camera.js +8 -7
- package/Source/Scene/Cesium3DTile.js +392 -254
- 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 +756 -482
- 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 +132 -20
- 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 +53 -30
- 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 +87 -74
- package/Source/Scene/GltfLoader.js +381 -300
- 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 +482 -275
- 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/MaterialPipelineStage.js +12 -12
- package/Source/Scene/Model/Model.js +514 -135
- 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/Model/UniformType.js +1 -1
- package/Source/Scene/Multiple3DTileContent.js +134 -115
- package/Source/Scene/Picking.js +3 -2
- package/Source/Scene/PointCloud.js +11 -19
- package/Source/Scene/Primitive.js +20 -0
- package/Source/Scene/QuadtreePrimitive.js +5 -2
- 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/SceneTransforms.js +3 -2
- package/Source/Scene/ScreenSpaceCameraController.js +2 -2
- 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 +97 -81
- 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/Shaders/AtmosphereCommon.glsl +51 -8
- package/Source/Shaders/AtmosphereCommon.js +51 -8
- package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.glsl +1 -1
- package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.js +1 -1
- package/Source/Shaders/PostProcessStages/AmbientOcclusionModulate.glsl +3 -3
- package/Source/Shaders/PostProcessStages/AmbientOcclusionModulate.js +3 -3
- package/Source/Widget/CesiumWidget.js +67 -27
- package/index.d.ts +2429 -1475
- package/index.js +324 -315
- package/package.json +4 -4
- package/Build/Workers/PolygonPipeline-d31ff61c.js +0 -1345
- package/Build/Workers/Transforms-9e9df299.js +0 -14714
|
@@ -896,8 +896,8 @@ Cesium3DTileBatchTable.prototype.addDerivedCommands = function (
|
|
|
896
896
|
const finalResolution = tile._finalResolution;
|
|
897
897
|
const tileset = tile.tileset;
|
|
898
898
|
const bivariateVisibilityTest =
|
|
899
|
-
tileset.
|
|
900
|
-
tileset.
|
|
899
|
+
tileset.isSkippingLevelOfDetail &&
|
|
900
|
+
tileset.hasMixedContent &&
|
|
901
901
|
frameState.context.stencilBuffer;
|
|
902
902
|
const styleCommandsNeeded = getStyleCommandsNeeded(this);
|
|
903
903
|
|
|
@@ -145,6 +145,21 @@ Object.defineProperties(Cesium3DTileContent.prototype, {
|
|
|
145
145
|
},
|
|
146
146
|
},
|
|
147
147
|
|
|
148
|
+
/**
|
|
149
|
+
* Returns true when the tile's content is ready to render; otherwise false
|
|
150
|
+
*
|
|
151
|
+
* @memberof Cesium3DTileContent.prototype
|
|
152
|
+
*
|
|
153
|
+
* @type {boolean}
|
|
154
|
+
* @readonly
|
|
155
|
+
*/
|
|
156
|
+
ready: {
|
|
157
|
+
// eslint-disable-next-line getter-return
|
|
158
|
+
get: function () {
|
|
159
|
+
DeveloperError.throwInstantiationError();
|
|
160
|
+
},
|
|
161
|
+
},
|
|
162
|
+
|
|
148
163
|
/**
|
|
149
164
|
* Gets the promise that will be resolved when the tile's content is ready to render.
|
|
150
165
|
*
|
|
@@ -152,6 +167,7 @@ Object.defineProperties(Cesium3DTileContent.prototype, {
|
|
|
152
167
|
*
|
|
153
168
|
* @type {Promise<Cesium3DTileContent>}
|
|
154
169
|
* @readonly
|
|
170
|
+
* @deprecated
|
|
155
171
|
*/
|
|
156
172
|
readyPromise: {
|
|
157
173
|
// eslint-disable-next-line getter-return
|
|
@@ -41,7 +41,7 @@ const Cesium3DTileContentFactory = {
|
|
|
41
41
|
},
|
|
42
42
|
cmpt: function (tileset, tile, resource, arrayBuffer, byteOffset) {
|
|
43
43
|
// Send in the factory in order to avoid a cyclical dependency
|
|
44
|
-
return
|
|
44
|
+
return Composite3DTileContent.fromTileType(
|
|
45
45
|
tileset,
|
|
46
46
|
tile,
|
|
47
47
|
resource,
|
|
@@ -51,7 +51,7 @@ const Cesium3DTileContentFactory = {
|
|
|
51
51
|
);
|
|
52
52
|
},
|
|
53
53
|
externalTileset: function (tileset, tile, resource, json) {
|
|
54
|
-
return
|
|
54
|
+
return Tileset3DTileContent.fromJson(tileset, tile, resource, json);
|
|
55
55
|
},
|
|
56
56
|
geom: function (tileset, tile, resource, arrayBuffer, byteOffset) {
|
|
57
57
|
return new Geometry3DTileContent(
|
|
@@ -72,7 +72,7 @@ const Cesium3DTileContentFactory = {
|
|
|
72
72
|
);
|
|
73
73
|
},
|
|
74
74
|
subt: function (tileset, tile, resource, arrayBuffer, byteOffset) {
|
|
75
|
-
return
|
|
75
|
+
return Implicit3DTileContent.fromSubtreeJson(
|
|
76
76
|
tileset,
|
|
77
77
|
tile,
|
|
78
78
|
resource,
|
|
@@ -82,7 +82,7 @@ const Cesium3DTileContentFactory = {
|
|
|
82
82
|
);
|
|
83
83
|
},
|
|
84
84
|
subtreeJson: function (tileset, tile, resource, json) {
|
|
85
|
-
return
|
|
85
|
+
return Implicit3DTileContent.fromSubtreeJson(tileset, tile, resource, json);
|
|
86
86
|
},
|
|
87
87
|
glb: function (tileset, tile, resource, arrayBuffer, byteOffset) {
|
|
88
88
|
const arrayBufferByteLength = arrayBuffer.byteLength;
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import Cesium3DTilesetMostDetailedTraversal from "./Cesium3DTilesetMostDetailedTraversal.js";
|
|
2
|
-
import Cesium3DTilesetTraversal from "./Cesium3DTilesetTraversal.js";
|
|
3
|
-
|
|
4
1
|
/**
|
|
5
2
|
* The pass in which a 3D Tileset is updated.
|
|
6
3
|
*
|
|
@@ -21,56 +18,56 @@ const Cesium3DTilePass = {
|
|
|
21
18
|
const passOptions = new Array(Cesium3DTilePass.NUMBER_OF_PASSES);
|
|
22
19
|
|
|
23
20
|
passOptions[Cesium3DTilePass.RENDER] = Object.freeze({
|
|
24
|
-
|
|
21
|
+
pass: Cesium3DTilePass.RENDER,
|
|
25
22
|
isRender: true,
|
|
26
23
|
requestTiles: true,
|
|
27
24
|
ignoreCommands: false,
|
|
28
25
|
});
|
|
29
26
|
|
|
30
27
|
passOptions[Cesium3DTilePass.PICK] = Object.freeze({
|
|
31
|
-
|
|
28
|
+
pass: Cesium3DTilePass.PICK,
|
|
32
29
|
isRender: false,
|
|
33
30
|
requestTiles: false,
|
|
34
31
|
ignoreCommands: false,
|
|
35
32
|
});
|
|
36
33
|
|
|
37
34
|
passOptions[Cesium3DTilePass.SHADOW] = Object.freeze({
|
|
38
|
-
|
|
35
|
+
pass: Cesium3DTilePass.SHADOW,
|
|
39
36
|
isRender: false,
|
|
40
37
|
requestTiles: true,
|
|
41
38
|
ignoreCommands: false,
|
|
42
39
|
});
|
|
43
40
|
|
|
44
41
|
passOptions[Cesium3DTilePass.PRELOAD] = Object.freeze({
|
|
45
|
-
|
|
42
|
+
pass: Cesium3DTilePass.SHADOW,
|
|
46
43
|
isRender: false,
|
|
47
44
|
requestTiles: true,
|
|
48
45
|
ignoreCommands: true,
|
|
49
46
|
});
|
|
50
47
|
|
|
51
48
|
passOptions[Cesium3DTilePass.PRELOAD_FLIGHT] = Object.freeze({
|
|
52
|
-
|
|
49
|
+
pass: Cesium3DTilePass.PRELOAD_FLIGHT,
|
|
53
50
|
isRender: false,
|
|
54
51
|
requestTiles: true,
|
|
55
52
|
ignoreCommands: true,
|
|
56
53
|
});
|
|
57
54
|
|
|
58
55
|
passOptions[Cesium3DTilePass.REQUEST_RENDER_MODE_DEFER_CHECK] = Object.freeze({
|
|
59
|
-
|
|
56
|
+
pass: Cesium3DTilePass.REQUEST_RENDER_MODE_DEFER_CHECK,
|
|
60
57
|
isRender: false,
|
|
61
58
|
requestTiles: true,
|
|
62
59
|
ignoreCommands: true,
|
|
63
60
|
});
|
|
64
61
|
|
|
65
62
|
passOptions[Cesium3DTilePass.MOST_DETAILED_PRELOAD] = Object.freeze({
|
|
66
|
-
|
|
63
|
+
pass: Cesium3DTilePass.MOST_DETAILED_PRELOAD,
|
|
67
64
|
isRender: false,
|
|
68
65
|
requestTiles: true,
|
|
69
66
|
ignoreCommands: true,
|
|
70
67
|
});
|
|
71
68
|
|
|
72
69
|
passOptions[Cesium3DTilePass.MOST_DETAILED_PICK] = Object.freeze({
|
|
73
|
-
|
|
70
|
+
pass: Cesium3DTilePass.MOST_DETAILED_PICK,
|
|
74
71
|
isRender: false,
|
|
75
72
|
requestTiles: false,
|
|
76
73
|
ignoreCommands: false,
|
|
@@ -2,7 +2,7 @@ import Cartesian3 from "../Core/Cartesian3.js";
|
|
|
2
2
|
import Check from "../Core/Check.js";
|
|
3
3
|
import defaultValue from "../Core/defaultValue.js";
|
|
4
4
|
import defined from "../Core/defined.js";
|
|
5
|
-
import
|
|
5
|
+
import deprecationWarning from "../Core/deprecationWarning.js";
|
|
6
6
|
import Ellipsoid from "../Core/Ellipsoid.js";
|
|
7
7
|
import Matrix4 from "../Core/Matrix4.js";
|
|
8
8
|
import OrientedBoundingBox from "../Core/OrientedBoundingBox.js";
|
|
@@ -28,14 +28,18 @@ import VoxelShapeType from "./VoxelShapeType.js";
|
|
|
28
28
|
* <p>
|
|
29
29
|
* Implements the {@link VoxelProvider} interface.
|
|
30
30
|
* </p>
|
|
31
|
+
* <div class="notice">
|
|
32
|
+
* This object is normally not instantiated directly, use {@link Cesium3DTilesVoxelProvider.fromUrl}.
|
|
33
|
+
* </div>
|
|
31
34
|
*
|
|
32
35
|
* @alias Cesium3DTilesVoxelProvider
|
|
33
36
|
* @constructor
|
|
34
37
|
* @augments VoxelProvider
|
|
35
38
|
*
|
|
36
39
|
* @param {object} options Object with the following properties:
|
|
37
|
-
* @param {Resource|string|Promise<Resource>|Promise<string>} options.url The URL to a tileset JSON file.
|
|
40
|
+
* @param {Resource|string|Promise<Resource>|Promise<string>} [options.url] The URL to a tileset JSON file. Deprecated.
|
|
38
41
|
*
|
|
42
|
+
* @see Cesium3DTilesVoxelProvider.fromUrl
|
|
39
43
|
* @see VoxelProvider
|
|
40
44
|
* @see VoxelPrimitive
|
|
41
45
|
* @see VoxelShapeType
|
|
@@ -44,12 +48,7 @@ import VoxelShapeType from "./VoxelShapeType.js";
|
|
|
44
48
|
*/
|
|
45
49
|
function Cesium3DTilesVoxelProvider(options) {
|
|
46
50
|
options = defaultValue(options, defaultValue.EMPTY_OBJECT);
|
|
47
|
-
|
|
48
|
-
Check.defined("options.url", options.url);
|
|
49
|
-
//>>includeEnd('debug');
|
|
50
|
-
|
|
51
|
-
/** @inheritdoc */
|
|
52
|
-
this.ready = false;
|
|
51
|
+
this._ready = false;
|
|
53
52
|
|
|
54
53
|
/** @inheritdoc */
|
|
55
54
|
this.shapeTransform = undefined;
|
|
@@ -99,83 +98,202 @@ function Cesium3DTilesVoxelProvider(options) {
|
|
|
99
98
|
const that = this;
|
|
100
99
|
let tilesetJson;
|
|
101
100
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
.
|
|
106
|
-
|
|
107
|
-
tilesetJson = tileset;
|
|
108
|
-
validate(tilesetJson);
|
|
109
|
-
return getMetadataSchemaLoader(tilesetJson, resource).promise;
|
|
110
|
-
})
|
|
111
|
-
.then(function (schemaLoader) {
|
|
112
|
-
const root = tilesetJson.root;
|
|
113
|
-
const voxel = root.content.extensions["3DTILES_content_voxels"];
|
|
114
|
-
const className = voxel.class;
|
|
115
|
-
|
|
116
|
-
const metadataJson = hasExtension(tilesetJson, "3DTILES_metadata")
|
|
117
|
-
? tilesetJson.extensions["3DTILES_metadata"]
|
|
118
|
-
: tilesetJson;
|
|
119
|
-
|
|
120
|
-
const metadataSchema = schemaLoader.schema;
|
|
121
|
-
const metadata = new Cesium3DTilesetMetadata({
|
|
122
|
-
metadataJson: metadataJson,
|
|
123
|
-
schema: metadataSchema,
|
|
124
|
-
});
|
|
101
|
+
if (defined(options.url)) {
|
|
102
|
+
deprecationWarning(
|
|
103
|
+
"Cesium3DTilesVoxelProvider options.url",
|
|
104
|
+
"Cesium3DTilesVoxelProvider constructor parameter options.url was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use Cesium3DTilesVoxelProvider.fromUrl instead."
|
|
105
|
+
);
|
|
125
106
|
|
|
126
|
-
|
|
107
|
+
this._readyPromise = Promise.resolve(options.url).then(function (url) {
|
|
108
|
+
const resource = Resource.createIfNeeded(url);
|
|
109
|
+
return resource
|
|
110
|
+
.fetchJson()
|
|
111
|
+
.then(function (tileset) {
|
|
112
|
+
tilesetJson = tileset;
|
|
113
|
+
validate(tilesetJson);
|
|
114
|
+
const schemaLoader = getMetadataSchemaLoader(tilesetJson, resource);
|
|
115
|
+
return schemaLoader.load();
|
|
116
|
+
})
|
|
117
|
+
.then(function (schemaLoader) {
|
|
118
|
+
const root = tilesetJson.root;
|
|
119
|
+
const voxel = root.content.extensions["3DTILES_content_voxels"];
|
|
120
|
+
const className = voxel.class;
|
|
121
|
+
|
|
122
|
+
const metadataJson = hasExtension(tilesetJson, "3DTILES_metadata")
|
|
123
|
+
? tilesetJson.extensions["3DTILES_metadata"]
|
|
124
|
+
: tilesetJson;
|
|
125
|
+
|
|
126
|
+
const metadataSchema = schemaLoader.schema;
|
|
127
|
+
const metadata = new Cesium3DTilesetMetadata({
|
|
128
|
+
metadataJson: metadataJson,
|
|
129
|
+
schema: metadataSchema,
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
addAttributeInfo(that, metadata, className);
|
|
133
|
+
|
|
134
|
+
const implicitTileset = new ImplicitTileset(
|
|
135
|
+
resource,
|
|
136
|
+
root,
|
|
137
|
+
metadataSchema
|
|
138
|
+
);
|
|
139
|
+
|
|
140
|
+
const {
|
|
141
|
+
shape,
|
|
142
|
+
minBounds,
|
|
143
|
+
maxBounds,
|
|
144
|
+
shapeTransform,
|
|
145
|
+
globalTransform,
|
|
146
|
+
} = getShape(root);
|
|
147
|
+
|
|
148
|
+
that.shape = shape;
|
|
149
|
+
that.minBounds = minBounds;
|
|
150
|
+
that.maxBounds = maxBounds;
|
|
151
|
+
that.dimensions = Cartesian3.unpack(voxel.dimensions);
|
|
152
|
+
that.shapeTransform = shapeTransform;
|
|
153
|
+
that.globalTransform = globalTransform;
|
|
154
|
+
that.maximumTileCount = getTileCount(metadata);
|
|
155
|
+
|
|
156
|
+
let paddingBefore;
|
|
157
|
+
let paddingAfter;
|
|
158
|
+
|
|
159
|
+
if (defined(voxel.padding)) {
|
|
160
|
+
paddingBefore = Cartesian3.unpack(voxel.padding.before);
|
|
161
|
+
paddingAfter = Cartesian3.unpack(voxel.padding.after);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
that.paddingBefore = paddingBefore;
|
|
165
|
+
that.paddingAfter = paddingAfter;
|
|
166
|
+
|
|
167
|
+
that._implicitTileset = implicitTileset;
|
|
168
|
+
|
|
169
|
+
ResourceCache.unload(schemaLoader);
|
|
170
|
+
|
|
171
|
+
that._ready = true;
|
|
172
|
+
return that;
|
|
173
|
+
});
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
}
|
|
127
177
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
178
|
+
Object.defineProperties(Cesium3DTilesVoxelProvider.prototype, {
|
|
179
|
+
/**
|
|
180
|
+
* Gets the promise that will be resolved when the provider is ready for use.
|
|
181
|
+
*
|
|
182
|
+
* @memberof Cesium3DTilesVoxelProvider.prototype
|
|
183
|
+
* @type {Promise<Cesium3DTilesVoxelProvider>}
|
|
184
|
+
* @readonly
|
|
185
|
+
* @deprecated
|
|
186
|
+
*/
|
|
187
|
+
readyPromise: {
|
|
188
|
+
get: function () {
|
|
189
|
+
deprecationWarning(
|
|
190
|
+
"Cesium3DTilesVoxelProvider.readyPromise",
|
|
191
|
+
"Cesium3DTilesVoxelProvider.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use Cesium3DTilesVoxelProvider.fromUrl instead."
|
|
192
|
+
);
|
|
193
|
+
return this._readyPromise;
|
|
194
|
+
},
|
|
195
|
+
},
|
|
133
196
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
197
|
+
/**
|
|
198
|
+
* Gets a value indicating whether or not the provider is ready for use.
|
|
199
|
+
*
|
|
200
|
+
* @memberof Cesium3DTilesVoxelProvider.prototype
|
|
201
|
+
* @type {boolean}
|
|
202
|
+
* @readonly
|
|
203
|
+
* @deprecated
|
|
204
|
+
*/
|
|
205
|
+
ready: {
|
|
206
|
+
get: function () {
|
|
207
|
+
deprecationWarning(
|
|
208
|
+
"Cesium3DTilesVoxelProvider.ready",
|
|
209
|
+
"Cesium3DTilesVoxelProvider.ready was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use Cesium3DTilesVoxelProvider.fromUrl instead."
|
|
210
|
+
);
|
|
211
|
+
return this._ready;
|
|
212
|
+
},
|
|
213
|
+
},
|
|
214
|
+
});
|
|
141
215
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
216
|
+
/**
|
|
217
|
+
* Creates a {@link VoxelProvider} that fetches voxel data from a 3D Tiles tileset.
|
|
218
|
+
*
|
|
219
|
+
* @param {Resource|string} url The URL to a tileset JSON file
|
|
220
|
+
* @returns {Promise<Cesium3DTilesVoxelProvider>} The created provider
|
|
221
|
+
*
|
|
222
|
+
* @exception {RuntimeException} Root must have content
|
|
223
|
+
* @exception {RuntimeException} Root tile content must have 3DTILES_content_voxels extension
|
|
224
|
+
* @exception {RuntimeException} Root tile must have implicit tiling
|
|
225
|
+
* @exception {RuntimeException} Tileset must have a metadata schema
|
|
226
|
+
* @exception {RuntimeException} Only box, region and 3DTILES_bounding_volume_cylinder are supported in Cesium3DTilesVoxelProvider
|
|
227
|
+
*/
|
|
228
|
+
Cesium3DTilesVoxelProvider.fromUrl = async function (url) {
|
|
229
|
+
//>>includeStart('debug', pragmas.debug);
|
|
230
|
+
Check.defined("url", url);
|
|
231
|
+
//>>includeEnd('debug');
|
|
149
232
|
|
|
150
|
-
|
|
151
|
-
|
|
233
|
+
const resource = Resource.createIfNeeded(url);
|
|
234
|
+
const tilesetJson = await resource.fetchJson();
|
|
152
235
|
|
|
153
|
-
|
|
154
|
-
paddingBefore = Cartesian3.unpack(voxel.padding.before);
|
|
155
|
-
paddingAfter = Cartesian3.unpack(voxel.padding.after);
|
|
156
|
-
}
|
|
236
|
+
validate(tilesetJson);
|
|
157
237
|
|
|
158
|
-
|
|
159
|
-
|
|
238
|
+
const schemaLoader = getMetadataSchemaLoader(tilesetJson, resource);
|
|
239
|
+
await schemaLoader.load();
|
|
160
240
|
|
|
161
|
-
|
|
241
|
+
const root = tilesetJson.root;
|
|
242
|
+
const voxel = root.content.extensions["3DTILES_content_voxels"];
|
|
243
|
+
const className = voxel.class;
|
|
162
244
|
|
|
163
|
-
|
|
245
|
+
const metadataJson = hasExtension(tilesetJson, "3DTILES_metadata")
|
|
246
|
+
? tilesetJson.extensions["3DTILES_metadata"]
|
|
247
|
+
: tilesetJson;
|
|
164
248
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
249
|
+
const metadataSchema = schemaLoader.schema;
|
|
250
|
+
const metadata = new Cesium3DTilesetMetadata({
|
|
251
|
+
metadataJson: metadataJson,
|
|
252
|
+
schema: metadataSchema,
|
|
168
253
|
});
|
|
169
|
-
}
|
|
170
254
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
255
|
+
const provider = new Cesium3DTilesVoxelProvider();
|
|
256
|
+
|
|
257
|
+
addAttributeInfo(provider, metadata, className);
|
|
258
|
+
|
|
259
|
+
const implicitTileset = new ImplicitTileset(resource, root, metadataSchema);
|
|
260
|
+
|
|
261
|
+
const {
|
|
262
|
+
shape,
|
|
263
|
+
minBounds,
|
|
264
|
+
maxBounds,
|
|
265
|
+
shapeTransform,
|
|
266
|
+
globalTransform,
|
|
267
|
+
} = getShape(root);
|
|
268
|
+
|
|
269
|
+
provider.shape = shape;
|
|
270
|
+
provider.minBounds = minBounds;
|
|
271
|
+
provider.maxBounds = maxBounds;
|
|
272
|
+
provider.dimensions = Cartesian3.unpack(voxel.dimensions);
|
|
273
|
+
provider.shapeTransform = shapeTransform;
|
|
274
|
+
provider.globalTransform = globalTransform;
|
|
275
|
+
provider.maximumTileCount = getTileCount(metadata);
|
|
276
|
+
|
|
277
|
+
let paddingBefore;
|
|
278
|
+
let paddingAfter;
|
|
279
|
+
|
|
280
|
+
if (defined(voxel.padding)) {
|
|
281
|
+
paddingBefore = Cartesian3.unpack(voxel.padding.before);
|
|
282
|
+
paddingAfter = Cartesian3.unpack(voxel.padding.after);
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
provider.paddingBefore = paddingBefore;
|
|
286
|
+
provider.paddingAfter = paddingAfter;
|
|
287
|
+
|
|
288
|
+
provider._implicitTileset = implicitTileset;
|
|
289
|
+
|
|
290
|
+
ResourceCache.unload(schemaLoader);
|
|
291
|
+
|
|
292
|
+
provider._ready = true;
|
|
293
|
+
provider._readyPromise = Promise.resolve(provider);
|
|
294
|
+
|
|
295
|
+
return provider;
|
|
296
|
+
};
|
|
179
297
|
|
|
180
298
|
function getTileCount(metadata) {
|
|
181
299
|
if (!defined(metadata.tileset)) {
|
|
@@ -306,9 +424,9 @@ function getCylinderShape(cylinder, tileTransform) {
|
|
|
306
424
|
function getMetadataSchemaLoader(tilesetJson, resource) {
|
|
307
425
|
const { schemaUri, schema } = tilesetJson;
|
|
308
426
|
if (!defined(schemaUri)) {
|
|
309
|
-
return ResourceCache.
|
|
427
|
+
return ResourceCache.getSchemaLoader({ schema });
|
|
310
428
|
}
|
|
311
|
-
return ResourceCache.
|
|
429
|
+
return ResourceCache.getSchemaLoader({
|
|
312
430
|
resource: resource.getDerivedResource({
|
|
313
431
|
url: schemaUri,
|
|
314
432
|
}),
|
|
@@ -356,7 +474,7 @@ function copyArray(values, length) {
|
|
|
356
474
|
return Array.from({ length }, (v, i) => valuesArray[i]);
|
|
357
475
|
}
|
|
358
476
|
|
|
359
|
-
function
|
|
477
|
+
async function getVoxelContent(implicitTileset, tileCoordinates) {
|
|
360
478
|
const voxelRelative = implicitTileset.contentUriTemplates[0].getDerivedResource(
|
|
361
479
|
{
|
|
362
480
|
templateValues: tileCoordinates.getTemplateValues(),
|
|
@@ -366,29 +484,28 @@ function getVoxelPromise(implicitTileset, tileCoordinates) {
|
|
|
366
484
|
url: voxelRelative.url,
|
|
367
485
|
});
|
|
368
486
|
|
|
369
|
-
|
|
370
|
-
|
|
487
|
+
const arrayBuffer = await voxelResource.fetchArrayBuffer();
|
|
488
|
+
const preprocessed = preprocess3DTileContent(arrayBuffer);
|
|
371
489
|
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
490
|
+
const voxelContent = await VoxelContent.fromJson(
|
|
491
|
+
voxelResource,
|
|
492
|
+
preprocessed.jsonPayload,
|
|
493
|
+
preprocessed.binaryPayload,
|
|
494
|
+
implicitTileset.metadataSchema
|
|
495
|
+
);
|
|
378
496
|
|
|
379
|
-
|
|
380
|
-
});
|
|
497
|
+
return voxelContent;
|
|
381
498
|
}
|
|
382
499
|
|
|
383
|
-
function getSubtreePromise(provider, subtreeCoord) {
|
|
500
|
+
async function getSubtreePromise(provider, subtreeCoord) {
|
|
384
501
|
const implicitTileset = provider._implicitTileset;
|
|
385
502
|
const subtreeCache = provider._subtreeCache;
|
|
386
503
|
|
|
387
504
|
// First load the subtree to check if the tile is available.
|
|
388
505
|
// If the subtree has been requested previously it might still be in the cache
|
|
389
|
-
|
|
506
|
+
let subtree = subtreeCache.find(subtreeCoord);
|
|
390
507
|
if (defined(subtree)) {
|
|
391
|
-
return subtree
|
|
508
|
+
return subtree;
|
|
392
509
|
}
|
|
393
510
|
|
|
394
511
|
const subtreeRelative = implicitTileset.subtreeUriTemplate.getDerivedResource(
|
|
@@ -400,38 +517,29 @@ function getSubtreePromise(provider, subtreeCoord) {
|
|
|
400
517
|
url: subtreeRelative.url,
|
|
401
518
|
});
|
|
402
519
|
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
520
|
+
const arrayBuffer = await subtreeResource.fetchArrayBuffer();
|
|
521
|
+
// Check one more time if the subtree is in the cache.
|
|
522
|
+
// This could happen if there are two in-flight tile requests from the same
|
|
523
|
+
// subtree and one finishes before the other.
|
|
524
|
+
subtree = subtreeCache.find(subtreeCoord);
|
|
525
|
+
if (defined(subtree)) {
|
|
526
|
+
return subtree;
|
|
527
|
+
}
|
|
411
528
|
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
});
|
|
529
|
+
const preprocessed = preprocess3DTileContent(arrayBuffer);
|
|
530
|
+
subtree = await ImplicitSubtree.fromSubtreeJson(
|
|
531
|
+
subtreeResource,
|
|
532
|
+
preprocessed.jsonPayload,
|
|
533
|
+
preprocessed.binaryPayload,
|
|
534
|
+
implicitTileset,
|
|
535
|
+
subtreeCoord
|
|
536
|
+
);
|
|
537
|
+
subtreeCache.addSubtree(subtree);
|
|
538
|
+
return subtree;
|
|
423
539
|
}
|
|
424
540
|
|
|
425
541
|
/** @inheritdoc */
|
|
426
542
|
Cesium3DTilesVoxelProvider.prototype.requestData = function (options) {
|
|
427
|
-
//>>includeStart('debug', pragmas.debug);
|
|
428
|
-
if (!this.ready) {
|
|
429
|
-
throw new DeveloperError(
|
|
430
|
-
"The provider is not ready. Use Cesium3DTilesVoxelProvider.readyPromise or wait for Cesium3DTilesVoxelProvider.ready to be true."
|
|
431
|
-
);
|
|
432
|
-
}
|
|
433
|
-
//>>includeEnd('debug');
|
|
434
|
-
|
|
435
543
|
options = defaultValue(options, defaultValue.EMPTY_OBJECT);
|
|
436
544
|
const tileLevel = defaultValue(options.tileLevel, 0);
|
|
437
545
|
const tileX = defaultValue(options.tileX, 0);
|
|
@@ -482,7 +590,7 @@ Cesium3DTilesVoxelProvider.prototype.requestData = function (options) {
|
|
|
482
590
|
return Promise.reject("Tile is not available");
|
|
483
591
|
}
|
|
484
592
|
|
|
485
|
-
return
|
|
593
|
+
return getVoxelContent(implicitTileset, tileCoordinates);
|
|
486
594
|
})
|
|
487
595
|
.then(function (voxelContent) {
|
|
488
596
|
return names.map(function (name) {
|