@openglobus/og 0.11.7 → 0.12.3

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 (211) hide show
  1. package/css/og.css +5 -2
  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/Lighting.js +52 -73
  14. package/src/og/control/MouseNavigation.js +30 -29
  15. package/src/og/control/MouseWheelZoomControl.js +257 -0
  16. package/src/og/control/Sun.js +3 -3
  17. package/src/og/control/index.js +2 -0
  18. package/src/og/control/visibleExtent/Segment.js +1862 -0
  19. package/src/og/control/visibleExtent/VisibleExtent.js +80 -0
  20. package/src/og/control/visibleExtent/drawnode.js +751 -0
  21. package/src/og/entity/BaseBillboard.js +9 -9
  22. package/src/og/entity/Entity.js +742 -742
  23. package/src/og/entity/GeoObjectHandler.js +138 -134
  24. package/src/og/entity/Label.js +7 -7
  25. package/src/og/entity/LabelHandler.js +2 -1
  26. package/src/og/layer/CanvasTiles.js +8 -12
  27. package/src/og/layer/GeoImage.js +2 -10
  28. package/src/og/layer/GeoTexture2d.js +2 -10
  29. package/src/og/layer/GeoVideo.js +2 -10
  30. package/src/og/layer/KML.js +19 -12
  31. package/src/og/layer/Layer.js +4 -23
  32. package/src/og/layer/WMS.js +0 -2
  33. package/src/og/layer/XYZ.js +31 -33
  34. package/src/og/math/Vec3.js +18 -2
  35. package/src/og/quadTree/Node.js +48 -93
  36. package/src/og/quadTree/quadTree.js +1 -1
  37. package/src/og/renderer/Renderer.js +69 -96
  38. package/src/og/renderer/RendererEvents.js +3 -1
  39. package/src/og/scene/Planet.js +171 -173
  40. package/src/og/segment/Segment.js +99 -268
  41. package/src/og/segment/Slice.js +45 -0
  42. package/src/og/shaders/drawnode.js +171 -350
  43. package/src/og/shaders/geoObject.js +15 -6
  44. package/src/og/terrain/EmptyTerrain.js +3 -2
  45. package/src/og/terrain/GlobusTerrain.js +2 -0
  46. package/src/og/utils/GeoImageCreator.js +5 -1
  47. package/src/og/utils/Loader.js +1 -1
  48. package/src/og/utils/PlainSegmentWorker.js +0 -13
  49. package/src/og/webgl/Handler.js +14 -10
  50. package/types/Clock.d.ts +94 -0
  51. package/types/Deferred.d.ts +6 -0
  52. package/types/Events.d.ts +77 -0
  53. package/types/Extent.d.ts +166 -0
  54. package/types/Globe.d.ts +85 -0
  55. package/types/ImageCanvas.d.ts +123 -0
  56. package/types/Lock.d.ts +12 -0
  57. package/types/LonLat.d.ts +108 -0
  58. package/types/Popup.d.ts +42 -0
  59. package/types/QueueArray.d.ts +19 -0
  60. package/types/Rectangle.d.ts +80 -0
  61. package/types/Stack.d.ts +19 -0
  62. package/types/ajax.d.ts +24 -0
  63. package/types/arial.d.ts +48 -0
  64. package/types/astro/astro.d.ts +38 -0
  65. package/types/astro/earth.d.ts +7 -0
  66. package/types/astro/jd.d.ts +254 -0
  67. package/types/bv/Box.d.ts +30 -0
  68. package/types/bv/Sphere.d.ts +38 -0
  69. package/types/bv/index.d.ts +3 -0
  70. package/types/camera/Camera.d.ts +312 -0
  71. package/types/camera/Frustum.d.ts +133 -0
  72. package/types/camera/PlanetCamera.d.ts +219 -0
  73. package/types/camera/index.d.ts +3 -0
  74. package/types/cons.d.ts +40 -0
  75. package/types/control/CompassButton.d.ts +17 -0
  76. package/types/control/Control.d.ts +104 -0
  77. package/types/control/DebugInfo.d.ts +15 -0
  78. package/types/control/EarthCoordinates.d.ts +47 -0
  79. package/types/control/EarthNavigation.d.ts +43 -0
  80. package/types/control/GeoImageDragControl.d.ts +6 -0
  81. package/types/control/KeyboardNavigation.d.ts +21 -0
  82. package/types/control/LayerSwitcher.d.ts +21 -0
  83. package/types/control/Lighting.d.ts +16 -0
  84. package/types/control/MouseNavigation.d.ts +48 -0
  85. package/types/control/MouseWheelZoomControl.d.ts +45 -0
  86. package/types/control/ScaleControl.d.ts +22 -0
  87. package/types/control/ShowFps.d.ts +11 -0
  88. package/types/control/SimpleNavigation.d.ts +25 -0
  89. package/types/control/Sun.d.ts +50 -0
  90. package/types/control/ToggleWireframe.d.ts +12 -0
  91. package/types/control/TouchNavigation.d.ts +48 -0
  92. package/types/control/ZoomControl.d.ts +27 -0
  93. package/types/control/index.d.ts +18 -0
  94. package/types/ellipsoid/Ellipsoid.d.ts +146 -0
  95. package/types/ellipsoid/index.d.ts +3 -0
  96. package/types/ellipsoid/wgs84.d.ts +6 -0
  97. package/types/entity/BaseBillboard.d.ts +215 -0
  98. package/types/entity/Billboard.d.ts +94 -0
  99. package/types/entity/BillboardHandler.d.ts +79 -0
  100. package/types/entity/Entity.d.ts +348 -0
  101. package/types/entity/EntityCollection.d.ts +317 -0
  102. package/types/entity/GeoObject.d.ts +111 -0
  103. package/types/entity/GeoObjectHandler.d.ts +81 -0
  104. package/types/entity/Geometry.d.ts +74 -0
  105. package/types/entity/GeometryHandler.d.ts +76 -0
  106. package/types/entity/Label.d.ts +189 -0
  107. package/types/entity/LabelHandler.d.ts +31 -0
  108. package/types/entity/LabelWorker.d.ts +11 -0
  109. package/types/entity/PointCloud.d.ts +174 -0
  110. package/types/entity/PointCloudHandler.d.ts +38 -0
  111. package/types/entity/Polyline.d.ts +306 -0
  112. package/types/entity/PolylineHandler.d.ts +18 -0
  113. package/types/entity/Ray.d.ts +124 -0
  114. package/types/entity/RayHandler.d.ts +67 -0
  115. package/types/entity/ShapeHandler.d.ts +22 -0
  116. package/types/entity/Strip.d.ts +119 -0
  117. package/types/entity/StripHandler.d.ts +38 -0
  118. package/types/entity/index.d.ts +8 -0
  119. package/types/index.core.d.ts +65 -0
  120. package/types/index.d.ts +45 -0
  121. package/types/index.webgl.d.ts +7 -0
  122. package/types/input/KeyboardHandler.d.ts +10 -0
  123. package/types/input/MouseHandler.d.ts +5 -0
  124. package/types/input/TouchHandler.d.ts +5 -0
  125. package/types/input/input.d.ts +34 -0
  126. package/types/layer/BaseGeoImage.d.ts +94 -0
  127. package/types/layer/CanvasTiles.d.ts +67 -0
  128. package/types/layer/GeoImage.d.ts +52 -0
  129. package/types/layer/GeoTexture2d.d.ts +8 -0
  130. package/types/layer/GeoVideo.d.ts +55 -0
  131. package/types/layer/KML.d.ts +68 -0
  132. package/types/layer/Layer.d.ts +310 -0
  133. package/types/layer/Material.d.ts +45 -0
  134. package/types/layer/Vector.d.ts +208 -0
  135. package/types/layer/WMS.d.ts +61 -0
  136. package/types/layer/XYZ.d.ts +119 -0
  137. package/types/layer/index.d.ts +10 -0
  138. package/types/light/LightSource.d.ts +178 -0
  139. package/types/math/Line2.d.ts +11 -0
  140. package/types/math/Line3.d.ts +10 -0
  141. package/types/math/Mat3.d.ts +65 -0
  142. package/types/math/Mat4.d.ts +176 -0
  143. package/types/math/Plane.d.ts +18 -0
  144. package/types/math/Quat.d.ts +379 -0
  145. package/types/math/Ray.d.ts +82 -0
  146. package/types/math/Vec2.d.ts +309 -0
  147. package/types/math/Vec3.d.ts +467 -0
  148. package/types/math/Vec4.d.ts +162 -0
  149. package/types/math/coder.d.ts +43 -0
  150. package/types/math/index.d.ts +11 -0
  151. package/types/math.d.ts +261 -0
  152. package/types/mercator.d.ts +92 -0
  153. package/types/proj/EPSG3857.d.ts +6 -0
  154. package/types/proj/EPSG4326.d.ts +6 -0
  155. package/types/proj/Proj.d.ts +42 -0
  156. package/types/quadTree/EntityCollectionNode.d.ts +34 -0
  157. package/types/quadTree/Node.d.ts +60 -0
  158. package/types/quadTree/quadTree.d.ts +40 -0
  159. package/types/renderer/Renderer.d.ts +290 -0
  160. package/types/renderer/RendererEvents.d.ts +237 -0
  161. package/types/res/images.d.ts +3 -0
  162. package/types/scene/Axes.d.ts +11 -0
  163. package/types/scene/BaseNode.d.ts +60 -0
  164. package/types/scene/Planet.d.ts +576 -0
  165. package/types/scene/RenderNode.d.ts +142 -0
  166. package/types/scene/SkyBox.d.ts +10 -0
  167. package/types/scene/index.d.ts +4 -0
  168. package/types/segment/Segment.d.ts +275 -0
  169. package/types/segment/SegmentLonLat.d.ts +17 -0
  170. package/types/segment/Slice.d.ts +10 -0
  171. package/types/segment/segmentHelper.d.ts +13 -0
  172. package/types/shaders/billboard.d.ts +3 -0
  173. package/types/shaders/depth.d.ts +2 -0
  174. package/types/shaders/drawnode.d.ts +7 -0
  175. package/types/shaders/geoObject.d.ts +3 -0
  176. package/types/shaders/label.d.ts +4 -0
  177. package/types/shaders/pointCloud.d.ts +2 -0
  178. package/types/shaders/polyline.d.ts +3 -0
  179. package/types/shaders/ray.d.ts +2 -0
  180. package/types/shaders/screenFrame.d.ts +2 -0
  181. package/types/shaders/shape.d.ts +4 -0
  182. package/types/shaders/skybox.d.ts +2 -0
  183. package/types/shaders/toneMapping.d.ts +2 -0
  184. package/types/shapes/BaseShape.d.ts +250 -0
  185. package/types/shapes/Sphere.d.ts +41 -0
  186. package/types/terrain/BilTerrain.d.ts +7 -0
  187. package/types/terrain/EmptyTerrain.d.ts +73 -0
  188. package/types/terrain/Geoid.d.ts +26 -0
  189. package/types/terrain/GlobusTerrain.d.ts +116 -0
  190. package/types/terrain/MapboxTerrain.d.ts +7 -0
  191. package/types/terrain/index.d.ts +5 -0
  192. package/types/utils/FontAtlas.d.ts +15 -0
  193. package/types/utils/GeoImageCreator.d.ts +30 -0
  194. package/types/utils/ImagesCacheManager.d.ts +10 -0
  195. package/types/utils/Loader.d.ts +25 -0
  196. package/types/utils/NormalMapCreator.d.ts +39 -0
  197. package/types/utils/PlainSegmentWorker.d.ts +10 -0
  198. package/types/utils/TerrainWorker.d.ts +9 -0
  199. package/types/utils/TextureAtlas.d.ts +111 -0
  200. package/types/utils/VectorTileCreator.d.ts +16 -0
  201. package/types/utils/colorTable.d.ts +143 -0
  202. package/types/utils/earcut.d.ts +6 -0
  203. package/types/utils/shared.d.ts +231 -0
  204. package/types/webgl/Framebuffer.d.ts +135 -0
  205. package/types/webgl/Handler.d.ts +417 -0
  206. package/types/webgl/Multisample.d.ts +89 -0
  207. package/types/webgl/Program.d.ts +161 -0
  208. package/types/webgl/ProgramController.d.ts +89 -0
  209. package/types/webgl/callbacks.d.ts +1 -0
  210. package/types/webgl/index.d.ts +6 -0
  211. package/types/webgl/types.d.ts +2 -0
