@openglobus/og 0.28.7 → 1.0.0-rc2

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 (220) hide show
  1. package/LICENSE.md +218 -4
  2. package/README.md +31 -18
  3. package/lib/Deferred.d.ts +2 -2
  4. package/lib/Events.d.ts +1 -1
  5. package/lib/Globe.d.ts +8 -5
  6. package/lib/Object3d.d.ts +17 -14
  7. package/lib/Popup.d.ts +2 -2
  8. package/lib/assets/LabelWorker.worker-DYd7xn3M.js.map +1 -0
  9. package/lib/assets/PlainSegmentWorker.worker-JsKldq-e.js.map +1 -0
  10. package/lib/assets/TerrainWorker.worker-CqUJvMOv.js.map +1 -0
  11. package/lib/bv/index.d.ts +2 -2
  12. package/lib/camera/Camera.d.ts +280 -27
  13. package/lib/camera/Frustum.d.ts +100 -15
  14. package/lib/camera/PlanetCamera.d.ts +93 -8
  15. package/lib/camera/index.d.ts +2 -2
  16. package/lib/control/CameraFrameComposer.d.ts +2 -2
  17. package/lib/control/CameraFrameHandler.d.ts +1 -1
  18. package/lib/control/CompassButton.d.ts +2 -2
  19. package/lib/control/EarthCoordinates.d.ts +5 -2
  20. package/lib/control/FramebufferPreview.d.ts +3 -3
  21. package/lib/control/GeoImageDragControl.d.ts +1 -1
  22. package/lib/control/LayerAnimation.d.ts +2 -2
  23. package/lib/control/LayerSwitcher.d.ts +3 -0
  24. package/lib/control/Lighting.d.ts +4 -2
  25. package/lib/control/Navigation.d.ts +15 -11
  26. package/lib/control/OrthoSwitcher.d.ts +18 -0
  27. package/lib/control/SimpleTouchNavigation.d.ts +44 -0
  28. package/lib/control/Sun.d.ts +4 -2
  29. package/lib/control/TouchNavigation.d.ts +4 -8
  30. package/lib/control/atmosphere/Atmosphere.d.ts +2 -0
  31. package/lib/control/atmosphere/AtmosphereConfig.d.ts +2 -6
  32. package/lib/control/cameraDepthHandler/CameraDepthHandler.d.ts +17 -3
  33. package/lib/control/cameraDepthHandler/camera_depth.d.ts +2 -2
  34. package/lib/control/drawing/LineStringDrawingScene.d.ts +1 -0
  35. package/lib/control/drawing/PolygonDrawingScene.d.ts +14 -14
  36. package/lib/control/elevationProfile/ElevationProfile.d.ts +1 -1
  37. package/lib/control/elevationProfile/ElevationProfileLegend.d.ts +1 -1
  38. package/lib/control/elevationProfile/ElevationProfileScene.d.ts +9 -12
  39. package/lib/control/elevationProfile/ElevationProfileView.d.ts +16 -5
  40. package/lib/control/entityEditor/EntityEditor.d.ts +19 -0
  41. package/lib/control/{geoObjectEditor/GeoObjectEditorDialog.d.ts → entityEditor/EntityEditorDialog.d.ts} +9 -8
  42. package/lib/control/{geoObjectEditor/GeoObjectEditorScene.d.ts → entityEditor/EntityEditorScene.d.ts} +12 -12
  43. package/lib/control/{geoObjectEditor → entityEditor}/colors.d.ts +2 -2
  44. package/lib/control/entityTree/EntityTree.d.ts +46 -0
  45. package/lib/control/entityTree/EntityTreeView.d.ts +24 -0
  46. package/lib/control/heightRuler/HeightRulerScene.d.ts +3 -2
  47. package/lib/control/index.d.ts +5 -3
  48. package/lib/control/ruler/RulerScene.d.ts +8 -8
  49. package/lib/control/selection/SelectionScene.d.ts +6 -6
  50. package/lib/control/timeline/TimelineControl.d.ts +2 -2
  51. package/lib/control/timeline/TimelineModel.d.ts +1 -1
  52. package/lib/control/timeline/TimelineView.d.ts +52 -13
  53. package/lib/control/visibleExtent/segment.d.ts +7 -0
  54. package/lib/ellipsoid/index.d.ts +4 -4
  55. package/lib/entity/Entity.d.ts +114 -100
  56. package/lib/entity/EntityCollection.d.ts +95 -70
  57. package/lib/entity/{BaseBillboard.d.ts → billboard/BaseBillboard.d.ts} +16 -17
  58. package/lib/entity/{BaseBillboardHandler.d.ts → billboard/BaseBillboardHandler.d.ts} +24 -9
  59. package/lib/entity/{Billboard.d.ts → billboard/Billboard.d.ts} +11 -7
  60. package/lib/entity/{BillboardHandler.d.ts → billboard/BillboardHandler.d.ts} +1 -1
  61. package/lib/entity/{GeoObject.d.ts → geoObject/GeoObject.d.ts} +7 -6
  62. package/lib/entity/{GeoObjectHandler.d.ts → geoObject/GeoObjectHandler.d.ts} +29 -11
  63. package/lib/entity/{InstanceData.d.ts → geoObject/InstanceData.d.ts} +18 -13
  64. package/lib/entity/{Geometry.d.ts → geometry/Geometry.d.ts} +10 -10
  65. package/lib/entity/{GeometryHandler.d.ts → geometry/GeometryHandler.d.ts} +7 -7
  66. package/lib/entity/index.d.ts +8 -8
  67. package/lib/entity/{Label.d.ts → label/Label.d.ts} +12 -13
  68. package/lib/entity/{LabelHandler.d.ts → label/LabelHandler.d.ts} +31 -7
  69. package/lib/entity/{LabelWorker.d.ts → label/LabelWorker.d.ts} +3 -3
  70. package/lib/entity/{PointCloud.d.ts → pointCloud/PointCloud.d.ts} +18 -12
  71. package/lib/entity/{PointCloudHandler.d.ts → pointCloud/PointCloudHandler.d.ts} +4 -4
  72. package/lib/entity/polyline/Polyline.d.ts +242 -0
  73. package/lib/entity/polyline/PolylineBatchRenderer.d.ts +443 -0
  74. package/lib/entity/{PolylineHandler.d.ts → polyline/PolylineHandler.d.ts} +19 -7
  75. package/lib/entity/{Ray.d.ts → ray/Ray.d.ts} +27 -9
  76. package/lib/entity/{RayHandler.d.ts → ray/RayHandler.d.ts} +18 -8
  77. package/lib/entity/{Strip.d.ts → strip/Strip.d.ts} +21 -17
  78. package/lib/entity/{StripHandler.d.ts → strip/StripHandler.d.ts} +11 -6
  79. package/lib/index.d.ts +47 -42
  80. package/lib/layer/BaseGeoImage.d.ts +20 -17
  81. package/lib/layer/CanvasTiles.d.ts +14 -12
  82. package/lib/layer/GeoImage.d.ts +1 -1
  83. package/lib/layer/GeoTexture2d.d.ts +2 -2
  84. package/lib/layer/KML.d.ts +19 -18
  85. package/lib/layer/Layer.d.ts +72 -53
  86. package/lib/layer/Vector.d.ts +47 -30
  87. package/lib/layer/WMS.d.ts +1 -1
  88. package/lib/layer/XYZ.d.ts +11 -12
  89. package/lib/layer/index.d.ts +12 -12
  90. package/lib/math/Line2.d.ts +1 -1
  91. package/lib/math/Line3.d.ts +1 -1
  92. package/lib/math/Mat3.d.ts +3 -13
  93. package/lib/math/Mat4.d.ts +16 -10
  94. package/lib/math/Plane.d.ts +1 -1
  95. package/lib/math/Quat.d.ts +14 -12
  96. package/lib/math/Ray.d.ts +4 -3
  97. package/lib/math/Vec2.d.ts +25 -17
  98. package/lib/math/Vec3.d.ts +33 -31
  99. package/lib/math/Vec4.d.ts +1 -1
  100. package/lib/math/coder.d.ts +1 -1
  101. package/lib/math/index.d.ts +13 -14
  102. package/lib/mercator.d.ts +4 -4
  103. package/lib/og.css +1 -1
  104. package/lib/og.es.js +1 -1
  105. package/lib/og.es.js.map +1 -1
  106. package/lib/quadTree/EntityCollectionNode.d.ts +10 -10
  107. package/lib/quadTree/EntityCollectionsTreeStrategy.d.ts +5 -5
  108. package/lib/quadTree/QuadTreeStrategy.d.ts +3 -4
  109. package/lib/quadTree/earth/EarthEntityCollectionNodeLonLat.d.ts +4 -4
  110. package/lib/quadTree/earth/EarthEntityCollectionsTreeStrategy.d.ts +4 -4
  111. package/lib/renderer/AtmosphereDeferredShading.d.ts +12 -0
  112. package/lib/renderer/IDeferredShadingPass.d.ts +8 -0
  113. package/lib/renderer/ITransparencyPass.d.ts +8 -0
  114. package/lib/renderer/PhongDeferredShading.d.ts +16 -0
  115. package/lib/renderer/Renderer.d.ts +166 -99
  116. package/lib/renderer/RendererEvents.d.ts +15 -5
  117. package/lib/renderer/WOITPass.d.ts +14 -0
  118. package/lib/res/fonts/Ephesis-Regular.json +1 -0
  119. package/lib/res/fonts/Ephesis-Regular.png +0 -0
  120. package/lib/res/fonts/Karla-Bold.json +1 -0
  121. package/lib/res/fonts/Karla-Bold.png +0 -0
  122. package/lib/res/fonts/Karla-Italic.json +1 -0
  123. package/lib/res/fonts/Karla-Italic.png +0 -0
  124. package/lib/res/fonts/Karla-Light.json +1 -0
  125. package/lib/res/fonts/Karla-Light.png +0 -0
  126. package/lib/res/fonts/Karla-Medium.json +1 -0
  127. package/lib/res/fonts/Karla-Medium.png +0 -0
  128. package/lib/res/fonts/Roboto-Regular.json +1 -37147
  129. package/lib/res/fonts/Roboto-Regular.png +0 -0
  130. package/lib/res/fonts/arial.json +1 -4321
  131. package/lib/res/fonts/arial.png +0 -0
  132. package/lib/res/night-4326.png +0 -0
  133. package/lib/res/night.png +0 -0
  134. package/lib/scene/AltitudeNearPlaneStrategy.d.ts +17 -0
  135. package/lib/scene/Axes.d.ts +4 -3
  136. package/lib/scene/Planet.d.ts +244 -69
  137. package/lib/scene/{RenderNode.d.ts → Scene.d.ts} +49 -46
  138. package/lib/scene/SkyBox.d.ts +5 -3
  139. package/lib/scene/index.d.ts +2 -2
  140. package/lib/segment/Segment.d.ts +29 -15
  141. package/lib/segment/SegmentLonLat.d.ts +0 -1
  142. package/lib/shadeModeConstants.d.ts +7 -0
  143. package/lib/shaders/applyDeferredDepth.d.ts +2 -0
  144. package/lib/shaders/atmos/atmos.d.ts +3 -3
  145. package/lib/shaders/billboard/billboard.d.ts +4 -3
  146. package/lib/shaders/deferredShading/deferredShading.d.ts +2 -0
  147. package/lib/shaders/deferredShading/deferredShadingAtmos.d.ts +3 -0
  148. package/lib/shaders/depth.d.ts +2 -2
  149. package/lib/shaders/geo_object/geo_object.d.ts +8 -4
  150. package/lib/shaders/label/label.d.ts +4 -4
  151. package/lib/shaders/pointCloud.d.ts +2 -2
  152. package/lib/shaders/polyline/polyline.d.ts +7 -3
  153. package/lib/shaders/ray/ray.d.ts +3 -2
  154. package/lib/shaders/screenFrame.d.ts +2 -2
  155. package/lib/shaders/segment/segment.d.ts +7 -0
  156. package/lib/shaders/skybox.d.ts +2 -2
  157. package/lib/shaders/strip/strip.d.ts +3 -0
  158. package/lib/shaders/tone_mapping/toneMapping.d.ts +2 -2
  159. package/lib/shaders/weightedOITResolve.d.ts +2 -0
  160. package/lib/terrain/BilTerrain.d.ts +1 -1
  161. package/lib/terrain/EmptyTerrain.d.ts +5 -6
  162. package/lib/terrain/GlobusTerrain.d.ts +18 -23
  163. package/lib/terrain/RgbTerrain.d.ts +8 -8
  164. package/lib/terrain/index.d.ts +5 -5
  165. package/lib/tsconfig.tsbuildinfo +1 -1
  166. package/lib/ui/Button.d.ts +7 -5
  167. package/lib/ui/ButtonGroup.d.ts +1 -1
  168. package/lib/ui/Checkbox.d.ts +2 -2
  169. package/lib/ui/Color.d.ts +2 -2
  170. package/lib/ui/Dialog.d.ts +30 -3
  171. package/lib/ui/Input.d.ts +7 -2
  172. package/lib/ui/Slider.d.ts +5 -2
  173. package/lib/ui/ToggleButton.d.ts +2 -2
  174. package/lib/ui/View.d.ts +1 -1
  175. package/lib/ui/icons.d.ts +1 -1
  176. package/lib/ui/index.d.ts +9 -9
  177. package/lib/utils/FontAtlas.d.ts +57 -8
  178. package/lib/utils/GeoImageCreator.d.ts +2 -2
  179. package/lib/utils/ImagesCacheManager.d.ts +3 -3
  180. package/lib/utils/Loader.d.ts +2 -2
  181. package/lib/utils/PlainSegmentWorker.d.ts +2 -2
  182. package/lib/utils/TerrainWorker.d.ts +2 -2
  183. package/lib/utils/TextureAtlas.d.ts +7 -2
  184. package/lib/utils/TextureResourceManager.d.ts +162 -0
  185. package/lib/utils/VectorTileCreator.d.ts +1 -1
  186. package/lib/utils/colorSpace.d.ts +9 -0
  187. package/lib/utils/gltf/gltfParser.d.ts +9 -2
  188. package/lib/utils/gltf/types.d.ts +20 -2
  189. package/lib/utils/shared.d.ts +11 -5
  190. package/lib/utils/textureResourceMeta.d.ts +9 -0
  191. package/lib/webgl/BaseFramebuffer.d.ts +7 -0
  192. package/lib/webgl/Framebuffer.d.ts +9 -6
  193. package/lib/webgl/Handler.d.ts +81 -99
  194. package/lib/webgl/ShaderProgram.d.ts +190 -0
  195. package/lib/webgl/index.d.ts +2 -2
  196. package/lib/webgl/variableHandlers.d.ts +2 -1
  197. package/package.json +77 -76
  198. package/lib/assets/LabelWorker.worker-BT1uJgYn.js.map +0 -1
  199. package/lib/assets/PlainSegmentWorker.worker-CT1cj8jj.js.map +0 -1
  200. package/lib/assets/TerrainWorker.worker-DmikdfB2.js.map +0 -1
  201. package/lib/control/OldMouseNavigation.d.ts +0 -65
  202. package/lib/control/ZoomControl.d.ts +0 -28
  203. package/lib/control/geoObjectEditor/GeoObjectEditor.d.ts +0 -13
  204. package/lib/control/visibleExtent/drawnode.d.ts +0 -7
  205. package/lib/entity/Polyline.d.ts +0 -417
  206. package/lib/light/LightSource.d.ts +0 -36
  207. package/lib/res/fonts/Roboto-Regular.ttf.cfg +0 -1340
  208. package/lib/res/fonts/Roboto-Regular.ttf.png +0 -0
  209. package/lib/res/fonts/arial.ttf.cfg +0 -1570
  210. package/lib/res/fonts/arial.ttf.png +0 -0
  211. package/lib/scene/BaseNode.d.ts +0 -61
  212. package/lib/shaders/drawnode/drawnode.d.ts +0 -8
  213. package/lib/webgl/Program.d.ts +0 -161
  214. package/lib/webgl/ProgramController.d.ts +0 -87
  215. /package/lib/control/{geoObjectEditor → entityEditor}/ArrowEntity.d.ts +0 -0
  216. /package/lib/control/{geoObjectEditor → entityEditor}/AxisTrackEntity.d.ts +0 -0
  217. /package/lib/control/{geoObjectEditor → entityEditor}/MoveAxisEntity.d.ts +0 -0
  218. /package/lib/control/{geoObjectEditor → entityEditor}/MovePlaneEntity.d.ts +0 -0
  219. /package/lib/control/{geoObjectEditor → entityEditor}/RotateEntity.d.ts +0 -0
  220. /package/lib/entity/{LabelWorker.worker.d.ts → label/LabelWorker.worker.d.ts} +0 -0
