bruce-cesium 5.8.7 → 5.8.8

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,6 +1,6 @@
1
1
  import { BruceEvent, Cartes, Entity as Entity$1, ProjectViewTile, Carto, Geometry, MathUtils, LRUCache, Api, Calculator, ClientFile, EntityTag, EntityType, ObjectUtils, Style, DelayQueue, EntityLod, Bounds, ZoomControl, EntityRelationType, ENVIRONMENT, EntityHistoricData, Tileset, EntityCoords, DataLab, EntitySource, MenuItem, EntityRelation, ProgramKey, ProjectView, ProjectViewBookmark, Camera, ProjectViewLegacyTile, EntityAttachment, EntityAttachmentType, EntityAttribute, AbstractApi, Session } from 'bruce-models';
2
2
  import * as Cesium from 'cesium';
3
- import { Cartographic, Cartesian2, Math as Math$1, Cartesian3, CallbackProperty, Color, HeightReference, Rectangle, JulianDate, Entity, DistanceDisplayCondition, HorizontalOrigin, VerticalOrigin, ConstantProperty, ClassificationType, ConstantPositionProperty, ArcType, CornerType, ShadowMode, PolygonHierarchy, PolylineGraphics, ColorMaterialProperty, ColorBlendMode, HeadingPitchRoll, Transforms, Model, SceneMode, Primitive, Cesium3DTileFeature, GeoJsonDataSource, Cesium3DTileStyle, Cesium3DTileColorBlendMode, HeadingPitchRange, Ion, KmlDataSource, Quaternion, Matrix3, Matrix4, OrthographicFrustum, EasingFunction, NearFarScalar, SceneTransforms, Cesium3DTileset, IonResource, EllipsoidTerrainProvider, IonImageryProvider, createWorldImagery, createWorldImageryAsync, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, UrlTemplateImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, TileMapServiceImageryProvider, CesiumTerrainProvider, CesiumInspector, defined, ClockRange, EllipsoidGeodesic, sampleTerrainMostDetailed, PolygonPipeline, BoundingSphere, GeometryInstance, ScreenSpaceEventHandler, ScreenSpaceEventType, ModelGraphics, PolygonGraphics, CorridorGraphics, PointGraphics, BillboardGraphics, EllipseGraphics, PolylineDashMaterialProperty, CzmlDataSource, Intersect, Fullscreen } from 'cesium';
3
+ import { Cartographic, Cartesian2, Math as Math$1, Cartesian3, CallbackProperty, Color, HeightReference, Rectangle, JulianDate, Entity, DistanceDisplayCondition, HorizontalOrigin, VerticalOrigin, ConstantProperty, ClassificationType, ConstantPositionProperty, ArcType, CornerType, ShadowMode, PolygonHierarchy, PolylineGraphics, ColorMaterialProperty, ColorBlendMode, HeadingPitchRoll, Transforms, Model, Primitive, Cesium3DTileFeature, SceneMode, GeoJsonDataSource, Cesium3DTileStyle, Cesium3DTileColorBlendMode, HeadingPitchRange, Ion, KmlDataSource, Quaternion, Matrix3, Matrix4, SceneTransforms, OrthographicFrustum, EasingFunction, NearFarScalar, EllipsoidTerrainProvider, IonImageryProvider, createWorldImagery, createWorldImageryAsync, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, UrlTemplateImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, TileMapServiceImageryProvider, CesiumTerrainProvider, IonResource, Cesium3DTileset, CesiumInspector, defined, ClockRange, EllipsoidGeodesic, sampleTerrainMostDetailed, PolygonPipeline, BoundingSphere, GeometryInstance, ModelGraphics, PolygonGraphics, CorridorGraphics, PointGraphics, BillboardGraphics, EllipseGraphics, PolylineDashMaterialProperty, ScreenSpaceEventHandler, ScreenSpaceEventType, CzmlDataSource, Intersect, Fullscreen } from 'cesium';
4
4
 
5
5
  const TIME_LAG = 300;
6
6
  const POSITION_CHECK_TIMER = 950;
@@ -14910,6 +14910,14 @@ var EntitiesIdsRenderManager;
14910
14910
  get Disposed() {
14911
14911
  return this.disposed;
14912
14912
  }
