bruce-cesium 1.2.2 → 1.2.4
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/dist/bruce-cesium.es5.js +137 -106
- package/dist/bruce-cesium.es5.js.map +1 -1
- package/dist/bruce-cesium.umd.js +136 -105
- package/dist/bruce-cesium.umd.js.map +1 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js +66 -37
- package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js.map +1 -1
- package/dist/lib/rendering/tileset-render-engine.js +70 -68
- package/dist/lib/rendering/tileset-render-engine.js.map +1 -1
- package/package.json +2 -2
package/dist/bruce-cesium.es5.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BruceEvent, Cartes, Carto, Geometry, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, DelayQueue, Entity as Entity$1, BatchedDataGetter, EntityRelationType, ObjectUtils, Tileset, EntityCoords, EntityFilterGetter, EntitySource, EntityRelation, MenuItem, ProjectView, ProjectViewBookmark, ProjectViewTile, ProjectViewLegacyTile, ProgramKey, Camera } from 'bruce-models';
|
|
2
|
-
import { Cartesian2, Cartographic, Math as Math$1, Cartesian3, Color, HeightReference, Entity, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Primitive, Cesium3DTileFeature, Cesium3DTileColorBlendMode, HeadingPitchRange,
|
|
2
|
+
import { Cartesian2, Cartographic, Math as Math$1, Cartesian3, Color, HeightReference, Entity, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Primitive, Cesium3DTileFeature, Cesium3DTileColorBlendMode, HeadingPitchRange, createOsmBuildings, Cesium3DTileStyle, Rectangle, KmlDataSource, CallbackProperty, OrthographicFrustum, JulianDate, createWorldTerrain, EllipsoidTerrainProvider, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, EllipsoidGeodesic, sampleTerrainMostDetailed, PolygonPipeline, ColorMaterialProperty, Matrix3, Matrix4, EasingFunction, GeometryInstance, Cesium3DTileset, IonResource } from 'cesium';
|
|
3
3
|
|
|
4
4
|
var TIME_LAG = 300;
|
|
5
5
|
var POSITION_CHECK_TIMER = 950;
|
|
@@ -3942,79 +3942,81 @@ var TilesetRenderEngine;
|
|
|
3942
3942
|
if (legacy_1.usingBoundingBox == null) {
|
|
3943
3943
|
legacy_1.usingBoundingBox = true;
|
|
3944
3944
|
}
|
|
3945
|
-
|
|
3946
|
-
|
|
3947
|
-
|
|
3948
|
-
|
|
3949
|
-
|
|
3950
|
-
|
|
3951
|
-
|
|
3952
|
-
|
|
3953
|
-
|
|
3954
|
-
|
|
3955
|
-
|
|
3956
|
-
|
|
3957
|
-
|
|
3958
|
-
|
|
3959
|
-
|
|
3960
|
-
|
|
3961
|
-
|
|
3962
|
-
|
|
3963
|
-
|
|
3964
|
-
|
|
3965
|
-
|
|
3966
|
-
|
|
3967
|
-
|
|
3968
|
-
|
|
3969
|
-
|
|
3970
|
-
|
|
3971
|
-
|
|
3945
|
+
if (legacy_1.transform) {
|
|
3946
|
+
var offsetPoint_1 = function (pos, distance, bearing) {
|
|
3947
|
+
// radius of earth
|
|
3948
|
+
var radius = 6371e3;
|
|
3949
|
+
var δ = distance / radius;
|
|
3950
|
+
var θ = Math$1.toRadians(bearing);
|
|
3951
|
+
var φ1 = Math$1.toRadians(pos.latitude);
|
|
3952
|
+
var λ1 = Math$1.toRadians(pos.longitude);
|
|
3953
|
+
var sinφ2 = Math.sin(φ1) * Math.cos(δ) + Math.cos(φ1) * Math.sin(δ) * Math.cos(θ);
|
|
3954
|
+
var φ2 = Math.asin(sinφ2);
|
|
3955
|
+
var y = Math.sin(θ) * Math.sin(δ) * Math.cos(φ1);
|
|
3956
|
+
var x = Math.cos(δ) - Math.sin(φ1) * sinφ2;
|
|
3957
|
+
var λ2 = λ1 + Math.atan2(y, x);
|
|
3958
|
+
var finalPos = new Cartographic(λ2, φ2, pos.height);
|
|
3959
|
+
finalPos.latitude = Math$1.toDegrees(finalPos.latitude);
|
|
3960
|
+
finalPos.longitude = Math$1.toDegrees(finalPos.longitude);
|
|
3961
|
+
return finalPos;
|
|
3962
|
+
};
|
|
3963
|
+
var getOffset = function (pos, n, e, alt) {
|
|
3964
|
+
if (n == 0 && e == 0 && alt == 0) {
|
|
3965
|
+
return new Cartesian3(0, 0, 0);
|
|
3966
|
+
}
|
|
3967
|
+
var carto = Cartographic.fromCartesian(pos);
|
|
3968
|
+
carto.latitude = Math$1.toDegrees(carto.latitude);
|
|
3969
|
+
carto.longitude = Math$1.toDegrees(carto.longitude);
|
|
3970
|
+
// North
|
|
3971
|
+
if (n != 0) {
|
|
3972
|
+
carto = offsetPoint_1(carto, Number(n), 0);
|
|
3973
|
+
}
|
|
3974
|
+
// East
|
|
3975
|
+
if (e != 0) {
|
|
3976
|
+
carto = offsetPoint_1(carto, Number(e), 90);
|
|
3977
|
+
}
|
|
3978
|
+
// Altitude
|
|
3979
|
+
carto.height += Number(alt);
|
|
3980
|
+
var finalOffset = Cartesian3.fromDegrees(carto.longitude, carto.latitude, carto.height);
|
|
3981
|
+
finalOffset.x -= pos.x;
|
|
3982
|
+
finalOffset.y -= pos.y;
|
|
3983
|
+
finalOffset.z -= pos.z;
|
|
3984
|
+
return finalOffset;
|
|
3985
|
+
};
|
|
3986
|
+
var getCurPos3d = function () {
|
|
3987
|
+
if (legacy_1.usingBoundingBox == false) {
|
|
3988
|
+
return Matrix4.getTranslation(root.transform, new Cartesian3());
|
|
3989
|
+
}
|
|
3990
|
+
else {
|
|
3991
|
+
return Cartesian3.clone(root.boundingSphere.center);
|
|
3992
|
+
}
|
|
3993
|
+
};
|
|
3994
|
+
var pos3d = void 0;
|
|
3995
|
+
if (location.latitude != null && location.longitude != null) {
|
|
3996
|
+
pos3d = Cartesian3.fromDegrees(EnsureNumber(location.longitude), EnsureNumber(location.latitude), EnsureNumber(location.altitude));
|
|
3972
3997
|
}
|
|
3973
|
-
|
|
3974
|
-
|
|
3975
|
-
carto = offsetPoint_1(carto, Number(e), 90);
|
|
3998
|
+
if (!pos3d) {
|
|
3999
|
+
pos3d = getCurPos3d();
|
|
3976
4000
|
}
|
|
3977
|
-
|
|
3978
|
-
|
|
3979
|
-
|
|
3980
|
-
|
|
3981
|
-
|
|
3982
|
-
finalOffset.z -= pos.z;
|
|
3983
|
-
return finalOffset;
|
|
3984
|
-
};
|
|
3985
|
-
var getCurPos3d = function () {
|
|
3986
|
-
if (legacy_1.usingBoundingBox == false) {
|
|
3987
|
-
return Matrix4.getTranslation(root.transform, new Cartesian3());
|
|
4001
|
+
var offset = getOffset(pos3d, transform.x, transform.y, transform.z);
|
|
4002
|
+
if (Cartes.ValidateCartes3(offset)) {
|
|
4003
|
+
pos3d.x += offset.x;
|
|
4004
|
+
pos3d.y += offset.y;
|
|
4005
|
+
pos3d.z += offset.z;
|
|
3988
4006
|
}
|
|
3989
|
-
|
|
3990
|
-
|
|
4007
|
+
if (legacy_1.rotate) {
|
|
4008
|
+
var hpr = HeadingPitchRoll.fromDegrees(EnsureNumber(transform.heading), EnsureNumber(transform.pitch), EnsureNumber(transform.roll), new HeadingPitchRoll());
|
|
4009
|
+
root.transform = Transforms.headingPitchRollToFixedFrame(pos3d, hpr);
|
|
4010
|
+
root.updateTransform();
|
|
3991
4011
|
}
|
|
3992
|
-
|
|
3993
|
-
|
|
3994
|
-
|
|
3995
|
-
|
|
3996
|
-
|
|
3997
|
-
|
|
3998
|
-
pos3d = getCurPos3d();
|
|
3999
|
-
}
|
|
4000
|
-
var offset = getOffset(pos3d, transform.x, transform.y, transform.z);
|
|
4001
|
-
if (Cartes.ValidateCartes3(offset)) {
|
|
4002
|
-
pos3d.x += offset.x;
|
|
4003
|
-
pos3d.y += offset.y;
|
|
4004
|
-
pos3d.z += offset.z;
|
|
4005
|
-
}
|
|
4006
|
-
if (legacy_1.rotate) {
|
|
4007
|
-
var hpr = HeadingPitchRoll.fromDegrees(EnsureNumber(transform.heading), EnsureNumber(transform.pitch), EnsureNumber(transform.roll), new HeadingPitchRoll());
|
|
4008
|
-
root.transform = Transforms.headingPitchRollToFixedFrame(pos3d, hpr);
|
|
4012
|
+
var curPos3d = getCurPos3d();
|
|
4013
|
+
var newTransform = Matrix4.pack(root.transform.clone(new Matrix4()), []);
|
|
4014
|
+
newTransform[12] += pos3d.x - curPos3d.x;
|
|
4015
|
+
newTransform[13] += pos3d.y - curPos3d.y;
|
|
4016
|
+
newTransform[14] += pos3d.z - curPos3d.z;
|
|
4017
|
+
root.transform = Matrix4.unpack(newTransform);
|
|
4009
4018
|
root.updateTransform();
|
|
4010
4019
|
}
|
|
4011
|
-
var curPos3d = getCurPos3d();
|
|
4012
|
-
var newTransform = Matrix4.pack(root.transform.clone(new Matrix4()), []);
|
|
4013
|
-
newTransform[12] += pos3d.x - curPos3d.x;
|
|
4014
|
-
newTransform[13] += pos3d.y - curPos3d.y;
|
|
4015
|
-
newTransform[14] += pos3d.z - curPos3d.z;
|
|
4016
|
-
root.transform = Matrix4.unpack(newTransform);
|
|
4017
|
-
root.updateTransform();
|
|
4018
4020
|
}
|
|
4019
4021
|
else {
|
|
4020
4022
|
if (!(location === null || location === void 0 ? void 0 : location.latitude)) {
|
|
@@ -4398,7 +4400,7 @@ var TilesetRenderEngine;
|
|
|
4398
4400
|
}
|
|
4399
4401
|
}
|
|
4400
4402
|
catch (e) {
|
|
4401
|
-
console.
|
|
4403
|
+
console.error(e);
|
|
4402
4404
|
}
|
|
4403
4405
|
}
|
|
4404
4406
|
i = 0;
|
|
@@ -5571,7 +5573,7 @@ function getLegacyTileset(params) {
|
|
|
5571
5573
|
return [2 /*return*/, legacyTileset];
|
|
5572
5574
|
case 3:
|
|
5573
5575
|
e_1 = _a.sent();
|
|
5574
|
-
console.
|
|
5576
|
+
console.error(e_1);
|
|
5575
5577
|
return [3 /*break*/, 4];
|
|
5576
5578
|
case 4: return [2 /*return*/];
|
|
5577
5579
|
}
|
|
@@ -5580,14 +5582,14 @@ function getLegacyTileset(params) {
|
|
|
5580
5582
|
}
|
|
5581
5583
|
function getTileset(params) {
|
|
5582
5584
|
return __awaiter(this, void 0, void 0, function () {
|
|
5583
|
-
var apiGetter, menuItem, api, tileset, e_2;
|
|
5585
|
+
var apiGetter, menuItem, api, tileset, typeMapping, e_2;
|
|
5584
5586
|
return __generator(this, function (_a) {
|
|
5585
5587
|
switch (_a.label) {
|
|
5586
5588
|
case 0:
|
|
5587
5589
|
apiGetter = params.apiGetter, menuItem = params.menuItem;
|
|
5588
5590
|
_a.label = 1;
|
|
5589
5591
|
case 1:
|
|
5590
|
-
_a.trys.push([1,
|
|
5592
|
+
_a.trys.push([1, 4, , 5]);
|
|
5591
5593
|
api = apiGetter.getApi(menuItem.tileset.ClientAccountID);
|
|
5592
5594
|
return [4 /*yield*/, Tileset.Get({
|
|
5593
5595
|
api: api,
|
|
@@ -5595,12 +5597,21 @@ function getTileset(params) {
|
|
|
5595
5597
|
})];
|
|
5596
5598
|
case 2:
|
|
5597
5599
|
tileset = (_a.sent()).tileset;
|
|
5598
|
-
return [
|
|
5600
|
+
return [4 /*yield*/, Tileset.GetTypes({
|
|
5601
|
+
api: api,
|
|
5602
|
+
tilesetIds: [menuItem.tileset.TilesetID]
|
|
5603
|
+
})];
|
|
5599
5604
|
case 3:
|
|
5605
|
+
typeMapping = (_a.sent()).typeMapping;
|
|
5606
|
+
return [2 /*return*/, {
|
|
5607
|
+
tileset: tileset,
|
|
5608
|
+
type: typeMapping[menuItem.tileset.TilesetID]
|
|
5609
|
+
}];
|
|
5610
|
+
case 4:
|
|
5600
5611
|
e_2 = _a.sent();
|
|
5601
5612
|
console.error(e_2);
|
|
5602
|
-
return [3 /*break*/,
|
|
5603
|
-
case
|
|
5613
|
+
return [3 /*break*/, 5];
|
|
5614
|
+
case 5: return [2 /*return*/];
|
|
5604
5615
|
}
|
|
5605
5616
|
});
|
|
5606
5617
|
});
|
|
@@ -5614,8 +5625,14 @@ var TilesetArbRenderManager;
|
|
|
5614
5625
|
this.styler = null;
|
|
5615
5626
|
this.viewer = params.viewer;
|
|
5616
5627
|
this.apiGetter = params.apiGetter;
|
|
5617
|
-
this.item = params.item;
|
|
5618
5628
|
this.visualsManager = params.register;
|
|
5629
|
+
// We modify the object due to a lot of backwards compatibility.
|
|
5630
|
+
try {
|
|
5631
|
+
this.item = params.item ? JSON.parse(JSON.stringify(params.item)) : {};
|
|
5632
|
+
}
|
|
5633
|
+
catch (e) {
|
|
5634
|
+
console.error(e);
|
|
5635
|
+
}
|
|
5619
5636
|
}
|
|
5620
5637
|
Object.defineProperty(Manager.prototype, "Disposed", {
|
|
5621
5638
|
get: function () {
|
|
@@ -5632,12 +5649,12 @@ var TilesetArbRenderManager;
|
|
|
5632
5649
|
configurable: true
|
|
5633
5650
|
});
|
|
5634
5651
|
Manager.prototype.Init = function () {
|
|
5635
|
-
var _a, _b, _c;
|
|
5652
|
+
var _a, _b, _c, _d;
|
|
5636
5653
|
return __awaiter(this, void 0, void 0, function () {
|
|
5637
|
-
var loadUrlOverride, itemUrl, url, urlParts,
|
|
5654
|
+
var loadUrlOverride, itemUrl, url, urlParts, tilesetId_1, accountId, tilesetId, _e, tileset, type, _f, LEGACY_TYPES, legacyTileset, _g, _h;
|
|
5638
5655
|
var _this = this;
|
|
5639
|
-
return __generator(this, function (
|
|
5640
|
-
switch (
|
|
5656
|
+
return __generator(this, function (_j) {
|
|
5657
|
+
switch (_j.label) {
|
|
5641
5658
|
case 0:
|
|
5642
5659
|
loadUrlOverride = null;
|
|
5643
5660
|
if (this.item.tileset) {
|
|
@@ -5655,65 +5672,79 @@ var TilesetArbRenderManager;
|
|
|
5655
5672
|
url = this.item.tileset.TilesetURL;
|
|
5656
5673
|
urlParts = url.split("/");
|
|
5657
5674
|
if (urlParts.length > 5) {
|
|
5658
|
-
|
|
5675
|
+
tilesetId_1 = urlParts[urlParts.length - 3];
|
|
5659
5676
|
accountId = urlParts[urlParts.length - 5].split(".")[0];
|
|
5660
|
-
this.item.tileset.TilesetID =
|
|
5677
|
+
this.item.tileset.TilesetID = tilesetId_1;
|
|
5661
5678
|
this.item.tileset.ClientAccountID = accountId;
|
|
5662
5679
|
}
|
|
5663
5680
|
}
|
|
5664
5681
|
}
|
|
5682
|
+
tilesetId = (_c = this.item.tileset) === null || _c === void 0 ? void 0 : _c.TilesetID;
|
|
5683
|
+
if (!tilesetId) return [3 /*break*/, 2];
|
|
5665
5684
|
return [4 /*yield*/, getTileset({
|
|
5666
5685
|
apiGetter: this.apiGetter,
|
|
5667
5686
|
menuItem: this.item
|
|
5668
5687
|
})];
|
|
5669
5688
|
case 1:
|
|
5670
|
-
|
|
5689
|
+
_f = _j.sent();
|
|
5690
|
+
return [3 /*break*/, 3];
|
|
5691
|
+
case 2:
|
|
5692
|
+
_f = null;
|
|
5693
|
+
_j.label = 3;
|
|
5694
|
+
case 3:
|
|
5695
|
+
_e = _f, tileset = _e.tileset, type = _e.type;
|
|
5671
5696
|
if (tileset && loadUrlOverride) {
|
|
5672
5697
|
tileset.loadUrl = loadUrlOverride;
|
|
5673
5698
|
}
|
|
5674
|
-
|
|
5675
|
-
|
|
5676
|
-
|
|
5677
|
-
|
|
5678
|
-
|
|
5679
|
-
|
|
5680
|
-
|
|
5681
|
-
return [3 /*break*/, 7];
|
|
5682
|
-
case 2:
|
|
5683
|
-
if (!tileset) return [3 /*break*/, 7];
|
|
5684
|
-
if (!tileset) return [3 /*break*/, 4];
|
|
5699
|
+
LEGACY_TYPES = [
|
|
5700
|
+
Tileset.EType.LegacyEntitiesSet,
|
|
5701
|
+
Tileset.EType.LegacyExternal,
|
|
5702
|
+
Tileset.EType.LegacyStatic
|
|
5703
|
+
];
|
|
5704
|
+
if (!(!type || LEGACY_TYPES.includes(type))) return [3 /*break*/, 8];
|
|
5705
|
+
if (!tileset) return [3 /*break*/, 5];
|
|
5685
5706
|
return [4 /*yield*/, getLegacyTileset({
|
|
5686
5707
|
apiGetter: this.apiGetter,
|
|
5687
5708
|
menuItem: this.item,
|
|
5688
5709
|
tileset: tileset
|
|
5689
5710
|
})];
|
|
5690
|
-
case 3:
|
|
5691
|
-
_d = _f.sent();
|
|
5692
|
-
return [3 /*break*/, 5];
|
|
5693
5711
|
case 4:
|
|
5694
|
-
|
|
5695
|
-
|
|
5712
|
+
_g = _j.sent();
|
|
5713
|
+
return [3 /*break*/, 6];
|
|
5696
5714
|
case 5:
|
|
5697
|
-
|
|
5698
|
-
|
|
5715
|
+
_g = null;
|
|
5716
|
+
_j.label = 6;
|
|
5717
|
+
case 6:
|
|
5718
|
+
legacyTileset = _g;
|
|
5719
|
+
_h = this;
|
|
5699
5720
|
return [4 /*yield*/, TilesetRenderEngine.RenderLegacy({
|
|
5700
5721
|
apiGetter: this.apiGetter,
|
|
5701
5722
|
tileset: legacyTileset,
|
|
5702
5723
|
viewer: this.viewer,
|
|
5703
|
-
ionId: (
|
|
5724
|
+
ionId: (_d = this.item.IonResource) === null || _d === void 0 ? void 0 : _d.AssetID,
|
|
5704
5725
|
loadUrl: loadUrlOverride
|
|
5705
5726
|
})];
|
|
5706
|
-
case 6:
|
|
5707
|
-
_e.cTileset = _f.sent();
|
|
5708
|
-
_f.label = 7;
|
|
5709
5727
|
case 7:
|
|
5728
|
+
_h.cTileset = _j.sent();
|
|
5729
|
+
return [3 /*break*/, 9];
|
|
5730
|
+
case 8:
|
|
5731
|
+
if (tileset) {
|
|
5732
|
+
this.cTileset = TilesetRenderEngine.Render({
|
|
5733
|
+
apiGetter: this.apiGetter,
|
|
5734
|
+
tileset: tileset,
|
|
5735
|
+
viewer: this.viewer,
|
|
5736
|
+
coords: null
|
|
5737
|
+
});
|
|
5738
|
+
}
|
|
5739
|
+
_j.label = 9;
|
|
5740
|
+
case 9:
|
|
5710
5741
|
this.cTileset.readyPromise.then(function () {
|
|
5711
5742
|
try {
|
|
5712
5743
|
if (_this.item.ApplyStyles) {
|
|
5713
5744
|
var api = _this.apiGetter.getApi();
|
|
5714
5745
|
_this.styler = new TilesetRenderEngine.CadStyler(api, _this.cTileset, _this.item.styleId, _this.item.StyleMapping);
|
|
5715
|
-
_this.onCTilesetLoad();
|
|
5716
5746
|
}
|
|
5747
|
+
_this.onCTilesetLoad();
|
|
5717
5748
|
}
|
|
5718
5749
|
catch (e) {
|
|
5719
5750
|
console.error(e);
|