@openglobus/og 0.11.4 → 0.11.8
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.
- package/css/og.css +3 -2
- package/package.json +12 -14
- package/src/og/Clock.js +6 -10
- package/src/og/Events.js +5 -7
- package/src/og/Extent.js +73 -32
- package/src/og/Globe.js +8 -5
- package/src/og/ImageCanvas.js +18 -15
- package/src/og/LonLat.js +13 -10
- package/src/og/Popup.js +19 -17
- package/src/og/QueueArray.js +3 -4
- package/src/og/Rectangle.js +4 -6
- package/src/og/Stack.js +2 -4
- package/src/og/ajax.js +20 -14
- package/src/og/astro/earth.js +21 -15
- package/src/og/bv/Box.js +2 -3
- package/src/og/bv/Sphere.js +10 -7
- package/src/og/camera/Frustum.js +19 -12
- package/src/og/camera/PlanetCamera.js +9 -5
- package/src/og/control/CompassButton.js +1 -2
- package/src/og/control/Control.js +7 -9
- package/src/og/control/DebugInfo.js +0 -1
- package/src/og/control/KeyboardNavigation.js +9 -9
- package/src/og/control/LayerSwitcher.js +21 -20
- package/src/og/control/Lighting.js +74 -64
- package/src/og/control/MouseNavigation.js +21 -18
- package/src/og/control/MouseWheelZoomControl.js +257 -0
- package/src/og/control/SegmentBoundVisualization.js +5 -6
- package/src/og/control/ShowFps.js +12 -7
- package/src/og/control/SimpleNavigation.js +5 -7
- package/src/og/control/Sun.js +22 -12
- package/src/og/control/ToggleWireframe.js +3 -3
- package/src/og/control/TouchNavigation.js +43 -32
- package/src/og/control/ZoomControl.js +40 -24
- package/src/og/control/index.js +2 -0
- package/src/og/control/visibleExtent/Segment.js +1862 -0
- package/src/og/control/visibleExtent/VisibleExtent.js +80 -0
- package/src/og/control/visibleExtent/drawnode.js +751 -0
- package/src/og/ellipsoid/Ellipsoid.js +149 -57
- package/src/og/ellipsoid/wgs84.js +3 -3
- package/src/og/entity/BaseBillboard.js +72 -30
- package/src/og/entity/Billboard.js +9 -5
- package/src/og/entity/BillboardHandler.js +315 -62
- package/src/og/entity/Entity.js +39 -1
- package/src/og/entity/EntityCollection.js +47 -24
- package/src/og/entity/GeoObject.js +228 -0
- package/src/og/entity/GeoObjectHandler.js +910 -0
- package/src/og/entity/GeometryHandler.js +595 -123
- package/src/og/entity/Label.js +62 -30
- package/src/og/entity/LabelHandler.js +40 -242
- package/src/og/entity/LabelWorker.js +218 -0
- package/src/og/entity/Object3d.js +504 -0
- package/src/og/entity/PointCloud.js +76 -28
- package/src/og/entity/PointCloudHandler.js +5 -5
- package/src/og/entity/Ray.js +49 -16
- package/src/og/entity/Strip.js +72 -43
- package/src/og/entity/StripHandler.js +23 -23
- package/src/og/layer/BaseGeoImage.js +50 -19
- package/src/og/layer/CanvasTiles.js +16 -17
- package/src/og/layer/GeoImage.js +8 -16
- package/src/og/layer/GeoTexture2d.js +2 -10
- package/src/og/layer/GeoVideo.js +2 -10
- package/src/og/layer/KML.js +55 -33
- package/src/og/layer/Layer.js +24 -32
- package/src/og/layer/Material.js +1 -1
- package/src/og/layer/Vector.js +94 -48
- package/src/og/layer/WMS.js +33 -18
- package/src/og/layer/XYZ.js +4 -5
- package/src/og/light/LightSource.js +19 -12
- package/src/og/math/Mat3.js +24 -12
- package/src/og/math/Mat4.js +603 -603
- package/src/og/math/Plane.js +19 -18
- package/src/og/math/Ray.js +17 -12
- package/src/og/math/Vec2.js +24 -14
- package/src/og/math/Vec3.js +60 -30
- package/src/og/math/coder.js +7 -7
- package/src/og/proj/EPSG3857.js +3 -3
- package/src/og/proj/EPSG4326.js +3 -3
- package/src/og/proj/Proj.js +2 -4
- package/src/og/quadTree/Node.js +3 -3
- package/src/og/renderer/Renderer.js +106 -124
- package/src/og/renderer/RendererEvents.js +45 -23
- package/src/og/scene/BaseNode.js +2 -3
- package/src/og/scene/Planet.js +51 -90
- package/src/og/scene/RenderNode.js +15 -8
- package/src/og/segment/Segment.js +60 -156
- package/src/og/segment/Slice.js +45 -0
- package/src/og/shaders/drawnode.js +245 -342
- package/src/og/shaders/geoObject.js +211 -0
- package/src/og/shaders/pointCloud.js +41 -41
- package/src/og/shaders/shape.js +12 -18
- package/src/og/shaders/skybox.js +36 -36
- package/src/og/shaders/toneMapping.js +1 -0
- package/src/og/shapes/BaseShape.js +108 -36
- package/src/og/shapes/Icosphere.js +25 -10
- package/src/og/shapes/Sphere.js +8 -11
- package/src/og/utils/FontAtlas.js +6 -2
- package/src/og/utils/GeoImageCreator.js +5 -1
- package/src/og/utils/TextureAtlas.js +18 -20
- package/src/og/utils/VectorTileCreator.js +1 -3
- package/src/og/utils/shared.js +2 -2
- package/src/og/webgl/Handler.js +215 -162
- package/src/og/webgl/Multisample.js +44 -16
- package/src/og/webgl/Program.js +78 -33
- package/src/og/webgl/callbacks.js +3 -3
- package/types/Clock.d.ts +0 -94
- package/types/Deferred.d.ts +0 -6
- package/types/Events.d.ts +0 -77
- package/types/Extent.d.ts +0 -166
- package/types/Globe.d.ts +0 -82
- package/types/ImageCanvas.d.ts +0 -123
- package/types/Lock.d.ts +0 -12
- package/types/LonLat.d.ts +0 -108
- package/types/Popup.d.ts +0 -42
- package/types/QueueArray.d.ts +0 -19
- package/types/Rectangle.d.ts +0 -80
- package/types/Stack.d.ts +0 -19
- package/types/ajax.d.ts +0 -24
- package/types/arial.d.ts +0 -48
- package/types/astro/astro.d.ts +0 -38
- package/types/astro/earth.d.ts +0 -7
- package/types/astro/jd.d.ts +0 -254
- package/types/bv/Box.d.ts +0 -30
- package/types/bv/Sphere.d.ts +0 -38
- package/types/bv/index.d.ts +0 -3
- package/types/camera/Camera.d.ts +0 -312
- package/types/camera/Frustum.d.ts +0 -133
- package/types/camera/PlanetCamera.d.ts +0 -218
- package/types/camera/index.d.ts +0 -3
- package/types/cons.d.ts +0 -40
- package/types/control/CompassButton.d.ts +0 -17
- package/types/control/Control.d.ts +0 -104
- package/types/control/DebugInfo.d.ts +0 -15
- package/types/control/EarthCoordinates.d.ts +0 -47
- package/types/control/EarthNavigation.d.ts +0 -42
- package/types/control/GeoImageDragControl.d.ts +0 -6
- package/types/control/KeyboardNavigation.d.ts +0 -21
- package/types/control/LayerSwitcher.d.ts +0 -21
- package/types/control/Lighting.d.ts +0 -16
- package/types/control/MouseNavigation.d.ts +0 -47
- package/types/control/ScaleControl.d.ts +0 -22
- package/types/control/ShowFps.d.ts +0 -11
- package/types/control/SimpleNavigation.d.ts +0 -25
- package/types/control/Sun.d.ts +0 -50
- package/types/control/ToggleWireframe.d.ts +0 -12
- package/types/control/TouchNavigation.d.ts +0 -48
- package/types/control/ZoomControl.d.ts +0 -27
- package/types/control/index.d.ts +0 -17
- package/types/ellipsoid/Ellipsoid.d.ts +0 -146
- package/types/ellipsoid/index.d.ts +0 -3
- package/types/ellipsoid/wgs84.d.ts +0 -6
- package/types/entity/BaseBillboard.d.ts +0 -208
- package/types/entity/Billboard.d.ts +0 -94
- package/types/entity/BillboardHandler.d.ts +0 -78
- package/types/entity/Entity.d.ts +0 -333
- package/types/entity/EntityCollection.d.ts +0 -311
- package/types/entity/Geometry.d.ts +0 -74
- package/types/entity/GeometryHandler.d.ts +0 -76
- package/types/entity/Label.d.ts +0 -189
- package/types/entity/LabelHandler.d.ts +0 -29
- package/types/entity/PointCloud.d.ts +0 -174
- package/types/entity/PointCloudHandler.d.ts +0 -38
- package/types/entity/Polyline.d.ts +0 -306
- package/types/entity/PolylineHandler.d.ts +0 -18
- package/types/entity/Ray.d.ts +0 -124
- package/types/entity/RayHandler.d.ts +0 -67
- package/types/entity/ShapeHandler.d.ts +0 -22
- package/types/entity/Strip.d.ts +0 -119
- package/types/entity/StripHandler.d.ts +0 -38
- package/types/entity/index.d.ts +0 -8
- package/types/index.core.d.ts +0 -65
- package/types/index.d.ts +0 -45
- package/types/index.webgl.d.ts +0 -7
- package/types/input/KeyboardHandler.d.ts +0 -10
- package/types/input/MouseHandler.d.ts +0 -5
- package/types/input/TouchHandler.d.ts +0 -5
- package/types/input/input.d.ts +0 -34
- package/types/layer/BaseGeoImage.d.ts +0 -94
- package/types/layer/CanvasTiles.d.ts +0 -68
- package/types/layer/GeoImage.d.ts +0 -52
- package/types/layer/GeoTexture2d.d.ts +0 -8
- package/types/layer/GeoVideo.d.ts +0 -55
- package/types/layer/KML.d.ts +0 -63
- package/types/layer/Layer.d.ts +0 -325
- package/types/layer/Material.d.ts +0 -45
- package/types/layer/Vector.d.ts +0 -208
- package/types/layer/WMS.d.ts +0 -63
- package/types/layer/XYZ.d.ts +0 -120
- package/types/layer/index.d.ts +0 -10
- package/types/light/LightSource.d.ts +0 -178
- package/types/math/Line2.d.ts +0 -11
- package/types/math/Line3.d.ts +0 -10
- package/types/math/Mat3.d.ts +0 -65
- package/types/math/Mat4.d.ts +0 -176
- package/types/math/Plane.d.ts +0 -18
- package/types/math/Quat.d.ts +0 -379
- package/types/math/Ray.d.ts +0 -82
- package/types/math/Vec2.d.ts +0 -309
- package/types/math/Vec3.d.ts +0 -460
- package/types/math/Vec4.d.ts +0 -162
- package/types/math/coder.d.ts +0 -43
- package/types/math/index.d.ts +0 -11
- package/types/math.d.ts +0 -261
- package/types/mercator.d.ts +0 -92
- package/types/proj/EPSG3857.d.ts +0 -6
- package/types/proj/EPSG4326.d.ts +0 -6
- package/types/proj/Proj.d.ts +0 -42
- package/types/quadTree/EntityCollectionNode.d.ts +0 -34
- package/types/quadTree/Node.d.ts +0 -61
- package/types/quadTree/quadTree.d.ts +0 -40
- package/types/renderer/Renderer.d.ts +0 -298
- package/types/renderer/RendererEvents.d.ts +0 -233
- package/types/res/images.d.ts +0 -3
- package/types/scene/Axes.d.ts +0 -11
- package/types/scene/BaseNode.d.ts +0 -60
- package/types/scene/Planet.d.ts +0 -577
- package/types/scene/RenderNode.d.ts +0 -142
- package/types/scene/SkyBox.d.ts +0 -10
- package/types/scene/index.d.ts +0 -4
- package/types/segment/Segment.d.ts +0 -279
- package/types/segment/SegmentLonLat.d.ts +0 -16
- package/types/segment/segmentHelper.d.ts +0 -13
- package/types/shaders/billboard.d.ts +0 -3
- package/types/shaders/depth.d.ts +0 -2
- package/types/shaders/drawnode.d.ts +0 -7
- package/types/shaders/label.d.ts +0 -4
- package/types/shaders/pointCloud.d.ts +0 -2
- package/types/shaders/polyline.d.ts +0 -3
- package/types/shaders/ray.d.ts +0 -2
- package/types/shaders/screenFrame.d.ts +0 -2
- package/types/shaders/shape.d.ts +0 -4
- package/types/shaders/skybox.d.ts +0 -2
- package/types/shaders/toneMapping.d.ts +0 -2
- package/types/shapes/BaseShape.d.ts +0 -250
- package/types/shapes/Sphere.d.ts +0 -41
- package/types/terrain/BilTerrain.d.ts +0 -7
- package/types/terrain/EmptyTerrain.d.ts +0 -72
- package/types/terrain/Geoid.d.ts +0 -26
- package/types/terrain/GlobusTerrain.d.ts +0 -116
- package/types/terrain/MapboxTerrain.d.ts +0 -7
- package/types/terrain/index.d.ts +0 -5
- package/types/utils/FontAtlas.d.ts +0 -14
- package/types/utils/GeoImageCreator.d.ts +0 -30
- package/types/utils/ImagesCacheManager.d.ts +0 -10
- package/types/utils/Loader.d.ts +0 -25
- package/types/utils/NormalMapCreator.d.ts +0 -39
- package/types/utils/PlainSegmentWorker.d.ts +0 -10
- package/types/utils/TerrainWorker.d.ts +0 -9
- package/types/utils/TextureAtlas.d.ts +0 -111
- package/types/utils/VectorTileCreator.d.ts +0 -16
- package/types/utils/colorTable.d.ts +0 -143
- package/types/utils/earcut.d.ts +0 -6
- package/types/utils/shared.d.ts +0 -231
- package/types/webgl/Framebuffer.d.ts +0 -135
- package/types/webgl/Handler.d.ts +0 -388
- package/types/webgl/Multisample.d.ts +0 -89
- package/types/webgl/Program.d.ts +0 -155
- package/types/webgl/ProgramController.d.ts +0 -89
- package/types/webgl/callbacks.d.ts +0 -1
- package/types/webgl/index.d.ts +0 -6
- package/types/webgl/types.d.ts +0 -2
package/src/og/Rectangle.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* 2D Rectangle class.
|
|
@@ -7,9 +7,8 @@
|
|
|
7
7
|
* @param {number} [top] - Top coordinate. 0 - default.
|
|
8
8
|
* @param {number} [right] - Right coordinate. 0 - default.
|
|
9
9
|
* @param {number} [bottom] - Bottom coordinate. 0 - default.
|
|
10
|
-
*/
|
|
10
|
+
*/
|
|
11
11
|
class Rectangle {
|
|
12
|
-
|
|
13
12
|
/**
|
|
14
13
|
* @param {number} [left] - Left coordinate. 0 - default.
|
|
15
14
|
* @param {number} [top] - Top coordinate. 0 - default.
|
|
@@ -17,7 +16,6 @@ class Rectangle {
|
|
|
17
16
|
* @param {number} [bottom] - Bottom coordinate. 0 - default.
|
|
18
17
|
*/
|
|
19
18
|
constructor(left, top, right, bottom) {
|
|
20
|
-
|
|
21
19
|
/**
|
|
22
20
|
* Left coordinate.
|
|
23
21
|
* @public
|
|
@@ -102,7 +100,7 @@ class Rectangle {
|
|
|
102
100
|
* @type {boolean}
|
|
103
101
|
*/
|
|
104
102
|
fit(width, height) {
|
|
105
|
-
return
|
|
103
|
+
return this.getWidth() == width && this.getHeight() == height;
|
|
106
104
|
}
|
|
107
105
|
|
|
108
106
|
isInside(x, y) {
|
|
@@ -110,4 +108,4 @@ class Rectangle {
|
|
|
110
108
|
}
|
|
111
109
|
}
|
|
112
110
|
|
|
113
|
-
export { Rectangle };
|
|
111
|
+
export { Rectangle };
|
package/src/og/Stack.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @module og/Stack
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
"use strict";
|
|
6
6
|
|
|
7
7
|
class Node {
|
|
8
8
|
constructor() {
|
|
@@ -13,13 +13,11 @@ class Node {
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
class Stack {
|
|
16
|
-
|
|
17
16
|
/**
|
|
18
|
-
*
|
|
17
|
+
*
|
|
19
18
|
* @param {number} [size]
|
|
20
19
|
*/
|
|
21
20
|
constructor(size = 256) {
|
|
22
|
-
|
|
23
21
|
this._current = new Node();
|
|
24
22
|
this._head = this._current;
|
|
25
23
|
|
package/src/og/ajax.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @module og/ajax
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
"use strict";
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Ajax parameters.
|
|
@@ -13,8 +13,7 @@ const ajax = {
|
|
|
13
13
|
* Ajax ready state result.
|
|
14
14
|
* @enum
|
|
15
15
|
*/
|
|
16
|
-
ReadyState:
|
|
17
|
-
{
|
|
16
|
+
ReadyState: {
|
|
18
17
|
Uninitialized: 0,
|
|
19
18
|
Loading: 1,
|
|
20
19
|
Loaded: 2,
|
|
@@ -25,8 +24,7 @@ const ajax = {
|
|
|
25
24
|
* Ajax status code.
|
|
26
25
|
* @enum
|
|
27
26
|
*/
|
|
28
|
-
Status:
|
|
29
|
-
{
|
|
27
|
+
Status: {
|
|
30
28
|
OK: 200,
|
|
31
29
|
Created: 201,
|
|
32
30
|
Accepted: 202,
|
|
@@ -104,10 +102,10 @@ const defaultParams = {
|
|
|
104
102
|
* @returns {ajax.Xhr} - Returns object that could be aborted.
|
|
105
103
|
*/
|
|
106
104
|
ajax.request = function (url, params) {
|
|
107
|
-
|
|
108
105
|
params = params || {};
|
|
109
106
|
|
|
110
|
-
var p = {},
|
|
107
|
+
var p = {},
|
|
108
|
+
i;
|
|
111
109
|
|
|
112
110
|
for (i in defaultParams) {
|
|
113
111
|
p[i] = defaultParams[i];
|
|
@@ -123,14 +121,19 @@ ajax.request = function (url, params) {
|
|
|
123
121
|
|
|
124
122
|
var customXhr = new Xhr(xhr);
|
|
125
123
|
|
|
126
|
-
var body = null,
|
|
124
|
+
var body = null,
|
|
125
|
+
d;
|
|
127
126
|
|
|
128
127
|
if (p.type === ajax.Method.Post) {
|
|
129
128
|
if (p.data) {
|
|
130
129
|
body = "";
|
|
131
130
|
for (let key in p.data) {
|
|
132
131
|
d = p.data[key];
|
|
133
|
-
body +=
|
|
132
|
+
body +=
|
|
133
|
+
key +
|
|
134
|
+
"=" +
|
|
135
|
+
encodeURIComponent(d instanceof Object ? JSON.stringify(d) : d) +
|
|
136
|
+
"&";
|
|
134
137
|
}
|
|
135
138
|
body = body.slice(0, -1);
|
|
136
139
|
}
|
|
@@ -140,7 +143,8 @@ ajax.request = function (url, params) {
|
|
|
140
143
|
var tail = "?";
|
|
141
144
|
for (let key in p.data) {
|
|
142
145
|
d = p.data[key];
|
|
143
|
-
tail +=
|
|
146
|
+
tail +=
|
|
147
|
+
key + "=" + encodeURIComponent(d instanceof Object ? JSON.stringify(d) : d) + "&";
|
|
144
148
|
}
|
|
145
149
|
tail = tail.slice(0, -1);
|
|
146
150
|
xhr.open(p.type, url + tail, p.async);
|
|
@@ -172,7 +176,8 @@ ajax.request = function (url, params) {
|
|
|
172
176
|
* @param {Object} Response data
|
|
173
177
|
* @param {Object} Status object
|
|
174
178
|
*/
|
|
175
|
-
params.abort &&
|
|
179
|
+
params.abort &&
|
|
180
|
+
params.abort.call(params.sender || customXhr, xhr.response, xhr.status);
|
|
176
181
|
} else {
|
|
177
182
|
/**
|
|
178
183
|
* Error callback.
|
|
@@ -180,9 +185,10 @@ ajax.request = function (url, params) {
|
|
|
180
185
|
* @param {Object} Response data
|
|
181
186
|
* @param {Object} Status object
|
|
182
187
|
*/
|
|
183
|
-
params.error &&
|
|
188
|
+
params.error &&
|
|
189
|
+
params.error.call(params.sender || customXhr, xhr.response, xhr.status);
|
|
184
190
|
}
|
|
185
|
-
delete xhr[
|
|
191
|
+
delete xhr["onreadystatechange"];
|
|
186
192
|
xhr.onreadystatechange = null;
|
|
187
193
|
xhr = null;
|
|
188
194
|
} else {
|
|
@@ -195,4 +201,4 @@ ajax.request = function (url, params) {
|
|
|
195
201
|
return customXhr;
|
|
196
202
|
};
|
|
197
203
|
|
|
198
|
-
export { ajax };
|
|
204
|
+
export { ajax };
|
package/src/og/astro/earth.js
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
* @module og/astro/earth
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
"use strict";
|
|
6
6
|
|
|
7
|
-
import * as jd from
|
|
8
|
-
import * as math from
|
|
9
|
-
import * as astro from
|
|
10
|
-
import { Quat } from
|
|
11
|
-
import { Vec3 } from
|
|
7
|
+
import * as jd from "./jd.js";
|
|
8
|
+
import * as math from "../math.js";
|
|
9
|
+
import * as astro from "./astro.js";
|
|
10
|
+
import { Quat } from "../math/Quat.js";
|
|
11
|
+
import { Vec3 } from "../math/Vec3.js";
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Returns Sun position in the geocentric coordinate system by the time.
|
|
@@ -21,7 +21,7 @@ export function getSunPosition(jDate) {
|
|
|
21
21
|
// e Eccentricity
|
|
22
22
|
// T Time at perihelion
|
|
23
23
|
|
|
24
|
-
// q Perihelion distance = a * (1 - e)
|
|
24
|
+
// q Perihelion distance = a * (1 - e)
|
|
25
25
|
// Q Aphelion distance = a * (1 + e)
|
|
26
26
|
|
|
27
27
|
// i Inclination, i.e. the "tilt" of the orbit relative to the
|
|
@@ -70,16 +70,17 @@ export function getSunPosition(jDate) {
|
|
|
70
70
|
|
|
71
71
|
var d = jDate - jd.J2000;
|
|
72
72
|
|
|
73
|
-
var w = 282.9404 + 4.
|
|
73
|
+
var w = 282.9404 + 4.70935e-5 * d; // longitude of perihelion
|
|
74
74
|
// var a = 1.000000; // mean distance, a.u.
|
|
75
|
-
var e = 0.016709 - 1.
|
|
76
|
-
var M = math.rev(356.
|
|
75
|
+
var e = 0.016709 - 1.151e-9 * d; // eccentricity
|
|
76
|
+
var M = math.rev(356.047 + 0.9856002585 * d); // mean anomaly
|
|
77
77
|
|
|
78
|
-
var oblecl = astro.J2000_OBLIQUITY - 3.
|
|
78
|
+
var oblecl = astro.J2000_OBLIQUITY - 3.563e-7 * d; // obliquity of the ecliptic
|
|
79
79
|
|
|
80
80
|
// var L = math.rev(w + M); // Sun's mean longitude
|
|
81
81
|
|
|
82
|
-
var E =
|
|
82
|
+
var E =
|
|
83
|
+
M + math.DEGREES * e * Math.sin(M * math.RADIANS) * (1 + e * Math.cos(M * math.RADIANS)); // eccentric anomaly
|
|
83
84
|
|
|
84
85
|
// Sun rectangular coordiantes, where the X axis points towards the perihelion
|
|
85
86
|
var x = Math.cos(E * math.RADIANS) - e;
|
|
@@ -99,10 +100,15 @@ export function getSunPosition(jDate) {
|
|
|
99
100
|
var yequat = y * Math.cos(oblecl * math.RADIANS);
|
|
100
101
|
var zequat = y * Math.sin(oblecl * math.RADIANS);
|
|
101
102
|
|
|
102
|
-
var theta = math.TWO_PI * (d * 24.0 / 23.9344694 - 259.853 / 360.0); // Siderial spin time
|
|
103
|
+
var theta = math.TWO_PI * ((d * 24.0) / 23.9344694 - 259.853 / 360.0); // Siderial spin time
|
|
103
104
|
|
|
104
|
-
return Quat.yRotation(-theta).mulVec3(
|
|
105
|
-
|
|
105
|
+
return Quat.yRotation(-theta).mulVec3(
|
|
106
|
+
new Vec3(
|
|
107
|
+
-yequat * astro.AU_TO_METERS,
|
|
108
|
+
zequat * astro.AU_TO_METERS,
|
|
109
|
+
-xequat * astro.AU_TO_METERS
|
|
110
|
+
)
|
|
111
|
+
);
|
|
106
112
|
|
|
107
113
|
// Convert to RA and Decl
|
|
108
114
|
// var RA = Math.atan2(yequat, xequat) * math.DEGREES;
|
package/src/og/bv/Box.js
CHANGED
package/src/og/bv/Sphere.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* @module og/bv/Sphere
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
"use strict";
|
|
6
6
|
|
|
7
|
-
import { Vec3 } from
|
|
7
|
+
import { Vec3 } from "../math/Vec3.js";
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Bounding sphere class.
|
|
@@ -14,12 +14,11 @@ import { Vec3 } from '../math/Vec3.js';
|
|
|
14
14
|
*/
|
|
15
15
|
class Sphere {
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
18
|
-
* @param {number} radius
|
|
19
|
-
* @param {Vec3} center
|
|
17
|
+
*
|
|
18
|
+
* @param {number} radius
|
|
19
|
+
* @param {Vec3} center
|
|
20
20
|
*/
|
|
21
21
|
constructor(radius, center) {
|
|
22
|
-
|
|
23
22
|
/**
|
|
24
23
|
* Sphere radius.
|
|
25
24
|
* @public
|
|
@@ -41,7 +40,11 @@ class Sphere {
|
|
|
41
40
|
*/
|
|
42
41
|
setFromBounds(bounds) {
|
|
43
42
|
let m = new Vec3(bounds[0], bounds[1], bounds[2]);
|
|
44
|
-
this.center.set(
|
|
43
|
+
this.center.set(
|
|
44
|
+
m.x + (bounds[3] - m.x) * 0.5,
|
|
45
|
+
m.y + (bounds[3] - m.y) * 0.5,
|
|
46
|
+
m.z + (bounds[5] - m.z) * 0.5
|
|
47
|
+
);
|
|
45
48
|
this.radius = this.center.distance(m);
|
|
46
49
|
}
|
|
47
50
|
|
package/src/og/camera/Frustum.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
|
-
import { Mat4 } from
|
|
3
|
+
import { Mat4 } from "../math/Mat4.js";
|
|
4
4
|
|
|
5
5
|
function planeNormalize(plane) {
|
|
6
6
|
var t = 1.0 / Math.sqrt(plane[0] * plane[0] + plane[1] * plane[1] + plane[2] * plane[2]);
|
|
@@ -15,9 +15,8 @@ function planeNormalize(plane) {
|
|
|
15
15
|
* @class
|
|
16
16
|
*/
|
|
17
17
|
class Frustum {
|
|
18
|
-
|
|
19
18
|
/**
|
|
20
|
-
* @param {*} options
|
|
19
|
+
* @param {*} options
|
|
21
20
|
*/
|
|
22
21
|
constructor(options = {}) {
|
|
23
22
|
/**
|
|
@@ -89,7 +88,8 @@ class Frustum {
|
|
|
89
88
|
*/
|
|
90
89
|
this.far = 0.0;
|
|
91
90
|
|
|
92
|
-
this._cameraFrustumIndex =
|
|
91
|
+
this._cameraFrustumIndex =
|
|
92
|
+
options.cameraFrustumIndex != undefined ? options.cameraFrustumIndex : -1;
|
|
93
93
|
|
|
94
94
|
this.setProjectionMatrix(
|
|
95
95
|
options.fov || 30.0,
|
|
@@ -144,15 +144,21 @@ class Frustum {
|
|
|
144
144
|
* @param {number} far - Far camera distance.
|
|
145
145
|
*/
|
|
146
146
|
setProjectionMatrix(angle, aspect, near, far) {
|
|
147
|
-
|
|
148
|
-
this.top = near * Math.tan(angle * Math.PI / 360);
|
|
147
|
+
this.top = near * Math.tan((angle * Math.PI) / 360);
|
|
149
148
|
this.bottom = -this.top;
|
|
150
149
|
this.right = this.top * aspect;
|
|
151
150
|
this.left = -this.right;
|
|
152
151
|
this.near = near;
|
|
153
152
|
this.far = far;
|
|
154
153
|
|
|
155
|
-
this._projectionMatrix.setPerspective(
|
|
154
|
+
this._projectionMatrix.setPerspective(
|
|
155
|
+
this.left,
|
|
156
|
+
this.right,
|
|
157
|
+
this.bottom,
|
|
158
|
+
this.top,
|
|
159
|
+
near,
|
|
160
|
+
far
|
|
161
|
+
);
|
|
156
162
|
this._projectionMatrix.inverseTo(this._inverseProjectionMatrix);
|
|
157
163
|
}
|
|
158
164
|
|
|
@@ -162,7 +168,6 @@ class Frustum {
|
|
|
162
168
|
* @param {Mat4} projectionView - projectionView matrix.
|
|
163
169
|
*/
|
|
164
170
|
setViewMatrix(viewMatrix) {
|
|
165
|
-
|
|
166
171
|
this._projectionViewMatrix = this._projectionMatrix.mul(viewMatrix);
|
|
167
172
|
this._projectionViewMatrix.inverseTo(this._inverseProjectionViewMatrix);
|
|
168
173
|
|
|
@@ -295,11 +300,13 @@ class Frustum {
|
|
|
295
300
|
* @returns {boolean} -
|
|
296
301
|
*/
|
|
297
302
|
containsBox(box) {
|
|
298
|
-
var result = true,
|
|
303
|
+
var result = true,
|
|
304
|
+
cout,
|
|
305
|
+
cin;
|
|
299
306
|
|
|
300
307
|
for (var i = 0; i < 6; i++) {
|
|
301
|
-
|
|
302
|
-
|
|
308
|
+
cout = 0;
|
|
309
|
+
cin = 0;
|
|
303
310
|
|
|
304
311
|
for (var k = 0; k < 8 && (cin === 0 || cout === 0); k++) {
|
|
305
312
|
var d = box.vertices[k].dotArr(this._f[i]) + this._f[i][3];
|
|
@@ -31,7 +31,6 @@ import { Mat4 } from "../math/Mat4.js";
|
|
|
31
31
|
* @param {Vec3} [options.up] - Camera eye position. Default (0,1,0)
|
|
32
32
|
*/
|
|
33
33
|
class PlanetCamera extends Camera {
|
|
34
|
-
|
|
35
34
|
/**
|
|
36
35
|
* @param {RenderNode} planet - Planet render node.
|
|
37
36
|
* @param {Object} [options] - Planet camera options:
|
|
@@ -42,7 +41,7 @@ class PlanetCamera extends Camera {
|
|
|
42
41
|
Object.assign(
|
|
43
42
|
{},
|
|
44
43
|
{
|
|
45
|
-
frustums: /*[[100, 10000000]]*/
|
|
44
|
+
frustums: /*[[100, 10000000]]*/[
|
|
46
45
|
[1, 100 + 0.075],
|
|
47
46
|
[100, 1000 + 0.075],
|
|
48
47
|
[1000, 1e6 + 10000],
|
|
@@ -637,15 +636,20 @@ class PlanetCamera extends Camera {
|
|
|
637
636
|
getHeading() {
|
|
638
637
|
let u = this.eye.normal();
|
|
639
638
|
let f = Vec3.proj_b_to_plane(
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
639
|
+
this.slope >= 0.97 ? this.getUp() : this.getForward(),
|
|
640
|
+
u
|
|
641
|
+
).normalize(),
|
|
643
642
|
n = Vec3.proj_b_to_plane(Vec3.UP, u).normalize();
|
|
644
643
|
let res = Math.sign(u.dot(f.cross(n))) * Math.acos(f.dot(n)) * math.DEGREES;
|
|
645
644
|
if (res < 0.0) {
|
|
646
645
|
return 360.0 + res;
|
|
647
646
|
}
|
|
648
647
|
return res;
|
|
648
|
+
}
|
|
649
|
+
|
|
650
|
+
isVisible(poi) {
|
|
651
|
+
let e = this.eye.length();
|
|
652
|
+
return this.eye.distance(poi) < Math.sqrt(e * e - this.planet.ellipsoid._a2);
|
|
649
653
|
}
|
|
650
654
|
}
|
|
651
655
|
|
|
@@ -86,9 +86,8 @@ let svg = `<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
|
86
86
|
* @params {Object} [options] - Control options.
|
|
87
87
|
*/
|
|
88
88
|
class CompassButton extends Control {
|
|
89
|
-
|
|
90
89
|
/**
|
|
91
|
-
*
|
|
90
|
+
*
|
|
92
91
|
* @params {Object} [options] - Control options.
|
|
93
92
|
*/
|
|
94
93
|
constructor(options) {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @module og/control/Control
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
"use strict";
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Base control class for implementing renderer controls.
|
|
@@ -12,7 +12,6 @@
|
|
|
12
12
|
* @param {Boolean} [options.autoActivated=true] - If true - calls initialize function after the renderer assigning.
|
|
13
13
|
*/
|
|
14
14
|
class Control {
|
|
15
|
-
|
|
16
15
|
/**
|
|
17
16
|
* @param {Object} [options] - Control activation options:
|
|
18
17
|
*/
|
|
@@ -77,35 +76,35 @@ class Control {
|
|
|
77
76
|
* @public
|
|
78
77
|
* @virtual
|
|
79
78
|
*/
|
|
80
|
-
oninit() {
|
|
79
|
+
oninit() {}
|
|
81
80
|
|
|
82
81
|
/**
|
|
83
82
|
* Control renderer assigning function have to be overriden.
|
|
84
83
|
* @public
|
|
85
84
|
* @virtual
|
|
86
85
|
*/
|
|
87
|
-
onadd() {
|
|
86
|
+
onadd() {}
|
|
88
87
|
|
|
89
88
|
/**
|
|
90
89
|
* Control remove function have to be overriden.
|
|
91
90
|
* @public
|
|
92
91
|
* @virtual
|
|
93
92
|
*/
|
|
94
|
-
onremove() {
|
|
93
|
+
onremove() {}
|
|
95
94
|
|
|
96
95
|
/**
|
|
97
96
|
* Control activation function have to be overriden.
|
|
98
97
|
* @public
|
|
99
98
|
* @virtual
|
|
100
99
|
*/
|
|
101
|
-
onactivate() {
|
|
100
|
+
onactivate() {}
|
|
102
101
|
|
|
103
102
|
/**
|
|
104
103
|
* Control deactivation function have to be overriden.
|
|
105
104
|
* @public
|
|
106
105
|
* @virtual
|
|
107
106
|
*/
|
|
108
|
-
ondeactivate() {
|
|
107
|
+
ondeactivate() {}
|
|
109
108
|
|
|
110
109
|
/**
|
|
111
110
|
* Assign renderer to the control.
|
|
@@ -130,7 +129,6 @@ class Control {
|
|
|
130
129
|
* @public
|
|
131
130
|
*/
|
|
132
131
|
remove() {
|
|
133
|
-
|
|
134
132
|
this.onremove && this.onremove();
|
|
135
133
|
|
|
136
134
|
let r = this.renderer,
|
|
@@ -187,4 +185,4 @@ class Control {
|
|
|
187
185
|
}
|
|
188
186
|
}
|
|
189
187
|
|
|
190
|
-
export { Control };
|
|
188
|
+
export { Control };
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
* @module og/control/KeyboardNavigation
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
"use strict";
|
|
6
6
|
|
|
7
|
-
import * as math from
|
|
8
|
-
import { Control } from
|
|
9
|
-
import { input } from
|
|
10
|
-
import { Vec3 } from
|
|
7
|
+
import * as math from "../math.js";
|
|
8
|
+
import { Control } from "./Control.js";
|
|
9
|
+
import { input } from "../input/input.js";
|
|
10
|
+
import { Vec3 } from "../math/Vec3.js";
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Planet camera keyboard navigation. Use W,S,A,D and left shift key for fly around a planet.
|
|
@@ -69,7 +69,7 @@ class KeyboardNavigation extends Control {
|
|
|
69
69
|
if (this.renderer.events.isKeyPressed(input.KEY_SHIFT)) {
|
|
70
70
|
cam.pitch(15 / this.renderer.handler.deltaTime);
|
|
71
71
|
} else {
|
|
72
|
-
cam.rotateVertical(cam._lonLat.height / 3000000 * math.RADIANS, Vec3.ZERO);
|
|
72
|
+
cam.rotateVertical((cam._lonLat.height / 3000000) * math.RADIANS, Vec3.ZERO);
|
|
73
73
|
}
|
|
74
74
|
cam.update();
|
|
75
75
|
}
|
|
@@ -79,7 +79,7 @@ class KeyboardNavigation extends Control {
|
|
|
79
79
|
if (this.renderer.events.isKeyPressed(input.KEY_SHIFT)) {
|
|
80
80
|
cam.pitch(-15 / this.renderer.handler.deltaTime);
|
|
81
81
|
} else {
|
|
82
|
-
cam.rotateVertical(-cam._lonLat.height / 3000000 * math.RADIANS, Vec3.ZERO);
|
|
82
|
+
cam.rotateVertical((-cam._lonLat.height / 3000000) * math.RADIANS, Vec3.ZERO);
|
|
83
83
|
}
|
|
84
84
|
cam.update();
|
|
85
85
|
}
|
|
@@ -89,7 +89,7 @@ class KeyboardNavigation extends Control {
|
|
|
89
89
|
if (this.renderer.events.isKeyPressed(input.KEY_SHIFT)) {
|
|
90
90
|
cam.yaw(15 / this.renderer.handler.deltaTime);
|
|
91
91
|
} else {
|
|
92
|
-
cam.rotateHorizontal(cam._lonLat.height / 3000000 * math.RADIANS, false, Vec3.ZERO);
|
|
92
|
+
cam.rotateHorizontal((cam._lonLat.height / 3000000) * math.RADIANS, false, Vec3.ZERO);
|
|
93
93
|
}
|
|
94
94
|
cam.update();
|
|
95
95
|
}
|
|
@@ -99,7 +99,7 @@ class KeyboardNavigation extends Control {
|
|
|
99
99
|
if (this.renderer.events.isKeyPressed(input.KEY_SHIFT)) {
|
|
100
100
|
cam.yaw(-15 / this.renderer.handler.deltaTime);
|
|
101
101
|
} else {
|
|
102
|
-
cam.rotateHorizontal(-cam._lonLat.height / 3000000 * math.RADIANS, false, Vec3.ZERO);
|
|
102
|
+
cam.rotateHorizontal((-cam._lonLat.height / 3000000) * math.RADIANS, false, Vec3.ZERO);
|
|
103
103
|
}
|
|
104
104
|
cam.update();
|
|
105
105
|
}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* @module og/control/LayerSwitcher
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
"use strict";
|
|
6
6
|
|
|
7
|
-
import { Control } from
|
|
7
|
+
import { Control } from "./Control.js";
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Simple(OpenLayers like)layer switcher, includes base layers, overlays, geo images etc. groups.
|
|
@@ -56,16 +56,16 @@ class LayerSwitcher extends Control {
|
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
addSwitcher(type, obj, container, id) {
|
|
59
|
-
var lineDiv = document.createElement(
|
|
59
|
+
var lineDiv = document.createElement("div");
|
|
60
60
|
|
|
61
61
|
var that = this;
|
|
62
|
-
var center = document.createElement(
|
|
63
|
-
center.classList.add(
|
|
62
|
+
var center = document.createElement("div");
|
|
63
|
+
center.classList.add("ogViewExtentBtn");
|
|
64
64
|
center.onclick = function () {
|
|
65
65
|
that.planet.flyExtent(obj.getExtent());
|
|
66
66
|
};
|
|
67
67
|
|
|
68
|
-
var inp = document.createElement(
|
|
68
|
+
var inp = document.createElement("input");
|
|
69
69
|
inp.type = type;
|
|
70
70
|
inp.name = "ogBaseLayerRadiosId" + (id || "");
|
|
71
71
|
inp.checked = obj.getVisibility();
|
|
@@ -74,11 +74,12 @@ class LayerSwitcher extends Control {
|
|
|
74
74
|
obj.setVisibility(this.checked);
|
|
75
75
|
};
|
|
76
76
|
|
|
77
|
-
obj.events &&
|
|
78
|
-
|
|
79
|
-
|
|
77
|
+
obj.events &&
|
|
78
|
+
obj.events.on("visibilitychange", function (e) {
|
|
79
|
+
inp.checked = e.getVisibility();
|
|
80
|
+
});
|
|
80
81
|
|
|
81
|
-
var lbl = document.createElement(
|
|
82
|
+
var lbl = document.createElement("label");
|
|
82
83
|
lbl.className = "ogLayerSwitcherLabel";
|
|
83
84
|
lbl.innerHTML = (obj.name || obj.src || "noname") + "</br>";
|
|
84
85
|
|
|
@@ -94,35 +95,35 @@ class LayerSwitcher extends Control {
|
|
|
94
95
|
}
|
|
95
96
|
|
|
96
97
|
createBaseLayersContainer() {
|
|
97
|
-
var layersDiv = document.createElement(
|
|
98
|
+
var layersDiv = document.createElement("div");
|
|
98
99
|
layersDiv.className = "layersDiv";
|
|
99
100
|
this.dialog.appendChild(layersDiv);
|
|
100
101
|
|
|
101
|
-
var baseLayersLbl = document.createElement(
|
|
102
|
+
var baseLayersLbl = document.createElement("div");
|
|
102
103
|
baseLayersLbl.className = "layersDiv";
|
|
103
104
|
baseLayersLbl.innerHTML = "Base Layer";
|
|
104
105
|
layersDiv.appendChild(baseLayersLbl);
|
|
105
106
|
|
|
106
|
-
this.baseLayersDiv = document.createElement(
|
|
107
|
+
this.baseLayersDiv = document.createElement("div");
|
|
107
108
|
layersDiv.appendChild(this.baseLayersDiv);
|
|
108
109
|
}
|
|
109
110
|
|
|
110
111
|
createOverlaysContainer() {
|
|
111
|
-
var overlaysDiv = document.createElement(
|
|
112
|
+
var overlaysDiv = document.createElement("div");
|
|
112
113
|
overlaysDiv.className = "layersDiv";
|
|
113
114
|
this.dialog.appendChild(overlaysDiv);
|
|
114
115
|
|
|
115
|
-
var overlaysLbl = document.createElement(
|
|
116
|
+
var overlaysLbl = document.createElement("div");
|
|
116
117
|
overlaysLbl.className = "layersDiv";
|
|
117
118
|
overlaysLbl.innerHTML = "Overlays";
|
|
118
119
|
overlaysDiv.appendChild(overlaysLbl);
|
|
119
120
|
|
|
120
|
-
this.overlaysDiv = document.createElement(
|
|
121
|
+
this.overlaysDiv = document.createElement("div");
|
|
121
122
|
overlaysDiv.appendChild(this.overlaysDiv);
|
|
122
123
|
}
|
|
123
124
|
|
|
124
125
|
createDialog() {
|
|
125
|
-
this.dialog = document.createElement(
|
|
126
|
+
this.dialog = document.createElement("div");
|
|
126
127
|
this.dialog.id = "ogLayerSwitcherDialog";
|
|
127
128
|
this.dialog.className = "displayNone";
|
|
128
129
|
this.renderer.div.appendChild(this.dialog);
|
|
@@ -138,8 +139,8 @@ class LayerSwitcher extends Control {
|
|
|
138
139
|
}
|
|
139
140
|
|
|
140
141
|
createSwitcher() {
|
|
141
|
-
var button = document.createElement(
|
|
142
|
-
button.className =
|
|
142
|
+
var button = document.createElement("div");
|
|
143
|
+
button.className = "ogLayerSwitcherButton";
|
|
143
144
|
button.id = "ogLayerSwitcherButtonMaximize";
|
|
144
145
|
var that = this;
|
|
145
146
|
button.onclick = function (e) {
|
|
@@ -155,4 +156,4 @@ class LayerSwitcher extends Control {
|
|
|
155
156
|
}
|
|
156
157
|
}
|
|
157
158
|
|
|
158
|
-
export { LayerSwitcher };
|
|
159
|
+
export { LayerSwitcher };
|