bruce-cesium 5.7.7 → 5.7.9
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.
- package/package.json +2 -2
- package/dist/bruce-cesium.es5.js +0 -32263
- package/dist/bruce-cesium.es5.js.map +0 -1
- package/dist/bruce-cesium.umd.js +0 -32187
- package/dist/bruce-cesium.umd.js.map +0 -1
- package/dist/lib/bruce-cesium.js +0 -76
- package/dist/lib/bruce-cesium.js.map +0 -1
- package/dist/lib/internal/cesium-utils.js +0 -109
- package/dist/lib/internal/cesium-utils.js.map +0 -1
- package/dist/lib/internal/js-utils.js +0 -22
- package/dist/lib/internal/js-utils.js.map +0 -1
- package/dist/lib/internal/limited-log.js +0 -17
- package/dist/lib/internal/limited-log.js.map +0 -1
- package/dist/lib/rendering/cesium-animated-in-out.js +0 -166
- package/dist/lib/rendering/cesium-animated-in-out.js.map +0 -1
- package/dist/lib/rendering/cesium-animated-property.js +0 -1111
- package/dist/lib/rendering/cesium-animated-property.js.map +0 -1
- package/dist/lib/rendering/entity-gatherer.js +0 -327
- package/dist/lib/rendering/entity-gatherer.js.map +0 -1
- package/dist/lib/rendering/entity-render-engine-model3d.js +0 -689
- package/dist/lib/rendering/entity-render-engine-model3d.js.map +0 -1
- package/dist/lib/rendering/entity-render-engine-point.js +0 -984
- package/dist/lib/rendering/entity-render-engine-point.js.map +0 -1
- package/dist/lib/rendering/entity-render-engine-polygon.js +0 -669
- package/dist/lib/rendering/entity-render-engine-polygon.js.map +0 -1
- package/dist/lib/rendering/entity-render-engine-polyline.js +0 -415
- package/dist/lib/rendering/entity-render-engine-polyline.js.map +0 -1
- package/dist/lib/rendering/entity-render-engine.js +0 -442
- package/dist/lib/rendering/entity-render-engine.js.map +0 -1
- package/dist/lib/rendering/getters/batched-data-getter.js +0 -91
- package/dist/lib/rendering/getters/batched-data-getter.js.map +0 -1
- package/dist/lib/rendering/getters/entity-filter-getter.js +0 -634
- package/dist/lib/rendering/getters/entity-filter-getter.js.map +0 -1
- package/dist/lib/rendering/getters/entity-globe.js +0 -172
- package/dist/lib/rendering/getters/entity-globe.js.map +0 -1
- package/dist/lib/rendering/menu-item-creator.js +0 -354
- package/dist/lib/rendering/menu-item-creator.js.map +0 -1
- package/dist/lib/rendering/menu-item-manager.js +0 -464
- package/dist/lib/rendering/menu-item-manager.js.map +0 -1
- package/dist/lib/rendering/relation-render-engine.js +0 -235
- package/dist/lib/rendering/relation-render-engine.js.map +0 -1
- package/dist/lib/rendering/render-managers/common/cesium-parabola.js +0 -368
- package/dist/lib/rendering/render-managers/common/cesium-parabola.js.map +0 -1
- package/dist/lib/rendering/render-managers/common/entity-label.js +0 -703
- package/dist/lib/rendering/render-managers/common/entity-label.js.map +0 -1
- package/dist/lib/rendering/render-managers/common/point-clustering.js +0 -826
- package/dist/lib/rendering/render-managers/common/point-clustering.js.map +0 -1
- package/dist/lib/rendering/render-managers/common/shared-getters.js +0 -187
- package/dist/lib/rendering/render-managers/common/shared-getters.js.map +0 -1
- package/dist/lib/rendering/render-managers/data-source/data-source-static-csv-manager.js +0 -668
- package/dist/lib/rendering/render-managers/data-source/data-source-static-csv-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/data-source/data-source-static-kml-manager.js +0 -92
- package/dist/lib/rendering/render-managers/data-source/data-source-static-kml-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/entities/entities-datalab-render-manager.js +0 -143
- package/dist/lib/rendering/render-managers/entities/entities-datalab-render-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js +0 -510
- package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js +0 -717
- package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +0 -999
- package/dist/lib/rendering/render-managers/entities/entities-render-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/entities/entity-render-manager.js +0 -186
- package/dist/lib/rendering/render-managers/entities/entity-render-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/other/assembly-render-manager.js +0 -226
- package/dist/lib/rendering/render-managers/other/assembly-render-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/other/google-search-render-manager.js +0 -430
- package/dist/lib/rendering/render-managers/other/google-search-render-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/other/legacy-relations-render-manager.js +0 -290
- package/dist/lib/rendering/render-managers/other/legacy-relations-render-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/other/relations-render-manager.js +0 -401
- package/dist/lib/rendering/render-managers/other/relations-render-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/render-manager.js +0 -276
- package/dist/lib/rendering/render-managers/render-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js +0 -356
- package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js +0 -861
- package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js +0 -279
- package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-google-photos-render-manager.js +0 -104
- package/dist/lib/rendering/render-managers/tilesets/tileset-google-photos-render-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-i3s-render-manager.js +0 -81
- package/dist/lib/rendering/render-managers/tilesets/tileset-i3s-render-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js +0 -378
- package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.js +0 -140
- package/dist/lib/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.js.map +0 -1
- package/dist/lib/rendering/tile-render-engine.js +0 -1328
- package/dist/lib/rendering/tile-render-engine.js.map +0 -1
- package/dist/lib/rendering/tileset-render-engine.js +0 -588
- package/dist/lib/rendering/tileset-render-engine.js.map +0 -1
- package/dist/lib/rendering/tileset-styler.js +0 -590
- package/dist/lib/rendering/tileset-styler.js.map +0 -1
- package/dist/lib/rendering/view-render-engine.js +0 -1004
- package/dist/lib/rendering/view-render-engine.js.map +0 -1
- package/dist/lib/rendering/visual-register-culler.js +0 -676
- package/dist/lib/rendering/visual-register-culler.js.map +0 -1
- package/dist/lib/rendering/visuals-register.js +0 -1695
- package/dist/lib/rendering/visuals-register.js.map +0 -1
- package/dist/lib/utils/cesium-entity-styler.js +0 -915
- package/dist/lib/utils/cesium-entity-styler.js.map +0 -1
- package/dist/lib/utils/drawing-utils.js +0 -308
- package/dist/lib/utils/drawing-utils.js.map +0 -1
- package/dist/lib/utils/entity-utils.js +0 -1382
- package/dist/lib/utils/entity-utils.js.map +0 -1
- package/dist/lib/utils/measure-utils.js +0 -73
- package/dist/lib/utils/measure-utils.js.map +0 -1
- package/dist/lib/utils/simplify-geometry.js +0 -323
- package/dist/lib/utils/simplify-geometry.js.map +0 -1
- package/dist/lib/utils/view-utils.js +0 -392
- package/dist/lib/utils/view-utils.js.map +0 -1
- package/dist/lib/viewer/cesium-view-monitor.js +0 -393
- package/dist/lib/viewer/cesium-view-monitor.js.map +0 -1
- package/dist/lib/viewer/viewer-event-tracker.js +0 -70
- package/dist/lib/viewer/viewer-event-tracker.js.map +0 -1
- package/dist/lib/viewer/viewer-utils.js +0 -310
- package/dist/lib/viewer/viewer-utils.js.map +0 -1
- package/dist/lib/widgets/common/draw-3d-polygon.js +0 -458
- package/dist/lib/widgets/common/draw-3d-polygon.js.map +0 -1
- package/dist/lib/widgets/common/draw-3d-polyline.js +0 -415
- package/dist/lib/widgets/common/draw-3d-polyline.js.map +0 -1
- package/dist/lib/widgets/common/measure-creator.js +0 -468
- package/dist/lib/widgets/common/measure-creator.js.map +0 -1
- package/dist/lib/widgets/common/walkthrough.js +0 -336
- package/dist/lib/widgets/common/walkthrough.js.map +0 -1
- package/dist/lib/widgets/controls-view-bar/widget-control-view-bar-fullscreen.js +0 -36
- package/dist/lib/widgets/controls-view-bar/widget-control-view-bar-fullscreen.js.map +0 -1
- package/dist/lib/widgets/controls-view-bar/widget-control-view-bar-search.js +0 -437
- package/dist/lib/widgets/controls-view-bar/widget-control-view-bar-search.js.map +0 -1
- package/dist/lib/widgets/controls-view-bar/widget-control-view-bar.js +0 -38
- package/dist/lib/widgets/controls-view-bar/widget-control-view-bar.js.map +0 -1
- package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab-bookmarks.js +0 -219
- package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab-bookmarks.js.map +0 -1
- package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab-user.js +0 -304
- package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab-user.js.map +0 -1
- package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab.js +0 -29
- package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab.js.map +0 -1
- package/dist/lib/widgets/widget-bookmarks.js +0 -497
- package/dist/lib/widgets/widget-bookmarks.js.map +0 -1
- package/dist/lib/widgets/widget-branding.js +0 -165
- package/dist/lib/widgets/widget-branding.js.map +0 -1
- package/dist/lib/widgets/widget-cursorbar.js +0 -1179
- package/dist/lib/widgets/widget-cursorbar.js.map +0 -1
- package/dist/lib/widgets/widget-embedded-info-view.js +0 -201
- package/dist/lib/widgets/widget-embedded-info-view.js.map +0 -1
- package/dist/lib/widgets/widget-info-view.js +0 -681
- package/dist/lib/widgets/widget-info-view.js.map +0 -1
- package/dist/lib/widgets/widget-left-panel.js +0 -548
- package/dist/lib/widgets/widget-left-panel.js.map +0 -1
- package/dist/lib/widgets/widget-nav-compass.js +0 -469
- package/dist/lib/widgets/widget-nav-compass.js.map +0 -1
- package/dist/lib/widgets/widget-view-bar.js +0 -284
- package/dist/lib/widgets/widget-view-bar.js.map +0 -1
- package/dist/lib/widgets/widget.js +0 -66
- package/dist/lib/widgets/widget.js.map +0 -1
- package/dist/types/bruce-cesium.d.ts +0 -58
- package/dist/types/internal/cesium-utils.d.ts +0 -23
- package/dist/types/internal/js-utils.d.ts +0 -8
- package/dist/types/internal/limited-log.d.ts +0 -6
- package/dist/types/rendering/cesium-animated-in-out.d.ts +0 -12
- package/dist/types/rendering/cesium-animated-property.d.ts +0 -245
- package/dist/types/rendering/entity-gatherer.d.ts +0 -36
- package/dist/types/rendering/entity-render-engine-model3d.d.ts +0 -56
- package/dist/types/rendering/entity-render-engine-point.d.ts +0 -73
- package/dist/types/rendering/entity-render-engine-polygon.d.ts +0 -26
- package/dist/types/rendering/entity-render-engine-polyline.d.ts +0 -47
- package/dist/types/rendering/entity-render-engine.d.ts +0 -108
- package/dist/types/rendering/getters/batched-data-getter.d.ts +0 -28
- package/dist/types/rendering/getters/entity-filter-getter.d.ts +0 -104
- package/dist/types/rendering/getters/entity-globe.d.ts +0 -21
- package/dist/types/rendering/menu-item-creator.d.ts +0 -53
- package/dist/types/rendering/menu-item-manager.d.ts +0 -85
- package/dist/types/rendering/relation-render-engine.d.ts +0 -32
- package/dist/types/rendering/render-managers/common/cesium-parabola.d.ts +0 -39
- package/dist/types/rendering/render-managers/common/entity-label.d.ts +0 -82
- package/dist/types/rendering/render-managers/common/point-clustering.d.ts +0 -91
- package/dist/types/rendering/render-managers/common/shared-getters.d.ts +0 -41
- package/dist/types/rendering/render-managers/data-source/data-source-static-csv-manager.d.ts +0 -41
- package/dist/types/rendering/render-managers/data-source/data-source-static-kml-manager.d.ts +0 -25
- package/dist/types/rendering/render-managers/entities/entities-datalab-render-manager.d.ts +0 -31
- package/dist/types/rendering/render-managers/entities/entities-ids-render-manager.d.ts +0 -76
- package/dist/types/rendering/render-managers/entities/entities-loaded-render-manager.d.ts +0 -90
- package/dist/types/rendering/render-managers/entities/entities-render-manager.d.ts +0 -90
- package/dist/types/rendering/render-managers/entities/entity-render-manager.d.ts +0 -42
- package/dist/types/rendering/render-managers/other/assembly-render-manager.d.ts +0 -38
- package/dist/types/rendering/render-managers/other/google-search-render-manager.d.ts +0 -45
- package/dist/types/rendering/render-managers/other/legacy-relations-render-manager.d.ts +0 -60
- package/dist/types/rendering/render-managers/other/relations-render-manager.d.ts +0 -53
- package/dist/types/rendering/render-managers/render-manager.d.ts +0 -30
- package/dist/types/rendering/render-managers/tilesets/tileset-arb-render-manager.d.ts +0 -37
- package/dist/types/rendering/render-managers/tilesets/tileset-cad-render-manager.d.ts +0 -86
- package/dist/types/rendering/render-managers/tilesets/tileset-entities-render-manager.d.ts +0 -41
- package/dist/types/rendering/render-managers/tilesets/tileset-google-photos-render-manager.d.ts +0 -26
- package/dist/types/rendering/render-managers/tilesets/tileset-i3s-render-manager.d.ts +0 -25
- package/dist/types/rendering/render-managers/tilesets/tileset-osm-render-manager.d.ts +0 -48
- package/dist/types/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.d.ts +0 -27
- package/dist/types/rendering/tile-render-engine.d.ts +0 -80
- package/dist/types/rendering/tileset-render-engine.d.ts +0 -99
- package/dist/types/rendering/tileset-styler.d.ts +0 -86
- package/dist/types/rendering/view-render-engine.d.ts +0 -32
- package/dist/types/rendering/visual-register-culler.d.ts +0 -18
- package/dist/types/rendering/visuals-register.d.ts +0 -351
- package/dist/types/utils/cesium-entity-styler.d.ts +0 -103
- package/dist/types/utils/drawing-utils.d.ts +0 -59
- package/dist/types/utils/entity-utils.d.ts +0 -133
- package/dist/types/utils/measure-utils.d.ts +0 -20
- package/dist/types/utils/simplify-geometry.d.ts +0 -19
- package/dist/types/utils/view-utils.d.ts +0 -101
- package/dist/types/viewer/cesium-view-monitor.d.ts +0 -35
- package/dist/types/viewer/viewer-event-tracker.d.ts +0 -47
- package/dist/types/viewer/viewer-utils.d.ts +0 -88
- package/dist/types/widgets/common/draw-3d-polygon.d.ts +0 -62
- package/dist/types/widgets/common/draw-3d-polyline.d.ts +0 -50
- package/dist/types/widgets/common/measure-creator.d.ts +0 -60
- package/dist/types/widgets/common/walkthrough.d.ts +0 -37
- package/dist/types/widgets/controls-view-bar/widget-control-view-bar-fullscreen.d.ts +0 -10
- package/dist/types/widgets/controls-view-bar/widget-control-view-bar-search.d.ts +0 -18
- package/dist/types/widgets/controls-view-bar/widget-control-view-bar.d.ts +0 -23
- package/dist/types/widgets/tabs-left-panel/widget-left-panel-tab-bookmarks.d.ts +0 -11
- package/dist/types/widgets/tabs-left-panel/widget-left-panel-tab-user.d.ts +0 -24
- package/dist/types/widgets/tabs-left-panel/widget-left-panel-tab.d.ts +0 -17
- package/dist/types/widgets/widget-bookmarks.d.ts +0 -40
- package/dist/types/widgets/widget-branding.d.ts +0 -15
- package/dist/types/widgets/widget-cursorbar.d.ts +0 -48
- package/dist/types/widgets/widget-embedded-info-view.d.ts +0 -13
- package/dist/types/widgets/widget-info-view.d.ts +0 -21
- package/dist/types/widgets/widget-left-panel.d.ts +0 -73
- package/dist/types/widgets/widget-nav-compass.d.ts +0 -27
- package/dist/types/widgets/widget-view-bar.d.ts +0 -37
- package/dist/types/widgets/widget.d.ts +0 -29
|
@@ -1,984 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EntityRenderEnginePoint = void 0;
|
|
4
|
-
const bruce_models_1 = require("bruce-models");
|
|
5
|
-
const cesium_animated_property_1 = require("./cesium-animated-property");
|
|
6
|
-
const Cesium = require("cesium");
|
|
7
|
-
const entity_render_engine_1 = require("./entity-render-engine");
|
|
8
|
-
const entity_utils_1 = require("../utils/entity-utils");
|
|
9
|
-
const js_utils_1 = require("../internal/js-utils");
|
|
10
|
-
const cesium_utils_1 = require("../internal/cesium-utils");
|
|
11
|
-
const limited_log_1 = require("../internal/limited-log");
|
|
12
|
-
const cesium_entity_styler_1 = require("../utils/cesium-entity-styler");
|
|
13
|
-
/**
|
|
14
|
-
* Handles point rendering.
|
|
15
|
-
*/
|
|
16
|
-
var EntityRenderEnginePoint;
|
|
17
|
-
(function (EntityRenderEnginePoint) {
|
|
18
|
-
/**
|
|
19
|
-
* Creates a circle billboard (canvas) for a point.
|
|
20
|
-
* @param params
|
|
21
|
-
* @returns
|
|
22
|
-
*/
|
|
23
|
-
function CreateCircleBillboard(params) {
|
|
24
|
-
return createCircleBillboard(params.size, params.colorCss);
|
|
25
|
-
}
|
|
26
|
-
EntityRenderEnginePoint.CreateCircleBillboard = CreateCircleBillboard;
|
|
27
|
-
/**
|
|
28
|
-
* Renders a single point Entity.
|
|
29
|
-
* This takes an optional prior Cesium Entity to update rather than create from scratch.
|
|
30
|
-
* @param params
|
|
31
|
-
* @returns
|
|
32
|
-
*/
|
|
33
|
-
async function Render(params) {
|
|
34
|
-
var _a, _b, _c, _d;
|
|
35
|
-
const entity = params.entity;
|
|
36
|
-
if (!params.entityHistoric) {
|
|
37
|
-
params.entityHistoric = [];
|
|
38
|
-
}
|
|
39
|
-
const style = params.style;
|
|
40
|
-
let type = style.Type;
|
|
41
|
-
if (type == null) {
|
|
42
|
-
// Very old backward compatibility.
|
|
43
|
-
if (style.useIcon == true) {
|
|
44
|
-
type = bruce_models_1.Style.EPointType.Icon;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
let cEntity = null;
|
|
48
|
-
let siblings = [];
|
|
49
|
-
let heightRef = null;
|
|
50
|
-
let animatePosition = null;
|
|
51
|
-
let shouldShowTrack = false;
|
|
52
|
-
const prepareExistingGraphic = (cEntity, maxSiblings = 0) => {
|
|
53
|
-
// Gather entity in case previous version had sibling graphics we no longer need.
|
|
54
|
-
const parts = entity_utils_1.EntityUtils.GatherEntity({
|
|
55
|
-
entity: cEntity,
|
|
56
|
-
});
|
|
57
|
-
if (parts.length > 1) {
|
|
58
|
-
// We'll cull all except the allowed number of siblings.
|
|
59
|
-
cEntity._siblingGraphics = cEntity._siblingGraphics.slice(0, maxSiblings);
|
|
60
|
-
// We'll remove all that aren't in the allowed (direct) list.
|
|
61
|
-
for (let i = 0; i < parts.length - 1; i++) {
|
|
62
|
-
const part = parts[i];
|
|
63
|
-
if (part && part instanceof Cesium.Entity && params.viewer.entities.contains(part) && !cEntity._siblingGraphics.includes(part)) {
|
|
64
|
-
params.viewer.entities.remove(part);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
if (cEntity._parentEntity) {
|
|
68
|
-
console.warn("Point.Render: Parent entity was not null. This should not happen.");
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
siblings = cEntity._siblingGraphics;
|
|
72
|
-
cEntity._siblingGraphics = [];
|
|
73
|
-
};
|
|
74
|
-
const updateShouldShowTrack = () => {
|
|
75
|
-
var _a, _b, _c;
|
|
76
|
-
if (!params.entityHistoricDrawTrack) {
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
if ((_a = params.entityHistoric) === null || _a === void 0 ? void 0 : _a.length) {
|
|
80
|
-
const lStyle = (_c = (_b = params.fullStyle) === null || _b === void 0 ? void 0 : _b.polylineStyle) !== null && _c !== void 0 ? _c : {};
|
|
81
|
-
let width = lStyle.width ? (0, js_utils_1.EnsureNumber)(bruce_models_1.Calculator.GetNumber(lStyle.width, entity, params.tags)) : 2;
|
|
82
|
-
if (width == null) {
|
|
83
|
-
width = 2;
|
|
84
|
-
}
|
|
85
|
-
width = (0, js_utils_1.EnsureNumber)(width);
|
|
86
|
-
if (width > 0.01) {
|
|
87
|
-
const bColor = lStyle.lineColor ? bruce_models_1.Calculator.GetColor(lStyle.lineColor, entity, params.tags) : null;
|
|
88
|
-
const cColor = bColor ? (0, cesium_utils_1.ColorToCColor)(bColor) : Cesium.Color.fromCssColorString("rgba(255, 193, 7, 0.8)");
|
|
89
|
-
if (cColor.alpha > 0) {
|
|
90
|
-
const seriesTrackPosses = cesium_animated_property_1.CesiumAnimatedProperty.GetSeriesPossesForHistoricEntity(params.viewer, heightRef, heightRef, params.entityHistoric);
|
|
91
|
-
seriesTrackPosses.reverse();
|
|
92
|
-
let posses = seriesTrackPosses.map(x => x.pos3d);
|
|
93
|
-
posses = (0, cesium_utils_1.CullDuplicateCPosses)(posses);
|
|
94
|
-
shouldShowTrack = posses.length > 1;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
;
|
|
99
|
-
};
|
|
100
|
-
if (type == bruce_models_1.Style.EPointType.Icon) {
|
|
101
|
-
// Fixing poor data.
|
|
102
|
-
let iconUrlRows = style.iconUrl == null ? [] : style.iconUrl;
|
|
103
|
-
iconUrlRows.forEach((row) => {
|
|
104
|
-
if (row.type == bruce_models_1.Calculator.EValueType.Color) {
|
|
105
|
-
row.type = bruce_models_1.Calculator.EValueType.Input;
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
const icon = bruce_models_1.Calculator.GetString(iconUrlRows, entity, params.tags);
|
|
109
|
-
let iconUrl = null;
|
|
110
|
-
if (typeof icon == "string") {
|
|
111
|
-
iconUrl = icon;
|
|
112
|
-
const metadata = extractMetadataFromFileUrl(iconUrl);
|
|
113
|
-
// If we're able to determine the Nextspace metadata from the url then we can use that to load the file.
|
|
114
|
-
// Warning, if this is cross-env, eg: UAT -> DEV then it will RIGHTLY fail to load the file.
|
|
115
|
-
if (metadata) {
|
|
116
|
-
const api = params.apiGetter.getApi(metadata.accountId);
|
|
117
|
-
await api.Loading;
|
|
118
|
-
iconUrl = bruce_models_1.ClientFile.GetUrl({
|
|
119
|
-
api: api,
|
|
120
|
-
fileId: metadata.fileId,
|
|
121
|
-
viaCdn: true
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
if (!iconUrl && style.iconId) {
|
|
126
|
-
await params.api.Loading;
|
|
127
|
-
iconUrl = bruce_models_1.ClientFile.GetUrl({
|
|
128
|
-
api: params.api,
|
|
129
|
-
fileId: style.iconId,
|
|
130
|
-
viaCdn: true
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
let image = null;
|
|
134
|
-
// ND-1640 - Tags not appearing.
|
|
135
|
-
// Validate file, else user will see nothing.
|
|
136
|
-
// Pray we aren't loading some giant file.
|
|
137
|
-
if (iconUrl) {
|
|
138
|
-
try {
|
|
139
|
-
image = await createImageBillboard(iconUrl);
|
|
140
|
-
}
|
|
141
|
-
catch (e) {
|
|
142
|
-
// Expanding the logging here so we can figure out why this is happening.
|
|
143
|
-
// Most of the time the file is missing but we're getting some strange errors so I am including logging on the API settings as well.
|
|
144
|
-
(0, limited_log_1.OneTimeError)("ENTITY_RENDER_ENGINE_ICON_URL_ERROR_" + iconUrl, {
|
|
145
|
-
error: e,
|
|
146
|
-
iconUrl,
|
|
147
|
-
apiUrl: (_a = params.api) === null || _a === void 0 ? void 0 : _a.GetBaseUrl(),
|
|
148
|
-
apiAccountId: (_b = params.api) === null || _b === void 0 ? void 0 : _b.AccountId
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
if (image) {
|
|
153
|
-
let iconScale = (0, js_utils_1.EnsureNumber)(bruce_models_1.Calculator.GetNumber(style.iconScale, entity, params.tags));
|
|
154
|
-
if (!iconScale && iconScale != 0) {
|
|
155
|
-
iconScale = 1;
|
|
156
|
-
}
|
|
157
|
-
const disableDepthTest = Boolean(style.renderOnTop);
|
|
158
|
-
if (iconScale > 0) {
|
|
159
|
-
updateShouldShowTrack();
|
|
160
|
-
const bColor = style.iconTintColor ? bruce_models_1.Calculator.GetColor(style.iconTintColor, entity, params.tags) : null;
|
|
161
|
-
const cColor = bColor ? (0, cesium_utils_1.ColorToCColor)(bColor) : Cesium.Color.WHITE.clone();
|
|
162
|
-
heightRef = getHeightRef(style);
|
|
163
|
-
if (!params.rendered || !params.rendered.billboard) {
|
|
164
|
-
const animateColorIn = new cesium_animated_property_1.CesiumAnimatedProperty.AnimateColor({
|
|
165
|
-
durationMs: 200,
|
|
166
|
-
targetColor: cColor,
|
|
167
|
-
startColor: cColor.withAlpha(0),
|
|
168
|
-
viewer: params.viewer
|
|
169
|
-
});
|
|
170
|
-
let position = null;
|
|
171
|
-
// If we have a series of time-based positions then we'll animate as time changes.
|
|
172
|
-
const series = cesium_animated_property_1.CesiumAnimatedProperty.GetSeriesPossesForHistoricEntity(params.viewer, heightRef, heightRef, params.entityHistoric);
|
|
173
|
-
if (series.length > 1) {
|
|
174
|
-
animatePosition = new cesium_animated_property_1.CesiumAnimatedProperty.AnimatePositionSeries({
|
|
175
|
-
posses: series,
|
|
176
|
-
viewer: params.viewer
|
|
177
|
-
});
|
|
178
|
-
position = new Cesium.CallbackProperty(() => animatePosition.GetValue(), false);
|
|
179
|
-
position["CesiumAnimatedProperty.AnimatePositionSeries"] = animatePosition;
|
|
180
|
-
}
|
|
181
|
-
else {
|
|
182
|
-
position = new Cesium.CallbackProperty(() => entity_utils_1.EntityUtils.GetPos({
|
|
183
|
-
viewer: params.viewer,
|
|
184
|
-
entity,
|
|
185
|
-
recordHeightRef: heightRef,
|
|
186
|
-
returnHeightRef: heightRef,
|
|
187
|
-
allowRendered: false
|
|
188
|
-
}), true);
|
|
189
|
-
}
|
|
190
|
-
cEntity = new Cesium.Entity({
|
|
191
|
-
id: bruce_models_1.ObjectUtils.UId(15),
|
|
192
|
-
billboard: {
|
|
193
|
-
horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
|
|
194
|
-
verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
|
|
195
|
-
image: image.canvasDataUri,
|
|
196
|
-
heightReference: getHeightRef(style),
|
|
197
|
-
scale: iconScale,
|
|
198
|
-
disableDepthTestDistance: disableDepthTest ? Number.POSITIVE_INFINITY : undefined,
|
|
199
|
-
distanceDisplayCondition: entity_render_engine_1.EntityRenderEngine.GetDisplayCondition(params.minDistance, params.maxDistance),
|
|
200
|
-
color: new Cesium.CallbackProperty(() => {
|
|
201
|
-
const color = animateColorIn.GetColor();
|
|
202
|
-
if (animateColorIn.IsDone() && (cEntity === null || cEntity === void 0 ? void 0 : cEntity.billboard)) {
|
|
203
|
-
cEntity.billboard.color = new Cesium.CallbackProperty(() => color, true);
|
|
204
|
-
}
|
|
205
|
-
return color;
|
|
206
|
-
}, false),
|
|
207
|
-
// Would be great once we have a setting for this.
|
|
208
|
-
// translucencyByDistance: getTranslucencyByDistance(params.minDistance, params.maxDistance),
|
|
209
|
-
},
|
|
210
|
-
position: position,
|
|
211
|
-
show: true
|
|
212
|
-
});
|
|
213
|
-
cesium_entity_styler_1.CesiumEntityStyler.BakeDefaultColor({
|
|
214
|
-
entity: cEntity,
|
|
215
|
-
colors: {
|
|
216
|
-
"billboard": cColor
|
|
217
|
-
},
|
|
218
|
-
viewer: params.viewer,
|
|
219
|
-
refresh: false
|
|
220
|
-
});
|
|
221
|
-
}
|
|
222
|
-
else {
|
|
223
|
-
prepareExistingGraphic(params.rendered, shouldShowTrack ? 1 : 0);
|
|
224
|
-
cEntity = params.rendered;
|
|
225
|
-
const currentImgKey = cEntity.billboard._billboardImgKey;
|
|
226
|
-
if (currentImgKey != iconUrl) {
|
|
227
|
-
cEntity.billboard.image = new Cesium.ConstantProperty(image.canvasDataUri);
|
|
228
|
-
}
|
|
229
|
-
cEntity.billboard.scale = new Cesium.ConstantProperty(iconScale);
|
|
230
|
-
cEntity.billboard.heightReference = new Cesium.ConstantProperty(getHeightRef(style));
|
|
231
|
-
cEntity.billboard.disableDepthTestDistance = new Cesium.ConstantProperty(disableDepthTest ? Number.POSITIVE_INFINITY : undefined);
|
|
232
|
-
cEntity.billboard.distanceDisplayCondition = new Cesium.ConstantProperty(entity_render_engine_1.EntityRenderEngine.GetDisplayCondition(params.minDistance, params.maxDistance));
|
|
233
|
-
// Unset width/height.
|
|
234
|
-
cEntity.billboard.width = undefined;
|
|
235
|
-
cEntity.billboard.height = undefined;
|
|
236
|
-
const prevPos3d = (0, cesium_utils_1.GetCValue)(params.viewer, cEntity.position);
|
|
237
|
-
let prevStartTime = null;
|
|
238
|
-
if (cEntity.position && cEntity.position["CesiumAnimatedProperty.AnimatePositionSeries"]) {
|
|
239
|
-
prevStartTime = cEntity.position["CesiumAnimatedProperty.AnimatePositionSeries"].GetAnimateFromDateTime();
|
|
240
|
-
}
|
|
241
|
-
// If we have a series of time-based positions then we'll animate as time changes.
|
|
242
|
-
const series = cesium_animated_property_1.CesiumAnimatedProperty.GetSeriesPossesForHistoricEntity(params.viewer, heightRef, heightRef, params.entityHistoric);
|
|
243
|
-
if (series.length > 1) {
|
|
244
|
-
animatePosition = new cesium_animated_property_1.CesiumAnimatedProperty.AnimatePositionSeries({
|
|
245
|
-
posses: series,
|
|
246
|
-
viewer: params.viewer,
|
|
247
|
-
animateFromPos3d: prevPos3d,
|
|
248
|
-
animateFromPos3dTimeStart: prevStartTime
|
|
249
|
-
});
|
|
250
|
-
cEntity.position = new Cesium.CallbackProperty(() => animatePosition.GetValue(), false);
|
|
251
|
-
cEntity.position["CesiumAnimatedProperty.AnimatePositionSeries"] = animatePosition;
|
|
252
|
-
}
|
|
253
|
-
else {
|
|
254
|
-
const pos3d = entity_utils_1.EntityUtils.GetPos({
|
|
255
|
-
viewer: params.viewer,
|
|
256
|
-
entity,
|
|
257
|
-
recordHeightRef: heightRef,
|
|
258
|
-
returnHeightRef: heightRef,
|
|
259
|
-
allowRendered: false
|
|
260
|
-
});
|
|
261
|
-
if (!prevPos3d || !Cesium.Cartesian3.equals(prevPos3d, pos3d)) {
|
|
262
|
-
animatePosition = new cesium_animated_property_1.CesiumAnimatedProperty.AnimatePosition({
|
|
263
|
-
durationMs: 200,
|
|
264
|
-
targetPos3d: pos3d,
|
|
265
|
-
viewer: params.viewer,
|
|
266
|
-
startPos3d: prevPos3d
|
|
267
|
-
});
|
|
268
|
-
cEntity.position = new Cesium.CallbackProperty(() => animatePosition.GetValue(), false);
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
// We'll use "SetDefaultColor" to updating the internal reference and to allow for an animation.
|
|
272
|
-
cesium_entity_styler_1.CesiumEntityStyler.SetDefaultColor({
|
|
273
|
-
color: cColor ? cColor : new Cesium.Color(),
|
|
274
|
-
entity: cEntity,
|
|
275
|
-
viewer: params.viewer,
|
|
276
|
-
override: true,
|
|
277
|
-
requestRender: false
|
|
278
|
-
});
|
|
279
|
-
cEntity.show = true;
|
|
280
|
-
}
|
|
281
|
-
cEntity.billboard._billboardSize = image.height;
|
|
282
|
-
cEntity.billboard._billboardImgKey = iconUrl;
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
if (type == bruce_models_1.Style.EPointType.Cylinder) {
|
|
287
|
-
const radius = (0, js_utils_1.EnsureNumber)(bruce_models_1.Calculator.GetNumber(style.CylinderRadius, entity, params.tags));
|
|
288
|
-
if (radius <= 0) {
|
|
289
|
-
return null;
|
|
290
|
-
}
|
|
291
|
-
const bFill = style.CylinderFillColor ? bruce_models_1.Calculator.GetColor(style.CylinderFillColor, entity, params.tags) : null;
|
|
292
|
-
const cFill = bFill ? (0, cesium_utils_1.ColorToCColor)(bFill) : Cesium.Color.RED;
|
|
293
|
-
const outline = Boolean(style.CylinderBorderEnabled);
|
|
294
|
-
let cOutline = null;
|
|
295
|
-
let outlineWidth = 1;
|
|
296
|
-
if (outline) {
|
|
297
|
-
const bOutline = style.CylinderBorderColor ? bruce_models_1.Calculator.GetColor(style.CylinderBorderColor, entity, params.tags) : null;
|
|
298
|
-
cOutline = bOutline ? (0, cesium_utils_1.ColorToCColor)(bOutline) : Cesium.Color.BLACK;
|
|
299
|
-
outlineWidth = (0, js_utils_1.EnsureNumber)(bruce_models_1.Calculator.GetNumber(style.CylinderBorderWidth, entity, params.tags), 1);
|
|
300
|
-
}
|
|
301
|
-
heightRef = getHeightRef(style);
|
|
302
|
-
let pos3d = entity_utils_1.EntityUtils.GetPos({
|
|
303
|
-
viewer: params.viewer,
|
|
304
|
-
entity,
|
|
305
|
-
recordHeightRef: heightRef,
|
|
306
|
-
returnHeightRef: heightRef,
|
|
307
|
-
allowRendered: false
|
|
308
|
-
});
|
|
309
|
-
const extrusion = getCylinderExtrusion(entity, params.tags, heightRef, style.CylinderFillExtrusion);
|
|
310
|
-
const hasOutline = outline && outlineWidth > 0;
|
|
311
|
-
const outlineExtrusion = hasOutline ? getCylinderExtrusion(entity, params.tags, heightRef, style.CylinderBorderExtrusion) : null;
|
|
312
|
-
// If this doesn't have its own extrusion, we must make it match the sibling.
|
|
313
|
-
// This way they render in a uniform way.
|
|
314
|
-
if (hasOutline) {
|
|
315
|
-
if (outlineExtrusion.value == undefined && extrusion.value != undefined) {
|
|
316
|
-
outlineExtrusion.exHeightRef = extrusion.exHeightRef;
|
|
317
|
-
outlineExtrusion.value = 0;
|
|
318
|
-
}
|
|
319
|
-
else if (outlineExtrusion.value != undefined && extrusion.value == undefined) {
|
|
320
|
-
extrusion.exHeightRef = outlineExtrusion.exHeightRef;
|
|
321
|
-
extrusion.value = 0;
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
let classification = Cesium.ClassificationType.TERRAIN;
|
|
325
|
-
if (style["drapeOver"] == "ALL") {
|
|
326
|
-
classification = Cesium.ClassificationType.BOTH;
|
|
327
|
-
}
|
|
328
|
-
// Height being set will kill classification.
|
|
329
|
-
// So we want to use it only when we have to (when extruded).
|
|
330
|
-
let height = undefined;
|
|
331
|
-
if (heightRef != Cesium.HeightReference.CLAMP_TO_GROUND && extrusion.value != undefined) {
|
|
332
|
-
height = Cesium.Cartographic.fromCartesian(pos3d).height;
|
|
333
|
-
}
|
|
334
|
-
if (!params.rendered || !params.rendered.ellipse) {
|
|
335
|
-
cEntity = new Cesium.Entity({
|
|
336
|
-
id: bruce_models_1.ObjectUtils.UId(15),
|
|
337
|
-
ellipse: {
|
|
338
|
-
semiMajorAxis: radius,
|
|
339
|
-
semiMinorAxis: radius,
|
|
340
|
-
material: cFill,
|
|
341
|
-
outlineWidth: null,
|
|
342
|
-
extrudedHeight: extrusion.value,
|
|
343
|
-
heightReference: heightRef,
|
|
344
|
-
extrudedHeightReference: extrusion.exHeightRef,
|
|
345
|
-
height: height,
|
|
346
|
-
zIndex: 1,
|
|
347
|
-
classificationType: classification,
|
|
348
|
-
distanceDisplayCondition: entity_render_engine_1.EntityRenderEngine.GetDisplayCondition(params.minDistance, params.maxDistance)
|
|
349
|
-
},
|
|
350
|
-
position: pos3d === null || pos3d === void 0 ? void 0 : pos3d.clone(),
|
|
351
|
-
show: true
|
|
352
|
-
});
|
|
353
|
-
}
|
|
354
|
-
else {
|
|
355
|
-
prepareExistingGraphic(params.rendered, hasOutline ? 1 : 0);
|
|
356
|
-
cEntity = params.rendered;
|
|
357
|
-
const curRadius = (0, cesium_utils_1.GetCValue)(params.viewer, cEntity.ellipse.semiMajorAxis);
|
|
358
|
-
if (curRadius != radius) {
|
|
359
|
-
cEntity.ellipse.semiMajorAxis = new Cesium.ConstantProperty(radius);
|
|
360
|
-
cEntity.ellipse.semiMinorAxis = new Cesium.ConstantProperty(radius);
|
|
361
|
-
}
|
|
362
|
-
cEntity.ellipse.outlineWidth = undefined;
|
|
363
|
-
{
|
|
364
|
-
const curHeightRef = (0, cesium_utils_1.GetCValue)(params.viewer, cEntity.ellipse.heightReference);
|
|
365
|
-
if (curHeightRef != heightRef) {
|
|
366
|
-
cEntity.ellipse.heightReference = new Cesium.ConstantProperty(heightRef);
|
|
367
|
-
}
|
|
368
|
-
const curHeight = (0, cesium_utils_1.GetCValue)(params.viewer, cEntity.ellipse.height);
|
|
369
|
-
if (curHeight != height) {
|
|
370
|
-
cEntity.ellipse.height = new Cesium.ConstantProperty(height);
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
{
|
|
374
|
-
const curExtHeightRef = (0, cesium_utils_1.GetCValue)(params.viewer, cEntity.ellipse.extrudedHeightReference);
|
|
375
|
-
if (curExtHeightRef != extrusion.exHeightRef) {
|
|
376
|
-
cEntity.ellipse.extrudedHeightReference = new Cesium.ConstantProperty(extrusion.exHeightRef);
|
|
377
|
-
}
|
|
378
|
-
const curExtHeight = (0, cesium_utils_1.GetCValue)(params.viewer, cEntity.ellipse.extrudedHeight);
|
|
379
|
-
if (curExtHeight != extrusion.value) {
|
|
380
|
-
cEntity.ellipse.extrudedHeight = new Cesium.ConstantProperty(extrusion.value);
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
cEntity.ellipse.zIndex = new Cesium.ConstantProperty(1);
|
|
384
|
-
cEntity.ellipse.distanceDisplayCondition = new Cesium.ConstantProperty(entity_render_engine_1.EntityRenderEngine.GetDisplayCondition(params.minDistance, params.maxDistance));
|
|
385
|
-
const curClassification = (0, cesium_utils_1.GetCValue)(params.viewer, cEntity.ellipse.classificationType);
|
|
386
|
-
if (curClassification != classification) {
|
|
387
|
-
cEntity.ellipse.classificationType = new Cesium.ConstantProperty(classification);
|
|
388
|
-
}
|
|
389
|
-
cEntity.position = new Cesium.ConstantPositionProperty(pos3d === null || pos3d === void 0 ? void 0 : pos3d.clone());
|
|
390
|
-
// We'll use "SetDefaultColor" to updating the internal reference and to allow for an animation.
|
|
391
|
-
// WARNING: ellipse does not support animation (yet?).
|
|
392
|
-
cesium_entity_styler_1.CesiumEntityStyler.SetDefaultColor({
|
|
393
|
-
color: cFill,
|
|
394
|
-
entity: cEntity,
|
|
395
|
-
viewer: params.viewer,
|
|
396
|
-
override: true,
|
|
397
|
-
requestRender: false
|
|
398
|
-
});
|
|
399
|
-
cEntity.show = true;
|
|
400
|
-
}
|
|
401
|
-
if (hasOutline) {
|
|
402
|
-
// Height being set will kill classification.
|
|
403
|
-
// So we want to use it only when we have to (when extruded).
|
|
404
|
-
let outlineHeight = undefined;
|
|
405
|
-
if (outlineExtrusion.exHeightRef != Cesium.HeightReference.CLAMP_TO_GROUND && outlineExtrusion.value != undefined) {
|
|
406
|
-
outlineHeight = Cesium.Cartographic.fromCartesian(pos3d).height;
|
|
407
|
-
}
|
|
408
|
-
let outlineEntity = siblings === null || siblings === void 0 ? void 0 : siblings[0];
|
|
409
|
-
if (outlineEntity && outlineEntity.ellipse) {
|
|
410
|
-
const curRadius = (0, cesium_utils_1.GetCValue)(params.viewer, outlineEntity.ellipse.semiMajorAxis);
|
|
411
|
-
if (curRadius != radius + outlineWidth) {
|
|
412
|
-
outlineEntity.ellipse.semiMajorAxis = new Cesium.ConstantProperty(radius + outlineWidth);
|
|
413
|
-
outlineEntity.ellipse.semiMinorAxis = new Cesium.ConstantProperty(radius + outlineWidth);
|
|
414
|
-
}
|
|
415
|
-
{
|
|
416
|
-
const curHeightRef = (0, cesium_utils_1.GetCValue)(params.viewer, outlineEntity.ellipse.heightReference);
|
|
417
|
-
if (curHeightRef != heightRef) {
|
|
418
|
-
outlineEntity.ellipse.heightReference = new Cesium.ConstantProperty(heightRef);
|
|
419
|
-
}
|
|
420
|
-
const curHeight = (0, cesium_utils_1.GetCValue)(params.viewer, outlineEntity.ellipse.height);
|
|
421
|
-
if (curHeight != outlineHeight) {
|
|
422
|
-
outlineEntity.ellipse.height = new Cesium.ConstantProperty(outlineHeight);
|
|
423
|
-
}
|
|
424
|
-
}
|
|
425
|
-
{
|
|
426
|
-
const curExtHeightRef = (0, cesium_utils_1.GetCValue)(params.viewer, outlineEntity.ellipse.extrudedHeightReference);
|
|
427
|
-
if (curExtHeightRef != outlineExtrusion.exHeightRef) {
|
|
428
|
-
outlineEntity.ellipse.extrudedHeightReference = new Cesium.ConstantProperty(outlineExtrusion.exHeightRef);
|
|
429
|
-
}
|
|
430
|
-
const curExtHeight = (0, cesium_utils_1.GetCValue)(params.viewer, outlineEntity.ellipse.extrudedHeight);
|
|
431
|
-
if (curExtHeight != outlineExtrusion.value) {
|
|
432
|
-
outlineEntity.ellipse.extrudedHeight = new Cesium.ConstantProperty(outlineExtrusion.value);
|
|
433
|
-
}
|
|
434
|
-
}
|
|
435
|
-
outlineEntity.ellipse.zIndex = new Cesium.ConstantProperty(2);
|
|
436
|
-
outlineEntity.ellipse.distanceDisplayCondition = new Cesium.ConstantProperty(entity_render_engine_1.EntityRenderEngine.GetDisplayCondition(params.minDistance, params.maxDistance));
|
|
437
|
-
const curClassification = (0, cesium_utils_1.GetCValue)(params.viewer, outlineEntity.ellipse.classificationType);
|
|
438
|
-
if (curClassification != classification) {
|
|
439
|
-
outlineEntity.ellipse.classificationType = new Cesium.ConstantProperty(classification);
|
|
440
|
-
}
|
|
441
|
-
// We'll use "SetDefaultColor" to updating the internal reference and to allow for an animation.
|
|
442
|
-
// WARNING: ellipse does not support animation (yet?).
|
|
443
|
-
cesium_entity_styler_1.CesiumEntityStyler.SetDefaultColor({
|
|
444
|
-
color: cOutline,
|
|
445
|
-
entity: outlineEntity,
|
|
446
|
-
viewer: params.viewer,
|
|
447
|
-
override: true,
|
|
448
|
-
requestRender: false
|
|
449
|
-
});
|
|
450
|
-
outlineEntity.show = true;
|
|
451
|
-
}
|
|
452
|
-
else {
|
|
453
|
-
outlineEntity = new Cesium.Entity({
|
|
454
|
-
id: bruce_models_1.ObjectUtils.UId(15),
|
|
455
|
-
ellipse: {
|
|
456
|
-
semiMajorAxis: radius + outlineWidth,
|
|
457
|
-
semiMinorAxis: radius + outlineWidth,
|
|
458
|
-
material: cOutline,
|
|
459
|
-
outlineWidth: undefined,
|
|
460
|
-
extrudedHeight: outlineExtrusion.value,
|
|
461
|
-
heightReference: heightRef,
|
|
462
|
-
extrudedHeightReference: outlineExtrusion.exHeightRef,
|
|
463
|
-
height: outlineHeight,
|
|
464
|
-
zIndex: 2,
|
|
465
|
-
classificationType: classification,
|
|
466
|
-
distanceDisplayCondition: entity_render_engine_1.EntityRenderEngine.GetDisplayCondition(params.minDistance, params.maxDistance)
|
|
467
|
-
},
|
|
468
|
-
position: pos3d === null || pos3d === void 0 ? void 0 : pos3d.clone()
|
|
469
|
-
});
|
|
470
|
-
}
|
|
471
|
-
siblings.push(outlineEntity);
|
|
472
|
-
}
|
|
473
|
-
}
|
|
474
|
-
if (!cEntity) {
|
|
475
|
-
const bColor = style.color ? bruce_models_1.Calculator.GetColor(style.color, entity, params.tags) : null;
|
|
476
|
-
const cColor = bColor ? (0, cesium_utils_1.ColorToCColor)(bColor) : Cesium.Color.fromCssColorString("rgba(33, 150, 243, 0.8)");
|
|
477
|
-
let size = style.size ? bruce_models_1.Calculator.GetNumber(style.size, entity, params.tags) : null;
|
|
478
|
-
if (size == null) {
|
|
479
|
-
size = 20;
|
|
480
|
-
}
|
|
481
|
-
size = (0, js_utils_1.EnsureNumber)(size);
|
|
482
|
-
if (size <= 0) {
|
|
483
|
-
return null;
|
|
484
|
-
}
|
|
485
|
-
heightRef = getHeightRef(style);
|
|
486
|
-
const circleBillboard = createCircleBillboard(size, cColor.toCssColorString());
|
|
487
|
-
const disableDepthTest = Boolean(style.renderOnTop);
|
|
488
|
-
updateShouldShowTrack();
|
|
489
|
-
if (!params.rendered || !params.rendered.billboard) {
|
|
490
|
-
const animateColorIn = new cesium_animated_property_1.CesiumAnimatedProperty.AnimateColor({
|
|
491
|
-
durationMs: 200,
|
|
492
|
-
targetColor: cColor,
|
|
493
|
-
startColor: cColor.withAlpha(0),
|
|
494
|
-
viewer: params.viewer
|
|
495
|
-
});
|
|
496
|
-
let position = null;
|
|
497
|
-
// If we have a series of time-based positions then we'll animate as time changes.
|
|
498
|
-
const series = cesium_animated_property_1.CesiumAnimatedProperty.GetSeriesPossesForHistoricEntity(params.viewer, heightRef, heightRef, params.entityHistoric);
|
|
499
|
-
if (series.length > 1) {
|
|
500
|
-
animatePosition = new cesium_animated_property_1.CesiumAnimatedProperty.AnimatePositionSeries({
|
|
501
|
-
posses: series,
|
|
502
|
-
viewer: params.viewer
|
|
503
|
-
});
|
|
504
|
-
position = new Cesium.CallbackProperty(() => animatePosition.GetValue(), false);
|
|
505
|
-
position["CesiumAnimatedProperty.AnimatePositionSeries"] = animatePosition;
|
|
506
|
-
}
|
|
507
|
-
else {
|
|
508
|
-
position = new Cesium.CallbackProperty(() => entity_utils_1.EntityUtils.GetPos({
|
|
509
|
-
viewer: params.viewer,
|
|
510
|
-
entity,
|
|
511
|
-
recordHeightRef: heightRef,
|
|
512
|
-
returnHeightRef: heightRef,
|
|
513
|
-
allowRendered: false
|
|
514
|
-
}), true);
|
|
515
|
-
}
|
|
516
|
-
cEntity = new Cesium.Entity({
|
|
517
|
-
id: bruce_models_1.ObjectUtils.UId(15),
|
|
518
|
-
// point: {
|
|
519
|
-
// pixelSize: size,
|
|
520
|
-
// color: cColor,
|
|
521
|
-
// heightReference: getHeightRef(style),
|
|
522
|
-
// distanceDisplayCondition: EntityRenderEngine.GetDisplayCondition(params.minDistance, params.maxDistance)
|
|
523
|
-
// },
|
|
524
|
-
// We are generating a billboard instead of using the point.
|
|
525
|
-
// This is because points were behaving strangely where they would appear oblong shapes.
|
|
526
|
-
// This occurred consistently when rendering many icons and points at the same time.
|
|
527
|
-
billboard: {
|
|
528
|
-
height: circleBillboard.height,
|
|
529
|
-
width: circleBillboard.width,
|
|
530
|
-
image: circleBillboard.canvasDataUri,
|
|
531
|
-
color: new Cesium.CallbackProperty(() => {
|
|
532
|
-
const color = animateColorIn.GetColor();
|
|
533
|
-
if (animateColorIn.IsDone() && (cEntity === null || cEntity === void 0 ? void 0 : cEntity.billboard)) {
|
|
534
|
-
cEntity.billboard.color = new Cesium.CallbackProperty(() => color, true);
|
|
535
|
-
}
|
|
536
|
-
return color;
|
|
537
|
-
}, false),
|
|
538
|
-
heightReference: heightRef,
|
|
539
|
-
distanceDisplayCondition: entity_render_engine_1.EntityRenderEngine.GetDisplayCondition(params.minDistance, params.maxDistance),
|
|
540
|
-
disableDepthTestDistance: disableDepthTest ? Number.POSITIVE_INFINITY : undefined
|
|
541
|
-
},
|
|
542
|
-
position: position,
|
|
543
|
-
show: true
|
|
544
|
-
});
|
|
545
|
-
cesium_entity_styler_1.CesiumEntityStyler.BakeDefaultColor({
|
|
546
|
-
entity: cEntity,
|
|
547
|
-
viewer: params.viewer,
|
|
548
|
-
colors: {
|
|
549
|
-
"billboard": cColor
|
|
550
|
-
},
|
|
551
|
-
refresh: false
|
|
552
|
-
});
|
|
553
|
-
}
|
|
554
|
-
else {
|
|
555
|
-
prepareExistingGraphic(params.rendered, shouldShowTrack ? 1 : 0);
|
|
556
|
-
cEntity = params.rendered;
|
|
557
|
-
const imgKey = `${size}-${cColor.toCssColorString()}`;
|
|
558
|
-
const currentImgKey = cEntity.billboard._billboardImgKey;
|
|
559
|
-
if (currentImgKey != imgKey) {
|
|
560
|
-
cEntity.billboard.image = new Cesium.ConstantProperty(circleBillboard.canvasDataUri);
|
|
561
|
-
}
|
|
562
|
-
cEntity.billboard.height = new Cesium.ConstantProperty(circleBillboard.height);
|
|
563
|
-
cEntity.billboard.width = new Cesium.ConstantProperty(circleBillboard.width);
|
|
564
|
-
cEntity.billboard.heightReference = new Cesium.ConstantProperty(heightRef);
|
|
565
|
-
cEntity.billboard.distanceDisplayCondition = new Cesium.ConstantProperty(entity_render_engine_1.EntityRenderEngine.GetDisplayCondition(params.minDistance, params.maxDistance));
|
|
566
|
-
cEntity.billboard.disableDepthTestDistance = new Cesium.ConstantProperty(disableDepthTest ? Number.POSITIVE_INFINITY : undefined);
|
|
567
|
-
const prevPos3d = (0, cesium_utils_1.GetCValue)(params.viewer, cEntity.position);
|
|
568
|
-
let prevStartTime = null;
|
|
569
|
-
if (cEntity.position && cEntity.position["CesiumAnimatedProperty.AnimatePositionSeries"]) {
|
|
570
|
-
prevStartTime = cEntity.position["CesiumAnimatedProperty.AnimatePositionSeries"].GetAnimateFromDateTime();
|
|
571
|
-
}
|
|
572
|
-
// If we have a series of time-based positions then we'll animate as time changes.
|
|
573
|
-
const series = cesium_animated_property_1.CesiumAnimatedProperty.GetSeriesPossesForHistoricEntity(params.viewer, heightRef, heightRef, params.entityHistoric);
|
|
574
|
-
if (series.length > 1) {
|
|
575
|
-
animatePosition = new cesium_animated_property_1.CesiumAnimatedProperty.AnimatePositionSeries({
|
|
576
|
-
posses: series,
|
|
577
|
-
viewer: params.viewer,
|
|
578
|
-
animateFromPos3d: prevPos3d,
|
|
579
|
-
animateFromPos3dTimeStart: prevStartTime
|
|
580
|
-
});
|
|
581
|
-
cEntity.position = new Cesium.CallbackProperty(() => animatePosition.GetValue(), false);
|
|
582
|
-
cEntity.position["CesiumAnimatedProperty.AnimatePositionSeries"] = animatePosition;
|
|
583
|
-
}
|
|
584
|
-
else {
|
|
585
|
-
const pos3d = entity_utils_1.EntityUtils.GetPos({
|
|
586
|
-
viewer: params.viewer,
|
|
587
|
-
entity,
|
|
588
|
-
recordHeightRef: heightRef,
|
|
589
|
-
returnHeightRef: heightRef,
|
|
590
|
-
allowRendered: false
|
|
591
|
-
});
|
|
592
|
-
if (!prevPos3d || !Cesium.Cartesian3.equals(prevPos3d, pos3d)) {
|
|
593
|
-
animatePosition = new cesium_animated_property_1.CesiumAnimatedProperty.AnimatePosition({
|
|
594
|
-
durationMs: 200,
|
|
595
|
-
targetPos3d: pos3d,
|
|
596
|
-
viewer: params.viewer,
|
|
597
|
-
startPos3d: prevPos3d
|
|
598
|
-
});
|
|
599
|
-
cEntity.position = new Cesium.CallbackProperty(() => animatePosition.GetValue(), false);
|
|
600
|
-
}
|
|
601
|
-
}
|
|
602
|
-
// We'll use "SetDefaultColor" to updating the internal reference and to allow for an animation.
|
|
603
|
-
cesium_entity_styler_1.CesiumEntityStyler.SetDefaultColor({
|
|
604
|
-
color: cColor,
|
|
605
|
-
entity: cEntity,
|
|
606
|
-
viewer: params.viewer,
|
|
607
|
-
override: true,
|
|
608
|
-
requestRender: false
|
|
609
|
-
});
|
|
610
|
-
cEntity.show = true;
|
|
611
|
-
cEntity.billboard._billboardImgKey = imgKey;
|
|
612
|
-
}
|
|
613
|
-
cEntity.billboard._billboardSize = Math.ceil(circleBillboard.height / 2);
|
|
614
|
-
}
|
|
615
|
-
// Generate a polyline 'track' for the historic data.
|
|
616
|
-
// We do this for historic data that exists and is moving.
|
|
617
|
-
if (shouldShowTrack && animatePosition && animatePosition instanceof cesium_animated_property_1.CesiumAnimatedProperty.AnimatePositionSeries && animatePosition.GetSeries) {
|
|
618
|
-
const lStyle = (_d = (_c = params.fullStyle) === null || _c === void 0 ? void 0 : _c.polylineStyle) !== null && _d !== void 0 ? _d : {};
|
|
619
|
-
const bColor = lStyle.lineColor ? bruce_models_1.Calculator.GetColor(lStyle.lineColor, entity, params.tags) : null;
|
|
620
|
-
const cColor = bColor ? (0, cesium_utils_1.ColorToCColor)(bColor) : Cesium.Color.fromCssColorString("rgba(255, 193, 7, 0.8)");
|
|
621
|
-
let width = lStyle.lineWidth ? (0, js_utils_1.EnsureNumber)(bruce_models_1.Calculator.GetNumber(lStyle.lineWidth, entity, params.tags)) : 2;
|
|
622
|
-
if (width == null) {
|
|
623
|
-
width = 2;
|
|
624
|
-
}
|
|
625
|
-
width = (0, js_utils_1.EnsureNumber)(width);
|
|
626
|
-
const lHeightRef = getHeightRef(lStyle, heightRef);
|
|
627
|
-
let trackEntity = siblings === null || siblings === void 0 ? void 0 : siblings[0];
|
|
628
|
-
if (!trackEntity || !trackEntity.polyline) {
|
|
629
|
-
trackEntity = new Cesium.Entity({
|
|
630
|
-
id: bruce_models_1.ObjectUtils.UId(15),
|
|
631
|
-
polyline: {
|
|
632
|
-
positions: [],
|
|
633
|
-
width: width,
|
|
634
|
-
material: cColor,
|
|
635
|
-
clampToGround: lHeightRef == Cesium.HeightReference.CLAMP_TO_GROUND,
|
|
636
|
-
zIndex: 0,
|
|
637
|
-
classificationType: Cesium.ClassificationType.BOTH,
|
|
638
|
-
show: true
|
|
639
|
-
},
|
|
640
|
-
position: (0, cesium_utils_1.GetCValue)(params.viewer, cEntity.position),
|
|
641
|
-
});
|
|
642
|
-
// Visual was updated in a way that needs a full refresh.
|
|
643
|
-
if (params.rego) {
|
|
644
|
-
params.rego.stale = true;
|
|
645
|
-
}
|
|
646
|
-
}
|
|
647
|
-
trackEntity._parentEntity = null;
|
|
648
|
-
trackEntity._noEdit = true;
|
|
649
|
-
trackEntity.polyline.positions = new Cesium.CallbackProperty(() => {
|
|
650
|
-
return animatePosition.GetSeries();
|
|
651
|
-
}, false);
|
|
652
|
-
// We'll use "SetDefaultColor" to updating the internal reference and to allow for an animation.
|
|
653
|
-
// WARNING: polyline does not support animation (yet?).
|
|
654
|
-
cesium_entity_styler_1.CesiumEntityStyler.SetDefaultColor({
|
|
655
|
-
color: cColor,
|
|
656
|
-
entity: trackEntity,
|
|
657
|
-
viewer: params.viewer,
|
|
658
|
-
override: true,
|
|
659
|
-
requestRender: false
|
|
660
|
-
});
|
|
661
|
-
siblings.push(trackEntity);
|
|
662
|
-
trackEntity._parentEntity = cEntity;
|
|
663
|
-
}
|
|
664
|
-
cEntity._siblingGraphics = siblings;
|
|
665
|
-
return cEntity;
|
|
666
|
-
}
|
|
667
|
-
EntityRenderEnginePoint.Render = Render;
|
|
668
|
-
/**
|
|
669
|
-
* Renders a group of point Entities.
|
|
670
|
-
* This will take an optional set of prior rendered Cesium Entities to update rather than create from scratch.
|
|
671
|
-
* @param params
|
|
672
|
-
* @returns
|
|
673
|
-
*/
|
|
674
|
-
async function RenderGroup(params) {
|
|
675
|
-
var _a, _b, _c, _d, _e;
|
|
676
|
-
const api = params.apiGetter.getApi();
|
|
677
|
-
const cEntities = new Map();
|
|
678
|
-
for (let i = 0; i < params.entities.length; i++) {
|
|
679
|
-
const entity = params.entities[i];
|
|
680
|
-
const zoomItem = params.zoomItems[entity.Bruce.ID];
|
|
681
|
-
const style = zoomItem.StyleID != -1 ? (_a = (await getStyle(api, entity, zoomItem.StyleID))) === null || _a === void 0 ? void 0 : _a.Settings : zoomItem.Style;
|
|
682
|
-
const tagIds = entity.Bruce["Layer.ID"];
|
|
683
|
-
let tags = [];
|
|
684
|
-
if (tagIds && tagIds.length > 0) {
|
|
685
|
-
tags = (await bruce_models_1.EntityTag.GetListByIds({
|
|
686
|
-
api,
|
|
687
|
-
tagIds
|
|
688
|
-
})).tags;
|
|
689
|
-
}
|
|
690
|
-
const pStyle = (_b = style === null || style === void 0 ? void 0 : style.pointStyle) !== null && _b !== void 0 ? _b : {};
|
|
691
|
-
let rego = null;
|
|
692
|
-
// Only used for historic tracks right now.
|
|
693
|
-
// So won't bother getting it if we don't have historic data.
|
|
694
|
-
if ((_c = params.entitiesHistoric) === null || _c === void 0 ? void 0 : _c[entity.Bruce.ID]) {
|
|
695
|
-
rego = params.visualRegister.GetRego({
|
|
696
|
-
entityId: entity.Bruce.ID,
|
|
697
|
-
menuItemId: params.menuItemId
|
|
698
|
-
});
|
|
699
|
-
}
|
|
700
|
-
const cEntity = await Render({
|
|
701
|
-
entity: entity,
|
|
702
|
-
style: pStyle,
|
|
703
|
-
tags: tags,
|
|
704
|
-
viewer: params.viewer,
|
|
705
|
-
api: api,
|
|
706
|
-
apiGetter: params.apiGetter,
|
|
707
|
-
maxDistance: zoomItem.MaxZoom,
|
|
708
|
-
minDistance: zoomItem.MinZoom,
|
|
709
|
-
rendered: (_d = params.rendered) === null || _d === void 0 ? void 0 : _d.get(entity.Bruce.ID),
|
|
710
|
-
entityHistoric: (_e = params.entitiesHistoric) === null || _e === void 0 ? void 0 : _e[entity.Bruce.ID],
|
|
711
|
-
entityHistoricDrawTrack: params.entityHistoricDrawTrack,
|
|
712
|
-
fullStyle: style,
|
|
713
|
-
rego: rego
|
|
714
|
-
});
|
|
715
|
-
if (cEntity) {
|
|
716
|
-
const name = await getName(api, entity);
|
|
717
|
-
cEntity.name = name;
|
|
718
|
-
cEntity._renderGroup = entity_render_engine_1.EntityRenderEngine.GetRenderGroupId(zoomItem);
|
|
719
|
-
}
|
|
720
|
-
cEntities.set(entity.Bruce.ID, cEntity);
|
|
721
|
-
}
|
|
722
|
-
return cEntities;
|
|
723
|
-
}
|
|
724
|
-
EntityRenderEnginePoint.RenderGroup = RenderGroup;
|
|
725
|
-
})(EntityRenderEnginePoint = exports.EntityRenderEnginePoint || (exports.EntityRenderEnginePoint = {}));
|
|
726
|
-
// Cache of billboards to avoid regenerating them for the same size and color.
|
|
727
|
-
const _billboardCache = new bruce_models_1.LRUCache(150);
|
|
728
|
-
const POINT_BILLBOARD_PADDING = 1;
|
|
729
|
-
const createCircleBillboard = (size, colorCss) => {
|
|
730
|
-
const key = size + "-" + colorCss;
|
|
731
|
-
const cacheData = _billboardCache.Get(key);
|
|
732
|
-
if ((cacheData === null || cacheData === void 0 ? void 0 : cacheData.canvasDataUri) && typeof (cacheData === null || cacheData === void 0 ? void 0 : cacheData.canvasDataUri) == "string") {
|
|
733
|
-
return cacheData;
|
|
734
|
-
}
|
|
735
|
-
// Slight padding to avoid corners clipping.
|
|
736
|
-
const canvasSize = size + (POINT_BILLBOARD_PADDING * 4);
|
|
737
|
-
const canvas = document.createElement("canvas");
|
|
738
|
-
canvas.width = canvasSize;
|
|
739
|
-
canvas.height = canvasSize;
|
|
740
|
-
const context = canvas.getContext("2d");
|
|
741
|
-
context.beginPath();
|
|
742
|
-
context.arc(canvasSize / 2, canvasSize / 2, size / 2, 0, 2 * Math.PI, false);
|
|
743
|
-
context.fillStyle = colorCss;
|
|
744
|
-
context.fill();
|
|
745
|
-
const data = {
|
|
746
|
-
canvasDataUri: canvas.toDataURL("image/png"),
|
|
747
|
-
colorCss,
|
|
748
|
-
size,
|
|
749
|
-
height: canvasSize,
|
|
750
|
-
width: canvasSize
|
|
751
|
-
};
|
|
752
|
-
_billboardCache.Set(key, data);
|
|
753
|
-
return data;
|
|
754
|
-
};
|
|
755
|
-
const createImageBillboard = (url) => {
|
|
756
|
-
const cacheKey = "image-" + url;
|
|
757
|
-
const cacheData = _billboardCache.Get(cacheKey);
|
|
758
|
-
if (cacheData) {
|
|
759
|
-
return cacheData;
|
|
760
|
-
}
|
|
761
|
-
const prom = new Promise(async (res, rej) => {
|
|
762
|
-
try {
|
|
763
|
-
const response = await fetch(url);
|
|
764
|
-
const blob = await response.blob();
|
|
765
|
-
const canvas = document.createElement("canvas");
|
|
766
|
-
const image = new Image();
|
|
767
|
-
image.onload = () => {
|
|
768
|
-
canvas.width = image.width;
|
|
769
|
-
canvas.height = image.height;
|
|
770
|
-
const context = canvas.getContext("2d");
|
|
771
|
-
context.drawImage(image, 0, 0);
|
|
772
|
-
const data = {
|
|
773
|
-
canvasDataUri: canvas.toDataURL("image/png"),
|
|
774
|
-
height: image.height
|
|
775
|
-
};
|
|
776
|
-
res(data);
|
|
777
|
-
};
|
|
778
|
-
image.onerror = (e) => {
|
|
779
|
-
rej(e);
|
|
780
|
-
};
|
|
781
|
-
image.src = URL.createObjectURL(blob);
|
|
782
|
-
}
|
|
783
|
-
catch (e) {
|
|
784
|
-
rej(e);
|
|
785
|
-
}
|
|
786
|
-
});
|
|
787
|
-
_billboardCache.Set(cacheKey, prom);
|
|
788
|
-
return prom;
|
|
789
|
-
};
|
|
790
|
-
/**
|
|
791
|
-
* Turns a hard-coded file url into pieces so we can properly load it using our libraries rather than directly.
|
|
792
|
-
* @param url eg: https://demoplantprocess.api.nextspace-uat.net/file/4c29bdf8-1f0b-4739-b0ee-421ea07ba4e5.png
|
|
793
|
-
*/
|
|
794
|
-
function extractMetadataFromFileUrl(url) {
|
|
795
|
-
var _a;
|
|
796
|
-
url = url.toLowerCase();
|
|
797
|
-
// Bzzt, invalid url format for our purposes.
|
|
798
|
-
if (!url.includes(".api.") || !url.includes("/file/")) {
|
|
799
|
-
return null;
|
|
800
|
-
}
|
|
801
|
-
url = url.replace("https://", "").replace("http://", "");
|
|
802
|
-
let envId = bruce_models_1.Api.EEnv.PROD;
|
|
803
|
-
if (url.includes("-dev.net")) {
|
|
804
|
-
envId = bruce_models_1.Api.EEnv.DEV;
|
|
805
|
-
}
|
|
806
|
-
else if (url.includes("-stg.net")) {
|
|
807
|
-
envId = bruce_models_1.Api.EEnv.STG;
|
|
808
|
-
}
|
|
809
|
-
else if (url.includes("-uat.net")) {
|
|
810
|
-
envId = bruce_models_1.Api.EEnv.UAT;
|
|
811
|
-
}
|
|
812
|
-
const parts = url.split("/");
|
|
813
|
-
const host = parts[0];
|
|
814
|
-
const hostParts = host.split(".");
|
|
815
|
-
const accountId = hostParts[0];
|
|
816
|
-
let fileId = (_a = parts[2]) !== null && _a !== void 0 ? _a : "";
|
|
817
|
-
if (fileId.includes("?")) {
|
|
818
|
-
fileId = fileId.split("?")[0];
|
|
819
|
-
}
|
|
820
|
-
if (fileId.includes(".")) {
|
|
821
|
-
fileId = fileId.split(".")[0];
|
|
822
|
-
}
|
|
823
|
-
if (!fileId || !accountId) {
|
|
824
|
-
return null;
|
|
825
|
-
}
|
|
826
|
-
return {
|
|
827
|
-
accountId,
|
|
828
|
-
fileId: fileId,
|
|
829
|
-
envId: envId
|
|
830
|
-
};
|
|
831
|
-
}
|
|
832
|
-
function getHeightRef(style, defaultStyle) {
|
|
833
|
-
var _a;
|
|
834
|
-
let heightRef = defaultStyle == null ? Cesium.HeightReference.CLAMP_TO_GROUND : defaultStyle;
|
|
835
|
-
const altOptionId = (_a = style === null || style === void 0 ? void 0 : style.altitudeOption) === null || _a === void 0 ? void 0 : _a.id;
|
|
836
|
-
if (altOptionId == 0) {
|
|
837
|
-
heightRef = Cesium.HeightReference.CLAMP_TO_GROUND;
|
|
838
|
-
}
|
|
839
|
-
else if (altOptionId == 1) {
|
|
840
|
-
heightRef = Cesium.HeightReference.NONE;
|
|
841
|
-
}
|
|
842
|
-
else if (altOptionId == 2) {
|
|
843
|
-
heightRef = Cesium.HeightReference.RELATIVE_TO_GROUND;
|
|
844
|
-
}
|
|
845
|
-
return heightRef;
|
|
846
|
-
}
|
|
847
|
-
function getCylinderStyleExtrusion(style, entity, tags, heightRef) {
|
|
848
|
-
if (!style) {
|
|
849
|
-
return null;
|
|
850
|
-
}
|
|
851
|
-
try {
|
|
852
|
-
const extrusion = +bruce_models_1.Calculator.GetNumber(style, entity, tags);
|
|
853
|
-
if (!extrusion && extrusion != 0) {
|
|
854
|
-
return null;
|
|
855
|
-
}
|
|
856
|
-
/*
|
|
857
|
-
Cesium extrudes in strange way.
|
|
858
|
-
If you want something that is 50 meters above sea, and 5 meters tall,
|
|
859
|
-
You need to extrude by 55 meters, if you extrude by 5 it will extrude from sea and look flat.
|
|
860
|
-
*/
|
|
861
|
-
const height = (0, js_utils_1.EnsureNumber)(bruce_models_1.Entity.GetValue({
|
|
862
|
-
entity: entity,
|
|
863
|
-
path: ["Bruce", "Location", "altitude"]
|
|
864
|
-
}), 0);
|
|
865
|
-
return heightRef != Cesium.HeightReference.CLAMP_TO_GROUND ? extrusion + height : extrusion;
|
|
866
|
-
}
|
|
867
|
-
catch (e) {
|
|
868
|
-
console.error(e);
|
|
869
|
-
}
|
|
870
|
-
return 0;
|
|
871
|
-
}
|
|
872
|
-
function getCylinderExtrusion(entity, tags, heightRef, style) {
|
|
873
|
-
const data = {
|
|
874
|
-
value: undefined,
|
|
875
|
-
exHeightRef: heightRef == Cesium.HeightReference.CLAMP_TO_GROUND ? Cesium.HeightReference.RELATIVE_TO_GROUND : heightRef
|
|
876
|
-
};
|
|
877
|
-
const extrusion = getCylinderStyleExtrusion(style, entity, tags, heightRef);
|
|
878
|
-
if (extrusion) {
|
|
879
|
-
data.value = extrusion;
|
|
880
|
-
}
|
|
881
|
-
if (data.value != undefined) {
|
|
882
|
-
data.value = (0, js_utils_1.EnsureNumber)(data.value);
|
|
883
|
-
}
|
|
884
|
-
return data;
|
|
885
|
-
}
|
|
886
|
-
async function getName(api, entity) {
|
|
887
|
-
try {
|
|
888
|
-
const typeId = entity.Bruce["EntityType.ID"];
|
|
889
|
-
let type = null;
|
|
890
|
-
if (typeId) {
|
|
891
|
-
type = (await bruce_models_1.EntityType.Get({
|
|
892
|
-
api,
|
|
893
|
-
entityTypeId: typeId
|
|
894
|
-
})).entityType;
|
|
895
|
-
}
|
|
896
|
-
if (type) {
|
|
897
|
-
const name = bruce_models_1.Entity.CalculateName({
|
|
898
|
-
entity,
|
|
899
|
-
type,
|
|
900
|
-
defaultToId: false
|
|
901
|
-
});
|
|
902
|
-
return name ? name : "Unnamed Entity";
|
|
903
|
-
}
|
|
904
|
-
}
|
|
905
|
-
catch (e) {
|
|
906
|
-
let hideError = false;
|
|
907
|
-
// TODO: we need a util for extracting code + message rather than writing all this every time.
|
|
908
|
-
if (e && typeof e == "object" && e.ERROR) {
|
|
909
|
-
const error = e.ERROR;
|
|
910
|
-
const code = error && typeof error == "object" ? error.Code : "";
|
|
911
|
-
// Avoiding logging a common error.
|
|
912
|
-
// This happens when rendering entities that don't have records.
|
|
913
|
-
hideError = String(code).toLowerCase() == "notfound";
|
|
914
|
-
}
|
|
915
|
-
if (!hideError) {
|
|
916
|
-
console.error(e);
|
|
917
|
-
}
|
|
918
|
-
}
|
|
919
|
-
return "Unknown entity";
|
|
920
|
-
}
|
|
921
|
-
async function getStyle(api, entity, styleId) {
|
|
922
|
-
let style = null;
|
|
923
|
-
if (styleId && styleId != -1) {
|
|
924
|
-
try {
|
|
925
|
-
style = (await bruce_models_1.Style.Get({
|
|
926
|
-
api,
|
|
927
|
-
styleId
|
|
928
|
-
})).style;
|
|
929
|
-
}
|
|
930
|
-
// Probably deleted.
|
|
931
|
-
catch (e) {
|
|
932
|
-
console.error(e);
|
|
933
|
-
}
|
|
934
|
-
}
|
|
935
|
-
if (!style) {
|
|
936
|
-
const typeId = entity.Bruce["EntityType.ID"];
|
|
937
|
-
if (typeId) {
|
|
938
|
-
try {
|
|
939
|
-
const { entityType: type } = await bruce_models_1.EntityType.Get({
|
|
940
|
-
api,
|
|
941
|
-
entityTypeId: typeId
|
|
942
|
-
});
|
|
943
|
-
if (type["DisplaySetting.ID"]) {
|
|
944
|
-
try {
|
|
945
|
-
style = (await bruce_models_1.Style.Get({
|
|
946
|
-
api,
|
|
947
|
-
styleId: type["DisplaySetting.ID"]
|
|
948
|
-
})).style;
|
|
949
|
-
}
|
|
950
|
-
catch (e) {
|
|
951
|
-
let hideError = false;
|
|
952
|
-
// TODO: we need a util for extracting code + message rather than writing all this every time.
|
|
953
|
-
if (e && typeof e == "object" && e.ERROR) {
|
|
954
|
-
const error = e.ERROR;
|
|
955
|
-
const code = error && typeof error == "object" ? error.Code : "";
|
|
956
|
-
// Avoiding logging a common error.
|
|
957
|
-
// This happens when rendering entities that don't have records.
|
|
958
|
-
hideError = String(code).toLowerCase() == "notfound";
|
|
959
|
-
}
|
|
960
|
-
if (!hideError) {
|
|
961
|
-
console.error(e);
|
|
962
|
-
}
|
|
963
|
-
}
|
|
964
|
-
}
|
|
965
|
-
}
|
|
966
|
-
catch (e) {
|
|
967
|
-
let hideError = false;
|
|
968
|
-
// TODO: we need a util for extracting code + message rather than writing all this every time.
|
|
969
|
-
if (e && typeof e == "object" && e.ERROR) {
|
|
970
|
-
const error = e.ERROR;
|
|
971
|
-
const code = error && typeof error == "object" ? error.Code : "";
|
|
972
|
-
// Avoiding logging a common error.
|
|
973
|
-
// This happens when rendering entities that don't have records.
|
|
974
|
-
hideError = String(code).toLowerCase() == "notfound";
|
|
975
|
-
}
|
|
976
|
-
if (!hideError) {
|
|
977
|
-
console.error(e);
|
|
978
|
-
}
|
|
979
|
-
}
|
|
980
|
-
}
|
|
981
|
-
}
|
|
982
|
-
return style;
|
|
983
|
-
}
|
|
984
|
-
//# sourceMappingURL=entity-render-engine-point.js.map
|