@openglobus/og 0.22.2 → 0.24.0

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 (205) hide show
  1. package/css/og.css +137 -1
  2. package/lib/@openglobus/js/Globe.d.ts +0 -1
  3. package/lib/@openglobus/js/Object3d.d.ts +20 -10
  4. package/lib/@openglobus/js/camera/Camera.d.ts +57 -15
  5. package/lib/@openglobus/js/camera/Frustum.d.ts +3 -0
  6. package/lib/@openglobus/js/camera/PlanetCamera.d.ts +13 -0
  7. package/lib/@openglobus/js/control/CameraLock.d.ts +38 -0
  8. package/lib/@openglobus/js/control/MouseNavigation.d.ts +62 -51
  9. package/lib/@openglobus/js/control/OldMouseNavigation.d.ts +64 -0
  10. package/lib/@openglobus/js/control/SimpleNavigation.d.ts +27 -10
  11. package/lib/@openglobus/js/control/geoObjectEditor/ArrowEntity.d.ts +15 -0
  12. package/lib/@openglobus/js/control/geoObjectEditor/AxisTrackEntity.d.ts +9 -0
  13. package/lib/@openglobus/js/control/geoObjectEditor/GeoObjectEditor.d.ts +13 -0
  14. package/lib/@openglobus/js/control/geoObjectEditor/GeoObjectEditorDialog.d.ts +69 -0
  15. package/lib/@openglobus/js/control/geoObjectEditor/GeoObjectEditorScene.d.ts +78 -9
  16. package/lib/@openglobus/js/control/geoObjectEditor/MoveAxisEntity.d.ts +17 -0
  17. package/lib/@openglobus/js/control/geoObjectEditor/MovePlaneEntity.d.ts +7 -0
  18. package/lib/@openglobus/js/control/geoObjectEditor/RotateEntity.d.ts +9 -0
  19. package/lib/@openglobus/js/control/geoObjectEditor/colors.d.ts +8 -0
  20. package/lib/@openglobus/js/control/index.d.ts +3 -2
  21. package/lib/@openglobus/js/entity/Entity.d.ts +282 -19
  22. package/lib/@openglobus/js/entity/EntityCollection.d.ts +8 -9
  23. package/lib/@openglobus/js/entity/GeoObject.d.ts +135 -39
  24. package/lib/@openglobus/js/entity/GeoObjectHandler.d.ts +39 -63
  25. package/lib/@openglobus/js/entity/InstanceData.d.ts +76 -0
  26. package/lib/@openglobus/js/entity/Polyline.d.ts +19 -6
  27. package/lib/@openglobus/js/entity/PolylineHandler.d.ts +7 -0
  28. package/lib/@openglobus/js/index.d.ts +2 -1
  29. package/lib/@openglobus/js/input/MouseHandler.d.ts +1 -0
  30. package/lib/@openglobus/js/layer/Vector.d.ts +4 -0
  31. package/lib/@openglobus/js/light/LightSource.d.ts +1 -139
  32. package/lib/@openglobus/js/math/Mat3.d.ts +1 -1
  33. package/lib/@openglobus/js/math/Mat4.d.ts +10 -1
  34. package/lib/@openglobus/js/math/Plane.d.ts +3 -1
  35. package/lib/@openglobus/js/math/Quat.d.ts +47 -33
  36. package/lib/@openglobus/js/math/Ray.d.ts +10 -14
  37. package/lib/@openglobus/js/math/Vec2.d.ts +22 -0
  38. package/lib/@openglobus/js/math/Vec3.d.ts +15 -0
  39. package/lib/@openglobus/js/math.d.ts +2 -2
  40. package/lib/@openglobus/js/quadTree/EntityCollectionNode.d.ts +2 -2
  41. package/lib/@openglobus/js/quadTree/Node.d.ts +1 -1
  42. package/lib/@openglobus/js/quadTree/earth/EarthEntityCollectionNodeLonLat.d.ts +1 -1
  43. package/lib/@openglobus/js/quadTree/equi/EquiEntityCollectionNodeLonLat.d.ts +1 -1
  44. package/lib/@openglobus/js/renderer/Renderer.d.ts +63 -44
  45. package/lib/@openglobus/js/renderer/RendererEvents.d.ts +2 -0
  46. package/lib/@openglobus/js/scene/Planet.d.ts +15 -7
  47. package/lib/@openglobus/js/scene/RenderNode.d.ts +10 -25
  48. package/lib/@openglobus/js/shaders/drawnode.d.ts +1 -0
  49. package/lib/@openglobus/js/shaders/geoObject.d.ts +1 -0
  50. package/lib/@openglobus/js/shaders/utils.d.ts +1 -1
  51. package/lib/@openglobus/js/ui/Checkbox.d.ts +31 -0
  52. package/lib/@openglobus/js/ui/Dialog.d.ts +3 -0
  53. package/lib/@openglobus/js/ui/Input.d.ts +32 -0
  54. package/lib/@openglobus/js/ui/View.d.ts +3 -1
  55. package/lib/@openglobus/js/utils/objParser.d.ts +44 -12
  56. package/lib/@openglobus/js/utils/shared.d.ts +22 -0
  57. package/lib/@openglobus/js/webgl/BaseFramebuffer.d.ts +0 -1
  58. package/lib/@openglobus/js/webgl/Framebuffer.d.ts +35 -8
  59. package/lib/@openglobus/js/webgl/Handler.d.ts +22 -12
  60. package/lib/@openglobus/og.css +1 -1
  61. package/lib/@openglobus/og.esm.js +1 -1
  62. package/lib/@openglobus/og.esm.js.map +1 -1
  63. package/lib/@openglobus/og.umd.js +1 -1
  64. package/lib/@openglobus/og.umd.js.map +1 -1
  65. package/lib/js/Globe.d.ts +0 -1
  66. package/lib/js/Globe.js +4 -2
  67. package/lib/js/Object3d.d.ts +20 -10
  68. package/lib/js/Object3d.js +124 -48
  69. package/lib/js/Popup.js +1 -1
  70. package/lib/js/camera/Camera.d.ts +57 -15
  71. package/lib/js/camera/Camera.js +109 -29
  72. package/lib/js/camera/Frustum.d.ts +3 -0
  73. package/lib/js/camera/Frustum.js +7 -0
  74. package/lib/js/camera/PlanetCamera.d.ts +13 -0
  75. package/lib/js/camera/PlanetCamera.js +52 -5
  76. package/lib/js/control/Atmosphere.js +10 -6
  77. package/lib/js/control/CameraLock.d.ts +38 -0
  78. package/lib/js/control/CameraLock.js +216 -0
  79. package/lib/js/control/Control.js +1 -1
  80. package/lib/js/control/DebugInfo.js +38 -8
  81. package/lib/js/control/KeyboardNavigation.js +9 -9
  82. package/lib/js/control/MouseNavigation.d.ts +62 -51
  83. package/lib/js/control/MouseNavigation.js +361 -305
  84. package/lib/js/control/MouseWheelZoomControl.d.ts +0 -44
  85. package/lib/js/control/MouseWheelZoomControl.js +270 -181
  86. package/lib/js/control/OldMouseNavigation.d.ts +64 -0
  87. package/lib/js/control/OldMouseNavigation.js +368 -0
  88. package/lib/js/control/ScaleControl.js +11 -5
  89. package/lib/js/control/SimpleNavigation.d.ts +27 -10
  90. package/lib/js/control/SimpleNavigation.js +149 -49
  91. package/lib/js/control/Sun.js +6 -6
  92. package/lib/js/control/TouchNavigation.js +11 -8
  93. package/lib/js/control/elevationProfile/ElevationProfileScene.js +6 -5
  94. package/lib/js/control/geoObjectEditor/ArrowEntity.d.ts +15 -0
  95. package/lib/js/control/geoObjectEditor/ArrowEntity.js +59 -0
  96. package/lib/js/control/geoObjectEditor/AxisTrackEntity.d.ts +9 -0
  97. package/lib/js/control/geoObjectEditor/AxisTrackEntity.js +93 -0
  98. package/lib/js/control/geoObjectEditor/GeoObjectEditor.d.ts +13 -0
  99. package/lib/js/control/geoObjectEditor/GeoObjectEditor.js +30 -0
  100. package/lib/js/control/geoObjectEditor/GeoObjectEditorDialog.d.ts +69 -0
  101. package/lib/js/control/geoObjectEditor/GeoObjectEditorDialog.js +488 -0
  102. package/lib/js/control/geoObjectEditor/GeoObjectEditorScene.d.ts +78 -9
  103. package/lib/js/control/geoObjectEditor/GeoObjectEditorScene.js +487 -43
  104. package/lib/js/control/geoObjectEditor/MoveAxisEntity.d.ts +17 -0
  105. package/lib/js/control/geoObjectEditor/MoveAxisEntity.js +107 -0
  106. package/lib/js/control/geoObjectEditor/MovePlaneEntity.d.ts +7 -0
  107. package/lib/js/control/geoObjectEditor/MovePlaneEntity.js +31 -0
  108. package/lib/js/control/geoObjectEditor/RotateEntity.d.ts +9 -0
  109. package/lib/js/control/geoObjectEditor/RotateEntity.js +105 -0
  110. package/lib/js/control/geoObjectEditor/colors.d.ts +8 -0
  111. package/lib/js/control/geoObjectEditor/colors.js +8 -0
  112. package/lib/js/control/index.d.ts +3 -2
  113. package/lib/js/control/index.js +3 -2
  114. package/lib/js/control/timeline/TimelineControl.js +2 -0
  115. package/lib/js/control/visibleExtent/Segment.js +4 -4
  116. package/lib/js/entity/Entity.d.ts +282 -19
  117. package/lib/js/entity/Entity.js +497 -62
  118. package/lib/js/entity/EntityCollection.d.ts +8 -9
  119. package/lib/js/entity/EntityCollection.js +48 -45
  120. package/lib/js/entity/GeoObject.d.ts +135 -39
  121. package/lib/js/entity/GeoObject.js +150 -90
  122. package/lib/js/entity/GeoObjectHandler.d.ts +39 -63
  123. package/lib/js/entity/GeoObjectHandler.js +198 -295
  124. package/lib/js/entity/InstanceData.d.ts +76 -0
  125. package/lib/js/entity/InstanceData.js +347 -0
  126. package/lib/js/entity/Polyline.d.ts +19 -6
  127. package/lib/js/entity/Polyline.js +76 -36
  128. package/lib/js/entity/PolylineHandler.d.ts +7 -0
  129. package/lib/js/entity/PolylineHandler.js +26 -1
  130. package/lib/js/index.d.ts +2 -1
  131. package/lib/js/index.js +2 -1
  132. package/lib/js/input/MouseHandler.d.ts +1 -0
  133. package/lib/js/input/MouseHandler.js +12 -1
  134. package/lib/js/layer/Bing.js +2 -2
  135. package/lib/js/layer/Vector.d.ts +4 -0
  136. package/lib/js/layer/Vector.js +16 -0
  137. package/lib/js/light/LightSource.d.ts +1 -139
  138. package/lib/js/light/LightSource.js +21 -227
  139. package/lib/js/math/Mat3.d.ts +1 -1
  140. package/lib/js/math/Mat3.js +1 -1
  141. package/lib/js/math/Mat4.d.ts +10 -1
  142. package/lib/js/math/Mat4.js +17 -1
  143. package/lib/js/math/Plane.d.ts +3 -1
  144. package/lib/js/math/Plane.js +11 -1
  145. package/lib/js/math/Quat.d.ts +47 -33
  146. package/lib/js/math/Quat.js +92 -90
  147. package/lib/js/math/Ray.d.ts +10 -14
  148. package/lib/js/math/Ray.js +56 -33
  149. package/lib/js/math/Vec2.d.ts +22 -0
  150. package/lib/js/math/Vec2.js +32 -0
  151. package/lib/js/math/Vec3.d.ts +15 -0
  152. package/lib/js/math/Vec3.js +30 -1
  153. package/lib/js/math.d.ts +2 -2
  154. package/lib/js/math.js +3 -3
  155. package/lib/js/quadTree/EntityCollectionNode.d.ts +2 -2
  156. package/lib/js/quadTree/EntityCollectionNode.js +8 -8
  157. package/lib/js/quadTree/Node.d.ts +1 -1
  158. package/lib/js/quadTree/Node.js +2 -2
  159. package/lib/js/quadTree/QuadTreeStrategy.js +1 -1
  160. package/lib/js/quadTree/earth/EarthEntityCollectionNodeLonLat.d.ts +1 -1
  161. package/lib/js/quadTree/earth/EarthEntityCollectionNodeLonLat.js +2 -2
  162. package/lib/js/quadTree/equi/EquiEntityCollectionNodeLonLat.d.ts +1 -1
  163. package/lib/js/quadTree/equi/EquiEntityCollectionNodeLonLat.js +2 -2
  164. package/lib/js/renderer/Renderer.d.ts +63 -44
  165. package/lib/js/renderer/Renderer.js +267 -266
  166. package/lib/js/renderer/RendererEvents.d.ts +2 -0
  167. package/lib/js/renderer/RendererEvents.js +5 -2
  168. package/lib/js/scene/Planet.d.ts +15 -7
  169. package/lib/js/scene/Planet.js +133 -90
  170. package/lib/js/scene/RenderNode.d.ts +10 -25
  171. package/lib/js/scene/RenderNode.js +70 -58
  172. package/lib/js/segment/Segment.js +4 -4
  173. package/lib/js/shaders/depth.js +2 -5
  174. package/lib/js/shaders/drawnode.d.ts +1 -0
  175. package/lib/js/shaders/drawnode.js +51 -52
  176. package/lib/js/shaders/geoObject.d.ts +1 -0
  177. package/lib/js/shaders/geoObject.js +154 -91
  178. package/lib/js/shaders/polyline.js +68 -51
  179. package/lib/js/shaders/utils.d.ts +1 -1
  180. package/lib/js/shaders/utils.js +11 -0
  181. package/lib/js/terrain/GlobusTerrain.js +2 -2
  182. package/lib/js/ui/Checkbox.d.ts +31 -0
  183. package/lib/js/ui/Checkbox.js +110 -0
  184. package/lib/js/ui/Color.js +2 -1
  185. package/lib/js/ui/Dialog.d.ts +3 -0
  186. package/lib/js/ui/Dialog.js +20 -0
  187. package/lib/js/ui/Input.d.ts +32 -0
  188. package/lib/js/ui/Input.js +107 -0
  189. package/lib/js/ui/View.d.ts +3 -1
  190. package/lib/js/ui/View.js +6 -0
  191. package/lib/js/utils/objParser.d.ts +44 -12
  192. package/lib/js/utils/objParser.js +241 -149
  193. package/lib/js/utils/shared.d.ts +22 -0
  194. package/lib/js/utils/shared.js +34 -0
  195. package/lib/js/webgl/BaseFramebuffer.d.ts +0 -1
  196. package/lib/js/webgl/Framebuffer.d.ts +35 -8
  197. package/lib/js/webgl/Framebuffer.js +136 -29
  198. package/lib/js/webgl/Handler.d.ts +22 -12
  199. package/lib/js/webgl/Handler.js +53 -34
  200. package/lib/js/webgl/Program.js +0 -8
  201. package/package.json +5 -3
  202. package/lib/@openglobus/js/control/EarthNavigation.d.ts +0 -50
  203. package/lib/@openglobus/js/control/MouseWheelZoomControl.d.ts +0 -44
  204. package/lib/js/control/EarthNavigation.d.ts +0 -50
  205. package/lib/js/control/EarthNavigation.js +0 -202
