bruce-cesium 2.2.6 → 2.2.7

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.
Files changed (52) hide show
  1. package/dist/bruce-cesium.es5.js +3289 -107
  2. package/dist/bruce-cesium.es5.js.map +1 -1
  3. package/dist/bruce-cesium.umd.js +3288 -104
  4. package/dist/bruce-cesium.umd.js.map +1 -1
  5. package/dist/lib/bruce-cesium.js +3 -1
  6. package/dist/lib/bruce-cesium.js.map +1 -1
  7. package/dist/lib/rendering/view-render-engine.js +24 -16
  8. package/dist/lib/rendering/view-render-engine.js.map +1 -1
  9. package/dist/lib/rendering/visuals-register.js +5 -0
  10. package/dist/lib/rendering/visuals-register.js.map +1 -1
  11. package/dist/lib/utils/drawing-utils.js +86 -0
  12. package/dist/lib/utils/drawing-utils.js.map +1 -1
  13. package/dist/lib/utils/view-utils.js +37 -0
  14. package/dist/lib/utils/view-utils.js.map +1 -1
  15. package/dist/lib/viewer/viewer-utils.js +71 -1
  16. package/dist/lib/viewer/viewer-utils.js.map +1 -1
  17. package/dist/lib/widgets/common/draw-3d-polygon.js +466 -0
  18. package/dist/lib/widgets/common/draw-3d-polygon.js.map +1 -0
  19. package/dist/lib/widgets/common/draw-3d-polyline.js +405 -0
  20. package/dist/lib/widgets/common/draw-3d-polyline.js.map +1 -0
  21. package/dist/lib/widgets/common/measure-creator.js +418 -0
  22. package/dist/lib/widgets/common/measure-creator.js.map +1 -0
  23. package/dist/lib/widgets/widget-bookmarks.js +346 -0
  24. package/dist/lib/widgets/widget-bookmarks.js.map +1 -0
  25. package/dist/lib/widgets/widget-branding.js +176 -0
  26. package/dist/lib/widgets/widget-branding.js.map +1 -0
  27. package/dist/lib/widgets/widget-cursorbar.js +291 -0
  28. package/dist/lib/widgets/widget-cursorbar.js.map +1 -0
  29. package/dist/lib/widgets/widget-info-view.js +476 -0
  30. package/dist/lib/widgets/widget-info-view.js.map +1 -0
  31. package/dist/lib/widgets/widget-nav-compass.js +250 -0
  32. package/dist/lib/widgets/widget-nav-compass.js.map +1 -0
  33. package/dist/lib/widgets/widget-searchbar.js +409 -0
  34. package/dist/lib/widgets/widget-searchbar.js.map +1 -0
  35. package/dist/lib/widgets/widget.js +50 -0
  36. package/dist/lib/widgets/widget.js.map +1 -0
  37. package/dist/types/bruce-cesium.d.ts +3 -1
  38. package/dist/types/rendering/visuals-register.d.ts +2 -1
  39. package/dist/types/utils/drawing-utils.d.ts +13 -0
  40. package/dist/types/utils/view-utils.d.ts +7 -0
  41. package/dist/types/viewer/viewer-utils.d.ts +21 -0
  42. package/dist/types/widgets/common/draw-3d-polygon.d.ts +62 -0
  43. package/dist/types/widgets/common/draw-3d-polyline.d.ts +47 -0
  44. package/dist/types/widgets/common/measure-creator.d.ts +60 -0
  45. package/dist/types/widgets/widget-bookmarks.d.ts +39 -0
  46. package/dist/types/widgets/widget-branding.d.ts +14 -0
  47. package/dist/types/widgets/widget-cursorbar.d.ts +27 -0
  48. package/dist/types/widgets/widget-info-view.d.ts +21 -0
  49. package/dist/types/widgets/widget-nav-compass.d.ts +27 -0
  50. package/dist/types/widgets/widget-searchbar.d.ts +17 -0
  51. package/dist/types/widgets/widget.d.ts +26 -0
  52. package/package.json +2 -2
