@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
|
@@ -36,6 +36,9 @@ const modelMatrixScratch = new Matrix4();
|
|
|
36
36
|
const nodeMatrixScratch = new Matrix4();
|
|
37
37
|
|
|
38
38
|
const scratchColor = new Color();
|
|
39
|
+
const scratchArray = new Array(4);
|
|
40
|
+
const scratchCartesian = new Cartesian3();
|
|
41
|
+
|
|
39
42
|
/**
|
|
40
43
|
* A {@link Visualizer} which maps {@link Entity#model} to a {@link Model}.
|
|
41
44
|
* @alias ModelVisualizer
|
|
@@ -60,9 +63,56 @@ function ModelVisualizer(scene, entityCollection) {
|
|
|
60
63
|
this._entityCollection = entityCollection;
|
|
61
64
|
this._modelHash = {};
|
|
62
65
|
this._entitiesToVisualize = new AssociativeArray();
|
|
66
|
+
|
|
63
67
|
this._onCollectionChanged(entityCollection, entityCollection.values, [], []);
|
|
64
68
|
}
|
|
65
69
|
|
|
70
|
+
async function createModelPrimitive(
|
|
71
|
+
visualizer,
|
|
72
|
+
entity,
|
|
73
|
+
resource,
|
|
74
|
+
incrementallyLoadTextures
|
|
75
|
+
) {
|
|
76
|
+
const primitives = visualizer._primitives;
|
|
77
|
+
const modelHash = visualizer._modelHash;
|
|
78
|
+
|
|
79
|
+
try {
|
|
80
|
+
const model = await Model.fromGltfAsync({
|
|
81
|
+
url: resource,
|
|
82
|
+
incrementallyLoadTextures: incrementallyLoadTextures,
|
|
83
|
+
scene: visualizer._scene,
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
if (visualizer.isDestroyed() || !defined(modelHash[entity.id])) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
model.id = entity;
|
|
91
|
+
primitives.add(model);
|
|
92
|
+
modelHash[entity.id].modelPrimitive = model;
|
|
93
|
+
model.errorEvent.addEventListener((error) => {
|
|
94
|
+
if (!defined(modelHash[entity.id])) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
console.log(error);
|
|
99
|
+
|
|
100
|
+
// Texture failures when incrementallyLoadTextures
|
|
101
|
+
// will not affect the ability to compute the bounding sphere
|
|
102
|
+
if (error.name !== "TextureError" && model.incrementallyLoadTextures) {
|
|
103
|
+
modelHash[entity.id].loadFailed = true;
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
} catch (error) {
|
|
107
|
+
if (visualizer.isDestroyed() || !defined(modelHash[entity.id])) {
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
console.log(error);
|
|
112
|
+
modelHash[entity.id].loadFailed = true;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
66
116
|
/**
|
|
67
117
|
* Updates models created this visualizer to match their
|
|
68
118
|
* Entity counterpart at the given time.
|
|
@@ -102,45 +152,44 @@ ModelVisualizer.prototype.update = function (time) {
|
|
|
102
152
|
}
|
|
103
153
|
|
|
104
154
|
if (!show) {
|
|
105
|
-
if (defined(modelData)) {
|
|
155
|
+
if (defined(modelData) && modelData.modelPrimitive) {
|
|
106
156
|
modelData.modelPrimitive.show = false;
|
|
107
157
|
}
|
|
108
158
|
continue;
|
|
109
159
|
}
|
|
110
160
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
primitives.removeAndDestroy(model);
|
|
161
|
+
if (!defined(modelData) || resource.url !== modelData.url) {
|
|
162
|
+
if (defined(modelData?.modelPrimitive)) {
|
|
163
|
+
primitives.removeAndDestroy(modelData.modelPrimitive);
|
|
115
164
|
delete modelHash[entity.id];
|
|
116
165
|
}
|
|
117
166
|
|
|
118
|
-
model = Model.fromGltf({
|
|
119
|
-
url: resource,
|
|
120
|
-
incrementallyLoadTextures: Property.getValueOrDefault(
|
|
121
|
-
modelGraphics._incrementallyLoadTextures,
|
|
122
|
-
time,
|
|
123
|
-
defaultIncrementallyLoadTextures
|
|
124
|
-
),
|
|
125
|
-
scene: this._scene,
|
|
126
|
-
});
|
|
127
|
-
model.id = entity;
|
|
128
|
-
primitives.add(model);
|
|
129
|
-
|
|
130
167
|
modelData = {
|
|
131
|
-
modelPrimitive:
|
|
168
|
+
modelPrimitive: undefined,
|
|
132
169
|
url: resource.url,
|
|
133
170
|
animationsRunning: false,
|
|
134
171
|
nodeTransformationsScratch: {},
|
|
135
172
|
articulationsScratch: {},
|
|
136
|
-
|
|
173
|
+
loadFailed: false,
|
|
174
|
+
modelUpdated: false,
|
|
137
175
|
awaitingSampleTerrain: false,
|
|
138
176
|
clampedBoundingSphere: undefined,
|
|
139
177
|
sampleTerrainFailed: false,
|
|
140
178
|
};
|
|
141
179
|
modelHash[entity.id] = modelData;
|
|
142
180
|
|
|
143
|
-
|
|
181
|
+
const incrementallyLoadTextures = Property.getValueOrDefault(
|
|
182
|
+
modelGraphics._incrementallyLoadTextures,
|
|
183
|
+
time,
|
|
184
|
+
defaultIncrementallyLoadTextures
|
|
185
|
+
);
|
|
186
|
+
|
|
187
|
+
createModelPrimitive(this, entity, resource, incrementallyLoadTextures);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
const model = modelData.modelPrimitive;
|
|
191
|
+
if (!defined(model)) {
|
|
192
|
+
continue;
|
|
144
193
|
}
|
|
145
194
|
|
|
146
195
|
model.show = true;
|
|
@@ -214,15 +263,27 @@ ModelVisualizer.prototype.update = function (time) {
|
|
|
214
263
|
time,
|
|
215
264
|
defaultImageBasedLightingFactor
|
|
216
265
|
);
|
|
217
|
-
|
|
266
|
+
let lightColor = Property.getValueOrUndefined(
|
|
218
267
|
modelGraphics._lightColor,
|
|
219
268
|
time
|
|
220
269
|
);
|
|
270
|
+
|
|
271
|
+
// Convert from Color to Cartesian3
|
|
272
|
+
if (defined(lightColor)) {
|
|
273
|
+
Color.pack(lightColor, scratchArray, 0);
|
|
274
|
+
lightColor = Cartesian3.unpack(scratchArray, 0, scratchCartesian);
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
model.lightColor = lightColor;
|
|
221
278
|
model.customShader = Property.getValueOrUndefined(
|
|
222
279
|
modelGraphics._customShader,
|
|
223
280
|
time
|
|
224
281
|
);
|
|
225
282
|
|
|
283
|
+
// It's possible for getBoundingSphere to run before
|
|
284
|
+
// model becomes ready and these properties are updated
|
|
285
|
+
modelHash[entity.id].modelUpdated = true;
|
|
286
|
+
|
|
226
287
|
if (model.ready) {
|
|
227
288
|
const runAnimations = Property.getValueOrDefault(
|
|
228
289
|
modelGraphics._runAnimations,
|
|
@@ -365,28 +426,35 @@ ModelVisualizer.prototype.getBoundingSphere = function (entity, result) {
|
|
|
365
426
|
//>>includeEnd('debug');
|
|
366
427
|
|
|
367
428
|
const modelData = this._modelHash[entity.id];
|
|
368
|
-
if (!defined(modelData)
|
|
429
|
+
if (!defined(modelData)) {
|
|
430
|
+
return BoundingSphereState.FAILED;
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
if (modelData.loadFailed) {
|
|
369
434
|
return BoundingSphereState.FAILED;
|
|
370
435
|
}
|
|
371
436
|
|
|
372
437
|
const model = modelData.modelPrimitive;
|
|
373
438
|
if (!defined(model) || !model.show) {
|
|
374
|
-
return BoundingSphereState.
|
|
439
|
+
return BoundingSphereState.PENDING;
|
|
375
440
|
}
|
|
376
441
|
|
|
377
|
-
if (!model.ready) {
|
|
442
|
+
if (!model.ready || !modelData.modelUpdated) {
|
|
378
443
|
return BoundingSphereState.PENDING;
|
|
379
444
|
}
|
|
445
|
+
|
|
380
446
|
const scene = this._scene;
|
|
381
447
|
const globe = scene.globe;
|
|
382
|
-
const ellipsoid = globe.ellipsoid;
|
|
383
|
-
const terrainProvider = globe.terrainProvider;
|
|
384
448
|
|
|
449
|
+
// cannot access a terrain provider if there is no globe; formally set to undefined
|
|
450
|
+
const terrainProvider = defined(globe) ? globe.terrainProvider : undefined;
|
|
385
451
|
const hasHeightReference = model.heightReference !== HeightReference.NONE;
|
|
386
|
-
if (hasHeightReference) {
|
|
452
|
+
if (defined(globe) && hasHeightReference) {
|
|
453
|
+
const ellipsoid = globe.ellipsoid;
|
|
387
454
|
// We cannot query the availability of the terrain provider till its ready, so the
|
|
388
455
|
// bounding sphere state will remain pending till the terrain provider is ready.
|
|
389
|
-
|
|
456
|
+
// ready is deprecated. This is here for backwards compatibility
|
|
457
|
+
if (!terrainProvider._ready) {
|
|
390
458
|
return BoundingSphereState.PENDING;
|
|
391
459
|
}
|
|
392
460
|
|
|
@@ -441,6 +509,10 @@ ModelVisualizer.prototype.getBoundingSphere = function (entity, result) {
|
|
|
441
509
|
scratchCartographic,
|
|
442
510
|
])
|
|
443
511
|
.then((result) => {
|
|
512
|
+
if (this.isDestroyed()) {
|
|
513
|
+
return;
|
|
514
|
+
}
|
|
515
|
+
|
|
444
516
|
this._modelHash[entity.id].awaitingSampleTerrain = false;
|
|
445
517
|
|
|
446
518
|
const updatedCartographic = result[0];
|
|
@@ -463,6 +535,10 @@ ModelVisualizer.prototype.getBoundingSphere = function (entity, result) {
|
|
|
463
535
|
);
|
|
464
536
|
})
|
|
465
537
|
.catch((e) => {
|
|
538
|
+
if (this.isDestroyed()) {
|
|
539
|
+
return;
|
|
540
|
+
}
|
|
541
|
+
|
|
466
542
|
this._modelHash[entity.id].sampleTerrainFailed = true;
|
|
467
543
|
this._modelHash[entity.id].awaitingSampleTerrain = false;
|
|
468
544
|
});
|
|
@@ -539,10 +615,4 @@ function clearNodeTransformationsArticulationsScratch(entity, modelHash) {
|
|
|
539
615
|
}
|
|
540
616
|
}
|
|
541
617
|
|
|
542
|
-
function checkModelLoad(model, entity, modelHash) {
|
|
543
|
-
model.readyPromise.catch(function (error) {
|
|
544
|
-
console.error(error);
|
|
545
|
-
modelHash[entity.id].loadFail = true;
|
|
546
|
-
});
|
|
547
|
-
}
|
|
548
618
|
export default ModelVisualizer;
|
|
@@ -21,7 +21,7 @@ function createPolygonHierarchyProperty(value) {
|
|
|
21
21
|
* Initialization options for the PolygonGraphics constructor
|
|
22
22
|
*
|
|
23
23
|
* @property {Property | boolean} [show=true] A boolean Property specifying the visibility of the polygon.
|
|
24
|
-
* @property {Property | PolygonHierarchy} [hierarchy] A Property specifying the {@link PolygonHierarchy}.
|
|
24
|
+
* @property {Property | PolygonHierarchy | Cartesian3[]} [hierarchy] A Property specifying the {@link PolygonHierarchy}.
|
|
25
25
|
* @property {Property | number} [height=0] A numeric Property specifying the altitude of the polygon relative to the ellipsoid surface.
|
|
26
26
|
* @property {Property | HeightReference} [heightReference=HeightReference.NONE] A Property specifying what the height is relative to.
|
|
27
27
|
* @property {Property | number} [extrudedHeight] A numeric Property specifying the altitude of the polygon's extruded face relative to the ellipsoid surface.
|
|
@@ -1173,8 +1173,9 @@ UniformState.prototype.updateFrustum = function (frustum) {
|
|
|
1173
1173
|
this._oneOverLog2FarDepthFromNearPlusOne =
|
|
1174
1174
|
1.0 / this._log2FarDepthFromNearPlusOne;
|
|
1175
1175
|
|
|
1176
|
-
|
|
1177
|
-
|
|
1176
|
+
const offCenterFrustum = frustum.offCenterFrustum;
|
|
1177
|
+
if (defined(offCenterFrustum)) {
|
|
1178
|
+
frustum = offCenterFrustum;
|
|
1178
1179
|
}
|
|
1179
1180
|
|
|
1180
1181
|
this._frustumPlanes.x = frustum.top;
|
|
@@ -41,16 +41,16 @@ function demodernizeShader(input, isFragmentShader) {
|
|
|
41
41
|
output = output.replaceAll(/out_FragData_(\d+)/g, `gl_FragData[$1]`);
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
// Replace out_FragColor with gl_FragColor.
|
|
45
|
-
output = output.replaceAll(/out_FragColor/g, `gl_FragColor`);
|
|
46
|
-
output = output.replaceAll(/out_FragColor\[(\d+)\]/g, `gl_FragColor[$1]`);
|
|
47
|
-
|
|
48
44
|
// Remove all layout declarations for out_FragColor.
|
|
49
45
|
output = output.replaceAll(
|
|
50
|
-
/layout\s+\(location\s*=\s*0\)\s*out\s+vec4\s+out_FragColor
|
|
46
|
+
/layout\s+\(location\s*=\s*0\)\s*out\s+vec4\s+out_FragColor;/g,
|
|
51
47
|
``
|
|
52
48
|
);
|
|
53
49
|
|
|
50
|
+
// Replace out_FragColor with gl_FragColor.
|
|
51
|
+
output = output.replaceAll(/out_FragColor/g, `gl_FragColor`);
|
|
52
|
+
output = output.replaceAll(/out_FragColor\[(\d+)\]/g, `gl_FragColor[$1]`);
|
|
53
|
+
|
|
54
54
|
if (/gl_FragDepth/.test(output)) {
|
|
55
55
|
output = `#extension GL_EXT_frag_depth : enable\n${output}`;
|
|
56
56
|
// Replace gl_FragDepth with gl_FragDepthEXT.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ArcGisBaseMapType enumerates the ArcGIS image tile layers that are supported by default.
|
|
3
|
+
*
|
|
4
|
+
* @enum {number}
|
|
5
|
+
* @see ArcGisMapServerImageryProvider
|
|
6
|
+
*/
|
|
7
|
+
const ArcGisBaseMapType = {
|
|
8
|
+
SATELLITE: 1,
|
|
9
|
+
OCEANS: 2,
|
|
10
|
+
HILLSHADE: 3,
|
|
11
|
+
};
|
|
12
|
+
export default Object.freeze(ArcGisBaseMapType);
|