@openglobus/og 1.0.0-rc2 → 1.0.0-rc21

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 (119) hide show
  1. package/README.md +2 -0
  2. package/lib/Globe.d.ts +21 -8
  3. package/lib/Object3d.d.ts +1 -1
  4. package/lib/assets/LabelWorker.worker-C24YLEkW.js.map +1 -0
  5. package/lib/assets/PlainSegmentWorker.worker-DJHXd0bF.js.map +1 -0
  6. package/lib/assets/TerrainWorker.worker-BwueoQpg.js.map +1 -0
  7. package/lib/camera/Camera.d.ts +57 -8
  8. package/lib/camera/Frustum.d.ts +37 -1
  9. package/lib/camera/PlanetCamera.d.ts +29 -4
  10. package/lib/control/DebugInfo.d.ts +1 -0
  11. package/lib/control/FramebufferPreview.d.ts +18 -2
  12. package/lib/control/FreeNavigation.d.ts +253 -0
  13. package/lib/control/LayerSwitcher.d.ts +18 -0
  14. package/lib/control/Lighting.d.ts +3 -0
  15. package/lib/control/Navigation.d.ts +18 -1
  16. package/lib/control/ShowFps.d.ts +15 -3
  17. package/lib/control/Sun.d.ts +59 -0
  18. package/lib/control/depthCamera/DepthCamera.d.ts +132 -0
  19. package/lib/control/depthCamera/DepthCameraHandler.d.ts +25 -0
  20. package/lib/control/depthCamera/depth_camera.d.ts +2 -0
  21. package/lib/control/entityEditor/CameraEditorView.d.ts +60 -0
  22. package/lib/control/entityEditor/EntityEditor.d.ts +2 -1
  23. package/lib/control/entityEditor/EntityEditorDialog.d.ts +15 -47
  24. package/lib/control/entityEditor/EntityEditorScene.d.ts +16 -0
  25. package/lib/control/entityEditor/EntityEditorView.d.ts +68 -0
  26. package/lib/control/entityEditor/ProjectorEditorView.d.ts +31 -0
  27. package/lib/control/entityEditor/RotateEntity.d.ts +5 -1
  28. package/lib/control/index.d.ts +3 -3
  29. package/lib/control/timeline/TimelineControl.d.ts +86 -0
  30. package/lib/control/timeline/TimelineModel.d.ts +46 -1
  31. package/lib/control/timeline/TimelineView.d.ts +55 -2
  32. package/lib/entity/Entity.d.ts +18 -0
  33. package/lib/entity/EntityCollection.d.ts +71 -13
  34. package/lib/entity/billboard/BaseBillboardHandler.d.ts +16 -0
  35. package/lib/entity/geoObject/GeoObjectHandler.d.ts +3 -0
  36. package/lib/entity/geoObject/InstanceData.d.ts +6 -0
  37. package/lib/entity/geometry/Geometry.d.ts +18 -0
  38. package/lib/entity/geometry/GeometryHandler.d.ts +1 -0
  39. package/lib/entity/label/Label.d.ts +8 -6
  40. package/lib/entity/pointCloud/PointCloud.d.ts +1 -0
  41. package/lib/entity/pointCloud/PointCloudHandler.d.ts +5 -0
  42. package/lib/entity/polyline/Polyline.d.ts +15 -0
  43. package/lib/entity/polyline/PolylineBatchRenderer.d.ts +1 -0
  44. package/lib/entity/polyline/PolylineHandler.d.ts +5 -0
  45. package/lib/entity/ray/Ray.d.ts +2 -0
  46. package/lib/entity/ray/RayHandler.d.ts +1 -0
  47. package/lib/index.d.ts +20 -3
  48. package/lib/input/KeyboardHandler.d.ts +5 -1
  49. package/lib/layer/BaseTileMaterialLayer.d.ts +36 -0
  50. package/lib/layer/CanvasTiles.d.ts +8 -12
  51. package/lib/layer/Layer.d.ts +8 -1
  52. package/lib/layer/Vector.d.ts +74 -18
  53. package/lib/layer/XYZ.d.ts +5 -21
  54. package/lib/math/Line2.d.ts +9 -0
  55. package/lib/math.d.ts +8 -0
  56. package/lib/og.css +2 -1
  57. package/lib/og.es.js +1 -1
  58. package/lib/og.es.js.map +1 -1
  59. package/lib/quadTree/EntityCollectionsTreeStrategy.d.ts +3 -0
  60. package/lib/quadTree/QuadTreeStrategy.d.ts +18 -1
  61. package/lib/quadTree/earth/EarthEntityCollectionsTreeStrategy.d.ts +3 -0
  62. package/lib/quadTree/equi/EquiEntityCollectionsTreeStrategy.d.ts +3 -0
  63. package/lib/renderer/PhongDeferredShading.d.ts +2 -0
  64. package/lib/renderer/Renderer.d.ts +89 -6
  65. package/lib/renderer/RendererEvents.d.ts +2 -0
  66. package/lib/renderer/cascadeShadows/CascadeShadowManager.d.ts +34 -0
  67. package/lib/renderer/cascadeShadows/CascadeShadowMap.d.ts +110 -0
  68. package/lib/renderer/cascadeShadows/cascade_shadow_depth.d.ts +2 -0
  69. package/lib/renderer/projectors/Projector.d.ts +67 -0
  70. package/lib/renderer/projectors/ProjectorManager.d.ts +86 -0
  71. package/lib/renderer/projectors/ProjectorsPass.d.ts +37 -0
  72. package/lib/renderer/shadows/ShadowManager.d.ts +41 -0
  73. package/lib/renderer/shadows/ShadowMap.d.ts +21 -0
  74. package/lib/renderer/textureUnits.d.ts +6 -0
  75. package/lib/scene/Planet.d.ts +80 -8
  76. package/lib/scene/Scene.d.ts +1 -8
  77. package/lib/scene/SkyBox.d.ts +2 -1
  78. package/lib/segment/Segment.d.ts +18 -1
  79. package/lib/shaders/common/uniforms.d.ts +29 -0
  80. package/lib/shaders/geo_object/geo_object.d.ts +1 -0
  81. package/lib/shaders/projectorsPass/projectorsPass.d.ts +2 -0
  82. package/lib/shaders/tone_mapping/toneMapping.d.ts +1 -1
  83. package/lib/shaders/varianceBlur.d.ts +2 -0
  84. package/lib/terrain/EmptyTerrain.d.ts +43 -2
  85. package/lib/terrain/GlobusRgbTerrain.d.ts +1 -0
  86. package/lib/terrain/MapterhornTerrain.d.ts +11 -0
  87. package/lib/terrain/RgbTerrain.d.ts +11 -0
  88. package/lib/terrain/index.d.ts +6 -2
  89. package/lib/ui/Button.d.ts +1 -0
  90. package/lib/ui/Checkbox.d.ts +1 -0
  91. package/lib/ui/Color.d.ts +6 -2
  92. package/lib/ui/Dialog.d.ts +46 -1
  93. package/lib/ui/Dock.d.ts +151 -0
  94. package/lib/ui/Input.d.ts +14 -1
  95. package/lib/ui/Slider.d.ts +1 -0
  96. package/lib/ui/TitleBarView.d.ts +21 -0
  97. package/lib/ui/index.d.ts +2 -0
  98. package/lib/utils/FontAtlas.d.ts +5 -3
  99. package/lib/utils/GeoImageCreator.d.ts +7 -0
  100. package/lib/utils/Loader.d.ts +6 -0
  101. package/lib/utils/NormalMapCreator.d.ts +6 -0
  102. package/lib/utils/TerrainWorker.d.ts +1 -0
  103. package/lib/utils/VectorTileCreator.d.ts +6 -0
  104. package/lib/utils/cameraFootprint.d.ts +72 -0
  105. package/lib/utils/gltf/types.d.ts +5 -4
  106. package/lib/utils/shadowCameraFit.d.ts +175 -0
  107. package/lib/utils/shared.d.ts +11 -0
  108. package/lib/webgl/BaseFramebuffer.d.ts +28 -0
  109. package/lib/webgl/Framebuffer.d.ts +5 -7
  110. package/lib/webgl/Handler.d.ts +28 -0
  111. package/package.json +11 -9
  112. package/lib/assets/LabelWorker.worker-DYd7xn3M.js.map +0 -1
  113. package/lib/assets/PlainSegmentWorker.worker-JsKldq-e.js.map +0 -1
  114. package/lib/assets/TerrainWorker.worker-CqUJvMOv.js.map +0 -1
  115. package/lib/control/CameraFrameComposer.d.ts +0 -19
  116. package/lib/control/CameraFrameHandler.d.ts +0 -26
  117. package/lib/control/cameraDepthHandler/CameraDepthHandler.d.ts +0 -42
  118. package/lib/control/cameraDepthHandler/camera_depth.d.ts +0 -2
  119. package/lib/tsconfig.tsbuildinfo +0 -1