@@ -30,7 +30,8 @@ export const geo_object = () =>
30
30
  aDirection: { type: "vec3", divisor: 1 },
31
31
  aPitchRoll: { type: "vec2", divisor: 1 },
32
32
  aColor: { type: "vec4", divisor: 1 },
33
- aScale: { type: "float", divisor: 1 }
33
+ aScale: { type: "float", divisor: 1 },
34
+ aDispose: { type: "float", divisor: 1 }
34
35
  },
35
36
  vertexShader: `precision highp float;
36
37
 
@@ -42,6 +43,7 @@ export const geo_object = () =>
42
43
  attribute vec2 aPitchRoll;
43
44
  attribute vec4 aColor;
44
45
  attribute float aScale;
46
+ attribute float aDispose;
45
47
 
46
48
  uniform vec3 uScaleByDistance;
47
49
  uniform mat4 projectionMatrix;
@@ -54,11 +56,13 @@ export const geo_object = () =>
54
56
  varying vec3 vNormal;
55
57
  varying vec4 vPosition;
56
58
  varying vec4 vColor;
59
+ varying float vDispose;
57
60
 
58
61
  const float RADIANS = 3.141592653589793 / 180.0;
59
62
 
60
63
  void main(void) {
61
64
 
65
+ vDispose = aDispose;
62
66
  vColor = aColor;
63
67
  float roll = aPitchRoll.y * RADIANS;
64
68
  mat3 rotZ = mat3(
@@ -91,7 +95,7 @@ export const geo_object = () =>
91
95
 
92
96
  vPosition = viewMatrixRTE * vec4(highDiff + lowDiff, 1.0);
93
97
 
94
- gl_Position = projectionMatrix * vPosition;
98
+ gl_Position = mix(vec4(0.0, 0.0, 0.0, 0.0), projectionMatrix * vPosition, aDispose);
95
99
  }`,
