@cesium/engine 3.0.2 → 5.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-2U6EBIRX.js +757 -0
- package/Build/Workers/chunk-2ZI7FZ3Q.js +58 -0
- package/Build/Workers/chunk-3TSHZWOZ.js +1860 -0
- package/Build/Workers/chunk-44B6FQSJ.js +684 -0
- package/Build/Workers/chunk-4AJR66C5.js +368 -0
- package/Build/Workers/chunk-4HN3N5SE.js +501 -0
- package/Build/Workers/chunk-4QGPYV3W.js +102 -0
- package/Build/Workers/chunk-4RKE4B3G.js +476 -0
- package/Build/Workers/chunk-5E3V7Y4R.js +196 -0
- package/Build/Workers/chunk-6EHT6GS3.js +163 -0
- package/Build/Workers/chunk-6I22NWKQ.js +171 -0
- package/Build/Workers/chunk-7N67FBLW.js +1054 -0
- package/Build/Workers/chunk-AQQGAFKX.js +124 -0
- package/Build/Workers/chunk-CROU4RHL.js +138 -0
- package/Build/Workers/chunk-CTJCECTX.js +258 -0
- package/Build/Workers/chunk-DWJZFZ67.js +781 -0
- package/Build/Workers/chunk-EHJQEARC.js +59 -0
- package/Build/Workers/chunk-EVLKHUAE.js +1477 -0
- package/Build/Workers/chunk-FOOYJER7.js +834 -0
- package/Build/Workers/chunk-GLCRFDOB.js +73 -0
- package/Build/Workers/chunk-GPO47TW4.js +39 -0
- package/Build/Workers/chunk-H5Q2JKIA.js +1075 -0
- package/Build/Workers/chunk-HIDSEUWS.js +2041 -0
- package/Build/Workers/chunk-HV67ARO7.js +302 -0
- package/Build/Workers/chunk-IC7G4BX2.js +421 -0
- package/Build/Workers/chunk-IQN2LMGD.js +55 -0
- package/Build/Workers/chunk-J2FHYK2Z.js +55 -0
- package/Build/Workers/chunk-K3VEWONC.js +289 -0
- package/Build/Workers/chunk-KZFXE35V.js +117 -0
- package/Build/Workers/chunk-MG2TXIO5.js +400 -0
- package/Build/Workers/chunk-MRCFDEKH.js +138 -0
- package/Build/Workers/chunk-MYDS6HBL.js +3273 -0
- package/Build/Workers/chunk-OCIX2CQ7.js +305 -0
- package/Build/Workers/chunk-P32XMW4I.js +2716 -0
- package/Build/Workers/chunk-PEVZYZBQ.js +157 -0
- package/Build/Workers/chunk-PMDLIBEQ.js +218 -0
- package/Build/Workers/chunk-QDUOGCCO.js +1009 -0
- package/Build/Workers/chunk-QUCJGBCK.js +430 -0
- package/Build/Workers/chunk-RCI7BSOM.js +452 -0
- package/Build/Workers/chunk-SVTSC7FX.js +390 -0
- package/Build/Workers/chunk-TXOGSFHZ.js +77 -0
- package/Build/Workers/chunk-TXYJOVQK.js +629 -0
- package/Build/Workers/chunk-UFIT5XDI.js +1258 -0
- package/Build/Workers/chunk-ULLMQNFQ.js +73 -0
- package/Build/Workers/chunk-UM7FIUQW.js +101 -0
- package/Build/Workers/{package.js → chunk-UMLTOPAE.js} +13 -2
- package/Build/Workers/chunk-V5S5N2IS.js +8644 -0
- package/Build/Workers/chunk-VN2IHJKM.js +513 -0
- package/Build/Workers/chunk-VWSD2XV5.js +669 -0
- package/Build/Workers/chunk-X2KIWBTW.js +100 -0
- package/Build/Workers/chunk-Y24CDOJC.js +353 -0
- package/Build/Workers/chunk-YLMDWSXO.js +44 -0
- package/Build/Workers/chunk-YNZ4DMR7.js +634 -0
- package/Build/Workers/chunk-Z2MP3UBE.js +236 -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 +1163 -1307
- package/Build/Workers/createCorridorOutlineGeometry.js +534 -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 -2012
- package/Build/Workers/createPlaneGeometry.js +216 -243
- package/Build/Workers/createPlaneOutlineGeometry.js +121 -113
- package/Build/Workers/createPolygonGeometry.js +1437 -1314
- package/Build/Workers/createPolygonOutlineGeometry.js +516 -657
- package/Build/Workers/createPolylineGeometry.js +471 -547
- package/Build/Workers/createPolylineVolumeGeometry.js +354 -384
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +272 -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 +3351 -1473
- package/Build/Workers/transferTypedArrayTest.js +3 -4
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +748 -953
- package/LICENSE.md +0 -12
- package/Source/Core/CesiumTerrainProvider.js +1 -2
- package/Source/Core/Credit.js +7 -1
- package/Source/Core/FeatureDetection.js +9 -0
- package/Source/Core/GoogleMaps.js +1 -2
- package/Source/Core/Ion.js +1 -2
- package/Source/Core/KTX2Transcoder.js +7 -3
- package/Source/Core/PolygonGeometry.js +340 -27
- package/Source/Core/PolygonGeometryLibrary.js +302 -1
- package/Source/Core/Stereographic.js +247 -0
- package/Source/Core/TaskProcessor.js +185 -168
- package/Source/Core/Transforms.js +2 -2
- package/Source/Core/buildModuleUrl.js +6 -5
- package/Source/Core/sampleTerrain.js +43 -10
- package/Source/Core/sampleTerrainMostDetailed.js +27 -3
- package/Source/Scene/ArcGisMapService.js +1 -2
- package/Source/Scene/Billboard.js +7 -0
- package/Source/Scene/Cesium3DTilePass.js +1 -1
- package/Source/Scene/Cesium3DTileset.js +38 -81
- package/Source/Scene/CreditDisplay.js +2 -2
- package/Source/Scene/DracoLoader.js +26 -3
- package/Source/Scene/I3SDataProvider.js +0 -27
- package/Source/Scene/I3SDecoder.js +127 -0
- package/Source/Scene/I3SNode.js +32 -110
- package/Source/Scene/Implicit3DTileContent.js +13 -0
- package/Source/Scene/ImplicitTileset.js +5 -0
- package/Source/Scene/LabelCollection.js +3 -1
- package/Source/Scene/Model/I3dmLoader.js +5 -1
- package/Source/Scene/Model/Model.js +20 -23
- package/Source/Scene/OpenStreetMapImageryProvider.js +4 -1
- package/Source/Scene/PostProcessStageLibrary.js +3 -3
- package/Source/Scene/PrimitiveCollection.js +39 -0
- package/Source/Scene/Scene.js +3 -0
- package/Source/Scene/SingleTileImageryProvider.js +4 -2
- package/Source/ThirdParty/Workers/basis_transcoder.js +1 -1
- package/Source/Widget/CesiumWidget.js +2 -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 +69 -35
- package/index.js +189 -187
- package/package.json +2 -1
- package/Build/Workers/ArcType-2d9abbbc.js +0 -37
- package/Build/Workers/AttributeCompression-f9f6c717.js +0 -716
- package/Build/Workers/AxisAlignedBoundingBox-a03420b1.js +0 -258
- package/Build/Workers/BoundingRectangle-32fa8a4a.js +0 -369
- package/Build/Workers/BoxGeometry-cd550612.js +0 -884
- package/Build/Workers/Check-6ede7e26.js +0 -290
- package/Build/Workers/Color-571a6085.js +0 -2262
- package/Build/Workers/ComponentDatatype-cf1fa08e.js +0 -341
- package/Build/Workers/CoplanarPolygonGeometryLibrary-488b1a9f.js +0 -132
- package/Build/Workers/CorridorGeometryLibrary-fc4ff147.js +0 -498
- package/Build/Workers/CylinderGeometry-bc26926d.js +0 -467
- package/Build/Workers/CylinderGeometryLibrary-7bf291b4.js +0 -63
- package/Build/Workers/EllipseGeometry-89533a10.js +0 -1304
- package/Build/Workers/EllipseGeometryLibrary-b0d7df17.js +0 -366
- package/Build/Workers/EllipseOutlineGeometry-63ff7a87.js +0 -443
- package/Build/Workers/EllipsoidGeodesic-5b3623dc.js +0 -520
- package/Build/Workers/EllipsoidGeometry-07e99d2d.js +0 -637
- package/Build/Workers/EllipsoidOutlineGeometry-ba5c7ee2.js +0 -454
- package/Build/Workers/EllipsoidRhumbLine-ef872433.js +0 -741
- package/Build/Workers/EllipsoidTangentPlane-65d41b3e.js +0 -373
- package/Build/Workers/EncodedCartesian3-57415c8a.js +0 -171
- package/Build/Workers/FrustumGeometry-4a7589ed.js +0 -2540
- package/Build/Workers/GeometryAttribute-a5b6275b.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-fa9e6ffc.js +0 -3690
- package/Build/Workers/IndexDatatype-2643aa47.js +0 -200
- package/Build/Workers/IntersectionTests-feace3da.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-6b94d955.js +0 -1259
- package/Build/Workers/Plane-4c3d403b.js +0 -309
- package/Build/Workers/PolygonGeometryLibrary-4ffc457d.js +0 -1074
- package/Build/Workers/PolygonPipeline-d5e66350.js +0 -1344
- package/Build/Workers/PolylinePipeline-83410f0c.js +0 -573
- package/Build/Workers/PolylineVolumeGeometryLibrary-290e7aec.js +0 -781
- package/Build/Workers/PrimitivePipeline-6081d138.js +0 -966
- package/Build/Workers/RectangleGeometryLibrary-986710d8.js +0 -280
- package/Build/Workers/RuntimeError-ef395448.js +0 -68
- package/Build/Workers/TerrainEncoding-528e1d68.js +0 -1227
- package/Build/Workers/Transforms-b527bb09.js +0 -14714
- package/Build/Workers/VertexFormat-030f11ff.js +0 -312
- package/Build/Workers/WallGeometryLibrary-faf583f8.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/Source/Scene/I3SNode.js
CHANGED
|
@@ -3,7 +3,6 @@ import defaultValue from "../Core/defaultValue.js";
|
|
|
3
3
|
import defined from "../Core/defined.js";
|
|
4
4
|
import Ellipsoid from "../Core/Ellipsoid.js";
|
|
5
5
|
import HeadingPitchRoll from "../Core/HeadingPitchRoll.js";
|
|
6
|
-
import CesiumMath from "../Core/Math.js";
|
|
7
6
|
import Matrix3 from "../Core/Matrix3.js";
|
|
8
7
|
import Matrix4 from "../Core/Matrix4.js";
|
|
9
8
|
import Resource from "../Core/Resource.js";
|
|
@@ -11,6 +10,7 @@ import Quaternion from "../Core/Quaternion.js";
|
|
|
11
10
|
import Transforms from "../Core/Transforms.js";
|
|
12
11
|
import Cesium3DTile from "./Cesium3DTile.js";
|
|
13
12
|
import I3SDataProvider from "./I3SDataProvider.js";
|
|
13
|
+
import I3SDecoder from "./I3SDecoder.js";
|
|
14
14
|
import I3SFeature from "./I3SFeature.js";
|
|
15
15
|
import I3SField from "./I3SField.js";
|
|
16
16
|
import I3SGeometry from "./I3SGeometry.js";
|
|
@@ -608,71 +608,6 @@ I3SNode.prototype._create3DTileDefinition = function () {
|
|
|
608
608
|
return inPlaceTileDefinition;
|
|
609
609
|
};
|
|
610
610
|
|
|
611
|
-
/**
|
|
612
|
-
* @private
|
|
613
|
-
*/
|
|
614
|
-
I3SNode.prototype._createI3SDecoderTask = async function (
|
|
615
|
-
decodeI3STaskProcessor,
|
|
616
|
-
data
|
|
617
|
-
) {
|
|
618
|
-
// Prepare the data to send to the worker
|
|
619
|
-
const parentData = data.geometryData._parent._data;
|
|
620
|
-
const parentRotationInverseMatrix =
|
|
621
|
-
data.geometryData._parent._inverseRotationMatrix;
|
|
622
|
-
|
|
623
|
-
let longitude = 0.0;
|
|
624
|
-
let latitude = 0.0;
|
|
625
|
-
let height = 0.0;
|
|
626
|
-
|
|
627
|
-
if (defined(parentData.obb)) {
|
|
628
|
-
longitude = parentData.obb.center[0];
|
|
629
|
-
latitude = parentData.obb.center[1];
|
|
630
|
-
height = parentData.obb.center[2];
|
|
631
|
-
} else if (defined(parentData.mbs)) {
|
|
632
|
-
longitude = parentData.mbs[0];
|
|
633
|
-
latitude = parentData.mbs[1];
|
|
634
|
-
height = parentData.mbs[2];
|
|
635
|
-
}
|
|
636
|
-
|
|
637
|
-
const axisFlipRotation = Matrix3.fromRotationX(-CesiumMath.PI_OVER_TWO);
|
|
638
|
-
const parentRotation = new Matrix3();
|
|
639
|
-
|
|
640
|
-
Matrix3.multiply(
|
|
641
|
-
axisFlipRotation,
|
|
642
|
-
parentRotationInverseMatrix,
|
|
643
|
-
parentRotation
|
|
644
|
-
);
|
|
645
|
-
|
|
646
|
-
const cartographicCenter = Cartographic.fromDegrees(
|
|
647
|
-
longitude,
|
|
648
|
-
latitude,
|
|
649
|
-
height
|
|
650
|
-
);
|
|
651
|
-
|
|
652
|
-
const cartesianCenter = Ellipsoid.WGS84.cartographicToCartesian(
|
|
653
|
-
cartographicCenter
|
|
654
|
-
);
|
|
655
|
-
|
|
656
|
-
const payload = {
|
|
657
|
-
binaryData: data.geometryData._data,
|
|
658
|
-
featureData:
|
|
659
|
-
defined(data.featureData) && defined(data.featureData[0])
|
|
660
|
-
? data.featureData[0].data
|
|
661
|
-
: undefined,
|
|
662
|
-
schema: data.defaultGeometrySchema,
|
|
663
|
-
bufferInfo: data.geometryData._geometryBufferInfo,
|
|
664
|
-
ellipsoidRadiiSquare: Ellipsoid.WGS84.radiiSquared,
|
|
665
|
-
url: data.url,
|
|
666
|
-
geoidDataList: data.geometryData._dataProvider._geoidDataList,
|
|
667
|
-
cartographicCenter: cartographicCenter,
|
|
668
|
-
cartesianCenter: cartesianCenter,
|
|
669
|
-
parentRotation: parentRotation,
|
|
670
|
-
};
|
|
671
|
-
|
|
672
|
-
const transferrableObjects = [];
|
|
673
|
-
return decodeI3STaskProcessor.scheduleTask(payload, transferrableObjects);
|
|
674
|
-
};
|
|
675
|
-
|
|
676
611
|
/**
|
|
677
612
|
* @private
|
|
678
613
|
*/
|
|
@@ -702,59 +637,46 @@ I3SNode.prototype._createContentURL = async function () {
|
|
|
702
637
|
},
|
|
703
638
|
};
|
|
704
639
|
|
|
705
|
-
const decodeI3STaskProcessor = await this._dataProvider.getDecoderTaskProcessor();
|
|
706
|
-
|
|
707
640
|
// Load the geometry data
|
|
708
641
|
const dataPromises = [this._loadGeometryData()];
|
|
709
642
|
if (this._dataProvider.legacyVersion16) {
|
|
710
643
|
dataPromises.push(this._loadFeatureData());
|
|
711
644
|
}
|
|
712
645
|
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
parameters
|
|
729
|
-
);
|
|
730
|
-
if (!defined(promise)) {
|
|
731
|
-
// Postponed
|
|
732
|
-
return;
|
|
733
|
-
}
|
|
734
|
-
|
|
735
|
-
generateGltfPromise = promise.then(function (result) {
|
|
736
|
-
rawGltf = parameters.geometryData._generateGltf(
|
|
737
|
-
result.meshData.nodesInScene,
|
|
738
|
-
result.meshData.nodes,
|
|
739
|
-
result.meshData.meshes,
|
|
740
|
-
result.meshData.buffers,
|
|
741
|
-
result.meshData.bufferViews,
|
|
742
|
-
result.meshData.accessors
|
|
743
|
-
);
|
|
744
|
-
|
|
745
|
-
that._geometryData[0]._customAttributes =
|
|
746
|
-
result.meshData._customAttributes;
|
|
747
|
-
});
|
|
646
|
+
await Promise.all(dataPromises);
|
|
647
|
+
// Binary glTF
|
|
648
|
+
if (defined(this._geometryData) && this._geometryData.length > 0) {
|
|
649
|
+
const url = this._geometryData[0].resource.url;
|
|
650
|
+
const geometrySchema = this._layer._data.store.defaultGeometrySchema;
|
|
651
|
+
const geometryData = this._geometryData[0];
|
|
652
|
+
const result = await I3SDecoder.decode(
|
|
653
|
+
url,
|
|
654
|
+
geometrySchema,
|
|
655
|
+
geometryData,
|
|
656
|
+
this._featureData[0]
|
|
657
|
+
);
|
|
658
|
+
if (!defined(result)) {
|
|
659
|
+
// Postponed
|
|
660
|
+
return;
|
|
748
661
|
}
|
|
749
662
|
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
663
|
+
rawGltf = geometryData._generateGltf(
|
|
664
|
+
result.meshData.nodesInScene,
|
|
665
|
+
result.meshData.nodes,
|
|
666
|
+
result.meshData.meshes,
|
|
667
|
+
result.meshData.buffers,
|
|
668
|
+
result.meshData.bufferViews,
|
|
669
|
+
result.meshData.accessors
|
|
670
|
+
);
|
|
671
|
+
|
|
672
|
+
this._geometryData[0]._customAttributes = result.meshData._customAttributes;
|
|
673
|
+
}
|
|
674
|
+
|
|
675
|
+
const binaryGltfData = this._dataProvider._binarizeGltf(rawGltf);
|
|
676
|
+
const glbDataBlob = new Blob([binaryGltfData], {
|
|
677
|
+
type: "application/binary",
|
|
757
678
|
});
|
|
679
|
+
return URL.createObjectURL(glbDataBlob);
|
|
758
680
|
};
|
|
759
681
|
|
|
760
682
|
// Reimplement Cesium3DTile.prototype.requestContent so that
|
|
@@ -536,8 +536,21 @@ function deriveChildTile(
|
|
|
536
536
|
// user specified such as extras or extensions.
|
|
537
537
|
const deep = true;
|
|
538
538
|
const rootHeader = clone(implicitTileset.tileHeader, deep);
|
|
539
|
+
// The bounding volume was computed above since it may come from metadata
|
|
540
|
+
// in the subtree file.
|
|
539
541
|
delete rootHeader.boundingVolume;
|
|
542
|
+
// Copying the transform to all the transcoded tiles would cause the transform
|
|
543
|
+
// to be applied multiple times. Removing it from the header avoids this issue.
|
|
540
544
|
delete rootHeader.transform;
|
|
545
|
+
// The implicit tiling spec does not specify what should happen if explicit
|
|
546
|
+
// tile metadata is added to the placeholder tile. Since implicit tile
|
|
547
|
+
// metadata comes from the subtree file, ignore the explicit version.
|
|
548
|
+
//
|
|
549
|
+
// Also, when a property with the semantic TILE_BOUNDING_VOLUME is added to
|
|
550
|
+
// the placeholder tile to set a tight bounding volume (See Cesium3DTile.js)
|
|
551
|
+
// propagating it to transcoded tiles causes transcoded tiles to use the
|
|
552
|
+
// wrong bounding volume, this can lead to loading far too many tiles.
|
|
553
|
+
delete rootHeader.metadata;
|
|
541
554
|
const combinedTileJson = combine(tileJson, rootHeader, deep);
|
|
542
555
|
|
|
543
556
|
const childTile = makeTile(
|
|
@@ -60,6 +60,11 @@ function ImplicitTileset(baseResource, tileJson, metadataSchema) {
|
|
|
60
60
|
*/
|
|
61
61
|
this.metadataSchema = metadataSchema;
|
|
62
62
|
|
|
63
|
+
// Due to using explicit tile metadata to store a tight bounding box
|
|
64
|
+
// in some cases (see https://github.com/CesiumGS/cesium/pull/11365)
|
|
65
|
+
// it's important that this bounding volume is computed from the tile JSON
|
|
66
|
+
// (which is the original, possibly loose bounding volume) rather than
|
|
67
|
+
// tile.boundingVolume which is the tighter one.
|
|
63
68
|
const boundingVolume = tileJson.boundingVolume;
|
|
64
69
|
if (
|
|
65
70
|
!defined(boundingVolume.box) &&
|
|
@@ -56,7 +56,7 @@ function addWhitePixelCanvas(textureAtlas) {
|
|
|
56
56
|
|
|
57
57
|
// Canvas operations take a frame to draw. Use the asynchronous add function which resolves a promise and allows the draw to complete,
|
|
58
58
|
// but there's no need to wait on the promise before operation can continue
|
|
59
|
-
textureAtlas.addImage(whitePixelCanvasId, canvas);
|
|
59
|
+
return textureAtlas.addImage(whitePixelCanvasId, canvas);
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
// reusable object for calling writeTextToCanvas
|
|
@@ -911,6 +911,8 @@ LabelCollection.prototype.update = function (frameState) {
|
|
|
911
911
|
initialSize: whitePixelSize,
|
|
912
912
|
});
|
|
913
913
|
backgroundBillboardCollection.textureAtlas = this._backgroundTextureAtlas;
|
|
914
|
+
|
|
915
|
+
// Request a new render in request render mode after the next frame renders
|
|
914
916
|
addWhitePixelCanvas(this._backgroundTextureAtlas);
|
|
915
917
|
}
|
|
916
918
|
|
|
@@ -423,7 +423,11 @@ function createInstances(loader, components, frameState) {
|
|
|
423
423
|
// For I3DMs that do not define an RTC center, we manually compute a BoundingSphere and store
|
|
424
424
|
// positions relative to the center, to be uploaded to the GPU. This avoids jittering at higher
|
|
425
425
|
// precisions.
|
|
426
|
-
if
|
|
426
|
+
// Also manually compute if RTC center equals Cartesian3.ZERO
|
|
427
|
+
if (
|
|
428
|
+
!defined(rtcCenter) ||
|
|
429
|
+
Cartesian3.equals(Cartesian3.unpack(rtcCenter), Cartesian3.ZERO)
|
|
430
|
+
) {
|
|
427
431
|
const positionBoundingSphere = BoundingSphere.fromPoints(instancePositions);
|
|
428
432
|
|
|
429
433
|
for (i = 0; i < instancePositions.length; i++) {
|
|
@@ -408,6 +408,7 @@ function Model(options) {
|
|
|
408
408
|
credit = new Credit(credit);
|
|
409
409
|
}
|
|
410
410
|
|
|
411
|
+
this._credits = [];
|
|
411
412
|
this._credit = credit;
|
|
412
413
|
|
|
413
414
|
// Credits to be added from the Resource (if it is an IonResource)
|
|
@@ -1838,7 +1839,10 @@ Model.prototype.update = function (frameState) {
|
|
|
1838
1839
|
};
|
|
1839
1840
|
|
|
1840
1841
|
function processLoader(model, frameState) {
|
|
1841
|
-
if (
|
|
1842
|
+
if (
|
|
1843
|
+
!model._resourcesLoaded ||
|
|
1844
|
+
(model._loader.incrementallyLoadTextures && !model._texturesLoaded)
|
|
1845
|
+
) {
|
|
1842
1846
|
// Ensures frames continue to render in requestRender mode while resources are processing
|
|
1843
1847
|
frameState.afterRender.push(() => true);
|
|
1844
1848
|
return model._loader.process(frameState);
|
|
@@ -2255,24 +2259,29 @@ function updateShowCreditsOnScreen(model) {
|
|
|
2255
2259
|
return;
|
|
2256
2260
|
}
|
|
2257
2261
|
model._showCreditsOnScreenDirty = false;
|
|
2262
|
+
model._credits.length = 0;
|
|
2258
2263
|
|
|
2259
2264
|
const showOnScreen = model._showCreditsOnScreen;
|
|
2260
2265
|
if (defined(model._credit)) {
|
|
2261
|
-
|
|
2266
|
+
const credit = Credit.clone(model._credit);
|
|
2267
|
+
credit.showOnScreen = credit.showOnScreen || showOnScreen;
|
|
2268
|
+
model._credits.push(credit);
|
|
2262
2269
|
}
|
|
2263
2270
|
|
|
2264
2271
|
const resourceCredits = model._resourceCredits;
|
|
2265
2272
|
const resourceCreditsLength = resourceCredits.length;
|
|
2266
2273
|
for (let i = 0; i < resourceCreditsLength; i++) {
|
|
2267
|
-
resourceCredits[i]
|
|
2268
|
-
|
|
2274
|
+
const credit = Credit.clone(resourceCredits[i]);
|
|
2275
|
+
credit.showOnScreen = credit.showOnScreen || showOnScreen;
|
|
2276
|
+
model._credits.push(credit);
|
|
2269
2277
|
}
|
|
2270
2278
|
|
|
2271
2279
|
const gltfCredits = model._gltfCredits;
|
|
2272
2280
|
const gltfCreditsLength = gltfCredits.length;
|
|
2273
2281
|
for (let i = 0; i < gltfCreditsLength; i++) {
|
|
2274
|
-
gltfCredits[i]
|
|
2275
|
-
|
|
2282
|
+
const credit = Credit.clone(gltfCredits[i]);
|
|
2283
|
+
credit.showOnScreen = credit.showOnScreen || showOnScreen;
|
|
2284
|
+
model._credits.push(credit);
|
|
2276
2285
|
}
|
|
2277
2286
|
}
|
|
2278
2287
|
|
|
@@ -2382,22 +2391,10 @@ function passesDistanceDisplayCondition(model, frameState) {
|
|
|
2382
2391
|
|
|
2383
2392
|
function addCreditsToCreditDisplay(model, frameState) {
|
|
2384
2393
|
const creditDisplay = frameState.creditDisplay;
|
|
2385
|
-
|
|
2386
|
-
const
|
|
2387
|
-
|
|
2388
|
-
creditDisplay.addCreditToNextFrame(
|
|
2389
|
-
}
|
|
2390
|
-
|
|
2391
|
-
const resourceCredits = model._resourceCredits;
|
|
2392
|
-
const resourceCreditsLength = resourceCredits.length;
|
|
2393
|
-
for (let c = 0; c < resourceCreditsLength; c++) {
|
|
2394
|
-
creditDisplay.addCreditToNextFrame(resourceCredits[c]);
|
|
2395
|
-
}
|
|
2396
|
-
|
|
2397
|
-
const gltfCredits = model._gltfCredits;
|
|
2398
|
-
const gltfCreditsLength = gltfCredits.length;
|
|
2399
|
-
for (let c = 0; c < gltfCreditsLength; c++) {
|
|
2400
|
-
creditDisplay.addCreditToNextFrame(gltfCredits[c]);
|
|
2394
|
+
const credits = model._credits;
|
|
2395
|
+
const creditsLength = credits.length;
|
|
2396
|
+
for (let c = 0; c < creditsLength; c++) {
|
|
2397
|
+
creditDisplay.addCreditToNextFrame(credits[c]);
|
|
2401
2398
|
}
|
|
2402
2399
|
}
|
|
2403
2400
|
|
|
@@ -2792,7 +2789,7 @@ Model.fromGltfAsync = async function (options) {
|
|
|
2792
2789
|
if (defined(resourceCredits)) {
|
|
2793
2790
|
const length = resourceCredits.length;
|
|
2794
2791
|
for (let i = 0; i < length; i++) {
|
|
2795
|
-
model._resourceCredits.push(resourceCredits[i]);
|
|
2792
|
+
model._resourceCredits.push(Credit.clone(resourceCredits[i]));
|
|
2796
2793
|
}
|
|
2797
2794
|
}
|
|
2798
2795
|
|
|
@@ -18,6 +18,7 @@ const defaultCredit = new Credit(
|
|
|
18
18
|
*
|
|
19
19
|
* @property {string} [url='https://tile.openstreetmap.org'] The OpenStreetMap server url.
|
|
20
20
|
* @property {string} [fileExtension='png'] The file extension for images on the server.
|
|
21
|
+
* @property {boolean} [retinaTiles=false] When true, request tiles at the 2x resolution for retina displays.
|
|
21
22
|
* @property {Rectangle} [rectangle=Rectangle.MAX_VALUE] The rectangle of the layer.
|
|
22
23
|
* @property {number} [minimumLevel=0] The minimum level-of-detail supported by the imagery provider.
|
|
23
24
|
* @property {number} [maximumLevel] The maximum level-of-detail supported by the imagery provider, or undefined if there is no limit.
|
|
@@ -62,7 +63,9 @@ function OpenStreetMapImageryProvider(options) {
|
|
|
62
63
|
defaultValue(options.url, "https://tile.openstreetmap.org/")
|
|
63
64
|
);
|
|
64
65
|
resource.appendForwardSlash();
|
|
65
|
-
resource.url += `{z}/{x}/{y}
|
|
66
|
+
resource.url += `{z}/{x}/{y}${
|
|
67
|
+
options.retinaTiles ? "@2x" : ""
|
|
68
|
+
}.${defaultValue(options.fileExtension, "png")}`;
|
|
66
69
|
|
|
67
70
|
const tilingScheme = new WebMercatorTilingScheme({
|
|
68
71
|
ellipsoid: options.ellipsoid,
|
|
@@ -226,16 +226,16 @@ PostProcessStageLibrary.isDepthOfFieldSupported = function (scene) {
|
|
|
226
226
|
*
|
|
227
227
|
* @example
|
|
228
228
|
* // multiple silhouette effects
|
|
229
|
-
* const yellowEdge = Cesium.
|
|
229
|
+
* const yellowEdge = Cesium.PostProcessStageLibrary.createEdgeDetectionStage();
|
|
230
230
|
* yellowEdge.uniforms.color = Cesium.Color.YELLOW;
|
|
231
231
|
* yellowEdge.selected = [feature0];
|
|
232
232
|
*
|
|
233
|
-
* const greenEdge = Cesium.
|
|
233
|
+
* const greenEdge = Cesium.PostProcessStageLibrary.createEdgeDetectionStage();
|
|
234
234
|
* greenEdge.uniforms.color = Cesium.Color.LIME;
|
|
235
235
|
* greenEdge.selected = [feature1];
|
|
236
236
|
*
|
|
237
237
|
* // draw edges around feature0 and feature1
|
|
238
|
-
* postProcessStages.add(Cesium.
|
|
238
|
+
* postProcessStages.add(Cesium.PostProcessStageLibrary.createSilhouetteStage([yellowEdge, greenEdge]);
|
|
239
239
|
*/
|
|
240
240
|
PostProcessStageLibrary.createEdgeDetectionStage = function () {
|
|
241
241
|
// unique name generated on call so more than one effect can be added
|
|
@@ -3,6 +3,7 @@ import defaultValue from "../Core/defaultValue.js";
|
|
|
3
3
|
import defined from "../Core/defined.js";
|
|
4
4
|
import destroyObject from "../Core/destroyObject.js";
|
|
5
5
|
import DeveloperError from "../Core/DeveloperError.js";
|
|
6
|
+
import Event from "../Core/Event.js";
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* A collection of primitives. This is most often used with {@link Scene#primitives},
|
|
@@ -31,6 +32,8 @@ function PrimitiveCollection(options) {
|
|
|
31
32
|
|
|
32
33
|
this._primitives = [];
|
|
33
34
|
this._guid = createGuid();
|
|
35
|
+
this._primitiveAdded = new Event();
|
|
36
|
+
this._primitiveRemoved = new Event();
|
|
34
37
|
|
|
35
38
|
// Used by the OrderedGroundPrimitiveCollection
|
|
36
39
|
this._zIndex = undefined;
|
|
@@ -84,6 +87,35 @@ Object.defineProperties(PrimitiveCollection.prototype, {
|
|
|
84
87
|
return this._primitives.length;
|
|
85
88
|
},
|
|
86
89
|
},
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* An event that is raised when a primitive is added to the collection.
|
|
93
|
+
* Event handlers are passed the primitive that was added.
|
|
94
|
+
* @memberof PrimitiveCollection.prototype
|
|
95
|
+
* @type {Event}
|
|
96
|
+
* @readonly
|
|
97
|
+
*/
|
|
98
|
+
primitiveAdded: {
|
|
99
|
+
get: function () {
|
|
100
|
+
return this._primitiveAdded;
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* An event that is raised when a primitive is removed from the collection.
|
|
106
|
+
* Event handlers are passed the primitive that was removed.
|
|
107
|
+
* <p>
|
|
108
|
+
* Note: Depending on the destroyPrimitives constructor option, the primitive may already be destroyed.
|
|
109
|
+
* </p>
|
|
110
|
+
* @memberof PrimitiveCollection.prototype
|
|
111
|
+
* @type {Event}
|
|
112
|
+
* @readonly
|
|
113
|
+
*/
|
|
114
|
+
primitiveRemoved: {
|
|
115
|
+
get: function () {
|
|
116
|
+
return this._primitiveRemoved;
|
|
117
|
+
},
|
|
118
|
+
},
|
|
87
119
|
});
|
|
88
120
|
|
|
89
121
|
/**
|
|
@@ -128,6 +160,8 @@ PrimitiveCollection.prototype.add = function (primitive, index) {
|
|
|
128
160
|
this._primitives.splice(index, 0, primitive);
|
|
129
161
|
}
|
|
130
162
|
|
|
163
|
+
this._primitiveAdded.raiseEvent(primitive);
|
|
164
|
+
|
|
131
165
|
return primitive;
|
|
132
166
|
};
|
|
133
167
|
|
|
@@ -159,6 +193,8 @@ PrimitiveCollection.prototype.remove = function (primitive) {
|
|
|
159
193
|
primitive.destroy();
|
|
160
194
|
}
|
|
161
195
|
|
|
196
|
+
this._primitiveRemoved.raiseEvent(primitive);
|
|
197
|
+
|
|
162
198
|
return true;
|
|
163
199
|
}
|
|
164
200
|
// else ... this is not possible, I swear.
|
|
@@ -191,9 +227,12 @@ PrimitiveCollection.prototype.removeAll = function () {
|
|
|
191
227
|
const length = primitives.length;
|
|
192
228
|
for (let i = 0; i < length; ++i) {
|
|
193
229
|
delete primitives[i]._external._composites[this._guid];
|
|
230
|
+
|
|
194
231
|
if (this.destroyPrimitives) {
|
|
195
232
|
primitives[i].destroy();
|
|
196
233
|
}
|
|
234
|
+
|
|
235
|
+
this._primitiveRemoved.raiseEvent(primitives[i]);
|
|
197
236
|
}
|
|
198
237
|
this._primitives = [];
|
|
199
238
|
};
|
package/Source/Scene/Scene.js
CHANGED
|
@@ -3166,7 +3166,10 @@ Scene.prototype.updateEnvironment = function () {
|
|
|
3166
3166
|
);
|
|
3167
3167
|
environmentState.isReadyForAtmosphere =
|
|
3168
3168
|
environmentState.isReadyForAtmosphere ||
|
|
3169
|
+
!globe.show ||
|
|
3169
3170
|
globe._surface._tilesToRender.length > 0;
|
|
3171
|
+
} else {
|
|
3172
|
+
environmentState.isReadyForAtmosphere = true;
|
|
3170
3173
|
}
|
|
3171
3174
|
environmentState.skyAtmosphereCommand = skyAtmosphere.update(
|
|
3172
3175
|
frameState,
|
|
@@ -24,8 +24,9 @@ import ImageryProvider from "./ImageryProvider.js";
|
|
|
24
24
|
*/
|
|
25
25
|
|
|
26
26
|
/**
|
|
27
|
-
* Provides a single, top-level imagery tile. The single image is assumed to
|
|
28
|
-
*
|
|
27
|
+
* Provides a single, top-level imagery tile. The single image is assumed to be in
|
|
28
|
+
* the Geographic projection (i.e. WGS84 / EPSG:4326),
|
|
29
|
+
* and will be rendered using a {@link GeographicTilingScheme}.
|
|
29
30
|
*
|
|
30
31
|
* @alias SingleTileImageryProvider
|
|
31
32
|
* @constructor
|
|
@@ -295,6 +296,7 @@ async function doRequest(resource, provider, previousError) {
|
|
|
295
296
|
* Creates a provider for a single, top-level imagery tile. The single image is assumed to use a
|
|
296
297
|
* @param {Resource|String} url The url for the tile
|
|
297
298
|
* @param {SingleTileImageryProvider.fromUrlOptions} [options] Object describing initialization options.
|
|
299
|
+
* @returns {Promise.<SingleTileImageryProvider>} The resolved SingleTileImageryProvider.
|
|
298
300
|
*
|
|
299
301
|
* @example
|
|
300
302
|
* const provider = await SingleTileImageryProvider.fromUrl("https://yoururl.com/image.png");
|