bruce-cesium 5.7.9 → 5.8.0
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/dist/bruce-cesium.es5.js +32262 -0
- package/dist/bruce-cesium.es5.js.map +1 -0
- package/dist/bruce-cesium.umd.js +32186 -0
- package/dist/bruce-cesium.umd.js.map +1 -0
- package/dist/lib/bruce-cesium.js +76 -0
- package/dist/lib/bruce-cesium.js.map +1 -0
- package/dist/lib/internal/cesium-utils.js +109 -0
- package/dist/lib/internal/cesium-utils.js.map +1 -0
- package/dist/lib/internal/js-utils.js +22 -0
- package/dist/lib/internal/js-utils.js.map +1 -0
- package/dist/lib/internal/limited-log.js +17 -0
- package/dist/lib/internal/limited-log.js.map +1 -0
- package/dist/lib/rendering/cesium-animated-in-out.js +166 -0
- package/dist/lib/rendering/cesium-animated-in-out.js.map +1 -0
- package/dist/lib/rendering/cesium-animated-property.js +1111 -0
- package/dist/lib/rendering/cesium-animated-property.js.map +1 -0
- package/dist/lib/rendering/entity-gatherer.js +327 -0
- package/dist/lib/rendering/entity-gatherer.js.map +1 -0
- package/dist/lib/rendering/entity-render-engine-model3d.js +689 -0
- package/dist/lib/rendering/entity-render-engine-model3d.js.map +1 -0
- package/dist/lib/rendering/entity-render-engine-point.js +984 -0
- package/dist/lib/rendering/entity-render-engine-point.js.map +1 -0
- package/dist/lib/rendering/entity-render-engine-polygon.js +669 -0
- package/dist/lib/rendering/entity-render-engine-polygon.js.map +1 -0
- package/dist/lib/rendering/entity-render-engine-polyline.js +415 -0
- package/dist/lib/rendering/entity-render-engine-polyline.js.map +1 -0
- package/dist/lib/rendering/entity-render-engine.js +442 -0
- package/dist/lib/rendering/entity-render-engine.js.map +1 -0
- package/dist/lib/rendering/getters/batched-data-getter.js +91 -0
- package/dist/lib/rendering/getters/batched-data-getter.js.map +1 -0
- package/dist/lib/rendering/getters/entity-filter-getter.js +634 -0
- package/dist/lib/rendering/getters/entity-filter-getter.js.map +1 -0
- package/dist/lib/rendering/getters/entity-globe.js +172 -0
- package/dist/lib/rendering/getters/entity-globe.js.map +1 -0
- package/dist/lib/rendering/menu-item-creator.js +354 -0
- package/dist/lib/rendering/menu-item-creator.js.map +1 -0
- package/dist/lib/rendering/menu-item-manager.js +464 -0
- package/dist/lib/rendering/menu-item-manager.js.map +1 -0
- package/dist/lib/rendering/relation-render-engine.js +235 -0
- package/dist/lib/rendering/relation-render-engine.js.map +1 -0
- package/dist/lib/rendering/render-managers/common/cesium-parabola.js +368 -0
- package/dist/lib/rendering/render-managers/common/cesium-parabola.js.map +1 -0
- package/dist/lib/rendering/render-managers/common/entity-label.js +703 -0
- package/dist/lib/rendering/render-managers/common/entity-label.js.map +1 -0
- package/dist/lib/rendering/render-managers/common/point-clustering.js +826 -0
- package/dist/lib/rendering/render-managers/common/point-clustering.js.map +1 -0
- package/dist/lib/rendering/render-managers/common/shared-getters.js +187 -0
- package/dist/lib/rendering/render-managers/common/shared-getters.js.map +1 -0
- package/dist/lib/rendering/render-managers/data-source/data-source-static-csv-manager.js +668 -0
- package/dist/lib/rendering/render-managers/data-source/data-source-static-csv-manager.js.map +1 -0
- package/dist/lib/rendering/render-managers/data-source/data-source-static-kml-manager.js +92 -0
- package/dist/lib/rendering/render-managers/data-source/data-source-static-kml-manager.js.map +1 -0
- package/dist/lib/rendering/render-managers/entities/entities-datalab-render-manager.js +143 -0
- package/dist/lib/rendering/render-managers/entities/entities-datalab-render-manager.js.map +1 -0
- package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js +510 -0
- package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js.map +1 -0
- package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js +717 -0
- package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js.map +1 -0
- package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +999 -0
- package/dist/lib/rendering/render-managers/entities/entities-render-manager.js.map +1 -0
- package/dist/lib/rendering/render-managers/entities/entity-render-manager.js +186 -0
- package/dist/lib/rendering/render-managers/entities/entity-render-manager.js.map +1 -0
- package/dist/lib/rendering/render-managers/other/assembly-render-manager.js +226 -0
- package/dist/lib/rendering/render-managers/other/assembly-render-manager.js.map +1 -0
- package/dist/lib/rendering/render-managers/other/google-search-render-manager.js +430 -0
- package/dist/lib/rendering/render-managers/other/google-search-render-manager.js.map +1 -0
- package/dist/lib/rendering/render-managers/other/legacy-relations-render-manager.js +290 -0
- package/dist/lib/rendering/render-managers/other/legacy-relations-render-manager.js.map +1 -0
- package/dist/lib/rendering/render-managers/other/relations-render-manager.js +401 -0
- package/dist/lib/rendering/render-managers/other/relations-render-manager.js.map +1 -0
- package/dist/lib/rendering/render-managers/render-manager.js +276 -0
- package/dist/lib/rendering/render-managers/render-manager.js.map +1 -0
- package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js +356 -0
- package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js.map +1 -0
- package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js +861 -0
- package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js.map +1 -0
- package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js +279 -0
- package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js.map +1 -0
- package/dist/lib/rendering/render-managers/tilesets/tileset-google-photos-render-manager.js +104 -0
- package/dist/lib/rendering/render-managers/tilesets/tileset-google-photos-render-manager.js.map +1 -0
- package/dist/lib/rendering/render-managers/tilesets/tileset-i3s-render-manager.js +81 -0
- package/dist/lib/rendering/render-managers/tilesets/tileset-i3s-render-manager.js.map +1 -0
- package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js +378 -0
- package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js.map +1 -0
- package/dist/lib/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.js +140 -0
- package/dist/lib/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.js.map +1 -0
- package/dist/lib/rendering/tile-render-engine.js +1328 -0
- package/dist/lib/rendering/tile-render-engine.js.map +1 -0
- package/dist/lib/rendering/tileset-render-engine.js +588 -0
- package/dist/lib/rendering/tileset-render-engine.js.map +1 -0
- package/dist/lib/rendering/tileset-styler.js +590 -0
- package/dist/lib/rendering/tileset-styler.js.map +1 -0
- package/dist/lib/rendering/view-render-engine.js +1004 -0
- package/dist/lib/rendering/view-render-engine.js.map +1 -0
- package/dist/lib/rendering/visual-register-culler.js +676 -0
- package/dist/lib/rendering/visual-register-culler.js.map +1 -0
- package/dist/lib/rendering/visuals-register.js +1695 -0
- package/dist/lib/rendering/visuals-register.js.map +1 -0
- package/dist/lib/utils/cesium-entity-styler.js +914 -0
- package/dist/lib/utils/cesium-entity-styler.js.map +1 -0
- package/dist/lib/utils/drawing-utils.js +308 -0
- package/dist/lib/utils/drawing-utils.js.map +1 -0
- package/dist/lib/utils/entity-utils.js +1382 -0
- package/dist/lib/utils/entity-utils.js.map +1 -0
- package/dist/lib/utils/measure-utils.js +73 -0
- package/dist/lib/utils/measure-utils.js.map +1 -0
- package/dist/lib/utils/simplify-geometry.js +323 -0
- package/dist/lib/utils/simplify-geometry.js.map +1 -0
- package/dist/lib/utils/view-utils.js +392 -0
- package/dist/lib/utils/view-utils.js.map +1 -0
- package/dist/lib/viewer/cesium-view-monitor.js +393 -0
- package/dist/lib/viewer/cesium-view-monitor.js.map +1 -0
- package/dist/lib/viewer/viewer-event-tracker.js +70 -0
- package/dist/lib/viewer/viewer-event-tracker.js.map +1 -0
- package/dist/lib/viewer/viewer-utils.js +310 -0
- package/dist/lib/viewer/viewer-utils.js.map +1 -0
- package/dist/lib/widgets/common/draw-3d-polygon.js +458 -0
- package/dist/lib/widgets/common/draw-3d-polygon.js.map +1 -0
- package/dist/lib/widgets/common/draw-3d-polyline.js +415 -0
- package/dist/lib/widgets/common/draw-3d-polyline.js.map +1 -0
- package/dist/lib/widgets/common/measure-creator.js +468 -0
- package/dist/lib/widgets/common/measure-creator.js.map +1 -0
- package/dist/lib/widgets/common/walkthrough.js +336 -0
- package/dist/lib/widgets/common/walkthrough.js.map +1 -0
- package/dist/lib/widgets/controls-view-bar/widget-control-view-bar-fullscreen.js +36 -0
- package/dist/lib/widgets/controls-view-bar/widget-control-view-bar-fullscreen.js.map +1 -0
- package/dist/lib/widgets/controls-view-bar/widget-control-view-bar-search.js +437 -0
- package/dist/lib/widgets/controls-view-bar/widget-control-view-bar-search.js.map +1 -0
- package/dist/lib/widgets/controls-view-bar/widget-control-view-bar.js +38 -0
- package/dist/lib/widgets/controls-view-bar/widget-control-view-bar.js.map +1 -0
- package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab-bookmarks.js +219 -0
- package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab-bookmarks.js.map +1 -0
- package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab-user.js +304 -0
- package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab-user.js.map +1 -0
- package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab.js +29 -0
- package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab.js.map +1 -0
- package/dist/lib/widgets/widget-bookmarks.js +497 -0
- package/dist/lib/widgets/widget-bookmarks.js.map +1 -0
- package/dist/lib/widgets/widget-branding.js +165 -0
- package/dist/lib/widgets/widget-branding.js.map +1 -0
- package/dist/lib/widgets/widget-cursorbar.js +1179 -0
- package/dist/lib/widgets/widget-cursorbar.js.map +1 -0
- package/dist/lib/widgets/widget-embedded-info-view.js +201 -0
- package/dist/lib/widgets/widget-embedded-info-view.js.map +1 -0
- package/dist/lib/widgets/widget-info-view.js +681 -0
- package/dist/lib/widgets/widget-info-view.js.map +1 -0
- package/dist/lib/widgets/widget-left-panel.js +548 -0
- package/dist/lib/widgets/widget-left-panel.js.map +1 -0
- package/dist/lib/widgets/widget-nav-compass.js +469 -0
- package/dist/lib/widgets/widget-nav-compass.js.map +1 -0
- package/dist/lib/widgets/widget-view-bar.js +284 -0
- package/dist/lib/widgets/widget-view-bar.js.map +1 -0
- package/dist/lib/widgets/widget.js +66 -0
- package/dist/lib/widgets/widget.js.map +1 -0
- package/dist/types/bruce-cesium.d.ts +58 -0
- package/dist/types/internal/cesium-utils.d.ts +23 -0
- package/dist/types/internal/js-utils.d.ts +8 -0
- package/dist/types/internal/limited-log.d.ts +6 -0
- package/dist/types/rendering/cesium-animated-in-out.d.ts +12 -0
- package/dist/types/rendering/cesium-animated-property.d.ts +245 -0
- package/dist/types/rendering/entity-gatherer.d.ts +36 -0
- package/dist/types/rendering/entity-render-engine-model3d.d.ts +56 -0
- package/dist/types/rendering/entity-render-engine-point.d.ts +73 -0
- package/dist/types/rendering/entity-render-engine-polygon.d.ts +26 -0
- package/dist/types/rendering/entity-render-engine-polyline.d.ts +47 -0
- package/dist/types/rendering/entity-render-engine.d.ts +108 -0
- package/dist/types/rendering/getters/batched-data-getter.d.ts +28 -0
- package/dist/types/rendering/getters/entity-filter-getter.d.ts +104 -0
- package/dist/types/rendering/getters/entity-globe.d.ts +21 -0
- package/dist/types/rendering/menu-item-creator.d.ts +53 -0
- package/dist/types/rendering/menu-item-manager.d.ts +85 -0
- package/dist/types/rendering/relation-render-engine.d.ts +32 -0
- package/dist/types/rendering/render-managers/common/cesium-parabola.d.ts +39 -0
- package/dist/types/rendering/render-managers/common/entity-label.d.ts +82 -0
- package/dist/types/rendering/render-managers/common/point-clustering.d.ts +91 -0
- package/dist/types/rendering/render-managers/common/shared-getters.d.ts +41 -0
- package/dist/types/rendering/render-managers/data-source/data-source-static-csv-manager.d.ts +41 -0
- package/dist/types/rendering/render-managers/data-source/data-source-static-kml-manager.d.ts +25 -0
- package/dist/types/rendering/render-managers/entities/entities-datalab-render-manager.d.ts +31 -0
- package/dist/types/rendering/render-managers/entities/entities-ids-render-manager.d.ts +76 -0
- package/dist/types/rendering/render-managers/entities/entities-loaded-render-manager.d.ts +90 -0
- package/dist/types/rendering/render-managers/entities/entities-render-manager.d.ts +90 -0
- package/dist/types/rendering/render-managers/entities/entity-render-manager.d.ts +42 -0
- package/dist/types/rendering/render-managers/other/assembly-render-manager.d.ts +38 -0
- package/dist/types/rendering/render-managers/other/google-search-render-manager.d.ts +45 -0
- package/dist/types/rendering/render-managers/other/legacy-relations-render-manager.d.ts +60 -0
- package/dist/types/rendering/render-managers/other/relations-render-manager.d.ts +53 -0
- package/dist/types/rendering/render-managers/render-manager.d.ts +30 -0
- package/dist/types/rendering/render-managers/tilesets/tileset-arb-render-manager.d.ts +37 -0
- package/dist/types/rendering/render-managers/tilesets/tileset-cad-render-manager.d.ts +86 -0
- package/dist/types/rendering/render-managers/tilesets/tileset-entities-render-manager.d.ts +41 -0
- package/dist/types/rendering/render-managers/tilesets/tileset-google-photos-render-manager.d.ts +26 -0
- package/dist/types/rendering/render-managers/tilesets/tileset-i3s-render-manager.d.ts +25 -0
- package/dist/types/rendering/render-managers/tilesets/tileset-osm-render-manager.d.ts +48 -0
- package/dist/types/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.d.ts +27 -0
- package/dist/types/rendering/tile-render-engine.d.ts +80 -0
- package/dist/types/rendering/tileset-render-engine.d.ts +99 -0
- package/dist/types/rendering/tileset-styler.d.ts +86 -0
- package/dist/types/rendering/view-render-engine.d.ts +32 -0
- package/dist/types/rendering/visual-register-culler.d.ts +18 -0
- package/dist/types/rendering/visuals-register.d.ts +351 -0
- package/dist/types/utils/cesium-entity-styler.d.ts +103 -0
- package/dist/types/utils/drawing-utils.d.ts +59 -0
- package/dist/types/utils/entity-utils.d.ts +133 -0
- package/dist/types/utils/measure-utils.d.ts +20 -0
- package/dist/types/utils/simplify-geometry.d.ts +19 -0
- package/dist/types/utils/view-utils.d.ts +101 -0
- package/dist/types/viewer/cesium-view-monitor.d.ts +35 -0
- package/dist/types/viewer/viewer-event-tracker.d.ts +47 -0
- package/dist/types/viewer/viewer-utils.d.ts +88 -0
- package/dist/types/widgets/common/draw-3d-polygon.d.ts +62 -0
- package/dist/types/widgets/common/draw-3d-polyline.d.ts +50 -0
- package/dist/types/widgets/common/measure-creator.d.ts +60 -0
- package/dist/types/widgets/common/walkthrough.d.ts +37 -0
- package/dist/types/widgets/controls-view-bar/widget-control-view-bar-fullscreen.d.ts +10 -0
- package/dist/types/widgets/controls-view-bar/widget-control-view-bar-search.d.ts +18 -0
- package/dist/types/widgets/controls-view-bar/widget-control-view-bar.d.ts +23 -0
- package/dist/types/widgets/tabs-left-panel/widget-left-panel-tab-bookmarks.d.ts +11 -0
- package/dist/types/widgets/tabs-left-panel/widget-left-panel-tab-user.d.ts +24 -0
- package/dist/types/widgets/tabs-left-panel/widget-left-panel-tab.d.ts +17 -0
- package/dist/types/widgets/widget-bookmarks.d.ts +40 -0
- package/dist/types/widgets/widget-branding.d.ts +15 -0
- package/dist/types/widgets/widget-cursorbar.d.ts +48 -0
- package/dist/types/widgets/widget-embedded-info-view.d.ts +13 -0
- package/dist/types/widgets/widget-info-view.d.ts +21 -0
- package/dist/types/widgets/widget-left-panel.d.ts +73 -0
- package/dist/types/widgets/widget-nav-compass.d.ts +27 -0
- package/dist/types/widgets/widget-view-bar.d.ts +37 -0
- package/dist/types/widgets/widget.d.ts +29 -0
- package/package.json +1 -1
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RelationRenderEngine = void 0;
|
|
4
|
+
const bruce_models_1 = require("bruce-models");
|
|
5
|
+
const Cesium = require("cesium");
|
|
6
|
+
const cesium_parabola_1 = require("./render-managers/common/cesium-parabola");
|
|
7
|
+
const js_utils_1 = require("../internal/js-utils");
|
|
8
|
+
const entity_utils_1 = require("../utils/entity-utils");
|
|
9
|
+
function colorToCColor(color) {
|
|
10
|
+
return new Cesium.Color(color.red ? color.red / 255 : 0, color.green ? color.green / 255 : 0, color.blue ? color.blue / 255 : 0, color.alpha);
|
|
11
|
+
}
|
|
12
|
+
async function getStyle(api, typeId, styleId) {
|
|
13
|
+
let style = null;
|
|
14
|
+
if (styleId && styleId != -1) {
|
|
15
|
+
try {
|
|
16
|
+
style = (await bruce_models_1.Style.Get({
|
|
17
|
+
api,
|
|
18
|
+
styleId
|
|
19
|
+
})).style;
|
|
20
|
+
}
|
|
21
|
+
// Probably deleted.
|
|
22
|
+
catch (e) {
|
|
23
|
+
console.error(e);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
if (!style && typeId) {
|
|
27
|
+
const { entityType: type } = await bruce_models_1.EntityType.Get({
|
|
28
|
+
api,
|
|
29
|
+
entityTypeId: typeId
|
|
30
|
+
});
|
|
31
|
+
if (type["DisplaySetting.ID"]) {
|
|
32
|
+
try {
|
|
33
|
+
style = (await bruce_models_1.Style.Get({
|
|
34
|
+
api,
|
|
35
|
+
styleId: type["DisplaySetting.ID"]
|
|
36
|
+
})).style;
|
|
37
|
+
}
|
|
38
|
+
catch (e) {
|
|
39
|
+
let hideError = false;
|
|
40
|
+
// TODO: we need a util for extracting code + message rather than writing all this every time.
|
|
41
|
+
if (e && typeof e == "object" && e.ERROR) {
|
|
42
|
+
const error = e.ERROR;
|
|
43
|
+
const code = error && typeof error == "object" ? error.Code : "";
|
|
44
|
+
// Avoiding logging a common error.
|
|
45
|
+
// This happens when rendering entities that don't have records.
|
|
46
|
+
hideError = String(code).toLowerCase() == "notfound";
|
|
47
|
+
}
|
|
48
|
+
if (!hideError) {
|
|
49
|
+
console.error(e);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return style;
|
|
55
|
+
}
|
|
56
|
+
var RelationRenderEngine;
|
|
57
|
+
(function (RelationRenderEngine) {
|
|
58
|
+
function GetRenderGroupId(relation) {
|
|
59
|
+
return `${relation["Related.Entity.ID"]}-${relation["Principal.Entity.ID"]}-${relation["Relation.Type.ID"]}`;
|
|
60
|
+
}
|
|
61
|
+
RelationRenderEngine.GetRenderGroupId = GetRenderGroupId;
|
|
62
|
+
async function Render(params) {
|
|
63
|
+
const { apiGetter, viewer, visualRegister, menuItemId, relations } = params;
|
|
64
|
+
const api = apiGetter.getApi(apiGetter.accountId);
|
|
65
|
+
const rendered = {};
|
|
66
|
+
let neededEntityIdsIds = [];
|
|
67
|
+
for (let i = 0; i < relations.length; i++) {
|
|
68
|
+
const relation = relations[i];
|
|
69
|
+
if (relation["Principal.Entity.ID"]) {
|
|
70
|
+
neededEntityIdsIds.push(relation["Principal.Entity.ID"]);
|
|
71
|
+
}
|
|
72
|
+
if (relation["Related.Entity.ID"]) {
|
|
73
|
+
neededEntityIdsIds.push(relation["Related.Entity.ID"]);
|
|
74
|
+
}
|
|
75
|
+
if (relation["Data.Entity.ID"]) {
|
|
76
|
+
neededEntityIdsIds.push(relation["Data.Entity.ID"]);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
// Turn the set unique.
|
|
80
|
+
neededEntityIdsIds = neededEntityIdsIds.filter((v, i, a) => a.indexOf(v) === i);
|
|
81
|
+
// Get all entities in one go.
|
|
82
|
+
let entities = (await bruce_models_1.Entity.GetListByIds({
|
|
83
|
+
entityIds: neededEntityIdsIds,
|
|
84
|
+
api: apiGetter.getApi(),
|
|
85
|
+
migrated: true
|
|
86
|
+
})).entities;
|
|
87
|
+
// Create a map for quick reference.
|
|
88
|
+
const entitiesMap = {};
|
|
89
|
+
for (let i = 0; i < entities.length; i++) {
|
|
90
|
+
const entity = entities[i];
|
|
91
|
+
entitiesMap[entity.Bruce.ID] = entity;
|
|
92
|
+
}
|
|
93
|
+
entities = null;
|
|
94
|
+
// Gather needed relationship types.
|
|
95
|
+
// Right now this means just getting the full list.
|
|
96
|
+
const relationTypes = (await bruce_models_1.EntityRelationType.GetList({
|
|
97
|
+
api
|
|
98
|
+
})).relationTypes;
|
|
99
|
+
const relationTypesMap = {};
|
|
100
|
+
for (let i = 0; i < relationTypes.length; i++) {
|
|
101
|
+
const relationType = relationTypes[i];
|
|
102
|
+
relationTypesMap[relationType.ID] = relationType;
|
|
103
|
+
}
|
|
104
|
+
for (let i = 0; i < relations.length; i++) {
|
|
105
|
+
try {
|
|
106
|
+
const relation = relations[i];
|
|
107
|
+
const fromEntity = entitiesMap[relation["Principal.Entity.ID"]];
|
|
108
|
+
const toEntity = entitiesMap[relation["Related.Entity.ID"]];
|
|
109
|
+
const dataEntity = relation["Data.Entity.ID"] ? entitiesMap[relation["Data.Entity.ID"]] : null;
|
|
110
|
+
const relationType = relationTypesMap[relation["Relation.Type.ID"]];
|
|
111
|
+
const style = await getStyle(api, relationType === null || relationType === void 0 ? void 0 : relationType["Relation.EntityType.ID"], Number(relationType === null || relationType === void 0 ? void 0 : relationType.EntityDisplaySettingID));
|
|
112
|
+
const cEntity = await Parabola.Render({
|
|
113
|
+
dataEntity,
|
|
114
|
+
fromEntity,
|
|
115
|
+
relation,
|
|
116
|
+
style,
|
|
117
|
+
toEntity,
|
|
118
|
+
viewer,
|
|
119
|
+
visualRegister,
|
|
120
|
+
apiGetter
|
|
121
|
+
});
|
|
122
|
+
cEntity._renderGroup = GetRenderGroupId(relation);
|
|
123
|
+
rendered[GetRenderGroupId(relation)] = cEntity;
|
|
124
|
+
}
|
|
125
|
+
catch (e) {
|
|
126
|
+
console.error(e);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return rendered;
|
|
130
|
+
}
|
|
131
|
+
RelationRenderEngine.Render = Render;
|
|
132
|
+
let Parabola;
|
|
133
|
+
(function (Parabola) {
|
|
134
|
+
async function Render(params) {
|
|
135
|
+
var _a;
|
|
136
|
+
const style = (_a = params.style) === null || _a === void 0 ? void 0 : _a.Settings;
|
|
137
|
+
const entity = params.dataEntity;
|
|
138
|
+
const bColor = (style === null || style === void 0 ? void 0 : style.lineColor) ? bruce_models_1.Calculator.GetColor(style === null || style === void 0 ? void 0 : style.lineColor, entity, []) : null;
|
|
139
|
+
const cColor = bColor ? colorToCColor(bColor) : Cesium.Color.WHITE;
|
|
140
|
+
let width = (0, js_utils_1.EnsureNumber)((style === null || style === void 0 ? void 0 : style.lineWidth) ? bruce_models_1.Calculator.GetNumber(style === null || style === void 0 ? void 0 : style.lineWidth, entity, []) : 4, 4);
|
|
141
|
+
if (width < 1) {
|
|
142
|
+
width = 1;
|
|
143
|
+
}
|
|
144
|
+
const duration = (0, js_utils_1.EnsureNumber)((style === null || style === void 0 ? void 0 : style.duration) ? bruce_models_1.Calculator.GetNumber(style === null || style === void 0 ? void 0 : style.duration, entity, []) : 2, 2);
|
|
145
|
+
const hDistanceRatio = (0, js_utils_1.EnsureNumber)((style === null || style === void 0 ? void 0 : style.heightDistanceRatio) ? bruce_models_1.Calculator.GetNumber(style === null || style === void 0 ? void 0 : style.heightDistanceRatio, entity, []) : 0.25, 0.25);
|
|
146
|
+
let fromPos = null;
|
|
147
|
+
let toPos = null;
|
|
148
|
+
let updatingPosses = false;
|
|
149
|
+
const updatePosses = async () => {
|
|
150
|
+
if (updatingPosses) {
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
updatingPosses = true;
|
|
154
|
+
try {
|
|
155
|
+
const fromData = await entity_utils_1.EntityUtils.GetLocation({
|
|
156
|
+
samples: [{
|
|
157
|
+
entity: params.fromEntity,
|
|
158
|
+
entityId: params.fromEntity.Bruce.ID,
|
|
159
|
+
heightRef: Cesium.HeightReference.CLAMP_TO_GROUND,
|
|
160
|
+
returnHeightRef: Cesium.HeightReference.NONE
|
|
161
|
+
}],
|
|
162
|
+
viewer: params.viewer,
|
|
163
|
+
visualRegister: params.visualRegister,
|
|
164
|
+
api: params.apiGetter.getApi()
|
|
165
|
+
});
|
|
166
|
+
fromPos = fromData.pos3d;
|
|
167
|
+
const toData = await entity_utils_1.EntityUtils.GetLocation({
|
|
168
|
+
samples: [{
|
|
169
|
+
entity: params.toEntity,
|
|
170
|
+
entityId: params.toEntity.Bruce.ID,
|
|
171
|
+
heightRef: Cesium.HeightReference.CLAMP_TO_GROUND,
|
|
172
|
+
returnHeightRef: Cesium.HeightReference.NONE
|
|
173
|
+
}],
|
|
174
|
+
viewer: params.viewer,
|
|
175
|
+
visualRegister: params.visualRegister,
|
|
176
|
+
api: params.apiGetter.getApi()
|
|
177
|
+
});
|
|
178
|
+
toPos = toData.pos3d;
|
|
179
|
+
}
|
|
180
|
+
catch (e) {
|
|
181
|
+
console.error(e);
|
|
182
|
+
}
|
|
183
|
+
updatingPosses = false;
|
|
184
|
+
};
|
|
185
|
+
updatePosses();
|
|
186
|
+
const parabola = new cesium_parabola_1.CesiumParabola({
|
|
187
|
+
viewer: params.viewer,
|
|
188
|
+
pos1: () => fromPos,
|
|
189
|
+
pos2: () => toPos,
|
|
190
|
+
color: cColor.toCssColorString(),
|
|
191
|
+
width: width,
|
|
192
|
+
duration: duration,
|
|
193
|
+
heightDistanceRatio: hDistanceRatio
|
|
194
|
+
});
|
|
195
|
+
parabola.Hidden = true;
|
|
196
|
+
const cEntities = parabola.Animate();
|
|
197
|
+
const cEntity = cEntities.parabola;
|
|
198
|
+
cEntity._siblingGraphics = [];
|
|
199
|
+
for (let i = 0; i < cEntities.siblings.length; i++) {
|
|
200
|
+
const sibling = cEntities.siblings[i];
|
|
201
|
+
cEntity._siblingGraphics.push(sibling);
|
|
202
|
+
}
|
|
203
|
+
let updateInterval = setInterval(() => {
|
|
204
|
+
var _a;
|
|
205
|
+
if (!((_a = params.viewer) === null || _a === void 0 ? void 0 : _a.scene) ||
|
|
206
|
+
params.viewer.isDestroyed() ||
|
|
207
|
+
(!parabola || parabola.Disposed)) {
|
|
208
|
+
clearInterval(updateInterval);
|
|
209
|
+
parabola.Dispose();
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
if (parabola) {
|
|
213
|
+
const visible = cEntity && cEntity.show != false && params.viewer.entities.contains(cEntity);
|
|
214
|
+
parabola.Hidden = !visible;
|
|
215
|
+
}
|
|
216
|
+
updatePosses();
|
|
217
|
+
params.viewer.scene.requestRender();
|
|
218
|
+
}, 1000);
|
|
219
|
+
let disposed = false;
|
|
220
|
+
cEntity._dispose = () => {
|
|
221
|
+
if (disposed) {
|
|
222
|
+
return;
|
|
223
|
+
}
|
|
224
|
+
disposed = true;
|
|
225
|
+
clearInterval(updateInterval);
|
|
226
|
+
if (parabola) {
|
|
227
|
+
parabola.Dispose();
|
|
228
|
+
}
|
|
229
|
+
};
|
|
230
|
+
return cEntity;
|
|
231
|
+
}
|
|
232
|
+
Parabola.Render = Render;
|
|
233
|
+
})(Parabola = RelationRenderEngine.Parabola || (RelationRenderEngine.Parabola = {}));
|
|
234
|
+
})(RelationRenderEngine = exports.RelationRenderEngine || (exports.RelationRenderEngine = {}));
|
|
235
|
+
//# sourceMappingURL=relation-render-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relation-render-engine.js","sourceRoot":"","sources":["../../../src/rendering/relation-render-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CesiumParabola = void 0;
|
|
4
|
+
const bruce_models_1 = require("bruce-models");
|
|
5
|
+
const Cesium = require("cesium");
|
|
6
|
+
const drawing_utils_1 = require("../../../utils/drawing-utils");
|
|
7
|
+
/**
|
|
8
|
+
* Utility for rendering parabolas between two points on the map.
|
|
9
|
+
*/
|
|
10
|
+
class CesiumParabola {
|
|
11
|
+
get Disposed() {
|
|
12
|
+
return this.disposed;
|
|
13
|
+
}
|
|
14
|
+
set Hidden(value) {
|
|
15
|
+
this.hidden = value;
|
|
16
|
+
}
|
|
17
|
+
get curPos1() {
|
|
18
|
+
return this.pos1 instanceof Function ? this.pos1() : this.pos1;
|
|
19
|
+
}
|
|
20
|
+
get curPos2() {
|
|
21
|
+
return this.pos2 instanceof Function ? this.pos2() : this.pos2;
|
|
22
|
+
}
|
|
23
|
+
constructor(params) {
|
|
24
|
+
this.disposed = false;
|
|
25
|
+
this.color = "white";
|
|
26
|
+
this.width = 2;
|
|
27
|
+
this.duration = 10;
|
|
28
|
+
this.heightDistanceRatio = 0.25;
|
|
29
|
+
this.curPoints = [];
|
|
30
|
+
this.animateInterval = null;
|
|
31
|
+
this.retryTimeout = null;
|
|
32
|
+
this.hidden = false;
|
|
33
|
+
this.viewer = params.viewer;
|
|
34
|
+
this.pos1 = params.pos1;
|
|
35
|
+
this.pos2 = params.pos2;
|
|
36
|
+
if (params.color) {
|
|
37
|
+
this.color = params.color;
|
|
38
|
+
}
|
|
39
|
+
if (!isNaN(params.width)) {
|
|
40
|
+
this.width = params.width;
|
|
41
|
+
}
|
|
42
|
+
if (!isNaN(params.duration)) {
|
|
43
|
+
this.duration = params.duration;
|
|
44
|
+
}
|
|
45
|
+
if (!isNaN(params.heightDistanceRatio)) {
|
|
46
|
+
this.heightDistanceRatio = params.heightDistanceRatio;
|
|
47
|
+
}
|
|
48
|
+
this.prepareEntities();
|
|
49
|
+
}
|
|
50
|
+
prepareEntities() {
|
|
51
|
+
const parabola = new Cesium.Entity({
|
|
52
|
+
polyline: {
|
|
53
|
+
positions: new Cesium.CallbackProperty(() => {
|
|
54
|
+
return this.curPoints;
|
|
55
|
+
}, false),
|
|
56
|
+
width: this.width,
|
|
57
|
+
material: Cesium.Color.fromCssColorString(this.color),
|
|
58
|
+
show: new Cesium.CallbackProperty(() => {
|
|
59
|
+
return !this.hidden;
|
|
60
|
+
}, false)
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
const p1Entity = new Cesium.Entity({
|
|
64
|
+
position: new Cesium.CallbackProperty(() => {
|
|
65
|
+
return this.curPoints.length ? this.curPoints[0] : new Cesium.Cartesian3();
|
|
66
|
+
}, false),
|
|
67
|
+
point: {
|
|
68
|
+
heightReference: Cesium.HeightReference.NONE,
|
|
69
|
+
pixelSize: this.width * 1.3,
|
|
70
|
+
color: Cesium.Color.fromCssColorString(this.color),
|
|
71
|
+
outlineColor: Cesium.Color.WHITE,
|
|
72
|
+
outlineWidth: 2,
|
|
73
|
+
show: new Cesium.CallbackProperty(() => {
|
|
74
|
+
return !this.hidden;
|
|
75
|
+
}, false)
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
const p2Entity = new Cesium.Entity({
|
|
79
|
+
position: new Cesium.CallbackProperty(() => {
|
|
80
|
+
return this.curPoints.length ? this.curPoints[this.curPoints.length - 1] : new Cesium.Cartesian3();
|
|
81
|
+
}, false),
|
|
82
|
+
point: {
|
|
83
|
+
heightReference: Cesium.HeightReference.NONE,
|
|
84
|
+
pixelSize: this.width * 1.8,
|
|
85
|
+
color: Cesium.Color.fromCssColorString(this.color),
|
|
86
|
+
outlineColor: Cesium.Color.WHITE,
|
|
87
|
+
outlineWidth: 2,
|
|
88
|
+
show: new Cesium.CallbackProperty(() => {
|
|
89
|
+
return !this.hidden;
|
|
90
|
+
}, false)
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
p1Entity.parent = parabola;
|
|
94
|
+
p2Entity.parent = parabola;
|
|
95
|
+
const siblings = [p1Entity, p2Entity];
|
|
96
|
+
this.parabola = parabola;
|
|
97
|
+
this.siblings = siblings;
|
|
98
|
+
// The parabola is hidden while this entity is not added.
|
|
99
|
+
// If we avoid adding it now, then the parent can control if the parabola is visible at first or not.
|
|
100
|
+
// this.viewer.entities.add(this.parabola);
|
|
101
|
+
this.viewer.entities.add(p1Entity);
|
|
102
|
+
this.viewer.entities.add(p2Entity);
|
|
103
|
+
}
|
|
104
|
+
Animate() {
|
|
105
|
+
if (this.disposed) {
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
let retry = false;
|
|
109
|
+
if (!this.curPos1 || !this.curPos2 || !bruce_models_1.Cartes.ValidateCartes3(this.curPos1) || !bruce_models_1.Cartes.ValidateCartes3(this.curPos2)) {
|
|
110
|
+
retry = true;
|
|
111
|
+
}
|
|
112
|
+
let TOTAL_LENGTH = retry ? 0 : Cesium.Cartesian3.distance(this.curPos1, this.curPos2);
|
|
113
|
+
if (TOTAL_LENGTH <= 0) {
|
|
114
|
+
retry = true;
|
|
115
|
+
}
|
|
116
|
+
if (retry) {
|
|
117
|
+
this.retryTimeout = setTimeout(() => {
|
|
118
|
+
this.Animate();
|
|
119
|
+
}, 2000);
|
|
120
|
+
return {
|
|
121
|
+
parabola: this.parabola,
|
|
122
|
+
siblings: this.siblings
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
const RATE_PER_SECOND = 1000 / 40;
|
|
126
|
+
const SEC_DURATION = this.duration;
|
|
127
|
+
const HEIGHT_DISTANCE_RATIO = this.heightDistanceRatio;
|
|
128
|
+
let TOTAL_POINTS = null;
|
|
129
|
+
let POINT_LENGTH = null;
|
|
130
|
+
let TICK_LENGTH_INC = null;
|
|
131
|
+
// Updates TOTAL_POINTS, POINT_LENGTH, and TICK_LENGTH_INC based on current TOTAL_LENGTH and camera position.
|
|
132
|
+
// We want less points the further away the camera is.
|
|
133
|
+
const updateParams = () => {
|
|
134
|
+
var _a, _b;
|
|
135
|
+
// TODO: Do distance to parabola line instead.
|
|
136
|
+
const MIN_POINTS = 30;
|
|
137
|
+
let totalPoints = 80;
|
|
138
|
+
let cameraHeight = (_b = (_a = this.viewer.camera) === null || _a === void 0 ? void 0 : _a.positionCartographic) === null || _b === void 0 ? void 0 : _b.height;
|
|
139
|
+
if (isNaN(cameraHeight) || cameraHeight >= 100000) {
|
|
140
|
+
totalPoints = MIN_POINTS;
|
|
141
|
+
}
|
|
142
|
+
else if (cameraHeight >= 10000) {
|
|
143
|
+
totalPoints = 50;
|
|
144
|
+
}
|
|
145
|
+
else if (cameraHeight >= 1000) {
|
|
146
|
+
totalPoints = 80;
|
|
147
|
+
}
|
|
148
|
+
else if (cameraHeight >= 100) {
|
|
149
|
+
totalPoints = 100;
|
|
150
|
+
}
|
|
151
|
+
TOTAL_POINTS = Math.max(MIN_POINTS, Math.min(totalPoints, TOTAL_LENGTH * 0.1));
|
|
152
|
+
POINT_LENGTH = TOTAL_LENGTH / TOTAL_POINTS;
|
|
153
|
+
TICK_LENGTH_INC = SEC_DURATION == 0 ? TOTAL_LENGTH : TOTAL_POINTS / (RATE_PER_SECOND * SEC_DURATION);
|
|
154
|
+
};
|
|
155
|
+
updateParams();
|
|
156
|
+
let curPoint = 0;
|
|
157
|
+
let quadraticKey = null;
|
|
158
|
+
let quadratic = null;
|
|
159
|
+
let quadraticPreparing = false;
|
|
160
|
+
const prepareQuadratic = async () => {
|
|
161
|
+
if (quadraticPreparing) {
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
quadraticPreparing = true;
|
|
165
|
+
try {
|
|
166
|
+
const p1 = this.curPos1;
|
|
167
|
+
const p2 = this.curPos2;
|
|
168
|
+
if (!p1 || !p2 || !bruce_models_1.Cartes.ValidateCartes3(p1) || !bruce_models_1.Cartes.ValidateCartes3(p2)) {
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
const height1 = Cesium.Cartographic.fromCartesian(p1).height;
|
|
172
|
+
const height2 = Cesium.Cartographic.fromCartesian(p2).height;
|
|
173
|
+
if (isNaN(height1) || isNaN(height2)) {
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
const totalHeight = height2 + height1;
|
|
177
|
+
const curQuadraticKey = `${height1}-${height2}-${TOTAL_LENGTH}`;
|
|
178
|
+
if (quadraticKey == curQuadraticKey) {
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
const points2d = [
|
|
182
|
+
new Cesium.Cartesian2(0, height1),
|
|
183
|
+
new Cesium.Cartesian2(TOTAL_LENGTH, height2)
|
|
184
|
+
];
|
|
185
|
+
let vertexHeight = 0;
|
|
186
|
+
// Flat line.
|
|
187
|
+
if (HEIGHT_DISTANCE_RATIO == 0) {
|
|
188
|
+
vertexHeight = totalHeight * 0.5;
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
const largestHeight = Math.max(height1, height2);
|
|
192
|
+
vertexHeight = largestHeight + (TOTAL_LENGTH * HEIGHT_DISTANCE_RATIO);
|
|
193
|
+
}
|
|
194
|
+
points2d.push(new Cesium.Cartesian2(TOTAL_LENGTH * 0.5, vertexHeight));
|
|
195
|
+
const calcQuadratic = (points) => {
|
|
196
|
+
// Swaps position of two rows in matrix.
|
|
197
|
+
function swapRows(matrix, rowAIndex, rowBIndex) {
|
|
198
|
+
const rowAVal = matrix[rowAIndex];
|
|
199
|
+
matrix[rowAIndex] = matrix[rowBIndex];
|
|
200
|
+
matrix[rowBIndex] = rowAVal;
|
|
201
|
+
return matrix;
|
|
202
|
+
}
|
|
203
|
+
// Zeros rowA at colIndex by subtracting a multiplied rowB from it.
|
|
204
|
+
function reduceMatrixRowByRow(matrix, zeroingIndex, parentIndex, colIndex) {
|
|
205
|
+
const zeroRow = matrix[zeroingIndex];
|
|
206
|
+
const parentRow = matrix[parentIndex];
|
|
207
|
+
if (zeroRow[colIndex] == 0) {
|
|
208
|
+
return matrix;
|
|
209
|
+
}
|
|
210
|
+
else if (parentRow[colIndex] == 0) {
|
|
211
|
+
matrix = swapRows(matrix, parentIndex, zeroingIndex);
|
|
212
|
+
return divideMatrixRow(matrix, parentIndex, colIndex);
|
|
213
|
+
}
|
|
214
|
+
// rowAIndex colIndex / rowBIndex colIndex = factor;
|
|
215
|
+
let factor = zeroRow[colIndex] / parentRow[colIndex];
|
|
216
|
+
for (let i = 0; i < zeroRow.length; i++) {
|
|
217
|
+
if (i >= colIndex) {
|
|
218
|
+
zeroRow[i] -= parentRow[i] * factor;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
return matrix;
|
|
222
|
+
}
|
|
223
|
+
// Makes a given row column equal 1 by diving while row by that column.
|
|
224
|
+
function divideMatrixRow(matrix, rowIndex, colIndex) {
|
|
225
|
+
const row = matrix[rowIndex];
|
|
226
|
+
const colValue = row[colIndex];
|
|
227
|
+
for (let i = 0; i < row.length; i++) {
|
|
228
|
+
if (i >= colIndex) {
|
|
229
|
+
row[i] /= colValue;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
return matrix;
|
|
233
|
+
}
|
|
234
|
+
// Returns initial matrix for calculating a, b and c for quadratic formula from given points.
|
|
235
|
+
function matrixFromPoints(points) {
|
|
236
|
+
const rows = [];
|
|
237
|
+
const constructRow = (point) => {
|
|
238
|
+
rows.push([
|
|
239
|
+
-Math.pow(point.x, 2),
|
|
240
|
+
point.x,
|
|
241
|
+
1,
|
|
242
|
+
point.y
|
|
243
|
+
]);
|
|
244
|
+
};
|
|
245
|
+
for (let i = 0; i < points.length; i++) {
|
|
246
|
+
constructRow(points[i]);
|
|
247
|
+
}
|
|
248
|
+
return rows;
|
|
249
|
+
}
|
|
250
|
+
const initialMatrix = matrixFromPoints(points);
|
|
251
|
+
const step1Matrix = reduceMatrixRowByRow(initialMatrix, 1, 0, 0);
|
|
252
|
+
const step2Matrix = reduceMatrixRowByRow(step1Matrix, 2, 0, 0);
|
|
253
|
+
const step3Matrix = reduceMatrixRowByRow(step2Matrix, 2, 1, 1);
|
|
254
|
+
const step4Matrix = reduceMatrixRowByRow(step3Matrix, 0, 1, 1);
|
|
255
|
+
const step5Matrix = reduceMatrixRowByRow(step4Matrix, 0, 2, 2);
|
|
256
|
+
const step6Matrix = reduceMatrixRowByRow(step5Matrix, 1, 2, 2);
|
|
257
|
+
const a = step6Matrix[0][3];
|
|
258
|
+
const b = step6Matrix[1][3];
|
|
259
|
+
const c = step6Matrix[2][3];
|
|
260
|
+
return { a: a, b: b, c: c };
|
|
261
|
+
};
|
|
262
|
+
quadratic = calcQuadratic(points2d);
|
|
263
|
+
}
|
|
264
|
+
catch (e) {
|
|
265
|
+
console.error(e);
|
|
266
|
+
}
|
|
267
|
+
finally {
|
|
268
|
+
quadraticPreparing = false;
|
|
269
|
+
}
|
|
270
|
+
};
|
|
271
|
+
const getPosition = (increment) => {
|
|
272
|
+
if (!quadratic) {
|
|
273
|
+
return null;
|
|
274
|
+
}
|
|
275
|
+
let lengthAcross = POINT_LENGTH * increment;
|
|
276
|
+
if (lengthAcross > TOTAL_LENGTH) {
|
|
277
|
+
lengthAcross = TOTAL_LENGTH;
|
|
278
|
+
}
|
|
279
|
+
const getParabolaYFromX = (x, quadLetters) => {
|
|
280
|
+
let a = quadLetters.a;
|
|
281
|
+
let b = quadLetters.b;
|
|
282
|
+
let c = quadLetters.c;
|
|
283
|
+
return (-a * Math.pow(x, 2)) + (b * x) + c;
|
|
284
|
+
};
|
|
285
|
+
const { point: pos3d } = drawing_utils_1.DrawingUtils.PointAcrossPolyline({
|
|
286
|
+
viewer: this.viewer,
|
|
287
|
+
distance: lengthAcross,
|
|
288
|
+
posses: [this.curPos1, this.curPos2]
|
|
289
|
+
});
|
|
290
|
+
const point = Cesium.Cartographic.fromCartesian(pos3d);
|
|
291
|
+
const posHeight = getParabolaYFromX(lengthAcross, quadratic);
|
|
292
|
+
return Cesium.Cartesian3.fromRadians(point.longitude, point.latitude, posHeight);
|
|
293
|
+
};
|
|
294
|
+
const updatePoints = () => {
|
|
295
|
+
if (!quadratic) {
|
|
296
|
+
return;
|
|
297
|
+
}
|
|
298
|
+
const increment = Math.floor(curPoint);
|
|
299
|
+
const chips = curPoint - Math.floor(curPoint);
|
|
300
|
+
const posses = [];
|
|
301
|
+
posses.push(getPosition(0));
|
|
302
|
+
const addLast = increment >= TOTAL_POINTS;
|
|
303
|
+
const totalCycles = addLast ? increment + 1 : increment;
|
|
304
|
+
for (let i = 0; i < totalCycles; i++) {
|
|
305
|
+
posses.push(getPosition(i));
|
|
306
|
+
}
|
|
307
|
+
if (chips) {
|
|
308
|
+
posses.push(getPosition(increment + chips));
|
|
309
|
+
}
|
|
310
|
+
if (posses.find(x => !x || !bruce_models_1.Cartes.ValidateCartes3(x))) {
|
|
311
|
+
return;
|
|
312
|
+
}
|
|
313
|
+
this.curPoints = posses;
|
|
314
|
+
};
|
|
315
|
+
let lastTickDate = new Date();
|
|
316
|
+
let finished = false;
|
|
317
|
+
const doTick = () => {
|
|
318
|
+
const curDate = new Date();
|
|
319
|
+
const seconds = (curDate.getTime() - lastTickDate.getTime()) / 1000;
|
|
320
|
+
const ticks = seconds * RATE_PER_SECOND;
|
|
321
|
+
if (!isNaN(ticks) && ticks >= 1) {
|
|
322
|
+
lastTickDate = curDate;
|
|
323
|
+
const p1 = this.curPos1;
|
|
324
|
+
const p2 = this.curPos2;
|
|
325
|
+
const newLength = p1 && p2 ? Cesium.Cartesian3.distance(p1, p2) : -1;
|
|
326
|
+
if (newLength > 0 && newLength != TOTAL_LENGTH) {
|
|
327
|
+
TOTAL_LENGTH = newLength;
|
|
328
|
+
updateParams();
|
|
329
|
+
}
|
|
330
|
+
prepareQuadratic();
|
|
331
|
+
if (quadratic) {
|
|
332
|
+
if (curPoint < TOTAL_POINTS) {
|
|
333
|
+
curPoint += (TICK_LENGTH_INC * ticks);
|
|
334
|
+
}
|
|
335
|
+
updatePoints();
|
|
336
|
+
}
|
|
337
|
+
this.viewer.scene.requestRender();
|
|
338
|
+
if (curPoint >= TOTAL_POINTS && !finished) {
|
|
339
|
+
finished = true;
|
|
340
|
+
// We can make the interval update super slow now.
|
|
341
|
+
// We keep it updating in case the positions move.
|
|
342
|
+
clearInterval(this.animateInterval);
|
|
343
|
+
this.animateInterval = setInterval(doTick, 3000);
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
};
|
|
347
|
+
this.animateInterval = setInterval(doTick, RATE_PER_SECOND);
|
|
348
|
+
return {
|
|
349
|
+
parabola: this.parabola,
|
|
350
|
+
siblings: this.siblings
|
|
351
|
+
};
|
|
352
|
+
}
|
|
353
|
+
Dispose() {
|
|
354
|
+
this.disposed = true;
|
|
355
|
+
clearTimeout(this.retryTimeout);
|
|
356
|
+
clearInterval(this.animateInterval);
|
|
357
|
+
const cEntities = [
|
|
358
|
+
this.parabola
|
|
359
|
+
].concat(this.siblings);
|
|
360
|
+
cEntities.forEach(e => {
|
|
361
|
+
if (e && this.viewer.entities.contains(e)) {
|
|
362
|
+
this.viewer.entities.remove(e);
|
|
363
|
+
}
|
|
364
|
+
});
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
exports.CesiumParabola = CesiumParabola;
|
|
368
|
+
//# sourceMappingURL=cesium-parabola.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cesium-parabola.js","sourceRoot":"","sources":["../../../../../src/rendering/render-managers/common/cesium-parabola.ts"],"names":[],"mappings":"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"}
|