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,689 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EntityRenderEngineModel3d = 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 cesium_entity_styler_1 = require("../utils/cesium-entity-styler");
|
|
12
|
-
const visual_register_culler_1 = require("./visual-register-culler");
|
|
13
|
-
/**
|
|
14
|
-
* Handles 3D model rendering.
|
|
15
|
-
*/
|
|
16
|
-
var EntityRenderEngineModel3d;
|
|
17
|
-
(function (EntityRenderEngineModel3d) {
|
|
18
|
-
/**
|
|
19
|
-
* Renders a single 3D model entity.
|
|
20
|
-
* This takes an optional prior Cesium Entity to update rather than create from scratch.
|
|
21
|
-
* @param params
|
|
22
|
-
* @returns
|
|
23
|
-
*/
|
|
24
|
-
function Render(params) {
|
|
25
|
-
var _a, _b;
|
|
26
|
-
const entity = params.entity;
|
|
27
|
-
if (!params.entityHistoric) {
|
|
28
|
-
params.entityHistoric = [];
|
|
29
|
-
}
|
|
30
|
-
const transform = bruce_models_1.Entity.GetValue({
|
|
31
|
-
entity: entity,
|
|
32
|
-
path: ["Bruce", "Transform"]
|
|
33
|
-
});
|
|
34
|
-
let heading = (0, js_utils_1.EnsureNumber)(transform === null || transform === void 0 ? void 0 : transform.heading);
|
|
35
|
-
heading = (heading + 90) % 360;
|
|
36
|
-
const pitch = (0, js_utils_1.EnsureNumber)(transform === null || transform === void 0 ? void 0 : transform.pitch);
|
|
37
|
-
const roll = (0, js_utils_1.EnsureNumber)(transform === null || transform === void 0 ? void 0 : transform.roll);
|
|
38
|
-
let scale = (0, js_utils_1.EnsureNumber)(transform === null || transform === void 0 ? void 0 : transform.scale, 1);
|
|
39
|
-
if (scale <= 0) {
|
|
40
|
-
scale = 1;
|
|
41
|
-
}
|
|
42
|
-
const style = params.style;
|
|
43
|
-
let styleScale = (style === null || style === void 0 ? void 0 : style.scale) ? bruce_models_1.Calculator.GetNumber(style === null || style === void 0 ? void 0 : style.scale, entity, params.tags) : null;
|
|
44
|
-
styleScale = (0, js_utils_1.EnsureNumber)(styleScale ? styleScale : 1);
|
|
45
|
-
if (styleScale <= 0) {
|
|
46
|
-
styleScale = 1;
|
|
47
|
-
}
|
|
48
|
-
let heightRef = getHeightRef(style, Cesium.HeightReference.RELATIVE_TO_GROUND);
|
|
49
|
-
let pos3d = entity_utils_1.EntityUtils.GetPos({
|
|
50
|
-
viewer: params.viewer,
|
|
51
|
-
entity,
|
|
52
|
-
recordHeightRef: heightRef,
|
|
53
|
-
returnHeightRef: heightRef,
|
|
54
|
-
allowRendered: false
|
|
55
|
-
});
|
|
56
|
-
let blendMode = null;
|
|
57
|
-
let blendAmount = null;
|
|
58
|
-
let color = null;
|
|
59
|
-
if (style === null || style === void 0 ? void 0 : style.customize) {
|
|
60
|
-
blendMode = style.fillColorBlendMode;
|
|
61
|
-
if (!blendMode) {
|
|
62
|
-
blendMode = Cesium.ColorBlendMode.HIGHLIGHT;
|
|
63
|
-
}
|
|
64
|
-
if (blendMode == Cesium.ColorBlendMode.MIX) {
|
|
65
|
-
blendAmount = style.fillColorBlendAmount;
|
|
66
|
-
if (!blendAmount) {
|
|
67
|
-
blendAmount = 0.5;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
const bColor = bruce_models_1.Calculator.GetColor(style.fillColor, entity, params.tags);
|
|
71
|
-
if (bColor) {
|
|
72
|
-
color = (0, cesium_utils_1.ColorToCColor)(bColor);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
let siblings = [];
|
|
76
|
-
let animateScale = null;
|
|
77
|
-
let animatePosition = null;
|
|
78
|
-
let shouldShowTrack = false;
|
|
79
|
-
const prepareExistingGraphic = (cEntity, maxSiblings = 0) => {
|
|
80
|
-
// Gather entity in case previous version had sibling graphics we no longer need.
|
|
81
|
-
const parts = entity_utils_1.EntityUtils.GatherEntity({
|
|
82
|
-
entity: cEntity,
|
|
83
|
-
});
|
|
84
|
-
if (parts.length > 1) {
|
|
85
|
-
// We'll cull all except the allowed number of siblings.
|
|
86
|
-
cEntity._siblingGraphics = cEntity._siblingGraphics.slice(0, maxSiblings);
|
|
87
|
-
// We'll remove all that aren't in the allowed (direct) list.
|
|
88
|
-
for (let i = 0; i < parts.length - 1; i++) {
|
|
89
|
-
const part = parts[i];
|
|
90
|
-
if (part && part instanceof Cesium.Entity && params.viewer.entities.contains(part) && !cEntity._siblingGraphics.includes(part)) {
|
|
91
|
-
params.viewer.entities.remove(part);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
if (cEntity._parentEntity) {
|
|
95
|
-
console.warn("Point.Render: Parent entity was not null. This should not happen.");
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
siblings = cEntity._siblingGraphics;
|
|
99
|
-
cEntity._siblingGraphics = [];
|
|
100
|
-
};
|
|
101
|
-
const updateShouldShowTrack = () => {
|
|
102
|
-
var _a, _b, _c;
|
|
103
|
-
if (!params.entityHistoricDrawTrack) {
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
if ((_a = params.entityHistoric) === null || _a === void 0 ? void 0 : _a.length) {
|
|
107
|
-
const lStyle = (_c = (_b = params.fullStyle) === null || _b === void 0 ? void 0 : _b.polylineStyle) !== null && _c !== void 0 ? _c : {};
|
|
108
|
-
let width = lStyle.width ? (0, js_utils_1.EnsureNumber)(bruce_models_1.Calculator.GetNumber(lStyle.width, entity, params.tags)) : 2;
|
|
109
|
-
if (width == null) {
|
|
110
|
-
width = 2;
|
|
111
|
-
}
|
|
112
|
-
width = (0, js_utils_1.EnsureNumber)(width);
|
|
113
|
-
if (width > 0.01) {
|
|
114
|
-
const bColor = lStyle.lineColor ? bruce_models_1.Calculator.GetColor(lStyle.lineColor, entity, params.tags) : null;
|
|
115
|
-
const cColor = bColor ? (0, cesium_utils_1.ColorToCColor)(bColor) : Cesium.Color.fromCssColorString("rgba(255, 193, 7, 0.8)");
|
|
116
|
-
if (cColor.alpha > 0) {
|
|
117
|
-
const seriesTrackPosses = cesium_animated_property_1.CesiumAnimatedProperty.GetSeriesPossesForHistoricEntity(params.viewer, heightRef, heightRef, params.entityHistoric);
|
|
118
|
-
seriesTrackPosses.reverse();
|
|
119
|
-
let posses = seriesTrackPosses.map(x => x.pos3d);
|
|
120
|
-
posses = (0, cesium_utils_1.CullDuplicateCPosses)(posses);
|
|
121
|
-
shouldShowTrack = posses.length > 1;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
;
|
|
126
|
-
};
|
|
127
|
-
let cEntity = params.rendered;
|
|
128
|
-
if (!cEntity || !cEntity.model) {
|
|
129
|
-
updateShouldShowTrack();
|
|
130
|
-
if (!color) {
|
|
131
|
-
color = Cesium.Color.WHITE.clone();
|
|
132
|
-
}
|
|
133
|
-
const animateColor = new cesium_animated_property_1.CesiumAnimatedProperty.AnimateColor({
|
|
134
|
-
durationMs: 1500,
|
|
135
|
-
targetColor: color,
|
|
136
|
-
startColor: color.clone().withAlpha(0.001),
|
|
137
|
-
viewer: params.viewer
|
|
138
|
-
});
|
|
139
|
-
let position = null;
|
|
140
|
-
// If we have a series of time-based positions then we'll animate as time changes.
|
|
141
|
-
const series = cesium_animated_property_1.CesiumAnimatedProperty.GetSeriesPossesForHistoricEntity(params.viewer, heightRef, heightRef, params.entityHistoric);
|
|
142
|
-
if (series.length > 1) {
|
|
143
|
-
animatePosition = new cesium_animated_property_1.CesiumAnimatedProperty.AnimatePositionSeries({
|
|
144
|
-
posses: series,
|
|
145
|
-
viewer: params.viewer,
|
|
146
|
-
pitch: pitch,
|
|
147
|
-
roll: roll
|
|
148
|
-
});
|
|
149
|
-
position = new Cesium.CallbackProperty(() => animatePosition.GetValue(), false);
|
|
150
|
-
position["CesiumAnimatedProperty.AnimatePositionSeries"] = animatePosition;
|
|
151
|
-
}
|
|
152
|
-
else {
|
|
153
|
-
position = new Cesium.CallbackProperty(() => entity_utils_1.EntityUtils.GetPos({
|
|
154
|
-
viewer: params.viewer,
|
|
155
|
-
entity,
|
|
156
|
-
recordHeightRef: heightRef,
|
|
157
|
-
returnHeightRef: heightRef,
|
|
158
|
-
allowRendered: false
|
|
159
|
-
}), true);
|
|
160
|
-
}
|
|
161
|
-
let getOrient;
|
|
162
|
-
if (animatePosition && animatePosition instanceof cesium_animated_property_1.CesiumAnimatedProperty.AnimatePositionSeries && animatePosition.GetOrient) {
|
|
163
|
-
getOrient = new Cesium.CallbackProperty(() => {
|
|
164
|
-
return animatePosition.GetOrient();
|
|
165
|
-
}, false);
|
|
166
|
-
}
|
|
167
|
-
else {
|
|
168
|
-
const hpr = new Cesium.HeadingPitchRoll(Cesium.Math.toRadians(heading), Cesium.Math.toRadians(pitch), Cesium.Math.toRadians(roll));
|
|
169
|
-
getOrient = new Cesium.CallbackProperty(() => {
|
|
170
|
-
return Cesium.Transforms.headingPitchRollQuaternion(pos3d, hpr);
|
|
171
|
-
}, false);
|
|
172
|
-
}
|
|
173
|
-
cEntity = new Cesium.Entity({
|
|
174
|
-
id: bruce_models_1.ObjectUtils.UId(15),
|
|
175
|
-
model: {
|
|
176
|
-
uri: params.lodUrl,
|
|
177
|
-
heightReference: heightRef,
|
|
178
|
-
scale: new Cesium.CallbackProperty(() => scale * styleScale, true),
|
|
179
|
-
shadows: Cesium.ShadowMode.ENABLED,
|
|
180
|
-
colorBlendAmount: blendAmount,
|
|
181
|
-
colorBlendMode: blendMode,
|
|
182
|
-
color: new Cesium.CallbackProperty(() => {
|
|
183
|
-
const color = animateColor.GetColor();
|
|
184
|
-
if (animateColor.IsDone() && (cEntity === null || cEntity === void 0 ? void 0 : cEntity.model)) {
|
|
185
|
-
cEntity.model.color = new Cesium.CallbackProperty(() => color, true);
|
|
186
|
-
}
|
|
187
|
-
return color;
|
|
188
|
-
}, false),
|
|
189
|
-
distanceDisplayCondition: entity_render_engine_1.EntityRenderEngine.GetDisplayCondition(params.minDistance, params.maxDistance)
|
|
190
|
-
},
|
|
191
|
-
orientation: getOrient,
|
|
192
|
-
position: position,
|
|
193
|
-
show: true
|
|
194
|
-
});
|
|
195
|
-
cesium_entity_styler_1.CesiumEntityStyler.BakeDefaultColor({
|
|
196
|
-
entity: cEntity,
|
|
197
|
-
viewer: params.viewer,
|
|
198
|
-
override: true,
|
|
199
|
-
colors: {
|
|
200
|
-
"model": color
|
|
201
|
-
},
|
|
202
|
-
refresh: false
|
|
203
|
-
});
|
|
204
|
-
}
|
|
205
|
-
else {
|
|
206
|
-
updateShouldShowTrack();
|
|
207
|
-
prepareExistingGraphic(cEntity, shouldShowTrack ? 1 : 0);
|
|
208
|
-
const currentUri = (0, cesium_utils_1.GetCValue)(params.viewer, cEntity.model.uri);
|
|
209
|
-
if (currentUri != params.lodUrl) {
|
|
210
|
-
cEntity.model.uri = new Cesium.ConstantProperty(params.lodUrl);
|
|
211
|
-
}
|
|
212
|
-
cEntity.model.heightReference = new Cesium.ConstantProperty(heightRef);
|
|
213
|
-
cEntity.model.shadows = new Cesium.ConstantProperty(Cesium.ShadowMode.ENABLED);
|
|
214
|
-
cEntity.model.colorBlendAmount = new Cesium.ConstantProperty(blendAmount);
|
|
215
|
-
cEntity.model.colorBlendMode = new Cesium.ConstantProperty(blendMode);
|
|
216
|
-
cEntity.model.distanceDisplayCondition = new Cesium.ConstantProperty(entity_render_engine_1.EntityRenderEngine.GetDisplayCondition(params.minDistance, params.maxDistance));
|
|
217
|
-
const prevPos3d = (0, cesium_utils_1.GetCValue)(params.viewer, cEntity.position);
|
|
218
|
-
let prevStartTime = null;
|
|
219
|
-
if (cEntity.position && cEntity.position["CesiumAnimatedProperty.AnimatePositionSeries"]) {
|
|
220
|
-
prevStartTime = cEntity.position["CesiumAnimatedProperty.AnimatePositionSeries"].GetAnimateFromDateTime();
|
|
221
|
-
}
|
|
222
|
-
// If we have a series of time-based positions then we'll animate as time changes.
|
|
223
|
-
const series = cesium_animated_property_1.CesiumAnimatedProperty.GetSeriesPossesForHistoricEntity(params.viewer, heightRef, heightRef, params.entityHistoric);
|
|
224
|
-
if (series.length > 1) {
|
|
225
|
-
animatePosition = new cesium_animated_property_1.CesiumAnimatedProperty.AnimatePositionSeries({
|
|
226
|
-
posses: series,
|
|
227
|
-
viewer: params.viewer,
|
|
228
|
-
pitch: pitch,
|
|
229
|
-
roll: roll,
|
|
230
|
-
animateFromPos3d: prevPos3d,
|
|
231
|
-
animateFromPos3dTimeStart: prevStartTime
|
|
232
|
-
});
|
|
233
|
-
cEntity.position = new Cesium.CallbackProperty(() => animatePosition.GetValue(), false);
|
|
234
|
-
cEntity.position["CesiumAnimatedProperty.AnimatePositionSeries"] = animatePosition;
|
|
235
|
-
}
|
|
236
|
-
else {
|
|
237
|
-
const posChanged = !prevPos3d || !Cesium.Cartesian3.equals(prevPos3d, pos3d);
|
|
238
|
-
if (posChanged) {
|
|
239
|
-
animatePosition = new cesium_animated_property_1.CesiumAnimatedProperty.AnimatePosition({
|
|
240
|
-
durationMs: 200,
|
|
241
|
-
targetPos3d: pos3d,
|
|
242
|
-
viewer: params.viewer,
|
|
243
|
-
startPos3d: prevPos3d
|
|
244
|
-
});
|
|
245
|
-
cEntity.position = new Cesium.CallbackProperty(() => animatePosition.GetValue(), false);
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
if (animatePosition && animatePosition instanceof cesium_animated_property_1.CesiumAnimatedProperty.AnimatePositionSeries && animatePosition.GetOrient) {
|
|
249
|
-
cEntity.orientation = new Cesium.CallbackProperty(() => {
|
|
250
|
-
return animatePosition.GetOrient();
|
|
251
|
-
}, false);
|
|
252
|
-
}
|
|
253
|
-
else {
|
|
254
|
-
const prevHeading = cEntity.model._heading;
|
|
255
|
-
if (prevHeading == null || prevHeading == heading || isNaN(prevHeading)) {
|
|
256
|
-
const hpr = new Cesium.HeadingPitchRoll(Cesium.Math.toRadians(heading), Cesium.Math.toRadians(pitch), Cesium.Math.toRadians(roll));
|
|
257
|
-
const orient = Cesium.Transforms.headingPitchRollQuaternion(pos3d, hpr);
|
|
258
|
-
cEntity.orientation = new Cesium.CallbackProperty(() => orient, true);
|
|
259
|
-
}
|
|
260
|
-
// Animate orientation. We'll calculate the heading based on movement.
|
|
261
|
-
else {
|
|
262
|
-
const animateHeading = new cesium_animated_property_1.CesiumAnimatedProperty.AnimateHeading({
|
|
263
|
-
durationMs: 200,
|
|
264
|
-
targetHeading: heading,
|
|
265
|
-
viewer: params.viewer,
|
|
266
|
-
startHeading: prevHeading
|
|
267
|
-
});
|
|
268
|
-
cEntity.orientation = new Cesium.CallbackProperty(() => {
|
|
269
|
-
const calcHeading = animateHeading.GetValue();
|
|
270
|
-
const hpr = new Cesium.HeadingPitchRoll(Cesium.Math.toRadians(calcHeading), Cesium.Math.toRadians(pitch), Cesium.Math.toRadians(roll));
|
|
271
|
-
const orient = Cesium.Transforms.headingPitchRollQuaternion(pos3d, hpr);
|
|
272
|
-
// We'll stop the costly animation if it's done.
|
|
273
|
-
if (animateHeading.IsDone()) {
|
|
274
|
-
cEntity.orientation = new Cesium.ConstantProperty(orient);
|
|
275
|
-
}
|
|
276
|
-
return orient;
|
|
277
|
-
}, false);
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
// Same file but different scale. We'll animate the scale.
|
|
281
|
-
const prevClientFileId = cEntity.model._clientFileId;
|
|
282
|
-
if (prevClientFileId == params.lodClientFileId) {
|
|
283
|
-
animateScale = new cesium_animated_property_1.CesiumAnimatedProperty.AnimateNumber({
|
|
284
|
-
durationMs: 200,
|
|
285
|
-
targetValue: scale * styleScale,
|
|
286
|
-
viewer: params.viewer,
|
|
287
|
-
startValue: cEntity.model.scale,
|
|
288
|
-
startPaused: true
|
|
289
|
-
});
|
|
290
|
-
cEntity.model.scale = new Cesium.CallbackProperty(() => animateScale.GetValue(), false);
|
|
291
|
-
}
|
|
292
|
-
else {
|
|
293
|
-
cEntity.model.scale = new Cesium.CallbackProperty(() => scale * styleScale, true);
|
|
294
|
-
}
|
|
295
|
-
// We'll use "SetDefaultColor" to updating the internal reference and to allow for an animation.
|
|
296
|
-
// cEntity.model.color = new Cesium.CallbackProperty(() => color, true);
|
|
297
|
-
cesium_entity_styler_1.CesiumEntityStyler.SetDefaultColor({
|
|
298
|
-
color: color ? color : new Cesium.Color(),
|
|
299
|
-
entity: cEntity,
|
|
300
|
-
viewer: params.viewer,
|
|
301
|
-
override: true,
|
|
302
|
-
requestRender: false
|
|
303
|
-
});
|
|
304
|
-
cEntity.show = true;
|
|
305
|
-
}
|
|
306
|
-
const fileRadiusKey = `model3d_${params.lodUrl}_${scale * styleScale}_radius`;
|
|
307
|
-
let heightProm = _fileRadiusCache.Get(fileRadiusKey);
|
|
308
|
-
if (!heightProm) {
|
|
309
|
-
heightProm = new Promise(async (res) => {
|
|
310
|
-
try {
|
|
311
|
-
// We'll have an async secondary model created for calculating boundaries.
|
|
312
|
-
// Once calculated we remove it.
|
|
313
|
-
const modelPrim = await getModelEntity(params.lodUrl, scale * styleScale);
|
|
314
|
-
const onReady = () => {
|
|
315
|
-
readyEventRemoval === null || readyEventRemoval === void 0 ? void 0 : readyEventRemoval();
|
|
316
|
-
readyEventRemoval = null;
|
|
317
|
-
const kill = () => {
|
|
318
|
-
if (params.viewer && !params.viewer.isDestroyed() && params.viewer.scene.primitives.contains(modelPrim)) {
|
|
319
|
-
params.viewer.scene.primitives.remove(modelPrim);
|
|
320
|
-
}
|
|
321
|
-
if (!modelPrim.isDestroyed()) {
|
|
322
|
-
modelPrim.destroy();
|
|
323
|
-
}
|
|
324
|
-
};
|
|
325
|
-
if (!cEntity || !(modelPrim === null || modelPrim === void 0 ? void 0 : modelPrim.boundingSphere)) {
|
|
326
|
-
kill();
|
|
327
|
-
res(null);
|
|
328
|
-
return;
|
|
329
|
-
}
|
|
330
|
-
let radius = modelPrim.boundingSphere.radius;
|
|
331
|
-
let centerOffset = modelPrim.boundingSphere.center;
|
|
332
|
-
if (centerOffset) {
|
|
333
|
-
// Add the center offset to the radius because I am not good at math.
|
|
334
|
-
const magnitude = Cesium.Cartesian3.magnitude(centerOffset);
|
|
335
|
-
radius += magnitude;
|
|
336
|
-
// Extra padding if the model is super not centered.
|
|
337
|
-
// I saw some strange boundaries for some bad models.
|
|
338
|
-
if (magnitude > 100) {
|
|
339
|
-
radius += 100;
|
|
340
|
-
}
|
|
341
|
-
}
|
|
342
|
-
kill();
|
|
343
|
-
res(radius);
|
|
344
|
-
};
|
|
345
|
-
let readyEventRemoval = null;
|
|
346
|
-
// Newer Cesium versions have readyEvent. They don't use readyPromise.
|
|
347
|
-
if (modelPrim["readyEvent"]) {
|
|
348
|
-
modelPrim["readyEvent"].addEventListener(onReady);
|
|
349
|
-
}
|
|
350
|
-
// Older Cesium versions don't have readyEvent, they use readyPromise.
|
|
351
|
-
else if (modelPrim["readyPromise"]) {
|
|
352
|
-
modelPrim["readyPromise"].then(() => {
|
|
353
|
-
onReady();
|
|
354
|
-
}).catch((e) => {
|
|
355
|
-
console.error(e);
|
|
356
|
-
res(null);
|
|
357
|
-
});
|
|
358
|
-
}
|
|
359
|
-
params.viewer.scene.primitives.add(modelPrim);
|
|
360
|
-
}
|
|
361
|
-
catch (e) {
|
|
362
|
-
console.error(e);
|
|
363
|
-
res(null);
|
|
364
|
-
}
|
|
365
|
-
});
|
|
366
|
-
_fileRadiusCache.Set(fileRadiusKey, heightProm);
|
|
367
|
-
}
|
|
368
|
-
heightProm.then((radius) => {
|
|
369
|
-
if (model) {
|
|
370
|
-
model._radius = radius;
|
|
371
|
-
model._radiusLoaded = true;
|
|
372
|
-
if (params.viewer && params.viewer.scene && !params.viewer.isDestroyed()) {
|
|
373
|
-
visual_register_culler_1.VisualRegisterCuller.MarkShouldRecheck(params.viewer);
|
|
374
|
-
}
|
|
375
|
-
}
|
|
376
|
-
// Rough estimate on when the model is ready in the scene.
|
|
377
|
-
if (animateScale) {
|
|
378
|
-
animateScale.Play();
|
|
379
|
-
}
|
|
380
|
-
});
|
|
381
|
-
const model = cEntity.model;
|
|
382
|
-
model._radiusLoaded = false;
|
|
383
|
-
model._clientFileId = params.lodClientFileId;
|
|
384
|
-
model._entityScale = {
|
|
385
|
-
record: scale,
|
|
386
|
-
style: styleScale
|
|
387
|
-
};
|
|
388
|
-
model._heading = heading;
|
|
389
|
-
// Generate a polyline 'track' for the historic data.
|
|
390
|
-
// We do this for historic data that exists and is moving.
|
|
391
|
-
if (shouldShowTrack && animatePosition && animatePosition instanceof cesium_animated_property_1.CesiumAnimatedProperty.AnimatePositionSeries && animatePosition.GetSeries) {
|
|
392
|
-
const lStyle = (_b = (_a = params.fullStyle) === null || _a === void 0 ? void 0 : _a.polylineStyle) !== null && _b !== void 0 ? _b : {};
|
|
393
|
-
const bColor = lStyle.lineColor ? bruce_models_1.Calculator.GetColor(lStyle.lineColor, entity, params.tags) : null;
|
|
394
|
-
const cColor = bColor ? (0, cesium_utils_1.ColorToCColor)(bColor) : Cesium.Color.fromCssColorString("rgba(255, 193, 7, 0.8)");
|
|
395
|
-
let width = lStyle.lineWidth ? (0, js_utils_1.EnsureNumber)(bruce_models_1.Calculator.GetNumber(lStyle.lineWidth, entity, params.tags)) : 2;
|
|
396
|
-
if (width == null) {
|
|
397
|
-
width = 2;
|
|
398
|
-
}
|
|
399
|
-
width = (0, js_utils_1.EnsureNumber)(width);
|
|
400
|
-
const lHeightRef = getHeightRef(lStyle, heightRef);
|
|
401
|
-
let trackEntity = siblings === null || siblings === void 0 ? void 0 : siblings[0];
|
|
402
|
-
if (!trackEntity || !trackEntity.polyline) {
|
|
403
|
-
trackEntity = new Cesium.Entity({
|
|
404
|
-
id: bruce_models_1.ObjectUtils.UId(15),
|
|
405
|
-
polyline: {
|
|
406
|
-
positions: [],
|
|
407
|
-
width: width,
|
|
408
|
-
material: cColor,
|
|
409
|
-
clampToGround: lHeightRef == Cesium.HeightReference.CLAMP_TO_GROUND,
|
|
410
|
-
zIndex: 0,
|
|
411
|
-
classificationType: Cesium.ClassificationType.BOTH
|
|
412
|
-
}
|
|
413
|
-
});
|
|
414
|
-
// Visual was updated in a way that needs a full refresh.
|
|
415
|
-
if (params.rego) {
|
|
416
|
-
params.rego.stale = true;
|
|
417
|
-
}
|
|
418
|
-
}
|
|
419
|
-
trackEntity._parentEntity = null;
|
|
420
|
-
trackEntity._noEdit = true;
|
|
421
|
-
trackEntity.polyline.positions = new Cesium.CallbackProperty(() => {
|
|
422
|
-
return animatePosition.GetSeries();
|
|
423
|
-
}, false);
|
|
424
|
-
// We'll use "SetDefaultColor" to updating the internal reference and to allow for an animation.
|
|
425
|
-
// WARNING: polyline does not support animation (yet?).
|
|
426
|
-
cesium_entity_styler_1.CesiumEntityStyler.SetDefaultColor({
|
|
427
|
-
color: cColor,
|
|
428
|
-
entity: trackEntity,
|
|
429
|
-
viewer: params.viewer,
|
|
430
|
-
override: true,
|
|
431
|
-
requestRender: false
|
|
432
|
-
});
|
|
433
|
-
siblings.push(trackEntity);
|
|
434
|
-
trackEntity._parentEntity = cEntity;
|
|
435
|
-
}
|
|
436
|
-
cEntity._siblingGraphics = siblings;
|
|
437
|
-
return cEntity;
|
|
438
|
-
}
|
|
439
|
-
EntityRenderEngineModel3d.Render = Render;
|
|
440
|
-
/**
|
|
441
|
-
* Renders a group of 3D model Entities.
|
|
442
|
-
* This will take an optional set of prior rendered Cesium Entities to update rather than create from scratch.
|
|
443
|
-
* @param params
|
|
444
|
-
* @returns
|
|
445
|
-
*/
|
|
446
|
-
async function RenderGroup(params) {
|
|
447
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
448
|
-
const api = params.apiGetter.getApi();
|
|
449
|
-
await api.Loading;
|
|
450
|
-
const cEntities = new Map();
|
|
451
|
-
const reqBody = {
|
|
452
|
-
"strict": false,
|
|
453
|
-
"externalSources": false,
|
|
454
|
-
"Items": []
|
|
455
|
-
};
|
|
456
|
-
for (let i = 0; i < params.entities.length; i++) {
|
|
457
|
-
const entity = params.entities[i];
|
|
458
|
-
const zoomItem = params.zoomItems[entity.Bruce.ID];
|
|
459
|
-
const style = zoomItem.StyleID != -1 ? (_a = (await getStyle(api, entity, zoomItem.StyleID))) === null || _a === void 0 ? void 0 : _a.Settings : zoomItem.Style;
|
|
460
|
-
const tagIds = entity.Bruce["Layer.ID"];
|
|
461
|
-
let tags = [];
|
|
462
|
-
if (tagIds && tagIds.length > 0) {
|
|
463
|
-
tags = (await bruce_models_1.EntityTag.GetListByIds({
|
|
464
|
-
api,
|
|
465
|
-
tagIds
|
|
466
|
-
})).tags;
|
|
467
|
-
}
|
|
468
|
-
const mStyle = (_b = style === null || style === void 0 ? void 0 : style.modelStyle) !== null && _b !== void 0 ? _b : {};
|
|
469
|
-
let group = mStyle.lodGroup ? bruce_models_1.Calculator.GetString(mStyle.lodGroup, entity, tags) : null;
|
|
470
|
-
if (!group) {
|
|
471
|
-
group = "DEFAULT";
|
|
472
|
-
}
|
|
473
|
-
let level = +zoomItem.LODLevel;
|
|
474
|
-
if (!level) {
|
|
475
|
-
level = 0;
|
|
476
|
-
}
|
|
477
|
-
let catId = zoomItem.LODCategoryID;
|
|
478
|
-
if (!catId) {
|
|
479
|
-
catId = "glb";
|
|
480
|
-
}
|
|
481
|
-
reqBody.Items.push({
|
|
482
|
-
"entityId": entity.Bruce.ID,
|
|
483
|
-
"categoryId": catId,
|
|
484
|
-
"group": group,
|
|
485
|
-
"level": level
|
|
486
|
-
});
|
|
487
|
-
}
|
|
488
|
-
const { lods: lodData } = await bruce_models_1.EntityLod.GetLods({
|
|
489
|
-
api,
|
|
490
|
-
filter: reqBody
|
|
491
|
-
});
|
|
492
|
-
for (let i = 0; i < params.entities.length; i++) {
|
|
493
|
-
const entity = params.entities[i];
|
|
494
|
-
const zoomItem = params.zoomItems[entity.Bruce.ID];
|
|
495
|
-
const style = zoomItem.StyleID != -1 ? (_c = (await getStyle(api, entity, zoomItem.StyleID))) === null || _c === void 0 ? void 0 : _c.Settings : zoomItem.Style;
|
|
496
|
-
const tagIds = entity.Bruce["Layer.ID"];
|
|
497
|
-
let tags = [];
|
|
498
|
-
if (tagIds && tagIds.length > 0) {
|
|
499
|
-
tags = (await bruce_models_1.EntityTag.GetListByIds({
|
|
500
|
-
api,
|
|
501
|
-
tagIds
|
|
502
|
-
})).tags;
|
|
503
|
-
}
|
|
504
|
-
const lod = lodData.find(x => x.entityId == entity.Bruce.ID);
|
|
505
|
-
if (!(lod === null || lod === void 0 ? void 0 : lod.clientFileId)) {
|
|
506
|
-
continue;
|
|
507
|
-
}
|
|
508
|
-
let rego = null;
|
|
509
|
-
// Only used for historic tracks right now.
|
|
510
|
-
// So won't bother getting it if we don't have historic data.
|
|
511
|
-
if ((_d = params.entitiesHistoric) === null || _d === void 0 ? void 0 : _d[entity.Bruce.ID]) {
|
|
512
|
-
rego = params.visualRegister.GetRego({
|
|
513
|
-
entityId: entity.Bruce.ID,
|
|
514
|
-
menuItemId: params.menuItemId
|
|
515
|
-
});
|
|
516
|
-
}
|
|
517
|
-
const mStyle = (_e = style === null || style === void 0 ? void 0 : style.modelStyle) !== null && _e !== void 0 ? _e : {};
|
|
518
|
-
const cEntity = Render({
|
|
519
|
-
rendered: (_f = params.rendered) === null || _f === void 0 ? void 0 : _f.get(entity.Bruce.ID),
|
|
520
|
-
entity: entity,
|
|
521
|
-
entityHistoric: (_g = params.entitiesHistoric) === null || _g === void 0 ? void 0 : _g[entity.Bruce.ID],
|
|
522
|
-
style: mStyle,
|
|
523
|
-
tags: tags,
|
|
524
|
-
viewer: params.viewer,
|
|
525
|
-
lodUrl: bruce_models_1.ClientFile.GetUrl({
|
|
526
|
-
api,
|
|
527
|
-
fileId: lod.clientFileId,
|
|
528
|
-
viaCdn: true
|
|
529
|
-
}),
|
|
530
|
-
lodClientFileId: lod.clientFileId,
|
|
531
|
-
maxDistance: zoomItem.MaxZoom,
|
|
532
|
-
minDistance: zoomItem.MinZoom,
|
|
533
|
-
fullStyle: style,
|
|
534
|
-
entityHistoricDrawTrack: params.entityHistoricDrawTrack,
|
|
535
|
-
rego: rego
|
|
536
|
-
});
|
|
537
|
-
if (cEntity) {
|
|
538
|
-
const name = await getName(api, entity);
|
|
539
|
-
cEntity.name = name;
|
|
540
|
-
cEntity._renderGroup = entity_render_engine_1.EntityRenderEngine.GetRenderGroupId(zoomItem);
|
|
541
|
-
cEntities.set(entity.Bruce.ID, cEntity);
|
|
542
|
-
}
|
|
543
|
-
}
|
|
544
|
-
return cEntities;
|
|
545
|
-
}
|
|
546
|
-
EntityRenderEngineModel3d.RenderGroup = RenderGroup;
|
|
547
|
-
})(EntityRenderEngineModel3d = exports.EntityRenderEngineModel3d || (exports.EntityRenderEngineModel3d = {}));
|
|
548
|
-
function getHeightRef(style, defaultStyle) {
|
|
549
|
-
var _a;
|
|
550
|
-
let heightRef = defaultStyle == null ? Cesium.HeightReference.CLAMP_TO_GROUND : defaultStyle;
|
|
551
|
-
const altOptionId = (_a = style === null || style === void 0 ? void 0 : style.altitudeOption) === null || _a === void 0 ? void 0 : _a.id;
|
|
552
|
-
if (altOptionId == 0) {
|
|
553
|
-
heightRef = Cesium.HeightReference.CLAMP_TO_GROUND;
|
|
554
|
-
}
|
|
555
|
-
else if (altOptionId == 1) {
|
|
556
|
-
heightRef = Cesium.HeightReference.NONE;
|
|
557
|
-
}
|
|
558
|
-
else if (altOptionId == 2) {
|
|
559
|
-
heightRef = Cesium.HeightReference.RELATIVE_TO_GROUND;
|
|
560
|
-
}
|
|
561
|
-
return heightRef;
|
|
562
|
-
}
|
|
563
|
-
async function getName(api, entity) {
|
|
564
|
-
try {
|
|
565
|
-
const typeId = entity.Bruce["EntityType.ID"];
|
|
566
|
-
let type = null;
|
|
567
|
-
if (typeId) {
|
|
568
|
-
type = (await bruce_models_1.EntityType.Get({
|
|
569
|
-
api,
|
|
570
|
-
entityTypeId: typeId
|
|
571
|
-
})).entityType;
|
|
572
|
-
}
|
|
573
|
-
if (type) {
|
|
574
|
-
const name = bruce_models_1.Entity.CalculateName({
|
|
575
|
-
entity,
|
|
576
|
-
type,
|
|
577
|
-
defaultToId: false
|
|
578
|
-
});
|
|
579
|
-
return name ? name : "Unnamed Entity";
|
|
580
|
-
}
|
|
581
|
-
}
|
|
582
|
-
catch (e) {
|
|
583
|
-
let hideError = false;
|
|
584
|
-
// TODO: we need a util for extracting code + message rather than writing all this every time.
|
|
585
|
-
if (e && typeof e == "object" && e.ERROR) {
|
|
586
|
-
const error = e.ERROR;
|
|
587
|
-
const code = error && typeof error == "object" ? error.Code : "";
|
|
588
|
-
// Avoiding logging a common error.
|
|
589
|
-
// This happens when rendering entities that don't have records.
|
|
590
|
-
hideError = String(code).toLowerCase() == "notfound";
|
|
591
|
-
}
|
|
592
|
-
if (!hideError) {
|
|
593
|
-
console.error(e);
|
|
594
|
-
}
|
|
595
|
-
}
|
|
596
|
-
return "Unknown entity";
|
|
597
|
-
}
|
|
598
|
-
async function getStyle(api, entity, styleId) {
|
|
599
|
-
let style = null;
|
|
600
|
-
if (styleId && styleId != -1) {
|
|
601
|
-
try {
|
|
602
|
-
style = (await bruce_models_1.Style.Get({
|
|
603
|
-
api,
|
|
604
|
-
styleId
|
|
605
|
-
})).style;
|
|
606
|
-
}
|
|
607
|
-
// Probably deleted.
|
|
608
|
-
catch (e) {
|
|
609
|
-
console.error(e);
|
|
610
|
-
}
|
|
611
|
-
}
|
|
612
|
-
if (!style) {
|
|
613
|
-
const typeId = entity.Bruce["EntityType.ID"];
|
|
614
|
-
if (typeId) {
|
|
615
|
-
try {
|
|
616
|
-
const { entityType: type } = await bruce_models_1.EntityType.Get({
|
|
617
|
-
api,
|
|
618
|
-
entityTypeId: typeId
|
|
619
|
-
});
|
|
620
|
-
if (type["DisplaySetting.ID"]) {
|
|
621
|
-
try {
|
|
622
|
-
style = (await bruce_models_1.Style.Get({
|
|
623
|
-
api,
|
|
624
|
-
styleId: type["DisplaySetting.ID"]
|
|
625
|
-
})).style;
|
|
626
|
-
}
|
|
627
|
-
catch (e) {
|
|
628
|
-
let hideError = false;
|
|
629
|
-
// TODO: we need a util for extracting code + message rather than writing all this every time.
|
|
630
|
-
if (e && typeof e == "object" && e.ERROR) {
|
|
631
|
-
const error = e.ERROR;
|
|
632
|
-
const code = error && typeof error == "object" ? error.Code : "";
|
|
633
|
-
// Avoiding logging a common error.
|
|
634
|
-
// This happens when rendering entities that don't have records.
|
|
635
|
-
hideError = String(code).toLowerCase() == "notfound";
|
|
636
|
-
}
|
|
637
|
-
if (!hideError) {
|
|
638
|
-
console.error(e);
|
|
639
|
-
}
|
|
640
|
-
}
|
|
641
|
-
}
|
|
642
|
-
}
|
|
643
|
-
catch (e) {
|
|
644
|
-
let hideError = false;
|
|
645
|
-
// TODO: we need a util for extracting code + message rather than writing all this every time.
|
|
646
|
-
if (e && typeof e == "object" && e.ERROR) {
|
|
647
|
-
const error = e.ERROR;
|
|
648
|
-
const code = error && typeof error == "object" ? error.Code : "";
|
|
649
|
-
// Avoiding logging a common error.
|
|
650
|
-
// This happens when rendering entities that don't have records.
|
|
651
|
-
hideError = String(code).toLowerCase() == "notfound";
|
|
652
|
-
}
|
|
653
|
-
if (!hideError) {
|
|
654
|
-
console.error(e);
|
|
655
|
-
}
|
|
656
|
-
}
|
|
657
|
-
}
|
|
658
|
-
}
|
|
659
|
-
return style;
|
|
660
|
-
}
|
|
661
|
-
let _fileValidationCache = {};
|
|
662
|
-
let _fileHeightCache = {};
|
|
663
|
-
// Key = url + scale.
|
|
664
|
-
let _fileRadiusCache = new bruce_models_1.LRUCache(1000);
|
|
665
|
-
/**
|
|
666
|
-
* Util to support both old and newer versions of Cesium for creating 3D model primitives.
|
|
667
|
-
* @param url
|
|
668
|
-
*/
|
|
669
|
-
async function getModelEntity(url, scale) {
|
|
670
|
-
const CESIUM = Cesium;
|
|
671
|
-
// Newer versions of Cesium have a fromGltfAsync method.
|
|
672
|
-
if (CESIUM.Model.hasOwnProperty("fromGltfAsync")) {
|
|
673
|
-
return await CESIUM.Model.fromGltfAsync({
|
|
674
|
-
url: url,
|
|
675
|
-
asynchronous: true,
|
|
676
|
-
scale: scale
|
|
677
|
-
});
|
|
678
|
-
}
|
|
679
|
-
// Older versions of Cesium have a fromGltf method.
|
|
680
|
-
else if (Cesium.Model.hasOwnProperty("fromGltf")) {
|
|
681
|
-
return CESIUM.Model.fromGltf({
|
|
682
|
-
url: url,
|
|
683
|
-
asynchronous: true,
|
|
684
|
-
scale: scale
|
|
685
|
-
});
|
|
686
|
-
}
|
|
687
|
-
return null;
|
|
688
|
-
}
|
|
689
|
-
//# sourceMappingURL=entity-render-engine-model3d.js.map
|