@openglobus/og 0.11.8 → 0.12.4

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 (197) hide show
  1. package/css/og.css +2 -0
  2. package/dist/@openglobus/og.css +1 -0
  3. package/dist/@openglobus/og.esm.js +21 -0
  4. package/dist/@openglobus/og.esm.js.map +1 -0
  5. package/dist/@openglobus/og.umd.js +21 -0
  6. package/dist/@openglobus/og.umd.js.map +1 -0
  7. package/package.json +11 -11
  8. package/src/og/Globe.js +18 -6
  9. package/src/og/camera/Camera.js +70 -79
  10. package/src/og/camera/PlanetCamera.js +25 -30
  11. package/src/og/control/DebugInfo.js +2 -2
  12. package/src/og/control/EarthNavigation.js +26 -17
  13. package/src/og/control/MouseNavigation.js +11 -13
  14. package/src/og/control/MouseWheelZoomControl.js +5 -5
  15. package/src/og/control/Sun.js +3 -3
  16. package/src/og/entity/Entity.js +742 -742
  17. package/src/og/entity/GeoObjectHandler.js +138 -134
  18. package/src/og/entity/LabelHandler.js +2 -1
  19. package/src/og/layer/CanvasTiles.js +8 -11
  20. package/src/og/layer/KML.js +19 -12
  21. package/src/og/layer/Layer.js +9 -2
  22. package/src/og/layer/XYZ.js +27 -28
  23. package/src/og/math/Vec3.js +18 -2
  24. package/src/og/quadTree/Node.js +48 -93
  25. package/src/og/quadTree/quadTree.js +1 -1
  26. package/src/og/renderer/Renderer.js +3 -5
  27. package/src/og/scene/Planet.js +147 -127
  28. package/src/og/segment/Segment.js +63 -136
  29. package/src/og/shaders/drawnode.js +132 -221
  30. package/src/og/shaders/geoObject.js +15 -6
  31. package/src/og/terrain/EmptyTerrain.js +3 -2
  32. package/src/og/terrain/GlobusTerrain.js +2 -0
  33. package/src/og/utils/Loader.js +1 -1
  34. package/src/og/utils/PlainSegmentWorker.js +0 -13
  35. package/src/og/webgl/Handler.js +13 -9
  36. package/types/Clock.d.ts +94 -0
  37. package/types/Deferred.d.ts +6 -0
  38. package/types/Events.d.ts +77 -0
  39. package/types/Extent.d.ts +166 -0
  40. package/types/Globe.d.ts +85 -0
  41. package/types/ImageCanvas.d.ts +123 -0
  42. package/types/Lock.d.ts +12 -0
  43. package/types/LonLat.d.ts +108 -0
  44. package/types/Popup.d.ts +42 -0
  45. package/types/QueueArray.d.ts +19 -0
  46. package/types/Rectangle.d.ts +80 -0
  47. package/types/Stack.d.ts +19 -0
  48. package/types/ajax.d.ts +24 -0
  49. package/types/arial.d.ts +48 -0
  50. package/types/astro/astro.d.ts +38 -0
  51. package/types/astro/earth.d.ts +7 -0
  52. package/types/astro/jd.d.ts +254 -0
  53. package/types/bv/Box.d.ts +30 -0
  54. package/types/bv/Sphere.d.ts +38 -0
  55. package/types/bv/index.d.ts +3 -0
  56. package/types/camera/Camera.d.ts +312 -0
  57. package/types/camera/Frustum.d.ts +133 -0
  58. package/types/camera/PlanetCamera.d.ts +219 -0
  59. package/types/camera/index.d.ts +3 -0
  60. package/types/cons.d.ts +40 -0
  61. package/types/control/CompassButton.d.ts +17 -0
  62. package/types/control/Control.d.ts +104 -0
  63. package/types/control/DebugInfo.d.ts +15 -0
  64. package/types/control/EarthCoordinates.d.ts +47 -0
  65. package/types/control/EarthNavigation.d.ts +43 -0
  66. package/types/control/GeoImageDragControl.d.ts +6 -0
  67. package/types/control/KeyboardNavigation.d.ts +21 -0
  68. package/types/control/LayerSwitcher.d.ts +21 -0
  69. package/types/control/Lighting.d.ts +16 -0
  70. package/types/control/MouseNavigation.d.ts +48 -0
  71. package/types/control/MouseWheelZoomControl.d.ts +45 -0
  72. package/types/control/ScaleControl.d.ts +22 -0
  73. package/types/control/ShowFps.d.ts +11 -0
  74. package/types/control/SimpleNavigation.d.ts +25 -0
  75. package/types/control/Sun.d.ts +50 -0
  76. package/types/control/ToggleWireframe.d.ts +12 -0
  77. package/types/control/TouchNavigation.d.ts +48 -0
  78. package/types/control/ZoomControl.d.ts +27 -0
  79. package/types/control/index.d.ts +18 -0
  80. package/types/ellipsoid/Ellipsoid.d.ts +146 -0
  81. package/types/ellipsoid/index.d.ts +3 -0
  82. package/types/ellipsoid/wgs84.d.ts +6 -0
  83. package/types/entity/BaseBillboard.d.ts +215 -0
  84. package/types/entity/Billboard.d.ts +94 -0
  85. package/types/entity/BillboardHandler.d.ts +79 -0
  86. package/types/entity/Entity.d.ts +348 -0
  87. package/types/entity/EntityCollection.d.ts +317 -0
  88. package/types/entity/GeoObject.d.ts +111 -0
  89. package/types/entity/GeoObjectHandler.d.ts +81 -0
  90. package/types/entity/Geometry.d.ts +74 -0
  91. package/types/entity/GeometryHandler.d.ts +76 -0
  92. package/types/entity/Label.d.ts +189 -0
  93. package/types/entity/LabelHandler.d.ts +31 -0
  94. package/types/entity/LabelWorker.d.ts +11 -0
  95. package/types/entity/PointCloud.d.ts +174 -0
  96. package/types/entity/PointCloudHandler.d.ts +38 -0
  97. package/types/entity/Polyline.d.ts +306 -0
  98. package/types/entity/PolylineHandler.d.ts +18 -0
  99. package/types/entity/Ray.d.ts +124 -0
  100. package/types/entity/RayHandler.d.ts +67 -0
  101. package/types/entity/ShapeHandler.d.ts +22 -0
  102. package/types/entity/Strip.d.ts +119 -0
  103. package/types/entity/StripHandler.d.ts +38 -0
  104. package/types/entity/index.d.ts +8 -0
  105. package/types/index.core.d.ts +65 -0
  106. package/types/index.d.ts +45 -0
  107. package/types/index.webgl.d.ts +7 -0
  108. package/types/input/KeyboardHandler.d.ts +10 -0
  109. package/types/input/MouseHandler.d.ts +5 -0
  110. package/types/input/TouchHandler.d.ts +5 -0
  111. package/types/input/input.d.ts +34 -0
  112. package/types/layer/BaseGeoImage.d.ts +94 -0
  113. package/types/layer/CanvasTiles.d.ts +67 -0
  114. package/types/layer/GeoImage.d.ts +52 -0
  115. package/types/layer/GeoTexture2d.d.ts +8 -0
  116. package/types/layer/GeoVideo.d.ts +55 -0
  117. package/types/layer/KML.d.ts +68 -0
  118. package/types/layer/Layer.d.ts +311 -0
  119. package/types/layer/Material.d.ts +45 -0
  120. package/types/layer/Vector.d.ts +208 -0
  121. package/types/layer/WMS.d.ts +61 -0
  122. package/types/layer/XYZ.d.ts +119 -0
  123. package/types/layer/index.d.ts +10 -0
  124. package/types/light/LightSource.d.ts +178 -0
  125. package/types/math/Line2.d.ts +11 -0
  126. package/types/math/Line3.d.ts +10 -0
  127. package/types/math/Mat3.d.ts +65 -0
  128. package/types/math/Mat4.d.ts +176 -0
  129. package/types/math/Plane.d.ts +18 -0
  130. package/types/math/Quat.d.ts +379 -0
  131. package/types/math/Ray.d.ts +82 -0
  132. package/types/math/Vec2.d.ts +309 -0
  133. package/types/math/Vec3.d.ts +467 -0
  134. package/types/math/Vec4.d.ts +162 -0
  135. package/types/math/coder.d.ts +43 -0
  136. package/types/math/index.d.ts +11 -0
  137. package/types/math.d.ts +261 -0
  138. package/types/mercator.d.ts +92 -0
  139. package/types/proj/EPSG3857.d.ts +6 -0
  140. package/types/proj/EPSG4326.d.ts +6 -0
  141. package/types/proj/Proj.d.ts +42 -0
  142. package/types/quadTree/EntityCollectionNode.d.ts +34 -0
  143. package/types/quadTree/Node.d.ts +60 -0
  144. package/types/quadTree/quadTree.d.ts +40 -0
  145. package/types/renderer/Renderer.d.ts +290 -0
  146. package/types/renderer/RendererEvents.d.ts +237 -0
  147. package/types/res/images.d.ts +3 -0
  148. package/types/scene/Axes.d.ts +11 -0
  149. package/types/scene/BaseNode.d.ts +60 -0
  150. package/types/scene/Planet.d.ts +576 -0
  151. package/types/scene/RenderNode.d.ts +142 -0
  152. package/types/scene/SkyBox.d.ts +10 -0
  153. package/types/scene/index.d.ts +4 -0
  154. package/types/segment/Segment.d.ts +275 -0
  155. package/types/segment/SegmentLonLat.d.ts +17 -0
  156. package/types/segment/Slice.d.ts +10 -0
  157. package/types/segment/segmentHelper.d.ts +13 -0
  158. package/types/shaders/billboard.d.ts +3 -0
  159. package/types/shaders/depth.d.ts +2 -0
  160. package/types/shaders/drawnode.d.ts +7 -0
  161. package/types/shaders/geoObject.d.ts +3 -0
  162. package/types/shaders/label.d.ts +4 -0
  163. package/types/shaders/pointCloud.d.ts +2 -0
  164. package/types/shaders/polyline.d.ts +3 -0
  165. package/types/shaders/ray.d.ts +2 -0
  166. package/types/shaders/screenFrame.d.ts +2 -0
  167. package/types/shaders/shape.d.ts +4 -0
  168. package/types/shaders/skybox.d.ts +2 -0
  169. package/types/shaders/toneMapping.d.ts +2 -0
  170. package/types/shapes/BaseShape.d.ts +250 -0
  171. package/types/shapes/Sphere.d.ts +41 -0
  172. package/types/terrain/BilTerrain.d.ts +7 -0
  173. package/types/terrain/EmptyTerrain.d.ts +73 -0
  174. package/types/terrain/Geoid.d.ts +26 -0
  175. package/types/terrain/GlobusTerrain.d.ts +116 -0
  176. package/types/terrain/MapboxTerrain.d.ts +7 -0
  177. package/types/terrain/index.d.ts +5 -0
  178. package/types/utils/FontAtlas.d.ts +15 -0
  179. package/types/utils/GeoImageCreator.d.ts +30 -0
  180. package/types/utils/ImagesCacheManager.d.ts +10 -0
  181. package/types/utils/Loader.d.ts +25 -0
  182. package/types/utils/NormalMapCreator.d.ts +39 -0
  183. package/types/utils/PlainSegmentWorker.d.ts +10 -0
  184. package/types/utils/TerrainWorker.d.ts +9 -0
  185. package/types/utils/TextureAtlas.d.ts +111 -0
  186. package/types/utils/VectorTileCreator.d.ts +16 -0
  187. package/types/utils/colorTable.d.ts +143 -0
  188. package/types/utils/earcut.d.ts +6 -0
  189. package/types/utils/shared.d.ts +231 -0
  190. package/types/webgl/Framebuffer.d.ts +135 -0
  191. package/types/webgl/Handler.d.ts +417 -0
  192. package/types/webgl/Multisample.d.ts +89 -0
  193. package/types/webgl/Program.d.ts +161 -0
  194. package/types/webgl/ProgramController.d.ts +89 -0
  195. package/types/webgl/callbacks.d.ts +1 -0
  196. package/types/webgl/index.d.ts +6 -0
  197. package/types/webgl/types.d.ts +2 -0