@@ -91,7 +91,7 @@ export declare class Quat {
91
91
  */
92
92
  static getLookAtSourceDest(sourcePoint: Vec3, destPoint: Vec3): Quat;
93
93
  /**
94
- * Compute rotation between two vectors.
94
+ * Computes rotation between two vectors.
95
95
  * @static
96
96
  * @param {Vec3} u - First vector.
97
97
  * @param {Vec3} v - Second vector.
@@ -99,18 +99,18 @@ export declare class Quat {
99
99
  */
100
100
  static getRotationBetweenVectors(u: Vec3, v: Vec3): Quat;
101
101
  /**
102
- * Compute rotation between two vectors.
102
+ * Computes rotation between two vectors.
103
103
  * @static
104
104
  * @param {Vec3} u - First vector.
105
105
  * @param {Vec3} v - Second vector.
106
- * @param {Quat} res
106
+ * @param {Quat} res - Output quaternion.
107
107
  * @returns {Quat} -
108
108
  */
109
109
  static getRotationBetweenVectorsRes(u: Vec3, v: Vec3, res: Quat): Quat;
110
110
  /**
111
- * Compute rotation between two vectors with around vector up
112
- * for exactly opposite vectors. If vectors exactly in the same
113
- * direction as returns identity Quat.
111
+ * Computes rotation between two vectors.
112
+ * Uses the `up` vector when vectors are exactly opposite.
113
+ * Returns identity when vectors are exactly equal.
114
114
  * @static
115
115
  * @param {Vec3} source - First vector.
116
116
  * @param {Vec3} dest - Second vector.
@@ -176,7 +176,8 @@ export declare class Quat {
176
176
  * Computes the componentwise sum of two Quats.
177
177
  * @public
178
178
  * @param {Quat} q - Quat to add.
179
- * @returns {Quat} -
179
+ * @param {Quat} res - Output quaternion.
180
+ * @returns {Quat} Result quaternion.
180
181
  */
181
182
  addRes(q: Quat, res: Quat): Quat;
182
183
  /**
@@ -234,7 +235,7 @@ export declare class Quat {
234
235
  * Sets current Quat representing a rotation around an axis.
235
236
  * @public
236
237
  * @param {Vec3} axis - The axis of rotation.
237
- * @param {number} angle The angle in radians to rotate around the axis.
238
+ * @param {number} angle - The angle in radians to rotate around the axis.
238
239
  * @returns {Quat} -
239
240
  */
240
241
  setFromAxisAngle(axis: Vec3, angle: number): Quat;
@@ -246,7 +247,7 @@ export declare class Quat {
246
247
  /**
247
248
  * Returns axis and angle of the current Quat.
248
249
  * @public
249
- * @returns QuatAxisAngle -
250
+ * @returns {QuatAxisAngle} Axis-angle representation.
250
251
  */
251
252
  getAxisAngle(): {
252
253
  axis: Vec3;
@@ -281,7 +282,7 @@ export declare class Quat {
281
282
  /**
282
283
  * Converts current Quat to the rotation 4x4 matrix.
283
284
  * @public
284
- * @params {Mat4} [out] - Output matrix
285
+ * @param {Mat4} [out] - Output matrix.
285
286
  * @returns {Mat4} -
286
287
  */
287
288
  getMat4(out?: Mat4): Mat4;
@@ -318,7 +319,8 @@ export declare class Quat {
318
319
  * Computes the product of two Quats.
319
320
  * @public
320
321
  * @param {Quat} q - Quat to multiply.
321
- * @returns {Quat} -
322
+ * @param {Quat} res - Output quaternion.
323
+ * @returns {Quat} Result quaternion.
322
324
  */
323
325
  mulRes(q: Quat, res: Quat): Quat;
324
326
  /**
@@ -329,7 +331,7 @@ export declare class Quat {
329
331
  */
330
332
  mulA(q: Quat): Quat;
331
333
  /**
332
- * Gets the conjugate of the Quat.
334
+ * Returns the conjugate of the current quaternion.
333
335
  * @public
334
336
  * @returns {Quat} -
335
337
  */
package/lib/math/Ray.d.ts CHANGED
@@ -39,9 +39,9 @@ export declare class Ray {
39
39
  */
40
40
  set(origin: Vec3, direction: Vec3): Ray;
41
41
  /**
42
- * Get a point on the ray at a given distance `t`.
42
+ * Returns a point on the ray at the given distance.
43
43
  * @param {number} distance - Distance from the origin along the ray.
44
- * @returns {Vec3} The point at distance `t`.
44
+ * @returns {Vec3} The point at the given distance.
45
45
  */
46
46
  getPoint(distance: number): Vec3;
47
47
  /**
@@ -58,7 +58,8 @@ export declare class Ray {
58
58
  /**
59
59
  * Finds the intersection of the ray with a plane.
60
60
  * @param {Plane} plane - The plane to intersect with.
61
- * @returns {Vec3 | null} The intersection point or null if no intersection.
61
+ * @param {Vec3} res - Output intersection point when result is `Ray.INSIDE`.
62
+ * @returns {number} Intersection status: `Ray.INSIDE`, `Ray.OUTSIDE`, or `Ray.AWAY`.
62
63
  */
63
64
  hitPlaneRes(plane: Plane, res: Vec3): number;
64
65
  /**
@@ -28,6 +28,13 @@ export declare class Vec2 {
28
28
  static get LEFT(): Vec2;
29
29
  /** @const */
30
30
  static get ZERO(): Vec2;
31
+ /**
32
+ * Creates 2d vector from array.
33
+ * @function
34
+ * @param {NumberArray2} arr - Input array. (exactly 2 entries)
35
+ * @returns {Vec2}
36
+ */
37
+ static fromVec(arr: NumberArray2): Vec2;
31
38
  /**
32
39
  * Returns summary vector.
33
40
  * @static
@@ -93,11 +100,11 @@ export declare class Vec2 {
93
100
  */
94
101
  static orthoNormalize(normal: Vec2, tangent: Vec2): Vec2;
95
102
  /**
96
- * Get projection of the vector to plane where n - normal to the plane.
103
+ * Projects a vector onto a plane with normal `n`.
97
104
  * @static
98
105
  * @param {Vec2} b - Vector to project.
99
106
  * @param {Vec2} n - Plane normal.
100
- * @param {Vec2} [def] - Default value for non existed result.
107
+ * @param {Vec3} [def] - Default value if the result is zero.
101
108
  * @returns {Vec2} -
102
109
  */
103
110
  static proj_b_to_plane(b: Vec2, n: Vec2, def?: Vec3): Vec2;
@@ -141,19 +148,19 @@ export declare class Vec2 {
141
148
  /**
142
149
  * Adds vector to the current.
143
150
  * @public
144
- * @param {Vec2}
151
+ * @param {Vec2} v - Vector to add.
145
152
  * @returns {Vec2}
146
153
  */
147
154
  addA(v: Vec2): Vec2;
148
155
  /**
149
- * Summarize two vectors.
156
+ * Adds two vectors.
150
157
  * @public
151
- * @param {Vec2}
158
+ * @param {Vec2} v - Vector to add.
152
159
  * @returns {Vec2}
153
160
  */
154
161
  add(v: Vec2): Vec2;
155
162
  /**
156
- * Subtract vector from the current where results saved on the current instance.
163
+ * Subtracts a vector from the current vector in place.
157
164
  * @public
158
165
  * @param {Vec2} v - Subtract vector.
159
166
  * @returns {Vec2}
@@ -181,35 +188,35 @@ export declare class Vec2 {
181
188
  */
182
189
  scaleTo(scale: number): Vec2;
183
190
  /**
184
- * Multiply current vector object to another and store result in the current instance.
191
+ * Multiplies the current vector by another vector in place.
185
192
  * @public
186
193
  * @param {Vec2} vec - Multiply vector.
187
194
  * @returns {Vec2}
188
195
  */
189
196
  mulA(vec: Vec2): Vec2;
190
197
  /**
191
- * Multiply current vector object to another and returns new vector instance.
198
+ * Multiplies the current vector by another vector and returns a new vector.
192
199
  * @public
193
200
  * @param {Vec2} vec - Multiply vector.
194
201
  * @returns {Vec2}
195
202
  */
196
203
  mul(vec: Vec2): Vec2;
197
204
  /**
198
- * Divide current vector's components to another. Results stores in the current vector object.
205
+ * Divides current vector components by another vector in place.
199
206
  * @public
200
- * @param {Vec2}
207
+ * @param {Vec2} vec - Divisor vector.
201
208
  * @returns {Vec2}
202
209
  */
203
210
  divA(vec: Vec2): Vec2;
204
211
  /**
205
- * Gets vectors dot production.
212
+ * Returns the dot product of two vectors.
206
213
  * @public
207
214
  * @param {Vec2} v - Another vector.
208
215
  * @returns {number}
209
216
  */
210
217
  dot(v: Vec2): number;
211
218
  /**
212
- * Gets vectors dot production.
219
+ * Returns the dot product with a 2-element array.
213
220
  * @public
214
221
  * @param {Array.<number>} arr - Array vector. (exactly 2 entries)
215
222
  * @returns {number}
@@ -256,7 +263,7 @@ export declare class Vec2 {
256
263
  /**
257
264
  * Gets distance to point.
258
265
  * @public
259
- * @param {Vec2} p - Distant point.
266
+ * @param {Vec2} p - Target point.
260
267
  * @returns {number}
261
268
  */
262
269
  distance(p: Vec2): number;
@@ -296,11 +303,12 @@ export declare class Vec2 {
296
303
  */
297
304
  angle(a: Vec2): number;
298
305
  /**
299
- * Returns two vectors linear interpolation.
306
+ * Returns linear interpolation between two vectors.
300
307
  * @public
308
+ * @param {Vec2} v1 - Start vector.
301
309
  * @param {Vec2} v2 - End vector.
302
- * @param {number} l - Interpolate value.
303
- * @returns {Vec2}
310
+ * @param {number} l - Interpolation factor in range [0, 1].
311
+ * @returns {Vec2} Interpolated vector.
304
312
  */
305
313
  lerp(v1: Vec2, v2: Vec2, l: number): Vec2;
306
314
  static get LERP_DELTA(): number;
@@ -325,7 +333,7 @@ export declare class Vec2 {
325
333
  /**
326
334
  * Vector 2d object creator.
327
335
  * @function
328
- * @param {number} [x] - First cvalue.
336
+ * @param {number} [x] - First value.
329
337
  * @param {number} [y] - Second value.
330
338
  * @returns {Vec2}
331
339
  */
@@ -50,7 +50,7 @@ export declare class Vec3 {
50
50
  /** @const */
51
51
  static get NORTH(): Vec3;
52
52
  /**
53
- * Separate 63 bit Vec3 to two Vec3 32-bit float values.
53
+ * Splits a 64-bit Vec3 value into two Vec3 values with 32-bit float components.
54
54
  * @function
55
55
  * @param {Vec3} v - Double type value.
56
56
  * @param {Vec3} high - Out vector high values.
@@ -58,7 +58,7 @@ export declare class Vec3 {
58
58
  */
59
59
  static doubleToTwoFloats(v: Vec3, high: Vec3, low: Vec3): void;
60
60
  /**
61
- * Separate 63 bit Vec3 to two Vec3 32-bit float values.
61
+ * Splits a 64-bit Vec3 value into two float arrays with 32-bit components.
62
62
  * @function
63
63
  * @param {Vec3} v - Double type value.
64
64
  * @param {Float32Array} high - Out vector high values.
@@ -91,19 +91,19 @@ export declare class Vec3 {
91
91
  */
92
92
  static lerp(v1: Vec3, v2: Vec3, l: number): Vec3;
93
93
  /**
94
- * Returns summary vector.
94
+ * Returns the sum of two vectors.
95
95
  * @static
96
96
  * @param {Vec3} a - First vector.
97
97
  * @param {Vec3} b - Second vector.
98
- * @returns {Vec3} - Summary vector.
98
+ * @returns {Vec3} - Sum vector.
99
99
  */
100
100
  static add(a: Vec3, b: Vec3): Vec3;
101
101
  /**
102
- * Returns two vectors subtraction.
102
+ * Returns the difference between two vectors.
103
103
  * @static
104
104
  * @param {Vec3} a - First vector.
105
105
  * @param {Vec3} b - Second vector.
106
- * @returns {Vec3} - Vectors subtraction.
106
+ * @returns {Vec3} - Subtraction result.
107
107
  */
108
108
  static sub(a: Vec3, b: Vec3): Vec3;
109
109
  /**
@@ -131,11 +131,11 @@ export declare class Vec3 {
131
131
  */
132
132
  static noncollinear(a: Vec3, b: Vec3): boolean;
133
133
  /**
134
- * Get projection of the vector to plane where n - normal to the plane.
134
+ * Projects a vector onto a plane with normal `n`.
135
135
  * @static
136
136
  * @param {Vec3} b - Vector to project.
137
137
  * @param {Vec3} n - Plane normal.
138
- * @param {Vec3} [def] - Default value for non existed result.
138
+ * @param {Vec3} [def] - Default value if the result is zero.
139
139
  * @returns {Vec3} -
140
140
  */
141
141
  static proj_b_to_plane(b: Vec3, n: Vec3, def?: Vec3): Vec3;
@@ -245,10 +245,11 @@ export declare class Vec3 {
245
245
  */
246
246
  add(p: Vec3): Vec3;
247
247
  /**
248
- * Gets two vectors summarization.
248
+ * Computes the componentwise sum of two vectors.
249
249
  * @public
250
250
  * @param {Vec3} p - Vector to add.
251
- * @returns {Vec3} Returns a sum vector.
251
+ * @param {Vec3} res - Output vector.
252
+ * @returns {Vec3} Sum vector.
252
253
  */
253
254
  addRes(p: Vec3, res: Vec3): Vec3;
254
255
  /**
@@ -262,7 +263,7 @@ export declare class Vec3 {
262
263
  * Gets vector subtraction.
263
264
  * @public
264
265
  * @param {Vec3} p - Subtract vector.
265
- * @return {Vec3} Returns new instance of a subtraction
266
+ * @returns {Vec3} Returns a new subtraction vector.
266
267
  */
267
268
  sub(p: Vec3): Vec3;
268
269
  /**
@@ -294,35 +295,36 @@ export declare class Vec3 {
294
295
  */
295
296
  mul(vec: Vec3): Vec3;
296
297
  /**
297
- * Multiply current vector object to another and returns new vector instance.
298
+ * Computes the componentwise product of two vectors.
298
299
  * @public
299
- * @param {Vec3} vec - Multiply vector.
300
- * @returns {Vec3} -
300
+ * @param {Vec3} vec - Vector multiplier.
301
+ * @param {Vec3} res - Output vector.
302
+ * @returns {Vec3} Product vector.
301
303
  */
302
304
  mulRes(vec: Vec3, res: Vec3): Vec3;
303
305
  /**
304
- * Divide current vector's components to another. Results stores in the current vector object.
306
+ * Divides current vector components by another vector in place.
305
307
  * @public
306
- * @param {Vec3} vec - Div vector.
308
+ * @param {Vec3} vec - Divisor vector.
307
309
  * @returns {Vec3} -
308
310
  */
309
311
  divA(vec: Vec3): Vec3;
310
312
  /**
311
313
  * Divide current vector's components to another and returns new vector instance.
312
314
  * @public
313
- * @param {Vec3} vec - Div vector.
315
+ * @param {Vec3} vec - Divisor vector.
314
316
  * @returns {Vec3} -
315
317
  */
316
318
  div(vec: Vec3): Vec3;
317
319
  /**
318
- * Gets vectors dot production.
320
+ * Returns the dot product of two vectors.
319
321
  * @public
320
322
  * @param {Vec3} a - Another vector.
321
323
  * @returns {number} -
322
324
  */
323
325
  dot(a: Vec3): number;
324
326
  /**
325
- * Gets vectors dot production.
327
+ * Returns the dot product with an array.
326
328
  * @public
327
329
  * @param {Array.<number>} arr - Array vector. (exactly 3 entries)
328
330
  * @returns {number} -
@@ -355,13 +357,13 @@ export declare class Vec3 {
355
357
  */
356
358
  normal(): Vec3;
357
359
  /**
358
- * Returns normalized negate vector.
360
+ * Returns the normalized negated vector.
359
361
  * @public
360
362
  * @returns {Vec3} -
361
363
  */
362
364
  normalNegate(): Vec3;
363
365
  /**
364
- * Returns normalized negate scale vector.
366
+ * Returns the normalized negated vector multiplied by `scale`.
365
367
  * @public
366
368
  * @returns {Vec3} -
367
369
  */
@@ -394,14 +396,14 @@ export declare class Vec3 {
394
396
  /**
395
397
  * Gets distance to point.
396
398
  * @public
397
- * @param {Vec3} p - Distant point.
399
+ * @param {Vec3} p - Target point.
398
400
  * @returns {number} -
399
401
  */
400
402
  distance(p: Vec3): number;
401
403
  /**
402
404
  * Gets square distance to point.
403
405
  * @public
404
- * @param {Vec3} p - Distant point.
406
+ * @param {Vec3} p - Target point.
405
407
  * @returns {number} -
406
408
  */
407
409
  distance2(p: Vec3): number;
@@ -445,7 +447,7 @@ export declare class Vec3 {
445
447
  * Returns two vectors linear interpolation.
446
448
  * @public
447
449
  * @param {Vec3} v2 - End vector.
448
- * @param {number} l - Interpolate value.
450
+ * @param {number} l - Interpolation value.
449
451
  * @returns {Vec3} -
450
452
  */
451
453
  lerp(v2: Vec3, l: number): Vec3;
@@ -453,7 +455,7 @@ export declare class Vec3 {
453
455
  * Returns vector interpolation by v(t) = v1 * t + v2 * (1 - t)
454
456
  * @public
455
457
  * @param {Vec3} v2 - End vector.
456
- * @param {number} t - Interpolate value.
458
+ * @param {number} t - Interpolation value.
457
459
  * @returns {Vec3} -
458
460
  */
459
461
  smerp(v2: Vec3, t: number): Vec3;
@@ -471,9 +473,9 @@ export declare class Vec3 {
471
473
  slerp(v2: Vec3, t: number): Vec3;
472
474
  mulVecA(a: Vec3): Vec3;
473
475
  /**
474
- * Gets the shortest arc quaternion to rotate this vector to the destination vector.
475
- * @param {Vec3} dest -
476
- * @param {Vec3} fallbackAxis -
476
+ * Returns the shortest-arc quaternion rotating this vector to `dest`.
477
+ * @param {Vec3} dest - Destination vector.
478
+ * @param {Vec3} fallbackAxis - Axis used when vectors are opposite.
477
479
  * @returns {Quat} -
478
480
  * @todo: TEST IT!
479
481
  */
@@ -482,9 +484,9 @@ export declare class Vec3 {
482
484
  /**
483
485
  * Vector 3d object creator.
484
486
  * @function
485
- * @param {number} [x] - value X.
486
- * @param {number} [y] - value Y.
487
- * @param {number} [z] - value Z.
487
+ * @param {number} [x] - Value X.
488
+ * @param {number} [y] - Value Y.
489
+ * @param {number} [z] - Value Z.
488
490
  * @returns {Vec3} -
489
491
  */
490
492
  export declare function vec3(x?: number, y?: number, z?: number): Vec3;
@@ -138,7 +138,7 @@ export declare class Vec4 {
138
138
  */
139
139
  getFrac(v: Vec4): Vec4;
140
140
  /**
141
- * Gets vectors dot production.
141
+ * Returns the dot product of two vectors.
142
142
  * @public
143
143
  * @param {Vec4} v - Another vector.
144
144
  * @returns {number} - Dot product.
@@ -39,7 +39,7 @@ export declare function doubleToTwoFloats(value: number): Float32Array;
39
39
  * Separate 64 bit value to two 32-bit float values.
40
40
  * @function
41
41
  * @param {number} value - Double type value.
42
- * @param {NumberArray2 | Float32Array} - Reference out array.
42
+ * @param {NumberArray2 | Float32Array} highLowArr - Reference output array.
43
43
  * @returns {NumberArray2 | Float32Array} Encoded array. (exactly 2 entries)
44
44
  */
45
45
  export declare function doubleToTwoFloats2(value: number, highLowArr: NumberArray2 | Float32Array): NumberArray2 | Float32Array;
@@ -1,14 +1,13 @@
1
- import { Line2 } from './Line2';
2
- import { Line3 } from './Line3';
3
- import { Mat3 } from './Mat3';
4
- import { Mat4 } from './Mat4';
5
- import { Plane } from './Plane';
6
- import { Quat } from './Quat';
7
- import { Ray } from './Ray';
8
- import { Vec2 } from './Vec2';
9
- import { Vec3 } from './Vec3';
10
- import { Vec4 } from './Vec4';
11
- import type { NumberArray2 } from './Vec2';
12
- import type { NumberArray3 } from './Vec3';
13
- import type { NumberArray4 } from './Vec4';
14
- export { Line2, Line3, Mat3, Mat4, Plane, Quat, Ray, Vec2, Vec3, Vec4, type NumberArray2, type NumberArray3, type NumberArray4 };
1
+ export { Line2 } from "./Line2";
2
+ export { Line3 } from "./Line3";
3
+ export { Mat3 } from "./Mat3";
4
+ export { Mat4 } from "./Mat4";
5
+ export { Plane } from "./Plane";
6
+ export { Quat } from "./Quat";
7
+ export { Ray } from "./Ray";
8
+ export { Vec2 } from "./Vec2";
9
+ export { Vec3 } from "./Vec3";
10
+ export { Vec4 } from "./Vec4";
11
+ export type { NumberArray2 } from "./Vec2";
12
+ export type { NumberArray3 } from "./Vec3";
13
+ export type { NumberArray4 } from "./Vec4";
package/lib/mercator.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Extent } from "./Extent";
2
- import { LonLat } from './LonLat';
2
+ import { LonLat } from "./LonLat";
3
3
  /**
4
4
  * Mercator size.
5
5
  * @const
@@ -48,7 +48,7 @@ export declare function inverse_lon(lon: number): number;
48
48
  /**
49
49
  * Converts mercator latitude to degrees coordinate.
50
50
  * @function
51
- * @param {number} lon - Mercator latitude.
51
+ * @param {number} lat - Mercator latitude.
52
52
  * @returns {number} -
53
53
  */
54
54
  export declare function inverse_lat(lat: number): number;
@@ -73,8 +73,8 @@ export declare function getTileY(lat: number, zoom: number): number;
73
73
  /**
74
74
  * Converts geodetic coordinate array to mercator coordinate array.
75
75
  * @function
76
- * @param {Array.<LonLat>} lonLatArr - LonLat array to convert.
77
- * @returns {Array.<LonLat>}
76
+ * @param {Array.<LonLat>} lonlatArr - LonLat array to convert.
77
+ * @returns {Array.<LonLat>} Converted mercator coordinates.
78
78
  */
79
79
  export declare function forwardArray(lonlatArr: LonLat[]): LonLat[];
80
80
  export declare function getTileExtent(x: number, y: number, z: number): Extent;
package/lib/og.css CHANGED
@@ -1 +1 @@
1
- :root{--grey0: rgb(45 45 45);--grey1: #434244;--grey2: #3F3F46;--grey3: #BBBBBB;--grey4: #5e5e5e;--grey5: rgb(64, 59, 59);--grey6: #bfbfbf;--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)}.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;right: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}.og-zoomin-button{bottom:102px;right:12px;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.og-zoomout-button{bottom:58px;right:12px;border-top-left-radius:0!important;border-top-right-radius:0!important}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-button{display:flex;align-items:center;align-content:center;padding:2px;flex-direction:row;cursor:default;justify-content:center;color:var(--grey6);border-radius:4px}.og-button svg,.og-button svg path{width:24px;height:24px;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_button{top:12px;right:12px}.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:inline-block;flex-direction:column;padding:2px}.og-layerSwitcher__layerButton{width:75px;height:75px;position:relative;background-color:#7a7a7a;cursor:pointer;border-radius:5px;margin:3px;border:2px solid rgba(0,0,0,0);padding:0}.og-layerSwitcher__layerButton.og-layerSwitcher__visible{border:2px solid #00ff14}.og-layerSwitcher__layerButton.og-layerSwitcher__visible img{opacity:1}.og-layerSwitcher__layerButton img{width:100%;height:100%;border-radius:5px;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;position:absolute;bottom:0;width:100%;border-bottom-left-radius:5px;border-bottom-right-radius:5px;max-height:25px}.displayNone{display:none}.displayBlock{display:block}.og-drawing-default_button{top:12px;right:166px}.og-drawing-default_button .og-button-icon{transform:scale(.73)}.og-drawing-polygon_button{top:12px;right:115px}.og-drawing-linestring_button{top:12px;right:66px}.og-ruler_button{top:65px;right:12px}.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_button{position:absolute;left:10px;top:120px}.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{bottom:153px;right:12px}.og-compass-button svg{width:40px!important;height:40px!important}.og-suncontrol-button{width:25px;height:25px;float:left;margin:3px}.og-lighting_button{position:absolute;left:10px;top:65px}.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-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_button{position:absolute;left:10px;top:230px}.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_button{position:absolute;top:10px;left:10px}.og-timeline-control_button{width:25px;height:20px;margin-left:3px;margin-right:3px;background:var(--grey7);border-radius:1px}.og-button svg,.og-button svg path{width:24px;height:24px}.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%}.og-timeline-current{position:absolute;left:0;width:11px;height:100%;margin-left:-5px;cursor:pointer;margin-top:-7px}.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;width:200px;gap: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:5px}.og-slider .og-slider-panel .og-slider-progress{position:absolute;height:100%;background-color:var(--grey7);pointer-events:none;border-top-left-radius:5px;border-bottom-left-radius:5px}.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:5px}.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-selection_button{top:117px;right:12px}.og-geoimagegrag_button{top:169px;right:12px}.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_button{top:175px;left:10px}.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: 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}