bruce-cesium 3.2.2 → 3.2.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.
@@ -1,6 +1,6 @@
1
1
  import { Cartes, ProjectViewTile, Carto, Entity as Entity$1, Geometry, Tileset, MathUtils, LRUCache, DelayQueue, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, ObjectUtils, Bounds, EntityRelationType, BruceEvent, EntityCoords, Api, EntitySource, MenuItem, EntityRelation, ProgramKey, ENVIRONMENT, AbstractApi, ProjectViewBookmark, EntityAttachment, EntityAttachmentType, EntityAttribute, ProjectView, ProjectViewLegacyTile, Camera } from 'bruce-models';
2
2
  import * as Cesium from 'cesium';
3
- import { Cartographic, Cartesian2, Math as Math$1, Cartesian3, CallbackProperty, Color, HeightReference, Rectangle, JulianDate, DistanceDisplayCondition, NearFarScalar, Model, Entity, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, CornerType, ShadowMode, PolygonHierarchy, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Primitive, Cesium3DTileFeature, SceneMode, HeadingPitchRange, Cesium3DTileColorBlendMode, KmlDataSource, Ion, Cesium3DTileStyle, SceneTransforms, OrthographicFrustum, EasingFunction, EllipsoidGeodesic, EllipsoidTerrainProvider, sampleTerrainMostDetailed, defined, Cesium3DTileset, Matrix4, Matrix3, IonResource, PolygonPipeline, CesiumInspector, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, CesiumTerrainProvider, ColorMaterialProperty, BoundingSphere, GeometryInstance, ScreenSpaceEventHandler, ScreenSpaceEventType, Intersect } from 'cesium';
3
+ import { Cartographic, Cartesian2, Math as Math$1, Cartesian3, CallbackProperty, Color, HeightReference, Rectangle, SceneMode, JulianDate, Entity, Primitive, Cesium3DTileFeature, DistanceDisplayCondition, NearFarScalar, Model, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, CornerType, ShadowMode, PolygonHierarchy, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Cesium3DTileColorBlendMode, HeadingPitchRange, Ion, Cesium3DTileStyle, KmlDataSource, SceneTransforms, OrthographicFrustum, EasingFunction, EllipsoidTerrainProvider, CesiumInspector, defined, EllipsoidGeodesic, sampleTerrainMostDetailed, Cesium3DTileset, Matrix4, Matrix3, IonResource, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, CesiumTerrainProvider, ScreenSpaceEventHandler, ScreenSpaceEventType, ColorMaterialProperty, BoundingSphere, GeometryInstance, PolygonPipeline, Intersect } from 'cesium';
4
4
 