@@ -1,13 +1,37 @@
1
1
  import { BaseFramebuffer, IBaseFramebufferParams } from "./BaseFramebuffer";
2
2
  import { Handler } from "./Handler";
3
+ import { TypedArray } from "../utils/shared";
4
+ export interface ITargetParams {
5
+ internalFormat?: string;
6
+ format?: string;
7
+ type?: string;
8
+ attachment?: string;
9
+ filter?: string;
10
+ readAsync?: boolean;
11
+ }
3
12
  export interface IFrameBufferParams extends IBaseFramebufferParams {
4
13
  isBare?: boolean;
5
- format?: string | string[];
6
- type?: string | string[];
7
- attachment?: string | string[];
8
14
  renderbufferTarget?: string;
9
15
  textures?: WebGLTexture[];
16
+ targets?: ITargetParams[];
17
+ }
18
+ type TypedArrayConstructor = Uint8ArrayConstructor | Float32ArrayConstructor;
19
+ interface ITarget {
20
+ internalFormat: string;
21
+ format: string;
22
+ type: string;
23
+ attachment: string;
24
+ filter: string;
25
+ pixelBufferIndex: number;
26
+ TypeArrayConstructor: TypedArrayConstructor;
27
+ }
28
+ interface IPixelBuffer {
29
+ buffer: WebGLBuffer | null;
30
+ data: TypedArray | null;
31
+ glType: number;
32
+ glAttachment: number;
10
33
  }
