bruce-cesium 4.7.2 → 4.7.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.
@@ -16003,6 +16003,182 @@
16003
16003
  TilesetCadRenderManager.Manager = Manager;
16004
16004
  })(exports.TilesetCadRenderManager || (exports.TilesetCadRenderManager = {}));
16005
16005
 
16006
+ (function (DataLabRenderManager) {
16007
+ var Manager = /** @class */ (function () {
16008
+ function Manager(params) {
16009
+ this.getter = null;
16010
+ this.disposed = false;
16011
+ var viewer = params.viewer, item = params.item, apiGetter = params.apiGetter, monitor = params.monitor, visualsRegister = params.visualsRegister;
16012
+ this.viewer = viewer;
16013
+ this.item = item;
16014
+ this.apiGetter = apiGetter;
16015
+ this.monitor = monitor;
16016
+ this.visualsManager = visualsRegister;
16017
+ }
16018
+ Object.defineProperty(Manager.prototype, "Disposed", {
16019
+ get: function () {
16020
+ return this.disposed;
16021
+ },
16022
+ enumerable: false,
16023
+ configurable: true
16024
+ });
16025
+ Manager.prototype.Init = function () {
16026
+ var _this = this;
16027
+ var _a;
16028
+ if (this.disposed) {
16029
+ throw new Error("This manager has already been disposed.");
16030
+ }
16031
+ if (!((_a = this.item.CameraZoomSettings) === null || _a === void 0 ? void 0 : _a.length)) {
16032
+ this.item.CameraZoomSettings = [
16033
+ {
16034
+ MinZoom: 0,
16035
+ MaxZoom: 200000,
16036
+ DisplayType: BModels.ZoomControl.EDisplayType.Model3D,
16037
+ LODCategoryID: "glb",
16038
+ LODLevel: 0,
16039
+ StyleID: 0
16040
+ }
16041
+ ];
16042
+ }
16043
+ // Perform the initial query and subscribe to updates
16044
+ this.getter = new BatchedDataGetter.Getter([this.item.DataLabQueryID], this.monitor, 1);
16045
+ this.getter.OnUpdate.Subscribe(function (queryIds) {
16046
+ _this.onGetterUpdate(queryIds[0]);
16047
+ });
16048
+ this.getter.Start();
16049
+ };
16050
+ Manager.prototype.Dispose = function () {
16051
+ if (this.disposed) {
16052
+ return;
16053
+ }
16054
+ this.doDispose();
16055
+ };
16056
+ Manager.prototype.doDispose = function () {
16057
+ var _a;
16058
+ this.disposed = true;
16059
+ (_a = this.getter) === null || _a === void 0 ? void 0 : _a.Dispose();
16060
+ this.visualsManager.RemoveRegos({
16061
+ menuItemId: this.item.id
16062
+ });
16063
+ };
16064
+ Manager.prototype.onGetterUpdate = function (queryId) {
16065
+ var _a;
16066
+ return __awaiter(this, void 0, void 0, function () {
16067
+ var api, result, query, queryResult, error_1;
16068
+ var _b;
16069
+ return __generator(this, function (_c) {
16070
+ switch (_c.label) {
16071
+ case 0:
16072
+ if (this.disposed || this.viewer.isDestroyed()) {
16073
+ return [2 /*return*/];
16074
+ }
16075
+ _c.label = 1;
16076
+ case 1:
16077
+ _c.trys.push([1, 4, , 5]);
16078
+ api = this.apiGetter.getApi();
16079
+ return [4 /*yield*/, BModels.DataLab.Get({ api: api, queryId: queryId })];
16080
+ case 2:
16081
+ result = _c.sent();
16082
+ query = result.query;
16083
+ return [4 /*yield*/, BModels.DataLab.Run({ api: api, query: (_b = {},
16084
+ _b[BModels.DataLab.EReqKey.Primary] = {
16085
+ Items: ((_a = query === null || query === void 0 ? void 0 : query.PrimarySelectionCriteria) === null || _a === void 0 ? void 0 : _a.Items) || [],
16086
+ },
16087
+ _b) })];
16088
+ case 3:
16089
+ queryResult = _c.sent();
16090
+ this.renderDataLabEntities(queryResult.entities || []);
16091
+ return [3 /*break*/, 5];
16092
+ case 4:
16093
+ error_1 = _c.sent();
16094
+ console.error("Failed to perform query or render DataLab entities:", error_1);
16095
+ return [3 /*break*/, 5];
16096
+ case 5: return [2 /*return*/];
16097
+ }
16098
+ });
16099
+ });
16100
+ };
16101
+ Manager.prototype.renderDataLabEntities = function (entities) {
16102
+ return __awaiter(this, void 0, void 0, function () {
16103
+ var _a, updated, cEntities, i, entity, id, cEntity, rego;
16104
+ return __generator(this, function (_b) {
16105
+ switch (_b.label) {
16106
+ case 0:
16107
+ if (this.disposed || this.viewer.isDestroyed()) {
16108
+ return [2 /*return*/];
16109
+ }
16110
+ return [4 /*yield*/, exports.EntityRenderEngine.Render({
16111
+ viewer: this.viewer,
16112
+ apiGetter: this.apiGetter,
16113
+ entities: entities,
16114
+ menuItemId: this.item.id,
16115
+ visualRegister: this.visualsManager,
16116
+ zoomControl: this.item.CameraZoomSettings
16117
+ })];
16118
+ case 1:
16119
+ _a = _b.sent(), updated = _a.updated, cEntities = _a.entities;
16120
+ for (i = 0; i < entities.length; i++) {
16121
+ entity = entities[i];
16122
+ id = entity.Bruce.ID;
16123
+ cEntity = cEntities.get(id);
16124
+ if (cEntity) {
16125
+ rego = this.visualsManager.GetRego({
16126
+ entityId: id,
16127
+ menuItemId: this.item.id
16128
+ });
16129
+ if (!rego) {
16130
+ this.visualsManager.AddRego({
16131
+ rego: {
16132
+ entityId: id,
16133
+ menuItemId: this.item.id,
16134
+ menuItemType: this.item.Type,
16135
+ visual: cEntity,
16136
+ priority: 0,
16137
+ entityTypeId: entity.Bruce["EntityType.ID"],
16138
+ accountId: this.apiGetter.accountId,
16139
+ name: cEntity.name
16140
+ },
16141
+ requestRender: false
16142
+ });
16143
+ }
16144
+ }
16145
+ else {
16146
+ this.visualsManager.RemoveRegos({
16147
+ entityId: id,
16148
+ menuItemId: this.item.id,
16149
+ requestRender: false
16150
+ });
16151
+ }
16152
+ }
16153
+ this.viewer.scene.requestRender();
16154
+ return [2 /*return*/];
16155
+ }
16156
+ });
16157
+ });
16158
+ };
16159
+ Manager.prototype.ReRender = function () {
16160
+ return __awaiter(this, void 0, void 0, function () {
16161
+ return __generator(this, function (_a) {
16162
+ switch (_a.label) {
16163
+ case 0:
16164
+ if (this.disposed) {
16165
+ return [2 /*return*/];
16166
+ }
16167
+ // Re-perform the query and render again
16168
+ return [4 /*yield*/, this.onGetterUpdate(this.item.DataLabQueryID)];
16169
+ case 1:
16170
+ // Re-perform the query and render again
16171
+ _a.sent();
16172
+ return [2 /*return*/];
16173
+ }
16174
+ });
16175
+ });
16176
+ };
16177
+ return Manager;
16178
+ }());
16179
+ DataLabRenderManager.Manager = Manager;
16180
+ })(exports.DataLabRenderManager || (exports.DataLabRenderManager = {}));
16181
+
16006
16182
  /**
16007
16183
  * This is a helper for making entity requests based on a grid area.
16008
16184
  * It will return grid cells based on given view-area then will remember when stuff-
@@ -20818,6 +20994,15 @@
20818
20994
  getters: params.getters
20819
20995
  });
20820
20996
  break;
20997
+ case BModels.MenuItem.EType.DataLab:
20998
+ rItem.renderManager = new exports.DataLabRenderManager.Manager({
20999
+ viewer: this.viewer,
21000
+ item: params.item,
21001
+ apiGetter: params.apiGetter,
21002
+ monitor: this.sharedMonitor,
21003
+ visualsRegister: this.visualsRegister
21004
+ });
21005
+ break;
20821
21006
  // Any "none" type can be ignored. These are just containers for other items.
20822
21007
  case BModels.MenuItem.EType.None:
20823
21008
  break;
@@ -28184,7 +28369,7 @@
28184
28369
  return WidgetViewBar;
28185
28370
  }(exports.Widget.AWidget));
28186
28371
 
28187
- var VERSION = "4.7.2";
28372
+ var VERSION = "4.7.4";
28188
28373
 
28189
28374
  exports.VERSION = VERSION;
28190
28375
  exports.CesiumParabola = CesiumParabola;