bruce-cesium 0.2.2 → 0.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 +108 -10
- package/dist/bruce-cesium.es5.js.map +1 -1
- package/dist/bruce-cesium.umd.js +104 -7
- 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-addons/measure-addon.js +5 -0
- package/dist/lib/rendering/render-addons/measure-addon.js.map +1 -1
- package/dist/lib/rendering/render-helper.js +32 -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 +17 -5
- 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 +2 -2
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,
|
|
2
|
-
import { Cartesian2, Cartographic, Math as Math$1,
|
|
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, Color, HeightReference, Cartesian3, Entity, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Primitive, Cesium3DTileFeature, HeadingPitchRange, OrthographicFrustum, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, createWorldTerrain, CesiumTerrainProvider, EllipsoidTerrainProvider, EllipsoidGeodesic, Matrix4, Cesium3DTileset } from 'cesium';
|
|
3
3
|
|
|
4
4
|
var TIME_LAG = 300;
|
|
5
5
|
var POSITION_CHECK_TIMER = 950;
|
|
@@ -117,6 +117,7 @@ var CesiumViewMonitor = /** @class */ (function () {
|
|
|
117
117
|
clearInterval(this.checkInterval);
|
|
118
118
|
};
|
|
119
119
|
CesiumViewMonitor.prototype.tryDoUpdate = function () {
|
|
120
|
+
var _a;
|
|
120
121
|
var viewRect = null;
|
|
121
122
|
var center = null;
|
|
122
123
|
var camera = this.viewer.camera;
|
|
@@ -177,6 +178,7 @@ var CesiumViewMonitor = /** @class */ (function () {
|
|
|
177
178
|
viewRect.west = Math.min(viewRect.west, centerLong - (MINIMUM_VIEW_AREA_SIZE_DEGREES / 2));
|
|
178
179
|
viewRect.south = Math.min(viewRect.south, centerLat - (MINIMUM_VIEW_AREA_SIZE_DEGREES / 2));
|
|
179
180
|
viewRect.north = Math.max(viewRect.north, centerLat + (MINIMUM_VIEW_AREA_SIZE_DEGREES / 2));
|
|
181
|
+
viewRect.alt = (_a = this.viewer.scene.camera.positionCartographic) === null || _a === void 0 ? void 0 : _a.height;
|
|
180
182
|
}
|
|
181
183
|
if (center && viewRect) {
|
|
182
184
|
if ((!this.target || (this.target && !arePosEqual(this.target, center))) ||
|
|
@@ -552,6 +554,25 @@ var RenderManager;
|
|
|
552
554
|
return null;
|
|
553
555
|
}
|
|
554
556
|
Utils.GetZoomControlFromDistance = GetZoomControlFromDistance;
|
|
557
|
+
function GetZoomMinMax(zoomControl) {
|
|
558
|
+
var min = 0;
|
|
559
|
+
var max = 100;
|
|
560
|
+
for (var i = 0; i < zoomControl.length; i++) {
|
|
561
|
+
var zoomItem = zoomControl[i];
|
|
562
|
+
if (zoomItem.MinZoom != null) {
|
|
563
|
+
if (zoomItem.MinZoom < min) {
|
|
564
|
+
min = zoomItem.MinZoom;
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
if (zoomItem.MaxZoom != null) {
|
|
568
|
+
if (zoomItem.MaxZoom > max) {
|
|
569
|
+
max = zoomItem.MaxZoom;
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
return [min, max];
|
|
574
|
+
}
|
|
575
|
+
Utils.GetZoomMinMax = GetZoomMinMax;
|
|
555
576
|
})(Utils = RenderManager.Utils || (RenderManager.Utils = {}));
|
|
556
577
|
})(RenderManager || (RenderManager = {}));
|
|
557
578
|
|
|
@@ -1355,7 +1376,7 @@ var EntityRenderEngine;
|
|
|
1355
1376
|
var EntitiesRenderManager;
|
|
1356
1377
|
(function (EntitiesRenderManager) {
|
|
1357
1378
|
var Manager = /** @class */ (function () {
|
|
1358
|
-
function Manager(viewer, visualsManager, apiGetter, item) {
|
|
1379
|
+
function Manager(viewer, visualsManager, apiGetter, item, sharedGetters) {
|
|
1359
1380
|
this.getter = null;
|
|
1360
1381
|
this.getterSub = null;
|
|
1361
1382
|
this.disposed = false;
|
|
@@ -1365,6 +1386,7 @@ var EntitiesRenderManager;
|
|
|
1365
1386
|
this.isRunningCheck = false;
|
|
1366
1387
|
this.viewMonitorRemoval = null;
|
|
1367
1388
|
this.viewer = viewer;
|
|
1389
|
+
this.sharedGetters = sharedGetters;
|
|
1368
1390
|
this.apiGetter = apiGetter;
|
|
1369
1391
|
this.item = item;
|
|
1370
1392
|
this.visualsManager = visualsManager;
|
|
@@ -1377,16 +1399,23 @@ var EntitiesRenderManager;
|
|
|
1377
1399
|
configurable: true
|
|
1378
1400
|
});
|
|
1379
1401
|
Manager.prototype.Init = function () {
|
|
1402
|
+
var _a;
|
|
1380
1403
|
return __awaiter(this, void 0, void 0, function () {
|
|
1381
|
-
var api;
|
|
1404
|
+
var api, minMax;
|
|
1382
1405
|
var _this = this;
|
|
1383
|
-
return __generator(this, function (
|
|
1406
|
+
return __generator(this, function (_b) {
|
|
1384
1407
|
if (this.disposed) {
|
|
1385
1408
|
throw (new Error("This item is disposed."));
|
|
1386
1409
|
}
|
|
1387
1410
|
api = this.apiGetter.getApi(this.apiGetter.accountId, this.apiGetter.env);
|
|
1388
|
-
this.getter =
|
|
1389
|
-
|
|
1411
|
+
this.getter = this.sharedGetters.GetOrCreateFilterGetter({
|
|
1412
|
+
api: api,
|
|
1413
|
+
attrFilter: (_a = this.item.BruceEntity.Filter) !== null && _a !== void 0 ? _a : {},
|
|
1414
|
+
batchSize: 500,
|
|
1415
|
+
typeId: this.item.BruceEntity["EntityType.ID"]
|
|
1416
|
+
});
|
|
1417
|
+
minMax = RenderManager.Utils.GetZoomMinMax(this.item.CameraZoomSettings);
|
|
1418
|
+
this.getter.IncludeMenuItem(this.item.id, [], minMax[0], minMax[1]);
|
|
1390
1419
|
this.getterSub = this.getter.OnUpdate.Subscribe(function (entities) {
|
|
1391
1420
|
_this.onGetterUpdate(entities);
|
|
1392
1421
|
});
|
|
@@ -1407,6 +1436,9 @@ var EntitiesRenderManager;
|
|
|
1407
1436
|
}
|
|
1408
1437
|
(_a = this.getterSub) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
1409
1438
|
this.getterSub = null;
|
|
1439
|
+
if (this.getter) {
|
|
1440
|
+
this.getter.ExcludeMenuItem(this.item.id);
|
|
1441
|
+
}
|
|
1410
1442
|
this.disposed = true;
|
|
1411
1443
|
this.visualsManager.RemoveByMenuItemId(this.item.id);
|
|
1412
1444
|
(_b = this.entityCheckRemoval) === null || _b === void 0 ? void 0 : _b.call(this);
|
|
@@ -2828,6 +2860,35 @@ var TilesetCadRenderManager;
|
|
|
2828
2860
|
TilesetCadRenderManager.Manager = Manager;
|
|
2829
2861
|
})(TilesetCadRenderManager || (TilesetCadRenderManager = {}));
|
|
2830
2862
|
|
|
2863
|
+
function createFilterGetterCacheKey(params) {
|
|
2864
|
+
var cacheKey = "";
|
|
2865
|
+
cacheKey += params.api.GetBaseUrl();
|
|
2866
|
+
cacheKey += params.typeId;
|
|
2867
|
+
cacheKey += params.batchSize;
|
|
2868
|
+
cacheKey += JSON.stringify(params.attrFilter);
|
|
2869
|
+
return cacheKey;
|
|
2870
|
+
}
|
|
2871
|
+
var SharedGetters;
|
|
2872
|
+
(function (SharedGetters) {
|
|
2873
|
+
var Cache = /** @class */ (function () {
|
|
2874
|
+
function Cache(viewer) {
|
|
2875
|
+
this.data = {};
|
|
2876
|
+
this.viewer = viewer;
|
|
2877
|
+
}
|
|
2878
|
+
Cache.prototype.GetOrCreateFilterGetter = function (params) {
|
|
2879
|
+
var cacheKey = createFilterGetterCacheKey(params);
|
|
2880
|
+
var getter = this.data[cacheKey];
|
|
2881
|
+
if (!getter) {
|
|
2882
|
+
getter = new EntityFilterGetter.Getter(params.api, new CesiumViewMonitor(this.viewer), params.typeId, params.batchSize, params.attrFilter);
|
|
2883
|
+
this.data[cacheKey] = getter;
|
|
2884
|
+
}
|
|
2885
|
+
return getter;
|
|
2886
|
+
};
|
|
2887
|
+
return Cache;
|
|
2888
|
+
}());
|
|
2889
|
+
SharedGetters.Cache = Cache;
|
|
2890
|
+
})(SharedGetters || (SharedGetters = {}));
|
|
2891
|
+
|
|
2831
2892
|
/**
|
|
2832
2893
|
* Utility to keep track of enabled menu items within a Cesium viewer.
|
|
2833
2894
|
*/
|
|
@@ -2842,6 +2903,7 @@ var MenuItemManager;
|
|
|
2842
2903
|
visualsRegister = new VisualsRegister.Register(viewer);
|
|
2843
2904
|
}
|
|
2844
2905
|
this.visualsRegister = visualsRegister;
|
|
2906
|
+
this.sharedGetters = new SharedGetters.Cache(this.viewer);
|
|
2845
2907
|
}
|
|
2846
2908
|
Object.defineProperty(Manager.prototype, "Viewer", {
|
|
2847
2909
|
get: function () {
|
|
@@ -2892,7 +2954,7 @@ var MenuItemManager;
|
|
|
2892
2954
|
};
|
|
2893
2955
|
switch (params.item.Type) {
|
|
2894
2956
|
case MenuItem.EType.Entities:
|
|
2895
|
-
rItem.renderManager = new EntitiesRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item);
|
|
2957
|
+
rItem.renderManager = new EntitiesRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item, this.sharedGetters);
|
|
2896
2958
|
break;
|
|
2897
2959
|
case MenuItem.EType.EntitiesLoaded:
|
|
2898
2960
|
rItem.renderManager = new EntitiesLoadedRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item);
|
|
@@ -3087,8 +3149,39 @@ var RenderHelper;
|
|
|
3087
3149
|
RenderHelper.RenderEntityTypes = RenderEntityTypes;
|
|
3088
3150
|
function RenderEntityFilter(params, filter) {
|
|
3089
3151
|
return __awaiter(this, void 0, void 0, function () {
|
|
3152
|
+
var item;
|
|
3090
3153
|
return __generator(this, function (_a) {
|
|
3091
|
-
|
|
3154
|
+
switch (_a.label) {
|
|
3155
|
+
case 0:
|
|
3156
|
+
item = {
|
|
3157
|
+
BruceEntity: {
|
|
3158
|
+
"EntityType.ID": filter.entityTypeId,
|
|
3159
|
+
Filter: filter
|
|
3160
|
+
},
|
|
3161
|
+
Type: MenuItem.EType.Entities,
|
|
3162
|
+
Caption: "Rendering Filtered Entities",
|
|
3163
|
+
CameraZoomSettings: [
|
|
3164
|
+
{
|
|
3165
|
+
DisplayType: ZoomControl.EDisplayType.Model3D,
|
|
3166
|
+
LODCategoryID: "glb",
|
|
3167
|
+
LODLevel: 0,
|
|
3168
|
+
MaxZoom: 100000,
|
|
3169
|
+
MinZoom: 0,
|
|
3170
|
+
StyleID: 0 // 0 = Attempt to get entity type's default.
|
|
3171
|
+
}
|
|
3172
|
+
],
|
|
3173
|
+
id: ObjectUtils.UId(),
|
|
3174
|
+
Children: [],
|
|
3175
|
+
showAllLayers: true,
|
|
3176
|
+
showAllLayersExcludeBelow: false,
|
|
3177
|
+
tagIds: []
|
|
3178
|
+
};
|
|
3179
|
+
return [4 /*yield*/, params.manager.RenderItem({
|
|
3180
|
+
apiGetter: params.apiGetter,
|
|
3181
|
+
item: item
|
|
3182
|
+
})];
|
|
3183
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
3184
|
+
}
|
|
3092
3185
|
});
|
|
3093
3186
|
});
|
|
3094
3187
|
}
|
|
@@ -3934,6 +4027,11 @@ var MeasureAddon = /** @class */ (function () {
|
|
|
3934
4027
|
else if (entity.point || entity.billboard) {
|
|
3935
4028
|
this.items = MPoint.Render(this.container, this.viewer, entity);
|
|
3936
4029
|
}
|
|
4030
|
+
// TODO:
|
|
4031
|
+
// - Polygon measurement.
|
|
4032
|
+
// - Polygon that is an angle measurement?
|
|
4033
|
+
// We'll need params for the addon that dictate what measurements we want to see.
|
|
4034
|
+
// Eg: I care about "length", "area" but not "angle" measurements in polygons.
|
|
3937
4035
|
}
|
|
3938
4036
|
};
|
|
3939
4037
|
MeasureAddon.prototype.Render = function (visuals) {
|
|
@@ -3961,5 +4059,5 @@ var MeasureAddon = /** @class */ (function () {
|
|
|
3961
4059
|
return MeasureAddon;
|
|
3962
4060
|
}());
|
|
3963
4061
|
|
|
3964
|
-
export { CesiumViewMonitor, ViewerUtils, MenuItemManager, EntityRenderEngine, RenderHelper, VisualsRegister, RenderManager, EntitiesIdsRenderManager, EntitiesLoadedRenderManager, EntitiesRenderManager, EntityRenderManager, TilesetCadRenderManager, ViewRenderEngine, TileRenderEngine, MeasureAddon };
|
|
4062
|
+
export { CesiumViewMonitor, ViewerUtils, MenuItemManager, EntityRenderEngine, RenderHelper, VisualsRegister, RenderManager, EntitiesIdsRenderManager, EntitiesLoadedRenderManager, EntitiesRenderManager, EntityRenderManager, TilesetCadRenderManager, ViewRenderEngine, TileRenderEngine, MeasureAddon, SharedGetters };
|
|
3965
4063
|
//# sourceMappingURL=bruce-cesium.es5.js.map
|