bruce-cesium 2.7.5 → 2.7.7

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, Carto, Entity as Entity$1, Geometry, Tileset, MathUtils, LRUCache, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, ObjectUtils, Bounds, EntityRelationType, DelayQueue, BatchedDataGetter, EntityCoords, EntityFilterGetter, EntitySource, MenuItem, EntityRelation, ENVIRONMENT, ProjectView, ProjectViewBookmark, ProjectViewTile, ProjectViewLegacyTile, ProgramKey, Camera, AbstractApi, EntityAttachment, EntityAttachmentType, EntityAttribute } from 'bruce-models';
2
2
  import * as Cesium from 'cesium';
3
- import { Cartographic, Cartesian2, CallbackProperty, Cartesian3, Color, Rectangle, Math as Math$1, JulianDate, SceneMode, Entity, Primitive, Cesium3DTileFeature, HeightReference, DistanceDisplayCondition, NearFarScalar, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, CornerType, ShadowMode, PolygonHierarchy, HeadingPitchRoll, Transforms, ColorBlendMode, Cesium3DTileColorBlendMode, HeadingPitchRange, createOsmBuildings, Cesium3DTileStyle, KmlDataSource, OrthographicFrustum, EasingFunction, EllipsoidTerrainProvider, CesiumInspector, defined, Cesium3DTileset, Matrix4, Matrix3, IonResource, createWorldTerrain, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, EllipsoidGeodesic, sampleTerrainMostDetailed, Model, PolygonPipeline, ColorMaterialProperty, GeometryInstance, ScreenSpaceEventHandler, ScreenSpaceEventType, Ion, BoundingSphere } from 'cesium';
3
+ import { Cartographic, JulianDate, Cartesian2, CallbackProperty, Cartesian3, Color, Rectangle, Math as Math$1, Entity, Primitive, Cesium3DTileFeature, HeightReference, DistanceDisplayCondition, NearFarScalar, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, CornerType, ShadowMode, PolygonHierarchy, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, SceneMode, Cesium3DTileColorBlendMode, HeadingPitchRange, KmlDataSource, Cesium3DTileStyle, EllipsoidTerrainProvider, CesiumInspector, OrthographicFrustum, defined, createOsmBuildings, Cesium3DTileset, Matrix4, Matrix3, IonResource, PolygonPipeline, EasingFunction, EllipsoidGeodesic, sampleTerrainMostDetailed, Model, ColorMaterialProperty, GeometryInstance, createWorldTerrain, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, ScreenSpaceEventHandler, ScreenSpaceEventType, Ion, BoundingSphere } from 'cesium';
4
4
 
5
5
  var TIME_LAG = 300;
6
6
  var POSITION_CHECK_TIMER = 950;
@@ -2647,6 +2647,10 @@ var EntityRenderEngine;
2647
2647
  if (width < 0.01) {
2648
2648
  width = 0;
2649
2649
  }
2650
+ var units = style.lineWidthUnits;
2651
+ if (units != "px" && units != "m") {
2652
+ units = "m";
2653
+ }
2650
2654
  // If both outline and fill is not available then don't render anything.
2651
2655
  if ((width <= 0 || cLineColor.alpha <= 0) &&
2652
2656
  cFillColor.alpha <= 0) {
@@ -2686,7 +2690,7 @@ var EntityRenderEngine;
2686
2690
  classificationType: classification,
2687
2691
  perPositionHeight: heightRef == HeightReference.CLAMP_TO_GROUND ? false : true,
2688
2692
  zIndex: zIndex,
2689
- distanceDisplayCondition: getDisplayCondition(params.minDistance, params.maxDistance, size, true)
2693
+ distanceDisplayCondition: getDisplayCondition(params.minDistance, params.maxDistance, width <= 0 || !cLineColor || units == "m" ? size : null, true)
2690
2694
  },
