bruce-cesium 5.7.9 → 5.8.1
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 +32308 -0
- package/dist/bruce-cesium.es5.js.map +1 -0
- package/dist/bruce-cesium.umd.js +32232 -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 +1741 -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 +361 -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 @@
|
|
|
1
|
+
{"version":3,"file":"entity-utils.js","sourceRoot":"","sources":["../../../src/utils/entity-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MeasureUtils = void 0;
|
|
4
|
+
const bruce_models_1 = require("bruce-models");
|
|
5
|
+
const Cesium = require("cesium");
|
|
6
|
+
var MeasureUtils;
|
|
7
|
+
(function (MeasureUtils) {
|
|
8
|
+
/**
|
|
9
|
+
* Returns the total distance in meters between an array of points.
|
|
10
|
+
* This distance is NOT following the terrain.
|
|
11
|
+
* @param posses
|
|
12
|
+
* @returns
|
|
13
|
+
*/
|
|
14
|
+
function MeasurePolyline(params) {
|
|
15
|
+
const { posses } = params;
|
|
16
|
+
if (posses.length < 2) {
|
|
17
|
+
return {
|
|
18
|
+
totalLength: 0
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
let totalLength = 0;
|
|
22
|
+
let pos1 = null;
|
|
23
|
+
let pos2 = null;
|
|
24
|
+
for (let i = 0; i < posses.length; i++) {
|
|
25
|
+
if (pos1 == null) {
|
|
26
|
+
pos1 = posses[i];
|
|
27
|
+
}
|
|
28
|
+
else if (pos2 == null) {
|
|
29
|
+
pos2 = posses[i];
|
|
30
|
+
totalLength += Cesium.Cartesian3.distance(pos1, pos2);
|
|
31
|
+
pos1 = pos2;
|
|
32
|
+
pos2 = null;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
totalLength
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
MeasureUtils.MeasurePolyline = MeasurePolyline;
|
|
40
|
+
function MeasurePolygon(params) {
|
|
41
|
+
let { posses } = params;
|
|
42
|
+
posses = [].concat(posses);
|
|
43
|
+
if (!bruce_models_1.Cartes.IsRing3Closed(posses)) {
|
|
44
|
+
posses.push(posses[0].clone());
|
|
45
|
+
}
|
|
46
|
+
if (posses.length < 3) {
|
|
47
|
+
return {
|
|
48
|
+
area: 0,
|
|
49
|
+
perimeter: 0
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
let area = 0;
|
|
53
|
+
const indices = Cesium.PolygonPipeline.triangulate(posses, []);
|
|
54
|
+
for (let i = 0; i < indices.length; i += 3) {
|
|
55
|
+
const vector1 = posses[indices[i]];
|
|
56
|
+
const vector2 = posses[indices[i + 1]];
|
|
57
|
+
const vector3 = posses[indices[i + 2]];
|
|
58
|
+
const vectorC = Cesium.Cartesian3.subtract(vector2, vector1, new Cesium.Cartesian3());
|
|
59
|
+
const vectorD = Cesium.Cartesian3.subtract(vector3, vector1, new Cesium.Cartesian3());
|
|
60
|
+
const areaVector = Cesium.Cartesian3.cross(vectorC, vectorD, new Cesium.Cartesian3());
|
|
61
|
+
area += Cesium.Cartesian3.magnitude(areaVector) / 2.0;
|
|
62
|
+
}
|
|
63
|
+
const { totalLength: perimeter } = MeasurePolyline({
|
|
64
|
+
posses: posses
|
|
65
|
+
});
|
|
66
|
+
return {
|
|
67
|
+
area,
|
|
68
|
+
perimeter
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
MeasureUtils.MeasurePolygon = MeasurePolygon;
|
|
72
|
+
})(MeasureUtils = exports.MeasureUtils || (exports.MeasureUtils = {}));
|
|
73
|
+
//# sourceMappingURL=measure-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"measure-utils.js","sourceRoot":"","sources":["../../../src/utils/measure-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SimplifyGeometry = void 0;
|
|
4
|
+
const bruce_models_1 = require("bruce-models");
|
|
5
|
+
/**
|
|
6
|
+
* Util for simplifying geometry on the fly.
|
|
7
|
+
*/
|
|
8
|
+
var SimplifyGeometry;
|
|
9
|
+
(function (SimplifyGeometry) {
|
|
10
|
+
/**
|
|
11
|
+
* Returns the total number of points in the geometry.
|
|
12
|
+
* @param geometry
|
|
13
|
+
* @param limit number to count up to before returning.
|
|
14
|
+
* @returns
|
|
15
|
+
*/
|
|
16
|
+
function CountPoints(geometry, limit) {
|
|
17
|
+
let count = 0;
|
|
18
|
+
const traverse = (geometry) => {
|
|
19
|
+
if (geometry.MultiGeometry) {
|
|
20
|
+
for (let i = 0; i < geometry.MultiGeometry.length; i++) {
|
|
21
|
+
traverse(geometry.MultiGeometry[i]);
|
|
22
|
+
// Reached the limit, return.
|
|
23
|
+
if (limit && count >= limit) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
else if (geometry.Polygon) {
|
|
29
|
+
for (let i = 0; i < geometry.Polygon.length; i++) {
|
|
30
|
+
const polygon = geometry.Polygon[i];
|
|
31
|
+
count += bruce_models_1.Geometry.ParsePoints(polygon.LinearRing).length;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else if (geometry.LineString) {
|
|
35
|
+
count += bruce_models_1.Geometry.ParsePoints(geometry.LineString).length;
|
|
36
|
+
}
|
|
37
|
+
else if (geometry.Point) {
|
|
38
|
+
count += 1;
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
traverse(geometry);
|
|
42
|
+
return count;
|
|
43
|
+
}
|
|
44
|
+
SimplifyGeometry.CountPoints = CountPoints;
|
|
45
|
+
/**
|
|
46
|
+
* Simplifies input geometry.
|
|
47
|
+
* This will turn it into GeoJSON, run it through turf, then back to Bruce geometry.
|
|
48
|
+
* @param geometry
|
|
49
|
+
*/
|
|
50
|
+
function Simplify(entityId, geometry, tolerance) {
|
|
51
|
+
var _a;
|
|
52
|
+
if (!geometry || !turf || !turf.simplify) {
|
|
53
|
+
return geometry;
|
|
54
|
+
}
|
|
55
|
+
// Convert to geojson so that we can interact with turf.
|
|
56
|
+
const gFeature = bruce_models_1.Geometry.ToGeoJsonFeature({
|
|
57
|
+
geometry: geometry
|
|
58
|
+
});
|
|
59
|
+
// Unkink the geometry.
|
|
60
|
+
// This removes overlapping polygons before we start merging and simplifying.
|
|
61
|
+
// Commented out because it has crashes and doesn't handle holes.
|
|
62
|
+
untangleFeature(gFeature);
|
|
63
|
+
// Union the geometry.
|
|
64
|
+
// This merges overlapping polygons.
|
|
65
|
+
unionFeature(gFeature);
|
|
66
|
+
// Simplify the geometry.
|
|
67
|
+
if (tolerance > 0) {
|
|
68
|
+
gFeature.geometry = turf.simplify(gFeature.geometry, {
|
|
69
|
+
tolerance: tolerance,
|
|
70
|
+
highQuality: true,
|
|
71
|
+
mutate: true
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
// Converting back to Bruce geometry.
|
|
75
|
+
geometry = (_a = bruce_models_1.Geometry.FromGeoJson({
|
|
76
|
+
geoJson: gFeature
|
|
77
|
+
})) === null || _a === void 0 ? void 0 : _a.geometry;
|
|
78
|
+
return geometry;
|
|
79
|
+
}
|
|
80
|
+
SimplifyGeometry.Simplify = Simplify;
|
|
81
|
+
})(SimplifyGeometry = exports.SimplifyGeometry || (exports.SimplifyGeometry = {}));
|
|
82
|
+
/**
|
|
83
|
+
* Runs through all found polygons and runs unkink through turf on them.
|
|
84
|
+
* @param feature
|
|
85
|
+
*/
|
|
86
|
+
function untangleFeature(feature) {
|
|
87
|
+
// Collection to add to because the result might be multiple from an unkink.
|
|
88
|
+
const collection = {
|
|
89
|
+
geometries: [],
|
|
90
|
+
type: "GeometryCollection"
|
|
91
|
+
};
|
|
92
|
+
// Runs a dedupe and unkink on the coordinates.
|
|
93
|
+
// Returns if the coordinates were added to the collection.
|
|
94
|
+
const processCoordinates = (coords) => {
|
|
95
|
+
try {
|
|
96
|
+
// Dedupe the coordinates to avoid issues with unkink.
|
|
97
|
+
coords = dedupeCoordinates(coords);
|
|
98
|
+
const outer = [];
|
|
99
|
+
let inner = [];
|
|
100
|
+
// We'll unkink each ring separately as this is killing the holes when it is done as a whole.
|
|
101
|
+
// So we'll do it separate then recombine.
|
|
102
|
+
for (let i = 0; i < coords.length; i++) {
|
|
103
|
+
const ring = coords[i];
|
|
104
|
+
const unkink = turf.unkinkPolygon({
|
|
105
|
+
type: "Polygon",
|
|
106
|
+
coordinates: [ring]
|
|
107
|
+
});
|
|
108
|
+
if (unkink.type == "FeatureCollection") {
|
|
109
|
+
let target = i == 0 ? outer : inner;
|
|
110
|
+
for (let j = 0; j < unkink.features.length; j++) {
|
|
111
|
+
const unkinked = unkink.features[j].geometry.coordinates;
|
|
112
|
+
if (unkinked.length > 0) {
|
|
113
|
+
target.push(unkinked[0]);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
console.error("Unexpected unkink result.", unkink);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
// Recreate the rings and reapply to the collection.
|
|
122
|
+
if (outer.length > 0) {
|
|
123
|
+
const combinedCoords = [outer[0]];
|
|
124
|
+
for (let i = 0; i < inner.length; i++) {
|
|
125
|
+
combinedCoords.push(inner[i]);
|
|
126
|
+
}
|
|
127
|
+
// Add the combined coordinates to the collection
|
|
128
|
+
const polygon = {
|
|
129
|
+
type: "Polygon",
|
|
130
|
+
coordinates: combinedCoords
|
|
131
|
+
};
|
|
132
|
+
// Ensure right-hand rule is followed.
|
|
133
|
+
ensureRightHandRule(polygon);
|
|
134
|
+
// Add to the collection.
|
|
135
|
+
collection.geometries.push(polygon);
|
|
136
|
+
return true;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
catch (e) {
|
|
140
|
+
// console.error("Failed to unkink polygon.", e);
|
|
141
|
+
}
|
|
142
|
+
return false;
|
|
143
|
+
};
|
|
144
|
+
const processGeometry = (geometry) => {
|
|
145
|
+
let added = false;
|
|
146
|
+
if (geometry.type == "Polygon") {
|
|
147
|
+
added = processCoordinates(geometry.coordinates);
|
|
148
|
+
}
|
|
149
|
+
else if (geometry.type == "MultiPolygon") {
|
|
150
|
+
for (let i = 0; i < geometry.coordinates.length; i++) {
|
|
151
|
+
added = processCoordinates(geometry.coordinates[i]) || added;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
if (!added) {
|
|
155
|
+
// Adding original since we can't unkink it.
|
|
156
|
+
collection.geometries.push(geometry);
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
if (feature.geometry.type == "GeometryCollection") {
|
|
160
|
+
feature.geometry.geometries.forEach((geometry) => {
|
|
161
|
+
processGeometry(geometry);
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
processGeometry(feature.geometry);
|
|
166
|
+
}
|
|
167
|
+
// Re-assign the geometry.
|
|
168
|
+
if (collection.geometries.length == 1) {
|
|
169
|
+
feature.geometry = collection.geometries[0];
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
feature.geometry = collection;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Runs through all found polygons and unions them using turf.
|
|
177
|
+
* Failed unions are ignored and the original is kept.
|
|
178
|
+
* @param feature
|
|
179
|
+
*/
|
|
180
|
+
function unionFeature(feature) {
|
|
181
|
+
// Collection to add to because the result might be multiple from an unkink.
|
|
182
|
+
const collection = {
|
|
183
|
+
geometries: [],
|
|
184
|
+
type: "GeometryCollection"
|
|
185
|
+
};
|
|
186
|
+
// We'll turn each geometry into a feature and union them.
|
|
187
|
+
const tmpCollection = {
|
|
188
|
+
features: [],
|
|
189
|
+
type: "FeatureCollection"
|
|
190
|
+
};
|
|
191
|
+
if (feature.geometry.type == "GeometryCollection") {
|
|
192
|
+
feature.geometry.geometries.forEach((geometry) => {
|
|
193
|
+
if (geometry.type == "Polygon") {
|
|
194
|
+
tmpCollection.features.push({
|
|
195
|
+
type: "Feature",
|
|
196
|
+
geometry: geometry,
|
|
197
|
+
properties: {}
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
else if (geometry.type == "MultiPolygon") {
|
|
201
|
+
for (let i = 0; i < geometry.coordinates.length; i++) {
|
|
202
|
+
tmpCollection.features.push({
|
|
203
|
+
type: "Feature",
|
|
204
|
+
geometry: {
|
|
205
|
+
type: "Polygon",
|
|
206
|
+
coordinates: geometry.coordinates[i]
|
|
207
|
+
},
|
|
208
|
+
properties: {}
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
// Only focusing on polygons.
|
|
213
|
+
else {
|
|
214
|
+
collection.geometries.push(geometry);
|
|
215
|
+
}
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
else if (feature.geometry.type == "Polygon") {
|
|
219
|
+
tmpCollection.features.push({
|
|
220
|
+
type: "Feature",
|
|
221
|
+
geometry: feature.geometry,
|
|
222
|
+
properties: {}
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
else if (feature.geometry.type == "MultiPolygon") {
|
|
226
|
+
for (let i = 0; i < feature.geometry.coordinates.length; i++) {
|
|
227
|
+
tmpCollection.features.push({
|
|
228
|
+
type: "Feature",
|
|
229
|
+
geometry: {
|
|
230
|
+
type: "Polygon",
|
|
231
|
+
coordinates: feature.geometry.coordinates[i]
|
|
232
|
+
},
|
|
233
|
+
properties: {}
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
// No polygons to union.
|
|
238
|
+
// Need at least 2 to union.
|
|
239
|
+
if (tmpCollection.features.length < 2) {
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
// Now we'll union them.
|
|
243
|
+
try {
|
|
244
|
+
const union = turf.union(tmpCollection);
|
|
245
|
+
if (union.geometry.type == "Polygon") {
|
|
246
|
+
collection.geometries.push(union.geometry);
|
|
247
|
+
}
|
|
248
|
+
else if (union.geometry.type == "MultiPolygon") {
|
|
249
|
+
for (let i = 0; i < union.geometry.coordinates.length; i++) {
|
|
250
|
+
collection.geometries.push({
|
|
251
|
+
type: "Polygon",
|
|
252
|
+
coordinates: union.geometry.coordinates[i]
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
// Returning early because the result is unexpected.
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
catch (e) {
|
|
262
|
+
// console.error("Failed to union polygons.", e);
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
// Re-assign the geometry.
|
|
266
|
+
if (collection.geometries.length == 1) {
|
|
267
|
+
feature.geometry = collection.geometries[0];
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
feature.geometry = collection;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
function dedupeCoordinates(inputCoords) {
|
|
274
|
+
return inputCoords.map(ring => {
|
|
275
|
+
if (ring.length < 2) {
|
|
276
|
+
return ring;
|
|
277
|
+
}
|
|
278
|
+
const dedupeCoords = [];
|
|
279
|
+
const uniqueCoords = new Set();
|
|
280
|
+
// Dedupe the points.
|
|
281
|
+
ring.forEach(coord => {
|
|
282
|
+
const key = coord.join(',');
|
|
283
|
+
if (!uniqueCoords.has(key)) {
|
|
284
|
+
uniqueCoords.add(key);
|
|
285
|
+
dedupeCoords.push(coord);
|
|
286
|
+
}
|
|
287
|
+
});
|
|
288
|
+
// Make sure the last point matches the first.
|
|
289
|
+
if (dedupeCoords.length > 1) {
|
|
290
|
+
if (dedupeCoords[0][0] != dedupeCoords[dedupeCoords.length - 1][0] ||
|
|
291
|
+
dedupeCoords[0][1] != dedupeCoords[dedupeCoords.length - 1][1]) {
|
|
292
|
+
dedupeCoords.push(dedupeCoords[0]);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
return dedupeCoords;
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
function ensureRightHandRule(polygon) {
|
|
299
|
+
// Ensure the outer ring follows the right-hand rule
|
|
300
|
+
if (polygon.coordinates.length > 0) {
|
|
301
|
+
const outerRing = polygon.coordinates[0];
|
|
302
|
+
if (isClockwise(outerRing)) {
|
|
303
|
+
polygon.coordinates[0] = outerRing.reverse();
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
// Ensure any inner rings (holes) follow the right-hand rule
|
|
307
|
+
for (let i = 1; i < polygon.coordinates.length; i++) {
|
|
308
|
+
const innerRing = polygon.coordinates[i];
|
|
309
|
+
if (!isClockwise(innerRing)) {
|
|
310
|
+
polygon.coordinates[i] = innerRing.reverse();
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
function isClockwise(ring) {
|
|
315
|
+
let sum = 0;
|
|
316
|
+
for (let i = 0; i < ring.length - 1; i++) {
|
|
317
|
+
const p1 = ring[i];
|
|
318
|
+
const p2 = ring[i + 1];
|
|
319
|
+
sum += (p2[0] - p1[0]) * (p2[1] + p1[1]);
|
|
320
|
+
}
|
|
321
|
+
return sum > 0;
|
|
322
|
+
}
|
|
323
|
+
//# sourceMappingURL=simplify-geometry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simplify-geometry.js","sourceRoot":"","sources":["../../../src/utils/simplify-geometry.ts"],"names":[],"mappings":";;;AAAA,+CAAyE;AAQzE;;GAEG;AACH,IAAiB,gBAAgB,CA4EhC;AA5ED,WAAiB,gBAAgB;IAC7B;;;;;OAKG;IACH,SAAgB,WAAW,CAAC,QAA4B,EAAE,KAAc;QACpE,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,QAAQ,GAAG,CAAC,QAA4B,EAAE,EAAE;YAC9C,IAAI,QAAQ,CAAC,aAAa,EAAE;gBACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACpD,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpC,6BAA6B;oBAC7B,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,EAAE;wBACzB,OAAO;qBACV;iBACJ;aACJ;iBACI,IAAI,QAAQ,CAAC,OAAO,EAAE;gBACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC9C,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBACpC,KAAK,IAAI,uBAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;iBAC5D;aACJ;iBACI,IAAI,QAAQ,CAAC,UAAU,EAAE;gBAC1B,KAAK,IAAI,uBAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;aAC7D;iBACI,IAAI,QAAQ,CAAC,KAAK,EAAE;gBACrB,KAAK,IAAI,CAAC,CAAC;aACd;QACL,CAAC,CAAC;QACF,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACnB,OAAO,KAAK,CAAC;IACjB,CAAC;IA3Be,4BAAW,cA2B1B,CAAA;IAED;;;;OAIG;IACH,SAAgB,QAAQ,CAAC,QAAgB,EAAE,QAA4B,EAAE,SAAiB;;QACtF,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACtC,OAAO,QAAQ,CAAC;SACnB;QAED,wDAAwD;QACxD,MAAM,QAAQ,GAAG,uBAAQ,CAAC,gBAAgB,CAAC;YACvC,QAAQ,EAAE,QAAQ;SACrB,CAAC,CAAC;QAEH,uBAAuB;QACvB,6EAA6E;QAC7E,iEAAiE;QACjE,eAAe,CAAC,QAAQ,CAAC,CAAC;QAE1B,sBAAsB;QACtB,oCAAoC;QACpC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAEvB,yBAAyB;QACzB,IAAI,SAAS,GAAG,CAAC,EAAE;YACf,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAe,EAAE;gBACxD,SAAS,EAAE,SAAS;gBACpB,WAAW,EAAE,IAAI;gBACjB,MAAM,EAAE,IAAI;aACf,CAAC,CAAC;SACN;QAED,qCAAqC;QACrC,QAAQ,GAAG,MAAA,uBAAQ,CAAC,WAAW,CAAC;YAC5B,OAAO,EAAE,QAAQ;SACpB,CAAC,0CAAE,QAAQ,CAAC;QAEb,OAAO,QAAQ,CAAC;IACpB,CAAC;IAlCe,yBAAQ,WAkCvB,CAAA;AACL,CAAC,EA5EgB,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QA4EhC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,OAAyB;IAC9C,4EAA4E;IAC5E,MAAM,UAAU,GAAgC;QAC5C,UAAU,EAAE,EAAE;QACd,IAAI,EAAE,oBAAoB;KAC7B,CAAC;IAEF,+CAA+C;IAC/C,2DAA2D;IAC3D,MAAM,kBAAkB,GAAG,CAAC,MAA4B,EAAW,EAAE;QACjE,IAAI;YACA,sDAAsD;YACtD,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAEnC,MAAM,KAAK,GAAyB,EAAE,CAAC;YACvC,IAAI,KAAK,GAAyB,EAAE,CAAC;YAErC,6FAA6F;YAC7F,0CAA0C;YAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAEvB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;oBAC9B,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,CAAC,IAAI,CAAC;iBACtB,CAAC,CAAC;gBAEH,IAAI,MAAM,CAAC,IAAI,IAAI,mBAAmB,EAAE;oBACpC,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;oBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAC7C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAmC,CAAC;wBACjF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;4BACrB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;yBAC5B;qBACJ;iBACJ;qBACI;oBACD,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC;iBACtD;aACJ;YAED,oDAAoD;YACpD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClB,MAAM,cAAc,GAAyB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACnC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;iBACjC;gBAED,iDAAiD;gBACjD,MAAM,OAAO,GAAqB;oBAC9B,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,cAAc;iBAC9B,CAAC;gBAEF,sCAAsC;gBACtC,mBAAmB,CAAC,OAAO,CAAC,CAAC;gBAE7B,yBAAyB;gBACzB,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACpC,OAAO,IAAI,CAAC;aACf;SACJ;QACD,OAAO,CAAC,EAAE;YACN,iDAAiD;SACpD;QACD,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,QAA0B,EAAE,EAAE;QACnD,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,IAAI,QAAQ,CAAC,IAAI,IAAI,SAAS,EAAE;YAC5B,KAAK,GAAG,kBAAkB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;SACpD;aACI,IAAI,QAAQ,CAAC,IAAI,IAAI,cAAc,EAAE;YACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAClD,KAAK,GAAG,kBAAkB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;aAChE;SACJ;QACD,IAAI,CAAC,KAAK,EAAE;YACR,4CAA4C;YAC5C,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACxC;IACL,CAAC,CAAC;IAEF,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,oBAAoB,EAAE;QAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC7C,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;KACN;SACI;QACD,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;KACrC;IAED,0BAA0B;IAC1B,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE;QACnC,OAAO,CAAC,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KAC/C;SACI;QACD,OAAO,CAAC,QAAQ,GAAG,UAAU,CAAC;KACjC;AACL,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,OAAyB;IAC3C,4EAA4E;IAC5E,MAAM,UAAU,GAAgC;QAC5C,UAAU,EAAE,EAAE;QACd,IAAI,EAAE,oBAAoB;KAC7B,CAAC;IAEF,0DAA0D;IAC1D,MAAM,aAAa,GAA+B;QAC9C,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,mBAAmB;KAC5B,CAAC;IAEF,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,oBAAoB,EAAE;QAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC7C,IAAI,QAAQ,CAAC,IAAI,IAAI,SAAS,EAAE;gBAC5B,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACxB,IAAI,EAAE,SAAS;oBACf,QAAQ,EAAE,QAAQ;oBAClB,UAAU,EAAE,EAAE;iBACjB,CAAC,CAAC;aACN;iBACI,IAAI,QAAQ,CAAC,IAAI,IAAI,cAAc,EAAE;gBACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAClD,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC;wBACxB,IAAI,EAAE,SAAS;wBACf,QAAQ,EAAE;4BACN,IAAI,EAAE,SAAS;4BACf,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;yBACvC;wBACD,UAAU,EAAE,EAAE;qBACjB,CAAC,CAAC;iBACN;aACJ;YACD,6BAA6B;iBACxB;gBACD,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACxC;QACL,CAAC,CAAC,CAAC;KACN;SACI,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,SAAS,EAAE;QACzC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC;YACxB,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,UAAU,EAAE,EAAE;SACjB,CAAC,CAAC;KACN;SACI,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,cAAc,EAAE;QAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1D,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACxB,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE;oBACN,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;iBAC/C;gBACD,UAAU,EAAE,EAAE;aACjB,CAAC,CAAC;SACN;KACJ;IAED,wBAAwB;IACxB,4BAA4B;IAC5B,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;QACnC,OAAO;KACV;IAED,wBAAwB;IACxB,IAAI;QACA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAoB,CAAC,CAAC;QAE/C,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,SAAS,EAAE;YAClC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,QAAe,CAAC,CAAC;SACrD;aACI,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,cAAc,EAAE;YAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACxD,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC;oBACvB,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAQ;iBACpD,CAAC,CAAC;aACN;SACJ;aACI;YACD,oDAAoD;YACpD,OAAO;SACV;KACJ;IACD,OAAO,CAAC,EAAE;QACN,iDAAiD;QACjD,OAAO;KACV;IAED,0BAA0B;IAC1B,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE;QACnC,OAAO,CAAC,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KAC/C;SACI;QACD,OAAO,CAAC,QAAQ,GAAG,UAAU,CAAC;KACjC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,WAAiC;IACxD,OAAO,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QAC1B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACjB,OAAO,IAAI,CAAC;SACf;QAED,MAAM,YAAY,GAAuB,EAAE,CAAC;QAC5C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;QAE/B,qBAAqB;QACrB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACjB,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACxB,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACtB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC5B;QACL,CAAC,CAAC,CAAC;QAEH,8CAA8C;QAC9C,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9D,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gBAChE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;aACtC;SACJ;QAED,OAAO,YAAY,CAAC;IACxB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAyB;IAClD,oDAAoD;IACpD,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;QAChC,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE;YACxB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;SAChD;KACJ;IAED,4DAA4D;IAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACjD,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;YACzB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;SAChD;KACJ;AACL,CAAC;AAED,SAAS,WAAW,CAAC,IAAwB;IACzC,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QACtC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACvB,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;KAC5C;IACD,OAAO,GAAG,GAAG,CAAC,CAAC;AACnB,CAAC"}
|