@cesium/engine 3.0.1 → 4.0.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/ThirdParty/Workers/pako_deflate.min.js +605 -0
- package/Build/ThirdParty/Workers/pako_inflate.min.js +800 -0
- package/Build/ThirdParty/Workers/z-worker-pako.js +502 -0
- package/Build/Workers/chunk-27R2KRIK.js +634 -0
- package/Build/Workers/chunk-2C65EKYA.js +55 -0
- package/Build/Workers/chunk-2NLMZNJI.js +138 -0
- package/Build/Workers/chunk-4V6RCTVH.js +289 -0
- package/Build/Workers/chunk-4VWUFKYW.js +368 -0
- package/Build/Workers/chunk-527JG4D7.js +629 -0
- package/Build/Workers/chunk-5U4UHRZ2.js +8644 -0
- package/Build/Workers/chunk-7CZEWQWE.js +353 -0
- package/Build/Workers/chunk-7IMAWM6A.js +842 -0
- package/Build/Workers/{package.js → chunk-A6EA6KIE.js} +13 -2
- package/Build/Workers/chunk-AXGQUPXA.js +1075 -0
- package/Build/Workers/chunk-BT6YIL2N.js +39 -0
- package/Build/Workers/chunk-C6MRR5YL.js +476 -0
- package/Build/Workers/chunk-DJUTBX6A.js +1860 -0
- package/Build/Workers/chunk-EQ6ZAP37.js +218 -0
- package/Build/Workers/chunk-F7P2HCYZ.js +73 -0
- package/Build/Workers/chunk-FE2XG3SS.js +73 -0
- package/Build/Workers/chunk-FKHRSGKP.js +781 -0
- package/Build/Workers/chunk-FVDTKX3F.js +58 -0
- package/Build/Workers/chunk-FYHCAKU6.js +684 -0
- package/Build/Workers/chunk-G3MOT7BZ.js +157 -0
- package/Build/Workers/chunk-H52L6U76.js +421 -0
- package/Build/Workers/chunk-H6MBQ4W4.js +305 -0
- package/Build/Workers/chunk-HCZR75II.js +2716 -0
- package/Build/Workers/chunk-I5MQWHBR.js +102 -0
- package/Build/Workers/chunk-KAFF2QX3.js +258 -0
- package/Build/Workers/chunk-LGSGX2RH.js +757 -0
- package/Build/Workers/chunk-LQRFWCNX.js +124 -0
- package/Build/Workers/chunk-N5MMDSD2.js +44 -0
- package/Build/Workers/chunk-NRETMGYL.js +390 -0
- package/Build/Workers/chunk-P4M4QUNQ.js +196 -0
- package/Build/Workers/chunk-P7PWX5HR.js +430 -0
- package/Build/Workers/chunk-PGB3EFR7.js +171 -0
- package/Build/Workers/chunk-PW5CA4MJ.js +3273 -0
- package/Build/Workers/chunk-PWDYKCNC.js +501 -0
- package/Build/Workers/chunk-QIS3NB7U.js +1258 -0
- package/Build/Workers/chunk-QVJ6IRKV.js +77 -0
- package/Build/Workers/chunk-RDCDRNJ7.js +117 -0
- package/Build/Workers/chunk-RDM3BKNC.js +1009 -0
- package/Build/Workers/chunk-RRUPTJ6P.js +452 -0
- package/Build/Workers/chunk-SGRWJKNO.js +400 -0
- package/Build/Workers/chunk-TF5D2H7B.js +138 -0
- package/Build/Workers/chunk-TVYIHH4V.js +513 -0
- package/Build/Workers/chunk-U5LKG6LX.js +101 -0
- package/Build/Workers/chunk-UGZGTV5K.js +302 -0
- package/Build/Workers/chunk-UN7AK64D.js +163 -0
- package/Build/Workers/chunk-V2LKNJGT.js +59 -0
- package/Build/Workers/chunk-VSCXSFHE.js +1477 -0
- package/Build/Workers/chunk-XJCTFTBM.js +2041 -0
- package/Build/Workers/chunk-XZVQMPWG.js +100 -0
- package/Build/Workers/chunk-YLAFWVOW.js +834 -0
- package/Build/Workers/chunk-YLS3FX3U.js +236 -0
- package/Build/Workers/chunk-YMJPANZZ.js +693 -0
- package/Build/Workers/combineGeometry.js +65 -15
- package/Build/Workers/createBoxGeometry.js +55 -10
- package/Build/Workers/createBoxOutlineGeometry.js +231 -310
- package/Build/Workers/createCircleGeometry.js +185 -202
- package/Build/Workers/createCircleOutlineGeometry.js +141 -155
- package/Build/Workers/createCoplanarPolygonGeometry.js +477 -557
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +218 -230
- package/Build/Workers/createCorridorGeometry.js +1162 -1307
- package/Build/Workers/createCorridorOutlineGeometry.js +533 -569
- package/Build/Workers/createCylinderGeometry.js +57 -10
- package/Build/Workers/createCylinderOutlineGeometry.js +224 -258
- package/Build/Workers/createEllipseGeometry.js +68 -12
- package/Build/Workers/createEllipseOutlineGeometry.js +61 -12
- package/Build/Workers/createEllipsoidGeometry.js +56 -10
- package/Build/Workers/createEllipsoidOutlineGeometry.js +58 -13
- package/Build/Workers/createFrustumGeometry.js +55 -10
- package/Build/Workers/createFrustumOutlineGeometry.js +226 -243
- package/Build/Workers/createGeometry.js +143 -48
- package/Build/Workers/createGroundPolylineGeometry.js +1484 -2011
- package/Build/Workers/createPlaneGeometry.js +216 -243
- package/Build/Workers/createPlaneOutlineGeometry.js +121 -113
- package/Build/Workers/createPolygonGeometry.js +1041 -1327
- package/Build/Workers/createPolygonOutlineGeometry.js +516 -657
- package/Build/Workers/createPolylineGeometry.js +471 -547
- package/Build/Workers/createPolylineVolumeGeometry.js +352 -384
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +271 -295
- package/Build/Workers/createRectangleGeometry.js +1128 -1331
- package/Build/Workers/createRectangleOutlineGeometry.js +445 -500
- package/Build/Workers/createSimplePolylineGeometry.js +381 -440
- package/Build/Workers/createSphereGeometry.js +112 -118
- package/Build/Workers/createSphereOutlineGeometry.js +112 -121
- package/Build/Workers/createTaskProcessorWorker.js +32 -127
- package/Build/Workers/createVectorTileClampedPolylines.js +462 -505
- package/Build/Workers/createVectorTileGeometries.js +377 -436
- package/Build/Workers/createVectorTilePoints.js +110 -77
- package/Build/Workers/createVectorTilePolygons.js +369 -391
- package/Build/Workers/createVectorTilePolylines.js +252 -244
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +543 -615
- package/Build/Workers/createVerticesFromHeightmap.js +2244 -2677
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +682 -904
- package/Build/Workers/createWallGeometry.js +459 -593
- package/Build/Workers/createWallOutlineGeometry.js +324 -419
- package/Build/Workers/decodeDraco.js +327 -347
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +2530 -3567
- package/Build/Workers/decodeI3S.js +765 -970
- package/Build/Workers/transcodeKTX2.js +3353 -1464
- package/Build/Workers/transferTypedArrayTest.js +3 -4
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +748 -953
- package/LICENSE.md +0 -12
- package/Source/Core/FeatureDetection.js +9 -0
- package/Source/Core/GoogleMaps.js +1 -1
- package/Source/Core/GroundPolylineGeometry.js +3 -2
- package/Source/Core/Ion.js +1 -1
- package/Source/Core/KTX2Transcoder.js +7 -3
- package/Source/Core/RequestScheduler.js +1 -0
- package/Source/Core/TaskProcessor.js +150 -146
- package/Source/Core/Transforms.js +2 -2
- package/Source/Core/buildModuleUrl.js +6 -5
- package/Source/DataSources/CzmlDataSource.js +6 -4
- package/Source/Scene/ArcGisMapService.js +1 -1
- package/Source/Scene/DracoLoader.js +26 -3
- package/Source/Scene/GltfLoaderUtil.js +1 -7
- package/Source/Scene/I3SDataProvider.js +0 -27
- package/Source/Scene/I3SDecoder.js +127 -0
- package/Source/Scene/I3SNode.js +32 -110
- package/Source/Scene/ImageryLayer.js +2 -2
- package/Source/Scene/Implicit3DTileContent.js +13 -0
- package/Source/Scene/ImplicitTileset.js +5 -0
- package/Source/Scene/Model/I3dmLoader.js +5 -1
- package/Source/Scene/Model/Model.js +4 -1
- package/Source/Scene/OpenStreetMapImageryProvider.js +7 -4
- package/Source/Scene/SingleTileImageryProvider.js +4 -2
- package/Source/ThirdParty/Workers/basis_transcoder.js +1 -1
- package/Source/{WorkersES6 → Workers}/createGeometry.js +11 -12
- package/Source/{WorkersES6 → Workers}/createTaskProcessorWorker.js +43 -59
- package/Source/{WorkersES6 → Workers}/decodeDraco.js +19 -25
- package/Source/{WorkersES6 → Workers}/decodeI3S.js +18 -32
- package/Source/{WorkersES6 → Workers}/transcodeKTX2.js +19 -26
- package/Source/Workers/transferTypedArrayTest.js +0 -6
- package/index.d.ts +20 -11
- package/index.js +170 -169
- package/package.json +3 -2
- package/Build/Workers/ArcType-2d9abbbc.js +0 -37
- package/Build/Workers/AttributeCompression-f9f6c717.js +0 -716
- package/Build/Workers/AxisAlignedBoundingBox-4bfd84f3.js +0 -258
- package/Build/Workers/BoundingRectangle-5fd6403a.js +0 -369
- package/Build/Workers/BoxGeometry-7aa4ce7f.js +0 -884
- package/Build/Workers/Check-6ede7e26.js +0 -290
- package/Build/Workers/Color-8e135f71.js +0 -2262
- package/Build/Workers/ComponentDatatype-cf1fa08e.js +0 -341
- package/Build/Workers/CoplanarPolygonGeometryLibrary-59c69b0a.js +0 -132
- package/Build/Workers/CorridorGeometryLibrary-63907365.js +0 -498
- package/Build/Workers/CylinderGeometry-8fc7c44b.js +0 -467
- package/Build/Workers/CylinderGeometryLibrary-7bf291b4.js +0 -63
- package/Build/Workers/EllipseGeometry-16b3736a.js +0 -1304
- package/Build/Workers/EllipseGeometryLibrary-21262a28.js +0 -366
- package/Build/Workers/EllipseOutlineGeometry-05d35d18.js +0 -443
- package/Build/Workers/EllipsoidGeodesic-5b3623dc.js +0 -520
- package/Build/Workers/EllipsoidGeometry-a503d1d6.js +0 -637
- package/Build/Workers/EllipsoidOutlineGeometry-7b09f24d.js +0 -454
- package/Build/Workers/EllipsoidRhumbLine-ef872433.js +0 -741
- package/Build/Workers/EllipsoidTangentPlane-546c0d5e.js +0 -373
- package/Build/Workers/EncodedCartesian3-57415c8a.js +0 -171
- package/Build/Workers/FrustumGeometry-87ce8622.js +0 -2540
- package/Build/Workers/GeometryAttribute-8fcff0d5.js +0 -619
- package/Build/Workers/GeometryAttributes-ad136444.js +0 -91
- package/Build/Workers/GeometryInstance-34d9e21e.js +0 -121
- package/Build/Workers/GeometryOffsetAttribute-9ad0019c.js +0 -16
- package/Build/Workers/GeometryPipeline-70d69a43.js +0 -3690
- package/Build/Workers/IndexDatatype-2643aa47.js +0 -200
- package/Build/Workers/IntersectionTests-85350792.js +0 -1836
- package/Build/Workers/Math-0a2ac845.js +0 -1340
- package/Build/Workers/Matrix2-e1298525.js +0 -7086
- package/Build/Workers/Matrix3-41c58dde.js +0 -4283
- package/Build/Workers/OrientedBoundingBox-29fb0fcd.js +0 -1259
- package/Build/Workers/Plane-4c3d403b.js +0 -309
- package/Build/Workers/PolygonGeometryLibrary-bad6329a.js +0 -1074
- package/Build/Workers/PolygonPipeline-dd13ee78.js +0 -1344
- package/Build/Workers/PolylinePipeline-7119eb3f.js +0 -573
- package/Build/Workers/PolylineVolumeGeometryLibrary-d25f0050.js +0 -781
- package/Build/Workers/PrimitivePipeline-111ee29f.js +0 -966
- package/Build/Workers/RectangleGeometryLibrary-bb378fb6.js +0 -280
- package/Build/Workers/RuntimeError-ef395448.js +0 -68
- package/Build/Workers/TerrainEncoding-c8e029a2.js +0 -1227
- package/Build/Workers/Transforms-e2d4a55a.js +0 -14713
- package/Build/Workers/VertexFormat-030f11ff.js +0 -312
- package/Build/Workers/WallGeometryLibrary-3e0819ec.js +0 -211
- package/Build/Workers/WebGLConstants-0b1ce7ba.js +0 -620
- package/Build/Workers/WebMercatorProjection-13ed1a6e.js +0 -151
- package/Build/Workers/arrayRemoveDuplicates-d2061e85.js +0 -129
- package/Build/Workers/cesiumWorkerBootstrapper.js +0 -1363
- package/Build/Workers/combine-d9581036.js +0 -82
- package/Build/Workers/defaultValue-fe22d8c0.js +0 -51
- package/Source/ThirdParty/Workers/draco_decoder_nodejs.js +0 -117
- package/Source/Workers/cesiumWorkerBootstrapper.js +0 -2290
- package/Source/Workers/package.json +0 -1
- /package/Source/{WorkersES6 → Workers}/combineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createBoxGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createBoxOutlineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createCircleGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createCircleOutlineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createCoplanarPolygonGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createCoplanarPolygonOutlineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createCorridorGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createCorridorOutlineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createCylinderGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createCylinderOutlineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createEllipseGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createEllipseOutlineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createEllipsoidGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createEllipsoidOutlineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createFrustumGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createFrustumOutlineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createGroundPolylineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createPlaneGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createPlaneOutlineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createPolygonGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createPolygonOutlineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createPolylineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createPolylineVolumeGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createPolylineVolumeOutlineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createRectangleGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createRectangleOutlineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createSimplePolylineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createSphereGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createSphereOutlineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createVectorTileClampedPolylines.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createVectorTileGeometries.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createVectorTilePoints.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createVectorTilePolygons.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createVectorTilePolylines.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createVerticesFromGoogleEarthEnterpriseBuffer.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createVerticesFromHeightmap.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createVerticesFromQuantizedTerrainMesh.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createWallGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createWallOutlineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/decodeGoogleEarthEnterprisePacket.js +0 -0
- /package/Source/{WorkersES6 → Workers}/upsampleQuantizedTerrainMesh.js +0 -0
package/LICENSE.md
CHANGED
|
@@ -270,18 +270,6 @@ https://github.com/sole/tween.js
|
|
|
270
270
|
>
|
|
271
271
|
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
272
272
|
|
|
273
|
-
### RequireJS
|
|
274
|
-
|
|
275
|
-
https://github.com/jrburke/requirejs
|
|
276
|
-
|
|
277
|
-
> Copyright (c) 2010-2015, The Dojo Foundation
|
|
278
|
-
>
|
|
279
|
-
> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
280
|
-
>
|
|
281
|
-
> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
282
|
-
>
|
|
283
|
-
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
284
|
-
|
|
285
273
|
### topojson-client
|
|
286
274
|
|
|
287
275
|
https://github.com/topojson/topojson-client
|
|
@@ -426,4 +426,13 @@ FeatureDetection.supportsWebgl2 = function (scene) {
|
|
|
426
426
|
return scene.context.webgl2;
|
|
427
427
|
};
|
|
428
428
|
|
|
429
|
+
/**
|
|
430
|
+
* Detects whether the current browser supports ECMAScript modules in web workers.
|
|
431
|
+
* @returns {boolean} true if the browser supports ECMAScript modules in web workers.
|
|
432
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Worker|Worker}
|
|
433
|
+
*/
|
|
434
|
+
FeatureDetection.supportsEsmWebWorkers = function () {
|
|
435
|
+
return !isFirefox() || parseInt(firefoxVersionResult) >= 114;
|
|
436
|
+
};
|
|
437
|
+
|
|
429
438
|
export default FeatureDetection;
|
|
@@ -3,7 +3,7 @@ import defined from "./defined.js";
|
|
|
3
3
|
import Resource from "./Resource.js";
|
|
4
4
|
|
|
5
5
|
let defaultKeyCredit;
|
|
6
|
-
const defaultKey = "
|
|
6
|
+
const defaultKey = "AIzaSyAgSPRO-w15SwJ57JlOmZHI7JJ_qBR0c1k";
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Default settings for accessing the Google Maps API.
|
|
@@ -1477,8 +1477,9 @@ function generateGeometryAttributes(
|
|
|
1477
1477
|
const minHeight = minMaxHeights.minimumTerrainHeight;
|
|
1478
1478
|
const maxHeight = minMaxHeights.maximumTerrainHeight;
|
|
1479
1479
|
|
|
1480
|
-
|
|
1481
|
-
sumHeights +=
|
|
1480
|
+
// Sum using abs() to properly account for negative eleavtions in calculating bounding sphere radius
|
|
1481
|
+
sumHeights += Math.abs(minHeight);
|
|
1482
|
+
sumHeights += Math.abs(maxHeight);
|
|
1482
1483
|
|
|
1483
1484
|
adjustHeights(
|
|
1484
1485
|
startBottom,
|
package/Source/Core/Ion.js
CHANGED
|
@@ -4,7 +4,7 @@ import Resource from "./Resource.js";
|
|
|
4
4
|
|
|
5
5
|
let defaultTokenCredit;
|
|
6
6
|
const defaultAccessToken =
|
|
7
|
-
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
|
|
7
|
+
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJlMmIzZjlhMy1kNzU1LTRmMmQtYTFkNi1jMWQ5NTliM2RmN2YiLCJpZCI6MjU5LCJpYXQiOjE2OTM1ODIzNDJ9.-Tpp8s9ismoMrkKqnNsHFEMZgXDfa2uZfBQRE-kn3gM";
|
|
8
8
|
/**
|
|
9
9
|
* Default settings for accessing the Cesium ion API.
|
|
10
10
|
*
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import Check from "./Check.js";
|
|
2
2
|
import CompressedTextureBuffer from "./CompressedTextureBuffer.js";
|
|
3
3
|
import defined from "./defined.js";
|
|
4
|
+
import RuntimeError from "./RuntimeError.js";
|
|
4
5
|
import TaskProcessor from "./TaskProcessor.js";
|
|
5
6
|
|
|
6
7
|
/**
|
|
@@ -20,11 +21,14 @@ KTX2Transcoder._readyPromise = undefined;
|
|
|
20
21
|
function makeReadyPromise() {
|
|
21
22
|
const readyPromise = KTX2Transcoder._transcodeTaskProcessor
|
|
22
23
|
.initWebAssemblyModule({
|
|
23
|
-
modulePath: "ThirdParty/Workers/basis_transcoder.js",
|
|
24
24
|
wasmBinaryFile: "ThirdParty/basis_transcoder.wasm",
|
|
25
25
|
})
|
|
26
|
-
.then(function () {
|
|
27
|
-
|
|
26
|
+
.then(function (result) {
|
|
27
|
+
if (result) {
|
|
28
|
+
return KTX2Transcoder._transcodeTaskProcessor;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
throw new RuntimeError("KTX2 transcoder could not be initialized.");
|
|
28
32
|
});
|
|
29
33
|
KTX2Transcoder._readyPromise = readyPromise;
|
|
30
34
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import Uri from "urijs";
|
|
2
2
|
import buildModuleUrl from "./buildModuleUrl.js";
|
|
3
3
|
import defaultValue from "./defaultValue.js";
|
|
4
|
-
import defer from "./defer.js";
|
|
5
4
|
import defined from "./defined.js";
|
|
6
5
|
import destroyObject from "./destroyObject.js";
|
|
7
6
|
import DeveloperError from "./DeveloperError.js";
|
|
@@ -38,23 +37,21 @@ function canTransferArrayBuffer() {
|
|
|
38
37
|
return TaskProcessor._canTransferArrayBuffer;
|
|
39
38
|
}
|
|
40
39
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
const array = event.data.array;
|
|
45
|
-
|
|
46
|
-
// some versions of Firefox silently fail to transfer typed arrays.
|
|
47
|
-
// https://bugzilla.mozilla.org/show_bug.cgi?id=841904
|
|
48
|
-
// Check to make sure the value round-trips successfully.
|
|
49
|
-
const result = defined(array) && array[0] === value;
|
|
50
|
-
deferred.resolve(result);
|
|
40
|
+
TaskProcessor._canTransferArrayBuffer = new Promise((resolve) => {
|
|
41
|
+
worker.onmessage = function (event) {
|
|
42
|
+
const array = event.data.array;
|
|
51
43
|
|
|
52
|
-
|
|
44
|
+
// some versions of Firefox silently fail to transfer typed arrays.
|
|
45
|
+
// https://bugzilla.mozilla.org/show_bug.cgi?id=841904
|
|
46
|
+
// Check to make sure the value round-trips successfully.
|
|
47
|
+
const result = defined(array) && array[0] === value;
|
|
48
|
+
resolve(result);
|
|
53
49
|
|
|
54
|
-
|
|
55
|
-
};
|
|
50
|
+
worker.terminate();
|
|
56
51
|
|
|
57
|
-
|
|
52
|
+
TaskProcessor._canTransferArrayBuffer = result;
|
|
53
|
+
};
|
|
54
|
+
});
|
|
58
55
|
}
|
|
59
56
|
|
|
60
57
|
return TaskProcessor._canTransferArrayBuffer;
|
|
@@ -62,37 +59,6 @@ function canTransferArrayBuffer() {
|
|
|
62
59
|
|
|
63
60
|
const taskCompletedEvent = new Event();
|
|
64
61
|
|
|
65
|
-
function completeTask(processor, data) {
|
|
66
|
-
--processor._activeTasks;
|
|
67
|
-
|
|
68
|
-
const id = data.id;
|
|
69
|
-
if (!defined(id)) {
|
|
70
|
-
// This is not one of ours.
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
const deferreds = processor._deferreds;
|
|
75
|
-
const deferred = deferreds[id];
|
|
76
|
-
|
|
77
|
-
if (defined(data.error)) {
|
|
78
|
-
let error = data.error;
|
|
79
|
-
if (error.name === "RuntimeError") {
|
|
80
|
-
error = new RuntimeError(data.error.message);
|
|
81
|
-
error.stack = data.error.stack;
|
|
82
|
-
} else if (error.name === "DeveloperError") {
|
|
83
|
-
error = new DeveloperError(data.error.message);
|
|
84
|
-
error.stack = data.error.stack;
|
|
85
|
-
}
|
|
86
|
-
taskCompletedEvent.raiseEvent(error);
|
|
87
|
-
deferred.reject(error);
|
|
88
|
-
} else {
|
|
89
|
-
taskCompletedEvent.raiseEvent();
|
|
90
|
-
deferred.resolve(data.result);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
delete deferreds[id];
|
|
94
|
-
}
|
|
95
|
-
|
|
96
62
|
function getWorkerUrl(moduleID) {
|
|
97
63
|
let url = buildModuleUrl(moduleID);
|
|
98
64
|
|
|
@@ -123,40 +89,28 @@ function getWorkerUrl(moduleID) {
|
|
|
123
89
|
return url;
|
|
124
90
|
}
|
|
125
91
|
|
|
126
|
-
let bootstrapperUrlResult;
|
|
127
|
-
function getBootstrapperUrl() {
|
|
128
|
-
if (!defined(bootstrapperUrlResult)) {
|
|
129
|
-
bootstrapperUrlResult = getWorkerUrl("Workers/cesiumWorkerBootstrapper.js");
|
|
130
|
-
}
|
|
131
|
-
return bootstrapperUrlResult;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
92
|
function createWorker(processor) {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
const bootstrapMessage = {
|
|
142
|
-
loaderConfig: {
|
|
143
|
-
paths: {
|
|
144
|
-
Workers: buildModuleUrl("Workers"),
|
|
145
|
-
},
|
|
146
|
-
baseUrl: buildModuleUrl.getCesiumBaseUrl().url,
|
|
147
|
-
},
|
|
148
|
-
workerModule: processor._workerPath,
|
|
149
|
-
};
|
|
93
|
+
if (!FeatureDetection.supportsEsmWebWorkers()) {
|
|
94
|
+
throw new RuntimeError(
|
|
95
|
+
"This browser is not supported. Please update your browser to continue."
|
|
96
|
+
);
|
|
97
|
+
}
|
|
150
98
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
99
|
+
const uri = new Uri(processor._workerPath);
|
|
100
|
+
const isUri = uri.scheme().length !== 0 && uri.fragment().length === 0;
|
|
101
|
+
const workerPath = isUri
|
|
102
|
+
? processor._workerPath
|
|
103
|
+
: getWorkerUrl(
|
|
104
|
+
`${
|
|
105
|
+
TaskProcessor._workerModulePrefix +
|
|
106
|
+
processor._workerPath.replace(/\.js$/, "")
|
|
107
|
+
}.js`
|
|
108
|
+
);
|
|
155
109
|
|
|
156
|
-
return
|
|
110
|
+
return new Worker(workerPath, { type: "module" });
|
|
157
111
|
}
|
|
158
112
|
|
|
159
|
-
function getWebAssemblyLoaderConfig(processor, wasmOptions) {
|
|
113
|
+
async function getWebAssemblyLoaderConfig(processor, wasmOptions) {
|
|
160
114
|
const config = {
|
|
161
115
|
modulePath: undefined,
|
|
162
116
|
wasmBinaryFile: undefined,
|
|
@@ -172,18 +126,17 @@ function getWebAssemblyLoaderConfig(processor, wasmOptions) {
|
|
|
172
126
|
}
|
|
173
127
|
|
|
174
128
|
config.modulePath = buildModuleUrl(wasmOptions.fallbackModulePath);
|
|
175
|
-
return
|
|
129
|
+
return config;
|
|
176
130
|
}
|
|
177
131
|
|
|
178
|
-
config.modulePath = buildModuleUrl(wasmOptions.modulePath);
|
|
179
132
|
config.wasmBinaryFile = buildModuleUrl(wasmOptions.wasmBinaryFile);
|
|
180
133
|
|
|
181
|
-
|
|
134
|
+
const arrayBuffer = await Resource.fetchArrayBuffer({
|
|
182
135
|
url: config.wasmBinaryFile,
|
|
183
|
-
}).then(function (arrayBuffer) {
|
|
184
|
-
config.wasmBinary = arrayBuffer;
|
|
185
|
-
return config;
|
|
186
136
|
});
|
|
137
|
+
|
|
138
|
+
config.wasmBinary = arrayBuffer;
|
|
139
|
+
return config;
|
|
187
140
|
}
|
|
188
141
|
|
|
189
142
|
/**
|
|
@@ -201,21 +154,89 @@ function getWebAssemblyLoaderConfig(processor, wasmOptions) {
|
|
|
201
154
|
* work to be rescheduled in future frames.
|
|
202
155
|
*/
|
|
203
156
|
function TaskProcessor(workerPath, maximumActiveTasks) {
|
|
204
|
-
|
|
205
|
-
this._workerPath =
|
|
206
|
-
uri.scheme().length !== 0 && uri.fragment().length === 0
|
|
207
|
-
? workerPath
|
|
208
|
-
: TaskProcessor._workerModulePrefix + workerPath;
|
|
157
|
+
this._workerPath = workerPath;
|
|
209
158
|
this._maximumActiveTasks = defaultValue(
|
|
210
159
|
maximumActiveTasks,
|
|
211
160
|
Number.POSITIVE_INFINITY
|
|
212
161
|
);
|
|
213
162
|
this._activeTasks = 0;
|
|
214
|
-
this._deferreds = {};
|
|
215
163
|
this._nextID = 0;
|
|
164
|
+
this._webAssemblyPromise = undefined;
|
|
216
165
|
}
|
|
217
166
|
|
|
167
|
+
const createOnmessageHandler = (worker, id, resolve, reject) => {
|
|
168
|
+
const listener = ({ data }) => {
|
|
169
|
+
if (data.id !== id) {
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
if (defined(data.error)) {
|
|
174
|
+
let error = data.error;
|
|
175
|
+
if (error.name === "RuntimeError") {
|
|
176
|
+
error = new RuntimeError(data.error.message);
|
|
177
|
+
error.stack = data.error.stack;
|
|
178
|
+
} else if (error.name === "DeveloperError") {
|
|
179
|
+
error = new DeveloperError(data.error.message);
|
|
180
|
+
error.stack = data.error.stack;
|
|
181
|
+
} else if (error.name === "Error") {
|
|
182
|
+
error = new Error(data.error.message);
|
|
183
|
+
error.stack = data.error.stack;
|
|
184
|
+
}
|
|
185
|
+
taskCompletedEvent.raiseEvent(error);
|
|
186
|
+
reject(error);
|
|
187
|
+
} else {
|
|
188
|
+
taskCompletedEvent.raiseEvent();
|
|
189
|
+
resolve(data.result);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
worker.removeEventListener("message", listener);
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
return listener;
|
|
196
|
+
};
|
|
197
|
+
|
|
218
198
|
const emptyTransferableObjectArray = [];
|
|
199
|
+
async function runTask(processor, parameters, transferableObjects) {
|
|
200
|
+
const canTransfer = await Promise.resolve(canTransferArrayBuffer());
|
|
201
|
+
if (!defined(transferableObjects)) {
|
|
202
|
+
transferableObjects = emptyTransferableObjectArray;
|
|
203
|
+
} else if (!canTransfer) {
|
|
204
|
+
transferableObjects.length = 0;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
const id = processor._nextID++;
|
|
208
|
+
const promise = new Promise((resolve, reject) => {
|
|
209
|
+
processor._worker.addEventListener(
|
|
210
|
+
"message",
|
|
211
|
+
createOnmessageHandler(processor._worker, id, resolve, reject)
|
|
212
|
+
);
|
|
213
|
+
});
|
|
214
|
+
|
|
215
|
+
processor._worker.postMessage(
|
|
216
|
+
{
|
|
217
|
+
id: id,
|
|
218
|
+
baseUrl: buildModuleUrl.getCesiumBaseUrl().url,
|
|
219
|
+
parameters: parameters,
|
|
220
|
+
canTransferArrayBuffer: canTransfer,
|
|
221
|
+
},
|
|
222
|
+
transferableObjects
|
|
223
|
+
);
|
|
224
|
+
|
|
225
|
+
return promise;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
async function scheduleTask(processor, parameters, transferableObjects) {
|
|
229
|
+
++processor._activeTasks;
|
|
230
|
+
|
|
231
|
+
try {
|
|
232
|
+
const result = await runTask(processor, parameters, transferableObjects);
|
|
233
|
+
--processor._activeTasks;
|
|
234
|
+
return result;
|
|
235
|
+
} catch (error) {
|
|
236
|
+
--processor._activeTasks;
|
|
237
|
+
throw error;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
219
240
|
|
|
220
241
|
/**
|
|
221
242
|
* Schedule a task to be processed by the web worker asynchronously. If there are currently more
|
|
@@ -255,82 +276,65 @@ TaskProcessor.prototype.scheduleTask = function (
|
|
|
255
276
|
return undefined;
|
|
256
277
|
}
|
|
257
278
|
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
const processor = this;
|
|
261
|
-
return Promise.resolve(canTransferArrayBuffer()).then(function (
|
|
262
|
-
canTransferArrayBuffer
|
|
263
|
-
) {
|
|
264
|
-
if (!defined(transferableObjects)) {
|
|
265
|
-
transferableObjects = emptyTransferableObjectArray;
|
|
266
|
-
} else if (!canTransferArrayBuffer) {
|
|
267
|
-
transferableObjects.length = 0;
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
const id = processor._nextID++;
|
|
271
|
-
const deferred = defer();
|
|
272
|
-
processor._deferreds[id] = deferred;
|
|
273
|
-
|
|
274
|
-
processor._worker.postMessage(
|
|
275
|
-
{
|
|
276
|
-
id: id,
|
|
277
|
-
parameters: parameters,
|
|
278
|
-
canTransferArrayBuffer: canTransferArrayBuffer,
|
|
279
|
-
},
|
|
280
|
-
transferableObjects
|
|
281
|
-
);
|
|
282
|
-
|
|
283
|
-
return deferred.promise;
|
|
284
|
-
});
|
|
279
|
+
return scheduleTask(this, parameters, transferableObjects);
|
|
285
280
|
};
|
|
286
281
|
|
|
287
282
|
/**
|
|
288
283
|
* Posts a message to a web worker with configuration to initialize loading
|
|
289
|
-
* and compiling a web assembly module
|
|
284
|
+
* and compiling a web assembly module asynchronously, as well as an optional
|
|
290
285
|
* fallback JavaScript module to use if Web Assembly is not supported.
|
|
291
286
|
*
|
|
292
287
|
* @param {object} [webAssemblyOptions] An object with the following properties:
|
|
293
288
|
* @param {string} [webAssemblyOptions.modulePath] The path of the web assembly JavaScript wrapper module.
|
|
294
289
|
* @param {string} [webAssemblyOptions.wasmBinaryFile] The path of the web assembly binary file.
|
|
295
290
|
* @param {string} [webAssemblyOptions.fallbackModulePath] The path of the fallback JavaScript module to use if web assembly is not supported.
|
|
296
|
-
* @returns {Promise
|
|
291
|
+
* @returns {Promise<*>} A promise that resolves to the result when the web worker has loaded and compiled the web assembly module and is ready to process tasks.
|
|
292
|
+
*
|
|
293
|
+
* @exception {RuntimeError} This browser does not support Web Assembly, and no backup module was provided
|
|
297
294
|
*/
|
|
298
|
-
TaskProcessor.prototype.initWebAssemblyModule = function (
|
|
299
|
-
|
|
300
|
-
|
|
295
|
+
TaskProcessor.prototype.initWebAssemblyModule = async function (
|
|
296
|
+
webAssemblyOptions
|
|
297
|
+
) {
|
|
298
|
+
if (defined(this._webAssemblyPromise)) {
|
|
299
|
+
return this._webAssemblyPromise;
|
|
301
300
|
}
|
|
302
301
|
|
|
303
|
-
const
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
transferableObjects = [binary];
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
worker.onmessage = function (event) {
|
|
319
|
-
worker.onmessage = function (event) {
|
|
320
|
-
completeTask(processor, event.data);
|
|
321
|
-
};
|
|
302
|
+
const init = async () => {
|
|
303
|
+
const worker = (this._worker = createWorker(this));
|
|
304
|
+
const wasmConfig = await getWebAssemblyLoaderConfig(
|
|
305
|
+
this,
|
|
306
|
+
webAssemblyOptions
|
|
307
|
+
);
|
|
308
|
+
const canTransfer = await Promise.resolve(canTransferArrayBuffer());
|
|
309
|
+
let transferableObjects;
|
|
310
|
+
const binary = wasmConfig.wasmBinary;
|
|
311
|
+
if (defined(binary) && canTransfer) {
|
|
312
|
+
transferableObjects = [binary];
|
|
313
|
+
}
|
|
322
314
|
|
|
323
|
-
|
|
315
|
+
const promise = new Promise((resolve, reject) => {
|
|
316
|
+
worker.onmessage = function ({ data }) {
|
|
317
|
+
if (defined(data)) {
|
|
318
|
+
resolve(data.result);
|
|
319
|
+
} else {
|
|
320
|
+
reject(new RuntimeError("Could not configure wasm module"));
|
|
321
|
+
}
|
|
324
322
|
};
|
|
325
|
-
|
|
326
|
-
worker.postMessage(
|
|
327
|
-
{ webAssemblyConfig: wasmConfig },
|
|
328
|
-
transferableObjects
|
|
329
|
-
);
|
|
330
323
|
});
|
|
331
|
-
});
|
|
332
324
|
|
|
333
|
-
|
|
325
|
+
worker.postMessage(
|
|
326
|
+
{
|
|
327
|
+
canTransferArrayBuffer: canTransfer,
|
|
328
|
+
parameters: { webAssemblyConfig: wasmConfig },
|
|
329
|
+
},
|
|
330
|
+
transferableObjects
|
|
331
|
+
);
|
|
332
|
+
|
|
333
|
+
return promise;
|
|
334
|
+
};
|
|
335
|
+
|
|
336
|
+
this._webAssemblyPromise = init();
|
|
337
|
+
return this._webAssemblyPromise;
|
|
334
338
|
};
|
|
335
339
|
|
|
336
340
|
/**
|
|
@@ -749,10 +749,10 @@ const rotation2Scratch = new Matrix3();
|
|
|
749
749
|
*
|
|
750
750
|
*
|
|
751
751
|
* @example
|
|
752
|
-
* // Transform a point from the
|
|
752
|
+
* // Transform a point from the Fixed axes to the ICRF axes.
|
|
753
753
|
* const now = Cesium.JulianDate.now();
|
|
754
754
|
* const pointInFixed = Cesium.Cartesian3.fromDegrees(0.0, 0.0);
|
|
755
|
-
* const fixedToIcrf = Cesium.Transforms.
|
|
755
|
+
* const fixedToIcrf = Cesium.Transforms.computeFixedToIcrfMatrix(now);
|
|
756
756
|
* let pointInInertial = new Cesium.Cartesian3();
|
|
757
757
|
* if (Cesium.defined(fixedToIcrf)) {
|
|
758
758
|
* pointInInertial = Cesium.Matrix3.multiplyByVector(fixedToIcrf, pointInFixed, pointInInertial);
|
|
@@ -21,7 +21,7 @@ function getBaseUrlFromCesiumScript() {
|
|
|
21
21
|
let a;
|
|
22
22
|
function tryMakeAbsolute(url) {
|
|
23
23
|
if (typeof document === "undefined") {
|
|
24
|
-
//Node.js and Web Workers. In both cases, the URL will already be absolute.
|
|
24
|
+
// Node.js and Web Workers. In both cases, the URL will already be absolute.
|
|
25
25
|
return url;
|
|
26
26
|
}
|
|
27
27
|
|
|
@@ -29,10 +29,6 @@ function tryMakeAbsolute(url) {
|
|
|
29
29
|
a = document.createElement("a");
|
|
30
30
|
}
|
|
31
31
|
a.href = url;
|
|
32
|
-
|
|
33
|
-
// IE only absolutizes href on get, not set
|
|
34
|
-
// eslint-disable-next-line no-self-assign
|
|
35
|
-
a.href = a.href;
|
|
36
32
|
return a.href;
|
|
37
33
|
}
|
|
38
34
|
|
|
@@ -45,17 +41,22 @@ function getCesiumBaseUrl() {
|
|
|
45
41
|
let baseUrlString;
|
|
46
42
|
if (typeof CESIUM_BASE_URL !== "undefined") {
|
|
47
43
|
baseUrlString = CESIUM_BASE_URL;
|
|
44
|
+
} else if (defined(import.meta) && defined(import.meta.url)) {
|
|
45
|
+
// ESM
|
|
46
|
+
baseUrlString = getAbsoluteUri(".", import.meta.url);
|
|
48
47
|
} else if (
|
|
49
48
|
typeof define === "object" &&
|
|
50
49
|
defined(define.amd) &&
|
|
51
50
|
!define.amd.toUrlUndefined &&
|
|
52
51
|
defined(require.toUrl)
|
|
53
52
|
) {
|
|
53
|
+
// RequireJS
|
|
54
54
|
baseUrlString = getAbsoluteUri(
|
|
55
55
|
"..",
|
|
56
56
|
buildModuleUrl("Core/buildModuleUrl.js")
|
|
57
57
|
);
|
|
58
58
|
} else {
|
|
59
|
+
// IIFE
|
|
59
60
|
baseUrlString = getBaseUrlFromCesiumScript();
|
|
60
61
|
}
|
|
61
62
|
|
|
@@ -1822,11 +1822,13 @@ function processPositionArrayPacketData(
|
|
|
1822
1822
|
packetData.array = Cartesian3.unpackArray(packetData.cartesian);
|
|
1823
1823
|
} else if (defined(packetData.cartographicRadians)) {
|
|
1824
1824
|
packetData.array = Cartesian3.fromRadiansArrayHeights(
|
|
1825
|
-
packetData.cartographicRadians
|
|
1825
|
+
packetData.cartographicRadians,
|
|
1826
|
+
Ellipsoid.WGS84
|
|
1826
1827
|
);
|
|
1827
1828
|
} else if (defined(packetData.cartographicDegrees)) {
|
|
1828
1829
|
packetData.array = Cartesian3.fromDegreesArrayHeights(
|
|
1829
|
-
packetData.cartographicDegrees
|
|
1830
|
+
packetData.cartographicDegrees,
|
|
1831
|
+
Ellipsoid.WGS84
|
|
1830
1832
|
);
|
|
1831
1833
|
}
|
|
1832
1834
|
|
|
@@ -1878,11 +1880,11 @@ function unpackCartesianArray(array) {
|
|
|
1878
1880
|
}
|
|
1879
1881
|
|
|
1880
1882
|
function unpackCartographicRadiansArray(array) {
|
|
1881
|
-
return Cartesian3.fromRadiansArrayHeights(array);
|
|
1883
|
+
return Cartesian3.fromRadiansArrayHeights(array, Ellipsoid.WGS84);
|
|
1882
1884
|
}
|
|
1883
1885
|
|
|
1884
1886
|
function unpackCartographicDegreesArray(array) {
|
|
1885
|
-
return Cartesian3.fromDegreesArrayHeights(array);
|
|
1887
|
+
return Cartesian3.fromDegreesArrayHeights(array, Ellipsoid.WGS84);
|
|
1886
1888
|
}
|
|
1887
1889
|
|
|
1888
1890
|
function processPositionArrayOfArraysPacketData(
|
|
@@ -4,7 +4,7 @@ import Resource from "../Core/Resource.js";
|
|
|
4
4
|
|
|
5
5
|
let defaultTokenCredit;
|
|
6
6
|
const defaultAccessToken =
|
|
7
|
-
"
|
|
7
|
+
"AAPK101bfb95c8624cafa30b55ec1709f9e65mp_hzhcQWdW-Km2L7Gukj--gHqZ8PQIEfih4Wa00sxBZyuTpBisCt5aJNvQm32h";
|
|
8
8
|
/**
|
|
9
9
|
* Default options for accessing the ArcGIS image tile service.
|
|
10
10
|
*
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import defined from "../Core/defined.js";
|
|
2
2
|
import FeatureDetection from "../Core/FeatureDetection.js";
|
|
3
|
+
import RuntimeError from "../Core/RuntimeError.js";
|
|
3
4
|
import TaskProcessor from "../Core/TaskProcessor.js";
|
|
4
5
|
|
|
5
6
|
/**
|
|
@@ -16,6 +17,7 @@ DracoLoader._maxDecodingConcurrency = Math.max(
|
|
|
16
17
|
// Exposed for testing purposes
|
|
17
18
|
DracoLoader._decoderTaskProcessor = undefined;
|
|
18
19
|
DracoLoader._taskProcessorReady = false;
|
|
20
|
+
DracoLoader._error = undefined;
|
|
19
21
|
DracoLoader._getDecoderTaskProcessor = function () {
|
|
20
22
|
if (!defined(DracoLoader._decoderTaskProcessor)) {
|
|
21
23
|
const processor = new TaskProcessor(
|
|
@@ -24,11 +26,19 @@ DracoLoader._getDecoderTaskProcessor = function () {
|
|
|
24
26
|
);
|
|
25
27
|
processor
|
|
26
28
|
.initWebAssemblyModule({
|
|
27
|
-
modulePath: "ThirdParty/Workers/draco_decoder_nodejs.js",
|
|
28
29
|
wasmBinaryFile: "ThirdParty/draco_decoder.wasm",
|
|
29
30
|
})
|
|
30
|
-
.then(function () {
|
|
31
|
-
|
|
31
|
+
.then(function (result) {
|
|
32
|
+
if (result) {
|
|
33
|
+
DracoLoader._taskProcessorReady = true;
|
|
34
|
+
} else {
|
|
35
|
+
DracoLoader._error = new RuntimeError(
|
|
36
|
+
"Draco decoder could not be initialized."
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
})
|
|
40
|
+
.catch((error) => {
|
|
41
|
+
DracoLoader._error = error;
|
|
32
42
|
});
|
|
33
43
|
DracoLoader._decoderTaskProcessor = processor;
|
|
34
44
|
}
|
|
@@ -39,9 +49,15 @@ DracoLoader._getDecoderTaskProcessor = function () {
|
|
|
39
49
|
/**
|
|
40
50
|
* Decodes a compressed point cloud. Returns undefined if the task cannot be scheduled.
|
|
41
51
|
* @private
|
|
52
|
+
*
|
|
53
|
+
* @exception {RuntimeError} Draco decoder could not be initialized.
|
|
42
54
|
*/
|
|
43
55
|
DracoLoader.decodePointCloud = function (parameters) {
|
|
44
56
|
const decoderTaskProcessor = DracoLoader._getDecoderTaskProcessor();
|
|
57
|
+
if (defined(DracoLoader._error)) {
|
|
58
|
+
throw DracoLoader._error;
|
|
59
|
+
}
|
|
60
|
+
|
|
45
61
|
if (!DracoLoader._taskProcessorReady) {
|
|
46
62
|
// The task processor is not ready to schedule tasks
|
|
47
63
|
return;
|
|
@@ -62,9 +78,16 @@ DracoLoader.decodePointCloud = function (parameters) {
|
|
|
62
78
|
*
|
|
63
79
|
* @returns {Promise} A promise that resolves to the decoded indices and attributes.
|
|
64
80
|
* @private
|
|
81
|
+
*
|
|
82
|
+
* @exception {RuntimeError} Draco decoder could not be initialized.
|
|
65
83
|
*/
|
|
66
84
|
DracoLoader.decodeBufferView = function (options) {
|
|
67
85
|
const decoderTaskProcessor = DracoLoader._getDecoderTaskProcessor();
|
|
86
|
+
|
|
87
|
+
if (defined(DracoLoader._error)) {
|
|
88
|
+
throw DracoLoader._error;
|
|
89
|
+
}
|
|
90
|
+
|
|
68
91
|
if (!DracoLoader._taskProcessorReady) {
|
|
69
92
|
// The task processor is not ready to schedule tasks
|
|
70
93
|
return;
|
|
@@ -103,14 +103,8 @@ GltfLoaderUtil.createSampler = function (options) {
|
|
|
103
103
|
magFilter = defaultValue(sampler.magFilter, magFilter);
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
let usesTextureTransform = false;
|
|
107
|
-
const extensions = textureInfo.extensions;
|
|
108
|
-
if (defined(extensions) && defined(extensions.KHR_texture_transform)) {
|
|
109
|
-
usesTextureTransform = true;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
106
|
if (
|
|
113
|
-
|
|
107
|
+
compressedTextureNoMipmap &&
|
|
114
108
|
minFilter !== TextureMinificationFilter.LINEAR &&
|
|
115
109
|
minFilter !== TextureMinificationFilter.NEAREST
|
|
116
110
|
) {
|