bruce-cesium 0.9.4 → 0.9.5
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 +421 -11
- package/dist/bruce-cesium.es5.js.map +1 -1
- package/dist/bruce-cesium.umd.js +420 -10
- package/dist/bruce-cesium.umd.js.map +1 -1
- package/dist/lib/rendering/menu-item-manager.js +9 -0
- package/dist/lib/rendering/menu-item-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js +2 -1
- package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js +2 -1
- package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +2 -1
- package/dist/lib/rendering/render-managers/entities/entities-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/entities/entity-render-manager.js +2 -1
- package/dist/lib/rendering/render-managers/entities/entity-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js +283 -0
- package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js.map +1 -0
- package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js +5 -4
- package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js +4 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js +2 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js.map +1 -1
- package/dist/lib/rendering/tileset-render-engine.js +152 -0
- package/dist/lib/rendering/tileset-render-engine.js.map +1 -1
- package/dist/lib/rendering/visuals-register.js.map +1 -1
- package/dist/types/rendering/menu-item-manager.d.ts +1 -1
- package/dist/types/rendering/render-managers/render-manager.d.ts +0 -10
- package/dist/types/rendering/render-managers/tilesets/tileset-arb-render-manager.d.ts +29 -0
- package/dist/types/rendering/tileset-render-engine.d.ts +27 -1
- package/dist/types/rendering/visuals-register.d.ts +3 -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, ObjectUtils, Tileset, EntityCoords, EntityFilterGetter, EntitySource, MenuItem, ProjectView, ProjectViewBookmark, ProjectViewTile, ProjectViewLegacyTile, ProgramKey, Camera } from 'bruce-models';
|
|
2
|
-
import { Color, HeightReference,
|
|
2
|
+
import { Cartesian2, Cartographic, Math as Math$1, Color, HeightReference, Cartesian3, Entity, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Primitive, Cesium3DTileFeature, Cesium3DTileColorBlendMode, HeadingPitchRange, OrthographicFrustum, JulianDate, createWorldTerrain, EllipsoidTerrainProvider, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, Matrix4, Cesium3DTileset, Cesium3DTileStyle, IonResource, EllipsoidGeodesic, ColorMaterialProperty, Rectangle, Matrix3, EasingFunction, GeometryInstance, createOsmBuildings, KmlDataSource } from 'cesium';
|
|
3
3
|
|
|
4
4
|
var TIME_LAG = 300;
|
|
5
5
|
var POSITION_CHECK_TIMER = 950;
|
|
@@ -1871,7 +1871,8 @@ var EntitiesRenderManager;
|
|
|
1871
1871
|
menuItemId: this.item.id,
|
|
1872
1872
|
visual: cEntity,
|
|
1873
1873
|
priority: 0,
|
|
1874
|
-
entityTypeId: entity.Bruce["EntityType.ID"]
|
|
1874
|
+
entityTypeId: entity.Bruce["EntityType.ID"],
|
|
1875
|
+
accountId: this.apiGetter.accountId
|
|
1875
1876
|
});
|
|
1876
1877
|
}
|
|
1877
1878
|
}
|
|
@@ -2053,7 +2054,8 @@ var EntitiesLoadedRenderManager;
|
|
|
2053
2054
|
menuItemId: this.item.id,
|
|
2054
2055
|
visual: cEntity,
|
|
2055
2056
|
priority: 0,
|
|
2056
|
-
entityTypeId: entity.Bruce["EntityType.ID"]
|
|
2057
|
+
entityTypeId: entity.Bruce["EntityType.ID"],
|
|
2058
|
+
accountId: this.apiGetter.accountId
|
|
2057
2059
|
});
|
|
2058
2060
|
}
|
|
2059
2061
|
}
|
|
@@ -2708,7 +2710,8 @@ var EntitiesIdsRenderManager;
|
|
|
2708
2710
|
menuItemId: this.item.id,
|
|
2709
2711
|
visual: cEntity,
|
|
2710
2712
|
priority: 0,
|
|
2711
|
-
entityTypeId: entity.Bruce["EntityType.ID"]
|
|
2713
|
+
entityTypeId: entity.Bruce["EntityType.ID"],
|
|
2714
|
+
accountId: this.apiGetter.accountId
|
|
2712
2715
|
});
|
|
2713
2716
|
}
|
|
2714
2717
|
}
|
|
@@ -2834,7 +2837,8 @@ var EntityRenderManager;
|
|
|
2834
2837
|
menuItemId: this.item.id,
|
|
2835
2838
|
visual: cEntity,
|
|
2836
2839
|
priority: 0,
|
|
2837
|
-
entityTypeId: entity.Bruce["EntityType.ID"]
|
|
2840
|
+
entityTypeId: entity.Bruce["EntityType.ID"],
|
|
2841
|
+
accountId: this.apiGetter.accountId
|
|
2838
2842
|
});
|
|
2839
2843
|
}
|
|
2840
2844
|
}
|
|
@@ -2917,6 +2921,15 @@ var TilesetRenderEngine;
|
|
|
2917
2921
|
root.transform = Matrix4.multiplyByTranslation(root.transform, new Cartesian3(EnsureNumber(transform.x), EnsureNumber(transform.y), EnsureNumber(transform.z)), root.transform);
|
|
2918
2922
|
// Force matrix to update
|
|
2919
2923
|
root.updateTransform();
|
|
2924
|
+
// Store data in the tileset as we can't interpret it using the cesium primitive later.
|
|
2925
|
+
var cTilesetExt = cTileset;
|
|
2926
|
+
cTilesetExt._bruceCoords = __assign({}, cTilesetExt._bruceCoords);
|
|
2927
|
+
cTilesetExt._bruceCoords.ucs = coords.ucs ? {
|
|
2928
|
+
location: coords.ucs.location ? JSON.parse(JSON.stringify(coords.ucs.location)) : null,
|
|
2929
|
+
transform: null
|
|
2930
|
+
} : null;
|
|
2931
|
+
cTilesetExt._bruceCoords.location = location ? JSON.parse(JSON.stringify(location)) : null;
|
|
2932
|
+
cTilesetExt._bruceCoords.transform = transform ? JSON.parse(JSON.stringify(transform)) : null;
|
|
2920
2933
|
}
|
|
2921
2934
|
TilesetRenderEngine.ApplyPosition = ApplyPosition;
|
|
2922
2935
|
function ApplySettings(cTileset, tileset) {
|
|
@@ -3011,6 +3024,149 @@ var TilesetRenderEngine;
|
|
|
3011
3024
|
}
|
|
3012
3025
|
}
|
|
3013
3026
|
TilesetRenderEngine.Render = Render;
|
|
3027
|
+
function ApplyLegacyPosition(params) {
|
|
3028
|
+
var cTileset = params.cTileset, tileset = params.tileset;
|
|
3029
|
+
var settings = tileset.Settings;
|
|
3030
|
+
settings = __assign({}, settings);
|
|
3031
|
+
var origin = settings.origin;
|
|
3032
|
+
origin = __assign({}, origin);
|
|
3033
|
+
var etc = settings.etc;
|
|
3034
|
+
etc = __assign({}, etc);
|
|
3035
|
+
var root = cTileset.root;
|
|
3036
|
+
var transform = etc.dontTransform != true;
|
|
3037
|
+
if (!transform) {
|
|
3038
|
+
return;
|
|
3039
|
+
}
|
|
3040
|
+
if (origin.usingBoundingBox == null) {
|
|
3041
|
+
origin.usingBoundingBox = true;
|
|
3042
|
+
}
|
|
3043
|
+
var getCurPos3d = function () {
|
|
3044
|
+
if (origin.usingBoundingBox == false) {
|
|
3045
|
+
return Matrix4.getTranslation(root.transform, new Cartesian3());
|
|
3046
|
+
}
|
|
3047
|
+
else {
|
|
3048
|
+
return Cartesian3.clone(root.boundingSphere.center);
|
|
3049
|
+
}
|
|
3050
|
+
};
|
|
3051
|
+
var pos3d;
|
|
3052
|
+
if (origin.latitude != null && origin.longitude != null) {
|
|
3053
|
+
pos3d = Cartesian3.fromDegrees(EnsureNumber(origin.longitude), EnsureNumber(origin.latitude), EnsureNumber(origin.altitude));
|
|
3054
|
+
}
|
|
3055
|
+
if (!pos3d) {
|
|
3056
|
+
pos3d = getCurPos3d();
|
|
3057
|
+
}
|
|
3058
|
+
// Store data in the tileset as we can't interpret it using the cesium primitive later.
|
|
3059
|
+
var cTilesetExt = cTileset;
|
|
3060
|
+
cTilesetExt._bruceCoords.transform = null;
|
|
3061
|
+
var rotate = etc.dontRotate != true;
|
|
3062
|
+
if (rotate) {
|
|
3063
|
+
var rotation = settings.rotation;
|
|
3064
|
+
var hpr = HeadingPitchRoll.fromDegrees(EnsureNumber(rotation.z), EnsureNumber(rotation.x), EnsureNumber(rotation.y), new HeadingPitchRoll());
|
|
3065
|
+
root.transform = Transforms.headingPitchRollToFixedFrame(pos3d, hpr);
|
|
3066
|
+
root.updateTransform();
|
|
3067
|
+
cTilesetExt._bruceCoords.transform = {
|
|
3068
|
+
heading: rotation.z,
|
|
3069
|
+
pitch: rotation.x,
|
|
3070
|
+
roll: rotation.y,
|
|
3071
|
+
scale: 1
|
|
3072
|
+
};
|
|
3073
|
+
}
|
|
3074
|
+
var curPos3d = getCurPos3d();
|
|
3075
|
+
var newTransform = Matrix4.pack(root.transform.clone(new Matrix4()), []);
|
|
3076
|
+
newTransform[12] += pos3d.x - curPos3d.x;
|
|
3077
|
+
newTransform[13] += pos3d.y - curPos3d.y;
|
|
3078
|
+
newTransform[14] += pos3d.z - curPos3d.z;
|
|
3079
|
+
root.transform = Matrix4.unpack(newTransform);
|
|
3080
|
+
root.updateTransform();
|
|
3081
|
+
var carto = Cartographic.fromCartesian(pos3d);
|
|
3082
|
+
cTilesetExt._bruceCoords.location = carto ? {
|
|
3083
|
+
altitude: carto.height,
|
|
3084
|
+
latitude: carto.latitude,
|
|
3085
|
+
longitude: carto.longitude
|
|
3086
|
+
} : null;
|
|
3087
|
+
cTilesetExt._bruceCoords.legacy = true;
|
|
3088
|
+
cTilesetExt._bruceCoords.legacyUsingBoundingBox = origin.usingBoundingBox;
|
|
3089
|
+
}
|
|
3090
|
+
TilesetRenderEngine.ApplyLegacyPosition = ApplyLegacyPosition;
|
|
3091
|
+
function ApplyLegacySettings(params) {
|
|
3092
|
+
var cTileset = params.cTileset, tileset = params.tileset;
|
|
3093
|
+
var settings = tileset.Settings;
|
|
3094
|
+
settings = __assign({}, settings);
|
|
3095
|
+
var visual = settings.visual;
|
|
3096
|
+
visual = __assign({}, visual);
|
|
3097
|
+
cTileset.maximumScreenSpaceError = EnsureNumber(visual.maximumScreenSpaceError, 5);
|
|
3098
|
+
cTileset.pointCloudShading.attenuation = visual.attenuation != false;
|
|
3099
|
+
cTileset.pointCloudShading.maximumAttenuation = EnsureNumber(visual.attenuationMax, 4);
|
|
3100
|
+
var colorMask = visual.colorMask;
|
|
3101
|
+
if (colorMask && (tileset.Type == "S" || tileset.Type == "X")) {
|
|
3102
|
+
tileset.style = new Cesium3DTileStyle({
|
|
3103
|
+
color: colorMask
|
|
3104
|
+
});
|
|
3105
|
+
}
|
|
3106
|
+
}
|
|
3107
|
+
TilesetRenderEngine.ApplyLegacySettings = ApplyLegacySettings;
|
|
3108
|
+
function RenderLegacy(params) {
|
|
3109
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
3110
|
+
var apiGetter, viewer, tileset, ionId, settings, visual, etc, loadUrl, api, cTileset;
|
|
3111
|
+
return __generator(this, function (_a) {
|
|
3112
|
+
switch (_a.label) {
|
|
3113
|
+
case 0:
|
|
3114
|
+
apiGetter = params.apiGetter, viewer = params.viewer, tileset = params.tileset, ionId = params.ionId;
|
|
3115
|
+
settings = tileset === null || tileset === void 0 ? void 0 : tileset.Settings;
|
|
3116
|
+
settings = __assign({}, settings);
|
|
3117
|
+
visual = settings.visual;
|
|
3118
|
+
visual = __assign({}, visual);
|
|
3119
|
+
etc = settings.etc;
|
|
3120
|
+
etc = __assign({}, etc);
|
|
3121
|
+
loadUrl = null;
|
|
3122
|
+
if (!ionId) return [3 /*break*/, 2];
|
|
3123
|
+
return [4 /*yield*/, IonResource.fromAssetId(EnsureNumber(ionId))];
|
|
3124
|
+
case 1:
|
|
3125
|
+
// TODO: Can cause issues with menu-item dispose race conditions.
|
|
3126
|
+
loadUrl = _a.sent();
|
|
3127
|
+
return [3 /*break*/, 3];
|
|
3128
|
+
case 2:
|
|
3129
|
+
if (tileset) {
|
|
3130
|
+
if (etc === null || etc === void 0 ? void 0 : etc.ExternalTilesetURL) {
|
|
3131
|
+
loadUrl = etc.ExternalTilesetURL;
|
|
3132
|
+
}
|
|
3133
|
+
else {
|
|
3134
|
+
api = apiGetter.getApi(apiGetter.accountId);
|
|
3135
|
+
loadUrl = api.GetBaseUrl() + ("ui.tileset/" + tileset.id + "/file/tileset.json");
|
|
3136
|
+
}
|
|
3137
|
+
}
|
|
3138
|
+
_a.label = 3;
|
|
3139
|
+
case 3:
|
|
3140
|
+
cTileset = this.cTileset = new Cesium3DTileset({
|
|
3141
|
+
url: loadUrl
|
|
3142
|
+
});
|
|
3143
|
+
this.viewer.scene.primitives.add(cTileset);
|
|
3144
|
+
cTileset.readyPromise.then(function () {
|
|
3145
|
+
try {
|
|
3146
|
+
if (!isAlive(viewer, cTileset)) {
|
|
3147
|
+
return;
|
|
3148
|
+
}
|
|
3149
|
+
if (tileset) {
|
|
3150
|
+
ApplyLegacySettings({
|
|
3151
|
+
cTileset: cTileset,
|
|
3152
|
+
tileset: tileset
|
|
3153
|
+
});
|
|
3154
|
+
ApplyLegacyPosition({
|
|
3155
|
+
cTileset: cTileset,
|
|
3156
|
+
tileset: tileset
|
|
3157
|
+
});
|
|
3158
|
+
}
|
|
3159
|
+
}
|
|
3160
|
+
catch (e) {
|
|
3161
|
+
console.error(e);
|
|
3162
|
+
}
|
|
3163
|
+
});
|
|
3164
|
+
return [2 /*return*/, cTileset];
|
|
3165
|
+
}
|
|
3166
|
+
});
|
|
3167
|
+
});
|
|
3168
|
+
}
|
|
3169
|
+
TilesetRenderEngine.RenderLegacy = RenderLegacy;
|
|
3014
3170
|
var CadStyler = /** @class */ (function () {
|
|
3015
3171
|
function CadStyler(api, cTileset, fallbackStyleId, styleMapping) {
|
|
3016
3172
|
this.disposed = false;
|
|
@@ -3507,13 +3663,13 @@ var TilesetCadRenderManager;
|
|
|
3507
3663
|
for (var i = 0; i < content.featuresLength; i++) {
|
|
3508
3664
|
var feature = content.getFeature(i);
|
|
3509
3665
|
var rego = this.mapTilesetFeature(feature);
|
|
3510
|
-
if (rego === null || rego === void 0 ? void 0 : rego.entityId) {
|
|
3666
|
+
if ((rego === null || rego === void 0 ? void 0 : rego.entityId) && this.styler) {
|
|
3511
3667
|
this.styler.QueueEntities([rego]);
|
|
3512
3668
|
}
|
|
3513
3669
|
}
|
|
3514
3670
|
};
|
|
3515
3671
|
Manager.prototype.mapTilesetFeature = function (feature) {
|
|
3516
|
-
var _a, _b, _c, _d;
|
|
3672
|
+
var _a, _b, _c, _d, _e, _f;
|
|
3517
3673
|
var version = (_c = (_b = (_a = feature === null || feature === void 0 ? void 0 : feature.tileset) === null || _a === void 0 ? void 0 : _a.extensions) === null || _b === void 0 ? void 0 : _b.modelTree) === null || _c === void 0 ? void 0 : _c.version;
|
|
3518
3674
|
if (!version) {
|
|
3519
3675
|
version = 1;
|
|
@@ -3523,7 +3679,8 @@ var TilesetCadRenderManager;
|
|
|
3523
3679
|
entityTypeId: null,
|
|
3524
3680
|
menuItemId: this.item.id,
|
|
3525
3681
|
priority: 0,
|
|
3526
|
-
visual: feature
|
|
3682
|
+
visual: feature,
|
|
3683
|
+
accountId: (_e = (_d = this.item.tileset) === null || _d === void 0 ? void 0 : _d.ClientAccountID) !== null && _e !== void 0 ? _e : this.apiGetter.accountId
|
|
3527
3684
|
};
|
|
3528
3685
|
if (version == 1) {
|
|
3529
3686
|
var pathStr = feature.getProperty("BrucePath");
|
|
@@ -3552,7 +3709,7 @@ var TilesetCadRenderManager;
|
|
|
3552
3709
|
}
|
|
3553
3710
|
// Optional menu item restriction.
|
|
3554
3711
|
// Allows only showing certain entities from a tileset.
|
|
3555
|
-
var onlyIds = (
|
|
3712
|
+
var onlyIds = (_f = this.item.BruceEntity) === null || _f === void 0 ? void 0 : _f.EntityIds;
|
|
3556
3713
|
if ((onlyIds === null || onlyIds === void 0 ? void 0 : onlyIds.length) && !onlyIds.includes(rego.entityId)) {
|
|
3557
3714
|
if (this.item.BruceEntity.Ghosts) {
|
|
3558
3715
|
feature.color = Color.WHITE.clone().withAlpha(0.5);
|
|
@@ -3954,7 +4111,8 @@ var TilesetOsmRenderManager;
|
|
|
3954
4111
|
priority: 0,
|
|
3955
4112
|
visual: feature,
|
|
3956
4113
|
entityTypeId: this.entityTypeId,
|
|
3957
|
-
sourceId: this.sourceId
|
|
4114
|
+
sourceId: this.sourceId,
|
|
4115
|
+
accountId: this.apiGetter.accountId
|
|
3958
4116
|
};
|
|
3959
4117
|
this.visualsManager.Add(rego);
|
|
3960
4118
|
this._loadedCesiumEntities[bId] = rego;
|
|
@@ -4100,6 +4258,7 @@ var TilesetEntitiesRenderManager;
|
|
|
4100
4258
|
}
|
|
4101
4259
|
};
|
|
4102
4260
|
Manager.prototype.mapTilesetFeature = function (feature) {
|
|
4261
|
+
var _a, _b, _c;
|
|
4103
4262
|
var id = feature.getProperty("BruceId");
|
|
4104
4263
|
if (id) {
|
|
4105
4264
|
var rego = {
|
|
@@ -4107,7 +4266,9 @@ var TilesetEntitiesRenderManager;
|
|
|
4107
4266
|
entityTypeId: this.typeId,
|
|
4108
4267
|
menuItemId: this.item.id,
|
|
4109
4268
|
priority: 0,
|
|
4110
|
-
visual: feature
|
|
4269
|
+
visual: feature,
|
|
4270
|
+
tilesetId: (_a = this.item.tileset) === null || _a === void 0 ? void 0 : _a.TilesetID,
|
|
4271
|
+
accountId: (_c = (_b = this.item.tileset) === null || _b === void 0 ? void 0 : _b.ClientAccountID) !== null && _c !== void 0 ? _c : this.apiGetter.accountId
|
|
4111
4272
|
};
|
|
4112
4273
|
this.visualsManager.Add(rego);
|
|
4113
4274
|
}
|
|
@@ -4285,6 +4446,247 @@ var DataSourceStaticKmlManager;
|
|
|
4285
4446
|
DataSourceStaticKmlManager.Manager = Manager;
|
|
4286
4447
|
})(DataSourceStaticKmlManager || (DataSourceStaticKmlManager = {}));
|
|
4287
4448
|
|
|
4449
|
+
function getLegacyTileset(params) {
|
|
4450
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
4451
|
+
var apiGetter, menuItem, tileset, api, legacyTileset, e_1;
|
|
4452
|
+
return __generator(this, function (_a) {
|
|
4453
|
+
switch (_a.label) {
|
|
4454
|
+
case 0:
|
|
4455
|
+
apiGetter = params.apiGetter, menuItem = params.menuItem, tileset = params.tileset;
|
|
4456
|
+
_a.label = 1;
|
|
4457
|
+
case 1:
|
|
4458
|
+
_a.trys.push([1, 3, , 4]);
|
|
4459
|
+
api = apiGetter.getApi(menuItem.tileset.ClientAccountID);
|
|
4460
|
+
return [4 /*yield*/, api.GET("ui.tileset/" + tileset.id)];
|
|
4461
|
+
case 2:
|
|
4462
|
+
legacyTileset = _a.sent();
|
|
4463
|
+
return [2 /*return*/, legacyTileset];
|
|
4464
|
+
case 3:
|
|
4465
|
+
e_1 = _a.sent();
|
|
4466
|
+
console.log(e_1);
|
|
4467
|
+
return [3 /*break*/, 4];
|
|
4468
|
+
case 4: return [2 /*return*/];
|
|
4469
|
+
}
|
|
4470
|
+
});
|
|
4471
|
+
});
|
|
4472
|
+
}
|
|
4473
|
+
function getTileset(params) {
|
|
4474
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
4475
|
+
var apiGetter, menuItem, api, tileset, e_2;
|
|
4476
|
+
return __generator(this, function (_a) {
|
|
4477
|
+
switch (_a.label) {
|
|
4478
|
+
case 0:
|
|
4479
|
+
apiGetter = params.apiGetter, menuItem = params.menuItem;
|
|
4480
|
+
_a.label = 1;
|
|
4481
|
+
case 1:
|
|
4482
|
+
_a.trys.push([1, 3, , 4]);
|
|
4483
|
+
api = apiGetter.getApi(menuItem.tileset.ClientAccountID);
|
|
4484
|
+
return [4 /*yield*/, Tileset.Get({
|
|
4485
|
+
api: api,
|
|
4486
|
+
tilesetId: menuItem.tileset.TilesetID
|
|
4487
|
+
})];
|
|
4488
|
+
case 2:
|
|
4489
|
+
tileset = (_a.sent()).tileset;
|
|
4490
|
+
return [2 /*return*/, tileset];
|
|
4491
|
+
case 3:
|
|
4492
|
+
e_2 = _a.sent();
|
|
4493
|
+
console.error(e_2);
|
|
4494
|
+
return [3 /*break*/, 4];
|
|
4495
|
+
case 4: return [2 /*return*/];
|
|
4496
|
+
}
|
|
4497
|
+
});
|
|
4498
|
+
});
|
|
4499
|
+
}
|
|
4500
|
+
var TilesetArbRenderManager;
|
|
4501
|
+
(function (TilesetArbRenderManager) {
|
|
4502
|
+
var Manager = /** @class */ (function () {
|
|
4503
|
+
function Manager(params) {
|
|
4504
|
+
this.disposed = false;
|
|
4505
|
+
this.cTileset = null;
|
|
4506
|
+
this.styler = null;
|
|
4507
|
+
this.viewer = params.viewer;
|
|
4508
|
+
this.apiGetter = params.apiGetter;
|
|
4509
|
+
this.item = params.item;
|
|
4510
|
+
}
|
|
4511
|
+
Object.defineProperty(Manager.prototype, "Disposed", {
|
|
4512
|
+
get: function () {
|
|
4513
|
+
return this.disposed;
|
|
4514
|
+
},
|
|
4515
|
+
enumerable: false,
|
|
4516
|
+
configurable: true
|
|
4517
|
+
});
|
|
4518
|
+
Object.defineProperty(Manager.prototype, "Tileset", {
|
|
4519
|
+
get: function () {
|
|
4520
|
+
return this.cTileset;
|
|
4521
|
+
},
|
|
4522
|
+
enumerable: false,
|
|
4523
|
+
configurable: true
|
|
4524
|
+
});
|
|
4525
|
+
Manager.prototype.Init = function () {
|
|
4526
|
+
var _a, _b, _c;
|
|
4527
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
4528
|
+
var itemUrl, tileset, legacyTileset, _d;
|
|
4529
|
+
var _this = this;
|
|
4530
|
+
return __generator(this, function (_e) {
|
|
4531
|
+
switch (_e.label) {
|
|
4532
|
+
case 0:
|
|
4533
|
+
itemUrl = (_a = this.item.tileset) === null || _a === void 0 ? void 0 : _a.TilesetURL;
|
|
4534
|
+
if (itemUrl && itemUrl.includes("cc3d.api")) {
|
|
4535
|
+
this.item.tileset.ClientAccountID = "cc3d";
|
|
4536
|
+
}
|
|
4537
|
+
else if ((_b = this.item.IonResource) === null || _b === void 0 ? void 0 : _b.AssetID) {
|
|
4538
|
+
this.item.tileset.ClientAccountID = "cc3d";
|
|
4539
|
+
}
|
|
4540
|
+
return [4 /*yield*/, getTileset({
|
|
4541
|
+
apiGetter: this.apiGetter,
|
|
4542
|
+
menuItem: this.item
|
|
4543
|
+
})];
|
|
4544
|
+
case 1:
|
|
4545
|
+
tileset = _e.sent();
|
|
4546
|
+
if (!(tileset === null || tileset === void 0 ? void 0 : tileset.type)) return [3 /*break*/, 2];
|
|
4547
|
+
this.cTileset = TilesetRenderEngine.Render({
|
|
4548
|
+
apiGetter: this.apiGetter,
|
|
4549
|
+
tileset: tileset,
|
|
4550
|
+
viewer: this.viewer,
|
|
4551
|
+
coords: null
|
|
4552
|
+
});
|
|
4553
|
+
return [3 /*break*/, 5];
|
|
4554
|
+
case 2: return [4 /*yield*/, getLegacyTileset({
|
|
4555
|
+
apiGetter: this.apiGetter,
|
|
4556
|
+
menuItem: this.item,
|
|
4557
|
+
tileset: tileset
|
|
4558
|
+
})];
|
|
4559
|
+
case 3:
|
|
4560
|
+
legacyTileset = _e.sent();
|
|
4561
|
+
_d = this;
|
|
4562
|
+
return [4 /*yield*/, TilesetRenderEngine.RenderLegacy({
|
|
4563
|
+
apiGetter: this.apiGetter,
|
|
4564
|
+
tileset: legacyTileset,
|
|
4565
|
+
viewer: this.viewer,
|
|
4566
|
+
ionId: (_c = this.item.IonResource) === null || _c === void 0 ? void 0 : _c.AssetID
|
|
4567
|
+
})];
|
|
4568
|
+
case 4:
|
|
4569
|
+
_d.cTileset = _e.sent();
|
|
4570
|
+
_e.label = 5;
|
|
4571
|
+
case 5:
|
|
4572
|
+
this.cTileset.readyPromise.then(function () {
|
|
4573
|
+
try {
|
|
4574
|
+
if (_this.item.ApplyStyles) {
|
|
4575
|
+
var api = _this.apiGetter.getApi();
|
|
4576
|
+
_this.styler = new TilesetRenderEngine.CadStyler(api, _this.cTileset, _this.item.styleId, _this.item.StyleMapping);
|
|
4577
|
+
_this.onCTilesetLoad();
|
|
4578
|
+
}
|
|
4579
|
+
}
|
|
4580
|
+
catch (e) {
|
|
4581
|
+
console.error(e);
|
|
4582
|
+
}
|
|
4583
|
+
});
|
|
4584
|
+
this.cTileset.tileLoad.addEventListener(function (tile) {
|
|
4585
|
+
try {
|
|
4586
|
+
_this.mapCTile(tile);
|
|
4587
|
+
}
|
|
4588
|
+
catch (e) {
|
|
4589
|
+
console.error(e);
|
|
4590
|
+
}
|
|
4591
|
+
});
|
|
4592
|
+
return [2 /*return*/];
|
|
4593
|
+
}
|
|
4594
|
+
});
|
|
4595
|
+
});
|
|
4596
|
+
};
|
|
4597
|
+
Manager.prototype.onCTilesetLoad = function () {
|
|
4598
|
+
if (this.item.FlyTo) {
|
|
4599
|
+
this.viewer.zoomTo(this.cTileset, new HeadingPitchRange(0.0, -0.5, this.cTileset.boundingSphere.radius / 4.0));
|
|
4600
|
+
}
|
|
4601
|
+
};
|
|
4602
|
+
Manager.prototype.Dispose = function () {
|
|
4603
|
+
var _a;
|
|
4604
|
+
if (this.disposed) {
|
|
4605
|
+
return;
|
|
4606
|
+
}
|
|
4607
|
+
this.disposed = true;
|
|
4608
|
+
if (this.cTileset) {
|
|
4609
|
+
var viewer = this.viewer;
|
|
4610
|
+
if (!(viewer === null || viewer === void 0 ? void 0 : viewer.isDestroyed()) && this.viewer.scene.primitives.contains(this.cTileset)) {
|
|
4611
|
+
this.cTileset.show = false;
|
|
4612
|
+
this.viewer.scene.primitives.remove(this.cTileset);
|
|
4613
|
+
}
|
|
4614
|
+
this.cTileset = null;
|
|
4615
|
+
}
|
|
4616
|
+
(_a = this.styler) === null || _a === void 0 ? void 0 : _a.Dispose();
|
|
4617
|
+
this.visualsManager.RemoveByMenuItemId(this.item.id);
|
|
4618
|
+
};
|
|
4619
|
+
Manager.prototype.ReRender = function (entityIds) {
|
|
4620
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
4621
|
+
var regos;
|
|
4622
|
+
return __generator(this, function (_a) {
|
|
4623
|
+
if (!this.styler) {
|
|
4624
|
+
return [2 /*return*/];
|
|
4625
|
+
}
|
|
4626
|
+
regos = this.visualsManager.GetMenuItemRegos(this.item.id);
|
|
4627
|
+
if (entityIds != null) {
|
|
4628
|
+
regos = regos.filter(function (r) { return entityIds.indexOf(r.entityId) >= 0; });
|
|
4629
|
+
}
|
|
4630
|
+
this.styler.QueueEntities(regos);
|
|
4631
|
+
return [2 /*return*/];
|
|
4632
|
+
});
|
|
4633
|
+
});
|
|
4634
|
+
};
|
|
4635
|
+
Manager.prototype.mapCTile = function (tile) {
|
|
4636
|
+
var content = tile === null || tile === void 0 ? void 0 : tile.content;
|
|
4637
|
+
if (!content) {
|
|
4638
|
+
return;
|
|
4639
|
+
}
|
|
4640
|
+
for (var i = 0; i < content.featuresLength; i++) {
|
|
4641
|
+
var feature = content.getFeature(i);
|
|
4642
|
+
var rego = this.mapTilesetFeature(feature);
|
|
4643
|
+
if ((rego === null || rego === void 0 ? void 0 : rego.entityId) && this.styler) {
|
|
4644
|
+
this.styler.QueueEntities([rego]);
|
|
4645
|
+
}
|
|
4646
|
+
}
|
|
4647
|
+
};
|
|
4648
|
+
Manager.prototype.mapTilesetFeature = function (feature) {
|
|
4649
|
+
var _a, _b, _c;
|
|
4650
|
+
var rego = {
|
|
4651
|
+
entityId: null,
|
|
4652
|
+
entityTypeId: null,
|
|
4653
|
+
menuItemId: this.item.id,
|
|
4654
|
+
priority: 0,
|
|
4655
|
+
visual: feature,
|
|
4656
|
+
accountId: (_b = (_a = this.item.tileset) === null || _a === void 0 ? void 0 : _a.ClientAccountID) !== null && _b !== void 0 ? _b : this.apiGetter.accountId
|
|
4657
|
+
};
|
|
4658
|
+
var props = feature.getPropertyNames([]);
|
|
4659
|
+
if (props.find(function (x) { return x == "BrucePath"; })) {
|
|
4660
|
+
var path = (_c = feature.getProperty("BrucePath")) === null || _c === void 0 ? void 0 : _c.split("|");
|
|
4661
|
+
if (path === null || path === void 0 ? void 0 : path.length) {
|
|
4662
|
+
rego.entityId = path[path.length - 1];
|
|
4663
|
+
}
|
|
4664
|
+
}
|
|
4665
|
+
if (!rego.entityId) {
|
|
4666
|
+
var ACCEPTABLE_PROPS = [
|
|
4667
|
+
"Building_ID", "BuildingID", "BruceId"
|
|
4668
|
+
];
|
|
4669
|
+
for (var _i = 0, ACCEPTABLE_PROPS_1 = ACCEPTABLE_PROPS; _i < ACCEPTABLE_PROPS_1.length; _i++) {
|
|
4670
|
+
var acceptableId = ACCEPTABLE_PROPS_1[_i];
|
|
4671
|
+
if (props.indexOf(acceptableId) > -1) {
|
|
4672
|
+
rego.entityId = feature.getProperty(acceptableId);
|
|
4673
|
+
if (rego.entityId) {
|
|
4674
|
+
break;
|
|
4675
|
+
}
|
|
4676
|
+
}
|
|
4677
|
+
}
|
|
4678
|
+
}
|
|
4679
|
+
if (!rego.entityId) {
|
|
4680
|
+
return null;
|
|
4681
|
+
}
|
|
4682
|
+
this.visualsManager.Add(rego);
|
|
4683
|
+
return rego;
|
|
4684
|
+
};
|
|
4685
|
+
return Manager;
|
|
4686
|
+
}());
|
|
4687
|
+
TilesetArbRenderManager.Manager = Manager;
|
|
4688
|
+
})(TilesetArbRenderManager || (TilesetArbRenderManager = {}));
|
|
4689
|
+
|
|
4288
4690
|
/**
|
|
4289
4691
|
* Utility to keep track of enabled menu items within a Cesium viewer.
|
|
4290
4692
|
*/
|
|
@@ -4385,6 +4787,14 @@ var MenuItemManager;
|
|
|
4385
4787
|
case MenuItem.EType.Kml:
|
|
4386
4788
|
rItem.renderManager = new DataSourceStaticKmlManager.Manager(this.viewer, params.apiGetter, params.item);
|
|
4387
4789
|
break;
|
|
4790
|
+
case MenuItem.EType.ArbTileset:
|
|
4791
|
+
rItem.renderManager = new TilesetArbRenderManager.Manager({
|
|
4792
|
+
apiGetter: params.apiGetter,
|
|
4793
|
+
item: params.item,
|
|
4794
|
+
viewer: this.viewer,
|
|
4795
|
+
visualsManager: this.visualsRegister
|
|
4796
|
+
});
|
|
4797
|
+
break;
|
|
4388
4798
|
// Any "none" type can be ignored. These are just containers for other items.
|
|
4389
4799
|
case MenuItem.EType.None:
|
|
4390
4800
|
break;
|