96
100
  fragmentShader: `precision highp float;
97
101
 
@@ -135,7 +139,7 @@ export const geo_object_picking = () =>
135
139
 
136
140
  eyePositionHigh: "vec3",
137
141
  eyePositionLow: "vec3",
138
- pickingScale: "float",
142
+ pickingScale: "float"
139
143
 
140
144
  },
141
145
  attributes: {
@@ -145,7 +149,8 @@ export const geo_object_picking = () =>
145
149
  aDirection: { type: "vec3", divisor: 1 },
146
150
  aPitchRoll: { type: "vec2", divisor: 1 },
147
151
  aPickingColor: { type: "vec3", divisor: 1 },
148
- aScale: { type: "float", divisor: 1 }
152
+ aScale: { type: "float", divisor: 1 },
153
+ aDispose: { type: "float", divisor: 1 }
149
154
  },
150
155
  vertexShader: `precision highp float;
151
156
 
@@ -156,6 +161,7 @@ export const geo_object_picking = () =>
156
161
  attribute vec2 aPitchRoll;
157
162
  attribute vec3 aPickingColor;
158
163
  attribute float aScale;
164
+ attribute float aDispose;
159
165
 
160
166
  uniform vec3 uScaleByDistance;
161
167
  uniform mat4 projectionMatrix;
