bruce-cesium 3.2.6 → 3.2.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
- 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';
1
+ import { Cartes, Carto, Entity as Entity$1, Geometry, Tileset, MathUtils, LRUCache, ProjectViewTile, 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, Cesium3DTileColorBlendMode, HeadingPitchRange, Ion, Cesium3DTileStyle, KmlDataSource, SceneTransforms, OrthographicFrustum, EasingFunction, EllipsoidTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, CesiumTerrainProvider, EllipsoidGeodesic, sampleTerrainMostDetailed, defined, Cesium3DTileset, CesiumInspector, Matrix4, Matrix3, IonResource, PolygonPipeline, BoundingSphere, GeometryInstance, ScreenSpaceEventHandler, ScreenSpaceEventType, Intersect, ModelGraphics, PolygonGraphics, CorridorGraphics, PointGraphics, BillboardGraphics, EllipseGraphics, ColorMaterialProperty } from 'cesium';
3
+ import { Cartographic, JulianDate, Cartesian2, Math as Math$1, Cartesian3, CallbackProperty, Color, HeightReference, Rectangle, DistanceDisplayCondition, NearFarScalar, Model, Entity, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, CornerType, ShadowMode, PolygonHierarchy, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, SceneMode, Primitive, Cesium3DTileFeature, Cesium3DTileColorBlendMode, HeadingPitchRange, Ion, Cesium3DTileStyle, KmlDataSource, SceneTransforms, EllipsoidTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, CesiumTerrainProvider, CesiumInspector, OrthographicFrustum, defined, EasingFunction, Cesium3DTileset, Matrix4, Matrix3, IonResource, EllipsoidGeodesic, sampleTerrainMostDetailed, PolygonPipeline, ScreenSpaceEventHandler, ScreenSpaceEventType, BoundingSphere, GeometryInstance, Intersect, ModelGraphics, PolygonGraphics, CorridorGraphics, PointGraphics, BillboardGraphics, EllipseGraphics, ColorMaterialProperty } from 'cesium';
4
4
 