@@ -66,6 +66,8 @@ class GlobusTerrain extends EmptyTerrain {
66
66
  */
67
67
  this.events = new Events(EVENT_NAMES, this);
68
68
 
69
+ this.isEmpty = false;
70
+
69
71
  this.equalizeNormals = true;
70
72
 
71
73
  /**
@@ -16,7 +16,7 @@ if (window && !('createImageBitmap' in window)) {
16
16
 
17
17
  export class Loader {
18
18
 
19
- constructor(maxRequests = 12) {
19
+ constructor(maxRequests = 24) {
20
20
 
21
21
  this.MAX_REQUESTS = maxRequests;
22
22
 
@@ -222,19 +222,6 @@ const _programm = `
222
222
  res.x = nc * Math.sin(lonrad);
223
223
  res.y = (N * (1.0 - E2) + h) * slt;
224
224
  res.z = nc * Math.cos(lonrad);
225
-
226
- //let cosLat = Math.cos(lat * RADIANS)
227
- //let sinLat = Math.sin(lat * RADIANS)
228
-
229
- //let cosLong = Math.cos(lon * RADIANS)
230
- //let sinLong = Math.sin(lon * RADIANS)
231
-
232
- //let c = 1.0 / Math.sqrt(cosLat * cosLat + (1 - f) * (1 - f) * sinLat * sinLat)
233
- //s = (1 - f) * (1 - f) * c
234
-
235
- //x = (R*c + altitude) * cosLat * cosLong
236
- //y = (R*c + altitude) * cosLat * sinLong
237
- //z = (R*s + altitude) * sinLat
238
225
  };
239
226
 
240
227
  var lonLatToCartesianInverse = function (lon, lat, heightFactor, res){
@@ -646,13 +646,17 @@ class Handler {
646
646
  this.initializeExtension(this._params.extensions[i], true);
647
647
  }
648
648
 
649
- //
650
- //TODO: webgl1 case
651
- //
652
- this.createTexture_n = this.createTexture_n_webgl2.bind(this);
653
- this.createTexture_l = this.createTexture_l_webgl2.bind(this);
654
- this.createTexture_mm = this.createTexture_mm_webgl2.bind(this);
655
- this.createTexture_a = this.createTexture_a_webgl2.bind(this);
649
+ if (this.gl.type === "webgl") {
650
+ this.createTexture_n = this.createTexture_n_webgl1.bind(this);
651
+ this.createTexture_l = this.createTexture_l_webgl1.bind(this);
652
+ this.createTexture_mm = this.createTexture_mm_webgl1.bind(this);
653
+ this.createTexture_a = this.createTexture_a_webgl1.bind(this);
654
+ } else {
655
+ this.createTexture_n = this.createTexture_n_webgl2.bind(this);
656
+ this.createTexture_l = this.createTexture_l_webgl2.bind(this);
657
+ this.createTexture_mm = this.createTexture_mm_webgl2.bind(this);
658
+ this.createTexture_a = this.createTexture_a_webgl2.bind(this);
659
+ }
656
660
 
657
661
  this.createTexture["NEAREST"] = this.createTexture_n;
658
662
  this.createTexture["LINEAR"] = this.createTexture_l;
@@ -979,7 +983,7 @@ class Handler {
979
983
  if (params && params.color) {
980
984
  imgCnv = new ImageCanvas(2, 2);
981
985
  imgCnv.fillColor(params.color);
982
- texture = this.createTexture_n_webgl2(imgCnv._canvas, this.gl.RGBA8);
986
+ texture = this.createTexture_n_webgl2(imgCnv._canvas);
983
987
  texture.default = true;
984
988
  success(texture);
985
989
  } else if (params && params.url) {
@@ -994,7 +998,7 @@ class Handler {
994
998
  } else {
995
999
  imgCnv = new ImageCanvas(2, 2);
996
1000
  imgCnv.fillColor("#C5C5C5");
997
- texture = this.createTexture_n_webgl2(imgCnv._canvas, this.gl.RGBA8);
1001
+ texture = this.createTexture_n_webgl2(imgCnv._canvas);
998
1002
  texture.default = true;
999
1003
  success(texture);
1000
1004
  }
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Class represents application timer that stores custom current julian datetime, and time speed multiplier.
3
+ * @class
4
+ * @param {Object} [params] - Clock parameters:
5
+ * @param {number} [params.startDate=0.0] - Julian start date.
6
+ * @param {number} [params.endDate=0.0] - Julian end date.
7
+ * @param {number} [params.currentDate] - Julian current date. Default: current date.
8
+ * @param {number} [params.multiplier=1.0] - Time speed multiolier.
9
+ */
10
+ export class Clock {
11
+ static set _staticCounter(arg: any);
12
+ static get _staticCounter(): any;
13
+ /**
14
+ *
15
+ * @param {Object} [params] - Clock parameters:
16
+ */
17
+ constructor(params?: any);
18
+ _id: number;
19
+ /**
20
+ * Clock name.
21
+ * @public
22
+ * @type {string}
23
+ */
24
+ public name: string;
25
+ /**
26
+ * Clock events.
27
+ * @public
28
+ * @type {Events}
29
+ */
30
+ public events: Events;
31
+ /**
32
+ * Start julian date clock loop.
33
+ * @public
34
+ * @type {number}
35
+ */
36
+ public startDate: number;
37
+ /**
38
+ * End julian date clock loop.
39
+ * @public
40
+ * @type {number}
41
+ */
42
+ public endDate: number;
43
+ /**
44
+ * Current julian datetime.
45
+ * @public
46
+ * @type {number}
47
+ */
48
+ public currentDate: number;
49
+ /**
50
+ * Timer speed multiplier.
51
+ * @public
52
+ * @type {number}
53
+ */
54
+ public multiplier: number;
55
+ /**
56
+ * Animation frame delta time.
57
+ * @public
58
+ * @readonly
59
+ * @type {number}
60
+ */
61
+ public readonly deltaTicks: number;
62
+ /**
63
+ * Timer activity.
64
+ * @public
65
+ * @type {boolean}
66
+ */
67
+ public active: boolean;
68
+ _intervalDelay: number;
69
+ _intervalStart: number;
70
+ _intervalCallback: any;
71
+ clearInterval(): void;
72
+ setInterval(delay: any, callback: any): void;
73
+ /**
74
+ * Sets current clock datetime.
75
+ * @public
76
+ * @param {Object} date - JavaScript Date object.
77
+ */
78
+ public setDate(date: any): void;
79
+ /**
80
+ * Returns current application date.
81
+ * @public
82
+ * @returns {Date} - Current date.
83
+ */
84
+ public getDate(): Date;
85
+ reset(): void;
86
+ _tick(dt: any): void;
87
+ /**
88
+ * @public
89
+ * @param {Clock} clock - Clock instance to compare.
90
+ * @returns {boolean} - Returns true if a clock is the same instance.
91
+ */
92
+ public equal(clock: Clock): boolean;
93
+ }
94
+ import { Events } from "./Events.js";
@@ -0,0 +1,6 @@
1
+ export function Deferred(): void;
2
+ export class Deferred {
3
+ resolve: any;
4
+ reject: any;
5
+ promise: Promise<any>;
6
+ }
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Base events class to handle custom events.
3
+ * @class
4
+ */
5
+ export class Events {
6
+ static set _staticCounter(arg: any);
7
+ static get _staticCounter(): any;
8
+ /**
9
+ *
10
+ * @param {Array.<string>} [eventNames] - Event names that could be dispatched.
11
+ * @param {*} [sender]
12
+ */
13
+ constructor(eventNames?: Array<string>, sender?: any);
14
+ /**
15
+ * Registered event names.
16
+ * @protected
17
+ * @type {Array.<string>}
18
+ */
19
+ protected _eventNames: Array<string>;
20
+ _sender: any;
21
+ /**
22
+ * Stop propagation flag
23
+ * @protected
24
+ * @type {boolean}
25
+ */
26
+ protected _stopPropagation: boolean;
27
+ _stampCache: {};
28
+ __id: number;
29
+ bindSender(sender: any): void;
30
+ /**
31
+ * Function that creates event object properties that would be dispatched.
32
+ * @public
33
+ * @param {Array.<string>} eventNames - Specified event names list.
34
+ */
35
+ public registerNames(eventNames: Array<string>): void;
36
+ _getStamp(name: any, id: any, ogid: any): string;
37
+ /**
38
+ * Returns true if event callback has stamped.
39
+ * @protected
40
+ * @param {Object} name - Event identifier.
41
+ * @param {Object} obj - Event callback.
42
+ * @return {boolean} -
43
+ */
44
+ protected _stamp(name: any, obj: any): boolean;
45
+ /**
46
+ * Attach listener.
47
+ * @public
48
+ * @param {string} name - Event name to listen.
49
+ * @param {eventCallback} callback - Event callback function.
50
+ * @param {Object} sender - Event callback function owner.
51
+ */
52
+ public on(name: string, callback: eventCallback, sender: any, priority?: number): void;
53
+ /**
54
+ * Stop listening event name with specified callback function.
55
+ * @public
56
+ * @param {string} name - Event name.
57
+ * @param {eventCallback} callback - Attached event callback.
58
+ */
59
+ public off(name: string, callback: eventCallback): void;
60
+ /**
61
+ * Dispatch event.
62
+ * @public
63
+ * @param {Object} event - Event instance property that created by event name.
64
+ * @param {Object} [obj] - Event object.
65
+ */
66
+ public dispatch(event: any, ...args: any[]): boolean;
67
+ /**
68
+ * Brakes events propagation.
69
+ * @public
70
+ */
71
+ public stopPropagation(): void;
72
+ /**
73
+ * Removes all events.
74
+ * @public
75
+ */
76
+ public clear(): void;
77
+ }
@@ -0,0 +1,166 @@
1
+ /**
2
+ * Represents geographical coordinates extent.
3
+ * @class
4
+ * @param {LonLat} [sw] - South West extent corner coordiantes.
5
+ * @param {LonLat} [ne] - North East extent corner coordiantes.
6
+ */
7
+ export class Extent {
8
+ /**
9
+ * Whole mercator extent.
10
+ * @const
11
+ */
12
+ static get FULL_MERC(): Extent;
13
+ /**
14
+ * Degrees extent from north mercator limit to north pole.
15
+ * @const
16
+ */
17
+ static get NORTH_POLE_DEG(): Extent;
18
+ /**
19
+ * Degrees extent from south pole to south mercator limit.
20
+ * @const
21
+ */
22
+ static get SOUTH_POLE_DEG(): Extent;
23
+ /**
24
+ * Creates extent instance from values in array.
25
+ * @static
26
+ * @param {Array.<number>} arr - South west and north east longitude and latidudes packed in array. (exactly 4 entries)
27
+ * @return {Extent} Extent object.
28
+ */
29
+ static createFromArray(arr: Array<number>): Extent;
30
+ /**
31
+ * Creates bound extent instance by coordinate array.
32
+ * @static
33
+ * @param {Array.<LonLat>} arr - Coordinate array.
34
+ * @return {Extent} Extent object.
35
+ */
36
+ static createByCoordinates(arr: Array<LonLat>): Extent;
37
+ /**
38
+ * Creates bound extent instance by coordinate array.
39
+ * @static
40
+ * @param {Array.<Array<number>>} arr - Coordinate array. (exactly 2 entries)
41
+ * @return {Extent} Extent object.
42
+ */
43
+ static createByCoordinatesArr(arr: Array<Array<number>>): Extent;
44
+ /**
45
+ * Creates extent by meractor grid tile coordinates.
46
+ * @static
47
+ * @param {number} x -
48
+ * @param {number} y -
49
+ * @param {number} z -
50
+ * @param {number} width -
51
+ * @param {number} height -
52
+ * @returns {Extent} -
53
+ */
54
+ static fromTile(x: number, y: number, z: number, width: number, height: number): Extent;
55
+ /**
56
+ * @param {LonLat} [sw] - South West extent corner coordiantes.
57
+ * @param {LonLat} [ne] - North East extent corner coordiantes.
58
+ */
59
+ constructor(sw?: LonLat, ne?: LonLat);
60
+ /**
61
+ * @public
62
+ */
63
+ public southWest: LonLat;
64
+ /**
65
+ * @public
66
+ */
67
+ public northEast: LonLat;
68
+ /**
69
+ * Sets current bounding extent object by coordinate array.
70
+ * @public
71
+ * @param {Array.<LonLat>} arr - Coordinate array.
72
+ * @return {Extent} Current extent.
73
+ */
74
+ public setByCoordinates(arr: Array<LonLat>): Extent;
75
+ /**
76
+ * Determines if point inside extent.
77
+ * @public
78
+ * @param {LonLat} lonlat - Coordinate point.
79
+ * @return {boolean} Returns true if point inside extent.
80
+ */
81
+ public isInside(lonlat: LonLat): boolean;
82
+ /**
83
+ * Returns true if two extent overlap each other.
84
+ * @public
85
+ * @param {Extent} e - Another extent.
86
+ * @return {boolean} -
87
+ */
88
+ public overlaps(e: Extent): boolean;
89
+ /**
90
+ * Gets extent width.
91
+ * @public
92
+ * @return {number} Extent width.
93
+ */
94
+ public getWidth(): number;
95
+ /**
96
+ * Gets extent height.
97
+ * @public
98
+ * @return {number} Extent height.
99
+ */
100
+ public getHeight(): number;
101
+ /**
102
+ * Creates clone instance of the current extent.
103
+ * @public
104
+ * @return {Extent} Extent clone.
105
+ */
106
+ public clone(): Extent;
107
+ /**
108
+ * Gets the center coordinate of the extent.
109
+ * @public
110
+ * @return {number} Center coordinate.
111
+ */
112
+ public getCenter(): number;
113
+ /**
114
+ * @public
115
+ */
116
+ public getNorthWest(): LonLat;
117
+ /**
118
+ * @public
119
+ */
120
+ public getNorthEast(): LonLat;
121
+ getSouthWest(): LonLat;
122
+ /**
123
+ * @public
124
+ */
125
+ public getSouthEast(): LonLat;
126
+ /**
127
+ * @public
128
+ */
129
+ public getNorth(): number;
130
+ getEast(): number;
131
+ /**
132
+ * @public
133
+ */
134
+ public getWest(): number;
135
+ /**
136
+ * @public
137
+ */
138
+ public getSouth(): number;
139
+ /**
140
+ * Returns extents are equals.
141
+ * @param {Extent} extent - Extent.
142
+ * @returns {boolean} -
143
+ */
144
+ equals(extent: Extent): boolean;
145
+ /**
146
+ * Converts extent coordinates to mercator projection coordinates.
147
+ * @public
148
+ * @return {Extent} New instance of the current extent.
149
+ */
150
+ public forwardMercator(): Extent;
151
+ /**
152
+ * Converts extent coordinates from mercator projection to degrees.
153
+ * @public
154
+ * @return {Extent} New instance of the current extent.
155
+ */
156
+ public inverseMercator(): Extent;
157
+ /**
158
+ * Gets cartesian bounding bounds of the current ellipsoid.
159
+ * @public
160
+ * @param {Ellipsoid} ellipsoid - Ellipsoid.
161
+ * @return {Array.<number>} Cartesian 3d coordinate array. (exactly 6 entries)
162
+ */
163
+ public getCartesianBounds(ellipsoid: Ellipsoid): Array<number>;
164
+ toString(): string;
165
+ }
166
+ import { LonLat } from "./LonLat.js";
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Creates a WebGL context with globe.
3
+ * @class
4
+ *
5
+ * @example <caption>Basic initialization</caption>
6
+ * globus = new og.Globe({
7
+ * 'atmosphere': false,
8
+ * 'target': 'globus',
9
+ * 'name': 'Earth',
10
+ * 'controls': [
11
+ * new og.control.MouseNavigation({ autoActivate: true }),
12
+ * new og.control.KeyboardNavigation({ autoActivate: true }),
13
+ * new og.control.EarthCoordinates({ autoActivate: true, center: false }),
14
+ * new og.control.LayerSwitcher({ autoActivate: true }),
15
+ * new og.control.ZoomControl({ autoActivate: true }),
16
+ * new og.control.TouchNavigation({ autoActivate: true }),
17
+ * new og.control.Sun({ autoActivate: true })
18
+ * ],
19
+ * 'terrain': new og.terrain.GlobusTerrain(),
20
+ * 'layers': [
21
+ * new og.layer.XYZ("OpenStreetMap", { isBaseLayer: true, url: "http://b.tile.openstreetmap.org/{z}/{x}/{y}.png", visibility: true, attribution: 'Data @ <a href="http://www.openstreetmap.org/">OpenStreetMap</a> contributors, <a href="http://www.openstreetmap.org/copyright">ODbL</a>' })
22
+ * ],
23
+ * 'autoActivate': true
24
+ * });
25
+ *
26
+ * @param {object} options - Options:
27
+ * @param {string} options.target - HTML element id where planet canvas have to be created.
28
+ * @param {RenderNode} [options.skybox] - Render skybox. null - default.
29
+ * @param {string} [options.name] - Planet name. Default is unic identifier.
30
+ * @param {Terrain} [options.terrain] - Terrain provider. Default no terrain - og.terrain.EmptyTerrain.
31
+ * @param {Array.<control.Control>} [options.controls] - Renderer controls array.
32
+ * @param {Array.<Layer>} [options.layers] - Planet layers.
33
+ * @param {Extent} [options.viewExtent] - Viewable starting extent.
34
+ * @param {boolean} [options.autoActivate] - Globe rendering auto activation flag. True is default.
35
+ * @param {DOMElement} [options.attributionContainer] - Container for attribution list.
36
+ * @param {Number} [options.maxGridSize] = Maximal segment grid size. 128 is default
37
+ * @param {boolean} [options.useSpecularTexture] - use specular water mask
38
+ * @param {boolean} [options.useNightTexture] - show night cities
39
+ * @param {Number} [options.maxAltitude=15000000.0] - Maximal camera altitude above terrain
40
+ * @param {Number} [options.minAltitude=1.0] - Minimal camera altitude above terrain
41
+ * @param {Number} [options.maxEqualZoomAltitude=15000000.0] - Maximal altitude since segments on the screen bacame the same zoom level
42
+ * @param {Number} [options.minEqualZoomAltitude=10000.0] - Minimal altitude since segments on the screen bacame the same zoom level
43
+ * @param {Number} [options.minEqualZoomCameraSlope=0.8] - Minimal camera slope above te globe where segments on the screen bacame the same zoom level
44
+ * @param {Number} [options.loadingBatchSize=12] -
45
+ */
46
+ export class Globe {
47
+ static set _staticCounter(arg: any);
48
+ static get _staticCounter(): any;
49
+ /**
50
+ * @param {*} options
51
+ */
52
+ constructor(options: any);
53
+ _canvas: HTMLCanvasElement;
54
+ div: any;
55
+ /**
56
+ * Interface for the renderer context(events, input states, renderer nodes etc.)
57
+ * @public
58
+ * @type {Renderer}
59
+ */
60
+ public renderer: Renderer;
61
+ /**
62
+ * Planet node name. Access with this.renderer.<name>
63
+ * @private
64
+ * @type {String}
65
+ */
66
+ private _planetName;
67
+ planet: Planet;
68
+ sun: any;
69
+ _opacityCounter: number;
70
+ _fadeHandler: any;
71
+ _stopHandler: any;
72
+ /**
73
+ * Starts screen brightness fading in effect by the duration time.
74
+ * @public
75
+ */
76
+ public fadeIn(): void;
77
+ /**
78
+ * Starts screen brightness fading out effect by the duration time.
79
+ * @public
80
+ * @param {number} duration - Fadeout duration time.
81
+ */
82
+ public fadeOut(): void;
83
+ }
84
+ import { Renderer } from "./renderer/Renderer.js";
85
+ import { Planet } from "./scene/Planet.js";
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Usefull class for working with JS canvas object.
3
+ * @class
4
+ */
5
+ export class ImageCanvas {
6
+ /**
7
+ * @param {number} [width] - Canvas width. Default 256.
8
+ * @param {number} [height] - Canvas height. Default 256.
9
+ */
10
+ constructor(width?: number, height?: number);
11
+ /**
12
+ * Canvas object.
13
+ * @protected
14
+ * @type {Object}
15
+ */
16
+ protected _canvas: any;
17
+ /**
18
+ * Canvas context.
19
+ * @protected
20
+ * @type {Object}
21
+ */
22
+ protected _context: any;
23
+ /**
24
+ * Returns canvas object.
25
+ * @public
26
+ * @returns {Object}
27
+ */
28
+ public getCanvas(): any;
29
+ /**
30
+ * Returns canvas context pointer.
31
+ * @public
32
+ * @returns {Object}
33
+ */
34
+ public getContext(): any;
35
+ /**
36
+ * Fills canvas RGBA with zeroes.
37
+ * @public
38
+ */
39
+ public fillEmpty(): void;
40
+ /**
41
+ * Gets canvas pixels RGBA data.
42
+ * @public
43
+ * @returns {Array.<number>}
44
+ */
45
+ public getData(): Array<number>;
46
+ /**
47
+ * Fill the canvas by color.
48
+ * @public
49
+ * @param {string} color - CSS string color.
50
+ */
51
+ public fillColor(color: string): void;
52
+ /**
53
+ * Sets RGBA pixel data.
54
+ * @public
55
+ * @param {Array.<number>} data - Array RGBA data.
56
+ */
57
+ public setData(data: Array<number>): void;
58
+ /**
59
+ * Resize canvas.
60
+ * @public
61
+ * @param {number} width - Width.
62
+ * @param {number} height - Height.
63
+ */
64
+ public resize(width: number, height: number): void;
65
+ /**
66
+ * Draw an image on the canvas.
67
+ * @public
68
+ * @param {Image} img - Draw image.
69
+ * @param {number} [x] - Left top image corner X coordinate on the canvas.
70
+ * @param {number} [y] - Left top image corner Y coordinate on the canvas.
71
+ * @param {number} [width] - Image width slice. Image width is default.
72
+ * @param {number} [height] - Image height slice. Image height is default.
73
+ */
74
+ public drawImage(img: new (width?: number, height?: number) => HTMLImageElement, x?: number, y?: number, width?: number, height?: number): void;
75
+ /**
76
+ * Converts canvas to JS image object.
77
+ * @public
78
+ * @returns {Image}
79
+ */
80
+ public getImage(): new (width?: number, height?: number) => HTMLImageElement;
81
+ /**
82
+ * Get measured text width.
83
+ * @public
84
+ * @param {string} text - Measured text.
85
+ * @returns {number}
86
+ */
87
+ public getTextWidth(text: string): number;
88
+ /**
89
+ * Draw a text on the canvas.
90
+ * @public
91
+ * @param {string} text - Text.
92
+ * @param {number} [x] - Canvas X - coordinate. 0 - default.
93
+ * @param {number} [y] - Canvas Y - coordinate. 0 - default.
94
+ * @param {string} [font] - Font style. 'normal 14px Verdana' - is default.
95
+ * @param {string} [color] - Css font color.
96
+ */
97
+ public drawText(text: string, x?: number, y?: number, font?: string, color?: string): void;
98
+ /**
99
+ * Gets canvas width.
100
+ * @public
101
+ * @returns {number}
102
+ */
103
+ public getWidth(): number;
104
+ /**
105
+ * Gets canvas height.
106
+ * @public
107
+ * @returns {number}
108
+ */
109
+ public getHeight(): number;
110
+ /**
111
+ * Load image to canvas.
112
+ * @public
113
+ * @param {string} url - Image url.
114
+ * @pararm {imageCallback} [callback] - Image onload callback.
115
+ */
116
+ public load(url: string, callback: any): void;
117
+ /**
118
+ * Open canvas image in the new window.
119
+ * @public
120
+ */
121
+ public openImage(): void;
122
+ destroy(): void;
123
+ }
@@ -0,0 +1,12 @@
1
+ export class Lock {
2
+ _lock: number;
3
+ lock(key: any): void;
4
+ free(key: any): void;
5
+ isFree(): boolean;
6
+ isLocked(): boolean;
7
+ }
8
+ export class Key {
9
+ static set _staticCounter(arg: any);
10
+ static get _staticCounter(): any;
11
+ _id: number;
12
+ }