bruce-cesium 0.2.5 → 0.2.6

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.
@@ -1,5 +1,5 @@
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, Color, HeightReference, Cartesian3, Entity, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Viewer, ArcGisMapServerImageryProvider, ScreenSpaceEventType, Primitive, Cesium3DTileFeature, HeadingPitchRange, OrthographicFrustum, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, createWorldTerrain, CesiumTerrainProvider, EllipsoidTerrainProvider, Matrix4, Cesium3DTileset, EllipsoidGeodesic } from 'cesium';
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, Matrix4, Cesium3DTileset, EllipsoidGeodesic } from 'cesium';
3
3
 
4
4
  var TIME_LAG = 300;
5
5
  var POSITION_CHECK_TIMER = 950;
@@ -83,6 +83,7 @@ var CesiumViewMonitor = /** @class */ (function () {
83
83
  this.disposed = false;
84
84
  this.updatedEvent = null;
85
85
  this.viewer = viewer;
86
+ this.tryEmitUpdate();
86
87
  this.checkInterval = setInterval(function () {
87
88
  _this.updateQueue();
88
89
  }, POSITION_CHECK_TIMER);
@@ -1566,13 +1567,14 @@ var EntitiesRenderManager;
1566
1567
  var EntitiesLoadedRenderManager;
1567
1568
  (function (EntitiesLoadedRenderManager) {
1568
1569
  var Manager = /** @class */ (function () {
1569
- function Manager(viewer, visualsManager, apiGetter, item) {
1570
+ function Manager(viewer, visualsManager, apiGetter, monitor, item) {
1570
1571
  this.getter = null;
1571
1572
  this.getterSub = null;
1572
1573
  this.disposed = false;
1573
1574
  this.renderedEntities = {};
1574
1575
  this.viewer = viewer;
1575
1576
  this.apiGetter = apiGetter;
1577
+ this.monitor = monitor;
1576
1578
  this.item = item;
1577
1579
  this.visualsManager = visualsManager;
1578
1580
  }
@@ -1590,7 +1592,7 @@ var EntitiesLoadedRenderManager;
1590
1592
  if (this.disposed) {
1591
1593
  throw (new Error("This item is disposed."));
1592
1594
  }
1593
- this.getter = new BatchedDataGetter.Getter(this.item.BruceEntity.Entities, new CesiumViewMonitor(this.viewer), 500);
1595
+ this.getter = new BatchedDataGetter.Getter(this.item.BruceEntity.Entities, this.monitor, 500);
1594
1596
  this.getterSub = this.getter.OnUpdate.Subscribe(function (entities) {
1595
1597
  _this.onGetterUpdate(entities);
1596
1598
  });
@@ -2048,13 +2050,14 @@ var VisualsRegister;
2048
2050
  var EntitiesIdsRenderManager;
2049
2051
  (function (EntitiesIdsRenderManager) {
2050
2052
  var Manager = /** @class */ (function () {
2051
- function Manager(viewer, visualsManager, apiGetter, item) {
2053
+ function Manager(viewer, visualsManager, apiGetter, monitor, item) {
2052
2054
  this.getter = null;
2053
2055
  this.getterSub = null;
2054
2056
  this.disposed = false;
2055
2057
  this.renderedEntities = {};
2056
2058
  this.viewer = viewer;
2057
2059
  this.apiGetter = apiGetter;
2060
+ this.monitor = monitor;
2058
2061
  this.item = item;
2059
2062
  this.visualsManager = visualsManager;
2060
2063
  }
@@ -2072,7 +2075,7 @@ var EntitiesIdsRenderManager;
2072
2075
  if (this.disposed) {
2073
2076
  throw (new Error("This item is disposed."));
2074
2077
  }
2075
- this.getter = new BatchedDataGetter.Getter(this.item.BruceEntity.EntityIds, new CesiumViewMonitor(this.viewer), 500);
2078
+ this.getter = new BatchedDataGetter.Getter(this.item.BruceEntity.EntityIds, this.monitor, 500);
2076
2079
  this.getterSub = this.getter.OnUpdate.Subscribe(function (ids) {
2077
2080
  _this.onGetterUpdate(ids);
2078
2081
  });
@@ -2149,12 +2152,13 @@ var EntitiesIdsRenderManager;
2149
2152
  var EntityRenderManager;
2150
2153
  (function (EntityRenderManager) {
2151
2154
  var Manager = /** @class */ (function () {
2152
- function Manager(viewer, visualsManager, apiGetter, item) {
2155
+ function Manager(viewer, visualsManager, apiGetter, monitor, item) {
2153
2156
  this.getter = null;
2154
2157
  this.getterSub = null;
2155
2158
  this.disposed = false;
2156
2159
  this.viewer = viewer;
2157
2160
  this.apiGetter = apiGetter;
2161
+ this.monitor = monitor;
2158
2162
  this.item = item;
2159
2163
  this.visualsManager = visualsManager;
2160
2164
  }
@@ -2172,7 +2176,7 @@ var EntityRenderManager;
2172
2176
  if (this.disposed) {
2173
2177
  throw (new Error("This item is disposed."));
2174
2178
  }
2175
- this.getter = new BatchedDataGetter.Getter([this.item.BruceEntity.EntityId], new CesiumViewMonitor(this.viewer), 1);
2179
+ this.getter = new BatchedDataGetter.Getter([this.item.BruceEntity.EntityId], this.monitor, 1);
2176
2180
  this.getterSub = this.getter.OnUpdate.Subscribe(function (ids) {
2177
2181
  _this.onGetterUpdate(ids[0]);
2178
2182
  });
@@ -2889,194 +2893,6 @@ var SharedGetters;
2889
2893
  SharedGetters.Cache = Cache;
2890
2894
  })(SharedGetters || (SharedGetters = {}));
2891
2895
 
2892
- /**
2893
- * Utility to keep track of enabled menu items within a Cesium viewer.
2894
- */
2895
- var MenuItemManager;
2896
- (function (MenuItemManager) {
2897
- var Manager = /** @class */ (function () {
2898
- function Manager(viewer, visualsRegister) {
2899
- this.items = [];
2900
- this.onUpdate = null;
2901
- this.viewer = viewer;
2902
- if (!visualsRegister) {
2903
- visualsRegister = new VisualsRegister.Register(viewer);
2904
- }
2905
- this.visualsRegister = visualsRegister;
2906
- this.sharedGetters = new SharedGetters.Cache(this.viewer);
2907
- }
2908
- Object.defineProperty(Manager.prototype, "Viewer", {
2909
- get: function () {
2910
- return this.viewer;
2911
- },
2912
- enumerable: false,
2913
- configurable: true
2914
- });
2915
- Object.defineProperty(Manager.prototype, "VisualsRegister", {
2916
- get: function () {
2917
- return this.visualsRegister;
2918
- },
2919
- enumerable: false,
2920
- configurable: true
2921
- });
2922
- Object.defineProperty(Manager.prototype, "OnUpdate", {
2923
- get: function () {
2924
- if (!this.onUpdate) {
2925
- this.onUpdate = new BruceEvent();
2926
- }
2927
- return this.onUpdate;
2928
- },
2929
- enumerable: false,
2930
- configurable: true
2931
- });
2932
- /**
2933
- * Renders a given menu item and all ids children.
2934
- * Will return the enabled item id.
2935
- * @param params
2936
- * @returns
2937
- */
2938
- Manager.prototype.RenderItem = function (params) {
2939
- var _a, _b;
2940
- return __awaiter(this, void 0, void 0, function () {
2941
- var rItem, i, childId;
2942
- return __generator(this, function (_c) {
2943
- switch (_c.label) {
2944
- case 0:
2945
- if (this.items.find(function (x) { return x.id == params.item.id; })) {
2946
- return [2 /*return*/, params.item.id];
2947
- }
2948
- rItem = {
2949
- id: (_a = params.item.id) !== null && _a !== void 0 ? _a : ObjectUtils.UId(),
2950
- childIds: [],
2951
- item: params.item,
2952
- renderManager: null,
2953
- type: params.item.Type
2954
- };
2955
- switch (params.item.Type) {
2956
- case MenuItem.EType.Entities:
2957
- rItem.renderManager = new EntitiesRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item, this.sharedGetters);
2958
- break;
2959
- case MenuItem.EType.EntitiesLoaded:
2960
- rItem.renderManager = new EntitiesLoadedRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item);
2961
- break;
2962
- case MenuItem.EType.EntitiesIds:
2963
- rItem.renderManager = new EntitiesIdsRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item);
2964
- break;
2965
- case MenuItem.EType.Entity:
2966
- rItem.renderManager = new EntityRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item);
2967
- break;
2968
- case MenuItem.EType.CadTileset:
2969
- rItem.renderManager = new TilesetCadRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item);
2970
- break;
2971
- case MenuItem.EType.Osm:
2972
- // TODO;
2973
- break;
2974
- case MenuItem.EType.PointCloud:
2975
- // TODO;
2976
- break;
2977
- case MenuItem.EType.EntityTileset:
2978
- // TODO;
2979
- break;
2980
- case MenuItem.EType.Kml:
2981
- // TODO;
2982
- break;
2983
- // Any "none" type can be ignored. These are just containers for other items.
2984
- case MenuItem.EType.None:
2985
- break;
2986
- default:
2987
- console.error("Menu item type is not implemented.", params.item.Type);
2988
- }
2989
- if (!rItem.renderManager) return [3 /*break*/, 2];
2990
- return [4 /*yield*/, rItem.renderManager.Init()];
2991
- case 1:
2992
- _c.sent();
2993
- _c.label = 2;
2994
- case 2:
2995
- this.items.push(rItem);
2996
- if (!params.item.Children) return [3 /*break*/, 6];
2997
- i = 0;
2998
- _c.label = 3;
2999
- case 3:
3000
- if (!(i < params.item.Children.length)) return [3 /*break*/, 6];
3001
- return [4 /*yield*/, this.RenderItem(__assign(__assign({}, params), { item: params.item.Children[i] }))];
3002
- case 4:
3003
- childId = _c.sent();
3004
- rItem.childIds.push(childId);
3005
- _c.label = 5;
3006
- case 5:
3007
- i++;
3008
- return [3 /*break*/, 3];
3009
- case 6:
3010
- (_b = this.onUpdate) === null || _b === void 0 ? void 0 : _b.Trigger({ isEnabling: true, itemId: rItem.id });
3011
- return [2 /*return*/, rItem.id];
3012
- }
3013
- });
3014
- });
3015
- };
3016
- /**
3017
- * Disables a menu item by ids id.
3018
- * This will disable all children as well.
3019
- * @param id
3020
- */
3021
- Manager.prototype.RemoveItemById = function (id) {
3022
- var _a, _b;
3023
- return __awaiter(this, void 0, void 0, function () {
3024
- var item, _loop_1, this_1, i;
3025
- return __generator(this, function (_c) {
3026
- switch (_c.label) {
3027
- case 0:
3028
- item = this.items.find(function (x) { return x.id === id; });
3029
- if (!item) return [3 /*break*/, 5];
3030
- _loop_1 = function (i) {
3031
- var child;
3032
- return __generator(this, function (_a) {
3033
- switch (_a.label) {
3034
- case 0:
3035
- child = this_1.items.find(function (x) { return x.id === item.childIds[i]; });
3036
- if (!child) return [3 /*break*/, 2];
3037
- return [4 /*yield*/, this_1.RemoveItemById(child.id)];
3038
- case 1:
3039
- _a.sent();
3040
- _a.label = 2;
3041
- case 2: return [2 /*return*/];
3042
- }
3043
- });
3044
- };
3045
- this_1 = this;
3046
- i = 0;
3047
- _c.label = 1;
3048
- case 1:
3049
- if (!(i < item.childIds.length)) return [3 /*break*/, 4];
3050
- return [5 /*yield**/, _loop_1(i)];
3051
- case 2:
3052
- _c.sent();
3053
- _c.label = 3;
3054
- case 3:
3055
- i++;
3056
- return [3 /*break*/, 1];
3057
- case 4:
3058
- try {
3059
- (_a = item.renderManager) === null || _a === void 0 ? void 0 : _a.Dispose();
3060
- }
3061
- catch (e) {
3062
- console.error(e);
3063
- }
3064
- this.items = this.items.filter(function (x) { return x.id !== id; });
3065
- (_b = this.onUpdate) === null || _b === void 0 ? void 0 : _b.Trigger({ isEnabling: false, itemId: item.id });
3066
- _c.label = 5;
3067
- case 5: return [2 /*return*/];
3068
- }
3069
- });
3070
- });
3071
- };
3072
- Manager.prototype.GetEnabledItemIds = function () {
3073
- return this.items.map(function (x) { return x.id; });
3074
- };
3075
- return Manager;
3076
- }());
3077
- MenuItemManager.Manager = Manager;
3078
- })(MenuItemManager || (MenuItemManager = {}));
3079
-
3080
2896
  /**
3081
2897
  * Utility to help generate menu items for rendering various data.
3082
2898
  */
@@ -4059,5 +3875,194 @@ var MeasureAddon = /** @class */ (function () {
4059
3875
  return MeasureAddon;
4060
3876
  }());
4061
3877
 
3878
+ /**
3879
+ * Utility to keep track of enabled menu items within a Cesium viewer.
3880
+ */
3881
+ var MenuItemManager;
3882
+ (function (MenuItemManager$$1) {
3883
+ var Manager = /** @class */ (function () {
3884
+ function Manager(viewer, visualsRegister) {
3885
+ this.items = [];
3886
+ this.onUpdate = null;
3887
+ this.viewer = viewer;
3888
+ if (!visualsRegister) {
3889
+ visualsRegister = new VisualsRegister.Register(viewer);
3890
+ }
3891
+ this.visualsRegister = visualsRegister;
3892
+ this.sharedGetters = new SharedGetters.Cache(this.viewer);
3893
+ this.sharedMonitor = new CesiumViewMonitor(this.viewer);
3894
+ }
3895
+ Object.defineProperty(Manager.prototype, "Viewer", {
3896
+ get: function () {
3897
+ return this.viewer;
3898
+ },
3899
+ enumerable: false,
3900
+ configurable: true
3901
+ });
3902
+ Object.defineProperty(Manager.prototype, "VisualsRegister", {
3903
+ get: function () {
3904
+ return this.visualsRegister;
3905
+ },
3906
+ enumerable: false,
3907
+ configurable: true
3908
+ });
3909
+ Object.defineProperty(Manager.prototype, "OnUpdate", {
3910
+ get: function () {
3911
+ if (!this.onUpdate) {
3912
+ this.onUpdate = new BruceEvent();
3913
+ }
3914
+ return this.onUpdate;
3915
+ },
3916
+ enumerable: false,
3917
+ configurable: true
3918
+ });
3919
+ /**
3920
+ * Renders a given menu item and all ids children.
3921
+ * Will return the enabled item id.
3922
+ * @param params
3923
+ * @returns
3924
+ */
3925
+ Manager.prototype.RenderItem = function (params) {
3926
+ var _a, _b;
3927
+ return __awaiter(this, void 0, void 0, function () {
3928
+ var rItem, i, childId;
3929
+ return __generator(this, function (_c) {
3930
+ switch (_c.label) {
3931
+ case 0:
3932
+ if (this.items.find(function (x) { return x.id == params.item.id; })) {
3933
+ return [2 /*return*/, params.item.id];
3934
+ }
3935
+ rItem = {
3936
+ id: (_a = params.item.id) !== null && _a !== void 0 ? _a : ObjectUtils.UId(),
3937
+ childIds: [],
3938
+ item: params.item,
3939
+ renderManager: null,
3940
+ type: params.item.Type
3941
+ };
3942
+ switch (params.item.Type) {
3943
+ case MenuItem.EType.Entities:
3944
+ rItem.renderManager = new EntitiesRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item, this.sharedGetters);
3945
+ break;
3946
+ case MenuItem.EType.EntitiesLoaded:
3947
+ rItem.renderManager = new EntitiesLoadedRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, this.sharedMonitor, params.item);
3948
+ break;
3949
+ case MenuItem.EType.EntitiesIds:
3950
+ rItem.renderManager = new EntitiesIdsRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, this.sharedMonitor, params.item);
3951
+ break;
3952
+ case MenuItem.EType.Entity:
3953
+ rItem.renderManager = new EntityRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, this.sharedMonitor, params.item);
3954
+ break;
3955
+ case MenuItem.EType.CadTileset:
3956
+ rItem.renderManager = new TilesetCadRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item);
3957
+ break;
3958
+ case MenuItem.EType.Osm:
3959
+ // TODO;
3960
+ break;
3961
+ case MenuItem.EType.PointCloud:
3962
+ // TODO;
3963
+ break;
3964
+ case MenuItem.EType.EntityTileset:
3965
+ // TODO;
3966
+ break;
3967
+ case MenuItem.EType.Kml:
3968
+ // TODO;
3969
+ break;
3970
+ // Any "none" type can be ignored. These are just containers for other items.
3971
+ case MenuItem.EType.None:
3972
+ break;
3973
+ default:
3974
+ console.error("Menu item type is not implemented.", params.item.Type);
3975
+ }
3976
+ if (!rItem.renderManager) return [3 /*break*/, 2];
3977
+ return [4 /*yield*/, rItem.renderManager.Init()];
3978
+ case 1:
3979
+ _c.sent();
3980
+ _c.label = 2;
3981
+ case 2:
3982
+ this.items.push(rItem);
3983
+ if (!params.item.Children) return [3 /*break*/, 6];
3984
+ i = 0;
3985
+ _c.label = 3;
3986
+ case 3:
3987
+ if (!(i < params.item.Children.length)) return [3 /*break*/, 6];
3988
+ return [4 /*yield*/, this.RenderItem(__assign(__assign({}, params), { item: params.item.Children[i] }))];
3989
+ case 4:
3990
+ childId = _c.sent();
3991
+ rItem.childIds.push(childId);
3992
+ _c.label = 5;
3993
+ case 5:
3994
+ i++;
3995
+ return [3 /*break*/, 3];
3996
+ case 6:
3997
+ (_b = this.onUpdate) === null || _b === void 0 ? void 0 : _b.Trigger({ isEnabling: true, itemId: rItem.id });
3998
+ return [2 /*return*/, rItem.id];
3999
+ }
4000
+ });
4001
+ });
4002
+ };
4003
+ /**
4004
+ * Disables a menu item by ids id.
4005
+ * This will disable all children as well.
4006
+ * @param id
4007
+ */
4008
+ Manager.prototype.RemoveItemById = function (id) {
4009
+ var _a, _b;
4010
+ return __awaiter(this, void 0, void 0, function () {
4011
+ var item, _loop_1, this_1, i;
4012
+ return __generator(this, function (_c) {
4013
+ switch (_c.label) {
4014
+ case 0:
4015
+ item = this.items.find(function (x) { return x.id === id; });
4016
+ if (!item) return [3 /*break*/, 5];
4017
+ _loop_1 = function (i) {
4018
+ var child;
4019
+ return __generator(this, function (_a) {
4020
+ switch (_a.label) {
4021
+ case 0:
4022
+ child = this_1.items.find(function (x) { return x.id === item.childIds[i]; });
4023
+ if (!child) return [3 /*break*/, 2];
4024
+ return [4 /*yield*/, this_1.RemoveItemById(child.id)];
4025
+ case 1:
4026
+ _a.sent();
4027
+ _a.label = 2;
4028
+ case 2: return [2 /*return*/];
4029
+ }
4030
+ });
4031
+ };
4032
+ this_1 = this;
4033
+ i = 0;
4034
+ _c.label = 1;
4035
+ case 1:
4036
+ if (!(i < item.childIds.length)) return [3 /*break*/, 4];
4037
+ return [5 /*yield**/, _loop_1(i)];
4038
+ case 2:
4039
+ _c.sent();
4040
+ _c.label = 3;
4041
+ case 3:
4042
+ i++;
4043
+ return [3 /*break*/, 1];
4044
+ case 4:
4045
+ try {
4046
+ (_a = item.renderManager) === null || _a === void 0 ? void 0 : _a.Dispose();
4047
+ }
4048
+ catch (e) {
4049
+ console.error(e);
4050
+ }
4051
+ this.items = this.items.filter(function (x) { return x.id !== id; });
4052
+ (_b = this.onUpdate) === null || _b === void 0 ? void 0 : _b.Trigger({ isEnabling: false, itemId: item.id });
4053
+ _c.label = 5;
4054
+ case 5: return [2 /*return*/];
4055
+ }
4056
+ });
4057
+ });
4058
+ };
4059
+ Manager.prototype.GetEnabledItemIds = function () {
4060
+ return this.items.map(function (x) { return x.id; });
4061
+ };
4062
+ return Manager;
4063
+ }());
4064
+ MenuItemManager$$1.Manager = Manager;
4065
+ })(MenuItemManager || (MenuItemManager = {}));
4066
+
4062
4067
  export { CesiumViewMonitor, ViewerUtils, MenuItemManager, EntityRenderEngine, RenderHelper, VisualsRegister, RenderManager, EntitiesIdsRenderManager, EntitiesLoadedRenderManager, EntitiesRenderManager, EntityRenderManager, TilesetCadRenderManager, ViewRenderEngine, TileRenderEngine, MeasureAddon, SharedGetters };
4063
4068
  //# sourceMappingURL=bruce-cesium.es5.js.map