5
5
  /*! *****************************************************************************
6
6
  Copyright (c) Microsoft Corporation. All rights reserved.
@@ -484,213 +484,6 @@ var DrawingUtils;
484
484
  DrawingUtils.RaisePos3d = RaisePos3d;
485
485
  })(DrawingUtils || (DrawingUtils = {}));
486
486
 
487
- var CESIUM_INSPECTOR_KEY = "_nextspace_inspector";
488
- var ViewUtils;
489
- (function (ViewUtils) {
490
- function GatherLegacyMapTiles(params) {
491
- var viewer = params.viewer;
492
- var collection = viewer.imageryLayers;
493
- var tiles = [];
494
- for (var i = 0; i < collection.length; i++) {
495
- var layer = collection.get(i);
496
- if (layer._bName) {
497
- tiles.push({
498
- alpha: layer.alpha,
499
- brightness: layer.brightness,
500
- contrast: layer.contrast,
501
- hue: layer.hue,
502
- saturation: layer.saturation,
503
- gamma: layer.gamma,
504
- title: layer._bName,
505
- });
506
- }
507
- }
508
- return {
509
- imagery: tiles.reverse()
510
- };
511
- }
512
- ViewUtils.GatherLegacyMapTiles = GatherLegacyMapTiles;
513
- function GatherLegacyTerrainTile(params) {
514
- var viewer = params.viewer;
515
- var enabled = viewer.terrainProvider;
516
- if (enabled === null || enabled === void 0 ? void 0 : enabled._bName) {
517
- return {
518
- terrain: enabled._bName
519
- };
520
- }
521
- return {
522
- terrain: "flatterrain"
523
- };
524
- }
525
- ViewUtils.GatherLegacyTerrainTile = GatherLegacyTerrainTile;
526
- function GatherMapTiles(params) {
527
- var viewer = params.viewer;
528
- var imagery = viewer.imageryLayers;
529
- var tiles = [];
530
- var _loop_1 = function (i) {
531
- var provider = imagery.get(i);
532
- if (provider._bMeta) {
533
- var idCombo_1 = provider._bMeta.accountId + provider._bMeta.tilesetId;
534
- if (!tiles.find(function (x) { return x.accountId + x.tilesetId === idCombo_1; })) {
535
- tiles.push({
536
- accountId: provider._bMeta.accountId,
537
- tilesetId: provider._bMeta.tilesetId,
538
- alpha: provider.alpha,
539
- brightness: provider.brightness,
540
- contrast: provider.contrast,
541
- hue: provider.hue,
542
- saturation: provider.saturation,
543
- gamma: provider.gamma
544
- });
545
- }
546
- }
547
- };
548
- for (var i = 0; i < imagery.length; i++) {
549
- _loop_1(i);
550
- }
551
- return {
552
- imagery: tiles
553
- };
554
- }
555
- ViewUtils.GatherMapTiles = GatherMapTiles;
556
- function GatherTerrainTile(params) {
557
- var viewer = params.viewer;
558
- var provider = viewer.terrainProvider;
559
- if (provider === null || provider === void 0 ? void 0 : provider._bMeta) {
560
- return {
561
- terrain: {
562
- accountId: provider._bMeta.accountId,
563
- tilesetId: provider._bMeta.tilesetId,
564
- }
565
- };
566
- }
567
- else if (provider instanceof EllipsoidTerrainProvider) {
568
- return {
569
- terrain: {
570
- tilesetId: ProjectViewTile.EDefaultTerrain.FlatTerrain,
571
- accountId: null
572
- }
573
- };
574
- }
575
- return null;
576
- }
577
- ViewUtils.GatherTerrainTile = GatherTerrainTile;
578
- function SetTerrainWireframeStatus(params) {
579
- if (!params.viewer[CESIUM_INSPECTOR_KEY]) {
580
- var InspectorClass = CesiumInspector;
581
- if (InspectorClass) {
582
- var inspector = new InspectorClass(document.createElement("div"), params.viewer.scene);
583
- inspector.container.style.display = "none";
584
- params.viewer[CESIUM_INSPECTOR_KEY] = inspector;
585
- params.viewer.scene.requestRender();
586
- }
587
- }
588
- if (params.viewer[CESIUM_INSPECTOR_KEY]) {
589
- params.viewer[CESIUM_INSPECTOR_KEY].viewModel.wireframe = params.status;
590
- }
591
- }
592
- ViewUtils.SetTerrainWireframeStatus = SetTerrainWireframeStatus;
593
- function GetTerrainWireframeStatus(params) {
594
- var _a, _b;
595
- if (!params.viewer[CESIUM_INSPECTOR_KEY]) {
596
- return false;
597
- }
598
- return (_b = (_a = params.viewer[CESIUM_INSPECTOR_KEY]) === null || _a === void 0 ? void 0 : _a.viewModel) === null || _b === void 0 ? void 0 : _b.wireframe;
599
- }
600
- ViewUtils.GetTerrainWireframeStatus = GetTerrainWireframeStatus;
601
- /**
602
- * Changes between perspective and orthographic view.
603
- * When Cesium stops being bad at picking positions in 2d mode we'll use the flat earth mode instead.
604
- * @param params
605
- */
606
- function Set2dStatus(params) {
607
- var viewer = params.viewer, is2d = params.status, moveCamera = params.moveCamera;
608
- var curLens2d = viewer.camera.frustum instanceof OrthographicFrustum;
609
- if (curLens2d && !is2d) {
610
- viewer.camera.switchToPerspectiveFrustum();
611
- viewer.scene.screenSpaceCameraController.enableTilt = true;
612
- viewer.scene.requestRender();
613
- }
614
- else if (!curLens2d && is2d) {
615
- viewer.camera.switchToOrthographicFrustum();
616
- viewer.scene.screenSpaceCameraController.enableTilt = false;
617
- if (moveCamera != false) {
618
- try {
619
- // Face camera downwards to make it look 2d.
620
- // We want to try make it look at the center-point of the current view.
621
- // If center cannot be calculated then we'll simply raise the camera and face it downwards.
622
- var scene = viewer.scene;
623
- var windowPosition = new Cartesian2(scene.canvas.clientWidth / 2, scene.canvas.clientHeight / 2);
624
- var ray = viewer.camera.getPickRay(windowPosition);
625
- var intersection = scene.globe.pick(ray, scene);
626
- var center = void 0;
627
- if (defined(intersection)) {
628
- center = Cartographic.fromCartesian(intersection);
629
- }
630
- // Use current camera position if we can't calculate the center.
631
- else {
632
- center = Cartographic.fromCartesian(viewer.camera.position);
633
- center.height = 0;
634
- }
635
- center.height = viewer.camera.positionCartographic.height + 100;
636
- viewer.camera.setView({
637
- destination: Cartographic.toCartesian(center),
638
- orientation: {
639
- heading: 0.0,
640
- pitch: Math$1.toRadians(-90.0),
641
- roll: 0.0
642
- }
643
- });
644
- }
645
- catch (e) {
646
- console.error(e);
647
- }
648
- }
649
- viewer.scene.requestRender();
650
- }
651
- }
652
- ViewUtils.Set2dStatus = Set2dStatus;
653
- function Get2dStatus(params) {
654
- var viewer = params.viewer;
655
- return viewer.camera.frustum instanceof OrthographicFrustum;
656
- }
657
- ViewUtils.Get2dStatus = Get2dStatus;
658
- function SetLockedCameraStatus(params) {
659
- var viewer = params.viewer, status = params.status;
660
- var scene = viewer === null || viewer === void 0 ? void 0 : viewer.scene;
661
- if (!scene) {
662
- return;
663
- }
664
- if (status) {
665
- scene.screenSpaceCameraController.enableInputs = false;
666
- scene.screenSpaceCameraController.enableTranslate = false;
667
- scene.screenSpaceCameraController.enableZoom = false;
668
- scene.screenSpaceCameraController.enableRotate = false;
669
- scene.screenSpaceCameraController.enableTilt = false;
670
- }
671
- else {
672
- scene.screenSpaceCameraController.enableInputs = true;
673
- scene.screenSpaceCameraController.enableTranslate = true;
674
- scene.screenSpaceCameraController.enableZoom = true;
675
- scene.screenSpaceCameraController.enableRotate = true;
676
- if (!ViewUtils.Get2dStatus({ viewer: viewer })) {
677
- scene.screenSpaceCameraController.enableTilt = true;
678
- }
679
- }
680
- viewer.scene.requestRender();
681
- }
682
- ViewUtils.SetLockedCameraStatus = SetLockedCameraStatus;
683
- function GetLockedCameraStatus(params) {
684
- var _a;
685
- var scene = (_a = params.viewer) === null || _a === void 0 ? void 0 : _a.scene;
686
- if (!scene) {
687
- return false;
688
- }
689
- return !scene.screenSpaceCameraController.enableTranslate;
690
- }
691
- ViewUtils.GetLockedCameraStatus = GetLockedCameraStatus;
692
- })(ViewUtils || (ViewUtils = {}));
693
-
694
487
  /**
695
488
  * Returns if a given visual can be styled by this utility.
696
489
  * @param viewer
@@ -813,6 +606,11 @@ function getColor(viewer, key, graphic) {
813
606
  if (!color) {
814
607
  if (key == "default") {
815
608
  color = calculateCurColor(viewer, graphic);
609
+ // We'll only store the default color.
610
+ // Rest can be retrieved every time to get the latest setting value.
611
+ if (color) {
612
+ storeColor(viewer, key, color, graphic);
613
+ }
816
614
  }
817
615
  else if (key == "select") {
818
616
  color = _selectColor;
@@ -820,9 +618,6 @@ function getColor(viewer, key, graphic) {
820
618
  else if (key == "highlight") {
821
619
  color = _highlightColor;
822
620
  }
823
- if (color) {
824
- storeColor(viewer, key, color, graphic);
825
- }
826
621
  }
827
622
  return color;
828
623
  }
@@ -1309,6 +1104,81 @@ function GetValue(viewer, obj) {
1309
1104
  }
1310
1105
  return obj;
1311
1106
  }
1107
+ /**
1108
+ * Returns location information from a given tileset feature.
1109
+ * This works well with OSM.
1110
+ * @param feature
1111
+ * @returns
1112
+ */
1113
+ var getLocationFromFeature = function (feature) {
1114
+ var _a;
1115
+ var prepareLatitude = function (propName, value) {
1116
+ value = +value;
1117
+ // Check to see if the lat is in valid degrees, if not, try convert from radians.
1118
+ if (value < -90 || value > 90) {
1119
+ value = Math$1.toDegrees(value);
1120
+ }
1121
+ // If the value is really small we'll assume it's in radians.
1122
+ // "cesium#blah" properties are always in degrees. No need to check.
1123
+ if (value < 0.9 && !propName.startsWith("cesium#")) {
1124
+ value = Math$1.toDegrees(value);
1125
+ }
1126
+ return value;
1127
+ };
1128
+ var prepareLongitude = function (propName, value) {
1129
+ value = +value;
1130
+ // Check to see if the lon is in valid degrees, if not, try convert from radians.
1131
+ if (value < -180 || value > 180) {
1132
+ value = Math$1.toDegrees(value);
1133
+ }
1134
+ // If the value is really small we'll assume it's in radians.
1135
+ // "cesium#blah" properties are always in degrees. No need to check.
1136
+ if (value < 0.9 && !propName.startsWith("cesium#")) {
1137
+ value = Math$1.toDegrees(value);
1138
+ }
1139
+ return value;
1140
+ };
1141
+ var result = {
1142
+ location: {
1143
+ latitude: null,
1144
+ longitude: null,
1145
+ altitude: 0
1146
+ },
1147
+ isClamped: true,
1148
+ radius: null
1149
+ };
1150
+ // 'getPropertyIds' = new version of Cesium, 'getPropertyNames' = old version.
1151
+ var featureAny = feature;
1152
+ var propertyNames = featureAny.getPropertyNames ? featureAny.getPropertyNames() : (_a = featureAny.getPropertyIds) === null || _a === void 0 ? void 0 : _a.call(featureAny);
1153
+ propertyNames = [].concat(propertyNames);
1154
+ for (var i = 0; i < propertyNames.length; i++) {
1155
+ var propName = propertyNames[i];
1156
+ var propLower = propName.toLowerCase();
1157
+ if (propLower.includes("latitude")) {
1158
+ result.location.latitude = prepareLatitude(propName, feature.getProperty(propName));
1159
+ continue;
1160
+ }
1161
+ if (propLower.includes("longitude")) {
1162
+ result.location.longitude = prepareLongitude(propName, feature.getProperty(propName));
1163
+ continue;
1164
+ }
1165
+ if (propLower.includes("height")) {
1166
+ result.radius = +feature.getProperty(propName);
1167
+ continue;
1168
+ }
1169
+ if (propLower.includes("terrain")) {
1170
+ result.location.altitude = +feature.getProperty(propName);
1171
+ if (!result.location.altitude) {
1172
+ result.location.altitude = 0;
1173
+ }
1174
+ continue;
1175
+ }
1176
+ }
1177
+ if (result.location.latitude == null || result.location.longitude == null) {
1178
+ return null;
1179
+ }
1180
+ return result;
1181
+ };
1312
1182
  var EntityUtils;