34
+ export declare function clientWaitAsync(gl: WebGL2RenderingContext, sync: WebGLSync, flags: number): Promise<void>;
11
35
  /**
12
36
  * Class represents framebuffer.
13
37
  * @class
@@ -15,19 +39,18 @@ export interface IFrameBufferParams extends IBaseFramebufferParams {
15
39
  * @param {IFrameBufferParams} [options] - Framebuffer options:
16
40
  */
17
41
  export declare class Framebuffer extends BaseFramebuffer {
18
- protected _isBare: boolean;
19
- protected _internalFormatArr: string[];
20
- protected _formatArr: string[];
21
- protected _typeArr: string[];
22
- protected _attachmentArr: string[];
23
42
  protected _renderbufferTarget: string;
43
+ protected _targets: ITarget[];
24
44
  /**
25
45
  * Framebuffer texture.
26
46
  * @public
27
47
  * @type {number}
28
48
  */
29
49
  textures: WebGLTexture[];
50
+ pixelBuffers: IPixelBuffer[];
51
+ protected _skipFrame: boolean;
30
52
  constructor(handler: Handler, options?: IFrameBufferParams);
53
+ static createTargets(targets?: ITargetParams[]): ITarget[];
31
54
  destroy(): void;
32
55
  /**
33
56
  * Framebuffer initialization.
@@ -35,6 +58,9 @@ export declare class Framebuffer extends BaseFramebuffer {
35
58
  * @override
36
59
  */
37
60
  init(): void;
61
+ readPixelBuffersAsync: () => void;
62
+ getPixelBufferData(targetIndex: number): TypedArray | null;
63
+ protected _createPixelBuffer(target: ITarget): void;
38
64
  /**
39
65
  * Bind buffer texture.
40
66
  * @public
@@ -67,3 +93,4 @@ export declare class Framebuffer extends BaseFramebuffer {
67
93
  */
68
94
  getImage(): HTMLImageElement;
69
95
  }
96
+ export {};
@@ -17,7 +17,7 @@ export type WebGLTextureExt = {
17
17
  default?: boolean;
18
18
  } & WebGLTexture;
19
19
  export type ImageSource = HTMLCanvasElement | ImageBitmap | ImageData | HTMLImageElement | HTMLVideoElement;