@@ -165,12 +171,14 @@ export const geo_object_picking = () =>
165
171
  uniform vec3 eyePositionHigh;
166
172
  uniform vec3 eyePositionLow;
167
173
 
174
+ varying float vDispose;
168
175
  varying vec3 vColor;
169
176
 
170
177
  const float RADIANS = 3.141592653589793 / 180.0;
171
178
 
172
179
  void main(void) {
173
180
 
181
+ vDispose = aDispose;
174
182
  vColor = aPickingColor;
175
183
  float roll = aPitchRoll.y * RADIANS;
176
184
  mat3 rotZ = mat3(
@@ -200,12 +208,13 @@ export const geo_object_picking = () =>
200
208
  mat4 viewMatrixRTE = viewMatrix;
201
209
  viewMatrixRTE[3] = vec4(0.0, 0.0, 0.0, 1.0);
202
210
 
203
- gl_Position = projectionMatrix *viewMatrixRTE * vec4(highDiff + lowDiff, 1.0);
211
+ gl_Position = mix(vec4(0.0, 0.0, 0.0, 0.0), projectionMatrix *viewMatrixRTE * vec4(highDiff + lowDiff, 1.0), aDispose);
204
212
  }`,
205
213
  fragmentShader:
206
214
  `precision highp float;
207
215
  varying vec3 vColor;
216
+ varying float vDispose;
208
217
  void main () {
209
- gl_FragColor = vec4(vColor, 1.0);
218
+ gl_FragColor = vec4(vColor, vDispose);
210
219
  }`
211
220
  });
@@ -14,7 +14,9 @@ class EmptyTerrain {
14
14
  constructor(options = {}) {
15
15
  this.equalizeVertices = false;
16
16
 
17
- this.equalizeNormals = false;
17
+ this.equalizeNormals = false;
18
+
19
+ this.isEmpty = true;
18
20
 
19
21
  /**
20
22
  * Provider name is "empty"
@@ -106,7 +108,6 @@ class EmptyTerrain {
106
108
 
107
109
  set geoid(geoid) {
108
110
  this._geoid = geoid;
109
- //...this._planet
110
111
  }
111
112
 
112
113
  get geoid() {
@@ -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
  /**
@@ -151,7 +151,11 @@ export class GeoImageCreator {
151
151
  `precision highp float;
152
152
  uniform sampler2D sourceTexture;
153
153
  varying vec2 v_texCoords;
154
- void main () {
154
+ void main () {
155
+ if(v_texCoords.x <= 0.001 || v_texCoords.x >= 0.999 ||
156
+ v_texCoords.y <= 0.001 || v_texCoords.y >= 0.999) {
157
+ discard;
158
+ }
155
159
  gl_FragColor = texture2D(sourceTexture, v_texCoords);
156
160
  }`
157
161
  }));
@@ -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;
@@ -919,7 +923,7 @@ class Handler {
919
923
  /** Canvas resize checking */
920
924
  let canvas = this.canvas;
921
925
 
922
- if (canvas.clientWidth * this._params.pixelRatio !== canvas.width || canvas.clientHeight * this._params.pixelRatio !== canvas.height) {
926
+ if (Math.floor(canvas.clientWidth * this._params.pixelRatio) !== canvas.width || Math.floor(canvas.clientHeight * this._params.pixelRatio) !== canvas.height) {
923
927
  this.setSize(canvas.clientWidth, canvas.clientHeight);
924
928
  }
925
929
 
@@ -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";