@openglobus/og 1.0.0-rc14 → 1.0.0-rc16

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.
@@ -23,18 +23,19 @@ interface ISunParams extends IControlParams {
23
23
  * @param {number} [options.offsetVertical=-5000000] - Vertical offset of the camera following light.
24
24
  * @param {number} [options.offsetHorizontal=5000000] - Horizontal offset of the camera following light.
25
25
  * @param {boolean} [options.stopped=false] - Stops the control, leaving the Sun on its real position by the clock.
26
- * @param {Date} [options.localDateTime] - Lights the scene by a fixed local apparent solar time under the camera
27
- * instead of the camera following light, below activationHeight. At 12:00 the Sun stands on the meridian there,
28
- * while the date sets the season. Read for the wall clock numbers it shows locally, so it is not an instant in
29
- * time: one parsed from an absolute timestamp reads as the machine's time zone renders it. The Clock is left
30
- * untouched, and while the control is stopped this is ignored.
26
+ * @param {Date} [options.localDateTime] - Lights the scene by the local apparent solar time under the camera
27
+ * instead of the camera following light. At 12:00 the Sun stands on the meridian there, while the date sets the
28
+ * season. Read by its UTC clock, so it is not an instant in time but the numbers a wall clock shows: build it
29
+ * with Date.UTC. While it is set it drives the light at any height, whether the control is stopped or not, and
30
+ * the Clock is left untouched.
31
31
  */
32
32
  export declare class Sun extends Control {
33
33
  activationHeight: number;
34
34
  offsetVertical: number;
35
35
  offsetHorizontal: number;
36
36
  /**
37
- * Fixed local apparent solar time under the camera, or null for the camera following light.
37
+ * Local apparent solar time under the camera, read by its UTC clock,
38
+ * or null for the camera following light.
38
39
  * @public
39
40
  * @type {Date | null}
40
41
  */
@@ -57,7 +58,7 @@ export declare class Sun extends Control {
57
58
  bindClock(clock: Clock): void;
58
59
  getPosition(): Vec3;
59
60
  /**
60
- * Sets a fixed local apparent solar time under the camera.
61
+ * Sets the local apparent solar time under the camera, read by its UTC clock.
61
62
  * @public
62
63
  * @param {Date | null} localDateTime - Local date and time, or null to restore the camera following light.
63
64
  */
@@ -72,14 +73,16 @@ export declare class Sun extends Control {
72
73
  */
73
74
  protected _getCameraFollowingPosition(cam: PlanetCamera): Vec3;
74
75
  /**
75
- * Returns the julian date at which localDateTime is the local apparent solar time at lon.
76
- * Local mean solar time is the first guess, then the measured subsolar longitude corrects it;
77
- * that point drifts -360 degrees a day, so a residual of d degrees is worth -d / 360 of a day.
76
+ * Returns the julian date at which the clock of the given one, read as UTC, is the local apparent
77
+ * solar time at lon. Local mean solar time is the first guess, then the measured subsolar longitude
78
+ * corrects it; that point drifts -360 degrees a day, so a residual of d degrees is worth -d / 360
79
+ * of a day.
78
80
  * @protected
81
+ * @param {JulianDate} utc - Julian date to take the clock of.
79
82
  * @param {number} lon - Longitude under the camera, degrees.
80
83
  * @returns {JulianDate} -
81
84
  */
82
- protected _getLocalDateTimeJulian(lon: number): JulianDate;
85
+ protected _getLocalJulian(utc: JulianDate, lon: number): JulianDate;
83
86
  /**
84
87
  * Returns the Sun position for localDateTime at the location under the camera.
85
88
  * @protected
@@ -2,6 +2,7 @@ import { Dialog } from "../../ui/Dialog";
2
2
  import { ToggleButton } from "../../ui/ToggleButton";
3
3
  import { Control, type IControlParams } from "../Control";
4
4
  import { TimelineView } from "./TimelineView";
5
+ import type { TimelineModel } from "./TimelineModel";
5
6
  import { type EventsHandler } from "../../Events";
6
7
  type TimelineControlEventsList = [
7
8
  "visibility",
@@ -15,7 +16,8 @@ type TimelineControlEventsList = [
15
16
  "startdrag",
16
17
  "stopdrag",
17
18
  "startdragcurrent",
18
- "stopdragcurrent"
19
+ "stopdragcurrent",
20
+ "localtime"
19
21
  ];
20
22
  interface ITimelineControlParams extends IControlParams {
21
23
  name?: string;
@@ -30,6 +32,11 @@ declare class TimelineControl extends Control {
30
32
  protected _defaultClockWasRunningBeforeDrag: boolean;
31
33
  events: EventsHandler<TimelineControlEventsList>;
32
34
  constructor(options?: ITimelineControlParams);
35
+ /**
36
+ * Returns timeline data model.
37
+ * @public
38
+ */
39
+ get model(): TimelineModel;
33
40
  oninit(): void;
34
41
  }
35
42
  export { TimelineControl };
@@ -1,5 +1,6 @@
1
1
  import type { EventsHandler } from "../../Events";
2
2
  import { ButtonGroup } from "../../ui/ButtonGroup";
3
+ import { Checkbox } from "../../ui/Checkbox";
3
4
  import { View } from "../../ui/View";
4
5
  import type { IViewParams, ViewEventsList } from "../../ui/View";
5
6
  import { ToggleButton } from "../../ui/ToggleButton";
@@ -27,7 +28,8 @@ type TimelineViewEventsList = [
27
28
  "play",
28
29
  "playback",
29
30
  "pause",
30
- "visibility"
31
+ "visibility",
32
+ "localtime"
31
33
  ];
32
34
  type TimelineTouchMode = typeof TOUCH_MODE_NONE | typeof TOUCH_MODE_CURRENT | typeof TOUCH_MODE_PINCH | typeof TOUCH_MODE_SCALE;
33
35
  interface ITimelineTouchPointer {
@@ -67,6 +69,7 @@ declare class TimelineView extends View<TimelineModel> {
67
69
  protected _pauseBtn: ToggleButton;
68
70
  protected _playBtn: ToggleButton;
69
71
  protected _buttons: ButtonGroup;
72
+ protected _localTimeCheckbox: Checkbox;
70
73
  protected _visibility: boolean;
71
74
  constructor(options?: ITimelineViewParams);
72
75
  protected _onResizeObserver(): void;
@@ -75,6 +78,13 @@ declare class TimelineView extends View<TimelineModel> {
75
78
  resize(): void;
76
79
  afterRender(parentNode: HTMLElement): void;
77
80
  render(): this;
81
+ /**
82
+ * True when the timeline scale is read as the local date and time at the viewed location.
83
+ * @public
84
+ * @type {boolean}
85
+ */
86
+ get localTime(): boolean;
87
+ set localTime(localTime: boolean);
78
88
  setVisibility(visibility: boolean): void;
79
89
  reset(): void;
80
90
  play(): void;
@@ -110,6 +110,24 @@ declare class Geometry {
110
110
  setLineColor(r: number, g: number, b: number, a?: number): Geometry;
111
111
  setStrokeColor4v(rgba: Vec4): Geometry;
112
112
  setLineColor4v(rgba: Vec4): Geometry;
113
+ /**
114
+ * Gets geometry fill color.
115
+ * @public
116
+ * @returns {Vec4} Copy of the normalized RGBA fill color.
117
+ */
118
+ getFillColor4v(): Vec4;
119
+ /**
120
+ * Gets geometry line color.
121
+ * @public
122
+ * @returns {Vec4} Copy of the normalized RGBA line color.
123
+ */
124
+ getLineColor4v(): Vec4;
125
+ /**
126
+ * Gets geometry stroke color.
127
+ * @public
128
+ * @returns {Vec4} Copy of the normalized RGBA stroke color.
129
+ */
130
+ getStrokeColor4v(): Vec4;
113
131
  setStrokeOpacity(opacity: number): Geometry;
114
132
  setLineOpacity(opacity: number): Geometry;
115
133
  setStrokeWidth(width: number): Geometry;
@@ -32,7 +32,7 @@ declare const ALIGN: Record<string, number>;
32
32
  * @param {number} [options.size] - Font size in pixels.
33
33
  * @param {string} [options.style] - HTML5 font style. Example 'normal', 'italic'.
34
34
  * @param {string} [options.weight] - HTML5 font weight. Example 'normal', 'bold'.
35
- * @param {number} [options.outline] - Text outline size. 0 - no outline, 1 - maximum outline. Default 0.58.
35
+ * @param {number} [options.outline] - Text outline width in pixels. 0 - no outline. Default 0.
36
36
  * @param {Vec4|string|Array.<number>} [options.outlineColor] - Outline color.
37
37
  * @param {string} [options.align] - Text horizontal align: "left", "right" and "center".
38
38
  */
@@ -57,7 +57,7 @@ declare class Label extends BaseBillboard {
57
57
  */
58
58
  protected _size: number;
59
59
  /**
60
- * Label outline.
60
+ * Label outline width in pixels.
61
61
  * @protected
62
62
  * @type {number}
63
63
  */
@@ -156,13 +156,15 @@ declare class Label extends BaseBillboard {
156
156
  */
157
157
  getSize(): number;
158
158
  /**
159
- * Sets text outline border size. Where 0 - is no outline, and 1 - is the maximum outline size.
159
+ * Sets text outline border width in pixels. Where 0 - is no outline.
160
+ * The visible width is capped by the font atlas distance field range,
161
+ * which grows with the label font size.
160
162
  * @public
161
- * @param {number} outline - Text outline size.
163
+ * @param {number} outline - Text outline width in pixels.
162
164
  */
163
165
  setOutline(outline: number): void;
164
166
  /**
165
- * Gets text current outline size.
167
+ * Gets text current outline width in pixels.
166
168
  * @public
167
169
  * @returns {number}
168
170
  */
@@ -3,6 +3,7 @@ import { LonLat } from "../../LonLat";
3
3
  import { Vec3 } from "../../math/Vec3";
4
4
  import type { NumberArray3 } from "../../math/Vec3";
5
5
  import type { NumberArray2 } from "../../math/Vec2";
6
+ import { Vec4 } from "../../math/Vec4";
6
7
  import type { NumberArray4 } from "../../math/Vec4";
7
8
  import type { HTMLImageElementExt } from "../../utils/ImagesCacheManager";
8
9
  import { PolylineHandler } from "./PolylineHandler";
@@ -228,6 +229,20 @@ declare class Polyline {
228
229
  * @param {string} htmlColor - HTML color.
229
230
  */
230
231
  setColorHTML(htmlColor: string): void;
232
+ /**
233
+ * Gets polyline HTML color.
234
+ * @public
235
+ * @param {number} [index=0] - Segment index.
236
+ * @returns {string | undefined} HTML color, or undefined when no color is set.
237
+ */
238
+ getColorHTML(index?: number): string | undefined;
239
+ /**
240
+ * Gets polyline color as a normalized RGBA vector.
241
+ * @public
242
+ * @param {number} [index=0] - Segment index.
243
+ * @returns {Vec4 | undefined} Normalized RGBA color, or undefined when no color is set.
244
+ */
245
+ getColor4v(index?: number): Vec4 | undefined;
231
246
  /**
232
247
  * Clear polyline data.
233
248
  * @public
package/lib/index.d.ts CHANGED
@@ -42,6 +42,7 @@ import { Camera, PlanetCamera } from "./camera/index";
42
42
  import { Line2, Line3, Mat3, Mat4, Plane, Quat, Ray, Vec2, Vec3, Vec4 } from "./math/index";
43
43
  import { Renderer } from "./renderer/Renderer";
44
44
  import { Clock } from "./Clock";
45
+ import { TimelineModel } from "./control/timeline/TimelineModel";
45
46
  import { Events, type EventsHandler, createEvents } from "./Events";
46
47
  import { Extent } from "./Extent";
47
48
  import { LonLat } from "./LonLat";
@@ -57,4 +58,4 @@ import { MoveAxisEntity } from "./control/entityEditor/MoveAxisEntity";
57
58
  import { Gltf } from "./utils/gltf/gltfParser";
58
59
  import { Easing } from "./utils/easing";
59
60
  import type { EasingFunction } from "./utils/easing";
60
- export { bv, jd, math, mercator, utils, input, control, scene, quadTreeStrategyType, wgs84, moon, mars, terrain, layer, ui, webgl, Easing, EasingFunction, Framebuffer, EmptyTerrain, GlobusTerrain, RgbTerrain, GlobusRgbTerrain, MapterhornTerrain, rgbToHeightByEncoding, rgbToHeightRgb, rgbToHeightTerrarium, resolveRgbToHeightFunc, BilTerrain, Camera, Ellipsoid, Planet, PlanetCamera, ShaderProgram, Handler, Multisample, Renderer, Clock, Events, EventsHandler, createEvents, Extent, LonLat, Scene, Line2, Line3, Mat3, Mat4, Plane, Quat, Ray, Vec2, Vec3, Vec4, Geoid, Popup, QuadTreeStrategy, EquiQuadTreeStrategy, EarthQuadTreeStrategy, Wgs84QuadTreeStrategy, Object3d, Gltf, MoveAxisEntity, Loader, IResponse };
61
+ export { bv, jd, math, mercator, utils, input, control, scene, quadTreeStrategyType, wgs84, moon, mars, terrain, layer, ui, webgl, Easing, EasingFunction, Framebuffer, EmptyTerrain, GlobusTerrain, RgbTerrain, GlobusRgbTerrain, MapterhornTerrain, rgbToHeightByEncoding, rgbToHeightRgb, rgbToHeightTerrarium, resolveRgbToHeightFunc, BilTerrain, Camera, Ellipsoid, Planet, PlanetCamera, ShaderProgram, Handler, Multisample, Renderer, Clock, TimelineModel, Events, EventsHandler, createEvents, Extent, LonLat, Scene, Line2, Line3, Mat3, Mat4, Plane, Quat, Ray, Vec2, Vec3, Vec4, Geoid, Popup, QuadTreeStrategy, EquiQuadTreeStrategy, EarthQuadTreeStrategy, Wgs84QuadTreeStrategy, Object3d, Gltf, MoveAxisEntity, Loader, IResponse };
package/lib/og.css CHANGED
@@ -1,2 +1,2 @@
1
- :root{--grey0:#242424;--grey1:#434244;--grey2:#3f3f46;--grey3:#bbb;--grey4:#5e5e5e;--grey5:#323232;--grey6:#b6b6b6;--grey7:#707070;--grey8:#e2e2e2;--grey9:#9f9f9f;--blue0:#1700a9ee}.og-map-button{cursor:pointer;z-index:1;background-color:var(--grey5);outline:none;width:40px;height:40px;position:absolute}.og-control-container{z-index:2;box-sizing:border-box;pointer-events:none;flex-flow:wrap;align-content:flex-start;gap:8px;width:min(136px,100% - 24px);display:flex;position:absolute;top:12px}.og-control-container>*{pointer-events:auto}.og-control-container .og-map-button{flex:none;margin:0;position:relative;inset:auto!important}.og-fps-button .og-button-text{font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;font-family:monospace;font-size:15px}.og-fps-button:hover{background-color:var(--grey5)}.og-control-container__top-left{justify-content:flex-start;left:10px}.og-control-container__top-right{justify-content:flex-end;right:12px}.og-control-container__bottom-right{flex-direction:column;justify-content:flex-end;align-items:flex-end;width:auto;max-width:calc(100% - 24px);top:auto;bottom:12px;right:12px}.og-control-container .og-scale-container,.og-control-container .og-coordinates{margin:0;position:relative;inset:auto!important}.og-control-container__bottom-right .og-scale-container{order:0}.og-control-container__bottom-right .og-coordinates{order:1}.ogCenterIcon{width:12px;height:12px;margin-bottom:-3.5px;margin-right:-7.5px;position:absolute;bottom:50%;right:50%}.ogHandPoiner{cursor:pointer}.defaultText{color:#fff;position:absolute;top:0;left:0}.ogGrabbingPoiner{cursor:grabbing!important}.og-inner{float:left;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-khtml-user-select:none;width:100%;height:100%;position:relative;overflow:hidden}.og-attribution{text-align:right;background:#cecece;flex-direction:row;padding:1px 0;font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:.7rem;line-height:1.375em;display:flex;position:absolute;bottom:0;left:0}.og-attribution .og-attribution__layer{text-overflow:ellipsis;white-space:nowrap;color:#1f1f1f;align-items:center;margin-left:5px;margin-right:5px;display:inline;overflow:hidden}.og-attribution img{max-height:1.3em}input{accent-color:var(--blue0);cursor:pointer}.og-menu-bar-vertical{z-index:0;background-color:#403b3bd9;border-radius:2px;width:40px;height:40px;position:absolute;top:12px;right:12px;box-shadow:0 1px 4px #0f0f0f2b}.og-hide{display:none!important}.og-not-visible{visibility:hidden!important}.og-options-container{color:#b6b6b6;height:calc(100% - 30px);padding:12px;position:relative}.og-option{text-overflow:ellipsis;flex-direction:row;justify-content:left;align-items:center;width:100%;padding-bottom:7px;display:inline-block;position:relative}.og-option .og-slider{width:100%}.og-option .og-slider .og-slider-label,.og-option .og-color-label{width:100px;font-size:12px}.og-ddialog{background-color:var(--grey0);border:1px solid;border-color:var(--grey1);border-radius:4px;flex-direction:column;display:flex;position:absolute;overflow:auto;box-shadow:3px 3px 4px #0f0f0f2b}.og-ddialog .og-ddialog-header{z-index:1;background-color:var(--grey2);color:#fff;flex-direction:row;justify-content:space-between;align-items:center;width:100%;height:27px;padding:0;display:flex;position:relative}.og-ddialog .og-ddialog-header .og-ddialog-header__title{color:var(--grey3);pointer-events:none;padding-left:5px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:14px;font-weight:400}.og-ddialog .og-ddialog-header .og-ddialog-header__buttons{flex-direction:row;justify-content:flex-end;display:flex}.og-ddialog .og-ddialog-header .og-ddialog-header__buttons .og-button{border-radius:0}.og-ddialog .og-ddialog-container{width:100%;height:100%;font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:14px;position:relative;overflow:auto}.og-ddialog.dragging{-webkit-user-select:none;user-select:none}.og-ddialog .og-ddialog-resize-handle{cursor:nwse-resize;touch-action:none;z-index:2;width:20px;height:20px;display:block;position:absolute;bottom:0;right:0}.og-button{cursor:default;color:var(--grey6);border-radius:6px;flex-direction:row;place-content:center;align-items:center;padding:2px;display:flex}.og-button .og-button-icon{justify-content:center;align-items:center;line-height:0;display:flex}.og-button svg{width:24px;height:24px;display:block}.og-button svg path{fill:var(--grey6)}.og-button__active.og-button svg,.og-button__active.og-button svg path{fill:#fff}.og-button .og-button-text{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:14px;font-weight:400}.og-button:hover{background-color:var(--grey4)}.og-button-size__20{width:20px;height:20px}.og-button__active{background-color:var(--grey2)}.og-layerSwitcher{color:#b6b6b6;width:100%;height:100%;position:relative;overflow:hidden auto}.og-layerSwitcher__title{color:#b6b6b6;width:100%;padding:5px;font-size:14px;position:relative}.og-layerSwitcher__list{flex-wrap:wrap;align-items:flex-start;width:100%;padding:2px;display:flex;position:relative}.og-layerSwitcher__layerButton{cursor:pointer;background-color:#7a7a7a;border:2px solid #0000;border-radius:7px;flex-direction:column-reverse;width:70px;height:70px;margin:3px;padding:0;display:flex;position:relative}.og-layerSwitcher__layerButton.og-layerSwitcher__visible{border:2px solid #56ff64}.og-layerSwitcher__layerButton.og-layerSwitcher__visible img{opacity:1}.og-layerSwitcher__layerButton img{opacity:1;border-radius:7px;width:100%;height:100%;position:absolute;top:0;left:0}.og-layerSwitcher__layerButton img:hover{opacity:1}.og-layerSwitcher__name{color:var(--grey8);text-overflow:ellipsis;z-index:10;background-color:#00000080;border-bottom-right-radius:7px;border-bottom-left-radius:7px;padding:3px;font-size:12px;bottom:0;overflow:hidden}.og-entityTree{width:100%}.og-entityTree__node{box-sizing:border-box;width:100%}.og-entityTree__row{align-items:center;min-height:22px;display:flex}.og-entityTree__toggleBtn{width:20px;height:20px;color:var(--grey3);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:0;font-size:14px}.og-entityTree__toggleBtn_hasChildren:hover{background-color:var(--grey1)}.og-entityTree__toggleBtn_empty{visibility:hidden;pointer-events:none}.og-entityTree__entityBtn{min-width:0;color:var(--grey6);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:4px;flex:1;justify-content:space-between;align-items:center;gap:8px;padding:3px 6px 3px 4px;font-size:12px;display:flex}.og-entityTree__entityBtn:hover,.og-entityTree__entityBtn:focus-visible{background-color:var(--grey1)}.og-entityTree__name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.og-entityTree__type{color:var(--grey9);white-space:nowrap;font-size:11px}.og-entityTree__children_hidden{display:none}.og-entityTree__children{padding-left:17px}.og-entityTreeControl{width:100%;height:100%;color:var(--grey4);position:relative;overflow:hidden auto}.og-entityTreeControl__tree{box-sizing:border-box;width:100%;padding:4px}.og-entityTreeControl__empty{color:var(--grey3);padding:10px 8px;font-size:13px}.displayNone{display:none}.displayBlock{display:block}.og-drawing-default_button .og-button-icon{transform:scale(.73)}.ogConsole{color:#fff;z-index:100000000;background-color:#8282827d;width:100%;max-height:70%;font-family:Arial;font-size:14px;position:absolute;top:0;left:0;overflow:auto}.ogConsole-text{padding:7px;overflow:hidden}.ogConsole-error{color:red}.ogConsole-warning{color:#ff0}.ogViewExtentBtn{cursor:pointer;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYEAQAAAAa7ikwAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAABgAAAAYADwa0LPAAAAB3RJTUUH5ggMBTM4rM25AwAAAAJiS0dEAACqjSMyAAABsUlEQVRIx81WWYrCQBAVg4Iwbp8ud5DoYRRBxPMoouiPegQVPYp6Azdc/ly++01XKkmPksQ4ZmAKAr3V0u9VVScU8ikQkQhwuRifHIeCFiAWgy2xWHCGRSIBVKtAt6scdDrGmtz7IOJUyjAk7ne4Ce2JdhsimXzTeKkE7PfK0vEIjMdqTuPTSc23W6BY9G/cjvpwgKjVmOBHDnitXmfnJLcboOs+YNntWGGxADIZtRcOQ4xGEMMhjdV6Ngssl6yz2XjywuSZkf8w/vrW5MS8iWi13LPFgkbC8n5SEFwmVOLry+EApaJJ6C8KCSIaVcRXKk8FlE4D/T5vzmY81zT/0Wsa68znbKPX47ksSC5/JxkM/EdPxDvJ5RKMA3nWw8EfQxQsyecz2yiXvdNUptz7adposO716pim7EQ2Lrv3ZLP+o8/n7RQVzabHwWSSGxcJlb9y4t4qcjlgtWKd9RoiHn9x1WKRG5d1E1mhBr7PzY7WCBaruAiaQsEnnrpuNC5biLzJRL0D06ki1Ircp/FH0lstdRsnoaibzZeweDuKx6m3qE5rPZnlsmu2/KtH/9Pflm+sYR/yIsaCAQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMi0wOC0xMlQwNTo1MTo1NiswMDowMIPhE+YAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjItMDgtMTJUMDU6NTE6NTYrMDA6MDDyvKtaAAAAKHRFWHRkYXRlOnRpbWVzdGFtcAAyMDIyLTA4LTEyVDA1OjUxOjU2KzAwOjAwpamKhQAAAABJRU5ErkJggg==) 50% no-repeat;width:24px;height:24px;margin-left:12px;scale:.7}.ogViewExtentBtn:hover{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYEAQAAAAa7ikwAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAABgAAAAYADwa0LPAAAAB3RJTUUH5ggMBTM4rM25AwAAAAJiS0dEAACqjSMyAAABsUlEQVRIx81WWYrCQBAVg4Iwbp8ud5DoYRRBxPMoouiPegQVPYp6Azdc/ly++01XKkmPksQ4ZmAKAr3V0u9VVScU8ikQkQhwuRifHIeCFiAWgy2xWHCGRSIBVKtAt6scdDrGmtz7IOJUyjAk7ne4Ce2JdhsimXzTeKkE7PfK0vEIjMdqTuPTSc23W6BY9G/cjvpwgKjVmOBHDnitXmfnJLcboOs+YNntWGGxADIZtRcOQ4xGEMMhjdV6Ngssl6yz2XjywuSZkf8w/vrW5MS8iWi13LPFgkbC8n5SEFwmVOLry+EApaJJ6C8KCSIaVcRXKk8FlE4D/T5vzmY81zT/0Wsa68znbKPX47ksSC5/JxkM/EdPxDvJ5RKMA3nWw8EfQxQsyecz2yiXvdNUptz7adposO716pim7EQ2Lrv3ZLP+o8/n7RQVzabHwWSSGxcJlb9y4t4qcjlgtWKd9RoiHn9x1WKRG5d1E1mhBr7PzY7WCBaruAiaQsEnnrpuNC5biLzJRL0D06ki1Ircp/FH0lstdRsnoaibzZeweDuKx6m3qE5rPZnlsmu2/KtH/9Pflm+sYR/yIsaCAQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMi0wOC0xMlQwNTo1MTo1NiswMDowMIPhE+YAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjItMDgtMTJUMDU6NTE6NTYrMDA6MDDyvKtaAAAAKHRFWHRkYXRlOnRpbWVzdGFtcAAyMDIyLTA4LTEyVDA1OjUxOjU2KzAwOjAwpamKhQAAAABJRU5ErkJggg==) center center no-repeat, var(--blue0);border-radius:10px}.og-debuginfo_controls{padding-bottom:8px;display:flex}.og-debuginfo_controls-button{float:left;width:25px;height:25px;margin:3px}.og-debug-info{color:#fff;padding:10px;font-size:12px}.og-debug-info .og-watch-line{flex-direction:row;width:100%;padding-bottom:5px;display:flex}.og-watch-line .og-watch-label{color:#cecece;width:200px}.og-watch-line .og-watch-value{margin-left:15px}.og-popup{text-align:center;position:absolute;bottom:-2px}.og-popup-content-wrapper,.og-popup-tip{color:#333;background:#fff;box-shadow:0 3px 14px #0006}.og-popup-content-wrapper{color:#333;text-align:left;background:#fff;border-radius:8px;min-width:30px;min-height:17px;padding:1px;box-shadow:0 3px 14px #0006}.og-popup-content{margin:20px 5px 5px;line-height:1.4}.og-popup-tip-container{pointer-events:none;width:40px;height:20px;margin-left:-20px;position:absolute;bottom:-19px;left:50%;overflow:hidden}.og-popup-tip{width:17px;height:17px;margin:-10px auto 0;padding:1px;transform:rotate(45deg)}.og-popup-toolbar{display:inline-block;position:absolute;top:3px;right:2px}.og-popup-btn{cursor:pointer;float:right;width:15px;height:15px}.og-popup-btn:hover{color:#2e9be7}.og-popup-title{font-size:14px;position:absolute;top:3px;left:5px}.og-scale-container{position:absolute;bottom:30px;right:320px}.og-scale-label{color:#fff;text-align:center;font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:12px;position:relative}.og-scale-ruler{border-bottom:2px solid #fff;border-left:1px solid #fff;border-right:1px solid #fff;height:7px;position:relative}.og-compass-button .og-button-icon{transform-origin:50%;justify-content:center;align-items:center;display:flex}.og-compass-button .og-button-icon svg{display:block;width:48px!important;height:48px!important}.og-orthoswitcher_button .og-button-icon svg{display:block;transform:translateY(3px);width:45px!important;height:45px!important}.og-suncontrol-button{float:left;width:25px;height:25px;margin:3px}.og-lighing{color:#b6b6b6;height:calc(100% - 30px);padding:12px;position:relative}.og-lighing .og-layers{flex-direction:row;align-items:center;display:flex}.og-lighing .og-caption{position:relative}.og-emptyline,.og-lighing .og-lighting-emptyline{width:100%;padding:3px}.og-emptyline-2{width:100%;padding:5px}.og-lighing .og-slider{width:100%}.og-lighing .og-slider .og-slider-label,.og-lighing .og-color-label{width:100px;font-size:12px}.og-lighing .og-color{padding-right:10px}.og-lighing #layers,.og-lighing #toneMapping{width:200px;margin-left:21px;padding:2px;font-family:monospace}.og-free-navigation-info{background-color:var(--grey5);color:var(--grey8);pointer-events:none;border-radius:4px;padding:5px 10px;font-family:monospace;font-size:.85em;position:absolute;bottom:25px;left:10px}.og-coordinates{text-align:right;cursor:pointer;float:left;background-color:var(--grey5);color:var(--grey8);border-radius:4px;padding:5px;font-family:monospace;font-size:1em;position:absolute;bottom:25px;right:12px;overflow:hidden}.og-coordinates div{float:left}.og-coordinates .og-coordinates-copy-btn{float:left;color:var(--grey8);opacity:.8;cursor:pointer;background:0 0;border:0;margin-right:6px;padding:0}.og-coordinates .og-coordinates-copy-btn:hover{opacity:1}.og-coordinates .og-coordinates-copy-btn svg{display:block;transform:translateY(1px)}.og-coordinates .og-coordinates-copy-btn svg path{fill:currentColor}.og-lat-side,.og-lon-side{width:10px;padding-right:3px}.og-lat-val,.og-lon-val{text-align:left;width:90px;text-overflow:unset;padding-right:3px;overflow:hidden}.og-height{text-align:right;text-overflow:ellipsis;width:50px;padding-left:3px;overflow:hidden}.og-units-height{text-align:left;width:15px;padding-left:3px}.og-center-icon{pointer-events:none;width:12px;height:12px;margin-bottom:-3.5px;margin-right:-7.5px;position:absolute;bottom:50%;right:50%}.og-atmosphere.og-options-container .og-slider-label{width:300px;height:20px;overflow:hidden}.og-atmosphere.og-options-container .og-slider input{width:87px}.og-timeline-control_button{background:var(--grey7);border-radius:1px;width:25px;height:20px;margin-left:3px;margin-right:3px}.og-timeline-control_button.og-button__active{background:var(--grey3)}.og-timeline{background:#2d2d2d;width:100%;height:100%;position:relative;bottom:0;left:0;overflow:hidden}.og-timeline-frame{width:calc(100% - 20px);height:30px;margin:0 0 0 10px;position:relative}.og-timeline-scale{touch-action:none;width:100%;height:100%;overflow:hidden}.og-timeline-current{cursor:pointer;touch-action:none;width:11px;height:100%;margin-top:-7px;margin-left:-5px;position:absolute;left:0}.og-timeline-current-spin{pointer-events:none;background-color:#ff3434;width:1px;height:100%;margin:0 auto}.og-timeline-current-arrow{border-top:7px solid #ff3434;border-left:7px solid #0000;border-right:7px solid #0000;width:0;height:0;margin-left:-6px}.og-timeline-bottom{justify-content:center;width:100%;margin-top:3px;display:flex;position:relative}.og-timeline-controls{border-radius:10px;flex-direction:row;justify-content:center;align-items:center;padding:8px;display:flex;position:relative}.og-timeline-unselectable{-webkit-user-select:none;user-select:none;-khtml-user-select:none}.og-timeline-top{width:100%;height:15px;display:block}.og-slider{flex-direction:row;gap:5px;margin:5px;display:flex}.og-slider .og-slider-label{width:100%;height:100%;color:var(--grey6);text-align:left;align-items:center;margin-right:5px;font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:14px;display:flex}.og-slider .og-slider-panel{background-color:var(--grey1);z-index:1;border-radius:2px;width:100%;height:20px;position:relative}.og-slider .og-slider-panel .og-slider-progress{background-color:var(--grey7);pointer-events:none;border-top-left-radius:2px;border-bottom-left-radius:2px;height:100%;position:absolute}.og-slider .og-slider-panel .og-slider-pointer{background-color:var(--grey3);pointer-events:none;width:3px;height:100%;position:absolute;top:0;left:0}.og-slider input{background:var(--grey5);border:1px solid var(--grey1);z-index:0;width:100%;height:100%;color:var(--grey3);border-radius:2px;width:60px;padding-left:5px;position:relative}.og-slider input:focus-visible{outline:none}.og-slider input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.og-slider input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.og-slider input[type=number]{-moz-appearance:textfield}.og-checkbox,.og-input,.og-color{flex-direction:row;margin:5px;display:flex}.og-checkbox .og-input-label,.og-input .og-input-label,.og-color .og-color-label{width:100%;height:100%;color:var(--grey6);text-align:left;align-items:center;margin-right:5px;font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:14px}.og-checkbox input,.og-input input,.og-color input{background:var(--grey5);border:1px solid var(--grey1);z-index:0;width:100%;height:100%;color:var(--grey3);border-radius:5px;padding-left:5px;position:relative}.og-checkbox input:focus-visible,.og-input input:focus-visible,.og-color input:focus-visible{outline:none}.og-color input[type=color]{cursor:pointer;flex:0 0 20px;width:20px;min-width:20px;height:20px;min-height:20px;padding:0}.og-color .og-color-label,.og-color .og-color-controls{width:50%}.og-color .og-color-controls{align-items:center;gap:4px;display:flex}.og-color .og-color-value{min-width:0}.og-color input[type=color]::-webkit-color-swatch-wrapper{padding:2px}.og-color input[type=color]::-webkit-color-swatch{border:none;border-radius:2px}.og-color input[type=color]::-moz-color-swatch{border:none;border-radius:2px}.og-checkbox input[type=checkbox]{appearance:none;border:1px solid var(--grey1);background:var(--grey8);cursor:pointer;border-radius:3px;place-content:center;width:14px;height:14px;padding:0;display:flex;position:relative}.og-checkbox input[type=checkbox]:before{content:"";opacity:0;border:2px solid #000;border-width:0 2px 2px 0;width:3px;height:6px;transition:opacity .2s ease-in-out;position:absolute;top:2px;left:3.5px;transform:rotate(45deg)}.og-checkbox input[type=checkbox]:checked:before{opacity:1}.og-checkbox input[type=checkbox]:hover{border-color:var(--grey2)}.og-checkbox .og-input-label{margin-right:0}.og-checkbox-input{width:100%}.og-input-disabled{pointer-events:none;opacity:.7}.og-input-disabled input[type=checkbox]{background:var(--grey9)}.og-input input[type=number]{-moz-appearance:textfield}.og-elevationprofile{width:100%;height:100%;position:absolute;overflow:hidden}.og-elevationprofile__container{flex-direction:column;align-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.og-elevationprofile__menu{width:100%;height:43px;position:relative}.og-elevationprofile__graph{width:100%;height:100%;position:relative}.og-elevationprofile-legend{color:var(--grey8);z-index:1;margin:5px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:12px;display:flex;position:absolute;top:0;right:0}.og-elevationprofile-legend__row{width:70px;padding:5px;position:relative}.og-elevationprofile-square{float:left;width:6px;height:6px;margin:5px;position:relative}.og-elevationprofile-legend__track .og-elevationprofile-square{background-color:#00ff32}.og-elevationprofile-legend__ground .og-elevationprofile-square{background-color:#c6c6c6}.og-elevationprofile-legend__warning .og-elevationprofile-square{background-color:#ff0}.og-elevationprofile-legend__collision .og-elevationprofile-square{background-color:red}.og-elevationprofile-units{float:left;padding-left:5px;display:inline-block;position:relative}.og-elevationprofile-value{float:left;text-align:right;white-space:nowrap;text-overflow:ellipsis;width:30px;display:inline-block;position:relative;overflow:hidden}.og-elevationprofile-buttons{display:inline-block;position:absolute;top:0;left:0}.og-elevationprofile-button{float:left;width:25px;height:25px;margin:3px}.og-elevationprofile-list{flex-direction:column;width:100%;height:100%;display:flex;position:relative}.og-elevationprofile-list textarea{resize:none;background:var(--grey8);width:100%;height:100%;padding:5px;position:relative}.og-elevationprofile-list-buttons{flex-direction:row;justify-content:right;align-items:center;height:60px;display:flex;position:relative}.og-elevationprofile-list-apply{float:right;background-color:var(--grey2);margin-right:15px;padding:4px 10px 7px}.og-elevationprofile_pointer{height:100%;position:absolute;top:0;left:0}.og-elevationprofile-line{background-color:#fff;width:3px;height:30px;margin-left:-1.5px;position:absolute}.og-elevationprofile-label{color:#fff;position:absolute;top:0;left:0}.og-elevationprofile-button__location svg{width:17px;height:17px}.og-elevationprofile-loading{opacity:.3;z-index:2;background-color:#000;flex-direction:row;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute}.og-simpleskybackground{display:flex}.og-color-label{color:var(--grey6);font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:14px}@keyframes ldio-p0v5a1f6oz{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.ldio-p0v5a1f6oz div{width:11px;height:40px;animation:.934579s cubic-bezier(.5,0,.5,1) infinite ldio-p0v5a1f6oz;position:absolute;top:30px}.ldio-p0v5a1f6oz div:first-child{background:#353535;animation-delay:-.560748s;transform:translate(14.5px)}.ldio-p0v5a1f6oz div:nth-child(2){background:#666;animation-delay:-.373832s;transform:translate(34.5px)}.ldio-p0v5a1f6oz div:nth-child(3){background:#9b9b9b;animation-delay:-.186916s;transform:translate(54.5px)}.ldio-p0v5a1f6oz div:nth-child(4){background:#d4d4d4;animation-delay:-.934579s;transform:translate(74.5px)}.loadingio-spinner-bars-r354qqyl5v{background:0 0;width:88px;height:88px;display:inline-block;overflow:hidden}.ldio-p0v5a1f6oz{backface-visibility:hidden;transform-origin:0 0;width:100%;height:100%;position:relative;transform:translateZ(0)scale(.88)}.ldio-p0v5a1f6oz div{box-sizing:content-box}.og-editor-ground_button{background:var(--grey1);width:fit-content;margin-top:15px;margin-left:5px;padding:4px 6px 8px}.og-editor_toolbar{display:flex}.og-editor_toolbar-button{float:left;width:25px;height:25px;margin:3px}.og-titlebar{background:var(--grey2);box-sizing:border-box;border-bottom:1px solid var(--grey5);justify-content:space-between;align-items:center;width:100%;min-height:20px;padding:0 0 0 8px;display:flex}.og-titlebar__title{color:var(--grey3);margin:0;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:14px;font-weight:400}.og-titlebar__toggle{cursor:pointer;background:0 0;border:none;border-radius:0;justify-content:center;align-items:center;width:20px;height:20px;padding:0;display:flex}.og-titlebar__toggle:hover{background-color:var(--grey4)}.og-titlebar__toggle svg{width:18px;height:18px}.og-titlebar__toggle svg path{fill:var(--grey6)}.og-editor-panel__body_collapsed{display:none}.og-select{flex-direction:row;margin:5px;display:flex}.og-select .og-input-label{width:100%;height:100%;color:var(--grey6);text-align:left;margin-right:5px;font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:14px}.og-select select{background:var(--grey5);border:1px solid var(--grey1);width:100%;height:100%;color:var(--grey6);border-radius:5px;padding-left:5px;position:relative}.og-select select:focus-visible{outline:none}.og-object3d-manager .og-ddialog-container{flex-direction:column;display:flex}.og-object3d-collection{width:100%;height:100%}.og-object3d-collection__item{cursor:pointer;background-color:#7a7a7a;border:2px solid #0000;border-radius:5px;width:75px;height:75px;margin:3px;position:relative}.og-object3d-collection__item.active{border:2px solid #00e0be}.og-object3d-collection__item_name{color:#fff;background:#3d3d3da3;border-bottom-right-radius:5px;border-bottom-left-radius:5px;width:100%;height:20px;padding-top:3px;position:absolute;bottom:0;left:0}
1
+ :root{--grey0:#242424;--grey1:#434244;--grey2:#3f3f46;--grey3:#bbb;--grey4:#5e5e5e;--grey5:#323232;--grey6:#b6b6b6;--grey7:#707070;--grey8:#e2e2e2;--grey9:#9f9f9f;--blue0:#1700a9ee}.og-map-button{cursor:pointer;z-index:1;background-color:var(--grey5);outline:none;width:40px;height:40px;position:absolute}.og-control-container{z-index:2;box-sizing:border-box;pointer-events:none;flex-flow:wrap;align-content:flex-start;gap:8px;width:min(136px,100% - 24px);display:flex;position:absolute;top:12px}.og-control-container>*{pointer-events:auto}.og-control-container .og-map-button{flex:none;margin:0;position:relative;inset:auto!important}.og-fps-button .og-button-text{font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;font-family:monospace;font-size:15px}.og-fps-button:hover{background-color:var(--grey5)}.og-control-container__top-left{justify-content:flex-start;left:10px}.og-control-container__top-right{justify-content:flex-end;right:12px}.og-control-container__bottom-right{flex-direction:column;justify-content:flex-end;align-items:flex-end;width:auto;max-width:calc(100% - 24px);top:auto;bottom:12px;right:12px}.og-control-container .og-scale-container,.og-control-container .og-coordinates{margin:0;position:relative;inset:auto!important}.og-control-container__bottom-right .og-scale-container{order:0}.og-control-container__bottom-right .og-coordinates{order:1}.ogCenterIcon{width:12px;height:12px;margin-bottom:-3.5px;margin-right:-7.5px;position:absolute;bottom:50%;right:50%}.ogHandPoiner{cursor:pointer}.defaultText{color:#fff;position:absolute;top:0;left:0}.ogGrabbingPoiner{cursor:grabbing!important}.og-inner{float:left;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-khtml-user-select:none;width:100%;height:100%;position:relative;overflow:hidden}.og-attribution{text-align:right;background:#cecece;flex-direction:row;padding:1px 0;font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:.7rem;line-height:1.375em;display:flex;position:absolute;bottom:0;left:0}.og-attribution .og-attribution__layer{text-overflow:ellipsis;white-space:nowrap;color:#1f1f1f;align-items:center;margin-left:5px;margin-right:5px;display:inline;overflow:hidden}.og-attribution img{max-height:1.3em}input{accent-color:var(--blue0);cursor:pointer}.og-menu-bar-vertical{z-index:0;background-color:#403b3bd9;border-radius:2px;width:40px;height:40px;position:absolute;top:12px;right:12px;box-shadow:0 1px 4px #0f0f0f2b}.og-hide{display:none!important}.og-not-visible{visibility:hidden!important}.og-options-container{color:#b6b6b6;height:calc(100% - 30px);padding:12px;position:relative}.og-option{text-overflow:ellipsis;flex-direction:row;justify-content:left;align-items:center;width:100%;padding-bottom:7px;display:inline-block;position:relative}.og-option .og-slider{width:100%}.og-option .og-slider .og-slider-label,.og-option .og-color-label{width:100px;font-size:12px}.og-ddialog{background-color:var(--grey0);border:1px solid;border-color:var(--grey1);border-radius:4px;flex-direction:column;display:flex;position:absolute;overflow:auto;box-shadow:3px 3px 4px #0f0f0f2b}.og-ddialog .og-ddialog-header{z-index:1;background-color:var(--grey2);color:#fff;flex-direction:row;justify-content:space-between;align-items:center;width:100%;height:27px;padding:0;display:flex;position:relative}.og-ddialog .og-ddialog-header .og-ddialog-header__title{color:var(--grey3);pointer-events:none;padding-left:5px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:14px;font-weight:400}.og-ddialog .og-ddialog-header .og-ddialog-header__buttons{flex-direction:row;justify-content:flex-end;display:flex}.og-ddialog .og-ddialog-header .og-ddialog-header__buttons .og-button{border-radius:0}.og-ddialog .og-ddialog-container{width:100%;height:100%;font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:14px;position:relative;overflow:auto}.og-ddialog.dragging{-webkit-user-select:none;user-select:none}.og-ddialog .og-ddialog-resize-handle{cursor:nwse-resize;touch-action:none;z-index:2;width:20px;height:20px;display:block;position:absolute;bottom:0;right:0}.og-button{cursor:default;color:var(--grey6);border-radius:6px;flex-direction:row;place-content:center;align-items:center;padding:2px;display:flex}.og-button .og-button-icon{justify-content:center;align-items:center;line-height:0;display:flex}.og-button svg{width:24px;height:24px;display:block}.og-button svg path{fill:var(--grey6)}.og-button__active.og-button svg,.og-button__active.og-button svg path{fill:#fff}.og-button .og-button-text{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:14px;font-weight:400}.og-button:hover{background-color:var(--grey4)}.og-button-size__20{width:20px;height:20px}.og-button__active{background-color:var(--grey2)}.og-layerSwitcher{color:#b6b6b6;width:100%;height:100%;position:relative;overflow:hidden auto}.og-layerSwitcher__title{color:#b6b6b6;width:100%;padding:5px;font-size:14px;position:relative}.og-layerSwitcher__list{flex-wrap:wrap;align-items:flex-start;width:100%;padding:2px;display:flex;position:relative}.og-layerSwitcher__layerButton{cursor:pointer;background-color:#7a7a7a;border:2px solid #0000;border-radius:7px;flex-direction:column-reverse;width:70px;height:70px;margin:3px;padding:0;display:flex;position:relative}.og-layerSwitcher__layerButton.og-layerSwitcher__visible{border:2px solid #56ff64}.og-layerSwitcher__layerButton.og-layerSwitcher__visible img{opacity:1}.og-layerSwitcher__layerButton img{opacity:1;border-radius:7px;width:100%;height:100%;position:absolute;top:0;left:0}.og-layerSwitcher__layerButton img:hover{opacity:1}.og-layerSwitcher__name{color:var(--grey8);text-overflow:ellipsis;z-index:10;background-color:#00000080;border-bottom-right-radius:7px;border-bottom-left-radius:7px;padding:3px;font-size:12px;bottom:0;overflow:hidden}.og-entityTree{width:100%}.og-entityTree__node{box-sizing:border-box;width:100%}.og-entityTree__row{align-items:center;min-height:22px;display:flex}.og-entityTree__toggleBtn{width:20px;height:20px;color:var(--grey3);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:0;font-size:14px}.og-entityTree__toggleBtn_hasChildren:hover{background-color:var(--grey1)}.og-entityTree__toggleBtn_empty{visibility:hidden;pointer-events:none}.og-entityTree__entityBtn{min-width:0;color:var(--grey6);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:4px;flex:1;justify-content:space-between;align-items:center;gap:8px;padding:3px 6px 3px 4px;font-size:12px;display:flex}.og-entityTree__entityBtn:hover,.og-entityTree__entityBtn:focus-visible{background-color:var(--grey1)}.og-entityTree__name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.og-entityTree__type{color:var(--grey9);white-space:nowrap;font-size:11px}.og-entityTree__children_hidden{display:none}.og-entityTree__children{padding-left:17px}.og-entityTreeControl{width:100%;height:100%;color:var(--grey4);position:relative;overflow:hidden auto}.og-entityTreeControl__tree{box-sizing:border-box;width:100%;padding:4px}.og-entityTreeControl__empty{color:var(--grey3);padding:10px 8px;font-size:13px}.displayNone{display:none}.displayBlock{display:block}.og-drawing-default_button .og-button-icon{transform:scale(.73)}.ogConsole{color:#fff;z-index:100000000;background-color:#8282827d;width:100%;max-height:70%;font-family:Arial;font-size:14px;position:absolute;top:0;left:0;overflow:auto}.ogConsole-text{padding:7px;overflow:hidden}.ogConsole-error{color:red}.ogConsole-warning{color:#ff0}.ogViewExtentBtn{cursor:pointer;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYEAQAAAAa7ikwAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAABgAAAAYADwa0LPAAAAB3RJTUUH5ggMBTM4rM25AwAAAAJiS0dEAACqjSMyAAABsUlEQVRIx81WWYrCQBAVg4Iwbp8ud5DoYRRBxPMoouiPegQVPYp6Azdc/ly++01XKkmPksQ4ZmAKAr3V0u9VVScU8ikQkQhwuRifHIeCFiAWgy2xWHCGRSIBVKtAt6scdDrGmtz7IOJUyjAk7ne4Ce2JdhsimXzTeKkE7PfK0vEIjMdqTuPTSc23W6BY9G/cjvpwgKjVmOBHDnitXmfnJLcboOs+YNntWGGxADIZtRcOQ4xGEMMhjdV6Ngssl6yz2XjywuSZkf8w/vrW5MS8iWi13LPFgkbC8n5SEFwmVOLry+EApaJJ6C8KCSIaVcRXKk8FlE4D/T5vzmY81zT/0Wsa68znbKPX47ksSC5/JxkM/EdPxDvJ5RKMA3nWw8EfQxQsyecz2yiXvdNUptz7adposO716pim7EQ2Lrv3ZLP+o8/n7RQVzabHwWSSGxcJlb9y4t4qcjlgtWKd9RoiHn9x1WKRG5d1E1mhBr7PzY7WCBaruAiaQsEnnrpuNC5biLzJRL0D06ki1Ircp/FH0lstdRsnoaibzZeweDuKx6m3qE5rPZnlsmu2/KtH/9Pflm+sYR/yIsaCAQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMi0wOC0xMlQwNTo1MTo1NiswMDowMIPhE+YAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjItMDgtMTJUMDU6NTE6NTYrMDA6MDDyvKtaAAAAKHRFWHRkYXRlOnRpbWVzdGFtcAAyMDIyLTA4LTEyVDA1OjUxOjU2KzAwOjAwpamKhQAAAABJRU5ErkJggg==) 50% no-repeat;width:24px;height:24px;margin-left:12px;scale:.7}.ogViewExtentBtn:hover{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYEAQAAAAa7ikwAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAABgAAAAYADwa0LPAAAAB3RJTUUH5ggMBTM4rM25AwAAAAJiS0dEAACqjSMyAAABsUlEQVRIx81WWYrCQBAVg4Iwbp8ud5DoYRRBxPMoouiPegQVPYp6Azdc/ly++01XKkmPksQ4ZmAKAr3V0u9VVScU8ikQkQhwuRifHIeCFiAWgy2xWHCGRSIBVKtAt6scdDrGmtz7IOJUyjAk7ne4Ce2JdhsimXzTeKkE7PfK0vEIjMdqTuPTSc23W6BY9G/cjvpwgKjVmOBHDnitXmfnJLcboOs+YNntWGGxADIZtRcOQ4xGEMMhjdV6Ngssl6yz2XjywuSZkf8w/vrW5MS8iWi13LPFgkbC8n5SEFwmVOLry+EApaJJ6C8KCSIaVcRXKk8FlE4D/T5vzmY81zT/0Wsa68znbKPX47ksSC5/JxkM/EdPxDvJ5RKMA3nWw8EfQxQsyecz2yiXvdNUptz7adposO716pim7EQ2Lrv3ZLP+o8/n7RQVzabHwWSSGxcJlb9y4t4qcjlgtWKd9RoiHn9x1WKRG5d1E1mhBr7PzY7WCBaruAiaQsEnnrpuNC5biLzJRL0D06ki1Ircp/FH0lstdRsnoaibzZeweDuKx6m3qE5rPZnlsmu2/KtH/9Pflm+sYR/yIsaCAQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMi0wOC0xMlQwNTo1MTo1NiswMDowMIPhE+YAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjItMDgtMTJUMDU6NTE6NTYrMDA6MDDyvKtaAAAAKHRFWHRkYXRlOnRpbWVzdGFtcAAyMDIyLTA4LTEyVDA1OjUxOjU2KzAwOjAwpamKhQAAAABJRU5ErkJggg==) center center no-repeat, var(--blue0);border-radius:10px}.og-debuginfo_controls{padding-bottom:8px;display:flex}.og-debuginfo_controls-button{float:left;width:25px;height:25px;margin:3px}.og-debug-info{color:#fff;padding:10px;font-size:12px}.og-debug-info .og-watch-line{flex-direction:row;width:100%;padding-bottom:5px;display:flex}.og-watch-line .og-watch-label{color:#cecece;width:200px}.og-watch-line .og-watch-value{margin-left:15px}.og-popup{text-align:center;position:absolute;bottom:-2px}.og-popup-content-wrapper,.og-popup-tip{color:#333;background:#fff;box-shadow:0 3px 14px #0006}.og-popup-content-wrapper{color:#333;text-align:left;background:#fff;border-radius:8px;min-width:30px;min-height:17px;padding:1px;box-shadow:0 3px 14px #0006}.og-popup-content{margin:20px 5px 5px;line-height:1.4}.og-popup-tip-container{pointer-events:none;width:40px;height:20px;margin-left:-20px;position:absolute;bottom:-19px;left:50%;overflow:hidden}.og-popup-tip{width:17px;height:17px;margin:-10px auto 0;padding:1px;transform:rotate(45deg)}.og-popup-toolbar{display:inline-block;position:absolute;top:3px;right:2px}.og-popup-btn{cursor:pointer;float:right;width:15px;height:15px}.og-popup-btn:hover{color:#2e9be7}.og-popup-title{font-size:14px;position:absolute;top:3px;left:5px}.og-scale-container{position:absolute;bottom:30px;right:320px}.og-scale-label{color:#fff;text-align:center;font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:12px;position:relative}.og-scale-ruler{border-bottom:2px solid #fff;border-left:1px solid #fff;border-right:1px solid #fff;height:7px;position:relative}.og-compass-button .og-button-icon{transform-origin:50%;justify-content:center;align-items:center;display:flex}.og-compass-button .og-button-icon svg{display:block;width:48px!important;height:48px!important}.og-orthoswitcher_button .og-button-icon svg{display:block;transform:translateY(3px);width:45px!important;height:45px!important}.og-suncontrol-button{float:left;width:25px;height:25px;margin:3px}.og-lighing{color:#b6b6b6;height:calc(100% - 30px);padding:12px;position:relative}.og-lighing .og-layers{flex-direction:row;align-items:center;display:flex}.og-lighing .og-caption{position:relative}.og-emptyline,.og-lighing .og-lighting-emptyline{width:100%;padding:3px}.og-emptyline-2{width:100%;padding:5px}.og-lighing .og-slider{width:100%}.og-lighing .og-slider .og-slider-label,.og-lighing .og-color-label{width:100px;font-size:12px}.og-lighing .og-color{padding-right:10px}.og-lighing #layers,.og-lighing #toneMapping{width:200px;margin-left:21px;padding:2px;font-family:monospace}.og-free-navigation-info{background-color:var(--grey5);color:var(--grey8);pointer-events:none;border-radius:4px;padding:5px 10px;font-family:monospace;font-size:.85em;position:absolute;bottom:25px;left:10px}.og-coordinates{text-align:right;cursor:pointer;float:left;background-color:var(--grey5);color:var(--grey8);border-radius:4px;padding:5px;font-family:monospace;font-size:1em;position:absolute;bottom:25px;right:12px;overflow:hidden}.og-coordinates div{float:left}.og-coordinates .og-coordinates-copy-btn{float:left;color:var(--grey8);opacity:.8;cursor:pointer;background:0 0;border:0;margin-right:6px;padding:0}.og-coordinates .og-coordinates-copy-btn:hover{opacity:1}.og-coordinates .og-coordinates-copy-btn svg{display:block;transform:translateY(1px)}.og-coordinates .og-coordinates-copy-btn svg path{fill:currentColor}.og-lat-side,.og-lon-side{width:10px;padding-right:3px}.og-lat-val,.og-lon-val{text-align:left;width:90px;text-overflow:unset;padding-right:3px;overflow:hidden}.og-height{text-align:right;text-overflow:ellipsis;width:50px;padding-left:3px;overflow:hidden}.og-units-height{text-align:left;width:15px;padding-left:3px}.og-center-icon{pointer-events:none;width:12px;height:12px;margin-bottom:-3.5px;margin-right:-7.5px;position:absolute;bottom:50%;right:50%}.og-atmosphere.og-options-container .og-slider-label{width:300px;height:20px;overflow:hidden}.og-atmosphere.og-options-container .og-slider input{width:87px}.og-timeline-control_button{background:var(--grey7);border-radius:1px;width:25px;height:20px;margin-left:3px;margin-right:3px}.og-timeline-control_button.og-button__active{background:var(--grey3)}.og-timeline{background:#2d2d2d;width:100%;height:100%;position:relative;bottom:0;left:0;overflow:hidden}.og-timeline-frame{width:calc(100% - 20px);height:30px;margin:0 0 0 10px;position:relative}.og-timeline-scale{touch-action:none;width:100%;height:100%;overflow:hidden}.og-timeline-current{cursor:pointer;touch-action:none;width:11px;height:100%;margin-top:-7px;margin-left:-5px;position:absolute;left:0}.og-timeline-current-spin{pointer-events:none;background-color:#ff3434;width:1px;height:100%;margin:0 auto}.og-timeline-current-arrow{border-top:7px solid #ff3434;border-left:7px solid #0000;border-right:7px solid #0000;width:0;height:0;margin-left:-6px}.og-timeline-bottom{justify-content:center;width:100%;margin-top:3px;display:flex;position:relative}.og-timeline-controls{border-radius:10px;flex-direction:row;justify-content:center;align-items:center;padding:8px;display:flex;position:relative}.og-timeline-localtime{align-items:center;display:flex;position:absolute;top:0;bottom:0;right:10px}.og-timeline-localtime .og-checkbox{align-items:center;margin:0}.og-timeline-localtime .og-input-label{white-space:nowrap;width:auto;margin-right:5px}.og-timeline-localtime .og-checkbox-input{align-items:center;width:auto;display:flex}.og-timeline-unselectable{-webkit-user-select:none;user-select:none;-khtml-user-select:none}.og-timeline-top{width:100%;height:15px;display:block}.og-slider{flex-direction:row;gap:5px;margin:5px;display:flex}.og-slider .og-slider-label{width:100%;height:100%;color:var(--grey6);text-align:left;align-items:center;margin-right:5px;font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:14px;display:flex}.og-slider .og-slider-panel{background-color:var(--grey1);z-index:1;border-radius:2px;width:100%;height:20px;position:relative}.og-slider .og-slider-panel .og-slider-progress{background-color:var(--grey7);pointer-events:none;border-top-left-radius:2px;border-bottom-left-radius:2px;height:100%;position:absolute}.og-slider .og-slider-panel .og-slider-pointer{background-color:var(--grey3);pointer-events:none;width:3px;height:100%;position:absolute;top:0;left:0}.og-slider input{background:var(--grey5);border:1px solid var(--grey1);z-index:0;width:100%;height:100%;color:var(--grey3);border-radius:2px;width:60px;padding-left:5px;position:relative}.og-slider input:focus-visible{outline:none}.og-slider input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.og-slider input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.og-slider input[type=number]{-moz-appearance:textfield}.og-checkbox,.og-input,.og-color{flex-direction:row;margin:5px;display:flex}.og-checkbox .og-input-label,.og-input .og-input-label,.og-color .og-color-label{width:100%;height:100%;color:var(--grey6);text-align:left;align-items:center;margin-right:5px;font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:14px}.og-checkbox input,.og-input input,.og-color input{background:var(--grey5);border:1px solid var(--grey1);z-index:0;width:100%;height:100%;color:var(--grey3);border-radius:5px;padding-left:5px;position:relative}.og-checkbox input:focus-visible,.og-input input:focus-visible,.og-color input:focus-visible{outline:none}.og-color input[type=color]{cursor:pointer;flex:0 0 20px;width:20px;min-width:20px;height:20px;min-height:20px;padding:0}.og-color .og-color-label,.og-color .og-color-controls{width:50%}.og-color .og-color-controls{align-items:center;gap:4px;display:flex}.og-color .og-color-value{min-width:0}.og-color input[type=color]::-webkit-color-swatch-wrapper{padding:2px}.og-color input[type=color]::-webkit-color-swatch{border:none;border-radius:2px}.og-color input[type=color]::-moz-color-swatch{border:none;border-radius:2px}.og-checkbox input[type=checkbox]{appearance:none;border:1px solid var(--grey1);background:var(--grey8);cursor:pointer;border-radius:3px;place-content:center;width:14px;height:14px;padding:0;display:flex;position:relative}.og-checkbox input[type=checkbox]:before{content:"";opacity:0;border:2px solid #000;border-width:0 2px 2px 0;width:3px;height:6px;transition:opacity .2s ease-in-out;position:absolute;top:2px;left:3.5px;transform:rotate(45deg)}.og-checkbox input[type=checkbox]:checked:before{opacity:1}.og-checkbox input[type=checkbox]:hover{border-color:var(--grey2)}.og-checkbox .og-input-label{margin-right:0}.og-checkbox-input{width:100%}.og-input-disabled{pointer-events:none;opacity:.7}.og-input-disabled input[type=checkbox]{background:var(--grey9)}.og-input input[type=number]{-moz-appearance:textfield}.og-elevationprofile{width:100%;height:100%;position:absolute;overflow:hidden}.og-elevationprofile__container{flex-direction:column;align-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.og-elevationprofile__menu{width:100%;height:43px;position:relative}.og-elevationprofile__graph{width:100%;height:100%;position:relative}.og-elevationprofile-legend{color:var(--grey8);z-index:1;margin:5px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:12px;display:flex;position:absolute;top:0;right:0}.og-elevationprofile-legend__row{width:70px;padding:5px;position:relative}.og-elevationprofile-square{float:left;width:6px;height:6px;margin:5px;position:relative}.og-elevationprofile-legend__track .og-elevationprofile-square{background-color:#00ff32}.og-elevationprofile-legend__ground .og-elevationprofile-square{background-color:#c6c6c6}.og-elevationprofile-legend__warning .og-elevationprofile-square{background-color:#ff0}.og-elevationprofile-legend__collision .og-elevationprofile-square{background-color:red}.og-elevationprofile-units{float:left;padding-left:5px;display:inline-block;position:relative}.og-elevationprofile-value{float:left;text-align:right;white-space:nowrap;text-overflow:ellipsis;width:30px;display:inline-block;position:relative;overflow:hidden}.og-elevationprofile-buttons{display:inline-block;position:absolute;top:0;left:0}.og-elevationprofile-button{float:left;width:25px;height:25px;margin:3px}.og-elevationprofile-list{flex-direction:column;width:100%;height:100%;display:flex;position:relative}.og-elevationprofile-list textarea{resize:none;background:var(--grey8);width:100%;height:100%;padding:5px;position:relative}.og-elevationprofile-list-buttons{flex-direction:row;justify-content:right;align-items:center;height:60px;display:flex;position:relative}.og-elevationprofile-list-apply{float:right;background-color:var(--grey2);margin-right:15px;padding:4px 10px 7px}.og-elevationprofile_pointer{height:100%;position:absolute;top:0;left:0}.og-elevationprofile-line{background-color:#fff;width:3px;height:30px;margin-left:-1.5px;position:absolute}.og-elevationprofile-label{color:#fff;position:absolute;top:0;left:0}.og-elevationprofile-button__location svg{width:17px;height:17px}.og-elevationprofile-loading{opacity:.3;z-index:2;background-color:#000;flex-direction:row;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute}.og-simpleskybackground{display:flex}.og-color-label{color:var(--grey6);font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:14px}@keyframes ldio-p0v5a1f6oz{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.ldio-p0v5a1f6oz div{width:11px;height:40px;animation:.934579s cubic-bezier(.5,0,.5,1) infinite ldio-p0v5a1f6oz;position:absolute;top:30px}.ldio-p0v5a1f6oz div:first-child{background:#353535;animation-delay:-.560748s;transform:translate(14.5px)}.ldio-p0v5a1f6oz div:nth-child(2){background:#666;animation-delay:-.373832s;transform:translate(34.5px)}.ldio-p0v5a1f6oz div:nth-child(3){background:#9b9b9b;animation-delay:-.186916s;transform:translate(54.5px)}.ldio-p0v5a1f6oz div:nth-child(4){background:#d4d4d4;animation-delay:-.934579s;transform:translate(74.5px)}.loadingio-spinner-bars-r354qqyl5v{background:0 0;width:88px;height:88px;display:inline-block;overflow:hidden}.ldio-p0v5a1f6oz{backface-visibility:hidden;transform-origin:0 0;width:100%;height:100%;position:relative;transform:translateZ(0)scale(.88)}.ldio-p0v5a1f6oz div{box-sizing:content-box}.og-editor-ground_button{background:var(--grey1);width:fit-content;margin-top:15px;margin-left:5px;padding:4px 6px 8px}.og-editor_toolbar{display:flex}.og-editor_toolbar-button{float:left;width:25px;height:25px;margin:3px}.og-titlebar{background:var(--grey2);box-sizing:border-box;border-bottom:1px solid var(--grey5);justify-content:space-between;align-items:center;width:100%;min-height:20px;padding:0 0 0 8px;display:flex}.og-titlebar__title{color:var(--grey3);margin:0;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:14px;font-weight:400}.og-titlebar__toggle{cursor:pointer;background:0 0;border:none;border-radius:0;justify-content:center;align-items:center;width:20px;height:20px;padding:0;display:flex}.og-titlebar__toggle:hover{background-color:var(--grey4)}.og-titlebar__toggle svg{width:18px;height:18px}.og-titlebar__toggle svg path{fill:var(--grey6)}.og-editor-panel__body_collapsed{display:none}.og-select{flex-direction:row;margin:5px;display:flex}.og-select .og-input-label{width:100%;height:100%;color:var(--grey6);text-align:left;margin-right:5px;font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:14px}.og-select select{background:var(--grey5);border:1px solid var(--grey1);width:100%;height:100%;color:var(--grey6);border-radius:5px;padding-left:5px;position:relative}.og-select select:focus-visible{outline:none}.og-object3d-manager .og-ddialog-container{flex-direction:column;display:flex}.og-object3d-collection{width:100%;height:100%}.og-object3d-collection__item{cursor:pointer;background-color:#7a7a7a;border:2px solid #0000;border-radius:5px;width:75px;height:75px;margin:3px;position:relative}.og-object3d-collection__item.active{border:2px solid #00e0be}.og-object3d-collection__item_name{color:#fff;background:#3d3d3da3;border-bottom-right-radius:5px;border-bottom-left-radius:5px;width:100%;height:20px;padding-top:3px;position:absolute;bottom:0;left:0}
2
2
  /*$vite$:1*/