bruce-cesium 0.2.1 → 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 +102 -10
- package/dist/bruce-cesium.es5.js.map +1 -1
- package/dist/bruce-cesium.umd.js +98 -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 +2 -1
- package/dist/lib/rendering/render-addons/measure-addon.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.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, 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, MenuItem, ProjectView, ProjectViewBookmark, ProjectViewTileSource, Camera, MathUtils } from 'bruce-models';
|
|
2
|
+
import { Cartesian2, Cartographic, Math as Math$1, Viewer, ArcGisMapServerImageryProvider, ScreenSpaceEventType, Entity, Primitive, Cesium3DTileFeature, Color, HeightReference, Cartesian3, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, HeadingPitchRange, OrthographicFrustum, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, createWorldTerrain, CesiumTerrainProvider, EllipsoidTerrainProvider, Matrix4, Cesium3DTileset, EllipsoidGeodesic } 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;
|
|
@@ -1378,15 +1400,21 @@ var EntitiesRenderManager;
|
|
|
1378
1400
|
});
|
|
1379
1401
|
Manager.prototype.Init = function () {
|
|
1380
1402
|
return __awaiter(this, void 0, void 0, function () {
|
|
1381
|
-
var api;
|
|
1403
|
+
var api, minMax;
|
|
1382
1404
|
var _this = this;
|
|
1383
1405
|
return __generator(this, function (_a) {
|
|
1384
1406
|
if (this.disposed) {
|
|
1385
1407
|
throw (new Error("This item is disposed."));
|
|
1386
1408
|
}
|
|
1387
1409
|
api = this.apiGetter.getApi(this.apiGetter.accountId, this.apiGetter.env);
|
|
1388
|
-
this.getter =
|
|
1389
|
-
|
|
1410
|
+
this.getter = this.sharedGetters.GetOrCreateFilterGetter({
|
|
1411
|
+
api: api,
|
|
1412
|
+
attrFilter: {},
|
|
1413
|
+
batchSize: 500,
|
|
1414
|
+
typeId: this.item.BruceEntity["EntityType.ID"]
|
|
1415
|
+
});
|
|
1416
|
+
minMax = RenderManager.Utils.GetZoomMinMax(this.item.CameraZoomSettings);
|
|
1417
|
+
this.getter.IncludeMenuItem(this.item.id, [], minMax[0], minMax[1]);
|
|
1390
1418
|
this.getterSub = this.getter.OnUpdate.Subscribe(function (entities) {
|
|
1391
1419
|
_this.onGetterUpdate(entities);
|
|
1392
1420
|
});
|
|
@@ -1407,6 +1435,9 @@ var EntitiesRenderManager;
|
|
|
1407
1435
|
}
|
|
1408
1436
|
(_a = this.getterSub) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
1409
1437
|
this.getterSub = null;
|
|
1438
|
+
if (this.getter) {
|
|
1439
|
+
this.getter.ExcludeMenuItem(this.item.id);
|
|
1440
|
+
}
|
|
1410
1441
|
this.disposed = true;
|
|
1411
1442
|
this.visualsManager.RemoveByMenuItemId(this.item.id);
|
|
1412
1443
|
(_b = this.entityCheckRemoval) === null || _b === void 0 ? void 0 : _b.call(this);
|
|
@@ -2828,6 +2859,35 @@ var TilesetCadRenderManager;
|
|
|
2828
2859
|
TilesetCadRenderManager.Manager = Manager;
|
|
2829
2860
|
})(TilesetCadRenderManager || (TilesetCadRenderManager = {}));
|
|
2830
2861
|
|
|
2862
|
+
function createFilterGetterCacheKey(params) {
|
|
2863
|
+
var cacheKey = "";
|
|
2864
|
+
cacheKey += params.api.GetBaseUrl();
|
|
2865
|
+
cacheKey += params.typeId;
|
|
2866
|
+
cacheKey += params.batchSize;
|
|
2867
|
+
cacheKey += JSON.stringify(params.attrFilter);
|
|
2868
|
+
return cacheKey;
|
|
2869
|
+
}
|
|
2870
|
+
var SharedGetters;
|
|
2871
|
+
(function (SharedGetters) {
|
|
2872
|
+
var Cache = /** @class */ (function () {
|
|
2873
|
+
function Cache(viewer) {
|
|
2874
|
+
this.data = {};
|
|
2875
|
+
this.viewer = viewer;
|
|
2876
|
+
}
|
|
2877
|
+
Cache.prototype.GetOrCreateFilterGetter = function (params) {
|
|
2878
|
+
var cacheKey = createFilterGetterCacheKey(params);
|
|
2879
|
+
var getter = this.data[cacheKey];
|
|
2880
|
+
if (!getter) {
|
|
2881
|
+
getter = new EntityFilterGetter.Getter(params.api, new CesiumViewMonitor(this.viewer), params.typeId, params.batchSize, params.attrFilter);
|
|
2882
|
+
this.data[cacheKey] = getter;
|
|
2883
|
+
}
|
|
2884
|
+
return getter;
|
|
2885
|
+
};
|
|
2886
|
+
return Cache;
|
|
2887
|
+
}());
|
|
2888
|
+
SharedGetters.Cache = Cache;
|
|
2889
|
+
})(SharedGetters || (SharedGetters = {}));
|
|
2890
|
+
|
|
2831
2891
|
/**
|
|
2832
2892
|
* Utility to keep track of enabled menu items within a Cesium viewer.
|
|
2833
2893
|
*/
|
|
@@ -2842,6 +2902,7 @@ var MenuItemManager;
|
|
|
2842
2902
|
visualsRegister = new VisualsRegister.Register(viewer);
|
|
2843
2903
|
}
|
|
2844
2904
|
this.visualsRegister = visualsRegister;
|
|
2905
|
+
this.sharedGetters = new SharedGetters.Cache(this.viewer);
|
|
2845
2906
|
}
|
|
2846
2907
|
Object.defineProperty(Manager.prototype, "Viewer", {
|
|
2847
2908
|
get: function () {
|
|
@@ -2892,7 +2953,7 @@ var MenuItemManager;
|
|
|
2892
2953
|
};
|
|
2893
2954
|
switch (params.item.Type) {
|
|
2894
2955
|
case MenuItem.EType.Entities:
|
|
2895
|
-
rItem.renderManager = new EntitiesRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item);
|
|
2956
|
+
rItem.renderManager = new EntitiesRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item, this.sharedGetters);
|
|
2896
2957
|
break;
|
|
2897
2958
|
case MenuItem.EType.EntitiesLoaded:
|
|
2898
2959
|
rItem.renderManager = new EntitiesLoadedRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item);
|
|
@@ -3087,8 +3148,38 @@ var RenderHelper;
|
|
|
3087
3148
|
RenderHelper.RenderEntityTypes = RenderEntityTypes;
|
|
3088
3149
|
function RenderEntityFilter(params, filter) {
|
|
3089
3150
|
return __awaiter(this, void 0, void 0, function () {
|
|
3151
|
+
var item;
|
|
3090
3152
|
return __generator(this, function (_a) {
|
|
3091
|
-
|
|
3153
|
+
switch (_a.label) {
|
|
3154
|
+
case 0:
|
|
3155
|
+
item = {
|
|
3156
|
+
BruceEntity: {
|
|
3157
|
+
"EntityType.ID": filter.entityTypeId
|
|
3158
|
+
},
|
|
3159
|
+
Type: MenuItem.EType.Entities,
|
|
3160
|
+
Caption: "Rendering Filtered Entities",
|
|
3161
|
+
CameraZoomSettings: [
|
|
3162
|
+
{
|
|
3163
|
+
DisplayType: ZoomControl.EDisplayType.Model3D,
|
|
3164
|
+
LODCategoryID: "glb",
|
|
3165
|
+
LODLevel: 0,
|
|
3166
|
+
MaxZoom: 100000,
|
|
3167
|
+
MinZoom: 0,
|
|
3168
|
+
StyleID: 0 // 0 = Attempt to get entity type's default.
|
|
3169
|
+
}
|
|
3170
|
+
],
|
|
3171
|
+
id: ObjectUtils.UId(),
|
|
3172
|
+
Children: [],
|
|
3173
|
+
showAllLayers: true,
|
|
3174
|
+
showAllLayersExcludeBelow: false,
|
|
3175
|
+
tagIds: []
|
|
3176
|
+
};
|
|
3177
|
+
return [4 /*yield*/, params.manager.RenderItem({
|
|
3178
|
+
apiGetter: params.apiGetter,
|
|
3179
|
+
item: item
|
|
3180
|
+
})];
|
|
3181
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
3182
|
+
}
|
|
3092
3183
|
});
|
|
3093
3184
|
});
|
|
3094
3185
|
}
|
|
@@ -3869,6 +3960,7 @@ var MPoint;
|
|
|
3869
3960
|
var text = lat + ", " + lon + ", " + alt;
|
|
3870
3961
|
element.innerText = text;
|
|
3871
3962
|
var bounds = element.getBoundingClientRect();
|
|
3963
|
+
// TODO: Account for billboard image size.
|
|
3872
3964
|
element.style.marginLeft = (-bounds.width / 2) + "px";
|
|
3873
3965
|
element.style.marginTop = (-bounds.height - 30) + "px";
|
|
3874
3966
|
container.appendChild(element);
|
|
@@ -3930,7 +4022,7 @@ var MeasureAddon = /** @class */ (function () {
|
|
|
3930
4022
|
if (entity.polyline) {
|
|
3931
4023
|
this.items = MPolyline.Render(this.container, this.viewer, entity);
|
|
3932
4024
|
}
|
|
3933
|
-
else if (entity.point) {
|
|
4025
|
+
else if (entity.point || entity.billboard) {
|
|
3934
4026
|
this.items = MPoint.Render(this.container, this.viewer, entity);
|
|
3935
4027
|
}
|
|
3936
4028
|
}
|
|
@@ -3960,5 +4052,5 @@ var MeasureAddon = /** @class */ (function () {
|
|
|
3960
4052
|
return MeasureAddon;
|
|
3961
4053
|
}());
|
|
3962
4054
|
|
|
3963
|
-
export { CesiumViewMonitor, ViewerUtils, MenuItemManager, EntityRenderEngine, RenderHelper, VisualsRegister, RenderManager, EntitiesIdsRenderManager, EntitiesLoadedRenderManager, EntitiesRenderManager, EntityRenderManager, TilesetCadRenderManager, ViewRenderEngine, TileRenderEngine, MeasureAddon };
|
|
4055
|
+
export { CesiumViewMonitor, ViewerUtils, MenuItemManager, EntityRenderEngine, RenderHelper, VisualsRegister, RenderManager, EntitiesIdsRenderManager, EntitiesLoadedRenderManager, EntitiesRenderManager, EntityRenderManager, TilesetCadRenderManager, ViewRenderEngine, TileRenderEngine, MeasureAddon, SharedGetters };
|
|
3964
4056
|
//# sourceMappingURL=bruce-cesium.es5.js.map
|