14913
+ get EntityIds() {
14914
+ var _a, _b;
14915
+ return ((_b = (_a = this.item) === null || _a === void 0 ? void 0 : _a.BruceEntity) === null || _b === void 0 ? void 0 : _b.EntityIds) || [];
14916
+ }
14917
+ get ZoomControl() {
14918
+ var _a;
14919
+ return ((_a = this.item) === null || _a === void 0 ? void 0 : _a.CameraZoomSettings) || [];
14920
+ }
14913
14921
  constructor(params) {
14914
14922
  var _a;
14915
14923
  this.getter = null;
@@ -14935,11 +14943,14 @@ var EntitiesIdsRenderManager;
14935
14943
  this.clustering = new PointClustering(visualsManager, this.item.id, (_a = this.item) === null || _a === void 0 ? void 0 : _a.clustering);
14936
14944
  }
14937
14945
  }
14938
- Init() {
14946
+ Init(params) {
14939
14947
  var _a, _b, _c;
14940
14948
  if (this.disposed) {
14941
14949
  throw (new Error("This item is disposed."));
14942
14950
  }
14951
+ if (params === null || params === void 0 ? void 0 : params.item) {
14952
+ this.item = params.item;
14953
+ }
14943
14954
  if (!((_a = this.item.CameraZoomSettings) === null || _a === void 0 ? void 0 : _a.length)) {
14944
14955
  this.item.CameraZoomSettings = [
14945
14956
  {
@@ -14956,19 +14967,19 @@ var EntitiesIdsRenderManager;
14956
14967
  if (this.renderPriority == null) {
14957
14968
  this.renderPriority = 2;
14958
14969
  }
14959
- this.getter = new BatchedDataGetter.Getter(this.item.BruceEntity.EntityIds, this.monitor, BATCH_SIZE$2,
14960
- // Don't emit the same Entity multiple times.
14961
- true);
14962
- this.getterSub = this.getter.OnUpdate.Subscribe((ids) => {
14963
- this.onGetterUpdate(ids);
14964
- });
14965
- this.getter.Start();
14970
+ if (!this.getter) {
14971
+ this.getter = new BatchedDataGetter.Getter(this.item.BruceEntity.EntityIds, this.monitor, BATCH_SIZE$2,
14972
+ // Don't emit the same Entity multiple times.
14973
+ true);
14974
+ this.getterSub = this.getter.OnUpdate.Subscribe((ids) => {
14975
+ this.onGetterUpdate(ids);
14976
+ });
14977
+ this.getter.Start();
14978
+ }
14979
+ this.viewerDateTimeDispose();
14966
14980
  if (((_b = this.item.BruceEntity) === null || _b === void 0 ? void 0 : _b.historic) || ((_c = this.item.BruceEntity) === null || _c === void 0 ? void 0 : _c.historicAttrKey)) {
14967
14981
  this.viewerDateTimeSub();
14968
14982
  }
14969
- else {
14970
- this.viewerDateTimeDispose();
14971
- }
14972
14983
  }
14973
14984
  Dispose() {
14974
14985
  if (this.disposed) {
@@ -19261,8 +19272,7 @@ var DataLabRenderManager;
19261
19272
  })(DataLabRenderManager || (DataLabRenderManager = {}));
19262
19273
 
19263
19274
  const MAX_BATCHES = 2;
19264
- const BATCH_SIZE_OLD_API = 30;
19265
- const BATCH_SIZE_NEW_API = 1000;
19275
+ const BATCH_SIZE$3 = 1000;
19266
19276
  const BATCH_DELAY = 200;
19267
19277
  const MAX_RANGE = 3000;
19268
19278
  var TilesetOsmRenderManager;
@@ -19277,6 +19287,12 @@ var TilesetOsmRenderManager;
19277
19287
  get count() {
19278
19288
  return ++this.counter;
19279
19289
  }
19290
+ get SourceId() {
19291
+ return this.sourceId;
19292
+ }
19293
+ get EntityTypeId() {
19294
+ return this.entityTypeId;
19295
+ }
19280
19296
  constructor(params) {
19281
19297
  this.disposed = false;
19282
19298
  this.cTileset = null;
@@ -19289,7 +19305,6 @@ var TilesetOsmRenderManager;
19289
19305
  this.queueCheckInterval = null;
19290
19306
  this.processingQueue = 0;
19291
19307
  this._osmIdToBruceId = {};
19292
- this.batchSize = BATCH_SIZE_OLD_API;
19293
19308
  const { viewer, register: visualsManager, getters: apiGetter, monitor, item } = params;
19294
19309
  this.viewer = viewer;
19295
19310
  this.getters = apiGetter;
@@ -19321,12 +19336,22 @@ var TilesetOsmRenderManager;
19321
19336
  });
19322
19337
  this.featureQueue = [];
19323
19338
  }
19324
- Init() {
19339
+ Init(params) {
19325
19340
  var _a, _b;
19341
+ if (params === null || params === void 0 ? void 0 : params.item) {
19342
+ this.item = params.item;
19343
+ }
19326
19344
  const menuItem = this.item;
19327
19345
  this.sourceId = EnsureNumber((_a = menuItem.BruceEntity) === null || _a === void 0 ? void 0 : _a.SourceId, 0);
19328
19346
  this.entityTypeId = (_b = menuItem.BruceEntity) === null || _b === void 0 ? void 0 : _b["EntityType.ID"];
19329
19347
  (async () => {
19348
+ if (this.disposed) {
19349
+ return;
19350
+ }
19351
+ else if (this.cTileset) {
19352
+ // Already exists, no need to re-initialize.
19353
+ return;
19354
+ }
19330
19355
  const validToken = await ViewerUtils.AssertIonToken(Ion.defaultAccessToken);
19331
19356
  if (!validToken) {
19332
19357
  console.warn("'tileset-osm-render-manager.ts' could not locate a valid Cesium Ion token.");
@@ -19346,12 +19371,13 @@ var TilesetOsmRenderManager;
19346
19371
  console.warn("'tileset-osm-render-manager.ts' could not locate a create function for OSM buildings.");
19347
19372
  return;
19348
19373
  }
19349
- // New API versions are way better at processing this request.
19350
- const api = this.getters.GetBruceApi();
19351
- await api.Loading;
19352
- if (api.IsVersionAtLeast("1.0.5244")) {
19353
- this.batchSize = BATCH_SIZE_NEW_API;
19374
+ // See if we already have a cTileset set.
19375
+ // Happens if we re-initialized in quick succession.
19376
+ if (this.cTileset) {
19377
+ cTileset.destroy();
19378
+ return;
19354
19379
  }
19380
+ this.cTileset = cTileset;
19355
19381
  if (this.disposed) {
19356
19382
  if (this.cTileset && !this.cTileset.isDestroyed()) {
19357
19383
  this.cTileset.destroy();
@@ -19359,7 +19385,6 @@ var TilesetOsmRenderManager;
19359
19385
  }
19360
19386
  return;
19361
19387
  }
19362
- this.cTileset = cTileset;
19363
19388
  if (this.sourceId) {
19364
19389
  if (menuItem.ghostLoading == true) {
19365
19390
  this.cTileset.style = new Cesium3DTileStyle({
@@ -19463,7 +19488,7 @@ var TilesetOsmRenderManager;
19463
19488
  const isClose = this.getIsVisualWithinRange(feature, MAX_RANGE);
19464
19489
  if (isClose) {
19465
19490
  batch.push(feature);
19466
- if (batch.length >= this.batchSize) {
19491
+ if (batch.length >= BATCH_SIZE$3) {
19467
19492
  return batch;
19468
19493
  }
19469
19494
  }
@@ -19613,7 +19638,7 @@ var TilesetOsmRenderManager;
19613
19638
  delete this._loadedCesiumEntities[key];
19614
19639
  this.totalLoaded -= 1;
19615
19640
  removed += 1;
19616
- if (removed >= this.batchSize) {
19641
+ if (removed >= BATCH_SIZE$3) {
19617
19642
  return true;
19618
19643
  }
19619
19644
  }
@@ -20891,9 +20916,33 @@ var TilesetGooglePhotosRenderManager;
20891
20916
  this.cTileset = null;
20892
20917
  }
20893
20918
  }
20894
- Init() {
20919
+ Init(params) {
20920
+ if (this.disposed) {
20921
+ return;
20922
+ }
20923
+ if (params === null || params === void 0 ? void 0 : params.item) {
20924
+ this.item = params.item;
20925
+ }
20895
20926
  (async () => {
20896
20927
  var _a;
20928
+ // If the tileset already exists then we just need to update the style.
20929
+ if (this.cTileset) {
20930
+ const colorCss = this.item.colorMask;
20931
+ if (colorCss) {
20932
+ this.cTileset.style = new Cesium3DTileStyle({
20933
+ color: {
20934
+ conditions: [
20935
+ ["true", `color("${colorCss}")`]
20936
+ ]
20937
+ }
20938
+ });
20939
+ }
20940
+ else {
20941
+ this.cTileset.style = undefined;
20942
+ }
20943
+ this.viewer.scene.requestRender();
20944
+ return;
20945
+ }
20897
20946
  const CESIUM = Cesium;
20898
20947
  if (!CESIUM.createGooglePhotorealistic3DTileset) {
20899
20948
  console.warn("Cesium version does not support 'createGooglePhotorealistic3DTileset' so Google Photos tileset will not be rendered.");
@@ -22807,7 +22856,7 @@ var MenuItemManager;
22807
22856
  * @returns
22808
22857
  */
22809
22858
  RenderItem(params) {
22810
- var _a, _b, _c, _d, _e;
22859
+ var _a, _b, _c, _d, _e, _f, _g, _h;
22811
22860
  if (this.viewer.isDestroyed()) {
22812
22861
  return null;
22813
22862
  }
@@ -22829,6 +22878,7 @@ var MenuItemManager;
22829
22878
  }
22830
22879
  let rItem = this.items.find(x => x.id == params.item.id);
22831
22880
  let create = true;
22881
+ // Item already exists so we'll check if we should re-create it.
22832
22882
  if (rItem) {
22833
22883
  // This means we're updating a tag menu item.
22834
22884
  // Tag menu items have alternative states based on bookmark settings.
@@ -22877,18 +22927,76 @@ var MenuItemManager;
22877
22927
  create = false;
22878
22928
  }
22879
22929
  }
22930
+ else if (rItem.type == MenuItem.EType.PointCloud && params.item.Type == MenuItem.EType.PointCloud) {
22931
+ if (rItem.renderManager) {
22932
+ create = false;
22933
+ }
22934
+ }
22935
+ else if (rItem.type == MenuItem.EType.ArbTileset && params.item.Type == MenuItem.EType.ArbTileset) {
22936
+ if (rItem.renderManager) {
22937
+ create = false;
22938
+ }
22939
+ }
22940
+ else if (rItem.type == MenuItem.EType.I3sTileset && params.item.Type == MenuItem.EType.I3sTileset) {
22941
+ if (rItem.renderManager) {
22942
+ create = false;
22943
+ }
22944
+ }
22880
22945
  // Re-init in case model-space changed to geo-spatial or vice-versa.
22881
22946
  else if (rItem.type == MenuItem.EType.Assembly && params.item.Type == MenuItem.EType.Assembly) {
22882
22947
  if (rItem.renderManager && rItem.renderManager.ModelSpace == params.modelSpace) {
22883
22948
  create = false;
22884
22949
  }
22885
22950
  }
22951
+ // Updating an existing Google photos tileset.
22952
+ // Eg: different color mask (opacity).
22953
+ else if (rItem.type == MenuItem.EType.GooglePhotoTileset && params.item.Type == MenuItem.EType.GooglePhotoTileset) {
22954
+ if (rItem.renderManager) {
22955
+ rItem.renderManager.Init({
22956
+ item: params.item
22957
+ });
22958
+ rItem.item = params.item;
22959
+ create = false;
22960
+ }
22961
+ }
22962
+ else if (rItem.type == MenuItem.EType.Osm && params.item.Type == MenuItem.EType.Osm) {
22963
+ // If the source is the same then we can re-use the render manager.
22964
+ const oRenderManager = rItem.renderManager;
22965
+ const oItem = params.item;
22966
+ if (oRenderManager && oItem) {
22967
+ if (+oRenderManager.SourceId == +((_b = oItem.BruceEntity) === null || _b === void 0 ? void 0 : _b.SourceId) && oRenderManager.EntityTypeId == ((_c = oItem.BruceEntity) === null || _c === void 0 ? void 0 : _c["EntityType.ID"])) {
22968
+ oRenderManager.Init({
22969
+ item: oItem
22970
+ });
22971
+ rItem.item = params.item;
22972
+ create = false;
22973
+ }
22974
+ }
22975
+ }
22976
+ else if (rItem.type == MenuItem.EType.EntitiesIds && params.item.Type == MenuItem.EType.EntitiesIds) {
22977
+ // Checking for Entity IDs.
22978
+ const eIdsRenderManager = rItem.renderManager;
22979
+ const eIdsItem = params.item;
22980
+ if (eIdsRenderManager && eIdsItem) {
22981
+ const eEntityIds = eIdsRenderManager.EntityIds;
22982
+ const mEntityIds = (_d = eIdsItem.BruceEntity) === null || _d === void 0 ? void 0 : _d.EntityIds;
22983
+ const eEntityIdsStr = eEntityIds ? eEntityIds.join(",") : "";
22984
+ const mEntityIdsStr = mEntityIds ? mEntityIds.join(",") : "";
22985
+ if (eEntityIdsStr == mEntityIdsStr) {
22986
+ eIdsRenderManager.Init({
22987
+ item: eIdsItem
22988
+ });
22989
+ rItem.item = params.item;
22990
+ create = false;
22991
+ }
22992
+ }
22993
+ }
22886
22994
  else if (rItem.type != params.item.Type) {
22887
22995
  create = true;
22888
22996
  }
22889
22997
  if (create) {
22890
22998
  try {
22891
- (_b = rItem.renderManager) === null || _b === void 0 ? void 0 : _b.Dispose();
22999
+ (_e = rItem.renderManager) === null || _e === void 0 ? void 0 : _e.Dispose();
22892
23000
  }
22893
23001
  catch (e) {
22894
23002
  console.error(e);
@@ -22899,7 +23007,7 @@ var MenuItemManager;
22899
23007
  if (create) {
22900
23008
  if (!rItem) {
22901
23009
  rItem = {
22902
- id: (_c = params.item.id) !== null && _c !== void 0 ? _c : ObjectUtils.UId(),
23010
+ id: (_f = params.item.id) !== null && _f !== void 0 ? _f : ObjectUtils.UId(),
22903
23011
  childIds: [],
22904
23012
  item: params.item,
22905
23013
  renderManager: null,
@@ -23098,8 +23206,8 @@ var MenuItemManager;
23098
23206
  rItem.childIds.push(childId);
23099
23207
  }
23100
23208
  }
23101
- if (rItem.renderManager && !((_d = rItem.renderManager) === null || _d === void 0 ? void 0 : _d.Disposed)) {
23102
- (_e = this.onUpdate) === null || _e === void 0 ? void 0 : _e.Trigger({ isEnabling: true, itemId: rItem.id });
23209
+ if (rItem.renderManager && !((_g = rItem.renderManager) === null || _g === void 0 ? void 0 : _g.Disposed)) {
23210
+ (_h = this.onUpdate) === null || _h === void 0 ? void 0 : _h.Trigger({ isEnabling: true, itemId: rItem.id });
23103
23211
  }
23104
23212
  return rItem.id;
23105
23213
  }
@@ -32878,7 +32986,7 @@ class WidgetViewBar extends Widget.AWidget {
32878
32986
  }
32879
32987
  }
32880
32988
 
32881
- const VERSION = "5.8.7";
32989
+ const VERSION = "5.8.8";
32882
32990
 
32883
32991
  export { VERSION, CesiumViewMonitor, ViewerUtils, ViewerEventTracker, MenuItemManager, isOutlineChanged, EntityRenderEngine, EntityRenderEnginePoint, EntityRenderEnginePolyline, EntityRenderEnginePolygon, EntityRenderEngineModel3d, MenuItemCreator, VisualsRegister, RenderManager, EntitiesIdsRenderManager, DataLabRenderManager, EntitiesLoadedRenderManager, EntitiesRenderManager, EntityRenderManager, TilesetCadRenderManager, TilesetArbRenderManager, TilesetEntitiesRenderManager, TilesetOsmRenderManager, TilesetPointcloudRenderManager, TilesetGooglePhotosRenderManager, DataSourceStaticKmlManager, GoogleSearchRenderManager, AssemblyRenderManager, RelationsRenderManager, SharedGetters, CesiumParabola, EntityLabel, ViewRenderEngine, TileRenderEngine, TilesetRenderEngine, CESIUM_INSPECTOR_KEY, CESIUM_TIMELINE_KEY, CESIUM_TIMELINE_LIVE_KEY, CESIUM_TIMELINE_LIVE_PADDING_KEY, CESIUM_TIMELINE_INTERVAL_KEY, DEFAULT_LIVE_PADDING_SECONDS, ViewUtils, DrawingUtils, MeasureUtils, EntityUtils, CesiumEntityStyler, CesiumAnimatedProperty, CesiumAnimatedInOut, Draw3dPolygon, Draw3dPolyline, MeasureCreator, Walkthrough, Widget, VIEWER_BOOKMARKS_WIDGET_KEY, WidgetBookmarks, WidgetBranding, WidgetCursorBar, WidgetEmbeddedInfoView, WidgetInfoView, WidgetNavCompass$$1 as WidgetNavCompass, VIEWER_VIEW_BAR_WIDGET_KEY, WidgetViewBar, WidgetControlViewBar, WidgetControlViewBarSearch, VIEWER_LEFT_PANEL_WIDGET_KEY, VIEWER_LEFT_PANEL_CSS_VAR_LEFT, WidgetLeftPanel, WidgetLeftPanelTab, WidgetLeftPanelTabBookmarks };
32884
32992
  //# sourceMappingURL=bruce-cesium.es5.js.map