1313
1183
  (function (EntityUtils) {
1314
1184
  /**
@@ -1318,12 +1188,11 @@ var EntityUtils;
1318
1188
  * @param params
1319
1189
  */
1320
1190
  function GetLocation(params) {
1321
- var _a;
1322
1191
  return __awaiter(this, void 0, void 0, function () {
1323
- var api, viewer, samples, visualRegister, minimumAlt, paddingAlt, MAX_DISTANCE_BETWEEN_SAMPLES, MAX_TERRAIN_SAMPLES, terrainSamples, MAX_API_CALLS, apiCalls, MAX_VALID_SAMPLES, validSamples, MIN_RECT_DIAGONAL_LENGTH, data, spheres, processPosHeight, ensureHeightRefs, getEntityPositions, allPosses, i, sample, samplePosses, valid, j, samplePos, k, allPos, distance, rect, factor, marginX, marginY, diagonalLen, terrData, posCarto, height, MIN_POSSES_LEN, allPointSphere, rectSphere, combinedSphere;
1192
+ var api, viewer, samples, visualRegister, minimumAlt, paddingAlt, MAX_DISTANCE_BETWEEN_SAMPLES, MAX_TERRAIN_SAMPLES, terrainSamples, MAX_API_CALLS, apiCalls, MAX_VALID_SAMPLES, validSamples, data, spheres, processPosHeight, ensureHeightRefs, getEntityPositions, allPosses, i, sample, samplePosses, valid, j, samplePos, k, allPos, distance, rect, factor, marginX, marginY, carto, i, pos, radius, sphere, allPointSphere, rectSphere, combinedSphere;
1324
1193
  var _this = this;
1325
- return __generator(this, function (_b) {
1326
- switch (_b.label) {
1194
+ return __generator(this, function (_a) {
1195
+ switch (_a.label) {
1327
1196
  case 0:
1328
1197
  api = params.api, viewer = params.viewer, samples = params.samples, visualRegister = params.visualRegister, minimumAlt = params.minimumAlt, paddingAlt = params.paddingAlt;
1329
1198
  if (!paddingAlt) {
@@ -1336,10 +1205,6 @@ var EntityUtils;
1336
1205
  apiCalls = 0;
1337
1206
  MAX_VALID_SAMPLES = 20;
1338
1207
  validSamples = 0;
1339
- MIN_RECT_DIAGONAL_LENGTH = isNaN(minimumAlt) || minimumAlt == null ? 0 : minimumAlt * 10;
1340
- if (MIN_RECT_DIAGONAL_LENGTH < 1500) {
1341
- MIN_RECT_DIAGONAL_LENGTH = 1500;
1342
- }
1343
1208
  data = {
1344
1209
  pos3d: null,
1345
1210
  rectangle: null,
@@ -1437,7 +1302,7 @@ var EntityUtils;
1437
1302
  case 0:
1438
1303
  entityId = sample.entityId, entity = sample.entity, tileset = sample.tileset, tilesetId = sample.tilesetId;
1439
1304
  evaluateRendered = function () { return __awaiter(_this, void 0, void 0, function () {
1440
- var rego, posses, visual, visualHeightRef, hierarchy, hPosses, hPossesSample, step, i, pPosses, pPossesSample, step, i, pPosses, pPossesSample, step, i, pos3d_1, toAdjust, modelExt, sphere;
1305
+ var rego, posses, parts, i, part, visualHeightRef, hierarchy, hPosses, hPossesSample, step, i_1, pPosses, pPossesSample, step, i_2, pPosses, pPossesSample, step, i_3, pos3d_1, toAdjust, modelExt, sphere, data_1, pos3d_2, toAdjust, sphere;
1441
1306
  return __generator(this, function (_a) {
1442
1307
  switch (_a.label) {
1443
1308
  case 0:
@@ -1445,102 +1310,130 @@ var EntityUtils;
1445
1310
  entityId: sample.entityId,
1446
1311
  }) : null;
1447
1312
  posses = [];
1448
- if (!((rego === null || rego === void 0 ? void 0 : rego.visual) instanceof Entity)) return [3 /*break*/, 14];
1449
- visual = rego.visual;
1450
- visualHeightRef = HeightReference.RELATIVE_TO_GROUND;
1451
- if (!visual.model) return [3 /*break*/, 1];
1452
- visualHeightRef = GetValue(viewer, visual.model.heightReference);
1453
- return [3 /*break*/, 12];
1313
+ parts = GatherEntity({
1314
+ entity: rego === null || rego === void 0 ? void 0 : rego.visual,
1315
+ });
1316
+ i = 0;
1317
+ _a.label = 1;
1454
1318
  case 1:
1455
- if (!visual.polygon) return [3 /*break*/, 4];
1456
- visualHeightRef = GetValue(viewer, visual.polygon.heightReference);
1457
- hierarchy = GetValue(viewer, visual.polygon.hierarchy);
1458
- if (!(hierarchy === null || hierarchy === void 0 ? void 0 : hierarchy.positions)) return [3 /*break*/, 3];
1319
+ if (!(i < parts.length)) return [3 /*break*/, 19];
1320
+ part = parts[i];
1321
+ if (!(part instanceof Entity)) return [3 /*break*/, 16];
1322
+ visualHeightRef = HeightReference.RELATIVE_TO_GROUND;
1323
+ if (!part.model) return [3 /*break*/, 2];
1324
+ visualHeightRef = GetValue(viewer, part.model.heightReference);
1325
+ return [3 /*break*/, 13];
1326
+ case 2:
1327
+ if (!part.polygon) return [3 /*break*/, 5];
1328
+ visualHeightRef = GetValue(viewer, part.polygon.heightReference);
1329
+ hierarchy = GetValue(viewer, part.polygon.hierarchy);
1330
+ if (!(hierarchy === null || hierarchy === void 0 ? void 0 : hierarchy.positions)) return [3 /*break*/, 4];
1459
1331
  hPosses = hierarchy.positions.map(function (x) { return x.clone ? x.clone() : x; });
1460
1332
  hPossesSample = [];
1461
1333
  step = Math.max(1, Math.floor(hPosses.length / 5));
1462
- for (i = 0; i < hPosses.length; i += step) {
1463
- hPossesSample.push(hPosses[i]);
1334
+ for (i_1 = 0; i_1 < hPosses.length; i_1 += step) {
1335
+ hPossesSample.push(hPosses[i_1]);
1464
1336
  }
1465
1337
  return [4 /*yield*/, ensureHeightRefs(hPossesSample, __assign(__assign({}, sample), { heightRef: visualHeightRef }))];
1466
- case 2:
1338
+ case 3:
1467
1339
  _a.sent();
1468
1340
  posses = posses.concat(hPossesSample);
1469
- _a.label = 3;
1470
- case 3: return [3 /*break*/, 12];
1471
- case 4:
1472
- if (!visual.polyline) return [3 /*break*/, 7];
1473
- visualHeightRef = GetValue(viewer, visual.polyline.clampToGround) ?
1341
+ _a.label = 4;
1342
+ case 4: return [3 /*break*/, 13];
1343
+ case 5:
1344
+ if (!part.polyline) return [3 /*break*/, 8];
1345
+ visualHeightRef = GetValue(viewer, part.polyline.clampToGround) ?
1474
1346
  HeightReference.CLAMP_TO_GROUND : HeightReference.NONE;
1475
- pPosses = GetValue(viewer, visual.polyline.positions);
1476
- if (!(pPosses === null || pPosses === void 0 ? void 0 : pPosses.length)) return [3 /*break*/, 6];
1347
+ pPosses = GetValue(viewer, part.polyline.positions);
1348
+ if (!(pPosses === null || pPosses === void 0 ? void 0 : pPosses.length)) return [3 /*break*/, 7];
1477
1349
  // Grab 5 positions from the polyline at varied indexes.
1478
1350
  pPosses = pPosses.map(function (x) { return x.clone ? x.clone() : x; });
1479
1351
  pPossesSample = [];
1480
1352
  step = Math.max(1, Math.floor(pPosses.length / 5));
1481
- for (i = 0; i < pPosses.length; i += step) {
1482
- pPossesSample.push(pPosses[i]);
1353
+ for (i_2 = 0; i_2 < pPosses.length; i_2 += step) {
1354
+ pPossesSample.push(pPosses[i_2]);
1483
1355
  }
1484
1356
  return [4 /*yield*/, ensureHeightRefs(pPossesSample, __assign(__assign({}, sample), { heightRef: visualHeightRef }))];
1485
- case 5:
1357
+ case 6:
1486
1358
  _a.sent();
1487
1359
  posses = posses.concat(pPossesSample);
1488
- _a.label = 6;
1489
- case 6: return [3 /*break*/, 12];
1490
- case 7:
1491
- if (!visual.billboard) return [3 /*break*/, 8];
1492
- visualHeightRef = GetValue(viewer, visual.billboard.heightReference);
1493
- return [3 /*break*/, 12];
1360
+ _a.label = 7;
1361
+ case 7: return [3 /*break*/, 13];
1494
1362
  case 8:
1495
- if (!visual.corridor) return [3 /*break*/, 11];
1496
- visualHeightRef = GetValue(viewer, visual.corridor.heightReference);
1497
- pPosses = GetValue(viewer, visual.corridor.positions);
1498
- if (!(pPosses === null || pPosses === void 0 ? void 0 : pPosses.length)) return [3 /*break*/, 10];
1363
+ if (!part.billboard) return [3 /*break*/, 9];
1364
+ visualHeightRef = GetValue(viewer, part.billboard.heightReference);
1365
+ return [3 /*break*/, 13];
1366
+ case 9:
1367
+ if (!part.corridor) return [3 /*break*/, 12];
1368
+ visualHeightRef = GetValue(viewer, part.corridor.heightReference);
1369
+ pPosses = GetValue(viewer, part.corridor.positions);
1370
+ if (!(pPosses === null || pPosses === void 0 ? void 0 : pPosses.length)) return [3 /*break*/, 11];
1499
1371
  // Grab 5 positions from the corridor at varied indexes.
1500
1372
  pPosses = pPosses.map(function (x) { return x.clone ? x.clone() : x; });
1501
1373
  pPossesSample = [];
1502
1374
  step = Math.max(1, Math.floor(pPosses.length / 5));
1503
- for (i = 0; i < pPosses.length; i += step) {
1504
- pPossesSample.push(pPosses[i]);
1375
+ for (i_3 = 0; i_3 < pPosses.length; i_3 += step) {
1376
+ pPossesSample.push(pPosses[i_3]);
1505
1377
  }
1506
1378
  return [4 /*yield*/, ensureHeightRefs(pPossesSample, __assign(__assign({}, sample), { heightRef: visualHeightRef }))];
1507
- case 9:
1379
+ case 10:
1508
1380
  _a.sent();
1509
1381
  posses = posses.concat(pPossesSample);
1510
- _a.label = 10;
1511
- case 10: return [3 /*break*/, 12];
1512
- case 11:
1513
- if (visual.ellipse) {
1514
- visualHeightRef = GetValue(viewer, visual.ellipse.heightReference);
1382
+ _a.label = 11;
1383
+ case 11: return [3 /*break*/, 13];
1384
+ case 12:
1385
+ if (part.ellipse) {
1386
+ visualHeightRef = GetValue(viewer, part.ellipse.heightReference);
1515
1387
  }
1516
- else if (visual.point) {
1517
- visualHeightRef = GetValue(viewer, visual.point.heightReference);
1388
+ else if (part.point) {
1389
+ visualHeightRef = GetValue(viewer, part.point.heightReference);
1518
1390
  }
1519
- _a.label = 12;
1520
- case 12:
1521
- pos3d_1 = GetValue(viewer, visual.position);
1522
- if (!(pos3d_1 === null || pos3d_1 === void 0 ? void 0 : pos3d_1.x)) return [3 /*break*/, 14];
1391
+ _a.label = 13;
1392
+ case 13:
1393
+ if (!(part.point || part.model || part.billboard || part.ellipse)) return [3 /*break*/, 15];
1394
+ pos3d_1 = GetValue(viewer, part.position);
1395
+ if (!(pos3d_1 === null || pos3d_1 === void 0 ? void 0 : pos3d_1.x)) return [3 /*break*/, 15];
1523
1396
  toAdjust = [pos3d_1];
1524
1397
  return [4 /*yield*/, ensureHeightRefs(toAdjust, __assign(__assign({}, sample), { heightRef: visualHeightRef }))];
1525
- case 13:
1398
+ case 14:
1526
1399
  _a.sent();
1527
1400
  pos3d_1 = toAdjust[0];
1528
1401
  posses.push(pos3d_1);
1529
- if (visual.model) {
1530
- modelExt = visual.model;
1402
+ if (part.model) {
1403
+ modelExt = part.model;
1531
1404
  if (modelExt._radius && modelExt._radius > -1) {
1532
1405
  sphere = BoundingSphere.fromPoints([pos3d_1]);
1533
1406
  sphere.radius = modelExt._radius;
1534
1407
  spheres.push(sphere);
1535
1408
  }
1536
1409
  }
1537
- _a.label = 14;
1538
- case 14: return [2 /*return*/, posses];
1410
+ _a.label = 15;
1411
+ case 15: return [3 /*break*/, 18];
1412
+ case 16:
1413
+ if (!(part instanceof Cesium3DTileFeature)) return [3 /*break*/, 18];
1414
+ data_1 = getLocationFromFeature(part);
1415
+ if (!(data_1 != null)) return [3 /*break*/, 18];
1416
+ pos3d_2 = Cartesian3.fromDegrees(data_1.location.longitude, data_1.location.latitude, data_1.location.altitude);
1417
+ toAdjust = [pos3d_2];
1418
+ return [4 /*yield*/, ensureHeightRefs(toAdjust, __assign(__assign({}, sample), { heightRef: data_1.isClamped ? HeightReference.CLAMP_TO_GROUND : HeightReference.NONE }))];
1419
+ case 17:
1420
+ _a.sent();
1421
+ pos3d_2 = toAdjust[0];
1422
+ posses.push(pos3d_2);
1423
+ if (data_1.radius != null && !isNaN(data_1.radius)) {
1424
+ sphere = new BoundingSphere(pos3d_2, data_1.radius);
1425
+ spheres.push(sphere);
1426
+ }
1427
+ _a.label = 18;
1428
+ case 18:
1429
+ i++;
1430
+ return [3 /*break*/, 1];
1431
+ case 19: return [2 /*return*/, posses];
1539
1432
  }
1540
1433
  });
1541
1434
  }); };
1542
1435
  evaluateRecord = function () { return __awaiter(_this, void 0, void 0, function () {
1543
- var posses, location_1, latitude, longitude, pos3d_2, pointStr, points, point, pos3d_3, lineStr, points, pPosses, pRings, boundary, points, pPosses, point, bPosses;
1436
+ var posses, location_1, latitude, longitude, pos3d_3, pointStr, points, point, pos3d_4, lineStr, points, pPosses, pRings, boundary, points, pPosses, point, bPosses;
1544
1437
  return __generator(this, function (_a) {
1545
1438
  switch (_a.label) {
1546
1439
  case 0:
@@ -1551,8 +1444,8 @@ var EntityUtils;
1551
1444
  longitude = EnsureNumber(location_1.longitude);
1552
1445
  // Disallowing exact 0.
1553
1446
  if (latitude || longitude) {
1554
- pos3d_2 = Cartesian3.fromDegrees(longitude, latitude, EnsureNumber(location_1.altitude));
1555
- posses.push(pos3d_2);
1447
+ pos3d_3 = Cartesian3.fromDegrees(longitude, latitude, EnsureNumber(location_1.altitude));
1448
+ posses.push(pos3d_3);
1556
1449
  }
1557
1450
  }
1558
1451
  if (!(entity.geometry && typeof entity.geometry == "object")) return [3 /*break*/, 4];
@@ -1561,8 +1454,8 @@ var EntityUtils;
1561
1454
  points = Geometry.ParsePoints(pointStr);
1562
1455
  point = points.length > 0 ? points[0] : null;
1563
1456
  if (point && Carto.ValidateCarto(point)) {
1564
- pos3d_3 = Cartesian3.fromDegrees(EnsureNumber(point.longitude), EnsureNumber(point.latitude), EnsureNumber(point.altitude));
1565
- posses.push(pos3d_3);
1457
+ pos3d_4 = Cartesian3.fromDegrees(EnsureNumber(point.longitude), EnsureNumber(point.latitude), EnsureNumber(point.altitude));
1458
+ posses.push(pos3d_4);
1566
1459
  }
1567
1460
  }
1568
1461
  lineStr = entity.geometry.LineString;
@@ -1753,13 +1646,13 @@ var EntityUtils;
1753
1646
  }); };
1754
1647
  allPosses = [];
1755
1648
  i = 0;
1756
- _b.label = 1;
1649
+ _a.label = 1;
1757
1650
  case 1:
1758
1651
  if (!(i < samples.length)) return [3 /*break*/, 4];
1759
1652
  sample = samples[i];
1760
1653
  return [4 /*yield*/, getEntityPositions(sample)];
1761
1654
  case 2:
1762
- samplePosses = _b.sent();
1655
+ samplePosses = _a.sent();
1763
1656
  if (samplePosses === null || samplePosses === void 0 ? void 0 : samplePosses.length) {
1764
1657
  valid = !(allPosses === null || allPosses === void 0 ? void 0 : allPosses.length);
1765
1658
  if (!valid) {
@@ -1786,7 +1679,7 @@ var EntityUtils;
1786
1679
  }
1787
1680
  }
1788
1681
  }
1789
- _b.label = 3;
1682
+ _a.label = 3;
1790
1683
  case 3:
1791
1684
  i++;
1792
1685
  return [3 /*break*/, 1];
@@ -1800,25 +1693,29 @@ var EntityUtils;
1800
1693
  rect.west -= marginX;
1801
1694
  rect.north += marginY;
1802
1695
  rect.south -= marginY;
1803
- diagonalLen = Cartesian3.distance(Cartesian3.fromRadians(rect.west, rect.north), Cartesian3.fromRadians(rect.east, rect.south));
1804
- terrData = ViewUtils.GatherTerrainTile({
1805
- viewer: viewer
1806
- });
1807
- if (((_a = terrData === null || terrData === void 0 ? void 0 : terrData.terrain) === null || _a === void 0 ? void 0 : _a.tilesetId) == ProjectViewTile.EDefaultTerrain.FlatTerrain) {
1808
- MIN_RECT_DIAGONAL_LENGTH = 0;
1696
+ data.rectangle = rect;
1697
+ carto = Rectangle.center(rect);
1698
+ carto.height = 0;
1699
+ for (i = 0; i < allPosses.length; i++) {
1700
+ pos = allPosses[i];
1701
+ carto.height += Cartographic.fromCartesian(pos).height;
1702
+ }
1703
+ if (carto.height != 0) {
1704
+ carto.height /= allPosses.length;
1809
1705
  }
1810
- posCarto = Cartographic.fromCartesian(allPosses[0]);
1811
- height = posCarto.height + (diagonalLen * 1.5);
1812
- data.pos3d = Cartesian3.fromRadians(posCarto.longitude, posCarto.latitude, height);
1813
- MIN_POSSES_LEN = 10;
1814
- if (diagonalLen >= MIN_RECT_DIAGONAL_LENGTH && allPosses.length >= MIN_POSSES_LEN) {
1815
- data.rectangle = rect;
1706
+ data.pos3d = Cartesian3.fromRadians(carto.longitude, carto.latitude, carto.height);
1707
+ radius = Cartesian3.distance(Cartesian3.fromRadians(rect.west, rect.north), Cartesian3.fromRadians(rect.east, rect.south));
1708
+ if (radius != 0) {
1709
+ radius /= 2;
1816
1710
  }
1711
+ sphere = new BoundingSphere(data.pos3d, radius);
1712
+ spheres.push(sphere);
1713
+ data.sphere = sphere;
1817
1714
  }
1818
1715
  else if (allPosses.length == 1) {
1819
1716
  data.pos3d = allPosses[0];
1820
1717
  }
1821
- if (spheres.length) {
1718
+ if ((data.rectangle && spheres.length > 1) || (!data.rectangle && spheres.length > 0)) {
1822
1719
  allPointSphere = BoundingSphere.fromPoints(allPosses);
1823
1720
  spheres.push(allPointSphere);
1824
1721
  if (data.rectangle) {
@@ -1850,9 +1747,9 @@ var EntityUtils;
1850
1747
  if ((rego === null || rego === void 0 ? void 0 : rego.visual) instanceof Entity) {
1851
1748
  var visual = rego.visual;
1852
1749
  if (visual.position) {
1853
- var pos3d_4 = GetValue(viewer, visual.position);
1750
+ var pos3d_5 = GetValue(viewer, visual.position);
1854
1751
  // Fix height reference.
1855
- if (pos3d_4 === null || pos3d_4 === void 0 ? void 0 : pos3d_4.x) {
1752
+ if (pos3d_5 === null || pos3d_5 === void 0 ? void 0 : pos3d_5.x) {
1856
1753
  var visualHeightRef = HeightReference.RELATIVE_TO_GROUND;
1857
1754
  if (visual.model) {
1858
1755
  visualHeightRef = GetValue(viewer, visual.model.heightReference);
@@ -1879,7 +1776,7 @@ var EntityUtils;
1879
1776
  return DrawingUtils.EnsurePosHeight({
1880
1777
  desiredHeightRef: params.returnHeightRef,
1881
1778
  heightRef: visualHeightRef,
1882
- pos3d: pos3d_4,
1779
+ pos3d: pos3d_5,
1883
1780
  viewer: viewer
1884
1781
  });
1885
1782
  }
@@ -2542,6 +2439,213 @@ var RenderManager;
2542
2439
  RenderManager.GetZoomMinMax = GetZoomMinMax;
2543
2440
  })(RenderManager || (RenderManager = {}));
2544
2441
 
2442
+ var CESIUM_INSPECTOR_KEY = "_nextspace_inspector";
2443
+ var ViewUtils;
2444
+ (function (ViewUtils) {
2445
+ function GatherLegacyMapTiles(params) {
2446
+ var viewer = params.viewer;
2447
+ var collection = viewer.imageryLayers;
2448
+ var tiles = [];
2449
+ for (var i = 0; i < collection.length; i++) {
2450
+ var layer = collection.get(i);
2451
+ if (layer._bName) {
2452
+ tiles.push({
2453
+ alpha: layer.alpha,
2454
+ brightness: layer.brightness,
2455
+ contrast: layer.contrast,
2456
+ hue: layer.hue,
2457
+ saturation: layer.saturation,
2458
+ gamma: layer.gamma,
2459
+ title: layer._bName,
2460
+ });
2461
+ }
2462
+ }
2463
+ return {
2464
+ imagery: tiles.reverse()
2465
+ };
2466
+ }
2467
+ ViewUtils.GatherLegacyMapTiles = GatherLegacyMapTiles;
2468
+ function GatherLegacyTerrainTile(params) {
2469
+ var viewer = params.viewer;
2470
+ var enabled = viewer.terrainProvider;
2471
+ if (enabled === null || enabled === void 0 ? void 0 : enabled._bName) {
2472
+ return {
2473
+ terrain: enabled._bName
2474
+ };
2475
+ }
2476
+ return {
2477
+ terrain: "flatterrain"
2478
+ };
2479
+ }
2480
+ ViewUtils.GatherLegacyTerrainTile = GatherLegacyTerrainTile;
2481
+ function GatherMapTiles(params) {
2482
+ var viewer = params.viewer;
2483
+ var imagery = viewer.imageryLayers;
2484
+ var tiles = [];
2485
+ var _loop_1 = function (i) {
2486
+ var provider = imagery.get(i);
2487
+ if (provider._bMeta) {
2488
+ var idCombo_1 = provider._bMeta.accountId + provider._bMeta.tilesetId;
2489
+ if (!tiles.find(function (x) { return x.accountId + x.tilesetId === idCombo_1; })) {
2490
+ tiles.push({
2491
+ accountId: provider._bMeta.accountId,
2492
+ tilesetId: provider._bMeta.tilesetId,
2493
+ alpha: provider.alpha,
2494
+ brightness: provider.brightness,
2495
+ contrast: provider.contrast,
2496
+ hue: provider.hue,
2497
+ saturation: provider.saturation,
2498
+ gamma: provider.gamma
2499
+ });
2500
+ }
2501
+ }
2502
+ };
2503
+ for (var i = 0; i < imagery.length; i++) {
2504
+ _loop_1(i);
2505
+ }
2506
+ return {
2507
+ imagery: tiles
2508
+ };
2509
+ }
2510
+ ViewUtils.GatherMapTiles = GatherMapTiles;
2511
+ function GatherTerrainTile(params) {
2512
+ var viewer = params.viewer;
2513
+ var provider = viewer.terrainProvider;
2514
+ if (provider === null || provider === void 0 ? void 0 : provider._bMeta) {
2515
+ return {
2516
+ terrain: {
2517
+ accountId: provider._bMeta.accountId,
2518
+ tilesetId: provider._bMeta.tilesetId,
2519
+ }
2520
+ };
2521
+ }
2522
+ else if (provider instanceof EllipsoidTerrainProvider) {
2523
+ return {
2524
+ terrain: {
2525
+ tilesetId: ProjectViewTile.EDefaultTerrain.FlatTerrain,
2526
+ accountId: null
2527
+ }
2528
+ };
2529
+ }
2530
+ return null;
2531
+ }
2532
+ ViewUtils.GatherTerrainTile = GatherTerrainTile;
2533
+ function SetTerrainWireframeStatus(params) {
2534
+ if (!params.viewer[CESIUM_INSPECTOR_KEY]) {
2535
+ var InspectorClass = CesiumInspector;
2536
+ if (InspectorClass) {
2537
+ var inspector = new InspectorClass(document.createElement("div"), params.viewer.scene);
2538
+ inspector.container.style.display = "none";
2539
+ params.viewer[CESIUM_INSPECTOR_KEY] = inspector;
2540
+ params.viewer.scene.requestRender();
2541
+ }
2542
+ }
2543
+ if (params.viewer[CESIUM_INSPECTOR_KEY]) {
2544
+ params.viewer[CESIUM_INSPECTOR_KEY].viewModel.wireframe = params.status;
2545
+ }
2546
+ }
2547
+ ViewUtils.SetTerrainWireframeStatus = SetTerrainWireframeStatus;
2548
+ function GetTerrainWireframeStatus(params) {
2549
+ var _a, _b;
2550
+ if (!params.viewer[CESIUM_INSPECTOR_KEY]) {
2551
+ return false;
2552
+ }
2553
+ return (_b = (_a = params.viewer[CESIUM_INSPECTOR_KEY]) === null || _a === void 0 ? void 0 : _a.viewModel) === null || _b === void 0 ? void 0 : _b.wireframe;
2554
+ }
2555
+ ViewUtils.GetTerrainWireframeStatus = GetTerrainWireframeStatus;
2556
+ /**
2557
+ * Changes between perspective and orthographic view.
2558
+ * When Cesium stops being bad at picking positions in 2d mode we'll use the flat earth mode instead.
2559
+ * @param params
2560
+ */
2561
+ function Set2dStatus(params) {
2562
+ var viewer = params.viewer, is2d = params.status, moveCamera = params.moveCamera;
2563
+ var curLens2d = viewer.camera.frustum instanceof OrthographicFrustum;
2564
+ if (curLens2d && !is2d) {
2565
+ viewer.camera.switchToPerspectiveFrustum();
2566
+ viewer.scene.screenSpaceCameraController.enableTilt = true;
2567
+ viewer.scene.requestRender();
2568
+ }
2569
+ else if (!curLens2d && is2d) {
2570
+ viewer.camera.switchToOrthographicFrustum();
2571
+ viewer.scene.screenSpaceCameraController.enableTilt = false;
2572
+ if (moveCamera != false) {
2573
+ try {
2574
+ // Face camera downwards to make it look 2d.
2575
+ // We want to try make it look at the center-point of the current view.
2576
+ // If center cannot be calculated then we'll simply raise the camera and face it downwards.
2577
+ var scene = viewer.scene;
2578
+ var windowPosition = new Cartesian2(scene.canvas.clientWidth / 2, scene.canvas.clientHeight / 2);
2579
+ var ray = viewer.camera.getPickRay(windowPosition);
2580
+ var intersection = scene.globe.pick(ray, scene);
2581
+ var center = void 0;
2582
+ if (defined(intersection)) {
2583
+ center = Cartographic.fromCartesian(intersection);
2584
+ }
2585
+ // Use current camera position if we can't calculate the center.
2586
+ else {
2587
+ center = Cartographic.fromCartesian(viewer.camera.position);
2588
+ center.height = 0;
2589
+ }
2590
+ center.height = viewer.camera.positionCartographic.height + 100;
2591
+ viewer.camera.setView({
2592
+ destination: Cartographic.toCartesian(center),
2593
+ orientation: {
2594
+ heading: 0.0,
2595
+ pitch: Math$1.toRadians(-90.0),
2596
+ roll: 0.0
2597
+ }
2598
+ });
2599
+ }
2600
+ catch (e) {
2601
+ console.error(e);
2602
+ }
2603
+ }
2604
+ viewer.scene.requestRender();
2605
+ }
2606
+ }
2607
+ ViewUtils.Set2dStatus = Set2dStatus;
2608
+ function Get2dStatus(params) {
2609
+ var viewer = params.viewer;
2610
+ return viewer.camera.frustum instanceof OrthographicFrustum;
2611
+ }
2612
+ ViewUtils.Get2dStatus = Get2dStatus;
2613
+ function SetLockedCameraStatus(params) {
2614
+ var viewer = params.viewer, status = params.status;
2615
+ var scene = viewer === null || viewer === void 0 ? void 0 : viewer.scene;
2616
+ if (!scene) {
2617
+ return;
2618
+ }
2619
+ if (status) {
2620
+ scene.screenSpaceCameraController.enableInputs = false;
2621
+ scene.screenSpaceCameraController.enableTranslate = false;
2622
+ scene.screenSpaceCameraController.enableZoom = false;
2623
+ scene.screenSpaceCameraController.enableRotate = false;
2624
+ scene.screenSpaceCameraController.enableTilt = false;
2625
+ }
2626
+ else {
2627
+ scene.screenSpaceCameraController.enableInputs = true;
2628
+ scene.screenSpaceCameraController.enableTranslate = true;
2629
+ scene.screenSpaceCameraController.enableZoom = true;
2630
+ scene.screenSpaceCameraController.enableRotate = true;
2631
+ if (!ViewUtils.Get2dStatus({ viewer: viewer })) {
2632
+ scene.screenSpaceCameraController.enableTilt = true;
2633
+ }
2634
+ }
2635
+ viewer.scene.requestRender();
2636
+ }
2637
+ ViewUtils.SetLockedCameraStatus = SetLockedCameraStatus;
2638
+ function GetLockedCameraStatus(params) {
2639
+ var _a;
2640
+ var scene = (_a = params.viewer) === null || _a === void 0 ? void 0 : _a.scene;
2641
+ if (!scene) {
2642
+ return false;
2643
+ }
2644
+ return !scene.screenSpaceCameraController.enableTranslate;
2645
+ }
2646
+ ViewUtils.GetLockedCameraStatus = GetLockedCameraStatus;
2647
+ })(ViewUtils || (ViewUtils = {}));
2648
+
2545
2649
  var MODEL_MIN_RADIUS = 10;
2546
2650
  var POINT_MIN_RADIUS = 15;
2547
2651
  // If a shape has more than this amount of points, we'll avoid checking it because it will take too long.
@@ -19899,7 +20003,7 @@ var CesiumViewMonitor;
19899
20003
  CesiumViewMonitor$$1.Monitor = Monitor;
19900
20004
  })(CesiumViewMonitor || (CesiumViewMonitor = {}));
19901
20005
 
19902
- var VERSION$1 = "3.2.6";
20006
+ var VERSION$1 = "3.2.8";
19903
20007
 
19904
20008
  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 };
19905
20009
  //# sourceMappingURL=bruce-cesium.es5.js.map