@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,6 +1,6 @@
1
1
  import { Camera } from "../camera/Camera";
2
2
  import { Control } from "../control/Control";
3
- import { RendererEventsHandler } from "./RendererEvents";
3
+ import { IBaseInputState, RendererEventsHandler } from "./RendererEvents";
4
4
  import { EntityCollection } from "../entity/EntityCollection";
5
5
  import { Framebuffer, Multisample } from "../webgl/index";
6
6
  import { FontAtlas } from "../utils/FontAtlas";
@@ -18,6 +18,7 @@ interface IRendererParams {
18
18
  fontsSrc?: string;
19
19
  gamma?: number;
20
20
  exposure?: number;
21
+ dpi?: number;
21
22
  }
22
23
  interface IPickingObject {
23
24
  _pickingColor?: Vec3;
@@ -28,6 +29,39 @@ interface IFrameCallbackHandler {
28
29
  callback: Function;
29
30
  sender: any;
30
31
  }
32
+ /**
33
+ * Represents high level WebGL context interface that starts WebGL handler working in real time.
34
+ * @class
35
+ * @param {Handler} handler - WebGL handler context.
36
+ * @param {Object} [params] - Renderer parameters:
37
+ * @fires EventsHandler<RendererEventsType>#draw
38
+ * @fires EventsHandler<RendererEventsType>#resize
39
+ * @fires EventsHandler<RendererEventsType>#mousemove
40
+ * @fires EventsHandler<RendererEventsType>#mousestop
41
+ * @fires EventsHandler<RendererEventsType>#lclick
42
+ * @fires EventsHandler<RendererEventsType>#rclick
43
+ * @fires EventsHandler<RendererEventsType>#mclick
44
+ * @fires EventsHandler<RendererEventsType>#ldblclick
45
+ * @fires EventsHandler<RendererEventsType>#rdblclick
46
+ * @fires EventsHandler<RendererEventsType>#mdblclick
47
+ * @fires EventsHandler<RendererEventsType>#lup
48
+ * @fires EventsHandler<RendererEventsType>#rup
49
+ * @fires EventsHandler<RendererEventsType>#mup
50
+ * @fires EventsHandler<RendererEventsType>#ldown
51
+ * @fires EventsHandler<RendererEventsType>#rdown
52
+ * @fires EventsHandler<RendererEventsType>#mdown
53
+ * @fires EventsHandler<RendererEventsType>#lhold
54
+ * @fires EventsHandler<RendererEventsType>#rhold
55
+ * @fires EventsHandler<RendererEventsType>#mhold
56
+ * @fires EventsHandler<RendererEventsType>#mousewheel
57
+ * @fires EventsHandler<RendererEventsType>#touchstart
58
+ * @fires EventsHandler<RendererEventsType>#touchend
59
+ * @fires EventsHandler<RendererEventsType>#touchcancel
60
+ * @fires EventsHandler<RendererEventsType>#touchmove
61
+ * @fires EventsHandler<RendererEventsType>#doubletouch
62
+ * @fires EventsHandler<RendererEventsType>#touchleave
63
+ * @fires EventsHandler<RendererEventsType>#touchenter
64
+ */
31
65
  export interface HTMLDivElementExt extends HTMLDivElement {
32
66
  attributions?: HTMLElement;
33
67
  }
@@ -65,7 +99,7 @@ declare class Renderer {
65
99
  * @public
66
100
  * @type {Camera}
67
101
  */
68
- activeCamera: Camera | null;
102
+ activeCamera: Camera;
69
103
  /**
70
104
  * Renderer events. Represents interface for setting events like mousemove, draw, keypress etc.
71
105
  * @public
@@ -101,17 +135,6 @@ declare class Renderer {
101
135
  * @type {Framebuffer}
102
136
  */
103
137
  pickingFramebuffer: Framebuffer | null;
104
- protected _tempPickingPix_: Uint8Array;
105
- /**
106
- * @public
107
- * @type {Framebuffer}
108
- */
109
- distanceFramebuffer: Framebuffer | null;
110
- /**
111
- * @type {Function[]}
112
- */
113
- protected _distanceCallbacks: IFrameCallbackHandler[];
114
- protected _tempDistancePix_: Uint8Array;
115
138
  /**
116
139
  * Depth objects rendering queue.
117
140
  * @type {Function[]}
@@ -144,24 +167,19 @@ declare class Renderer {
144
167
  * @type {FontAtlas}
145
168
  */
146
169
  fontAtlas: FontAtlas;
147
- protected _entityCollections: EntityCollection[];
170
+ protected _entityCollections: EntityCollection[][];
148
171
  protected _currentOutput: string;
149
172
  protected _fnScreenFrame: Function | null;
150
173
  labelWorker: LabelWorker;
151
- __useDistanceFramebuffer__: boolean;
152
174
  screenDepthFramebuffer: Framebuffer | null;
153
175
  screenFramePositionBuffer: WebGLBufferExt | null;
154
176
  screenTexture: Record<string, WebGLTexture>;
155
177
  outputTexture: WebGLTexture | null;
156
- protected _skipDistanceFrame: boolean;
157
- protected _distancePixelBuffer: WebGLBuffer | null;
158
- protected _skipPickingFrame: boolean;
159
- protected _pickingPixelBuffer: WebGLBuffer | null;
160
- protected _readDistanceBuffer: () => void;
161
178
  protected _readPickingBuffer: () => void;
162
- constructor(handler: Handler, params?: IRendererParams);
179
+ constructor(handler: Handler | string | HTMLCanvasElement, params?: IRendererParams);
163
180
  enableBlendOneSrcAlpha(): void;
164
181
  enableBlendDefault(): void;
182
+ setRelativeCenter(c?: Vec3): void;
165
183
  /**
166
184
  * Sets renderer events activity.
167
185
  * @param {Boolean} activity - Events activity.
@@ -169,8 +187,6 @@ declare class Renderer {
169
187
  setEventsActivity(activity: boolean): void;
170
188
  addDepthCallback(sender: any, callback: Function): number;
171
189
  removeDepthCallback(id: number): void;
172
- addDistanceCallback(sender: any, callback: Function): number;
173
- removeDistanceCallback(id: number): void;
174
190
  /**
175
191
  * Adds picking rendering callback function.
176
192
  * @param {object} sender - Callback context.
@@ -243,7 +259,6 @@ declare class Renderer {
243
259
  * @public
244
260
  */
245
261
  initialize(): void;
246
- _initReadPixelsBuffers(): void;
247
262
  _initializeControls(): void;
248
263
  resize(): void;
249
264
  setCurrentScreen(screenName: string): void;
@@ -275,18 +290,14 @@ declare class Renderer {
275
290
  /**
276
291
  * TODO: replace with cache friendly linked list by BillboardHandler, LabelHandler etc.
277
292
  */
278
- enqueueEntityCollectionsToDraw(ecArr: EntityCollection[]): void;
279
- /**
280
- * Draws opaque items entity collections.
281
- * @protected
282
- */
283
- protected _drawOpaqueEntityCollections(): void;
293
+ enqueueEntityCollectionsToDraw(ecArr: EntityCollection[], depthOrder?: number): void;
284
294
  /**
285
- * Draws transparent items entity collections.
286
295
  * @protected
287
296
  */
288
- protected _drawTransparentEntityCollections(): void;
289
- protected _clearEntityCollectionQueue(): void;
297
+ protected _drawEntityCollections(depthOrder: number): void;
298
+ protected _drawPickingEntityCollections(depthOrder: number): void;
299
+ protected _drawDepthEntityCollections(depthOrder: number): void;
300
+ protected _clearEntityCollectionQueue(depthOrder: number): void;
290
301
  /**
291
302
  * Draw nodes.
292
303
  * @public
@@ -299,19 +310,27 @@ declare class Renderer {
299
310
  * Draw picking objects framebuffer.
300
311
  * @private
301
312
  */
302
- protected _drawPickingBuffer(): void;
313
+ protected _drawPickingBuffer(depthOrder: number): void;
314
+ protected _drawDepthBuffer(depthOrder: number): void;
315
+ protected _readDepthBuffer(): void;
316
+ protected _readPickingBuffer_webgl1(): void;
317
+ protected _readPickingBuffer_webgl2(): void;
318
+ readPickingColor(x: number, y: number, outColor: NumberArray3 | Uint8Array): void;
319
+ readDepth(x: number, y: number, outDepth: NumberArray3 | Float32Array): void;
303
320
  /**
304
- * Draw picking objects framebuffer.
305
- * @protected
321
+ * Returns the distance from the active (screen) camera to the 3d-surface using the defined screen coordinates
322
+ * @public
323
+ * @param {Vec2 | IBaseInputState} px - Screen coordinates.
324
+ * @returns {number | undefined} -
306
325
  */
307
- protected _drawDistanceBuffer(): void;
308
- protected _drawDepthBuffer(): void;
309
- protected _readPickingBuffer_webgl1: () => void;
310
- protected _readPickingBuffer_webgl2: () => void;
311
- protected _readDistanceBuffer_webgl1: () => void;
312
- protected _readDistanceBuffer_webgl2: () => void;
313
- readPickingColor(x: number, y: number, outColor: NumberArray3 | Uint8Array): void;
314
- readDistanceColor(x: number, y: number, outColor: NumberArray3 | Uint8Array): void;
326
+ getDistanceFromPixel(px: Vec2 | IBaseInputState, camera?: Camera | null): number | undefined;
327
+ /**
328
+ * Returns 3d coordinates from screen coordinates
329
+ * @public
330
+ * @param {Vec2 | IBaseInputState} px - Screen coordinates.
331
+ * @returns {Vec3 | undefined} -
332
+ */
333
+ getCartesianFromPixel(px: Vec2 | IBaseInputState): Vec3 | undefined;
315
334
  /**
316
335
  * Function starts renderer
317
336
  * @public
@@ -8,6 +8,7 @@ import { Vec3 } from "../math/Vec3";
8
8
  export type RendererEventsHandler = RendererEvents & EventsHandler<RendererEventsType>;
9
9
  export declare function createRendererEvents(renderer: Renderer): RendererEvents;
10
10
  export type RendererEventsType = [
11
+ "changerelativecenter",
11
12
  "draw",
12
13
  "drawtransparent",
13
14
  "postdraw",
@@ -110,6 +111,7 @@ export interface IMouseState extends IBaseInputState {
110
111
  wheelDelta: number;
111
112
  /** JavaScript mouse system event message. */
112
113
  sys: MouseEvent | null;
114
+ isTouchPad: boolean;
113
115
  }
114
116
  export interface ITouchState extends IBaseInputState {
115
117
  /** Touch has ended right now.*/
@@ -20,8 +20,10 @@ import { Quat } from "../math/Quat";
20
20
  import { QuadTreeStrategy } from "../quadTree/QuadTreeStrategy";
21
21
  import { Ray } from "../math/Ray";
22
22
  import { RenderNode } from "./RenderNode";
23
+ import { Sun } from "../control/Sun";
23
24
  import { TerrainWorker } from "../utils/TerrainWorker";
24
25
  import { Vec2, Vec3, NumberArray2, NumberArray3, NumberArray4 } from "../math/index";
26
+ import { Vector } from "../layer/Vector";
25
27
  import { VectorTileCreator } from "../utils/VectorTileCreator";
26
28
  import { WebGLBufferExt, WebGLTextureExt, IDefaultTextureParams } from "../webgl/Handler";
27
29
  import { Program } from "../webgl/Program";
@@ -122,14 +124,15 @@ export declare class Planet extends RenderNode {
122
124
  * @protected
123
125
  * @type {Array.<Layer>}
124
126
  */
125
- protected visibleVectorLayers: Layer[];
127
+ protected visibleVectorLayers: Vector[];
128
+ protected _visibleVectorLayersByDepthOrder: Vector[][];
126
129
  protected _visibleTileLayerSlices: Layer[][];
127
130
  /**
128
131
  * Vector layers visible nodes with collections.
129
132
  * @protected
130
- * @type {Array.<EntityCollection>}
133
+ * @type {EntityCollection[][]}
131
134
  */
132
- protected _frustumEntityCollections: EntityCollection[];
135
+ protected _visibleEntityCollections: EntityCollection[][];
133
136
  /**
134
137
  * There is only one base layer on the globe when layer.isBaseLayer is true.
135
138
  * @public
@@ -184,6 +187,7 @@ export declare class Planet extends RenderNode {
184
187
  _renderedNodesInFrustum: Node[][];
185
188
  _fadingNodes: Map<number, Node>;
186
189
  _fadingNodesInFrustum: Node[][];
190
+ protected _fadingOpaqueSegments: Segment[];
187
191
  /**
188
192
  * Layers activity lock.
189
193
  * @public
@@ -308,6 +312,7 @@ export declare class Planet extends RenderNode {
308
312
  get terrainReady(): boolean;
309
313
  get maxGridSize(): number;
310
314
  getNorthFrameRotation(cartesian: Vec3): Quat;
315
+ getFrameRotation(cartesian: Vec3): Quat;
311
316
  set atmosphereMaxOpacity(opacity: number);
312
317
  get atmosphereMaxOpacity(): number;
313
318
  set atmosphereMinOpacity(opacity: number);
@@ -327,6 +332,7 @@ export declare class Planet extends RenderNode {
327
332
  * @public
328
333
  */
329
334
  getLayers(): Layer[];
335
+ get sun(): Sun | undefined;
330
336
  get sunPos(): Vec3;
331
337
  /**
332
338
  * Add the given control to the renderer of the planet scene.
@@ -466,18 +472,16 @@ export declare class Planet extends RenderNode {
466
472
  unlockQuadTree(): void;
467
473
  protected _setUniformsNoAtmos(cam: PlanetCamera): Program;
468
474
  protected _setUniformsAtmos(cam: PlanetCamera): Program;
469
- protected _renderingFadingNodes: (nodes: Map<number, boolean>, sh: Program, currentNode: Node, sl: Layer[], sliceIndex: number, outTransparentSegments?: Segment[]) => void;
470
- protected _renderingFadingNodesNoDepth: (nodes: Map<number, boolean>, sh: Program, currentNode: Node, sl: Layer[], sliceIndex: number) => void;
475
+ protected _renderingFadingNodes: (nodes: Map<number, boolean>, sh: Program, currentNode: Node, sl: Layer[], sliceIndex: number, outTransparentSegments?: Segment[], outOpaqueSegments?: Segment[]) => void;
476
+ protected _renderingFadingNodesNoDepth: (nodes: Map<number, boolean>, sh: Program, currentNode: Node, sl: Layer[], sliceIndex: number, outOpaqueSegments?: Segment[]) => void;
471
477
  /**
472
478
  * Drawing nodes
473
479
  */
474
480
  protected _renderingScreenNodes(sh: Program, cam: PlanetCamera, renderedNodes: Node[]): void;
475
481
  protected _renderingScreenNodesWithHeight(sh: Program, cam: PlanetCamera, renderedNodes: Node[]): void;
476
- protected _renderDistanceFramebufferPASS(): void;
477
482
  protected _renderColorPickingFramebufferPASS(): void;
478
483
  protected _renderDepthFramebufferPASS(): void;
479
484
  protected _collectVectorLayerCollections(): void;
480
- protected _frustumEntityCollectionPickingCallback(): void;
481
485
  /**
482
486
  * Starts clear memory thread.
483
487
  * @public
@@ -627,5 +631,9 @@ export declare class Planet extends RenderNode {
627
631
  getHeightDefault(lonLat: LonLat): Promise<number>;
628
632
  getHeightAboveELL(lonLat: LonLat): Promise<number>;
629
633
  onremove(): void;
634
+ /**
635
+ * @todo: refactor with events or something better
636
+ */
637
+ stopDragging(): void;
630
638
  }
631
639
  export {};
@@ -2,6 +2,8 @@ import { BaseNode } from "./BaseNode";
2
2
  import { Renderer } from "../renderer/Renderer";
3
3
  import { LightSource } from "../light/LightSource";
4
4
  import { EntityCollection } from "../entity/EntityCollection";
5
+ import { Quat } from "../math/Quat";
6
+ import { Vec3 } from "../math/Vec3";
5
7
  /**
6
8
  * Render node is a logical part of a render mechanism. Represents scene rendering.
7
9
  * For example one scene node for rendering the Earth, another one for rendering the Moon, another node for rendering stars etc.
@@ -37,19 +39,19 @@ declare class RenderNode extends BaseNode {
37
39
  * @public
38
40
  * @type {Array.<LightSource>}
39
41
  */
40
- _lights: LightSource[];
41
- _lightsNames: string[];
42
- _lightsPositions: number[];
43
- _lightsParamsv: number[];
44
- _lightsParamsf: number[];
42
+ _lightPosition: Float32Array;
43
+ _lightParams: Float32Array;
44
+ _lightShininess: number;
45
45
  /**
46
46
  * Entity collection array.
47
47
  * @public
48
48
  * @type {Array.<EntityCollection>}
49
49
  */
50
50
  entityCollections: EntityCollection[];
51
+ protected _entityCollectionsByDepthOrder: EntityCollection[][];
51
52
  protected _pickingId: number;
52
53
  constructor(name?: string);
54
+ getFrameRotation(cartesian: Vec3): Quat;
53
55
  /**
54
56
  * Adds node to the current hierarchy.
55
57
  * @public
@@ -73,13 +75,14 @@ declare class RenderNode extends BaseNode {
73
75
  * @param {boolean} [isHidden] - If it's true that this collection has specific rendering.
74
76
  * @returns {RenderNode} -
75
77
  */
76
- addEntityCollection(entityCollection: EntityCollection, isHidden?: boolean): RenderNode;
78
+ addEntityCollection(entityCollection: EntityCollection, isHidden?: boolean): void;
77
79
  /**
78
80
  * Removes entity collection.
79
81
  * @public
80
82
  * @param {EntityCollection} entityCollection - Entity collection for remove.
81
83
  */
82
84
  removeEntityCollection(entityCollection: EntityCollection): void;
85
+ updateEntityCollectionsDepthOrder(): void;
83
86
  /**
84
87
  * Adds point light source.
85
88
  * @public
@@ -87,19 +90,6 @@ declare class RenderNode extends BaseNode {
87
90
  * @returns {RenderNode}
88
91
  */
89
92
  addLight(light: LightSource): RenderNode;
90
- /**
91
- * Gets light object by its name.
92
- * @public
93
- * @param {string} name - Point light name.
94
- * @returns {LightSource}
95
- */
96
- getLightByName(name: string): LightSource | undefined;
97
- /**
98
- * Removes light source.
99
- * @public
100
- * @param {LightSource} light - Light source object.
101
- */
102
- removeLight(light: LightSource): void;
103
93
  /**
104
94
  * Calls render frame node's callback. Used in renderer.
105
95
  * @public
@@ -128,17 +118,12 @@ declare class RenderNode extends BaseNode {
128
118
  * @param {Number} mode - Draw mode, such as gl.TRIANGLES, gl.TRIANGLE_STRIP, gl.LINES etc.
129
119
  */
130
120
  setDrawMode(mode: number): void;
131
- /**
132
- * IMPORTANT: This function have to be called manually in each render node frame callback, before drawing scene geometry.
133
- * @public
134
- */
135
- transformLights(): void;
136
121
  updateBillboardsTexCoords(): void;
137
122
  frame(): void;
138
123
  preFrame(): void;
139
124
  protected _preDrawNodes(): void;
140
125
  protected _drawNodes(): void;
141
- drawEntityCollections(ec: EntityCollection[]): void;
126
+ drawEntityCollections(ec: EntityCollection[], depthOrder?: number): void;
142
127
  /**
143
128
  * Draw entity collections picking frame.
144
129
  * @public
@@ -1,5 +1,6 @@
1
1
  import { AtmosphereParameters } from "./atmos";
2
2
  import { Program } from "../webgl/Program";
3
+ export declare const ENCODE24 = "vec3 encode24(highp float f) {\n float F = abs(f);\n float s = step( 0.0, -f );\n float e = floor( log2(F) );\n float m = exp2(- e) * F;\n e = floor( log2(F) + 127.0 ) + floor( log2(m) );\n return vec3(\n ( 128.0 * s + floor( e * exp2(-1.0) ) ) / 255.0,\n ( 128.0 * mod( e, 2.0 ) + mod( floor( m * 128.0 ), 128.0 ) ) / 255.0,\n floor( mod( floor( m * exp2( 23.0 - 8.0) ), exp2(8.0) ) ) / 255.0);\n }";
3
4
  export declare function drawnode_screen_nl(): Program;
4
5
  export declare function drawnode_screen_wl_webgl1NoAtmos(): Program;
5
6
  export declare function drawnode_screen_wl_webgl2NoAtmos(): Program;
@@ -1,3 +1,4 @@
1
1
  import { Program } from "../webgl/Program";
2
2
  export declare const geo_object: () => Program;
3
3
  export declare const geo_object_picking: () => Program;
4
+ export declare const geo_object_depth: () => Program;
@@ -1 +1 @@
1
- export declare const UTILS = "\n float getLerpValue(in float min, in float max, in float between)\n {\n return (clamp(between, min, max) - min) / (max - min);\n }\n \n vec3 aces(vec3 color) \n {\n float a = 2.51;\n float b = 0.03;\n float c = 2.43;\n float d = 0.59;\n float e = 0.14;\n return clamp((color * (a * color + b)) / (color * (c * color + d ) + e), 0.0, 1.0);\n }\n \n bool intersectSphere(vec3 rayOrigin, vec3 rayDirection, float radius, inout float t1, inout float t2) \n {\n float b = dot(rayDirection, rayOrigin);\n float c = dot(rayOrigin, rayOrigin) - radius * radius;\n float d = b * b - c;\n if (d < 0.0) {\n return false;\n }\n t1 = -b - sqrt(d);\n t2 = -b + sqrt(d);\n return true;\n }\n \n bool intersectSphere(vec3 rayOrigin, vec3 rayDirection, float radius, inout float t) \n {\n float b = dot(rayDirection, rayOrigin);\n float c = dot(rayOrigin, rayOrigin) - radius * radius;\n float d = b * b - c;\n if (d < 0.0) {\n return false;\n }\n t = -b - sqrt(d);\n return true;\n }\n \n bool intersectEllipsoid( in vec3 ro, in vec3 rd, in vec3 ra, inout float t )\n {\n vec3 ocn = ro/ra;\n vec3 rdn = rd/ra;\n float a = dot( rdn, rdn );\n float b = dot( ocn, rdn );\n float c = dot( ocn, ocn );\n float h = b*b - a*(c-1.0);\n \n if (h < 0.0) \n { \n return false; \n }\n \n t = (-b-sqrt(h))/a;\n \n return true;\n }\n \n bool intersectEllipsoid( in vec3 ro, in vec3 rd, in vec3 ra, inout float t1, inout float t2)\n {\n vec3 ocn = ro/ra;\n vec3 rdn = rd/ra;\n float a = dot( rdn, rdn );\n float b = dot( ocn, rdn );\n float c = dot( ocn, ocn );\n float h = b*b - a*(c-1.0);\n \n if (h < 0.0) \n { \n return false; \n }\n \n h = sqrt(h);\n t1 = (-b-h)/a;\n t2 = (-b+h)/a;\n \n return true;\n }\n \n vec3 normalEllipsoid( in vec3 pos, in vec3 ra )\n {\n return normalize( pos/(ra*ra) );\n }\n";
1
+ export declare const UTILS = "\n float getLerpValue(in float min, in float max, in float between)\n {\n return (clamp(between, min, max) - min) / (max - min);\n }\n \n vec3 aces(vec3 color) \n {\n float a = 2.51;\n float b = 0.03;\n float c = 2.43;\n float d = 0.59;\n float e = 0.14;\n return clamp((color * (a * color + b)) / (color * (c * color + d ) + e), 0.0, 1.0);\n }\n \n bool intersectSphere(vec3 rayOrigin, vec3 rayDirection, float radius, inout float t1, inout float t2) \n {\n float b = dot(rayDirection, rayOrigin);\n float c = dot(rayOrigin, rayOrigin) - radius * radius;\n float d = b * b - c;\n if (d < 0.0) {\n return false;\n }\n t1 = -b - sqrt(d);\n t2 = -b + sqrt(d);\n return true;\n }\n \n bool intersectSphere(vec3 rayOrigin, vec3 rayDirection, float radius, inout float t) \n {\n float b = dot(rayDirection, rayOrigin);\n float c = dot(rayOrigin, rayOrigin) - radius * radius;\n float d = b * b - c;\n if (d < 0.0) {\n return false;\n }\n t = -b - sqrt(d);\n return true;\n }\n \n float intersectSphere( vec3 ro, vec3 rd, vec4 sph )\n {\n vec3 oc = ro - sph.xyz;\n float b = dot( oc, rd );\n float c = dot( oc, oc ) - sph.w*sph.w;\n float h = b*b - c;\n if( h<0.0 ) return -1.0;\n h = sqrt( h );\n return -b - h;\n }\n \n bool intersectEllipsoid( in vec3 ro, in vec3 rd, in vec3 ra, inout float t )\n {\n vec3 ocn = ro/ra;\n vec3 rdn = rd/ra;\n float a = dot( rdn, rdn );\n float b = dot( ocn, rdn );\n float c = dot( ocn, ocn );\n float h = b*b - a*(c-1.0);\n \n if (h < 0.0) \n { \n return false; \n }\n \n t = (-b-sqrt(h))/a;\n \n return true;\n }\n \n bool intersectEllipsoid( in vec3 ro, in vec3 rd, in vec3 ra, inout float t1, inout float t2)\n {\n vec3 ocn = ro/ra;\n vec3 rdn = rd/ra;\n float a = dot( rdn, rdn );\n float b = dot( ocn, rdn );\n float c = dot( ocn, ocn );\n float h = b*b - a*(c-1.0);\n \n if (h < 0.0) \n { \n return false; \n }\n \n h = sqrt(h);\n t1 = (-b-h)/a;\n t2 = (-b+h)/a;\n \n return true;\n }\n \n vec3 normalEllipsoid( in vec3 pos, in vec3 ra )\n {\n return normalize( pos/(ra*ra) );\n }\n";
@@ -0,0 +1,31 @@
1
+ import { EventsHandler } from "../Events";
2
+ import { IViewParams, View, ViewEventsList } from './View';
3
+ interface ICheckboxParams extends IViewParams {
4
+ label?: string;
5
+ checked?: boolean;
6
+ disabled?: boolean;
7
+ }
8
+ type CheckboxEventsList = ["change"];
9
+ declare class Checkbox extends View<null> {
10
+ events: EventsHandler<CheckboxEventsList> & EventsHandler<ViewEventsList>;
11
+ protected $label: HTMLElement | null;
12
+ protected $input: HTMLInputElement | null;
13
+ protected _checked: boolean;
14
+ protected _disabled: boolean;
15
+ constructor(options?: ICheckboxParams);
16
+ set disabled(disabled: boolean);
17
+ protected _updateDisabled(): void;
18
+ get disabled(): boolean;
19
+ render(params: any): this;
20
+ protected _onResize: () => void;
21
+ set checked(isChecked: boolean);
22
+ get checked(): boolean;
23
+ protected _initEvents(): void;
24
+ protected _clearEvents(): void;
25
+ protected _onMouseWheel: (e: WheelEvent) => void;
26
+ protected _onMouseWheelFF: (e: WheelEvent) => void;
27
+ protected _onClick: (e: Event) => void;
28
+ remove(): void;
29
+ set visibility(visibility: boolean);
30
+ }
31
+ export { Checkbox };
@@ -8,6 +8,7 @@ export interface IDialogParams extends IViewParams {
8
8
  width?: number;
9
9
  height?: number;
10
10
  left?: number;
11
+ right?: number;
11
12
  top?: number;
12
13
  minHeight?: number;
13
14
  maxHeight?: number;
@@ -28,6 +29,7 @@ declare class Dialog<M> extends View<M> {
28
29
  protected _startPosY: number;
29
30
  protected _closeBtn: Button;
30
31
  protected _visibility: boolean;
32
+ protected _right: number | null;
31
33
  constructor(options?: IDialogParams);
32
34
  setContainer(htmlStr: string): void;
33
35
  get container(): HTMLElement | null;
@@ -39,6 +41,7 @@ declare class Dialog<M> extends View<M> {
39
41
  hide(): void;
40
42
  close(): void;
41
43
  setVisibility(visibility: boolean): void;
44
+ getVisibility(): boolean;
42
45
  protected _initButtons(): void;
43
46
  protected _initEvents(): void;
44
47
  protected _onCloseBtnClick: () => void;
@@ -0,0 +1,32 @@
1
+ import { EventsHandler } from "../Events";
2
+ import { IViewParams, View, ViewEventsList } from './View';
3
+ interface IInputParams extends IViewParams {
4
+ label?: string;
5
+ value?: string;
6
+ min?: number;
7
+ max?: number;
8
+ type?: string;
9
+ maxFixed?: number;
10
+ }
11
+ type InputEventsList = ["change"];
12
+ declare class Input extends View<null> {
13
+ events: EventsHandler<InputEventsList> & EventsHandler<ViewEventsList>;
14
+ protected _value: string;
15
+ protected $label: HTMLElement | null;
16
+ protected $input: HTMLInputElement | null;
17
+ protected _maxFixed: number;
18
+ constructor(options?: IInputParams);
19
+ render(params: any): this;
20
+ protected _onResize: () => void;
21
+ set value(val: string | number);
22
+ protected _setValue(val: string | number): void;
23
+ get value(): string;
24
+ protected _initEvents(): void;
25
+ protected _clearEvents(): void;
26
+ protected _onMouseWheel: (e: WheelEvent) => void;
27
+ protected _onMouseWheelFF: (e: WheelEvent) => void;
28
+ protected _onInput: (e: Event) => void;
29
+ remove(): void;
30
+ set visibility(visibility: boolean);
31
+ }
32
+ export { Input };
@@ -1,4 +1,4 @@
1
- import { EventsHandler } from '../Events';
1
+ import { EventCallback, EventsHandler } from '../Events';
2
2
  export interface IViewParams {
3
3
  model?: any;
4
4
  template?: string;
@@ -16,6 +16,8 @@ declare class View<M> {
16
16
  el: HTMLElement | null;
17
17
  protected _classList: string[];
18
18
  constructor(options?: IViewParams);
19
+ on(name: string, callback: EventCallback, sender?: any, priority?: number): void;
20
+ off(name: string, callback: EventCallback): void;
19
21
  static getHTML(template: string, params: any): string;
20
22
  static parseHTML(htmlStr: string): HTMLElement[];
21
23
  static insertAfter(newNodes: HTMLElement | HTMLElement[], referenceNode: Node): HTMLElement[];
@@ -1,24 +1,56 @@
1
- interface IObjGeometryData {
1
+ import { NumberArray3 } from "../math/Vec3";
2
+ export interface IObjGeometryData {
2
3
  vertices: number[];
3
- textures: number[];
4
+ texCoords: number[];
4
5
  normals: number[];
5
6
  }
6
- interface IObjGeometry {
7
+ export interface IObjGeometry {
7
8
  object: string;
8
9
  groups: string[];
9
10
  material: string;
10
11
  data: IObjGeometryData;
11
12
  }
12
- interface IObjData {
13
- geometries: IObjGeometry[];
14
- materialLibs: string[];
13
+ export interface IObjMaterial {
14
+ ambient?: NumberArray3;
15
+ diffuse?: NumberArray3;
16
+ specular?: NumberArray3;
17
+ shininess?: number;
18
+ color?: NumberArray3;
19
+ opacity?: number;
20
+ illum?: number;
21
+ colorTexture?: string;
22
+ normalTexture?: string;
23
+ metallicRoughnessTexture?: string;
15
24
  }
16
- export declare function objParser(text: string): {
25
+ type MaterialMap = Record<string, IObjMaterial>;
26
+ export interface IObj {
17
27
  geometries: IObjGeometry[];
18
- materialLibs: string[];
19
- };
20
- export declare function transformLeftToRightCoordinateSystem(objData: IObjData): {
28
+ materials: MaterialMap;
29
+ }
30
+ export declare class Obj {
31
+ objPositions: number[][];
32
+ objTexcoords: number[][];
33
+ objNormals: number[][];
34
+ objVertexData: [number[][], number[][], number[][]];
35
+ vertexData: [number[], number[], number[]];
36
+ _materialLibs: string[];
21
37
  geometries: IObjGeometry[];
22
- materialLibs: string[];
23
- };
38
+ geometry: IObjGeometry | null;
39
+ materials: MaterialMap;
40
+ material: IObjMaterial;
41
+ object: string;
42
+ groups: string[];
43
+ keywords: Record<string, (parts: string[], unparsedArgs: string) => void>;
44
+ protected _path: string;
45
+ constructor();
46
+ newGeometry(): void;
47
+ setGeometry(): void;
48
+ addVertex(vert: string): void;
49
+ protected _innerParser(text: string, fileName: string): void;
50
+ get data(): IObj;
51
+ load(src: string): Promise<IObj>;
52
+ protected _readAndParse(file: File): Promise<void>;
53
+ readFile(objFile: File, mtlFile?: File): Promise<IObj>;
54
+ protected _cleanupGeometryArrays(): void;
55
+ }
24
56
  export {};
@@ -7,6 +7,7 @@ import { Vec2 } from "../math/Vec2";
7
7
  import { NumberArray2 } from "../math/Vec2";
8
8
  import { NumberArray3, Vec3 } from "../math/Vec3";
9
9
  import { NumberArray4, Vec4 } from "../math/Vec4";
10
+ import { Ellipsoid } from "../ellipsoid/Ellipsoid";
10
11
  export declare function getDefault(param?: any, def?: any): boolean;
11
12
  export declare function isEmpty(v: any): boolean;
12
13
  /**
@@ -261,3 +262,24 @@ export declare function isImageLoaded(image: HTMLImageElement): boolean;
261
262
  export declare function distanceFormat(v: number): string;
262
263
  export declare function distanceFormatExt(v: number): [string, string];
263
264
  export declare function getUrlParam(paramName: string): number | undefined;
265
+ /**
266
+ *
267
+ * @param x
268
+ * @param y
269
+ * @param z
270
+ * @param imageSize
271
+ * @param ellipsoid
272
+ *
273
+ * console.log(1, getTileImageResolution(0, 0, 1));
274
+ * console.log(7, getTileImageResolution(66, 44, 7));
275
+ * console.log(10, getTileImageResolution(536, 358, 10));
276
+ * console.log(12, getTileImageResolution(2149, 1446, 12));
277
+ * console.log(13, getTileImageResolution(4301, 2892, 13));
278
+ * console.log(14, getTileImageResolution(8582, 5736, 14));
279
+ * console.log(15, getTileImageResolution(17205, 11569, 15));
280
+ * console.log(16, getTileImageResolution(34419, 23138, 16));
281
+ * console.log(17, getTileImageResolution(68661, 45892, 17));
282
+ * console.log(18, getTileImageResolution(137650, 92555, 18));
283
+ */
284
+ export declare function getTileImageResolution(x: number, y: number, z: number, imageSize?: number, ellipsoid?: Ellipsoid): number[];
285
+ export declare function toFixedMax(value: number, maxFixed?: number): string;
@@ -1,6 +1,5 @@
1
1
  import { Handler } from "./Handler";
2
2
  export interface IBaseFramebufferParams {
3
- internalFormat?: string | string[];
4
3
  width?: number;
5
4
  height?: number;
6
5
  useDepth?: boolean;