bruce-cesium 0.3.0 → 0.3.3
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/README.md +0 -0
- package/dist/bruce-cesium.es5.js +294 -10
- package/dist/bruce-cesium.es5.js.map +1 -1
- package/dist/bruce-cesium.umd.js +292 -8
- package/dist/bruce-cesium.umd.js.map +1 -1
- package/dist/lib/bruce-cesium.js +30 -30
- package/dist/lib/bruce-cesium.js.map +0 -0
- package/dist/lib/rendering/entity-render-engine.js +848 -848
- package/dist/lib/rendering/entity-render-engine.js.map +0 -0
- package/dist/lib/rendering/menu-item-manager.js +252 -247
- package/dist/lib/rendering/menu-item-manager.js.map +1 -1
- package/dist/lib/rendering/render-addons/measure-addon.js +186 -186
- package/dist/lib/rendering/render-addons/measure-addon.js.map +0 -0
- package/dist/lib/rendering/render-addons/render-addon.js +2 -2
- package/dist/lib/rendering/render-addons/render-addon.js.map +0 -0
- package/dist/lib/rendering/render-helper.js +279 -279
- package/dist/lib/rendering/render-helper.js.map +0 -0
- package/dist/lib/rendering/render-managers/common/shared-getters.js +31 -31
- package/dist/lib/rendering/render-managers/common/shared-getters.js.map +0 -0
- package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js +144 -144
- package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js.map +0 -0
- package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js +141 -141
- package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js.map +0 -0
- package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +232 -232
- package/dist/lib/rendering/render-managers/entities/entities-render-manager.js.map +0 -0
- package/dist/lib/rendering/render-managers/entities/entity-render-manager.js +138 -138
- package/dist/lib/rendering/render-managers/entities/entity-render-manager.js.map +0 -0
- package/dist/lib/rendering/render-managers/render-manager.js +50 -50
- package/dist/lib/rendering/render-managers/render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js +230 -230
- package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js.map +0 -0
- package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js +321 -0
- package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js.map +1 -0
- package/dist/lib/rendering/tile-render-engine.js +542 -542
- package/dist/lib/rendering/tile-render-engine.js.map +0 -0
- package/dist/lib/rendering/tileset-render-engine.js +472 -472
- package/dist/lib/rendering/tileset-render-engine.js.map +0 -0
- package/dist/lib/rendering/view-render-engine.js +138 -138
- package/dist/lib/rendering/view-render-engine.js.map +0 -0
- package/dist/lib/rendering/visuals-register.js +394 -394
- package/dist/lib/rendering/visuals-register.js.map +1 -1
- package/dist/lib/utils/drawing-utils.js +42 -42
- package/dist/lib/utils/drawing-utils.js.map +0 -0
- package/dist/lib/utils/entity-utils.js +99 -99
- package/dist/lib/utils/entity-utils.js.map +0 -0
- package/dist/lib/utils/measure-utils.js +34 -34
- package/dist/lib/utils/measure-utils.js.map +0 -0
- package/dist/lib/utils/view-utils.js +34 -34
- package/dist/lib/utils/view-utils.js.map +0 -0
- package/dist/lib/viewer/cesium-view-monitor.js +227 -227
- package/dist/lib/viewer/cesium-view-monitor.js.map +0 -0
- package/dist/lib/viewer/viewer-utils.js +85 -85
- package/dist/lib/viewer/viewer-utils.js.map +0 -0
- package/dist/types/bruce-cesium.d.ts +0 -0
- package/dist/types/rendering/entity-render-engine.d.ts +0 -0
- package/dist/types/rendering/menu-item-manager.d.ts +4 -2
- package/dist/types/rendering/render-addons/measure-addon.d.ts +0 -0
- package/dist/types/rendering/render-addons/render-addon.d.ts +0 -0
- package/dist/types/rendering/render-helper.d.ts +0 -0
- package/dist/types/rendering/render-managers/common/shared-getters.d.ts +0 -0
- package/dist/types/rendering/render-managers/entities/entities-ids-render-manager.d.ts +0 -0
- package/dist/types/rendering/render-managers/entities/entities-loaded-render-manager.d.ts +0 -0
- package/dist/types/rendering/render-managers/entities/entities-render-manager.d.ts +0 -0
- package/dist/types/rendering/render-managers/entities/entity-render-manager.d.ts +0 -0
- package/dist/types/rendering/render-managers/render-manager.d.ts +2 -1
- package/dist/types/rendering/render-managers/tilesets/tileset-cad-render-manager.d.ts +0 -0
- package/dist/types/rendering/render-managers/tilesets/tileset-osm-render-manager.d.ts +35 -0
- package/dist/types/rendering/tile-render-engine.d.ts +0 -0
- package/dist/types/rendering/tileset-render-engine.d.ts +0 -0
- package/dist/types/rendering/view-render-engine.d.ts +0 -0
- package/dist/types/rendering/visuals-register.d.ts +1 -0
- package/dist/types/utils/drawing-utils.d.ts +0 -0
- package/dist/types/utils/entity-utils.d.ts +0 -0
- package/dist/types/utils/measure-utils.d.ts +0 -0
- package/dist/types/utils/view-utils.d.ts +0 -0
- package/dist/types/viewer/cesium-view-monitor.d.ts +0 -0
- package/dist/types/viewer/viewer-utils.d.ts +0 -0
- package/package.json +73 -73
package/README.md
CHANGED
|
File without changes
|
package/dist/bruce-cesium.es5.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { BruceEvent, Cartes, Carto, Geometry, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, DelayQueue, Entity as Entity$1, BatchedDataGetter, ObjectUtils, Tileset, EntityFilterGetter, MenuItem, ProjectView, ProjectViewBookmark, ProjectViewTileSource, Camera, MathUtils } from 'bruce-models';
|
|
2
|
-
import { Cartesian2, Cartographic, Math as Math$1, Viewer, ArcGisMapServerImageryProvider, ScreenSpaceEventType,
|
|
1
|
+
import { BruceEvent, Cartes, Carto, Geometry, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, DelayQueue, Entity as Entity$1, BatchedDataGetter, ObjectUtils, Tileset, EntityFilterGetter, EntitySource, MenuItem, ProjectView, ProjectViewBookmark, ProjectViewTileSource, Camera, MathUtils } from 'bruce-models';
|
|
2
|
+
import { Cartesian2, Cartographic, Math as Math$1, Viewer, ArcGisMapServerImageryProvider, ScreenSpaceEventType, Entity, Primitive, Cesium3DTileFeature, Color, Cartesian3, HeadingPitchRange, OrthographicFrustum, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, createWorldTerrain, CesiumTerrainProvider, EllipsoidTerrainProvider, HeightReference, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Matrix4, Cesium3DTileset, EllipsoidGeodesic, createOsmBuildings, Cesium3DTileStyle, Rectangle } from 'cesium';
|
|
3
3
|
|
|
4
4
|
var TIME_LAG = 300;
|
|
5
5
|
var POSITION_CHECK_TIMER = 950;
|
|
@@ -2897,6 +2897,286 @@ var SharedGetters;
|
|
|
2897
2897
|
SharedGetters.Cache = Cache;
|
|
2898
2898
|
})(SharedGetters || (SharedGetters = {}));
|
|
2899
2899
|
|
|
2900
|
+
var MAX_BATCHES = 2;
|
|
2901
|
+
var BATCH_SIZE = 30;
|
|
2902
|
+
var BATCH_DELAY = 200;
|
|
2903
|
+
var MAX_RANGE = 3000;
|
|
2904
|
+
var TilesetOsmRenderManager;
|
|
2905
|
+
(function (TilesetOsmRenderManager) {
|
|
2906
|
+
var Manager = /** @class */ (function () {
|
|
2907
|
+
function Manager(viewer, visualsManager, apiGetter, monitor, item) {
|
|
2908
|
+
this.disposed = false;
|
|
2909
|
+
this.cTileset = null;
|
|
2910
|
+
this.counter = 0;
|
|
2911
|
+
this._loadedCesiumEntities = {};
|
|
2912
|
+
this.totalLoaded = 0;
|
|
2913
|
+
this.featureQueue = [];
|
|
2914
|
+
this.sourceId = null;
|
|
2915
|
+
this.entityTypeId = null;
|
|
2916
|
+
this.queueCheckInterval = null;
|
|
2917
|
+
this.processingQueue = 0;
|
|
2918
|
+
this.viewer = viewer;
|
|
2919
|
+
this.apiGetter = apiGetter;
|
|
2920
|
+
this.item = item;
|
|
2921
|
+
this.visualsManager = visualsManager;
|
|
2922
|
+
this.monitor = monitor;
|
|
2923
|
+
}
|
|
2924
|
+
Object.defineProperty(Manager.prototype, "Disposed", {
|
|
2925
|
+
get: function () {
|
|
2926
|
+
return this.disposed;
|
|
2927
|
+
},
|
|
2928
|
+
enumerable: false,
|
|
2929
|
+
configurable: true
|
|
2930
|
+
});
|
|
2931
|
+
Object.defineProperty(Manager.prototype, "count", {
|
|
2932
|
+
get: function () {
|
|
2933
|
+
return ++this.counter;
|
|
2934
|
+
},
|
|
2935
|
+
enumerable: false,
|
|
2936
|
+
configurable: true
|
|
2937
|
+
});
|
|
2938
|
+
Manager.prototype.Dispose = function () {
|
|
2939
|
+
if (this.disposed) {
|
|
2940
|
+
return;
|
|
2941
|
+
}
|
|
2942
|
+
clearInterval(this.queueCheckInterval);
|
|
2943
|
+
if (this.cTileset) {
|
|
2944
|
+
this.cTileset.show = false;
|
|
2945
|
+
}
|
|
2946
|
+
this.visualsManager.RemoveByMenuItemId(this.item.id);
|
|
2947
|
+
this.featureQueue = [];
|
|
2948
|
+
};
|
|
2949
|
+
Manager.prototype.Init = function () {
|
|
2950
|
+
var _a, _b;
|
|
2951
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
2952
|
+
var menuItem;
|
|
2953
|
+
var _this = this;
|
|
2954
|
+
return __generator(this, function (_c) {
|
|
2955
|
+
menuItem = this.item;
|
|
2956
|
+
this.sourceId = (_a = menuItem.BruceEntity) === null || _a === void 0 ? void 0 : _a.SourceId;
|
|
2957
|
+
this.entityTypeId = (_b = menuItem.BruceEntity) === null || _b === void 0 ? void 0 : _b["EntityType.ID"];
|
|
2958
|
+
this.cTileset = createOsmBuildings();
|
|
2959
|
+
this.cTileset.show = true;
|
|
2960
|
+
if (this.sourceId) {
|
|
2961
|
+
if (menuItem.ghostLoading == true) {
|
|
2962
|
+
this.cTileset.style = new Cesium3DTileStyle({
|
|
2963
|
+
color: "rgba(255, 255, 250, 0.98)"
|
|
2964
|
+
});
|
|
2965
|
+
}
|
|
2966
|
+
this.viewer.scene.primitives.add(this.cTileset);
|
|
2967
|
+
this.cTileset.tileLoad.addEventListener(function (tile) {
|
|
2968
|
+
_this.mapCTile(tile);
|
|
2969
|
+
});
|
|
2970
|
+
this.queueCheckInterval = setInterval(function () {
|
|
2971
|
+
if (_this.featureQueue.length > 0) {
|
|
2972
|
+
_this.processQueue();
|
|
2973
|
+
}
|
|
2974
|
+
}, 5000);
|
|
2975
|
+
}
|
|
2976
|
+
else {
|
|
2977
|
+
this.viewer.scene.primitives.add(this.cTileset);
|
|
2978
|
+
}
|
|
2979
|
+
return [2 /*return*/];
|
|
2980
|
+
});
|
|
2981
|
+
});
|
|
2982
|
+
};
|
|
2983
|
+
Manager.prototype.mapCTile = function (tile) {
|
|
2984
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
2985
|
+
var content, i, feature;
|
|
2986
|
+
return __generator(this, function (_a) {
|
|
2987
|
+
if (this.sourceId) {
|
|
2988
|
+
content = tile.content;
|
|
2989
|
+
for (i = 0; i < content.featuresLength; i++) {
|
|
2990
|
+
feature = content.getFeature(i);
|
|
2991
|
+
if (feature._counter == null) {
|
|
2992
|
+
feature._counter = this.count;
|
|
2993
|
+
}
|
|
2994
|
+
if (feature._orgColor == null) {
|
|
2995
|
+
feature._orgColor = feature.color;
|
|
2996
|
+
}
|
|
2997
|
+
this.featureQueue.push(feature);
|
|
2998
|
+
}
|
|
2999
|
+
this.processQueue();
|
|
3000
|
+
}
|
|
3001
|
+
return [2 /*return*/];
|
|
3002
|
+
});
|
|
3003
|
+
});
|
|
3004
|
+
};
|
|
3005
|
+
Manager.prototype.processQueue = function () {
|
|
3006
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
3007
|
+
var batch, rerun, e_1;
|
|
3008
|
+
var _this = this;
|
|
3009
|
+
return __generator(this, function (_a) {
|
|
3010
|
+
switch (_a.label) {
|
|
3011
|
+
case 0:
|
|
3012
|
+
if (this.processingQueue >= MAX_BATCHES) {
|
|
3013
|
+
return [2 /*return*/];
|
|
3014
|
+
}
|
|
3015
|
+
else if (this.Disposed) {
|
|
3016
|
+
return [2 /*return*/];
|
|
3017
|
+
}
|
|
3018
|
+
this.processingQueue += 1;
|
|
3019
|
+
batch = [];
|
|
3020
|
+
rerun = false;
|
|
3021
|
+
_a.label = 1;
|
|
3022
|
+
case 1:
|
|
3023
|
+
_a.trys.push([1, 4, 5, 6]);
|
|
3024
|
+
batch = this.getVisualsForBatch();
|
|
3025
|
+
if (!(batch.length > 0)) return [3 /*break*/, 3];
|
|
3026
|
+
return [4 /*yield*/, this.mapTileBatch(batch)];
|
|
3027
|
+
case 2:
|
|
3028
|
+
_a.sent();
|
|
3029
|
+
_a.label = 3;
|
|
3030
|
+
case 3:
|
|
3031
|
+
if (this.totalLoaded > 8000) {
|
|
3032
|
+
rerun = this.removeFarAwayBatch();
|
|
3033
|
+
}
|
|
3034
|
+
else {
|
|
3035
|
+
rerun = this.featureQueue.length > 0 && batch.length > 0;
|
|
3036
|
+
}
|
|
3037
|
+
return [3 /*break*/, 6];
|
|
3038
|
+
case 4:
|
|
3039
|
+
e_1 = _a.sent();
|
|
3040
|
+
console.error(e_1);
|
|
3041
|
+
return [3 /*break*/, 6];
|
|
3042
|
+
case 5:
|
|
3043
|
+
setTimeout(function () {
|
|
3044
|
+
_this.processingQueue -= 1;
|
|
3045
|
+
if (rerun) {
|
|
3046
|
+
_this.processQueue();
|
|
3047
|
+
}
|
|
3048
|
+
}, BATCH_DELAY);
|
|
3049
|
+
return [7 /*endfinally*/];
|
|
3050
|
+
case 6: return [2 /*return*/];
|
|
3051
|
+
}
|
|
3052
|
+
});
|
|
3053
|
+
});
|
|
3054
|
+
};
|
|
3055
|
+
Manager.prototype.getVisualsForBatch = function () {
|
|
3056
|
+
var batch = [];
|
|
3057
|
+
var features = this.featureQueue;
|
|
3058
|
+
var bounds = this.monitor.GetBounds();
|
|
3059
|
+
var rect = (bounds === null || bounds === void 0 ? void 0 : bounds.east) ? new Rectangle(Math$1.toRadians(bounds.west), Math$1.toRadians(bounds.south), Math$1.toRadians(bounds.east), Math$1.toRadians(bounds.north)) : null;
|
|
3060
|
+
if (rect) {
|
|
3061
|
+
for (var i = 0; i < features.length; i++) {
|
|
3062
|
+
var feature = features[i];
|
|
3063
|
+
if (feature) {
|
|
3064
|
+
var featureLon = feature.getProperty("cesium#longitude");
|
|
3065
|
+
var featureLat = feature.getProperty("cesium#latitude");
|
|
3066
|
+
if (featureLon && featureLat) {
|
|
3067
|
+
var carto = Cartographic.fromDegrees(featureLon, featureLat, 0);
|
|
3068
|
+
var isIn = Rectangle.contains(rect, carto);
|
|
3069
|
+
if (isIn) {
|
|
3070
|
+
var isClose = this.getIsVisualWithinRange(feature, MAX_RANGE);
|
|
3071
|
+
if (isClose) {
|
|
3072
|
+
batch.push(feature);
|
|
3073
|
+
if (batch.length >= BATCH_SIZE) {
|
|
3074
|
+
return batch;
|
|
3075
|
+
}
|
|
3076
|
+
}
|
|
3077
|
+
}
|
|
3078
|
+
}
|
|
3079
|
+
}
|
|
3080
|
+
}
|
|
3081
|
+
}
|
|
3082
|
+
return batch;
|
|
3083
|
+
};
|
|
3084
|
+
Manager.prototype.getIsVisualWithinRange = function (visual, range) {
|
|
3085
|
+
var featureLon = visual.getProperty("cesium#longitude");
|
|
3086
|
+
var featureLat = visual.getProperty("cesium#latitude");
|
|
3087
|
+
if (featureLon && featureLat) {
|
|
3088
|
+
var pos = Cartesian3.fromDegrees(featureLon, featureLat, 0);
|
|
3089
|
+
var camPoint = this.monitor.GetTarget();
|
|
3090
|
+
var camPos = (camPoint === null || camPoint === void 0 ? void 0 : camPoint.latitude) ? Cartesian3.fromDegrees(camPoint.longitude, camPoint.latitude, camPoint.altitude) : null;
|
|
3091
|
+
if (camPos && Cartes.ValidateCartes3(camPos) && Cartes.ValidateCartes3(pos)) {
|
|
3092
|
+
var distance = Cartesian3.distance(pos, camPos);
|
|
3093
|
+
if (distance != null && distance <= range) {
|
|
3094
|
+
return true;
|
|
3095
|
+
}
|
|
3096
|
+
}
|
|
3097
|
+
}
|
|
3098
|
+
return false;
|
|
3099
|
+
};
|
|
3100
|
+
Manager.prototype.mapTileBatch = function (features) {
|
|
3101
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
3102
|
+
var featureIds, featureMap, _loop_1, this_1, i, api, bIds, i, id, bId, feature, rego;
|
|
3103
|
+
return __generator(this, function (_a) {
|
|
3104
|
+
switch (_a.label) {
|
|
3105
|
+
case 0:
|
|
3106
|
+
featureIds = [];
|
|
3107
|
+
featureMap = [];
|
|
3108
|
+
_loop_1 = function (i) {
|
|
3109
|
+
var feature = features[i];
|
|
3110
|
+
var featureId = feature.getProperty("elementId");
|
|
3111
|
+
if (featureId) {
|
|
3112
|
+
featureMap.push(feature);
|
|
3113
|
+
featureIds.push(featureId + "");
|
|
3114
|
+
}
|
|
3115
|
+
var index = this_1.featureQueue.findIndex(function (x) { return x._counter == feature._counter; });
|
|
3116
|
+
if (index > -1) {
|
|
3117
|
+
this_1.featureQueue.splice(index, 1);
|
|
3118
|
+
}
|
|
3119
|
+
};
|
|
3120
|
+
this_1 = this;
|
|
3121
|
+
for (i = 0; i < features.length; i++) {
|
|
3122
|
+
_loop_1(i);
|
|
3123
|
+
}
|
|
3124
|
+
api = this.apiGetter.getApi(this.apiGetter.accountId, this.apiGetter.env);
|
|
3125
|
+
return [4 /*yield*/, EntitySource.GetEntityIdsBySourceKeys(api, this.sourceId, featureIds)];
|
|
3126
|
+
case 1:
|
|
3127
|
+
bIds = _a.sent();
|
|
3128
|
+
for (i = 0; i < featureIds.length; i++) {
|
|
3129
|
+
id = featureIds[i];
|
|
3130
|
+
bId = bIds[id];
|
|
3131
|
+
if (!bId) {
|
|
3132
|
+
bId = ObjectUtils.UId();
|
|
3133
|
+
}
|
|
3134
|
+
feature = featureMap[i];
|
|
3135
|
+
if (this.item.ghostLoading == true) {
|
|
3136
|
+
feature.color = feature._orgColor;
|
|
3137
|
+
}
|
|
3138
|
+
rego = {
|
|
3139
|
+
entityId: bId,
|
|
3140
|
+
menuItemId: this.item.id,
|
|
3141
|
+
priority: 0,
|
|
3142
|
+
visual: feature,
|
|
3143
|
+
entityTypeId: this.entityTypeId,
|
|
3144
|
+
sourceId: this.sourceId
|
|
3145
|
+
};
|
|
3146
|
+
this.visualsManager.Add(rego);
|
|
3147
|
+
this._loadedCesiumEntities[bId] = rego;
|
|
3148
|
+
}
|
|
3149
|
+
return [2 /*return*/];
|
|
3150
|
+
}
|
|
3151
|
+
});
|
|
3152
|
+
});
|
|
3153
|
+
};
|
|
3154
|
+
Manager.prototype.removeFarAwayBatch = function () {
|
|
3155
|
+
var removed = 0;
|
|
3156
|
+
var keys = Object.keys(this._loadedCesiumEntities);
|
|
3157
|
+
for (var i = 0; i < keys.length; i++) {
|
|
3158
|
+
var key = keys[i];
|
|
3159
|
+
var rego = this._loadedCesiumEntities[key];
|
|
3160
|
+
if (rego) {
|
|
3161
|
+
if (!this.getIsVisualWithinRange(rego.visual, MAX_RANGE)) {
|
|
3162
|
+
this.visualsManager.Remove(rego.entityId, this.item.id);
|
|
3163
|
+
this._loadedCesiumEntities[key] = null;
|
|
3164
|
+
delete this._loadedCesiumEntities[key];
|
|
3165
|
+
this.totalLoaded -= 1;
|
|
3166
|
+
removed += 1;
|
|
3167
|
+
if (removed >= BATCH_SIZE) {
|
|
3168
|
+
return true;
|
|
3169
|
+
}
|
|
3170
|
+
}
|
|
3171
|
+
}
|
|
3172
|
+
}
|
|
3173
|
+
return removed > 0;
|
|
3174
|
+
};
|
|
3175
|
+
return Manager;
|
|
3176
|
+
}());
|
|
3177
|
+
TilesetOsmRenderManager.Manager = Manager;
|
|
3178
|
+
})(TilesetOsmRenderManager || (TilesetOsmRenderManager = {}));
|
|
3179
|
+
|
|
2900
3180
|
/**
|
|
2901
3181
|
* Utility to keep track of enabled menu items within a Cesium viewer.
|
|
2902
3182
|
*/
|
|
@@ -2942,18 +3222,19 @@ var MenuItemManager;
|
|
|
2942
3222
|
* Renders a given menu item and all ids children.
|
|
2943
3223
|
* Will return the enabled item id.
|
|
2944
3224
|
* @param params
|
|
3225
|
+
* @param recursive
|
|
2945
3226
|
* @returns
|
|
2946
3227
|
*/
|
|
2947
|
-
Manager.prototype.RenderItem = function (params) {
|
|
3228
|
+
Manager.prototype.RenderItem = function (params, recursive) {
|
|
2948
3229
|
var _a, _b;
|
|
3230
|
+
if (recursive === void 0) { recursive = true; }
|
|
2949
3231
|
return __awaiter(this, void 0, void 0, function () {
|
|
2950
3232
|
var rItem, i, childId;
|
|
2951
3233
|
return __generator(this, function (_c) {
|
|
2952
3234
|
switch (_c.label) {
|
|
2953
3235
|
case 0:
|
|
2954
|
-
|
|
2955
|
-
|
|
2956
|
-
}
|
|
3236
|
+
rItem = this.items.find(function (x) { return x.id == params.item.id; });
|
|
3237
|
+
if (!!rItem) return [3 /*break*/, 2];
|
|
2957
3238
|
rItem = {
|
|
2958
3239
|
id: (_a = params.item.id) !== null && _a !== void 0 ? _a : ObjectUtils.UId(),
|
|
2959
3240
|
childIds: [],
|
|
@@ -2961,6 +3242,7 @@ var MenuItemManager;
|
|
|
2961
3242
|
renderManager: null,
|
|
2962
3243
|
type: params.item.Type
|
|
2963
3244
|
};
|
|
3245
|
+
this.items.push(rItem);
|
|
2964
3246
|
switch (params.item.Type) {
|
|
2965
3247
|
case MenuItem.EType.Entities:
|
|
2966
3248
|
rItem.renderManager = new EntitiesRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, this.sharedMonitor, params.item, this.sharedGetters);
|
|
@@ -2978,7 +3260,7 @@ var MenuItemManager;
|
|
|
2978
3260
|
rItem.renderManager = new TilesetCadRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item);
|
|
2979
3261
|
break;
|
|
2980
3262
|
case MenuItem.EType.Osm:
|
|
2981
|
-
|
|
3263
|
+
rItem.renderManager = new TilesetOsmRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, this.sharedMonitor, params.item);
|
|
2982
3264
|
break;
|
|
2983
3265
|
case MenuItem.EType.PointCloud:
|
|
2984
3266
|
// TODO;
|
|
@@ -3001,8 +3283,7 @@ var MenuItemManager;
|
|
|
3001
3283
|
_c.sent();
|
|
3002
3284
|
_c.label = 2;
|
|
3003
3285
|
case 2:
|
|
3004
|
-
|
|
3005
|
-
if (!params.item.Children) return [3 /*break*/, 6];
|
|
3286
|
+
if (!(params.item.Children && recursive)) return [3 /*break*/, 6];
|
|
3006
3287
|
i = 0;
|
|
3007
3288
|
_c.label = 3;
|
|
3008
3289
|
case 3:
|
|
@@ -3026,9 +3307,11 @@ var MenuItemManager;
|
|
|
3026
3307
|
* Disables a menu item by ids id.
|
|
3027
3308
|
* This will disable all children as well.
|
|
3028
3309
|
* @param id
|
|
3310
|
+
* @param recursive
|
|
3029
3311
|
*/
|
|
3030
|
-
Manager.prototype.RemoveItemById = function (id) {
|
|
3312
|
+
Manager.prototype.RemoveItemById = function (id, recursive) {
|
|
3031
3313
|
var _a, _b;
|
|
3314
|
+
if (recursive === void 0) { recursive = true; }
|
|
3032
3315
|
return __awaiter(this, void 0, void 0, function () {
|
|
3033
3316
|
var item, _loop_1, this_1, i;
|
|
3034
3317
|
return __generator(this, function (_c) {
|
|
@@ -3036,6 +3319,7 @@ var MenuItemManager;
|
|
|
3036
3319
|
case 0:
|
|
3037
3320
|
item = this.items.find(function (x) { return x.id === id; });
|
|
3038
3321
|
if (!item) return [3 /*break*/, 5];
|
|
3322
|
+
if (!recursive) return [3 /*break*/, 4];
|
|
3039
3323
|
_loop_1 = function (i) {
|
|
3040
3324
|
var child;
|
|
3041
3325
|
return __generator(this, function (_a) {
|