5
5
  /*! *****************************************************************************
6
6
  Copyright (c) Microsoft Corporation. All rights reserved.
@@ -973,43 +973,20 @@ var EntityUtils;
973
973
  });
974
974
  }); };
975
975
  getEntityPositions = function (sample) { return __awaiter(_this, void 0, void 0, function () {
976
- var entityId, entity, tileset, tilesetId, e_1, evaluateRendered, evaluateRecord, renderedPosses, recordPosses, e_2, tSettings, pos3d, alt, alt, heading, pitch, roll, matrix4, offset, m1, hpr, transform, transformedOffset;
976
+ var entityId, entity, tileset, tilesetId, evaluateRendered, evaluateRecord, renderedPosses, e_1, recordPosses, e_2, tSettings, pos3d, alt, alt, heading, pitch, roll, matrix4, offset, m1, hpr, transform, transformedOffset;
977
977
  var _this = this;
978
978
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
979
979
  return __generator(this, function (_l) {
980
980
  switch (_l.label) {
981
981
  case 0:
982
982
  entityId = sample.entityId, entity = sample.entity, tileset = sample.tileset, tilesetId = sample.tilesetId;
983
- if (!!entity) return [3 /*break*/, 4];
984
- if (!(apiCalls < MAX_API_CALLS)) return [3 /*break*/, 4];
985
- apiCalls += 1;
986
- _l.label = 1;
987
- case 1:
988
- _l.trys.push([1, 3, , 4]);
989
- return [4 /*yield*/, Entity$1.Get({
990
- api: api,
991
- entityId: entityId,
992
- // Not expanding relative positions at first to see if the entity has valid location just by itself.
993
- expandLocation: false
994
- })];
995
- case 2:
996
- entity = (_l.sent()).entity;
997
- return [3 /*break*/, 4];
998
- case 3:
999
- e_1 = _l.sent();
1000
- console.error(e_1);
1001
- return [3 /*break*/, 4];
1002
- case 4:
1003
- if (!entity) {
1004
- return [2 /*return*/, []];
1005
- }
1006
983
  evaluateRendered = function () { return __awaiter(_this, void 0, void 0, function () {
1007
- var rego, posses, visual, visualHeightRef, hierarchy, hPosses, hPossesSample, step, i, pPosses, pPossesSample, step, i, pPosses, pPossesSample, step, i, pos3d_1, modelExt, sphere;
984
+ var rego, posses, visual, visualHeightRef, hierarchy, hPosses, hPossesSample, step, i, pPosses, pPossesSample, step, i, pPosses, pPossesSample, step, i, pos3d_1, toAdjust, modelExt, sphere;
1008
985
  return __generator(this, function (_a) {
1009
986
  switch (_a.label) {
1010
987
  case 0:
1011
988
  rego = visualRegister ? visualRegister.GetRego({
1012
- entityId: entity.Bruce.ID,
989
+ entityId: sample.entityId,
1013
990
  }) : null;
1014
991
  posses = [];
1015
992
  if (!((rego === null || rego === void 0 ? void 0 : rego.visual) instanceof Entity)) return [3 /*break*/, 14];
@@ -1087,15 +1064,11 @@ var EntityUtils;
1087
1064
  case 12:
1088
1065
  pos3d_1 = GetValue(viewer, visual.position);
1089
1066
  if (!(pos3d_1 === null || pos3d_1 === void 0 ? void 0 : pos3d_1.x)) return [3 /*break*/, 14];
1090
- pos3d_1 = DrawingUtils.EnsurePosHeight({
1091
- desiredHeightRef: sample.returnHeightRef,
1092
- heightRef: visualHeightRef,
1093
- pos3d: pos3d_1,
1094
- viewer: viewer
1095
- });
1096
- return [4 /*yield*/, processPosHeight(pos3d_1, sample.returnHeightRef)];
1067
+ toAdjust = [pos3d_1];
1068
+ return [4 /*yield*/, ensureHeightRefs(toAdjust, __assign(__assign({}, sample), { heightRef: visualHeightRef }))];
1097
1069
  case 13:
1098
- pos3d_1 = _a.sent();
1070
+ _a.sent();
1071
+ pos3d_1 = toAdjust[0];
1099
1072
  posses.push(pos3d_1);
1100
1073
  if (visual.model) {
1101
1074
  modelExt = visual.model;
@@ -1180,11 +1153,34 @@ var EntityUtils;
1180
1153
  });
1181
1154
  }); };
1182
1155
  return [4 /*yield*/, evaluateRendered()];
1183
- case 5:
1156
+ case 1:
1184
1157
  renderedPosses = _l.sent();
1185
1158
  if (renderedPosses === null || renderedPosses === void 0 ? void 0 : renderedPosses.length) {
1186
1159
  return [2 /*return*/, renderedPosses];
1187
1160
  }
1161
+ if (!!entity) return [3 /*break*/, 5];
1162
+ if (!(apiCalls < MAX_API_CALLS)) return [3 /*break*/, 5];
1163
+ apiCalls += 1;
1164
+ _l.label = 2;
1165
+ case 2:
1166
+ _l.trys.push([2, 4, , 5]);
1167
+ return [4 /*yield*/, Entity$1.Get({
1168
+ api: api,
1169
+ entityId: entityId,
1170
+ // Not expanding relative positions at first to see if the entity has valid location just by itself.
1171
+ expandLocation: false
1172
+ })];
1173
+ case 3:
1174
+ entity = (_l.sent()).entity;
1175
+ return [3 /*break*/, 5];
1176
+ case 4:
1177
+ e_1 = _l.sent();
1178
+ console.error(e_1);
1179
+ return [3 /*break*/, 5];
1180
+ case 5:
1181
+ if (!entity) {
1182
+ return [2 /*return*/, []];
1183
+ }
1188
1184
  return [4 /*yield*/, evaluateRecord()];
1189
1185
  case 6:
1190
1186
  recordPosses = _l.sent();
@@ -3006,24 +3002,27 @@ function getModelEntity(url, scale) {
3006
3002
  return __awaiter(this, void 0, void 0, function () {
3007
3003
  var CESIUM;
3008
3004
  return __generator(this, function (_a) {
3009
- CESIUM = Cesium;
3010
- // Newer versions of Cesium have a fromGltfAsync method.
3011
- if (CESIUM.Model.hasOwnProperty("fromGltfAsync")) {
3012
- return [2 /*return*/, CESIUM.Model.fromGltfAsync({
3013
- url: url,
3014
- asynchronous: true,
3015
- scale: scale
3016
- })];
3017
- }
3018
- // Older versions of Cesium have a fromGltf method.
3019
- else if (Model.hasOwnProperty("fromGltf")) {
3020
- return [2 /*return*/, CESIUM.Model.fromGltf({
3021
- url: url,
3022
- asynchronous: true,
3023
- scale: scale
3024
- })];
3025
- }
3026
- return [2 /*return*/, null];
3005
+ switch (_a.label) {
3006
+ case 0:
3007
+ CESIUM = Cesium;
3008
+ if (!CESIUM.Model.hasOwnProperty("fromGltfAsync")) return [3 /*break*/, 2];
3009
+ return [4 /*yield*/, CESIUM.Model.fromGltfAsync({
3010
+ url: url,
3011
+ asynchronous: true,
3012
+ scale: scale
3013
+ })];
3014
+ case 1: return [2 /*return*/, _a.sent()];
3015
+ case 2:
3016
+ if (Model.hasOwnProperty("fromGltf")) {
3017
+ return [2 /*return*/, CESIUM.Model.fromGltf({
3018
+ url: url,
3019
+ asynchronous: true,
3020
+ scale: scale
3021
+ })];
3022
+ }
3023
+ _a.label = 3;
3024
+ case 3: return [2 /*return*/, null];
3025
+ }
3027
3026
  });
3028
3027
  });
3029
3028
  }
@@ -4082,7 +4081,7 @@ var EntityRenderEngine;
4082
4081
  var heightProm = _fileRadiusCache.Get(fileRadiusKey);
4083
4082
  if (!heightProm) {
4084
4083
  heightProm = new Promise(function (res) { return __awaiter(_this, void 0, void 0, function () {
4085
- var modelPrim_1, e_6;
4084
+ var modelPrim_1, onReady_1, readyEventRemoval_1, e_6;
4086
4085
  return __generator(this, function (_a) {
4087
4086
  switch (_a.label) {
4088
4087
  case 0:
@@ -4090,7 +4089,9 @@ var EntityRenderEngine;
4090
4089
  return [4 /*yield*/, getModelEntity(params.lodUrl, scale * styleScale)];
4091
4090
  case 1:
4092
4091
  modelPrim_1 = _a.sent();
4093
- modelPrim_1.readyPromise.then(function (loaded) {
4092
+ onReady_1 = function () {
4093
+ readyEventRemoval_1 === null || readyEventRemoval_1 === void 0 ? void 0 : readyEventRemoval_1();
4094
+ readyEventRemoval_1 = null;
4094
4095
  var kill = function () {
4095
4096
  if (params.viewer && !params.viewer.isDestroyed() && params.viewer.scene.primitives.contains(modelPrim_1)) {
4096
4097
  params.viewer.scene.primitives.remove(modelPrim_1);
@@ -4099,13 +4100,13 @@ var EntityRenderEngine;
4099
4100
  modelPrim_1.destroy();
4100
4101
  }
4101
4102
  };
4102
- if (!cEntity || !(loaded === null || loaded === void 0 ? void 0 : loaded.boundingSphere)) {
4103
+ if (!cEntity || !(modelPrim_1 === null || modelPrim_1 === void 0 ? void 0 : modelPrim_1.boundingSphere)) {
4103
4104
  kill();
4104
4105
  res(null);
4105
4106
  return;
4106
4107
  }
4107
- var radius = loaded.boundingSphere.radius;
4108
- var centerOffset = loaded.boundingSphere.center;
4108
+ var radius = modelPrim_1.boundingSphere.radius;
4109
+ var centerOffset = modelPrim_1.boundingSphere.center;
4109
4110
  if (centerOffset) {
4110
4111
  // Add the center offset to the radius because I am not good at math.
4111
4112
  var magnitude = Cartesian3.magnitude(centerOffset);
@@ -4118,10 +4119,21 @@ var EntityRenderEngine;
4118
4119
  }
4119
4120
  kill();
4120
4121
  res(radius);
4121
- }).catch(function (e) {
4122
- console.error(e);
4123
- res(null);
4124
- });
4122
+ };
4123
+ readyEventRemoval_1 = null;
4124
+ // Newer Cesium versions have readyEvent. They don't use readyPromise.
4125
+ if (modelPrim_1["readyEvent"]) {
4126
+ modelPrim_1["readyEvent"].addEventListener(onReady_1);
4127
+ }
4128
+ // Older Cesium versions don't have readyEvent, they use readyPromise.
4129
+ else if (modelPrim_1["readyPromise"]) {
4130
+ modelPrim_1["readyPromise"].then(function () {
4131
+ onReady_1();
4132
+ }).catch(function (e) {
4133
+ console.error(e);
4134
+ res(null);
4135
+ });
4136
+ }
4125
4137
  params.viewer.scene.primitives.add(modelPrim_1);
4126
4138
  return [3 /*break*/, 3];
4127
4139
  case 2:
@@ -19399,7 +19411,7 @@ var CesiumViewMonitor;
19399
19411
  CesiumViewMonitor$$1.Monitor = Monitor;
19400
19412
  })(CesiumViewMonitor || (CesiumViewMonitor = {}));
19401
19413
 
19402
- var VERSION$1 = "3.2.2";
19414
+ var VERSION$1 = "3.2.4";
19403
19415
 
19404
19416
  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, EntityLabel, ViewRenderEngine, TileRenderEngine, TilesetRenderEngine, CESIUM_INSPECTOR_KEY, ViewUtils, DrawingUtils, MeasureUtils, EntityUtils, Draw3dPolygon, Draw3dPolyline };
19405
19417
  //# sourceMappingURL=bruce-cesium.es5.js.map