2691
2695
  position: EntityUtils.GetPos({
2692
2696
  viewer: params.viewer,
@@ -2722,17 +2726,17 @@ var EntityRenderEngine;
2722
2726
  borderPosses = posses.map(function (x) { return x.clone ? x.clone() : __assign({}, x); });
2723
2727
  }
2724
2728
  var cEntityBorder = new Entity({
2725
- // polyline: new Cesium.PolylineGraphics({
2726
- // positions: borderPosses,
2727
- // material: <Cesium.MaterialProperty><any>cLineColor,
2728
- // width: width,
2729
- // clampToGround: heightRef == Cesium.HeightReference.CLAMP_TO_GROUND,
2730
- // classificationType: Cesium.ClassificationType.TERRAIN,
2731
- // arcType: Cesium.ArcType.GEODESIC,
2732
- // zIndex: zIndex,
2733
- // distanceDisplayCondition: getDisplayCondition(params.minDistance, params.maxDistance)
2734
- // }),
2735
- corridor: {
2729
+ polyline: units == "px" ? new PolylineGraphics({
2730
+ positions: borderPosses,
2731
+ material: cLineColor,
2732
+ width: width,
2733
+ clampToGround: heightRef == HeightReference.CLAMP_TO_GROUND,
2734
+ classificationType: ClassificationType.TERRAIN,
2735
+ arcType: ArcType.GEODESIC,
2736
+ zIndex: zIndex,
2737
+ distanceDisplayCondition: getDisplayCondition(params.minDistance, params.maxDistance)
2738
+ }) : null,
2739
+ corridor: units == "m" ? {
2736
2740
  positions: borderPosses,
2737
2741
  material: cLineColor,
2738
2742
  heightReference: heightRef,
@@ -2744,7 +2748,7 @@ var EntityRenderEngine;
2744
2748
  classificationType: classification,
2745
2749
  distanceDisplayCondition: getDisplayCondition(params.minDistance, params.maxDistance, width),
2746
2750
  shadows: ShadowMode.ENABLED
2747
- },
2751
+ } : null,
2748
2752
  show: true
2749
2753
  });
2750
2754
  cEntityBorder._parentEntity = cEntity;
@@ -2753,17 +2757,17 @@ var EntityRenderEngine;
2753
2757
  var posses_1 = holePosses[i];
2754
2758
  Cartes.CloseRing3(posses_1);
2755
2759
  var cEntityHole = new Entity({
2756
- // polyline: new Cesium.PolylineGraphics({
2757
- // positions: posses,
2758
- // material: <Cesium.MaterialProperty><any>cLineColor,
2759
- // width: width,
2760
- // clampToGround: heightRef == Cesium.HeightReference.CLAMP_TO_GROUND,
2761
- // classificationType: Cesium.ClassificationType.TERRAIN,
2762
- // arcType: Cesium.ArcType.GEODESIC,
2763
- // zIndex: zIndex,
2764
- // distanceDisplayCondition: getDisplayCondition(params.minDistance, params.maxDistance)
2765
- // }),
2766
- corridor: {
2760
+ polyline: units == "px" ? new PolylineGraphics({
2761
+ positions: posses_1,
2762
+ material: cLineColor,
2763
+ width: width,
2764
+ clampToGround: heightRef == HeightReference.CLAMP_TO_GROUND,
2765
+ classificationType: ClassificationType.TERRAIN,
2766
+ arcType: ArcType.GEODESIC,
2767
+ zIndex: zIndex,
2768
+ distanceDisplayCondition: getDisplayCondition(params.minDistance, params.maxDistance)
2769
+ }) : null,
2770
+ corridor: units == "m" ? {
2767
2771
  positions: borderPosses,
2768
2772
  material: cLineColor,
2769
2773
  heightReference: heightRef,
@@ -2775,7 +2779,7 @@ var EntityRenderEngine;
2775
2779
  classificationType: classification,
2776
2780
  distanceDisplayCondition: getDisplayCondition(params.minDistance, params.maxDistance, width),
2777
2781
  shadows: ShadowMode.ENABLED,
2778
- },
2782
+ } : null,
2779
2783
  show: true
2780
2784
  });
2781
2785
  cEntity._siblingGraphics.push(cEntityHole);
@@ -8256,6 +8260,7 @@ var TilesetEntitiesRenderManager;
8256
8260
  (function (TilesetEntitiesRenderManager) {
8257
8261
  var Manager = /** @class */ (function () {
8258
8262
  function Manager(params) {
8263
+ this.initCounter = 0;
8259
8264
  this.disposed = false;
8260
8265
  this.cTileset = null;
8261
8266
  var viewer = params.viewer, visualsManager = params.register, apiGetter = params.getters, item = params.item;
@@ -8278,23 +8283,32 @@ var TilesetEntitiesRenderManager;
8278
8283
  enumerable: false,
8279
8284
  configurable: true
8280
8285
  });
8281
- Manager.prototype.Init = function () {
8286
+ Manager.prototype.Init = function (params) {
8282
8287
  var _a;
8283
8288
  return __awaiter(this, void 0, void 0, function () {
8284
- var tilesetId;
8289
+ var counter, tilesetId;
8285
8290
  var _this = this;
8286
8291
  return __generator(this, function (_b) {
8292
+ this.initCounter += 1;
8293
+ counter = this.initCounter;
8294
+ if (this.disposed) {
8295
+ return [2 /*return*/];
8296
+ }
8297
+ if (params === null || params === void 0 ? void 0 : params.item) {
8298
+ this.item = params.item;
8299
+ }
8287
8300
  tilesetId = (_a = this.item.tileset) === null || _a === void 0 ? void 0 : _a.TilesetID;
8288
8301
  if (!tilesetId) {
8289
8302
  return [2 /*return*/];
8290
8303
  }
8291
8304
  (function () { return __awaiter(_this, void 0, void 0, function () {
8292
- var canAccess, e_1, accountId, api, tileset, cTileset, _a;
8305
+ var canAccess, e_1, accountId, api, tileset, cTileset, _a, attenuation, attenuationMax;
8293
8306
  var _this = this;
8294
8307
  var _b, _c, _d;
8295
8308
  return __generator(this, function (_e) {
8296
8309
  switch (_e.label) {
8297
8310
  case 0:
8311
+ if (!!this.cTileset) return [3 /*break*/, 9];
8298
8312
  if (!tilesetId) return [3 /*break*/, 5];
8299
8313
  canAccess = false;
8300
8314
  _e.label = 1;
@@ -8323,6 +8337,9 @@ var TilesetEntitiesRenderManager;
8323
8337
  console.warn("No tileset id found. Skipping access check.");
8324
8338
  _e.label = 6;
8325
8339
  case 6:
8340
+ if (this.disposed || counter !== this.initCounter) {
8341
+ return [2 /*return*/];
8342
+ }
8326
8343
  accountId = (_d = this.item.tileset) === null || _d === void 0 ? void 0 : _d.ClientAccountID;
8327
8344
  if (!accountId) {
8328
8345
  accountId = this.getters.GetAccountId();
@@ -8336,7 +8353,7 @@ var TilesetEntitiesRenderManager;
8336
8353
  })];
8337
8354
  case 7:
8338
8355
  tileset = (_e.sent()).tileset;
8339
- if (!tileset || this.disposed) {
8356
+ if (!tileset || this.disposed || counter !== this.initCounter) {
8340
8357
  return [2 /*return*/];
8341
8358
  }
8342
8359
  this.typeId = tileset.settings.entityTypeId;
@@ -8370,6 +8387,25 @@ var TilesetEntitiesRenderManager;
8370
8387
  cTileset.tileLoad.addEventListener(function (tile) {
8371
8388
  _this.mapCTile(tile);
8372
8389
  });
8390
+ _e.label = 9;
8391
+ case 9:
8392
+ attenuation = this.item.attenuation;
8393
+ if (!attenuation && attenuation != false) {
8394
+ attenuation = true;
8395
+ }
8396
+ attenuationMax = this.item.attenuationMax;
8397
+ if (isNaN(attenuationMax)) {
8398
+ attenuationMax = 20;
8399
+ }
8400
+ this.cTileset.readyPromise.then(function () {
8401
+ TilesetRenderEngine.ApplySettings({
8402
+ cTileset: _this.cTileset,
8403
+ settings: {
8404
+ attenuation: attenuation,
8405
+ maximumAttenuation: attenuationMax
8406
+ }
8407
+ });
8408
+ });
8373
8409
  return [2 /*return*/];
8374
8410
  }
8375
8411
  });
@@ -9396,6 +9432,14 @@ var MenuItemManager;
9396
9432
  rItem.item = params.item;
9397
9433
  }
9398
9434
  }
9435
+ // This means we're updating a entities tileset menu item.
9436
+ // These have different point scaling settings based on bookmark settings.
9437
+ else if (rItem.type == MenuItem.EType.EntityTileset && params.item.Type == MenuItem.EType.EntityTileset) {
9438
+ rItem.renderManager.Init({
9439
+ item: params.item,
9440
+ });
9441
+ rItem.item = params.item;
9442
+ }
9399
9443
  }
9400
9444
  else {
9401
9445
  rItem = {
@@ -10067,7 +10111,7 @@ var MenuItemCreator;
10067
10111
  renderedItemIds = [];
10068
10112
  if (!((menuItems === null || menuItems === void 0 ? void 0 : menuItems.length) && (enabledIds === null || enabledIds === void 0 ? void 0 : enabledIds.length))) return [3 /*break*/, 10];
10069
10113
  traverseItems_1 = function (item) { return __awaiter(_this, void 0, void 0, function () {
10070
- var eItem, eItemAlt, itemId, i;
10114
+ var eItem, eItemAlt, tItem, tItemAlt, itemId, i;
10071
10115
  var _a;
10072
10116
  return __generator(this, function (_b) {
10073
10117
  switch (_b.label) {
@@ -10082,6 +10126,12 @@ var MenuItemCreator;
10082
10126
  eItem.BruceEntity = __assign(__assign({}, eItem.BruceEntity), { SelectedExpandLayers: (_a = eItemAlt.BruceEntity) === null || _a === void 0 ? void 0 : _a.SelectedExpandLayers });
10083
10127
  }
10084
10128
  }
10129
+ else if (item.Type == MenuItem.EType.EntityTileset) {
10130
+ tItem = item;
10131
+ tItemAlt = alternations[item.id];
10132
+ tItem.attenuation = tItemAlt.attenuation;
10133
+ tItem.attenuationMax = tItemAlt.attenuationMax;
10134
+ }
10085
10135
  }
10086
10136
  if (!enabledIds.includes(item.id)) return [3 /*break*/, 2];
10087
10137
  return [4 /*yield*/, manager.RenderItem({
@@ -15243,7 +15293,7 @@ var ViewerUtils;
15243
15293
  ViewerUtils.CreateWidgets = CreateWidgets;
15244
15294
  })(ViewerUtils || (ViewerUtils = {}));
15245
15295
 
15246
- var VERSION$1 = "2.7.5";
15296
+ var VERSION$1 = "2.7.7";
15247
15297
 
15248
15298
  export { VERSION$1 as VERSION, CesiumViewMonitor, ViewerUtils, MenuItemManager, EntityRenderEngine, MenuItemCreator, VisualsRegister, RenderManager, EntitiesIdsRenderManager, EntitiesLoadedRenderManager, EntitiesRenderManager, EntityRenderManager, TilesetCadRenderManager, TilesetArbRenderManager, TilesetEntitiesRenderManager, TilesetOsmRenderManager, TilesetPointcloudRenderManager, TilesetGooglePhotosRenderManager, DataSourceStaticKmlManager, RelationsRenderManager, SharedGetters, CesiumParabola, ViewRenderEngine, TileRenderEngine, TilesetRenderEngine, CESIUM_INSPECTOR_KEY, ViewUtils, DrawingUtils, MeasureUtils, EntityUtils, Draw3dPolygon, Draw3dPolyline };
15249
15299
  //# sourceMappingURL=bruce-cesium.es5.js.map