bruce-cesium 0.2.2 → 0.2.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/dist/bruce-cesium.es5.js +100 -9
- package/dist/bruce-cesium.es5.js.map +1 -1
- package/dist/bruce-cesium.umd.js +96 -6
- package/dist/bruce-cesium.umd.js.map +1 -1
- package/dist/lib/bruce-cesium.js +1 -0
- package/dist/lib/bruce-cesium.js.map +1 -1
- package/dist/lib/rendering/menu-item-manager.js +3 -1
- package/dist/lib/rendering/menu-item-manager.js.map +1 -1
- package/dist/lib/rendering/render-helper.js +31 -1
- package/dist/lib/rendering/render-helper.js.map +1 -1
- package/dist/lib/rendering/render-managers/common/shared-getters.js +34 -0
- package/dist/lib/rendering/render-managers/common/shared-getters.js.map +1 -0
- package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +15 -4
- package/dist/lib/rendering/render-managers/entities/entities-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/render-manager.js +19 -0
- package/dist/lib/rendering/render-managers/render-manager.js.map +1 -1
- package/dist/lib/viewer/cesium-view-monitor.js +2 -0
- package/dist/lib/viewer/cesium-view-monitor.js.map +1 -1
- package/dist/types/bruce-cesium.d.ts +1 -0
- package/dist/types/rendering/menu-item-manager.d.ts +1 -0
- package/dist/types/rendering/render-managers/common/shared-getters.d.ts +18 -0
- package/dist/types/rendering/render-managers/entities/entities-render-manager.d.ts +3 -1
- package/dist/types/rendering/render-managers/render-manager.d.ts +1 -0
- package/package.json +1 -1
package/dist/bruce-cesium.umd.js
CHANGED
|
@@ -120,6 +120,7 @@
|
|
|
120
120
|
clearInterval(this.checkInterval);
|
|
121
121
|
};
|
|
122
122
|
CesiumViewMonitor.prototype.tryDoUpdate = function () {
|
|
123
|
+
var _a;
|
|
123
124
|
var viewRect = null;
|
|
124
125
|
var center = null;
|
|
125
126
|
var camera = this.viewer.camera;
|
|
@@ -180,6 +181,7 @@
|
|
|
180
181
|
viewRect.west = Math.min(viewRect.west, centerLong - (MINIMUM_VIEW_AREA_SIZE_DEGREES / 2));
|
|
181
182
|
viewRect.south = Math.min(viewRect.south, centerLat - (MINIMUM_VIEW_AREA_SIZE_DEGREES / 2));
|
|
182
183
|
viewRect.north = Math.max(viewRect.north, centerLat + (MINIMUM_VIEW_AREA_SIZE_DEGREES / 2));
|
|
184
|
+
viewRect.alt = (_a = this.viewer.scene.camera.positionCartographic) === null || _a === void 0 ? void 0 : _a.height;
|
|
183
185
|
}
|
|
184
186
|
if (center && viewRect) {
|
|
185
187
|
if ((!this.target || (this.target && !arePosEqual(this.target, center))) ||
|
|
@@ -553,6 +555,25 @@
|
|
|
553
555
|
return null;
|
|
554
556
|
}
|
|
555
557
|
Utils.GetZoomControlFromDistance = GetZoomControlFromDistance;
|
|
558
|
+
function GetZoomMinMax(zoomControl) {
|
|
559
|
+
var min = 0;
|
|
560
|
+
var max = 100;
|
|
561
|
+
for (var i = 0; i < zoomControl.length; i++) {
|
|
562
|
+
var zoomItem = zoomControl[i];
|
|
563
|
+
if (zoomItem.MinZoom != null) {
|
|
564
|
+
if (zoomItem.MinZoom < min) {
|
|
565
|
+
min = zoomItem.MinZoom;
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
if (zoomItem.MaxZoom != null) {
|
|
569
|
+
if (zoomItem.MaxZoom > max) {
|
|
570
|
+
max = zoomItem.MaxZoom;
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
return [min, max];
|
|
575
|
+
}
|
|
576
|
+
Utils.GetZoomMinMax = GetZoomMinMax;
|
|
556
577
|
})(Utils = RenderManager.Utils || (RenderManager.Utils = {}));
|
|
557
578
|
})(exports.RenderManager || (exports.RenderManager = {}));
|
|
558
579
|
|
|
@@ -1350,7 +1371,7 @@
|
|
|
1350
1371
|
|
|
1351
1372
|
(function (EntitiesRenderManager) {
|
|
1352
1373
|
var Manager = /** @class */ (function () {
|
|
1353
|
-
function Manager(viewer, visualsManager, apiGetter, item) {
|
|
1374
|
+
function Manager(viewer, visualsManager, apiGetter, item, sharedGetters) {
|
|
1354
1375
|
this.getter = null;
|
|
1355
1376
|
this.getterSub = null;
|
|
1356
1377
|
this.disposed = false;
|
|
@@ -1360,6 +1381,7 @@
|
|
|
1360
1381
|
this.isRunningCheck = false;
|
|
1361
1382
|
this.viewMonitorRemoval = null;
|
|
1362
1383
|
this.viewer = viewer;
|
|
1384
|
+
this.sharedGetters = sharedGetters;
|
|
1363
1385
|
this.apiGetter = apiGetter;
|
|
1364
1386
|
this.item = item;
|
|
1365
1387
|
this.visualsManager = visualsManager;
|
|
@@ -1373,15 +1395,21 @@
|
|
|
1373
1395
|
});
|
|
1374
1396
|
Manager.prototype.Init = function () {
|
|
1375
1397
|
return __awaiter(this, void 0, void 0, function () {
|
|
1376
|
-
var api;
|
|
1398
|
+
var api, minMax;
|
|
1377
1399
|
var _this = this;
|
|
1378
1400
|
return __generator(this, function (_a) {
|
|
1379
1401
|
if (this.disposed) {
|
|
1380
1402
|
throw (new Error("This item is disposed."));
|
|
1381
1403
|
}
|
|
1382
1404
|
api = this.apiGetter.getApi(this.apiGetter.accountId, this.apiGetter.env);
|
|
1383
|
-
this.getter =
|
|
1384
|
-
|
|
1405
|
+
this.getter = this.sharedGetters.GetOrCreateFilterGetter({
|
|
1406
|
+
api: api,
|
|
1407
|
+
attrFilter: {},
|
|
1408
|
+
batchSize: 500,
|
|
1409
|
+
typeId: this.item.BruceEntity["EntityType.ID"]
|
|
1410
|
+
});
|
|
1411
|
+
minMax = exports.RenderManager.Utils.GetZoomMinMax(this.item.CameraZoomSettings);
|
|
1412
|
+
this.getter.IncludeMenuItem(this.item.id, [], minMax[0], minMax[1]);
|
|
1385
1413
|
this.getterSub = this.getter.OnUpdate.Subscribe(function (entities) {
|
|
1386
1414
|
_this.onGetterUpdate(entities);
|
|
1387
1415
|
});
|
|
@@ -1402,6 +1430,9 @@
|
|
|
1402
1430
|
}
|
|
1403
1431
|
(_a = this.getterSub) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
1404
1432
|
this.getterSub = null;
|
|
1433
|
+
if (this.getter) {
|
|
1434
|
+
this.getter.ExcludeMenuItem(this.item.id);
|
|
1435
|
+
}
|
|
1405
1436
|
this.disposed = true;
|
|
1406
1437
|
this.visualsManager.RemoveByMenuItemId(this.item.id);
|
|
1407
1438
|
(_b = this.entityCheckRemoval) === null || _b === void 0 ? void 0 : _b.call(this);
|
|
@@ -2798,6 +2829,34 @@
|
|
|
2798
2829
|
TilesetCadRenderManager.Manager = Manager;
|
|
2799
2830
|
})(exports.TilesetCadRenderManager || (exports.TilesetCadRenderManager = {}));
|
|
2800
2831
|
|
|
2832
|
+
function createFilterGetterCacheKey(params) {
|
|
2833
|
+
var cacheKey = "";
|
|
2834
|
+
cacheKey += params.api.GetBaseUrl();
|
|
2835
|
+
cacheKey += params.typeId;
|
|
2836
|
+
cacheKey += params.batchSize;
|
|
2837
|
+
cacheKey += JSON.stringify(params.attrFilter);
|
|
2838
|
+
return cacheKey;
|
|
2839
|
+
}
|
|
2840
|
+
(function (SharedGetters) {
|
|
2841
|
+
var Cache = /** @class */ (function () {
|
|
2842
|
+
function Cache(viewer) {
|
|
2843
|
+
this.data = {};
|
|
2844
|
+
this.viewer = viewer;
|
|
2845
|
+
}
|
|
2846
|
+
Cache.prototype.GetOrCreateFilterGetter = function (params) {
|
|
2847
|
+
var cacheKey = createFilterGetterCacheKey(params);
|
|
2848
|
+
var getter = this.data[cacheKey];
|
|
2849
|
+
if (!getter) {
|
|
2850
|
+
getter = new bruceModels.EntityFilterGetter.Getter(params.api, new CesiumViewMonitor(this.viewer), params.typeId, params.batchSize, params.attrFilter);
|
|
2851
|
+
this.data[cacheKey] = getter;
|
|
2852
|
+
}
|
|
2853
|
+
return getter;
|
|
2854
|
+
};
|
|
2855
|
+
return Cache;
|
|
2856
|
+
}());
|
|
2857
|
+
SharedGetters.Cache = Cache;
|
|
2858
|
+
})(exports.SharedGetters || (exports.SharedGetters = {}));
|
|
2859
|
+
|
|
2801
2860
|
(function (MenuItemManager) {
|
|
2802
2861
|
var Manager = /** @class */ (function () {
|
|
2803
2862
|
function Manager(viewer, visualsRegister) {
|
|
@@ -2808,6 +2867,7 @@
|
|
|
2808
2867
|
visualsRegister = new exports.VisualsRegister.Register(viewer);
|
|
2809
2868
|
}
|
|
2810
2869
|
this.visualsRegister = visualsRegister;
|
|
2870
|
+
this.sharedGetters = new exports.SharedGetters.Cache(this.viewer);
|
|
2811
2871
|
}
|
|
2812
2872
|
Object.defineProperty(Manager.prototype, "Viewer", {
|
|
2813
2873
|
get: function () {
|
|
@@ -2858,7 +2918,7 @@
|
|
|
2858
2918
|
};
|
|
2859
2919
|
switch (params.item.Type) {
|
|
2860
2920
|
case bruceModels.MenuItem.EType.Entities:
|
|
2861
|
-
rItem.renderManager = new exports.EntitiesRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item);
|
|
2921
|
+
rItem.renderManager = new exports.EntitiesRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item, this.sharedGetters);
|
|
2862
2922
|
break;
|
|
2863
2923
|
case bruceModels.MenuItem.EType.EntitiesLoaded:
|
|
2864
2924
|
rItem.renderManager = new exports.EntitiesLoadedRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item);
|
|
@@ -3049,8 +3109,38 @@
|
|
|
3049
3109
|
RenderHelper.RenderEntityTypes = RenderEntityTypes;
|
|
3050
3110
|
function RenderEntityFilter(params, filter) {
|
|
3051
3111
|
return __awaiter(this, void 0, void 0, function () {
|
|
3112
|
+
var item;
|
|
3052
3113
|
return __generator(this, function (_a) {
|
|
3053
|
-
|
|
3114
|
+
switch (_a.label) {
|
|
3115
|
+
case 0:
|
|
3116
|
+
item = {
|
|
3117
|
+
BruceEntity: {
|
|
3118
|
+
"EntityType.ID": filter.entityTypeId
|
|
3119
|
+
},
|
|
3120
|
+
Type: bruceModels.MenuItem.EType.Entities,
|
|
3121
|
+
Caption: "Rendering Filtered Entities",
|
|
3122
|
+
CameraZoomSettings: [
|
|
3123
|
+
{
|
|
3124
|
+
DisplayType: bruceModels.ZoomControl.EDisplayType.Model3D,
|
|
3125
|
+
LODCategoryID: "glb",
|
|
3126
|
+
LODLevel: 0,
|
|
3127
|
+
MaxZoom: 100000,
|
|
3128
|
+
MinZoom: 0,
|
|
3129
|
+
StyleID: 0 // 0 = Attempt to get entity type's default.
|
|
3130
|
+
}
|
|
3131
|
+
],
|
|
3132
|
+
id: bruceModels.ObjectUtils.UId(),
|
|
3133
|
+
Children: [],
|
|
3134
|
+
showAllLayers: true,
|
|
3135
|
+
showAllLayersExcludeBelow: false,
|
|
3136
|
+
tagIds: []
|
|
3137
|
+
};
|
|
3138
|
+
return [4 /*yield*/, params.manager.RenderItem({
|
|
3139
|
+
apiGetter: params.apiGetter,
|
|
3140
|
+
item: item
|
|
3141
|
+
})];
|
|
3142
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
3143
|
+
}
|
|
3054
3144
|
});
|
|
3055
3145
|
});
|
|
3056
3146
|
}
|