bruce-cesium 1.9.9 → 2.0.1
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 +82 -34
- package/dist/bruce-cesium.es5.js.map +1 -1
- package/dist/bruce-cesium.umd.js +81 -33
- package/dist/bruce-cesium.umd.js.map +1 -1
- package/dist/lib/rendering/menu-item-creator.js +50 -22
- package/dist/lib/rendering/menu-item-creator.js.map +1 -1
- package/dist/lib/rendering/menu-item-manager.js +19 -5
- package/dist/lib/rendering/menu-item-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +12 -4
- package/dist/lib/rendering/render-managers/entities/entities-render-manager.js.map +1 -1
- package/dist/lib/rendering/visuals-register.js +11 -2
- package/dist/lib/rendering/visuals-register.js.map +1 -1
- package/dist/types/rendering/visuals-register.d.ts +2 -0
- package/package.json +77 -77
package/dist/bruce-cesium.es5.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BruceEvent, Cartes, Carto, Entity as Entity$1, Geometry, Tileset, MathUtils, LRUCache, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, ObjectUtils, DelayQueue, BatchedDataGetter, EntityRelationType, EntityCoords, EntityFilterGetter, EntitySource, MenuItem, EntityRelation, ProjectView, ProjectViewBookmark, ProjectViewTile, ProjectViewLegacyTile, ProgramKey, Camera } from 'bruce-models';
|
|
2
2
|
import * as Cesium from 'cesium';
|
|
3
|
-
import { Cartesian2, Cartographic, CallbackProperty, Cartesian3, Color, Rectangle, Math as Math$1, SceneMode, HeightReference,
|
|
3
|
+
import { Cartesian2, Cartographic, CallbackProperty, Cartesian3, Color, Rectangle, Math as Math$1, Entity, Primitive, Cesium3DTileFeature, SceneMode, HeightReference, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Cesium3DTileColorBlendMode, HeadingPitchRange, createOsmBuildings, Cesium3DTileStyle, KmlDataSource, Cesium3DTileset, Matrix4, Matrix3, IonResource, OrthographicFrustum, JulianDate, NearFarScalar, EllipsoidGeodesic, EllipsoidTerrainProvider, sampleTerrainMostDetailed, createWorldTerrain, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, CesiumInspector, PolygonPipeline, ColorMaterialProperty, EasingFunction, GeometryInstance } from 'cesium';
|
|
4
4
|
|
|
5
5
|
var TIME_LAG = 300;
|
|
6
6
|
var POSITION_CHECK_TIMER = 950;
|
|
@@ -2609,10 +2609,18 @@ var EntitiesRenderManager;
|
|
|
2609
2609
|
clearInterval(this.renderQueueInterval);
|
|
2610
2610
|
this.renderQueueInterval = null;
|
|
2611
2611
|
this.renderQueue = [];
|
|
2612
|
-
|
|
2613
|
-
|
|
2614
|
-
|
|
2615
|
-
|
|
2612
|
+
// Remove just the ones that shouldn't be rendered.
|
|
2613
|
+
// Eg: for a tag menu item we can see what tags are selected and only render those.
|
|
2614
|
+
if (shouldRender) {
|
|
2615
|
+
this.visualsManager.RemoveRegos({
|
|
2616
|
+
menuItemId: this.item.id,
|
|
2617
|
+
retainTagIds: tagsToRender
|
|
2618
|
+
});
|
|
2619
|
+
}
|
|
2620
|
+
else {
|
|
2621
|
+
this.visualsManager.RemoveRegos({
|
|
2622
|
+
menuItemId: this.item.id
|
|
2623
|
+
});
|
|
2616
2624
|
return;
|
|
2617
2625
|
}
|
|
2618
2626
|
var api = this.apiGetter.getApi();
|
|
@@ -4165,10 +4173,13 @@ var VisualsRegister;
|
|
|
4165
4173
|
*/
|
|
4166
4174
|
Register.prototype.RemoveRegos = function (params) {
|
|
4167
4175
|
var _a, _b, _c;
|
|
4168
|
-
var entityId = params.entityId, menuItemId = params.menuItemId, doUpdate = params.doUpdate, relation = params.relation;
|
|
4176
|
+
var entityId = params.entityId, menuItemId = params.menuItemId, doUpdate = params.doUpdate, relation = params.relation, retainTagIds = params.retainTagIds;
|
|
4169
4177
|
if (doUpdate == null) {
|
|
4170
4178
|
doUpdate = true;
|
|
4171
4179
|
}
|
|
4180
|
+
if (retainTagIds == null) {
|
|
4181
|
+
retainTagIds = [];
|
|
4182
|
+
}
|
|
4172
4183
|
// TODO: refactor.
|
|
4173
4184
|
// Currently this was made by merging two functions.
|
|
4174
4185
|
if (menuItemId && !entityId) {
|
|
@@ -4179,6 +4190,11 @@ var VisualsRegister;
|
|
|
4179
4190
|
if (!rego) {
|
|
4180
4191
|
continue;
|
|
4181
4192
|
}
|
|
4193
|
+
var regoTagIds = rego.tagIds ? rego.tagIds : [];
|
|
4194
|
+
var shouldRetain = regoTagIds.some(function (tagId) { return retainTagIds.includes(tagId); });
|
|
4195
|
+
if (shouldRetain) {
|
|
4196
|
+
continue;
|
|
4197
|
+
}
|
|
4182
4198
|
removeEntity(this.viewer, rego.visual);
|
|
4183
4199
|
var doesInclude = this.rego[entityId_3].find(function (r) { return r.menuItemId === menuItemId; });
|
|
4184
4200
|
if (doesInclude) {
|
|
@@ -4262,7 +4278,8 @@ var VisualsRegister;
|
|
|
4262
4278
|
var height = Math.ceil(EnsureNumber(params.height, 5));
|
|
4263
4279
|
var x = Math.ceil(cursor.x - width / 2);
|
|
4264
4280
|
var y = Math.ceil(cursor.y - height / 2);
|
|
4265
|
-
var
|
|
4281
|
+
var pickLimit = Math.ceil(EnsureNumber(params.pickLimit, 5));
|
|
4282
|
+
var picked = this.viewer.scene.drillPick(new Cartesian2(x, y), pickLimit, width, height);
|
|
4266
4283
|
for (var i = 0; i < picked.length; i++) {
|
|
4267
4284
|
var object = picked[i];
|
|
4268
4285
|
var entity = (object && object.id && object.id instanceof Entity ? object.id : object);
|
|
@@ -7291,14 +7308,28 @@ var MenuItemManager;
|
|
|
7291
7308
|
* @returns
|
|
7292
7309
|
*/
|
|
7293
7310
|
Manager.prototype.RenderItem = function (params) {
|
|
7294
|
-
var _a, _b, _c;
|
|
7311
|
+
var _a, _b, _c, _d;
|
|
7295
7312
|
if (this.viewer.isDestroyed()) {
|
|
7296
7313
|
return null;
|
|
7297
7314
|
}
|
|
7298
7315
|
var rItem = this.items.find(function (x) { return x.id == params.item.id; });
|
|
7299
|
-
if (
|
|
7316
|
+
if (rItem) {
|
|
7317
|
+
// This means we're updating a tag menu item.
|
|
7318
|
+
// Tag menu items have alternative states based on bookmark settings.
|
|
7319
|
+
// Eg: different tags that were enabled.
|
|
7320
|
+
if (rItem.type == MenuItem.EType.Entities && params.item.Type == MenuItem.EType.Entities) {
|
|
7321
|
+
var eItem = rItem.item;
|
|
7322
|
+
if ((_a = eItem === null || eItem === void 0 ? void 0 : eItem.BruceEntity) === null || _a === void 0 ? void 0 : _a.ExpandLayers) {
|
|
7323
|
+
rItem.renderManager.Init({
|
|
7324
|
+
item: params.item,
|
|
7325
|
+
});
|
|
7326
|
+
rItem.item = params.item;
|
|
7327
|
+
}
|
|
7328
|
+
}
|
|
7329
|
+
}
|
|
7330
|
+
else {
|
|
7300
7331
|
rItem = {
|
|
7301
|
-
id: (
|
|
7332
|
+
id: (_b = params.item.id) !== null && _b !== void 0 ? _b : ObjectUtils.UId(),
|
|
7302
7333
|
childIds: [],
|
|
7303
7334
|
item: params.item,
|
|
7304
7335
|
renderManager: null,
|
|
@@ -7433,8 +7464,8 @@ var MenuItemManager;
|
|
|
7433
7464
|
rItem.childIds.push(childId);
|
|
7434
7465
|
}
|
|
7435
7466
|
}
|
|
7436
|
-
if (
|
|
7437
|
-
(
|
|
7467
|
+
if (rItem.renderManager && !((_c = rItem.renderManager) === null || _c === void 0 ? void 0 : _c.Disposed)) {
|
|
7468
|
+
(_d = this.onUpdate) === null || _d === void 0 ? void 0 : _d.Trigger({ isEnabling: true, itemId: rItem.id });
|
|
7438
7469
|
}
|
|
7439
7470
|
rItem.id;
|
|
7440
7471
|
};
|
|
@@ -7781,28 +7812,29 @@ var MenuItemCreator;
|
|
|
7781
7812
|
}
|
|
7782
7813
|
MenuItemCreator.RenderTileset = RenderTileset;
|
|
7783
7814
|
function RenderBookmarkItems(params) {
|
|
7815
|
+
var _a;
|
|
7784
7816
|
return __awaiter(this, void 0, void 0, function () {
|
|
7785
|
-
var viewId, bookmarkId, api, view,
|
|
7817
|
+
var viewId, bookmarkId, api, view, _b, bookmark, _c, enabledIds, menuItems, version, vSettings, bSettings, vSettings, bSettings, alternations, renderedItemIds, traverseItems_1, i;
|
|
7786
7818
|
var _this = this;
|
|
7787
|
-
return __generator(this, function (
|
|
7788
|
-
switch (
|
|
7819
|
+
return __generator(this, function (_d) {
|
|
7820
|
+
switch (_d.label) {
|
|
7789
7821
|
case 0:
|
|
7790
7822
|
viewId = params.viewId, bookmarkId = params.bookmarkId;
|
|
7791
7823
|
api = params.apiGetter.getApi();
|
|
7792
7824
|
if (!params.view) return [3 /*break*/, 1];
|
|
7793
|
-
|
|
7825
|
+
_b = params.view;
|
|
7794
7826
|
return [3 /*break*/, 3];
|
|
7795
7827
|
case 1: return [4 /*yield*/, ProjectView.Get({
|
|
7796
7828
|
api: api,
|
|
7797
7829
|
viewId: viewId
|
|
7798
7830
|
})];
|
|
7799
7831
|
case 2:
|
|
7800
|
-
|
|
7801
|
-
|
|
7832
|
+
_b = (_d.sent()).view;
|
|
7833
|
+
_d.label = 3;
|
|
7802
7834
|
case 3:
|
|
7803
|
-
view =
|
|
7835
|
+
view = _b;
|
|
7804
7836
|
if (!params.bookmark) return [3 /*break*/, 4];
|
|
7805
|
-
|
|
7837
|
+
_c = params.bookmark;
|
|
7806
7838
|
return [3 /*break*/, 6];
|
|
7807
7839
|
case 4: return [4 /*yield*/, ProjectViewBookmark.Get({
|
|
7808
7840
|
api: api,
|
|
@@ -7810,10 +7842,10 @@ var MenuItemCreator;
|
|
|
7810
7842
|
bookmarkId: bookmarkId
|
|
7811
7843
|
})];
|
|
7812
7844
|
case 5:
|
|
7813
|
-
|
|
7814
|
-
|
|
7845
|
+
_c = (_d.sent()).bookmark;
|
|
7846
|
+
_d.label = 6;
|
|
7815
7847
|
case 6:
|
|
7816
|
-
bookmark =
|
|
7848
|
+
bookmark = _c;
|
|
7817
7849
|
if (view.DataVersion != bookmark.DataVersion) {
|
|
7818
7850
|
throw new Error("View and bookmark settings version mismatch.");
|
|
7819
7851
|
}
|
|
@@ -7834,32 +7866,48 @@ var MenuItemCreator;
|
|
|
7834
7866
|
enabledIds = bSettings.selectedItemIds;
|
|
7835
7867
|
}
|
|
7836
7868
|
}
|
|
7869
|
+
alternations = (_a = bookmark.Settings) === null || _a === void 0 ? void 0 : _a.menuItemAlternations;
|
|
7870
|
+
if (!alternations) {
|
|
7871
|
+
alternations = {};
|
|
7872
|
+
}
|
|
7837
7873
|
renderedItemIds = [];
|
|
7838
7874
|
if (!((menuItems === null || menuItems === void 0 ? void 0 : menuItems.length) && (enabledIds === null || enabledIds === void 0 ? void 0 : enabledIds.length))) return [3 /*break*/, 10];
|
|
7839
7875
|
traverseItems_1 = function (item) { return __awaiter(_this, void 0, void 0, function () {
|
|
7840
|
-
var itemId, i;
|
|
7841
|
-
|
|
7842
|
-
|
|
7876
|
+
var eItem, eItemAlt, itemId, i;
|
|
7877
|
+
var _a;
|
|
7878
|
+
return __generator(this, function (_b) {
|
|
7879
|
+
switch (_b.label) {
|
|
7843
7880
|
case 0:
|
|
7881
|
+
if (alternations[item.id]) {
|
|
7882
|
+
// The only alternation we support right now is tag menu item ones.
|
|
7883
|
+
// The project view menu item contains the instruction to enable tags, the bookmark specifies which ones.
|
|
7884
|
+
if (item.Type == MenuItem.EType.Entities) {
|
|
7885
|
+
eItem = item;
|
|
7886
|
+
if (eItem.BruceEntity.ExpandLayers) {
|
|
7887
|
+
eItemAlt = alternations[item.id];
|
|
7888
|
+
eItem.BruceEntity = __assign(__assign({}, eItem.BruceEntity), { SelectedExpandLayers: (_a = eItemAlt.BruceEntity) === null || _a === void 0 ? void 0 : _a.SelectedExpandLayers });
|
|
7889
|
+
}
|
|
7890
|
+
}
|
|
7891
|
+
}
|
|
7844
7892
|
if (!enabledIds.includes(item.id)) return [3 /*break*/, 2];
|
|
7845
7893
|
return [4 /*yield*/, params.manager.RenderItem({
|
|
7846
7894
|
item: item,
|
|
7847
7895
|
apiGetter: params.apiGetter
|
|
7848
7896
|
})];
|
|
7849
7897
|
case 1:
|
|
7850
|
-
itemId =
|
|
7898
|
+
itemId = _b.sent();
|
|
7851
7899
|
renderedItemIds.push(itemId);
|
|
7852
|
-
|
|
7900
|
+
_b.label = 2;
|
|
7853
7901
|
case 2:
|
|
7854
7902
|
if (!item.Children) return [3 /*break*/, 6];
|
|
7855
7903
|
i = 0;
|
|
7856
|
-
|
|
7904
|
+
_b.label = 3;
|
|
7857
7905
|
case 3:
|
|
7858
7906
|
if (!(i < item.Children.length)) return [3 /*break*/, 6];
|
|
7859
7907
|
return [4 /*yield*/, traverseItems_1(item.Children[i])];
|
|
7860
7908
|
case 4:
|
|
7861
|
-
|
|
7862
|
-
|
|
7909
|
+
_b.sent();
|
|
7910
|
+
_b.label = 5;
|
|
7863
7911
|
case 5:
|
|
7864
7912
|
i++;
|
|
7865
7913
|
return [3 /*break*/, 3];
|
|
@@ -7868,13 +7916,13 @@ var MenuItemCreator;
|
|
|
7868
7916
|
});
|
|
7869
7917
|
}); };
|
|
7870
7918
|
i = 0;
|
|
7871
|
-
|
|
7919
|
+
_d.label = 7;
|
|
7872
7920
|
case 7:
|
|
7873
7921
|
if (!(i < menuItems.length)) return [3 /*break*/, 10];
|
|
7874
7922
|
return [4 /*yield*/, traverseItems_1(menuItems[i])];
|
|
7875
7923
|
case 8:
|
|
7876
|
-
|
|
7877
|
-
|
|
7924
|
+
_d.sent();
|
|
7925
|
+
_d.label = 9;
|
|
7878
7926
|
case 9:
|
|
7879
7927
|
i++;
|
|
7880
7928
|
return [3 /*break*/, 7];
|