@openglobus/og 0.11.5 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/css/og.css +5 -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 +25 -10
- 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/Camera.js +70 -79
- package/src/og/camera/Frustum.js +19 -12
- package/src/og/camera/PlanetCamera.js +33 -34
- package/src/og/control/CompassButton.js +1 -2
- package/src/og/control/Control.js +7 -9
- package/src/og/control/DebugInfo.js +2 -3
- package/src/og/control/EarthNavigation.js +26 -17
- 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 +30 -29
- 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 +24 -14
- 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 +742 -704
- package/src/og/entity/EntityCollection.js +47 -24
- package/src/og/entity/GeoObject.js +228 -0
- package/src/og/entity/GeoObjectHandler.js +895 -0
- package/src/og/entity/GeometryHandler.js +595 -123
- package/src/og/entity/Label.js +62 -30
- package/src/og/entity/LabelHandler.js +42 -243
- 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 -33
- 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 +24 -26
- 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 +78 -32
- 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 +50 -95
- package/src/og/quadTree/quadTree.js +1 -1
- package/src/og/renderer/Renderer.js +106 -126
- package/src/og/renderer/RendererEvents.js +45 -23
- package/src/og/scene/BaseNode.js +2 -3
- package/src/og/scene/Planet.js +139 -191
- package/src/og/scene/RenderNode.js +15 -8
- package/src/og/segment/Segment.js +93 -268
- package/src/og/segment/Slice.js +45 -0
- package/src/og/shaders/drawnode.js +174 -360
- 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/terrain/EmptyTerrain.js +3 -2
- package/src/og/terrain/GlobusTerrain.js +2 -0
- package/src/og/utils/FontAtlas.js +6 -2
- package/src/og/utils/GeoImageCreator.js +5 -1
- package/src/og/utils/Loader.js +1 -1
- package/src/og/utils/PlainSegmentWorker.js +0 -13
- 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 +219 -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 -326
- 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/Popup.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
|
-
import { Events } from
|
|
4
|
-
import { Vec3 } from
|
|
5
|
-
import { getHTML, parseHTML, createLonLat } from
|
|
3
|
+
import { Events } from "./Events.js";
|
|
4
|
+
import { Vec3 } from "./math/Vec3.js";
|
|
5
|
+
import { getHTML, parseHTML, createLonLat } from "./utils/shared.js";
|
|
6
6
|
|
|
7
|
-
const TEMPLATE =
|
|
8
|
-
`<div class="og-popup {className}">
|
|
7
|
+
const TEMPLATE = `<div class="og-popup {className}">
|
|
9
8
|
<div class="og-popup-content-wrapper">
|
|
10
9
|
<div class="og-popup-content"></div>
|
|
11
10
|
</div>
|
|
@@ -20,13 +19,11 @@ const TEMPLATE =
|
|
|
20
19
|
</div>`;
|
|
21
20
|
|
|
22
21
|
class Popup {
|
|
23
|
-
|
|
24
22
|
/**
|
|
25
|
-
*
|
|
26
|
-
* @param {*} options
|
|
23
|
+
*
|
|
24
|
+
* @param {*} options
|
|
27
25
|
*/
|
|
28
26
|
constructor(options) {
|
|
29
|
-
|
|
30
27
|
this._id = Popup._staticCounter++;
|
|
31
28
|
|
|
32
29
|
this.events = new Events(["open", "close"]);
|
|
@@ -77,7 +74,13 @@ class Popup {
|
|
|
77
74
|
|
|
78
75
|
setScreen(p) {
|
|
79
76
|
if (this._planet) {
|
|
80
|
-
|
|
77
|
+
let r = this._planet.renderer.handler.pixelRatio;
|
|
78
|
+
this.el.style.transform =
|
|
79
|
+
"translate(" +
|
|
80
|
+
(p.x / r - this.clientWidth * 0.5) +
|
|
81
|
+
"px, " +
|
|
82
|
+
(p.y / r - this._planet.renderer.handler.canvas.clientHeight - this._tipEl.clientHeight) +
|
|
83
|
+
"px)";
|
|
81
84
|
}
|
|
82
85
|
}
|
|
83
86
|
|
|
@@ -102,8 +105,8 @@ class Popup {
|
|
|
102
105
|
render(params) {
|
|
103
106
|
this.el = this._renderTemplate(params);
|
|
104
107
|
this._contentEl = this.el.querySelector(".og-popup-content");
|
|
105
|
-
this._titleEl = this.el.querySelector(".og-popup-title")
|
|
106
|
-
this._tipEl = this.el.querySelector(".og-popup-tip-container")
|
|
108
|
+
this._titleEl = this.el.querySelector(".og-popup-title");
|
|
109
|
+
this._tipEl = this.el.querySelector(".og-popup-tip-container");
|
|
107
110
|
this.setOffset(this._offset[0], this._offset[1]);
|
|
108
111
|
this.setContent(this._content);
|
|
109
112
|
this.setTitle(this._title);
|
|
@@ -153,7 +156,6 @@ class Popup {
|
|
|
153
156
|
}
|
|
154
157
|
|
|
155
158
|
setCartesian3v(cart, height = 0) {
|
|
156
|
-
|
|
157
159
|
this._cartPos = cart;
|
|
158
160
|
|
|
159
161
|
if (this._planet) {
|
|
@@ -192,10 +194,10 @@ class Popup {
|
|
|
192
194
|
if (content) {
|
|
193
195
|
this.clear();
|
|
194
196
|
this._content = content;
|
|
195
|
-
if (typeof content ===
|
|
197
|
+
if (typeof content === "string") {
|
|
196
198
|
this._contentEl.innerHTML = content;
|
|
197
199
|
} else {
|
|
198
|
-
this._contentEl.appendChild(content)
|
|
200
|
+
this._contentEl.appendChild(content);
|
|
199
201
|
}
|
|
200
202
|
}
|
|
201
203
|
return this;
|
|
@@ -207,4 +209,4 @@ class Popup {
|
|
|
207
209
|
}
|
|
208
210
|
}
|
|
209
211
|
|
|
210
|
-
export { Popup };
|
|
212
|
+
export { Popup };
|
package/src/og/QueueArray.js
CHANGED
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/Camera.js
CHANGED
|
@@ -98,26 +98,26 @@ class Camera {
|
|
|
98
98
|
* @protected
|
|
99
99
|
* @type {Vec3}
|
|
100
100
|
*/
|
|
101
|
-
this.
|
|
101
|
+
this._r = new Vec3(1.0, 0.0, 0.0); // up x n
|
|
102
102
|
|
|
103
103
|
/**
|
|
104
104
|
* Camera up vector.
|
|
105
105
|
* @protected
|
|
106
106
|
* @type {Vec3}
|
|
107
107
|
*/
|
|
108
|
-
this.
|
|
108
|
+
this._u = new Vec3(0.0, 1.0, 0.0); // n x u - UP
|
|
109
109
|
|
|
110
110
|
/**
|
|
111
111
|
* Camera forward vector.
|
|
112
112
|
* @protected
|
|
113
113
|
* @type {Vec3}
|
|
114
114
|
*/
|
|
115
|
-
this.
|
|
115
|
+
this._b = new Vec3(0.0, 0.0, 1.0); // eye - look - FORWARD
|
|
116
116
|
|
|
117
117
|
// Previous frame values
|
|
118
|
-
this._pu = this.
|
|
119
|
-
this._pv = this.
|
|
120
|
-
this._pn = this.
|
|
118
|
+
this._pu = this._r.clone();
|
|
119
|
+
this._pv = this._u.clone();
|
|
120
|
+
this._pn = this._b.clone();
|
|
121
121
|
this._peye = this.eye.clone();
|
|
122
122
|
this.isMoved = false;
|
|
123
123
|
|
|
@@ -173,9 +173,9 @@ class Camera {
|
|
|
173
173
|
}
|
|
174
174
|
|
|
175
175
|
checkMoveEnd() {
|
|
176
|
-
var u = this.
|
|
177
|
-
v = this.
|
|
178
|
-
n = this.
|
|
176
|
+
var u = this._r,
|
|
177
|
+
v = this._u,
|
|
178
|
+
n = this._b,
|
|
179
179
|
eye = this.eye;
|
|
180
180
|
|
|
181
181
|
if (this._peye.equal(eye) && this._pu.equal(u) && this._pv.equal(v) && this._pn.equal(n)) {
|
|
@@ -216,27 +216,27 @@ class Camera {
|
|
|
216
216
|
}
|
|
217
217
|
|
|
218
218
|
getUp() {
|
|
219
|
-
return this.
|
|
219
|
+
return this._u.clone();
|
|
220
220
|
}
|
|
221
221
|
|
|
222
222
|
getDown() {
|
|
223
|
-
return this.
|
|
223
|
+
return this._u.negateTo();
|
|
224
224
|
}
|
|
225
225
|
|
|
226
226
|
getRight() {
|
|
227
|
-
return this.
|
|
227
|
+
return this._r.clone();
|
|
228
228
|
}
|
|
229
229
|
|
|
230
230
|
getLeft() {
|
|
231
|
-
return this.
|
|
231
|
+
return this._r.negateTo();
|
|
232
232
|
}
|
|
233
233
|
|
|
234
234
|
getForward() {
|
|
235
|
-
return this.
|
|
235
|
+
return this._b.negateTo();
|
|
236
236
|
}
|
|
237
237
|
|
|
238
238
|
getBackward() {
|
|
239
|
-
return this.
|
|
239
|
+
return this._b.clone();
|
|
240
240
|
}
|
|
241
241
|
|
|
242
242
|
/**
|
|
@@ -245,9 +245,9 @@ class Camera {
|
|
|
245
245
|
* @virtual
|
|
246
246
|
*/
|
|
247
247
|
update() {
|
|
248
|
-
var u = this.
|
|
249
|
-
v = this.
|
|
250
|
-
n = this.
|
|
248
|
+
var u = this._r,
|
|
249
|
+
v = this._u,
|
|
250
|
+
n = this._b,
|
|
251
251
|
eye = this.eye;
|
|
252
252
|
|
|
253
253
|
Vec3.doubleToTwoFloat32Array(eye, this.eyeHigh, this.eyeLow);
|
|
@@ -321,12 +321,7 @@ class Camera {
|
|
|
321
321
|
this._tanViewAngle_hradOneByHeight =
|
|
322
322
|
this._tanViewAngle_hrad * this.renderer.handler._oneByHeight;
|
|
323
323
|
var c = this.renderer.handler.canvas;
|
|
324
|
-
this._projSizeConst =
|
|
325
|
-
Math.min(
|
|
326
|
-
c.clientWidth < 256 ? 256 : c.clientWidth,
|
|
327
|
-
c.clientHeight < 256 ? 256 : c.clientHeight
|
|
328
|
-
) /
|
|
329
|
-
(angle * math.RADIANS);
|
|
324
|
+
this._projSizeConst = Math.min(c.clientWidth < 256 ? 256 : c.clientWidth, c.clientHeight < 256 ? 256 : c.clientHeight) / (angle * math.RADIANS);
|
|
330
325
|
for (let i = 0, len = this.frustums.length; i < len; i++) {
|
|
331
326
|
this.frustums[i].setProjectionMatrix(
|
|
332
327
|
angle,
|
|
@@ -368,15 +363,15 @@ class Camera {
|
|
|
368
363
|
this.eye.x = eye.x;
|
|
369
364
|
this.eye.y = eye.y;
|
|
370
365
|
this.eye.z = eye.z;
|
|
371
|
-
look = look || this.
|
|
372
|
-
up = up || this.
|
|
373
|
-
this.
|
|
374
|
-
this.
|
|
375
|
-
this.
|
|
376
|
-
this.
|
|
377
|
-
this.
|
|
378
|
-
this.
|
|
379
|
-
this.
|
|
366
|
+
look = look || this._b;
|
|
367
|
+
up = up || this._u;
|
|
368
|
+
this._b.x = eye.x - look.x;
|
|
369
|
+
this._b.y = eye.y - look.y;
|
|
370
|
+
this._b.z = eye.z - look.z;
|
|
371
|
+
this._r.copy(up.cross(this._b));
|
|
372
|
+
this._b.normalize();
|
|
373
|
+
this._r.normalize();
|
|
374
|
+
this._u.copy(this._b.cross(this._r));
|
|
380
375
|
return this;
|
|
381
376
|
}
|
|
382
377
|
|
|
@@ -384,14 +379,14 @@ class Camera {
|
|
|
384
379
|
* Sets camera look point
|
|
385
380
|
* @public
|
|
386
381
|
* @param {Vec3} look - Look point
|
|
387
|
-
* @param {Vec3} [up] - Camera up vector otherwise camera current up vector(this.
|
|
382
|
+
* @param {Vec3} [up] - Camera up vector otherwise camera current up vector(this._u)
|
|
388
383
|
*/
|
|
389
384
|
look(look, up) {
|
|
390
|
-
this.
|
|
391
|
-
this.
|
|
392
|
-
this.
|
|
393
|
-
this.
|
|
394
|
-
this.
|
|
385
|
+
this._b.set(this.eye.x - look.x, this.eye.y - look.y, this.eye.z - look.z);
|
|
386
|
+
this._r.copy((up || this._u).cross(this._b));
|
|
387
|
+
this._b.normalize();
|
|
388
|
+
this._r.normalize();
|
|
389
|
+
this._u.copy(this._b.cross(this._r));
|
|
395
390
|
}
|
|
396
391
|
|
|
397
392
|
/**
|
|
@@ -402,9 +397,9 @@ class Camera {
|
|
|
402
397
|
* @param {number} dn - delta Z
|
|
403
398
|
*/
|
|
404
399
|
slide(du, dv, dn) {
|
|
405
|
-
this.eye.x += du * this.
|
|
406
|
-
this.eye.y += du * this.
|
|
407
|
-
this.eye.z += du * this.
|
|
400
|
+
this.eye.x += du * this._r.x + dv * this._u.x + dn * this._b.x;
|
|
401
|
+
this.eye.y += du * this._r.y + dv * this._u.y + dn * this._b.y;
|
|
402
|
+
this.eye.z += du * this._r.z + dv * this._u.z + dn * this._b.z;
|
|
408
403
|
}
|
|
409
404
|
|
|
410
405
|
/**
|
|
@@ -415,16 +410,16 @@ class Camera {
|
|
|
415
410
|
roll(angle) {
|
|
416
411
|
var cs = Math.cos(math.RADIANS * angle);
|
|
417
412
|
var sn = Math.sin(math.RADIANS * angle);
|
|
418
|
-
var t = this.
|
|
419
|
-
this.
|
|
420
|
-
cs * t.x - sn * this.
|
|
421
|
-
cs * t.y - sn * this.
|
|
422
|
-
cs * t.z - sn * this.
|
|
413
|
+
var t = this._r.clone();
|
|
414
|
+
this._r.set(
|
|
415
|
+
cs * t.x - sn * this._u.x,
|
|
416
|
+
cs * t.y - sn * this._u.y,
|
|
417
|
+
cs * t.z - sn * this._u.z
|
|
423
418
|
);
|
|
424
|
-
this.
|
|
425
|
-
sn * t.x + cs * this.
|
|
426
|
-
sn * t.y + cs * this.
|
|
427
|
-
sn * t.z + cs * this.
|
|
419
|
+
this._u.set(
|
|
420
|
+
sn * t.x + cs * this._u.x,
|
|
421
|
+
sn * t.y + cs * this._u.y,
|
|
422
|
+
sn * t.z + cs * this._u.z
|
|
428
423
|
);
|
|
429
424
|
}
|
|
430
425
|
|
|
@@ -436,16 +431,16 @@ class Camera {
|
|
|
436
431
|
pitch(angle) {
|
|
437
432
|
var cs = Math.cos(math.RADIANS * angle);
|
|
438
433
|
var sn = Math.sin(math.RADIANS * angle);
|
|
439
|
-
var t = this.
|
|
440
|
-
this.
|
|
441
|
-
cs * t.x - sn * this.
|
|
442
|
-
cs * t.y - sn * this.
|
|
443
|
-
cs * t.z - sn * this.
|
|
434
|
+
var t = this._b.clone();
|
|
435
|
+
this._b.set(
|
|
436
|
+
cs * t.x - sn * this._u.x,
|
|
437
|
+
cs * t.y - sn * this._u.y,
|
|
438
|
+
cs * t.z - sn * this._u.z
|
|
444
439
|
);
|
|
445
|
-
this.
|
|
446
|
-
sn * t.x + cs * this.
|
|
447
|
-
sn * t.y + cs * this.
|
|
448
|
-
sn * t.z + cs * this.
|
|
440
|
+
this._u.set(
|
|
441
|
+
sn * t.x + cs * this._u.x,
|
|
442
|
+
sn * t.y + cs * this._u.y,
|
|
443
|
+
sn * t.z + cs * this._u.z
|
|
449
444
|
);
|
|
450
445
|
}
|
|
451
446
|
|
|
@@ -457,16 +452,16 @@ class Camera {
|
|
|
457
452
|
yaw(angle) {
|
|
458
453
|
var cs = Math.cos(math.RADIANS * angle);
|
|
459
454
|
var sn = Math.sin(math.RADIANS * angle);
|
|
460
|
-
var t = this.
|
|
461
|
-
this.
|
|
462
|
-
cs * t.x - sn * this.
|
|
463
|
-
cs * t.y - sn * this.
|
|
464
|
-
cs * t.z - sn * this.
|
|
455
|
+
var t = this._r.clone();
|
|
456
|
+
this._r.set(
|
|
457
|
+
cs * t.x - sn * this._b.x,
|
|
458
|
+
cs * t.y - sn * this._b.y,
|
|
459
|
+
cs * t.z - sn * this._b.z
|
|
465
460
|
);
|
|
466
|
-
this.
|
|
467
|
-
sn * t.x + cs * this.
|
|
468
|
-
sn * t.y + cs * this.
|
|
469
|
-
sn * t.z + cs * this.
|
|
461
|
+
this._b.set(
|
|
462
|
+
sn * t.x + cs * this._b.x,
|
|
463
|
+
sn * t.y + cs * this._b.y,
|
|
464
|
+
sn * t.z + cs * this._b.z
|
|
470
465
|
);
|
|
471
466
|
}
|
|
472
467
|
|
|
@@ -485,12 +480,8 @@ class Camera {
|
|
|
485
480
|
var px = (x - w) / w,
|
|
486
481
|
py = -(y - h) / h;
|
|
487
482
|
|
|
488
|
-
var world1 = this.frustums[0]._inverseProjectionViewMatrix
|
|
489
|
-
|
|
490
|
-
.affinity(),
|
|
491
|
-
world2 = this.frustums[0]._inverseProjectionViewMatrix
|
|
492
|
-
.mulVec4(new Vec4(px, py, 0.0, 1.0))
|
|
493
|
-
.affinity();
|
|
483
|
+
var world1 = this.frustums[0]._inverseProjectionViewMatrix.mulVec4(new Vec4(px, py, -1.0, 1.0)).affinity(),
|
|
484
|
+
world2 = this.frustums[0]._inverseProjectionViewMatrix.mulVec4(new Vec4(px, py, 0.0, 1.0)).affinity();
|
|
494
485
|
|
|
495
486
|
return world2.subA(world1).toVec3().normalize();
|
|
496
487
|
}
|
|
@@ -520,16 +511,16 @@ class Camera {
|
|
|
520
511
|
center = center || Vec3.ZERO;
|
|
521
512
|
up = up || Vec3.UP;
|
|
522
513
|
|
|
523
|
-
var rot = new Mat4().setRotation(isArc ? this.
|
|
514
|
+
var rot = new Mat4().setRotation(isArc ? this._u : up, angle);
|
|
524
515
|
var tr = new Mat4().setIdentity().translate(center);
|
|
525
516
|
var ntr = new Mat4().setIdentity().translate(center.negateTo());
|
|
526
517
|
|
|
527
518
|
var trm = tr.mul(rot).mul(ntr);
|
|
528
519
|
|
|
529
520
|
this.eye = trm.mulVec3(this.eye);
|
|
530
|
-
this._v = rot.mulVec3(this._v).normalize();
|
|
531
521
|
this._u = rot.mulVec3(this._u).normalize();
|
|
532
|
-
this.
|
|
522
|
+
this._r = rot.mulVec3(this._r).normalize();
|
|
523
|
+
this._b = rot.mulVec3(this._b).normalize();
|
|
533
524
|
}
|
|
534
525
|
|
|
535
526
|
/**
|
|
@@ -551,7 +542,7 @@ class Camera {
|
|
|
551
542
|
* @param {Vec3} center - Point that the camera rotates around.
|
|
552
543
|
*/
|
|
553
544
|
rotateVertical(angle, center) {
|
|
554
|
-
this.rotateAround(angle, false, center, this.
|
|
545
|
+
this.rotateAround(angle, false, center, this._r);
|
|
555
546
|
}
|
|
556
547
|
|
|
557
548
|
/**
|