20
- type CreateTextureFunc = (image: ImageSource, internalFormat?: number, texture?: WebGLTextureExt) => WebGLTextureExt | null;
20
+ type CreateTextureFunc = (image: ImageSource, internalFormat?: number | null, texParami?: number | null, texture?: WebGLTextureExt) => WebGLTextureExt | null;
21
21
  export interface IHandlerParameters {
22
22
  anisotropy?: number;
23
23
  width?: number;
@@ -82,6 +82,7 @@ declare class Handler {
82
82
  * @type {number}
83
83
  */
84
84
  deltaTime: number;
85
+ prevDeltaTime: number;
85
86
  /**
86
87
  * WebGL rendering canvas element.
87
88
  * @public
@@ -196,7 +197,7 @@ declare class Handler {
196
197
  * @param {number} [level=0] - Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
197
198
  * @returns {WebGLTexture | null} - WebGL texture object.
198
199
  */
199
- createEmptyTexture2DExt(width?: number, height?: number, filter?: string, internalFormat?: string, format?: string, type?: string, level?: number): WebGLTexture | null;
200
+ createEmptyTexture2DExt(width?: number, height?: number, filter?: string, internalFormat?: string, format?: string, type?: string, param?: string, level?: number): WebGLTexture | null;
200
201
  /**
201
202
  * Creates Empty NEAREST filtered texture.
202
203
  * @public
@@ -205,88 +206,97 @@ declare class Handler {
205
206
  * @param {number} [internalFormat]
206
207
  * @returns {WebGLTexture | null} - WebGL texture object.
207
208
  */
208
- createEmptyTexture_n(width: number, height: number, internalFormat?: number): WebGLTexture | null;
209
+ createEmptyTexture_n(width: number, height: number, internalFormat?: number | null, texParami?: number | null): WebGLTexture | null;
209
210
  /**
210
211
  * Creates empty LINEAR filtered texture.
211
212
  * @public
212
213
  * @param {number} width - Empty texture width.
213
214
  * @param {number} height - Empty texture height.
214
215
  * @param {number} [internalFormat]
216
+ * @param {number} [texParami]
215
217
  * @returns {WebGLTexture | null} - WebGL texture object.
216
218
  */
217
- createEmptyTexture_l(width: number, height: number, internalFormat?: number): WebGLTexture | null;
219
+ createEmptyTexture_l(width: number, height: number, internalFormat?: number | null, texParami?: number | null): WebGLTexture | null;
218
220
  /**
219
221
  * Creates NEAREST filter texture.
220
222
  * @public
221
223
  * @param {HTMLCanvasElement | Image} image - Image or Canvas object.
222
224
  * @param {number} [internalFormat]
225
+ * @param {number} [texParami]
223
226
  * @param {WebGLTexture | null} [texture=null]
224
227
  * @returns {WebGLTexture | null} - WebGL texture object.
225
228
  */
226
- createTexture_n_webgl1(image: ImageSource, internalFormat?: number, texture?: WebGLTexture | null): WebGLTexture | null;
229
+ createTexture_n_webgl1(image: ImageSource, internalFormat?: number | null, texParami?: number | null, texture?: WebGLTexture | null): WebGLTexture | null;
227
230
  /**
228
231
  * Creates LINEAR filter texture.
229
232
  * @public
230
233
  * @param {ImageSource} image - Image or Canvas object.
231
234
  * @param {number} [internalFormat]
235
+ * @param {number} [texParami]
232
236
  * @param {WebGLTexture | null} [texture]
233
237
  * @returns {WebGLTexture | null} - WebGL texture object.
234
238
  */
235
- createTexture_l_webgl1(image: ImageSource, internalFormat?: number, texture?: WebGLTexture | null): WebGLTexture | null;
239
+ createTexture_l_webgl1(image: ImageSource, internalFormat?: number | null, texParami?: number | null, texture?: WebGLTexture | null): WebGLTexture | null;
236
240
  /**
237
241
  * Creates MIPMAP filter texture.
238
242
  * @public
239
243
  * @param {ImageSource} image - Image or Canvas object.
240
244
  * @param {number} [internalFormat]
245
+ * @param {number} [texParami]
241
246
  * @param {WebGLTexture | null} [texture]
242
247
  * @returns {WebGLTexture | null} - WebGL texture object.
243
248
  */
244
- createTexture_mm_webgl1(image: ImageSource, internalFormat?: number, texture?: WebGLTexture | null): WebGLTexture | null;
249
+ createTexture_mm_webgl1(image: ImageSource, internalFormat?: number | null, texParami?: number | null, texture?: WebGLTexture | null): WebGLTexture | null;
245
250
  /**
246
251
  * Creates ANISOTROPY filter texture.
247
252
  * @public
248
253
  * @param {ImageSource} image - Image or Canvas object.
249
254
  * @param {number} [internalFormat]
255
+ * @param {number} [texParami]
250
256
  * @param {WebGLTexture | null} [texture]
251
257
  * @returns {WebGLTexture | null} - WebGL texture object.
252
258
  */
253
- createTexture_a_webgl1(image: ImageSource, internalFormat?: number, texture?: WebGLTexture | null): WebGLTexture | null;
259
+ createTexture_a_webgl1(image: ImageSource, internalFormat?: number | null, texParami?: number | null, texture?: WebGLTexture | null): WebGLTexture | null;
254
260
  /**
255
261
  * Creates NEAREST filter texture.
256
262
  * @public
257
263
  * @param {ImageSource} image - Image or Canvas object.
258
264
  * @param {number} [internalFormat]
265
+ * @param {number} [texParami]
259
266
  * @param {WebGLTexture | null} [texture]
260
267
  * @returns {WebGLTexture | null} - WebGL texture object.
261
268
  */
262
- createTexture_n_webgl2(image: ImageSource, internalFormat?: number, texture?: WebGLTexture | null): WebGLTexture | null;
269
+ createTexture_n_webgl2(image: ImageSource, internalFormat?: number | null, texParami?: number | null, texture?: WebGLTexture | null): WebGLTexture | null;
263
270
  /**
264
271
  * Creates LINEAR filter texture.
265
272
  * @public
266
273
  * @param {ImageSource} image - Image or Canvas object.
267
274
  * @param {number} [internalFormat]
275
+ * @param {number} [texParami]
268
276
  * @param {WebGLTexture | null} [texture]
269
277
  * @returns {WebGLTexture | null} - WebGL texture object.
270
278
  */
271
- createTexture_l_webgl2(image: ImageSource, internalFormat?: number, texture?: WebGLTexture | null): WebGLTexture | null;
279
+ createTexture_l_webgl2(image: ImageSource, internalFormat?: number | null, texParami?: number | null, texture?: WebGLTexture | null): WebGLTexture | null;
272
280
  /**
273
281
  * Creates MIPMAP filter texture.
274
282
  * @public
275
283
  * @param {ImageSource} image - Image or Canvas object.
276
284
  * @param {number} [internalFormat]
285
+ * @param {number} [texParami]
277
286
  * @param {WebGLTexture | null} [texture]
278
287
  * @returns {WebGLTexture | null} - WebGL texture object.
279
288
  */
280
- createTexture_mm_webgl2(image: ImageSource, internalFormat?: number, texture?: WebGLTexture | null): WebGLTexture | null;
289
+ createTexture_mm_webgl2(image: ImageSource, internalFormat?: number | null, texParami?: number | null, texture?: WebGLTexture | null): WebGLTexture | null;
281
290
  /**
282
291
  * Creates ANISOTROPY filter texture.
283
292
  * @public
284
293
  * @param {ImageSource} image - Image or Canvas object.
285
294
  * @param {number} [internalFormat]
295
+ * @param {number} [texParami]
286
296
  * @param {WebGLTexture | null} [texture]
287
297
  * @returns {WebGLTexture | null} - WebGL texture object.
288
298
  */
289
- createTexture_a_webgl2(image: ImageSource, internalFormat?: number, texture?: WebGLTexture | null): WebGLTexture | null;
299
+ createTexture_a_webgl2(image: ImageSource, internalFormat?: number | null, texParami?: number | null, texture?: WebGLTexture | null): WebGLTexture | null;
290
300
  /**
291
301
  * Creates cube texture.
292
302
  * @public
@@ -1 +1 @@
1
- :root{--grey0:#2d2d2d;--grey1:#434244;--grey2:#3f3f46;--grey3:#bbb;--grey4:#5e5e5e;--grey5:#403b3b;--grey6:#bfbfbf;--grey7:#707070;--grey8:#e2e2e2;--blue0:#1700a9ee}.og-map-button{background-color:var(--grey5);cursor:pointer;height:40px;outline:none;position:absolute;width:40px;z-index:1}.ogCenterIcon{bottom:50%;height:12px;margin-bottom:-3.5px;margin-right:-7.5px;position:absolute;right:50%;width:12px}.ogHandPoiner{cursor:pointer}.defaultText{color:#fff;left:0;position:absolute;top:0}#ogShowFpsControl{color:red}.ogGrabbingPoiner{cursor:grabbing!important}.og-inner{background-color:#000;float:left;height:100%;overflow:hidden;position:relative;-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none;width:100%}.og-attribution{background:#cecece;bottom:0;display:flex;flex-direction:row;font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:.7rem;line-height:1.375em;padding:1px 0;position:absolute;right:0;text-align:right}.og-attribution .og-attribution__layer{align-items:center;display:inline;margin-left:5px;margin-right:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.og-attribution img{max-height:1.3em}.og-zoomin-button{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important;bottom:102px;right:12px}.og-zoomout-button{border-top-left-radius:0!important;border-top-right-radius:0!important;bottom:58px;right:12px}input{accent-color:var(--blue0);cursor:pointer}.og-menu-bar-vertical{background-color:rgba(64,59,59,.85);border-radius:2px;box-shadow:0 1px 4px hsla(0,0%,6%,.17);height:40px;position:absolute;right:12px;top:12px;width:40px;z-index:0}.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{align-items:center;display:inline-block;flex-direction:row;justify-content:left;padding-bottom:7px;position:relative;text-overflow:ellipsis;width:100%}.og-option .og-slider{width:100%}.og-option .og-color-label,.og-option .og-slider .og-slider-label{font-size:12px;width:100px}.og-ddialog{background-color:var(--grey0);border:1px solid;border-color:var(--grey1);border-radius:4px;box-shadow:3px 3px 4px hsla(0,0%,6%,.17);display:flex;flex-direction:column;overflow:auto;position:absolute}.og-ddialog .og-ddialog-header{align-items:center;background-color:var(--grey2);color:#fff;display:flex;flex-direction:row;height:27px;justify-content:space-between;padding:0;position:relative;width:100%;z-index:1}.og-ddialog .og-ddialog-header .og-ddialog-header__title{color:var(--grey3);font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:14px;font-weight:400;padding-left:5px;pointer-events:none}.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{font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:14px;height:100%;overflow:auto;position:relative;width:100%}.og-ddialog.dragging{user-select:none}.og-button{align-content:center;align-items:center;border-radius:4px;color:var(--grey6);cursor:default;display:flex;flex-direction:row;justify-content:center;padding:2px}.og-button svg,.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_button{right:12px;top:12px}.og-layerSwitcher{color:#b6b6b6;height:100%;overflow-x:hidden;overflow-y:auto;position:relative;width:100%}.og-layerSwitcher__title{color:#b6b6b6;font-size:14px;padding:5px;position:relative;width:100%}.og-layerSwitcher__list{display:inline-block;flex-direction:column;padding:2px;position:relative;width:100%}.og-layerSwitcher__layerButton{background-color:#7a7a7a;border:2px solid transparent;border-radius:5px;cursor:pointer;height:75px;margin:3px;padding:0;position:relative;width:75px}.og-layerSwitcher__layerButton.og-layerSwitcher__visible{border:2px solid #00ff14}.og-layerSwitcher__layerButton.og-layerSwitcher__visible img{opacity:1}.og-layerSwitcher__layerButton img{border-radius:5px;height:100%;left:0;opacity:1;position:absolute;top:0;width:100%}.og-layerSwitcher__layerButton img:hover{opacity:1}.og-layerSwitcher__name{background-color:rgba(0,0,0,.5);border-bottom-left-radius:5px;border-bottom-right-radius:5px;bottom:0;color:var(--grey8);font-size:12px;max-height:25px;overflow:hidden;padding:3px;position:absolute;text-overflow:ellipsis;width:calc(100% - 6px)}.displayNone{display:none}.displayBlock{display:block}.og-drawing-default_button{right:166px;top:12px}.og-drawing-default_button .og-button-icon{transform:scale(.73)}.og-drawing-polygon_button{right:115px;top:12px}.og-drawing-linestring_button{right:66px;top:12px}.og-ruler_button{right:12px;top:65px}.ogConsole{background-color:hsla(0,0%,51%,.49);color:#fff;font-family:Arial;font-size:14px;left:0;max-height:70%;overflow:auto;pointer-events:none;position:absolute;top:0;width:100%;z-index:100000000}.ogConsole-text{overflow:hidden;padding:7px}.ogConsole-error{color:red}.ogConsole-warning{color:#ff0}.ogViewExtentBtn{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;cursor:pointer;height:24px;margin-left:12px;scale:70%;width:24px}.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==) 50% no-repeat,var(--blue0);border-radius:10px}.og-debuginfo_button{left:10px;position:absolute;top:120px}.og-debuginfo_controls{display:flex;padding-bottom:8px}.og-debuginfo_controls-button{float:left;height:25px;margin:3px;width:25px}.og-debug-info{color:#fff;font-size:12px;padding:10px}.og-debug-info .og-watch-line{display:flex;flex-direction:row;padding-bottom:5px;width:100%}.og-watch-line .og-watch-label{color:#cecece;width:200px}.og-watch-line .og-watch-value{margin-left:15px}.og-popup{bottom:-2px;position:absolute;text-align:center}.og-popup-content-wrapper,.og-popup-tip{background:#fff;box-shadow:0 3px 14px rgba(0,0,0,.4);color:#333}.og-popup-content-wrapper{border-radius:8px;min-height:17px;min-width:30px;padding:1px;text-align:left}.og-popup-content{line-height:1.4;margin:20px 5px 5px}.og-popup-tip-container{bottom:-19px;height:20px;left:50%;margin-left:-20px;overflow:hidden;pointer-events:none;position:absolute;width:40px}.og-popup-tip{height:17px;margin:-10px auto 0;padding:1px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);width:17px}.og-popup-toolbar{display:inline-block;position:absolute;right:2px;top:3px}.og-popup-btn{cursor:pointer;float:right;height:15px;width:15px}.og-popup-btn:hover{color:#2e9be7}.og-popup-title{font-size:14px;left:5px;position:absolute;top:3px}.og-scale-container{bottom:30px;position:absolute;right:320px}.og-scale-label{color:#fff;font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:12px;position:relative;text-align:center}.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{bottom:153px;right:12px}.og-compass-button svg{height:40px!important;width:40px!important}.og-suncontrol-button{float:left;height:25px;margin:3px;width:25px}.og-lighting_button{left:10px;position:absolute;top:65px}.og-lighing{color:#b6b6b6;height:calc(100% - 30px);padding:12px;position:relative}.og-lighing .og-layers{align-items:center;display:flex;flex-direction:row}.og-lighing .og-caption{position:relative}.og-emptyline,.og-lighing .og-lighting-emptyline{padding:3px;width:100%}.og-emptyline-2{padding:5px;width:100%}.og-lighing .og-slider{width:100%}.og-lighing .og-color-label,.og-lighing .og-slider .og-slider-label{font-size:12px;width:100px}.og-lighing .og-color{padding-right:10px}.og-lighing #layers{font-family:monospace;margin-left:21px;padding:2px;width:200px}.og-coordinates{background-color:var(--grey5);border-radius:4px;bottom:25px;color:var(--grey8);cursor:pointer;float:left;font-family:monospace;font-size:1em;overflow:hidden;padding:5px;position:absolute;right:12px;text-align:right}.og-coordinates div{float:left}.og-lat-side,.og-lon-side{padding-right:3px;width:10px}.og-lat-val,.og-lon-val{overflow:hidden;padding-right:3px;text-align:left;text-overflow:unset;width:90px}.og-height{overflow:hidden;padding-left:3px;text-align:right;text-overflow:ellipsis;width:50px}.og-units-height{padding-left:3px;text-align:left;width:15px}.og-center-icon{bottom:50%;height:12px;margin-bottom:-3.5px;margin-right:-7.5px;pointer-events:none;position:absolute;right:50%;width:12px}.og-atmosphere_button{left:10px;position:absolute;top:230px}.og-atmosphere.og-options-container .og-slider-label{height:20px;overflow:hidden;width:300px}.og-atmosphere.og-options-container .og-slider input{width:87px}.og-timeline_button{left:10px;position:absolute;top:10px}.og-timeline-control_button{background:var(--grey7);border-radius:1px;height:20px;margin-left:3px;margin-right:3px;width:25px}.og-button svg,.og-button svg path{height:24px;width:24px}.og-timeline-control_button.og-button__active{background:var(--grey3)}.og-timeline{background:#2d2d2d;bottom:0;height:100%;left:0;overflow:hidden;position:relative;width:100%}.og-timeline-frame{height:30px;margin:0 0 0 10px;position:relative;width:calc(100% - 20px)}.og-timeline-scale{height:100%;overflow:hidden;width:100%}.og-timeline-current{cursor:pointer;height:100%;left:0;margin-left:-5px;margin-top:-7px;position:absolute;width:11px}.og-timeline-current-spin{background-color:#ff3434;height:100%;margin:0 auto;pointer-events:none;width:1px}.og-timeline-current-arrow{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #ff3434;height:0;margin-left:-6px;width:0}.og-timeline-bottom{margin-top:3px;width:100%}.og-timeline-bottom,.og-timeline-controls{display:flex;justify-content:center;position:relative}.og-timeline-controls{align-items:center;border-radius:10px;flex-direction:row;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{display:block;height:15px;width:100%}.og-slider{display:flex;flex-direction:row;width:200px}.og-slider .og-slider-label{align-items:center;color:var(--grey6);display:flex;font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:14px;height:100%;margin-right:5px;text-align:left;width:100%}.og-slider .og-slider-panel{background-color:var(--grey1);height:20px;position:relative;width:100%;z-index:1}.og-slider .og-slider-panel .og-slider-progress{background-color:var(--grey7);height:100%;pointer-events:none;position:absolute}.og-slider .og-slider-panel .og-slider-pointer{background-color:var(--grey3);height:100%;left:0;pointer-events:none;position:absolute;top:0;width:3px}.og-slider input{background:var(--grey5);border:1px solid var(--grey1);color:var(--grey3);height:100%;padding-left:5px;position:relative;width:100%;width:60px;z-index:0}.og-slider input:focus-visible{outline:none}.og-slider input::-webkit-inner-spin-button,.og-slider input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.og-slider input[type=number]{-moz-appearance:textfield}.og-selection_button{right:12px;top:117px}.og-geoimagegrag_button{right:12px;top:169px}.og-elevationprofile{height:100%;overflow:hidden;position:absolute;width:100%}.og-elevationprofile__container{align-content:center;align-items:center;display:flex;flex-direction:column;height:100%;position:relative;width:100%}.og-elevationprofile__menu{height:43px;position:relative;width:100%}.og-elevationprofile__graph{height:100%;position:relative;width:100%}.og-elevationprofile_button{left:10px;top:175px}.og-elevationprofile-legend{color:var(--grey8);display:flex;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:12px;margin:5px;position:absolute;right:0;top:0;z-index:1}.og-elevationprofile-legend__row{padding:5px;position:relative;width:70px}.og-elevationprofile-square{float:left;height:6px;margin:5px;position:relative;width:6px}.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;float:left;padding-left:5px;position:relative}.og-elevationprofile-value{display:inline-block;float:left;overflow:hidden;position:relative;text-align:right;text-overflow:ellipsis;white-space:nowrap;width:30px}.og-elevationprofile-buttons{display:inline-block;left:0;position:absolute;top:0}.og-elevationprofile-button{float:left;height:25px;margin:3px;width:25px}.og-elevationprofile-list{display:flex;flex-direction:column;height:100%;position:relative;width:100%}.og-elevationprofile-list textarea{background:var(--grey8);height:100%;padding:5px;position:relative;resize:none;width:100%}.og-elevationprofile-list-buttons{align-items:center;display:flex;flex-direction:row;height:60px;justify-content:right;position:relative}.og-elevationprofile-list-apply{background-color:var(--grey2);float:right;margin-right:15px;padding:4px 10px 7px}.og-elevationprofile_pointer{height:100%;left:0;position:absolute;top:0}.og-elevationprofile-line{background-color:#fff;height:30px;margin-left:-1.5px;position:absolute;width:3px}.og-elevationprofile-label{color:#fff;left:0;position:absolute;top:0}.og-elevationprofile-button__location svg{height:17px;width:17px}.og-elevationprofile-loading{align-items:center;background-color:#000;display:flex;flex-direction:row;height:100%;justify-content:center;opacity:.3;position:absolute;width:100%;z-index:2}.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{animation:ldio-p0v5a1f6oz .9345794392523364s cubic-bezier(.5,0,.5,1) infinite;height:40px;position:absolute;top:30px;width:11px}.ldio-p0v5a1f6oz div:first-child{animation-delay:-.5607476635514018s;background:#353535;transform:translate(14.5px)}.ldio-p0v5a1f6oz div:nth-child(2){animation-delay:-.37383177570093457s;background:#666;transform:translate(34.5px)}.ldio-p0v5a1f6oz div:nth-child(3){animation-delay:-.18691588785046728s;background:#9b9b9b;transform:translate(54.5px)}.ldio-p0v5a1f6oz div:nth-child(4){animation-delay:-.9345794392523364s;background:#d4d4d4;transform:translate(74.5px)}.loadingio-spinner-bars-r354qqyl5v{background:none;display:inline-block;height:88px;overflow:hidden;width:88px}.ldio-p0v5a1f6oz{backface-visibility:hidden;height:100%;position:relative;transform:translateZ(0) scale(.88);transform-origin:0 0;width:100%}.ldio-p0v5a1f6oz div{box-sizing:content-box}
1
+ :root{--grey0:#2d2d2d;--grey1:#434244;--grey2:#3f3f46;--grey3:#bbb;--grey4:#5e5e5e;--grey5:#403b3b;--grey6:#bfbfbf;--grey7:#707070;--grey8:#e2e2e2;--grey9:#9f9f9f;--blue0:#1700a9ee}.og-map-button{background-color:var(--grey5);cursor:pointer;height:40px;outline:none;position:absolute;width:40px;z-index:1}.ogCenterIcon{bottom:50%;height:12px;margin-bottom:-3.5px;margin-right:-7.5px;position:absolute;right:50%;width:12px}.ogHandPoiner{cursor:pointer}.defaultText{color:#fff;left:0;position:absolute;top:0}#ogShowFpsControl{color:red}.ogGrabbingPoiner{cursor:grabbing!important}.og-inner{background-color:#000;float:left;height:100%;overflow:hidden;position:relative;-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none;width:100%}.og-attribution{background:#cecece;bottom:0;display:flex;flex-direction:row;font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:.7rem;line-height:1.375em;padding:1px 0;position:absolute;right:0;text-align:right}.og-attribution .og-attribution__layer{align-items:center;display:inline;margin-left:5px;margin-right:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.og-attribution img{max-height:1.3em}.og-zoomin-button{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important;bottom:102px;right:12px}.og-zoomout-button{border-top-left-radius:0!important;border-top-right-radius:0!important;bottom:58px;right:12px}input{accent-color:var(--blue0);cursor:pointer}.og-menu-bar-vertical{background-color:rgba(64,59,59,.85);border-radius:2px;box-shadow:0 1px 4px hsla(0,0%,6%,.17);height:40px;position:absolute;right:12px;top:12px;width:40px;z-index:0}.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{align-items:center;display:inline-block;flex-direction:row;justify-content:left;padding-bottom:7px;position:relative;text-overflow:ellipsis;width:100%}.og-option .og-slider{width:100%}.og-option .og-color-label,.og-option .og-slider .og-slider-label{font-size:12px;width:100px}.og-ddialog{background-color:var(--grey0);border:1px solid;border-color:var(--grey1);border-radius:4px;box-shadow:3px 3px 4px hsla(0,0%,6%,.17);display:flex;flex-direction:column;overflow:auto;position:absolute}.og-ddialog .og-ddialog-header{align-items:center;background-color:var(--grey2);color:#fff;display:flex;flex-direction:row;height:27px;justify-content:space-between;padding:0;position:relative;width:100%;z-index:1}.og-ddialog .og-ddialog-header .og-ddialog-header__title{color:var(--grey3);font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:14px;font-weight:400;padding-left:5px;pointer-events:none}.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{font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:14px;height:100%;overflow:auto;position:relative;width:100%}.og-ddialog.dragging{user-select:none}.og-button{align-content:center;align-items:center;border-radius:4px;color:var(--grey6);cursor:default;display:flex;flex-direction:row;justify-content:center;padding:2px}.og-button svg,.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_button{right:12px;top:12px}.og-layerSwitcher{color:#b6b6b6;height:100%;overflow-x:hidden;overflow-y:auto;position:relative;width:100%}.og-layerSwitcher__title{color:#b6b6b6;font-size:14px;padding:5px;position:relative;width:100%}.og-layerSwitcher__list{display:inline-block;flex-direction:column;padding:2px;position:relative;width:100%}.og-layerSwitcher__layerButton{background-color:#7a7a7a;border:2px solid transparent;border-radius:5px;cursor:pointer;height:75px;margin:3px;padding:0;position:relative;width:75px}.og-layerSwitcher__layerButton.og-layerSwitcher__visible{border:2px solid #00ff14}.og-layerSwitcher__layerButton.og-layerSwitcher__visible img{opacity:1}.og-layerSwitcher__layerButton img{border-radius:5px;height:100%;left:0;opacity:1;position:absolute;top:0;width:100%}.og-layerSwitcher__layerButton img:hover{opacity:1}.og-layerSwitcher__name{background-color:rgba(0,0,0,.5);border-bottom-left-radius:5px;border-bottom-right-radius:5px;bottom:0;color:var(--grey8);font-size:12px;max-height:25px;overflow:hidden;padding:3px;position:absolute;text-overflow:ellipsis;width:calc(100% - 6px)}.displayNone{display:none}.displayBlock{display:block}.og-drawing-default_button{right:166px;top:12px}.og-drawing-default_button .og-button-icon{transform:scale(.73)}.og-drawing-polygon_button{right:115px;top:12px}.og-drawing-linestring_button{right:66px;top:12px}.og-ruler_button{right:12px;top:65px}.ogConsole{background-color:hsla(0,0%,51%,.49);color:#fff;font-family:Arial;font-size:14px;left:0;max-height:70%;overflow:auto;pointer-events:none;position:absolute;top:0;width:100%;z-index:100000000}.ogConsole-text{overflow:hidden;padding:7px}.ogConsole-error{color:red}.ogConsole-warning{color:#ff0}.ogViewExtentBtn{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;cursor:pointer;height:24px;margin-left:12px;scale:70%;width:24px}.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==) 50% no-repeat,var(--blue0);border-radius:10px}.og-debuginfo_button{left:10px;position:absolute;top:120px}.og-debuginfo_controls{display:flex;padding-bottom:8px}.og-debuginfo_controls-button{float:left;height:25px;margin:3px;width:25px}.og-debug-info{color:#fff;font-size:12px;padding:10px}.og-debug-info .og-watch-line{display:flex;flex-direction:row;padding-bottom:5px;width:100%}.og-watch-line .og-watch-label{color:#cecece;width:200px}.og-watch-line .og-watch-value{margin-left:15px}.og-popup{bottom:-2px;position:absolute;text-align:center}.og-popup-content-wrapper,.og-popup-tip{background:#fff;box-shadow:0 3px 14px rgba(0,0,0,.4);color:#333}.og-popup-content-wrapper{border-radius:8px;min-height:17px;min-width:30px;padding:1px;text-align:left}.og-popup-content{line-height:1.4;margin:20px 5px 5px}.og-popup-tip-container{bottom:-19px;height:20px;left:50%;margin-left:-20px;overflow:hidden;pointer-events:none;position:absolute;width:40px}.og-popup-tip{height:17px;margin:-10px auto 0;padding:1px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);width:17px}.og-popup-toolbar{display:inline-block;position:absolute;right:2px;top:3px}.og-popup-btn{cursor:pointer;float:right;height:15px;width:15px}.og-popup-btn:hover{color:#2e9be7}.og-popup-title{font-size:14px;left:5px;position:absolute;top:3px}.og-scale-container{bottom:30px;position:absolute;right:320px}.og-scale-label{color:#fff;font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:12px;position:relative;text-align:center}.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{bottom:153px;right:12px}.og-compass-button svg{height:40px!important;width:40px!important}.og-suncontrol-button{float:left;height:25px;margin:3px;width:25px}.og-lighting_button{left:10px;position:absolute;top:65px}.og-lighing{color:#b6b6b6;height:calc(100% - 30px);padding:12px;position:relative}.og-lighing .og-layers{align-items:center;display:flex;flex-direction:row}.og-lighing .og-caption{position:relative}.og-emptyline,.og-lighing .og-lighting-emptyline{padding:3px;width:100%}.og-emptyline-2{padding:5px;width:100%}.og-lighing .og-slider{width:100%}.og-lighing .og-color-label,.og-lighing .og-slider .og-slider-label{font-size:12px;width:100px}.og-lighing .og-color{padding-right:10px}.og-lighing #layers{font-family:monospace;margin-left:21px;padding:2px;width:200px}.og-coordinates{background-color:var(--grey5);border-radius:4px;bottom:25px;color:var(--grey8);cursor:pointer;float:left;font-family:monospace;font-size:1em;overflow:hidden;padding:5px;position:absolute;right:12px;text-align:right}.og-coordinates div{float:left}.og-lat-side,.og-lon-side{padding-right:3px;width:10px}.og-lat-val,.og-lon-val{overflow:hidden;padding-right:3px;text-align:left;text-overflow:unset;width:90px}.og-height{overflow:hidden;padding-left:3px;text-align:right;text-overflow:ellipsis;width:50px}.og-units-height{padding-left:3px;text-align:left;width:15px}.og-center-icon{bottom:50%;height:12px;margin-bottom:-3.5px;margin-right:-7.5px;pointer-events:none;position:absolute;right:50%;width:12px}.og-atmosphere_button{left:10px;position:absolute;top:230px}.og-atmosphere.og-options-container .og-slider-label{height:20px;overflow:hidden;width:300px}.og-atmosphere.og-options-container .og-slider input{width:87px}.og-timeline_button{left:10px;position:absolute;top:10px}.og-timeline-control_button{background:var(--grey7);border-radius:1px;height:20px;margin-left:3px;margin-right:3px;width:25px}.og-button svg,.og-button svg path{height:24px;width:24px}.og-timeline-control_button.og-button__active{background:var(--grey3)}.og-timeline{background:#2d2d2d;bottom:0;height:100%;left:0;overflow:hidden;position:relative;width:100%}.og-timeline-frame{height:30px;margin:0 0 0 10px;position:relative;width:calc(100% - 20px)}.og-timeline-scale{height:100%;overflow:hidden;width:100%}.og-timeline-current{cursor:pointer;height:100%;left:0;margin-left:-5px;margin-top:-7px;position:absolute;width:11px}.og-timeline-current-spin{background-color:#ff3434;height:100%;margin:0 auto;pointer-events:none;width:1px}.og-timeline-current-arrow{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #ff3434;height:0;margin-left:-6px;width:0}.og-timeline-bottom{margin-top:3px;width:100%}.og-timeline-bottom,.og-timeline-controls{display:flex;justify-content:center;position:relative}.og-timeline-controls{align-items:center;border-radius:10px;flex-direction:row;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{display:block;height:15px;width:100%}.og-slider{display:flex;flex-direction:row;gap:5px;width:200px}.og-slider .og-slider-label{align-items:center;color:var(--grey6);display:flex;font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:14px;height:100%;margin-right:5px;text-align:left;width:100%}.og-slider .og-slider-panel{background-color:var(--grey1);border-radius:5px;height:20px;position:relative;width:100%;z-index:1}.og-slider .og-slider-panel .og-slider-progress{background-color:var(--grey7);border-bottom-left-radius:5px;border-top-left-radius:5px;height:100%;pointer-events:none;position:absolute}.og-slider .og-slider-panel .og-slider-pointer{background-color:var(--grey3);height:100%;left:0;pointer-events:none;position:absolute;top:0;width:3px}.og-slider input{background:var(--grey5);border:1px solid var(--grey1);border-radius:5px;color:var(--grey3);height:100%;padding-left:5px;position:relative;width:100%;width:60px;z-index:0}.og-slider input:focus-visible{outline:none}.og-slider input::-webkit-inner-spin-button,.og-slider input::-webkit-outer-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{align-items:center;color:var(--grey6);font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:14px;height:100%;margin-right:5px;text-align:left;width:100%}.og-checkbox input,.og-input input{background:var(--grey5);border:1px solid var(--grey1);border-radius:5px;color:var(--grey3);height:100%;padding-left:5px;position:relative;width:100%;z-index:0}.og-checkbox input:focus-visible,.og-input input:focus-visible{outline:none}.og-checkbox input[type=checkbox]{align-content:center;appearance:none;-webkit-appearance:none;background:var(--grey8);border:1px solid var(--grey1);border-radius:3px;cursor:pointer;display:flex;height:14px;justify-content:center;padding:0;position:relative;width:14px}.og-checkbox input[type=checkbox]:before{border:solid #000;border-width:0 2px 2px 0;content:"";height:6px;left:3.5px;opacity:0;position:absolute;top:2px;transform:rotate(45deg);transition:opacity .2s ease-in-out;width:3px}.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{opacity:.7;pointer-events:none}.og-input-disabled input[type=checkbox]{background:var(--grey9)}.og-input input[type=number]{-moz-appearance:textfield}.og-selection_button{right:12px;top:117px}.og-geoimagegrag_button{right:12px;top:169px}.og-elevationprofile{height:100%;overflow:hidden;position:absolute;width:100%}.og-elevationprofile__container{align-content:center;align-items:center;display:flex;flex-direction:column;height:100%;position:relative;width:100%}.og-elevationprofile__menu{height:43px;position:relative;width:100%}.og-elevationprofile__graph{height:100%;position:relative;width:100%}.og-elevationprofile_button{left:10px;top:175px}.og-elevationprofile-legend{color:var(--grey8);display:flex;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:12px;margin:5px;position:absolute;right:0;top:0;z-index:1}.og-elevationprofile-legend__row{padding:5px;position:relative;width:70px}.og-elevationprofile-square{float:left;height:6px;margin:5px;position:relative;width:6px}.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;float:left;padding-left:5px;position:relative}.og-elevationprofile-value{display:inline-block;float:left;overflow:hidden;position:relative;text-align:right;text-overflow:ellipsis;white-space:nowrap;width:30px}.og-elevationprofile-buttons{display:inline-block;left:0;position:absolute;top:0}.og-elevationprofile-button{float:left;height:25px;margin:3px;width:25px}.og-elevationprofile-list{display:flex;flex-direction:column;height:100%;position:relative;width:100%}.og-elevationprofile-list textarea{background:var(--grey8);height:100%;padding:5px;position:relative;resize:none;width:100%}.og-elevationprofile-list-buttons{align-items:center;display:flex;flex-direction:row;height:60px;justify-content:right;position:relative}.og-elevationprofile-list-apply{background-color:var(--grey2);float:right;margin-right:15px;padding:4px 10px 7px}.og-elevationprofile_pointer{height:100%;left:0;position:absolute;top:0}.og-elevationprofile-line{background-color:#fff;height:30px;margin-left:-1.5px;position:absolute;width:3px}.og-elevationprofile-label{color:#fff;left:0;position:absolute;top:0}.og-elevationprofile-button__location svg{height:17px;width:17px}.og-elevationprofile-loading{align-items:center;background-color:#000;display:flex;flex-direction:row;height:100%;justify-content:center;opacity:.3;position:absolute;width:100%;z-index:2}.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{animation:ldio-p0v5a1f6oz .9345794392523364s cubic-bezier(.5,0,.5,1) infinite;height:40px;position:absolute;top:30px;width:11px}.ldio-p0v5a1f6oz div:first-child{animation-delay:-.5607476635514018s;background:#353535;transform:translate(14.5px)}.ldio-p0v5a1f6oz div:nth-child(2){animation-delay:-.37383177570093457s;background:#666;transform:translate(34.5px)}.ldio-p0v5a1f6oz div:nth-child(3){animation-delay:-.18691588785046728s;background:#9b9b9b;transform:translate(54.5px)}.ldio-p0v5a1f6oz div:nth-child(4){animation-delay:-.9345794392523364s;background:#d4d4d4;transform:translate(74.5px)}.loadingio-spinner-bars-r354qqyl5v{background:none;display:inline-block;height:88px;overflow:hidden;width:88px}.ldio-p0v5a1f6oz{backface-visibility:hidden;height:100%;position:relative;transform:translateZ(0) scale(.88);transform-origin:0 0;width:100%}.ldio-p0v5a1f6oz div{box-sizing:content-box}.og-editor-ground_button{background:var(--grey1);margin-left:5px;margin-top:15px;padding:4px 6px 8px;width:fit-content}.og-editor_toolbar{display:flex;padding-bottom:8px}.og-editor_toolbar-button{float:left;height:25px;margin:3px;width:25px}