@@ -0,0 +1,250 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.WidgetNavCompass = void 0;
19
+ var widget_1 = require("./widget");
20
+ var Cesium = require("cesium");
21
+ var BEngine = require("../bruce-cesium");
22
+ var WidgetNavCompass = /** @class */ (function (_super) {
23
+ __extends(WidgetNavCompass, _super);
24
+ function WidgetNavCompass(params) {
25
+ var _this = _super.call(this, params) || this;
26
+ _this.ZOOM_DISTANCE = 0.85;
27
+ _this.ZOOM_TIME = 0.2;
28
+ _this.TURN_SPEED = 0.04;
29
+ _this.MIN_ZOOM_DISTANCE = 0.3;
30
+ _this.STYLESHEET_ID = "nextspace-nav-compass-stylesheet";
31
+ _this._generateStyles();
32
+ _this._generateElement();
33
+ _this._listenToRenders();
34
+ return _this;
35
+ }
36
+ WidgetNavCompass.prototype._getIs2d = function () {
37
+ return this._viewer.camera.frustum instanceof Cesium.OrthographicFrustum;
38
+ };
39
+ WidgetNavCompass.prototype._listenToRenders = function () {
40
+ var _this = this;
41
+ if (this._renderRemoval) {
42
+ return;
43
+ }
44
+ this._renderRemoval = this._viewer.scene.postRender.addEventListener(function () {
45
+ _this._updateAxis();
46
+ _this._update2d3d();
47
+ });
48
+ };
49
+ WidgetNavCompass.prototype.Dispose = function () {
50
+ if (this._renderRemoval) {
51
+ this._renderRemoval();
52
+ this._renderRemoval = null;
53
+ }
54
+ _super.prototype.Dispose.call(this);
55
+ };
56
+ WidgetNavCompass.prototype._generateStyles = function () {
57
+ if (document.getElementById(this.STYLESHEET_ID)) {
58
+ return;
59
+ }
60
+ var style = document.createElement("style");
61
+ style.id = this.STYLESHEET_ID;
62
+ style.innerHTML = "\n .NextspaceNavCompass {\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 85px;\n min-height: 150px;\n background: rgba(33, 39, 42, 0.75);\n box-shadow: 0px 0px 1px rgba(18, 22, 25, 0.18), 0px 18px 36px -4px rgba(18, 22, 25, 0.36);\n backdrop-filter: blur(20px);\n border-radius: 102px 102px 9px 9px;\n overflow: hidden;\n padding-top: 85px;\n padding-bottom: 5px;\n position: absolute;\n bottom: 10px;\n right: 10px;\n box-sizing: border-box;\n }\n\n .NextspaceNavCompass * {\n box-sizing: border-box;\n }\n\n .NextspaceNavCompassTop {\n position: absolute;\n height: 85px;\n width: 85px;\n top: -2px;\n border-radius: 50%;\n border: 1px solid #4D5358;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .NextspaceNavCompassAxis {\n background: #181d20;\n border: 1px solid rgba(255, 255, 255, 0.15);\n width: 60px;\n height: 60px;\n border-radius: 50%;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n }\n\n .NextspaceNavCompassAxis >svg {\n transition: 0.3s ease;\n opacity: 0.9;\n position: absolute;\n }\n\n .NextspaceNavCompassArrow {\n margin-bottom: 6px;\n }\n\n .NextspaceNavCompassAxis:hover .NextspaceNavCompassArrow {\n opacity: 1;\n transform: scale(1.1);\n }\n\n .NextspaceNavCompassRow {\n display: flex;\n align-items: center;\n }\n\n .NextspaceNavCompassCol {\n display: flex;\n flex-direction: column;\n }\n\n .NextspaceNavCompassButt {\n width: 40px;\n height: 35px;\n flex-shrink: 1;\n flex-grow: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: 0.3s ease;\n }\n\n .NextspaceNavCompassButt[is-disabled=\"true\"] {\n opacity: 0.4;\n cursor: default;\n pointer-events: none;\n }\n\n .NextspaceNavCompassButt:hover {\n transform: scale(1.2);\n }\n\n .NextspaceNavCompassHorDash {\n background-color: rgba(255, 255, 255, 0.12);\n width: calc(100% - 10px);\n height: 1px;\n flex-shrink: 0;\n flex-grow: 0;\n margin-top: 5px;\n margin-bottom: 5px;\n }\n\n .NextspaceNavCompassVerDash {\n background-color: rgba(255, 255, 255, 0.12);\n width: 1px;\n height: 50px;\n flex-shrink: 0;\n flex-grow: 0;\n margin-top: 5px;\n margin-bottom: 5px;\n margin-left: 1px;\n margin-right: 1px;\n }\n\n .NextspaceNavCompassDimToggle {\n background: #121619;\n border-radius: 6px;\n width: calc(100% - 10px);\n height: 24px;\n flex-grow: 0;\n flex-shrink: 1;\n padding: 2px;\n display: flex;\n }\n\n .NextspaceNavCompassDimToggleButt {\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n flex-grow: 1;\n flex-shrink: 1;\n width: 100%;\n transition: 0.3s ease;\n cursor: pointer;\n opacity: 0.4;\n color: white;\n font-size: 12px;\n font-family: Arial, Helvetica, sans-serif;\n }\n\n .NextspaceNavCompassDimToggleButt[is-selected=\"true\"] {\n opacity: 1;\n background-color: #4D5358;\n box-shadow: inset 0px 1px 0px rgba(255, 255, 255, 0.12);\n }\n ";
63
+ document.head.appendChild(style);
64
+ };
65
+ WidgetNavCompass.prototype._generateElement = function () {
66
+ var _this = this;
67
+ var element = document.createElement("div");
68
+ element.className = "NextspaceNavCompass";
69
+ var top = document.createElement("div");
70
+ top.className = "NextspaceNavCompassTop";
71
+ element.appendChild(top);
72
+ var axis = document.createElement("div");
73
+ axis.className = "NextspaceNavCompassAxis";
74
+ axis.setAttribute("title", "Click to reset north");
75
+ top.appendChild(axis);
76
+ axis.addEventListener("click", function () {
77
+ _this._clickResetNorth();
78
+ });
79
+ axis.innerHTML = "\n <svg width=\"72\" height=\"72\" viewBox=\"0 0 94 94\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"46\" width=\"2\" height=\"8\" rx=\"1\" fill=\"#FF3D00\"/>\n <rect x=\"46\" y=\"86\" width=\"2\" height=\"8\" rx=\"1\" fill=\"#4D5254\"/>\n <rect x=\"94\" y=\"46\" width=\"2\" height=\"8\" rx=\"1\" transform=\"rotate(90 94 46)\" fill=\"#4D5254\"/>\n <rect x=\"8\" y=\"46\" width=\"2\" height=\"8\" rx=\"1\" transform=\"rotate(90 8 46)\" fill=\"#4D5254\"/>\n <rect x=\"79.5269\" y=\"13.0589\" width=\"2\" height=\"8\" rx=\"1\" transform=\"rotate(45 79.5269 13.0589)\" fill=\"#4D5254\"/>\n <rect x=\"18.7157\" y=\"73.8701\" width=\"2\" height=\"8\" rx=\"1\" transform=\"rotate(45 18.7157 73.8701)\" fill=\"#4D5254\"/>\n <rect x=\"80.9412\" y=\"79.5269\" width=\"2\" height=\"8\" rx=\"1\" transform=\"rotate(135 80.9412 79.5269)\" fill=\"#4D5254\"/>\n <rect x=\"20.1299\" y=\"18.7157\" width=\"2\" height=\"8\" rx=\"1\" transform=\"rotate(135 20.1299 18.7157)\" fill=\"#4D5254\"/>\n <rect x=\"28.8555\" y=\"5.80811\" width=\"2\" height=\"4\" rx=\"1\" transform=\"rotate(-22.5 28.8555 5.80811)\" fill=\"#505456\"/>\n <rect x=\"61.7662\" y=\"85.2617\" width=\"2\" height=\"4\" rx=\"1\" transform=\"rotate(-22.5 61.7662 85.2617)\" fill=\"#505456\"/>\n <rect x=\"88.1919\" y=\"28.8553\" width=\"2\" height=\"4\" rx=\"1\" transform=\"rotate(67.5 88.1919 28.8553)\" fill=\"#505456\"/>\n <rect x=\"8.73828\" y=\"61.7661\" width=\"2\" height=\"4\" rx=\"1\" transform=\"rotate(67.5 8.73828 61.7661)\" fill=\"#505456\"/>\n <rect x=\"63.2969\" y=\"5.04272\" width=\"2\" height=\"4\" rx=\"1\" transform=\"rotate(22.5 63.2969 5.04272)\" fill=\"#505456\"/>\n <rect x=\"30.386\" y=\"84.4963\" width=\"2\" height=\"4\" rx=\"1\" transform=\"rotate(22.5 30.386 84.4963)\" fill=\"#505456\"/>\n <rect x=\"88.9572\" y=\"63.2969\" width=\"2\" height=\"4\" rx=\"1\" transform=\"rotate(112.5 88.9572 63.2969)\" fill=\"#505456\"/>\n <rect x=\"9.50354\" y=\"30.3861\" width=\"2\" height=\"4\" rx=\"1\" transform=\"rotate(112.5 9.50354 30.3861)\" fill=\"#505456\"/>\n </svg>\n\n <svg class=\"NextspaceNavCompassArrow\" width=\"28\" height=\"35\" viewBox=\"0 0 32 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M31.544 39.666C31.969 39.29 32.114 38.682 31.905 38.15L17.229 0.845C17.028 0.334 16.542 0 16.001 0C15.46 0 14.974 0.335 14.773 0.846L0.0950303 38.155C-0.11397 38.687 0.0310303 39.295 0.45603 39.67C0.88103 40.046 1.49303 40.106 1.98203 39.821L14.699 32.401C15.515 31.925 16.518 31.925 17.333 32.401L30.019 39.816C30.507 40.101 31.12 40.041 31.545 39.665L31.544 39.666Z\" fill=\"url(#paint0_linear_363_9865)\"/>\n <path d=\"M16.001 0C15.46 0 14.974 0.335 14.773 0.846L0.0950303 38.155C-0.11397 38.687 0.0310303 39.295 0.45603 39.67C0.88103 40.046 1.49303 40.106 1.98203 39.821L14.699 32.401C15.103 32.165 15.552 32.047 16.002 32.045V0H16.001Z\" fill=\"#1192E8\"/>\n <path d=\"M0.454956 39.67C0.879956 40.046 1.49196 40.106 1.98096 39.821L14.698 32.401C15.102 32.165 15.551 32.047 16.001 32.045V24.844L0.454956 39.67Z\" fill=\"url(#paint1_linear_363_9865)\"/>\n <path d=\"M31.546 39.67C31.121 40.046 30.509 40.106 30.02 39.821L17.303 32.401C16.899 32.165 16.45 32.047 16 32.045V24.844L31.546 39.67Z\" fill=\"url(#paint2_linear_363_9865)\"/>\n <defs>\n <linearGradient id=\"paint0_linear_363_9865\" x1=\"16\" y1=\"0\" x2=\"16\" y2=\"39.9997\" gradientUnits=\"userSpaceOnUse\">\n <stop stop-color=\"#0072C3\"/>\n <stop offset=\"1\" stop-color=\"#00539A\"/>\n </linearGradient>\n <linearGradient id=\"paint1_linear_363_9865\" x1=\"8.22796\" y1=\"24.844\" x2=\"8.22796\" y2=\"39.9997\" gradientUnits=\"userSpaceOnUse\">\n <stop stop-color=\"#0072C3\"/>\n <stop offset=\"1\" stop-color=\"#00539A\"/>\n </linearGradient>\n <linearGradient id=\"paint2_linear_363_9865\" x1=\"23.773\" y1=\"24.844\" x2=\"23.773\" y2=\"39.9997\" gradientUnits=\"userSpaceOnUse\">\n <stop stop-color=\"#00539A\"/>\n <stop offset=\"1\" stop-color=\"#003A6D\"/>\n </linearGradient>\n </defs>\n </svg>\n ";
80
+ this._axis = axis;
81
+ var rotateRow = document.createElement("div");
82
+ rotateRow.className = "NextspaceNavCompassRow";
83
+ rotateRow.innerHTML = "\n <div class=\"NextspaceNavCompassButt\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8 12.5C8 16.743 10.5205 20.389 14.1445 22.043C14.6875 22.291 15.3286 22.0152 15.5176 21.4492C15.6776 20.9702 15.4522 20.4473 14.9922 20.2383C12.0482 18.9023 10 15.943 10 12.5C10 10.3219 10.8297 8.34307 12.1777 6.83983L15.1465 9.80858C15.3415 10.0036 15.6585 10.0036 15.8535 9.80858C15.9505 9.71058 16 9.58306 16 9.45506L16 2.95506C16 2.68985 15.8946 2.43549 15.7071 2.24795C15.5196 2.06042 15.2652 1.95506 15 1.95506L8.5 1.95506C8.372 1.95506 8.24348 2.00355 8.14648 2.10155C7.95148 2.29655 7.95148 2.61358 8.14648 2.80858L10.7695 5.43163C9.05703 7.29483 8 9.76796 8 12.5Z\" fill=\"#A2A9B0\"/>\n </svg>\n </div>\n\n <div class=\"NextspaceNavCompassButt\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M16 12.5C16 16.743 13.4795 20.389 9.85547 22.043C9.31247 22.291 8.67142 22.0152 8.48242 21.4492C8.32242 20.9702 8.54781 20.4473 9.00781 20.2383C11.9518 18.9023 14 15.943 14 12.5C14 10.3219 13.1703 8.34307 11.8223 6.83983L8.85352 9.80858C8.65852 10.0036 8.34149 10.0036 8.14648 9.80858C8.04948 9.71058 8 9.58306 8 9.45506L8 2.95506C8 2.68985 8.10536 2.43549 8.29289 2.24795C8.48043 2.06042 8.73478 1.95506 9 1.95506L15.5 1.95506C15.628 1.95506 15.7565 2.00355 15.8535 2.10155C16.0485 2.29655 16.0485 2.61358 15.8535 2.80858L13.2305 5.43163C14.943 7.29483 16 9.76796 16 12.5Z\" fill=\"#A2A9B0\"/>\n </svg>\n </div>\n ";
84
+ element.appendChild(rotateRow);
85
+ var rotateLeft = rotateRow.children[0];
86
+ var rotateRight = rotateRow.children[1];
87
+ rotateLeft.addEventListener("click", function () {
88
+ _this._doRotate(-Math.PI * 0.25);
89
+ });
90
+ rotateRight.addEventListener("click", function () {
91
+ _this._doRotate(Math.PI * 0.25);
92
+ });
93
+ var horDash = document.createElement("div");
94
+ horDash.className = "NextspaceNavCompassHorDash";
95
+ element.appendChild(horDash);
96
+ var etcRow = document.createElement("div");
97
+ etcRow.className = "NextspaceNavCompassRow";
98
+ etcRow.innerHTML = "\n <div class=\"NextspaceNavCompassCol\">\n <div class=\"NextspaceNavCompassButt\">\n <svg width=\"16\" height=\"9\" viewBox=\"0 0 16 9\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M1 8L8 1L15 8\" stroke=\"#A2A9B0\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n </svg>\n </div>\n\n <div class=\"NextspaceNavCompassButt\">\n <svg width=\"16\" height=\"9\" viewBox=\"0 0 16 9\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M15 1L8 8L1 1\" stroke=\"#A2A9B0\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n </svg>\n </div>\n </div>\n <div class=\"NextspaceNavCompassVerDash\"></div>\n <div class=\"NextspaceNavCompassCol\">\n <div class=\"NextspaceNavCompassButt\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8 1V15\" stroke=\"#A2A9B0\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n <path d=\"M15 8L1 8\" stroke=\"#A2A9B0\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n </svg>\n </div>\n\n <div class=\"NextspaceNavCompassButt\">\n <svg width=\"16\" height=\"2\" viewBox=\"0 0 16 2\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M15 1L1 0.999999\" stroke=\"#A2A9B0\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n </svg>\n </div>\n </div>\n ";
99
+ element.appendChild(etcRow);
100
+ var lookUp = etcRow.children[0].children[0];
101
+ this._up = lookUp;
102
+ var lookDown = etcRow.children[0].children[1];
103
+ lookUp.addEventListener("click", function () {
104
+ _this._doLook(true);
105
+ });
106
+ this._down = lookDown;
107
+ lookDown.addEventListener("click", function () {
108
+ _this._doLook(false);
109
+ });
110
+ var zoomIn = etcRow.children[2].children[0];
111
+ var zoomOut = etcRow.children[2].children[1];
112
+ zoomIn.addEventListener("click", function () {
113
+ _this._doZoom(true);
114
+ });
115
+ zoomOut.addEventListener("click", function () {
116
+ _this._doZoom(false);
117
+ });
118
+ var dimToggle = document.createElement("div");
119
+ dimToggle.className = "NextspaceNavCompassDimToggle";
120
+ dimToggle.innerHTML = "\n <div class=\"NextspaceNavCompassDimToggleButt\" is-selected=\"false\">\n 3D\n </div>\n\n <div class=\"NextspaceNavCompassDimToggleButt\" is-selected=\"false\">\n 2D\n </div>\n ";
121
+ element.appendChild(dimToggle);
122
+ var butt2d = dimToggle.children[1];
123
+ this._2d = butt2d;
124
+ butt2d.addEventListener("click", function () {
125
+ _this._toggle2d3d();
126
+ });
127
+ var butt3d = dimToggle.children[0];
128
+ this._3d = butt3d;
129
+ butt3d.addEventListener("click", function () {
130
+ _this._toggle2d3d();
131
+ });
132
+ this.Container.appendChild(element);
133
+ this._element = element;
134
+ this._update2d3d();
135
+ };
136
+ WidgetNavCompass.prototype._updateAxis = function () {
137
+ var heading = this._viewer.camera.heading;
138
+ var axis = this._axis;
139
+ axis.style.transform = "rotate(".concat(heading, "rad)");
140
+ };
141
+ WidgetNavCompass.prototype._clickResetNorth = function () {
142
+ var viewer = this._viewer;
143
+ var h = viewer.camera.heading;
144
+ var north = h < Math.PI ? h : h - Math.PI * 2;
145
+ this._doRotate(north);
146
+ };
147
+ WidgetNavCompass.prototype._doRotate = function (radians) {
148
+ var viewer = this._viewer;
149
+ var TURN_SPEED = this.TURN_SPEED;
150
+ var left = radians < 0;
151
+ radians = Math.abs(radians);
152
+ var camera = viewer.camera;
153
+ var is2d = this._getIs2d();
154
+ var isLookingStraightDown = camera.pitch === -Math.PI / 2;
155
+ if (is2d || isLookingStraightDown) {
156
+ camera.flyTo({
157
+ destination: camera.position,
158
+ orientation: {
159
+ heading: camera.heading + (left ? radians : -radians),
160
+ pitch: camera.pitch,
161
+ roll: camera.roll
162
+ },
163
+ duration: 0.2
164
+ });
165
+ }
166
+ else {
167
+ var c = viewer.canvas;
168
+ var center = new Cesium.Cartesian2(c.width / 2, c.height / 2);
169
+ var ground_1 = BEngine.DrawingUtils.GetAccuratePosition(viewer, center);
170
+ if (!(ground_1 === null || ground_1 === void 0 ? void 0 : ground_1.x)) {
171
+ return;
172
+ }
173
+ var offset_1 = Cesium.Cartesian3.distance(camera.position, ground_1);
174
+ var r_1 = 0;
175
+ var unsub_1 = viewer.clock.onTick.addEventListener(function () {
176
+ var inc = Math.PI * TURN_SPEED;
177
+ if (r_1 + inc >= radians) {
178
+ unsub_1();
179
+ inc = radians - r_1;
180
+ }
181
+ camera.lookAt(ground_1, new Cesium.HeadingPitchRange(camera.heading, camera.pitch, offset_1));
182
+ left ? camera.rotateLeft(inc) : camera.rotateRight(inc);
183
+ camera.lookAtTransform(Cesium.Matrix4.IDENTITY);
184
+ r_1 += inc;
185
+ });
186
+ }
187
+ };
188
+ WidgetNavCompass.prototype._doZoom = function (zoomIn) {
189
+ var viewer = this._viewer;
190
+ var c = viewer.canvas;
191
+ var center = new Cesium.Cartesian2(c.width / 2, c.height / 2);
192
+ var camera = viewer.camera;
193
+ var ground = BEngine.DrawingUtils.GetAccuratePosition(viewer, center);
194
+ if (!(ground === null || ground === void 0 ? void 0 : ground.x)) {
195
+ return;
196
+ }
197
+ var p = camera.position;
198
+ var height = Cesium.Cartesian3.distance(p, ground);
199
+ var mag = this.ZOOM_DISTANCE / Math.max(1, 4 - Math.log10(height));
200
+ var zoom = zoomIn ? 1 - mag : 1 + mag;
201
+ var offset = Cesium.Cartesian3.multiplyByScalar(Cesium.Cartesian3.subtract(p, ground, new Cesium.Cartesian3), zoom, new Cesium.Cartesian3);
202
+ if (zoomIn && Cesium.Cartesian3.magnitude(offset) <= this.MIN_ZOOM_DISTANCE) {
203
+ return;
204
+ }
205
+ var to = Cesium.Cartesian3.add(ground, offset, new Cesium.Cartesian3);
206
+ camera.flyTo({
207
+ destination: to,
208
+ orientation: { heading: camera.heading, pitch: camera.pitch, roll: camera.roll },
209
+ duration: this.ZOOM_TIME,
210
+ easingFunction: Cesium.EasingFunction.QUADRATIC_IN_OUT
211
+ });
212
+ };
213
+ WidgetNavCompass.prototype._doLook = function (tiltUp) {
214
+ var viewer = this._viewer;
215
+ var diff = 6.26 / 32;
216
+ if (!tiltUp) {
217
+ diff *= -1;
218
+ }
219
+ var current = viewer.camera.pitch;
220
+ current += diff;
221
+ viewer.camera.flyTo({
222
+ destination: viewer.camera.position,
223
+ orientation: {
224
+ heading: viewer.camera.heading,
225
+ pitch: current,
226
+ roll: viewer.camera.roll
227
+ },
228
+ duration: 0.2
229
+ });
230
+ };
231
+ WidgetNavCompass.prototype._update2d3d = function () {
232
+ var is2d = this._getIs2d();
233
+ this._2d.setAttribute("is-selected", is2d ? "true" : "false");
234
+ this._3d.setAttribute("is-selected", is2d ? "false" : "true");
235
+ this._up.setAttribute("is-disabled", is2d ? "true" : "false");
236
+ this._down.setAttribute("is-disabled", is2d ? "true" : "false");
237
+ };
238
+ WidgetNavCompass.prototype._toggle2d3d = function () {
239
+ var shouldBe2d = !this._getIs2d();
240
+ BEngine.ViewUtils.Set2dStatus({
241
+ status: shouldBe2d,
242
+ viewer: this._viewer,
243
+ moveCamera: true
244
+ });
245
+ this._update2d3d();
246
+ };
247
+ return WidgetNavCompass;
248
+ }(widget_1.Widget.AWidget));
249
+ exports.WidgetNavCompass = WidgetNavCompass;
250
+ //# sourceMappingURL=widget-nav-compass.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget-nav-compass.js","sourceRoot":"","sources":["../../../src/widgets/widget-nav-compass.ts"],"names":[],"mappings":"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"}