@@ -4,14 +4,16 @@ import { EntityCollection } from "../entity/EntityCollection";
4
4
  import { EntityCollectionsTreeStrategy } from "../quadTree/EntityCollectionsTreeStrategy";
5
5
  import type { EventsHandler } from "../Events";
6
6
  import { GeometryHandler } from "../entity/geometry/GeometryHandler";
7
- import { Layer } from "./Layer";
8
- import type { ILayerParams, LayerEventsList } from "./Layer";
7
+ import { BaseTileMaterialLayer } from "./BaseTileMaterialLayer";
8
+ import type { IBaseTileMaterialLayerParams } from "./BaseTileMaterialLayer";
9
+ import type { LayerEventsList } from "./Layer";
9
10
  import type { NumberArray3 } from "../math/Vec3";
10
11
  import { Planet } from "../scene/Planet";
11
12
  import { Material } from "./Material";
13
+ import { Segment } from "../segment/Segment";
12
14
  import type { NumberArray4 } from "../math/Vec4";
13
15
  import { type ShadeMode, type ShadeModeInput } from "../shadeModeConstants";
14
- export interface IVectorParams extends ILayerParams {
16
+ export interface IVectorParams extends IBaseTileMaterialLayerParams {
15
17
  entities?: Entity[] | IEntityParams[];
16
18
  depthOffset?: number;
17
19
  nodeCapacity?: number;
@@ -19,11 +21,14 @@ export interface IVectorParams extends ILayerParams {
19
21
  clampToGround?: boolean;
20
22
  async?: boolean;
21
23
  pickingScale?: number | NumberArray3;
22
- scaleByDistance?: NumberArray3;
24
+ scaleByDistance?: NumberArray3 | NumberArray4;
23
25
  labelMaxLetters?: number;
24
26
  shadeMode?: ShadeModeInput;
25
27
  depthOrder?: number;
26
28
  disableCullFace?: boolean;
29
+ receiveProjectors?: boolean;
30
+ receiveFrameTransparency?: boolean;
31
+ receiveShadows?: boolean;
27
32
  }
28
33
  type VectorEventsList = [
29
34
  "draw",
@@ -33,7 +38,7 @@ type VectorEventsList = [
33
38
  export type VectorEventsType = EventsHandler<VectorEventsList> & EventsHandler<LayerEventsList>;
34
39
  /**
35
40
  * Vector layer is an alternative entity storage. Used for geospatial data rendering like
36
- * points, lines, polygons, geometry objects etc.
41
+ * points, lines, polygons, geometry objects, etc.
37
42
  * @class
38
43
  * @extends {Layer}
39
44
  * @param {string} [name="noname"] - Layer name.
@@ -49,11 +54,11 @@ export type VectorEventsType = EventsHandler<VectorEventsList> & EventsHandler<L
49
54
  * @param {boolean} [options.fading=false] - Enables layer fade-in/fade-out transition logic.
50
55
  * @param {number} [options.height=0] - Layer height level used for rendering order.
51
56
  * @param {Array.<Entity|IEntityParams>} [options.entities] - Entities array or entity init params.
52
- * @param {Array.<number>} [options.scaleByDistance] - Scale by distance parameters. (exactly 3 entries)
53
- * First index - near distance to the entity, after entity becomes full scale.
54
- * Second index - far distance to the entity, when entity becomes zero scale.
55
- * Third index - far distance to the entity, when entity becomes invisible.
56
- * Default is `[MAX32, MAX32, MAX32]` (no distance scaling).
57
+ * @param {Array.<number>} [options.scaleByDistance] - Scale by distance parameters:
58
+ * `[near, far, vanish, scale]`. The fourth entry is a plain multiplier and defaults to `1`, so
59
+ * three entries are accepted as well.
60
+ * See {@link Vector#scaleByDistance} for what each entry means.
61
+ * Default is `[MAX32, MAX32, MAX32, 1]` (no distance scaling).
57
62
  * @param {number|Array.<number>} [options.pickingScale=[1,1,1]] - Picking scale value or xyz scale array.
58
63
  * @param {number} [options.nodeCapacity=60] - Maximum entities quantity in a quadtree node.
59
64
  * @param {boolean} [options.async=true] - Asynchronous vector data handling before rendering.
@@ -65,6 +70,9 @@ export type VectorEventsType = EventsHandler<VectorEventsList> & EventsHandler<L
65
70
  * @param {number|string} [options.shadeMode=1] - Geo object shading: 0/none unlit, 0.5/phong, 1/pbr.
66
71
  * @param {number} [options.depthOrder=0] - Rendering order group for vector collections.
67
72
  * @param {boolean} [options.disableCullFace=false] - Disables back-face culling for geo object rendering.
73
+ * @param {boolean} [options.receiveProjectors=true] - Enables/disables projector effect reception for this layer entities.
74
+ * @param {boolean} [options.receiveFrameTransparency=false] - Enables/disables frame transparency reception for this layer entities.
75
+ * @param {boolean} [options.receiveShadows=true] - Enables/disables shadow map reception for this layer entities.
68
76
  *
69
77
  * //@fires entitymove
70
78
  * @fires draw
@@ -74,7 +82,7 @@ export type VectorEventsType = EventsHandler<VectorEventsList> & EventsHandler<L
74
82
  * @fires entityremove
75
83
  * @fires visibilitychange
76
84
  */
77
- declare class Vector extends Layer {
85
+ declare class Vector extends BaseTileMaterialLayer {
78
86
  events: VectorEventsType;
79
87
  protected _depthOrder: number;
80
88
  /**
@@ -83,13 +91,17 @@ declare class Vector extends Layer {
83
91
  */
84
92
  protected _entities: Entity[];
85
93
  /**
86
- * First index - near distance to the entity, after that entity becomes full scale.
87
- * Second index - far distance to the entity, when entity becomes zero scale.
88
- * Third index - far distance to the entity, when entity becomes invisible.
94
+ * Distance-based scaling for geoObjects, billboards, and labels.
95
+ * [0] near - GeoObjects keep a fixed world size below this distance, then scale to
96
+ * maintain a fixed screen size until `far`. Ignored by billboards and labels.
97
+ * Set `near` to `0` to disable distance-based scaling.
98
+ * [1] far - GeoObjects stop growing here. If `vanish > far`, all types start fading.
99
+ * [2] vanish - Distance where the entity fades to zero. `vanish <= far` disables fading.
100
+ * [3] scale - Optional multiplier for all types. Default is `1`.
89
101
  * @public
90
- * @type {NumberArray3}
102
+ * @type {Array.<number>}
91
103
  */
92
- scaleByDistance: NumberArray3;
104
+ scaleByDistance: NumberArray4;
93
105
  pickingScale: Float32Array;
94
106
  /**
95
107
  * Asynchronous data handling before rendering.
@@ -117,7 +129,7 @@ declare class Vector extends Layer {
117
129
  /** todo: combine into one */
118
130
  protected _stripEntityCollection: EntityCollection;
119
131
  protected _polylineEntityCollection: EntityCollection;
120
- protected _geoObjectEntityCollection: EntityCollection;
132
+ _geoObjectEntityCollection: EntityCollection;
121
133
  _geometryHandler: GeometryHandler;
122
134
  protected _entityCollectionsTreeStrategy: EntityCollectionsTreeStrategy | null;
123
135
  /**
@@ -131,6 +143,9 @@ declare class Vector extends Layer {
131
143
  protected _labelMaxLetters: number;
132
144
  protected _shadeMode: ShadeMode;
133
145
  protected _disableCullFace: boolean;
146
+ protected _receiveProjectors: boolean;
147
+ protected _receiveFrameTransparency: boolean;
148
+ protected _receiveShadows: boolean;
134
149
  constructor(name?: string | null, options?: IVectorParams);
135
150
  get depthOrder(): number;
136
151
  set depthOrder(d: number);
@@ -138,6 +153,43 @@ declare class Vector extends Layer {
138
153
  set shadeMode(m: ShadeModeInput);
139
154
  get disableCullFace(): boolean;
140
155
  set disableCullFace(v: boolean);
156
+ /**
157
+ * Gets projector effect reception state for this vector layer entities.
158
+ * @public
159
+ * @returns {boolean}
160
+ */
161
+ get receiveProjectors(): boolean;
162
+ /**
163
+ * Enables/disables projector effect reception for this vector layer entities.
164
+ * @public
165
+ * @param {boolean} v - `true` to receive projector effects, `false` to ignore them.
166
+ */
167
+ set receiveProjectors(v: boolean);
168
+ /**
169
+ * Gets frame transparency reception state for this vector layer entities.
170
+ * @public
171
+ * @returns {boolean}
172
+ */
173
+ get receiveFrameTransparency(): boolean;
174
+ /**
175
+ * Enables/disables frame transparency reception for this vector layer entities.
176
+ * @public
177
+ * @param {boolean} v - `true` to receive frame transparency, `false` to ignore it.
178
+ */
179
+ set receiveFrameTransparency(v: boolean);
180
+ /**
181
+ * Gets shadow map reception state for this vector layer entities.
182
+ * @public
183
+ * @returns {boolean}
184
+ */
185
+ get receiveShadows(): boolean;
186
+ /**
187
+ * Enables/disables shadow map reception for this vector layer entities.
188
+ * Stored in the same material flags channel as projectors and frame transparency.
189
+ * @public
190
+ * @param {boolean} v - `true` to receive shadow map effects, `false` to ignore them.
191
+ */
192
+ set receiveShadows(v: boolean);
141
193
  get labelMaxLetters(): number;
142
194
  get instanceName(): string;
143
195
  protected _bindPicking(): void;
@@ -238,7 +290,7 @@ declare class Vector extends Layer {
238
290
  * @virtual
239
291
  * @param {Material} material - Current material.
240
292
  */
241
- loadMaterial(material: Material): void;
293
+ loadMaterial(material: Material, _forceLoading?: boolean): void;
242
294
  /**
243
295
  * Abort exact material loading.
244
296
  * @public
@@ -247,6 +299,10 @@ declare class Vector extends Layer {
247
299
  */
248
300
  abortMaterialLoading(material: Material): void;
249
301
  applyMaterial(material: Material): NumberArray4;
302
+ protected _allowsLoadWithoutPassReady(): boolean;
303
+ protected _hasParentMaterial(psegm: Material): boolean;
304
+ protected _onParentMaterialApplied(material: Material, psegm: Material): void;
305
+ protected _applyNoParentMaterial(material: Material, segment: Segment): void;
250
306
  clearMaterial(material: Material): void;
251
307
  update(): void;
252
308
  }
@@ -1,11 +1,11 @@
1
- import { Layer } from "./Layer";
2
- import type { ILayerParams, LayerEventsList } from "./Layer";
1
+ import { BaseTileMaterialLayer } from "./BaseTileMaterialLayer";
2
+ import type { IBaseTileMaterialLayerParams } from "./BaseTileMaterialLayer";
3
+ import type { LayerEventsList } from "./Layer";
3
4
  import { Segment } from "../segment/Segment";
4
5
  import type { EventsHandler } from "../Events";
5
6
  import { Material } from "./Material";
6
- import type { NumberArray4 } from "../math/Vec4";
7
7
  import type { FetchCache } from "../utils/Loader";
8
- export interface IXYZParams extends ILayerParams {
8
+ export interface IXYZParams extends IBaseTileMaterialLayerParams {
9
9
  url?: string;
10
10
  subdomains?: string[];
11
11
  minNativeZoom?: number;
@@ -51,7 +51,7 @@ type XYZEventsType = EventsHandler<XYZEventsList> & EventsHandler<LayerEventsLis
51
51
  * attribution: 'Data @ <a href="http://www.openstreetmap.org/">OpenStreetMap</a> contributors, <a href="http://www.openstreetmap.org/copyright">ODbL</a>'
52
52
  * });
53
53
  */
54
- export declare class XYZ extends Layer {
54
+ export declare class XYZ extends BaseTileMaterialLayer {
55
55
  events: XYZEventsType;
56
56
  /**
57
57
  * Tile url source template.
@@ -63,18 +63,6 @@ export declare class XYZ extends Layer {
63
63
  * @protected
64
64
  */
65
65
  protected _s: string[];
66
- /**
67
- * Minimal native zoom level when tiles are available.
68
- * @public
69
- * @type {number}
70
- */
71
- minNativeZoom: number;
72
- /**
73
- * Maximal native zoom level when tiles are available.
74
- * @public
75
- * @type {number}
76
- */
77
- maxNativeZoom: number;
78
66
  /**
79
67
  * Rewrites imagery tile url query.
80
68
  * @private
@@ -144,10 +132,6 @@ export declare class XYZ extends Layer {
144
132
  * @param {Function} ur - The callback that returns tile custom created url.
145
133
  */
146
134
  setUrlRewriteCallback(ur: Function): void;
147
- applyMaterial(material: Material, forceLoading?: boolean): NumberArray4;
148
- protected _apllyMaterialDefault(material: Material, forceLoading?: boolean): NumberArray4;
149
- protected _applyMaterialFast(material: Material, forceLoading?: boolean): NumberArray4;
150
- clearMaterial(material: Material): void;
151
135
  /**
152
136
  * @protected
153
137
  */
@@ -7,5 +7,14 @@ export declare class Line2 {
7
7
  static get(p0: Vec2, p1: Vec2): Line2;
8
8
  static getParallel(l: Line2, p: Vec2): Line2;
9
9
  static getIntersection(L0: Line2, L1: Line2): Vec2;
10
+ static getSegmentCircleIntersectionInto(p0: Vec2, p1: Vec2, center: Vec2, radius: number, out0: Vec2, out1: Vec2): 0 | 1 | 2;
11
+ static getSegmentCircleIntersection(p0: Vec2, p1: Vec2, center: Vec2, radius: number): [] | [Vec2] | [Vec2, Vec2];
10
12
  intersects(l: Line2): Vec2;
13
+ /**
14
+ * Finds the intersection of the line with a circle.
15
+ * @param {Vec2} center - Circle center.
16
+ * @param {number} radius - Circle radius.
17
+ * @returns {Array.<Vec2>} Zero, one, or two intersection points.
18
+ */
19
+ getCircleIntersection(center: Vec2, radius: number): [] | [Vec2] | [Vec2, Vec2];
11
20
  }
package/lib/math.d.ts CHANGED
@@ -67,6 +67,14 @@ export declare const EPS20 = 1e-20;
67
67
  * //returns 6
68
68
  */
69
69
  export declare function log(n: number, base: number): number;
70
+ /**
71
+ * Smooth Hermite interpolation between 0 and 1, the same as GLSL `smoothstep`.
72
+ * @param {number} edge0 - Lower edge.
73
+ * @param {number} edge1 - Upper edge.
74
+ * @param {number} x - Source value.
75
+ * @returns {number} -
76
+ */
77
+ export declare function smoothstep(edge0: number, edge1: number, x: number): number;
70
78
  /**
71
79
  * Clamp the number.
72
80
  * @function
package/lib/og.css CHANGED
@@ -1 +1,2 @@
1
- :root{--grey0: rgb(36 36 36);--grey1: #434244;--grey2: #3f3f46;--grey3: #bbbbbb;--grey4: #5e5e5e;--grey5: rgb(50, 50, 50);--grey6: #b6b6b6;--grey7: #707070;--grey8: #e2e2e2;--grey9: #9f9f9f;--blue0: #1700a9ee}.og-map-button{height:40px;width:40px;position:absolute;outline:none;cursor:pointer;z-index:1;background-color:var(--grey5)}.og-control-container{position:absolute;top:12px;z-index:2;display:flex;flex-direction:row;flex-wrap:wrap;align-content:flex-start;gap:8px;width:min(136px,calc(100% - 24px));box-sizing:border-box;pointer-events:none}.og-control-container>*{pointer-events:auto}.og-control-container .og-map-button{position:relative;top:auto!important;right:auto!important;bottom:auto!important;left:auto!important;margin:0;flex:0 0 auto}.og-control-container__top-left{left:10px;justify-content:flex-start}.og-control-container__top-right{right:12px;justify-content:flex-end}.og-control-container__bottom-right{top:auto;bottom:12px;right:12px;width:auto;max-width:calc(100% - 24px);flex-direction:column;align-items:flex-end;justify-content:flex-end}.og-control-container .og-scale-container,.og-control-container .og-coordinates{position:relative;top:auto!important;right:auto!important;bottom:auto!important;left:auto!important;margin:0}.og-control-container__bottom-right .og-scale-container{order:0}.og-control-container__bottom-right .og-coordinates{order:1}.ogCenterIcon{height:12px;width:12px;margin-bottom:-3.5px;margin-right:-7.5px;bottom:50%;right:50%;position:absolute}.ogHandPoiner{cursor:pointer}.defaultText{position:absolute;top:0;left:0;color:#fff}#ogShowFpsControl{color:red}.ogGrabbingPoiner{cursor:grabbing!important}.og-inner{width:100%;height:100%;float:left;position:relative;-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none;overflow:hidden}.og-attribution{background:#cecece;text-align:right;bottom:0;left:0;position:absolute;font-size:.7rem;padding:1px 0;line-height:1.375em;font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;display:flex;flex-direction:row}.og-attribution .og-attribution__layer{margin-left:5px;margin-right:5px;align-items:center;display:inline;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;color:#1f1f1f}.og-attribution img{max-height:1.3em}input{accent-color:var(--blue0);cursor:pointer}.og-menu-bar-vertical{position:absolute;right:12px;top:12px;width:40px;height:40px;background-color:#403b3bd9;border-radius:2px;box-shadow:0 1px 4px #0f0f0f2b;z-index:0}.og-hide{display:none!important}.og-not-visible{visibility:hidden!important}.og-options-container{position:relative;padding:12px;height:calc(100% - 30px);color:#b6b6b6}.og-option{width:100%;position:relative;display:inline-block;flex-direction:row;padding-bottom:7px;text-overflow:ellipsis;align-items:center;justify-content:left}.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{position:absolute;display:flex;flex-direction:column;box-shadow:3px 3px 4px #0f0f0f2b;background-color:var(--grey0);border:1px solid;border-color:var(--grey1);border-radius:4px;overflow:auto}.og-ddialog .og-ddialog-header{width:100%;height:27px;position:relative;padding:0;z-index:1;background-color:var(--grey2);color:#fff;display:flex;flex-direction:row;align-items:center;justify-content:space-between}.og-ddialog .og-ddialog-header .og-ddialog-header__title{color:var(--grey3);padding-left:5px;pointer-events:none;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:14px;font-weight:400}.og-ddialog .og-ddialog-header .og-ddialog-header__buttons{display:flex;flex-direction:row;justify-content:flex-end}.og-ddialog .og-ddialog-header .og-ddialog-header__buttons .og-button{border-radius:0}.og-ddialog .og-ddialog-container{overflow:auto;position:relative;width:100%;height:100%;font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:14px}.og-ddialog.dragging{-webkit-user-select:none;user-select:none}.og-ddialog .og-ddialog-resize-handle{display:block;position:absolute;right:0;bottom:0;width:20px;height:20px;cursor:nwse-resize;touch-action:none;z-index:2}.og-button{display:flex;align-items:center;align-content:center;padding:2px;flex-direction:row;cursor:default;justify-content:center;color:var(--grey6);border-radius:6px}.og-button .og-button-icon{display:flex;align-items:center;justify-content:center;line-height:0}.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{height:20px;width:20px}.og-button__active{background-color:var(--grey2)}.og-layerSwitcher{position:relative;color:#b6b6b6;width:100%;height:100%;overflow-x:hidden;overflow-y:auto}.og-layerSwitcher__title{position:relative;color:#b6b6b6;font-size:14px;width:100%;padding:5px}.og-layerSwitcher__list{position:relative;width:100%;display:flex;flex-wrap:wrap;align-items:flex-start;padding:2px}.og-layerSwitcher__layerButton{width:70px;height:70px;position:relative;background-color:#7a7a7a;cursor:pointer;border-radius:7px;margin:3px;border:2px solid rgba(0,0,0,0);padding:0;display:flex;flex-direction:column-reverse}.og-layerSwitcher__layerButton.og-layerSwitcher__visible{border:2px solid #56ff64}.og-layerSwitcher__layerButton.og-layerSwitcher__visible img{opacity:1}.og-layerSwitcher__layerButton img{width:100%;height:100%;border-radius:7px;position:absolute;left:0;top:0;opacity:1}.og-layerSwitcher__layerButton img:hover{opacity:1}.og-layerSwitcher__name{color:var(--grey8);font-size:12px;overflow:hidden;text-overflow:ellipsis;padding:3px;background-color:#00000080;bottom:0;border-bottom-left-radius:7px;border-bottom-right-radius:7px;z-index:10}.og-entityTree{width:100%}.og-entityTree__node{width:100%;box-sizing:border-box}.og-entityTree__row{display:flex;align-items:center;min-height:22px}.og-entityTree__toggleBtn{width:20px;height:20px;border:none;background:transparent;color:var(--grey3);cursor:pointer;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{flex:1;min-width:0;border:none;background:transparent;color:var(--grey6);display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;cursor:pointer;border-radius:4px;padding:3px 6px 3px 4px;font-size:12px}.og-entityTree__entityBtn:hover,.og-entityTree__entityBtn:focus-visible{background-color:var(--grey1)}.og-entityTree__name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.og-entityTree__type{color:var(--grey9);font-size:11px;white-space:nowrap}.og-entityTree__children_hidden{display:none}.og-entityTree__children{padding-left:17px}.og-entityTreeControl{position:relative;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;color:var(--grey4)}.og-entityTreeControl__tree{width:100%;padding:4px;box-sizing:border-box}.og-entityTreeControl__empty{padding:10px 8px;color:var(--grey3);font-size:13px}.displayNone{display:none}.displayBlock{display:block}.og-drawing-default_button .og-button-icon{transform:scale(.73)}.ogConsole{position:absolute;top:0;left:0;width:100%;max-height:70%;overflow:auto;font-size:14px;font-family:Arial;background-color:#8282827d;color:#fff;z-index:100000000;pointer-events:none}.ogConsole-text{padding:7px;overflow:hidden}.ogConsole-error{color:red}.ogConsole-warning{color:#ff0}.ogViewExtentBtn{margin-left:12px;height:24px;width:24px;scale:70%;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==) center center no-repeat}.ogViewExtentBtn:hover{border-radius:10px;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)}.og-debuginfo_controls{padding-bottom:8px;display:flex}.og-debuginfo_controls-button{width:25px;height:25px;float:left;margin:3px}.og-debug-info{color:#fff;font-size:12px;padding:10px}.og-debug-info .og-watch-line{width:100%;padding-bottom:5px;display:flex;flex-direction:row}.og-watch-line .og-watch-label{color:#cecece;width:200px}.og-watch-line .og-watch-value{margin-left:15px}.og-popup{position:absolute;text-align:center;bottom:-2px}.og-popup-content-wrapper,.og-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px #0006}.og-popup-content-wrapper{background:#fff;color:#333;box-shadow:0 3px 14px #0006;padding:1px;text-align:left;border-radius:8px;min-width:30px;min-height:17px}.og-popup-content{margin:20px 5px 5px;line-height:1.4}.og-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-left:-20px;overflow:hidden;pointer-events:none;bottom:-19px}.og-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.og-popup-toolbar{position:absolute;top:3px;right:2px;display:inline-block}.og-popup-btn{width:15px;height:15px;cursor:pointer;float:right}.og-popup-btn:hover{color:#2e9be7}.og-popup-title{position:absolute;left:5px;top:3px;font-size:14px}.og-scale-container{position:absolute;right:320px;bottom:30px}.og-scale-label{position:relative;color:#fff;font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:12px;text-align:center}.og-scale-ruler{position:relative;height:7px;border-bottom:2px solid white;border-left:1px solid white;border-right:1px solid white}.og-compass-button .og-button-icon{display:flex;align-items:center;justify-content:center;transform-origin:center center}.og-compass-button .og-button-icon svg{width:48px!important;height:48px!important;display:block}.og-orthoswitcher_button .og-button-icon svg{width:45px!important;height:45px!important;display:block;transform:translateY(3px)}.og-suncontrol-button{width:25px;height:25px;float:left;margin:3px}.og-lighing{position:relative;padding:12px;height:calc(100% - 30px);color:#b6b6b6}.og-lighing .og-layers{display:flex;flex-direction:row;align-items:center}.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{font-family:monospace;padding:2px;margin-left:21px;width:200px}.og-coordinates{position:absolute;bottom:25px;right:12px;text-align:right;overflow:hidden;font-family:monospace;font-size:1em;cursor:pointer;float:left;background-color:var(--grey5);color:var(--grey8);padding:5px;border-radius:4px}.og-coordinates div{float:left}.og-coordinates .og-coordinates-copy-btn{float:left;margin-right:6px;padding:0;border:0;background:transparent;color:var(--grey8);opacity:.8;cursor:pointer}.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{width:90px;padding-right:3px;text-align:left;text-overflow:unset;overflow:hidden}.og-height{width:50px;text-align:right;text-overflow:ellipsis;padding-left:3px;overflow:hidden}.og-units-height{width:15px;text-align:left;padding-left:3px}.og-center-icon{height:12px;width:12px;margin-bottom:-3.5px;margin-right:-7.5px;bottom:50%;right:50%;position:absolute;pointer-events:none}.og-atmosphere.og-options-container .og-slider-label{width:300px;overflow:hidden;height:20px}.og-atmosphere.og-options-container .og-slider input{width:87px}.og-timeline-control_button{width:25px;height:20px;margin-left:3px;margin-right:3px;background:var(--grey7);border-radius:1px}.og-timeline-control_button.og-button__active{background:var(--grey3)}.og-timeline{width:100%;height:100%;background:#2d2d2d;position:relative;left:0;bottom:0;overflow:hidden}.og-timeline-frame{position:relative;width:calc(100% - 20px);margin:0 0 0 10px;height:30px}.og-timeline-scale{overflow:hidden;width:100%;height:100%;touch-action:none}.og-timeline-current{position:absolute;left:0;width:11px;height:100%;margin-left:-5px;cursor:pointer;margin-top:-7px;touch-action:none}.og-timeline-current-spin{margin:0 auto;width:1px;height:100%;background-color:#ff3434;pointer-events:none}.og-timeline-current-arrow{width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #ff3434;margin-left:-6px}.og-timeline-bottom{width:100%;display:flex;position:relative;justify-content:center;margin-top:3px}.og-timeline-controls{position:relative;border-radius:10px;display:flex;flex-direction:row;justify-content:center;align-items:center;padding:8px}.og-timeline-unselectable{-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.og-timeline-top{width:100%;display:block;height:15px}.og-slider{display:flex;flex-direction:row;gap:5px;margin:5px}.og-slider .og-slider-label{width:100%;height:100%;color:var(--grey6);font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:14px;display:flex;align-items:center;text-align:left;margin-right:5px}.og-slider .og-slider-panel{position:relative;width:100%;height:20px;background-color:var(--grey1);z-index:1;border-radius:2px}.og-slider .og-slider-panel .og-slider-progress{position:absolute;height:100%;background-color:var(--grey7);pointer-events:none;border-top-left-radius:2px;border-bottom-left-radius:2px}.og-slider .og-slider-panel .og-slider-pointer{position:absolute;left:0;top:0;height:100%;width:3px;background-color:var(--grey3);pointer-events:none}.og-slider input{position:relative;height:100%;width:100%;background:var(--grey5);border:1px solid var(--grey1);z-index:0;color:var(--grey3);padding-left:5px;width:60px;border-radius:2px}.og-slider input:focus-visible{outline:none}.og-slider input::-webkit-outer-spin-button,.og-slider input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.og-slider input[type=number]{-moz-appearance:textfield}.og-checkbox,.og-input{display:flex;flex-direction:row;margin:5px}.og-checkbox .og-input-label,.og-input .og-input-label{width:100%;height:100%;color:var(--grey6);font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:14px;align-items:center;text-align:left;margin-right:5px}.og-checkbox input,.og-input input{position:relative;height:100%;width:100%;background:var(--grey5);border:1px solid var(--grey1);z-index:0;color:var(--grey3);padding-left:5px;border-radius:5px}.og-checkbox input:focus-visible,.og-input input:focus-visible{outline:none}.og-checkbox input[type=checkbox]{width:14px;height:14px;-moz-appearance:none;appearance:none;-webkit-appearance:none;display:flex;align-content:center;justify-content:center;border:1px solid var(--grey1);border-radius:3px;background:var(--grey8);cursor:pointer;position:relative;padding:0}.og-checkbox input[type=checkbox]:before{content:"";position:absolute;width:3px;height:6px;border:solid black;border-width:0 2px 2px 0;transform:rotate(45deg);top:2px;left:3.5px;opacity:0;transition:opacity .2s ease-in-out}.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{position:relative;width:100%;height:100%;display:flex;flex-direction:column;align-content:center;align-items:center}.og-elevationprofile__menu{position:relative;width:100%;height:43px}.og-elevationprofile__graph{position:relative;width:100%;height:100%}.og-elevationprofile-legend{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:12px;color:var(--grey8);position:absolute;top:0;right:0;margin:5px;display:flex;z-index:1}.og-elevationprofile-legend__row{position:relative;padding:5px;width:70px}.og-elevationprofile-square{position:relative;float:left;width:6px;height:6px;margin:5px}.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{display:inline-block;position:relative;float:left;padding-left:5px}.og-elevationprofile-value{width:30px;display:inline-block;position:relative;float:left;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.og-elevationprofile-buttons{display:inline-block;position:absolute;top:0;left:0}.og-elevationprofile-button{width:25px;height:25px;float:left;margin:3px}.og-elevationprofile-list{position:relative;width:100%;height:100%;display:flex;flex-direction:column}.og-elevationprofile-list textarea{position:relative;width:100%;height:100%;resize:none;background:var(--grey8);padding:5px}.og-elevationprofile-list-buttons{position:relative;height:60px;display:flex;flex-direction:row;align-items:center;justify-content:right}.og-elevationprofile-list-apply{padding:4px 10px 7px;float:right;background-color:var(--grey2);margin-right:15px}.og-elevationprofile_pointer{position:absolute;left:0;top:0;height:100%}.og-elevationprofile-line{position:absolute;background-color:#fff;width:3px;height:30px;margin-left:-1.5px}.og-elevationprofile-label{position:absolute;top:0;left:0;color:#fff}.og-elevationprofile-button__location svg{width:17px;height:17px}.og-elevationprofile-loading{opacity:.3;background-color:#000;position:absolute;width:100%;height:100%;z-index:2;display:flex;flex-direction:row;justify-content:center;align-items:center}.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{position:absolute;width:11px;height:40px;top:30px;animation:ldio-p0v5a1f6oz .9345794392523364s cubic-bezier(.5,0,.5,1) infinite}.ldio-p0v5a1f6oz div:nth-child(1){transform:translate(14.5px);background:#353535;animation-delay:-.5607476635514018s}.ldio-p0v5a1f6oz div:nth-child(2){transform:translate(34.5px);background:#666;animation-delay:-.37383177570093457s}.ldio-p0v5a1f6oz div:nth-child(3){transform:translate(54.5px);background:#9b9b9b;animation-delay:-.18691588785046728s}.ldio-p0v5a1f6oz div:nth-child(4){transform:translate(74.5px);background:#d4d4d4;animation-delay:-.9345794392523364s}.loadingio-spinner-bars-r354qqyl5v{width:88px;height:88px;display:inline-block;overflow:hidden;background:none}.ldio-p0v5a1f6oz{width:100%;height:100%;position:relative;transform:translateZ(0) scale(.88);backface-visibility:hidden;transform-origin:0 0}.ldio-p0v5a1f6oz div{box-sizing:content-box}.og-editor-ground_button{width:fit-content;background:var(--grey1);padding:4px 6px 8px;margin-left:5px;margin-top:15px}.og-editor_toolbar{padding-bottom:8px;display:flex}.og-editor_toolbar-button{width:25px;height:25px;float:left;margin:3px}.og-object3d-manager .og-ddialog-container{display:flex;flex-direction:column}.og-object3d-collection{width:100%;height:100%}.og-object3d-collection__item{width:75px;height:75px;position:relative;background-color:#7a7a7a;cursor:pointer;border-radius:5px;margin:3px;border:2px solid rgba(0,0,0,0)}.og-object3d-collection__item.active{border:solid #00e0be 2px}.og-object3d-collection__item_name{width:100%;height:20px;position:absolute;left:0;bottom:0;background:#3d3d3da3;color:#fff;padding-top:3px;border-bottom-left-radius:5px;border-bottom-right-radius:5px}
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-multiplier{background:var(--grey7);color:#000;cursor:pointer;border:none;border-radius:1px;height:20px;margin-left:8px;padding:0 2px;font-size:11px}.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{z-index:1;touch-action:none;width:100%;height:100%;position:relative;overflow:hidden}.og-timeline-spans{z-index:0;pointer-events:none;position:absolute;top:0;left:0}.og-timeline-current{z-index:2;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-sun{z-index:3;cursor:pointer;touch-action:none;width:11px;height:100%;margin-top:-7px;margin-left:-5px;display:none;position:absolute;left:0}.og-timeline-sun-spin{pointer-events:none;background-color:#fc0;width:1px;height:100%;margin:0 auto}.og-timeline-sun-arrow{border-top:7px solid #fc0;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_button .og-button-icon{transform:scale(.8)}.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}.og-ui{position:absolute;inset:0;overflow:hidden}.og-dock{z-index:10;box-sizing:border-box;background:var(--grey0);display:flex;position:absolute;overflow:hidden}.og-ddialog__docked{box-shadow:none;border-radius:0;overflow:hidden;width:auto!important;min-width:0!important;max-width:none!important;height:auto!important;min-height:0!important;max-height:none!important;position:static!important;top:auto!important;left:auto!important;right:auto!important}.og-ddialog__docked .og-ddialog-resize-handle{display:none!important}.og-dock-splitters{z-index:11;pointer-events:none;position:absolute;inset:0}.og-dock-splitter{pointer-events:auto;touch-action:none;justify-content:center;align-items:center;display:flex;position:absolute}.og-dock-splitter:before{content:"";background:var(--grey1);transition:background .1s ease-out,width .1s ease-out,height .1s ease-out;display:block}.og-dock-splitter__v{cursor:ew-resize}.og-dock-splitter__v:before{width:1px;height:100%}.og-dock-splitter__h{cursor:ns-resize}.og-dock-splitter__h:before{width:100%;height:1px}.og-dock-splitter:hover:before,.og-dock-splitter__active:before{background:var(--grey6)}.og-dock-splitter__v:hover:before,.og-dock-splitter__v.og-dock-splitter__active:before{width:3px}.og-dock-splitter__h:hover:before,.og-dock-splitter__h.og-dock-splitter__active:before{height:3px}.og-dock-hint{z-index:1000;box-sizing:border-box;border:2px solid var(--grey6);pointer-events:none;background:#b6b6b62e;position:absolute}
2
+ /*$vite$:1*/