@openglobus/og 0.11.2 → 0.11.7
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/package.json +13 -13
- package/src/og/Clock.js +10 -10
- package/src/og/Events.js +8 -6
- package/src/og/Extent.js +82 -41
- package/src/og/Globe.js +25 -13
- package/src/og/ImageCanvas.js +22 -16
- package/src/og/LonLat.js +16 -13
- package/src/og/Popup.js +21 -14
- package/src/og/QueueArray.js +6 -2
- package/src/og/Rectangle.js +11 -6
- package/src/og/Stack.js +5 -2
- package/src/og/ajax.js +21 -33
- package/src/og/astro/astro.js +5 -5
- package/src/og/astro/earth.js +22 -16
- package/src/og/astro/jd.js +23 -18
- package/src/og/astro/orbit.js +13 -11
- package/src/og/astro/rotation.js +17 -8
- package/src/og/bv/Box.js +7 -3
- package/src/og/bv/Sphere.js +14 -11
- package/src/og/camera/Camera.js +51 -54
- package/src/og/camera/Frustum.js +29 -18
- package/src/og/camera/PlanetCamera.js +32 -23
- package/src/og/control/CompassButton.js +5 -1
- package/src/og/control/Control.js +12 -10
- package/src/og/control/DebugInfo.js +4 -1
- package/src/og/control/EarthCoordinates.js +54 -33
- package/src/og/control/KeyboardNavigation.js +10 -10
- package/src/og/control/LayerSwitcher.js +22 -21
- package/src/og/control/Lighting.js +34 -3
- package/src/og/control/MouseNavigation.js +1 -1
- package/src/og/control/ScaleControl.js +1 -1
- package/src/og/control/SegmentBoundVisualization.js +6 -7
- package/src/og/control/ShowFps.js +13 -8
- package/src/og/control/SimpleNavigation.js +6 -8
- package/src/og/control/Sun.js +25 -15
- package/src/og/control/ToggleWireframe.js +4 -4
- package/src/og/control/TouchNavigation.js +44 -33
- package/src/og/control/ZoomControl.js +41 -25
- package/src/og/ellipsoid/Ellipsoid.js +162 -66
- package/src/og/ellipsoid/wgs84.js +4 -4
- package/src/og/entity/BaseBillboard.js +100 -56
- package/src/og/entity/Billboard.js +14 -10
- package/src/og/entity/BillboardHandler.js +317 -60
- package/src/og/entity/Entity.js +100 -68
- package/src/og/entity/EntityCollection.js +70 -47
- package/src/og/entity/GeoObject.js +228 -0
- package/src/og/entity/GeoObjectHandler.js +910 -0
- package/src/og/entity/Geometry.js +27 -24
- package/src/og/entity/GeometryHandler.js +596 -124
- package/src/og/entity/Label.js +80 -49
- package/src/og/entity/LabelHandler.js +45 -244
- package/src/og/entity/LabelWorker.js +218 -0
- package/src/og/entity/Object3d.js +504 -0
- package/src/og/entity/PointCloud.js +80 -32
- package/src/og/entity/PointCloudHandler.js +8 -8
- package/src/og/entity/Polyline.js +16 -16
- package/src/og/entity/Ray.js +60 -27
- package/src/og/entity/Strip.js +77 -48
- package/src/og/entity/StripHandler.js +26 -26
- package/src/og/entity/index.js +8 -16
- package/src/og/layer/BaseGeoImage.js +54 -23
- package/src/og/layer/CanvasTiles.js +24 -24
- package/src/og/layer/GeoImage.js +9 -9
- package/src/og/layer/GeoVideo.js +3 -3
- package/src/og/layer/KML.js +63 -37
- package/src/og/layer/Layer.js +44 -21
- package/src/og/layer/Material.js +23 -20
- package/src/og/layer/Vector.js +114 -68
- package/src/og/layer/WMS.js +34 -17
- package/src/og/layer/XYZ.js +48 -46
- package/src/og/light/LightSource.js +46 -39
- package/src/og/math/Mat3.js +34 -22
- package/src/og/math/Mat4.js +603 -459
- package/src/og/math/Plane.js +21 -20
- package/src/og/math/Quat.js +182 -139
- package/src/og/math/Ray.js +38 -33
- package/src/og/math/Vec2.js +85 -75
- package/src/og/math/Vec3.js +142 -112
- package/src/og/math/Vec4.js +27 -31
- package/src/og/math/coder.js +10 -10
- package/src/og/math.js +12 -12
- package/src/og/proj/EPSG3857.js +4 -4
- package/src/og/proj/EPSG4326.js +4 -4
- package/src/og/proj/Proj.js +4 -6
- package/src/og/quadTree/Node.js +8 -8
- package/src/og/renderer/Renderer.js +59 -52
- package/src/og/renderer/RendererEvents.js +50 -27
- package/src/og/scene/BaseNode.js +7 -8
- package/src/og/scene/Planet.js +102 -103
- package/src/og/scene/RenderNode.js +28 -21
- package/src/og/segment/Segment.js +26 -21
- package/src/og/segment/SegmentLonLat.js +5 -5
- package/src/og/shaders/drawnode.js +135 -142
- 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 +126 -54
- package/src/og/shapes/Icosphere.js +29 -14
- package/src/og/shapes/Sphere.js +12 -15
- package/src/og/terrain/BilTerrain.js +1 -0
- package/src/og/terrain/EmptyTerrain.js +2 -2
- package/src/og/terrain/GlobusTerrain.js +9 -9
- package/src/og/utils/FontAtlas.js +6 -2
- package/src/og/utils/TextureAtlas.js +22 -24
- package/src/og/utils/VectorTileCreator.js +1 -3
- package/src/og/utils/shared.js +16 -16
- package/src/og/webgl/Framebuffer.js +88 -40
- package/src/og/webgl/Handler.js +243 -169
- package/src/og/webgl/Multisample.js +47 -19
- package/src/og/webgl/Program.js +79 -34
- package/src/og/webgl/ProgramController.js +17 -13
- package/src/og/webgl/callbacks.js +8 -8
- package/src/og/inherits.js +0 -8
- package/src/og/utils/polylabel.js +0 -176
- package/types/Clock.d.ts +0 -90
- package/types/Deferred.d.ts +0 -6
- package/types/Events.d.ts +0 -73
- package/types/Extent.d.ts +0 -166
- package/types/Globe.d.ts +0 -75
- package/types/ImageCanvas.d.ts +0 -121
- package/types/Lock.d.ts +0 -12
- package/types/LonLat.d.ts +0 -108
- package/types/Popup.d.ts +0 -38
- package/types/QueueArray.d.ts +0 -15
- package/types/Rectangle.d.ts +0 -74
- package/types/Stack.d.ts +0 -15
- 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 -6
- package/types/astro/jd.d.ts +0 -254
- package/types/bv/Box.d.ts +0 -25
- package/types/bv/Sphere.d.ts +0 -38
- package/types/bv/index.d.ts +0 -3
- package/types/camera/Camera.d.ts +0 -303
- package/types/camera/Frustum.d.ts +0 -129
- package/types/camera/PlanetCamera.d.ts +0 -223
- package/types/camera/index.d.ts +0 -3
- package/types/cons.d.ts +0 -40
- package/types/control/CompassButton.d.ts +0 -18
- package/types/control/Control.d.ts +0 -101
- package/types/control/DebugInfo.d.ts +0 -16
- 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 -22
- package/types/control/LayerSwitcher.d.ts +0 -23
- package/types/control/Lighting.d.ts +0 -16
- package/types/control/MouseNavigation.d.ts +0 -51
- package/types/control/ScaleControl.d.ts +0 -22
- package/types/control/ShowFps.d.ts +0 -12
- package/types/control/SimpleNavigation.d.ts +0 -28
- package/types/control/Sun.d.ts +0 -52
- package/types/control/ToggleWireframe.d.ts +0 -12
- package/types/control/TouchNavigation.d.ts +0 -50
- package/types/control/ZoomControl.d.ts +0 -28
- package/types/control/index.d.ts +0 -17
- package/types/ellipsoid/Ellipsoid.d.ts +0 -142
- package/types/ellipsoid/index.d.ts +0 -3
- package/types/ellipsoid/wgs84.d.ts +0 -5
- package/types/entity/BaseBillboard.d.ts +0 -208
- package/types/entity/Billboard.d.ts +0 -94
- package/types/entity/BillboardHandler.d.ts +0 -74
- package/types/entity/Entity.d.ts +0 -331
- package/types/entity/EntityCollection.d.ts +0 -303
- package/types/entity/Geometry.d.ts +0 -73
- package/types/entity/GeometryHandler.d.ts +0 -76
- package/types/entity/Label.d.ts +0 -194
- package/types/entity/LabelHandler.d.ts +0 -24
- package/types/entity/PointCloud.d.ts +0 -174
- package/types/entity/PointCloudHandler.d.ts +0 -38
- package/types/entity/Polyline.d.ts +0 -304
- package/types/entity/PolylineHandler.d.ts +0 -18
- package/types/entity/Ray.d.ts +0 -123
- package/types/entity/RayHandler.d.ts +0 -67
- package/types/entity/ShapeHandler.d.ts +0 -22
- package/types/entity/Strip.d.ts +0 -118
- 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/inherits.d.ts +0 -4
- 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 -107
- package/types/layer/CanvasTiles.d.ts +0 -75
- package/types/layer/GeoImage.d.ts +0 -65
- package/types/layer/GeoTexture2d.d.ts +0 -8
- package/types/layer/GeoVideo.d.ts +0 -80
- package/types/layer/KML.d.ts +0 -58
- package/types/layer/Layer.d.ts +0 -321
- package/types/layer/Material.d.ts +0 -48
- package/types/layer/Vector.d.ts +0 -228
- package/types/layer/WMS.d.ts +0 -66
- package/types/layer/XYZ.d.ts +0 -130
- package/types/layer/index.d.ts +0 -10
- package/types/light/LightSource.d.ts +0 -177
- package/types/math/Line2.d.ts +0 -11
- package/types/math/Line3.d.ts +0 -10
- package/types/math/Mat3.d.ts +0 -63
- package/types/math/Mat4.d.ts +0 -173
- package/types/math/Plane.d.ts +0 -17
- package/types/math/Quat.d.ts +0 -376
- package/types/math/Ray.d.ts +0 -81
- package/types/math/Vec2.d.ts +0 -308
- package/types/math/Vec3.d.ts +0 -459
- package/types/math/Vec4.d.ts +0 -161
- package/types/math/coder.d.ts +0 -42
- 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 -5
- package/types/proj/EPSG4326.d.ts +0 -5
- 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 -296
- package/types/renderer/RendererEvents.d.ts +0 -230
- 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 -574
- package/types/scene/RenderNode.d.ts +0 -143
- package/types/scene/SkyBox.d.ts +0 -10
- package/types/scene/index.d.ts +0 -4
- package/types/segment/Segment.d.ts +0 -271
- package/types/segment/SegmentLonLat.d.ts +0 -62
- 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 -247
- package/types/shapes/Sphere.d.ts +0 -41
- package/types/terrain/BilTerrain.d.ts +0 -8
- package/types/terrain/EmptyTerrain.d.ts +0 -72
- package/types/terrain/Geoid.d.ts +0 -26
- package/types/terrain/GlobusTerrain.d.ts +0 -153
- package/types/terrain/MapboxTerrain.d.ts +0 -8
- 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 -230
- package/types/webgl/Framebuffer.d.ts +0 -135
- package/types/webgl/Handler.d.ts +0 -372
- package/types/webgl/Multisample.d.ts +0 -89
- package/types/webgl/Program.d.ts +0 -155
- package/types/webgl/ProgramController.d.ts +0 -84
- package/types/webgl/callbacks.d.ts +0 -1
- package/types/webgl/index.d.ts +0 -6
- package/types/webgl/types.d.ts +0 -2
|
@@ -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,6 +12,9 @@
|
|
|
12
12
|
* @param {Boolean} [options.autoActivated=true] - If true - calls initialize function after the renderer assigning.
|
|
13
13
|
*/
|
|
14
14
|
class Control {
|
|
15
|
+
/**
|
|
16
|
+
* @param {Object} [options] - Control activation options:
|
|
17
|
+
*/
|
|
15
18
|
constructor(options) {
|
|
16
19
|
options = options || {};
|
|
17
20
|
|
|
@@ -29,7 +32,7 @@ class Control {
|
|
|
29
32
|
/**
|
|
30
33
|
* Assigned renderer.
|
|
31
34
|
* @public
|
|
32
|
-
* @type {
|
|
35
|
+
* @type {Renderer}
|
|
33
36
|
*/
|
|
34
37
|
this.renderer = null;
|
|
35
38
|
|
|
@@ -73,40 +76,40 @@ class Control {
|
|
|
73
76
|
* @public
|
|
74
77
|
* @virtual
|
|
75
78
|
*/
|
|
76
|
-
oninit() {
|
|
79
|
+
oninit() {}
|
|
77
80
|
|
|
78
81
|
/**
|
|
79
82
|
* Control renderer assigning function have to be overriden.
|
|
80
83
|
* @public
|
|
81
84
|
* @virtual
|
|
82
85
|
*/
|
|
83
|
-
onadd() {
|
|
86
|
+
onadd() {}
|
|
84
87
|
|
|
85
88
|
/**
|
|
86
89
|
* Control remove function have to be overriden.
|
|
87
90
|
* @public
|
|
88
91
|
* @virtual
|
|
89
92
|
*/
|
|
90
|
-
onremove() {
|
|
93
|
+
onremove() {}
|
|
91
94
|
|
|
92
95
|
/**
|
|
93
96
|
* Control activation function have to be overriden.
|
|
94
97
|
* @public
|
|
95
98
|
* @virtual
|
|
96
99
|
*/
|
|
97
|
-
onactivate() {
|
|
100
|
+
onactivate() {}
|
|
98
101
|
|
|
99
102
|
/**
|
|
100
103
|
* Control deactivation function have to be overriden.
|
|
101
104
|
* @public
|
|
102
105
|
* @virtual
|
|
103
106
|
*/
|
|
104
|
-
ondeactivate() {
|
|
107
|
+
ondeactivate() {}
|
|
105
108
|
|
|
106
109
|
/**
|
|
107
110
|
* Assign renderer to the control.
|
|
108
111
|
* @public
|
|
109
|
-
* @type {
|
|
112
|
+
* @type {Renderer}
|
|
110
113
|
*/
|
|
111
114
|
addTo(renderer) {
|
|
112
115
|
if (renderer) {
|
|
@@ -126,7 +129,6 @@ class Control {
|
|
|
126
129
|
* @public
|
|
127
130
|
*/
|
|
128
131
|
remove() {
|
|
129
|
-
|
|
130
132
|
this.onremove && this.onremove();
|
|
131
133
|
|
|
132
134
|
let r = this.renderer,
|
|
@@ -183,4 +185,4 @@ class Control {
|
|
|
183
185
|
}
|
|
184
186
|
}
|
|
185
187
|
|
|
186
|
-
export { Control };
|
|
188
|
+
export { Control };
|
|
@@ -9,10 +9,13 @@ import { Control } from "./Control.js";
|
|
|
9
9
|
/**
|
|
10
10
|
* Debug information
|
|
11
11
|
* @class
|
|
12
|
-
* @extends {
|
|
12
|
+
* @extends {Control}
|
|
13
13
|
* @param {Object} [options] - Control options.
|
|
14
14
|
*/
|
|
15
15
|
class DebugInfo extends Control {
|
|
16
|
+
/**
|
|
17
|
+
* @param {Object} [options] - Control options.
|
|
18
|
+
*/
|
|
16
19
|
constructor(options) {
|
|
17
20
|
options = options || {};
|
|
18
21
|
if (!options.name || options.name === "") {
|
|
@@ -2,26 +2,31 @@
|
|
|
2
2
|
* @module og/control/EarthCoordinates
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
"use strict";
|
|
6
6
|
|
|
7
|
-
import { Control } from
|
|
7
|
+
import { Control } from "./Control.js";
|
|
8
8
|
|
|
9
9
|
function dec2deg(base) {
|
|
10
10
|
var t;
|
|
11
11
|
var degrees = base < 0 ? Math.ceil(base) : Math.floor(base);
|
|
12
|
-
var minutes = Math.floor(t = Math.abs(
|
|
12
|
+
var minutes = Math.floor((t = Math.abs(base - degrees) * 60));
|
|
13
13
|
var seconds = Math.floor((t - minutes) * 6000);
|
|
14
|
-
seconds = seconds / 100.
|
|
15
|
-
return (
|
|
16
|
-
numToFixedString(
|
|
17
|
-
|
|
14
|
+
seconds = seconds / 100.0;
|
|
15
|
+
return (
|
|
16
|
+
numToFixedString(degrees, 3) +
|
|
17
|
+
"\u00B0" +
|
|
18
|
+
numToFixedString(minutes, 2) +
|
|
19
|
+
"\u0027" +
|
|
20
|
+
numToFixedString(seconds.toFixed(2), 2) +
|
|
21
|
+
"\u0022"
|
|
22
|
+
);
|
|
18
23
|
}
|
|
19
24
|
|
|
20
25
|
function numToFixedString(num, fixed) {
|
|
21
|
-
var dl = num.toString().split(
|
|
26
|
+
var dl = num.toString().split(".")[0].length;
|
|
22
27
|
var white = " ";
|
|
23
28
|
for (var i = dl; i < fixed; i++) {
|
|
24
|
-
white +=
|
|
29
|
+
white += " ";
|
|
25
30
|
}
|
|
26
31
|
return white + num.toString();
|
|
27
32
|
}
|
|
@@ -39,21 +44,21 @@ function toMercator(ll) {
|
|
|
39
44
|
return m.lat.toFixed(5) + ", " + m.lon.toFixed(5);
|
|
40
45
|
}
|
|
41
46
|
|
|
42
|
-
const DisplayTypesConverters = [
|
|
43
|
-
toDecimal,
|
|
44
|
-
toDegrees,
|
|
45
|
-
toMercator
|
|
46
|
-
];
|
|
47
|
+
const DisplayTypesConverters = [toDecimal, toDegrees, toMercator];
|
|
47
48
|
|
|
48
49
|
/**
|
|
49
50
|
* Control displays mouse or screen center Earth coordinates.
|
|
50
51
|
* @class
|
|
51
|
-
* @extends {
|
|
52
|
+
* @extends {Control}
|
|
52
53
|
* @param {Object} [options] - Options:
|
|
53
54
|
* @param {Boolean} [options.center] - Earth coordiantes by screen center otherwise mouse pointer. False is default.
|
|
54
55
|
* @param {Boolean} [options.type] - Coordinates shown: 0 - is decimal degrees, 1 - degrees, 2 - mercator geodetic coordinates.
|
|
55
56
|
*/
|
|
56
57
|
class EarthCoordinates extends Control {
|
|
58
|
+
/**
|
|
59
|
+
*
|
|
60
|
+
* @param {Object} [options] - Options:
|
|
61
|
+
*/
|
|
57
62
|
constructor(options) {
|
|
58
63
|
super(options);
|
|
59
64
|
|
|
@@ -87,27 +92,32 @@ class EarthCoordinates extends Control {
|
|
|
87
92
|
*/
|
|
88
93
|
|
|
89
94
|
var pad = false;
|
|
90
|
-
if (
|
|
95
|
+
if (
|
|
96
|
+
/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(
|
|
97
|
+
navigator.userAgent
|
|
98
|
+
)
|
|
99
|
+
) {
|
|
91
100
|
pad = true;
|
|
92
101
|
}
|
|
93
102
|
|
|
94
103
|
this._center = options.center || pad;
|
|
95
104
|
|
|
105
|
+
this._centerDiv = null;
|
|
106
|
+
|
|
96
107
|
/**
|
|
97
108
|
* Current position.
|
|
98
109
|
* @public
|
|
99
|
-
* @type {
|
|
110
|
+
* @type {Vec3}
|
|
100
111
|
*/
|
|
101
112
|
this.position = null;
|
|
102
113
|
}
|
|
103
114
|
|
|
104
115
|
oninit() {
|
|
105
|
-
this._display = document.createElement(
|
|
106
|
-
this._display.className =
|
|
116
|
+
this._display = document.createElement("div");
|
|
117
|
+
this._display.className = "ogEarthCoordinatesControl";
|
|
107
118
|
var that = this;
|
|
108
119
|
|
|
109
120
|
function _refresh(el) {
|
|
110
|
-
|
|
111
121
|
if (that._displayType >= DisplayTypesConverters.length) {
|
|
112
122
|
that._displayType = 0;
|
|
113
123
|
}
|
|
@@ -132,19 +142,19 @@ class EarthCoordinates extends Control {
|
|
|
132
142
|
|
|
133
143
|
_refresh(this._display);
|
|
134
144
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
145
|
+
this._centerDiv = document.createElement("div");
|
|
146
|
+
this._centerDiv.className = "ogCenterIcon";
|
|
147
|
+
this._centerDiv.innerHTML =
|
|
148
|
+
'<svg width="12" height="12"><g><path stroke-width="1" stroke-opacity="1" d="M6 0L6 12M0 6L12 6" stroke="#009DFF"></path></g></svg>';
|
|
149
|
+
this.renderer.div.appendChild(this._centerDiv);
|
|
139
150
|
|
|
140
151
|
if (this._center) {
|
|
141
152
|
this.renderer.activeCamera.events.on("moveend", this._grabCoordinates, this);
|
|
142
|
-
|
|
153
|
+
this._centerDiv.style.display = "block";
|
|
143
154
|
} else {
|
|
144
155
|
this.renderer.events.on("mousemove", this._onMouseMove, this);
|
|
145
|
-
|
|
156
|
+
this._centerDiv.style.display = "none";
|
|
146
157
|
}
|
|
147
|
-
|
|
148
158
|
}
|
|
149
159
|
|
|
150
160
|
/**
|
|
@@ -158,19 +168,28 @@ class EarthCoordinates extends Control {
|
|
|
158
168
|
if (center) {
|
|
159
169
|
this.renderer.events.off("mousemove", this._onMouseMove);
|
|
160
170
|
this.renderer.activeCamera.events.on("moveend", this._grabCoordinates, this);
|
|
161
|
-
|
|
171
|
+
this._centerDiv.style.display = "block";
|
|
162
172
|
} else {
|
|
163
173
|
this.renderer.events.off("draw", this._draw);
|
|
164
174
|
this.renderer.events.on("mousemove", this._onMouseMove, this);
|
|
165
|
-
|
|
175
|
+
this._centerDiv.style.display = "none";
|
|
166
176
|
}
|
|
167
177
|
}
|
|
168
178
|
}
|
|
169
179
|
|
|
170
180
|
_showPosition() {
|
|
171
181
|
if (this.position) {
|
|
172
|
-
this.position.height =
|
|
173
|
-
|
|
182
|
+
this.position.height =
|
|
183
|
+
this.position.height > 10000 || this.position.height < -10000
|
|
184
|
+
? 0
|
|
185
|
+
: this.position.height;
|
|
186
|
+
this._display.innerHTML =
|
|
187
|
+
"Lat/Lon: " +
|
|
188
|
+
this._converter(this.position) +
|
|
189
|
+
" h(m): " +
|
|
190
|
+
(this.position.height > 0
|
|
191
|
+
? "~" + (Math.round(this.position.height) / 1000).toFixed(3) * 1000
|
|
192
|
+
: "-");
|
|
174
193
|
} else {
|
|
175
194
|
this._display.innerHTML = "Lat/Lon: " + "_____________________";
|
|
176
195
|
}
|
|
@@ -185,9 +204,11 @@ class EarthCoordinates extends Control {
|
|
|
185
204
|
_onMouseMove() {
|
|
186
205
|
var r = this.renderer;
|
|
187
206
|
var ms = r.events.mouseState;
|
|
188
|
-
if (
|
|
207
|
+
if (
|
|
208
|
+
!(ms.leftButtonDown || ms.rightButtonDown) &&
|
|
189
209
|
r.controlsBag.scaleRot <= 0 &&
|
|
190
|
-
!r.activeCamera._flying
|
|
210
|
+
!r.activeCamera._flying
|
|
211
|
+
) {
|
|
191
212
|
this.position = this.planet.getLonLatFromPixelTerrain(ms, true);
|
|
192
213
|
this._showPosition();
|
|
193
214
|
}
|
|
@@ -2,17 +2,17 @@
|
|
|
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.
|
|
14
14
|
* @class
|
|
15
|
-
* @extends {
|
|
15
|
+
* @extends {Control}
|
|
16
16
|
* @param {Object} [options] - Control options.
|
|
17
17
|
*/
|
|
18
18
|
|
|
@@ -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,14 +2,14 @@
|
|
|
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.
|
|
11
11
|
* @class
|
|
12
|
-
* @extends {
|
|
12
|
+
* @extends {Control}
|
|
13
13
|
* @param {Object} [options] - Control options.
|
|
14
14
|
*/
|
|
15
15
|
class LayerSwitcher extends Control {
|
|
@@ -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 };
|
|
@@ -10,6 +10,11 @@ import { parseHTML } from "../utils/shared.js";
|
|
|
10
10
|
const TEMPLATE = `<div class="og-lighing">
|
|
11
11
|
|
|
12
12
|
<div class="og-screen-options">
|
|
13
|
+
|
|
14
|
+
<div class="og-option">
|
|
15
|
+
<div class="og-caption">Lighting enabled<input type="checkbox" id="lighting" name="light"/></div>
|
|
16
|
+
</div>
|
|
17
|
+
|
|
13
18
|
<div class="og-option">
|
|
14
19
|
<div class="og-caption">Gamma</div>
|
|
15
20
|
<div class="og-slider">
|
|
@@ -32,6 +37,14 @@ const TEMPLATE = `<div class="og-lighing">
|
|
|
32
37
|
</div>
|
|
33
38
|
|
|
34
39
|
<div class="og-color-options">
|
|
40
|
+
<div class="og-caption">Opacity</div>
|
|
41
|
+
<div class="og-option">
|
|
42
|
+
<div class="og-label">A</div>
|
|
43
|
+
<div class="og-slider">
|
|
44
|
+
<input type="range" id="opacity" name="opacity" value="0.0" min="0.0" max="2.0" step="0.01" />
|
|
45
|
+
</div>
|
|
46
|
+
<div class="og-value opacity"></div>
|
|
47
|
+
</div>
|
|
35
48
|
<div class="og-caption">Ambient</div>
|
|
36
49
|
<div class="og-option">
|
|
37
50
|
<div class="og-label">R</div>
|
|
@@ -115,7 +128,7 @@ const TEMPLATE = `<div class="og-lighing">
|
|
|
115
128
|
/**
|
|
116
129
|
* Helps to setup lighting.
|
|
117
130
|
* @class
|
|
118
|
-
* @extends {
|
|
131
|
+
* @extends {Control}
|
|
119
132
|
* @param {Object} [options] -
|
|
120
133
|
*/
|
|
121
134
|
class Lighting extends Control {
|
|
@@ -128,6 +141,8 @@ class Lighting extends Control {
|
|
|
128
141
|
bindLayer(layer) {
|
|
129
142
|
this._selectedLayer = layer;
|
|
130
143
|
|
|
144
|
+
document.getElementById("opacity").value = layer.opacity;
|
|
145
|
+
|
|
131
146
|
document.getElementById("ambient-r").value = layer.ambient.x;
|
|
132
147
|
document.getElementById("ambient-g").value = layer.ambient.y;
|
|
133
148
|
document.getElementById("ambient-b").value = layer.ambient.z;
|
|
@@ -142,6 +157,8 @@ class Lighting extends Control {
|
|
|
142
157
|
|
|
143
158
|
document.getElementById("shininess").value = layer.shininess;
|
|
144
159
|
|
|
160
|
+
document.querySelector(".og-value.opacity").innerHTML = layer.opacity.toString();
|
|
161
|
+
|
|
145
162
|
document.querySelector(".og-value.ambient-r").innerHTML = layer.ambient.x.toString();
|
|
146
163
|
document.querySelector(".og-value.ambient-g").innerHTML = layer.ambient.y.toString();
|
|
147
164
|
document.querySelector(".og-value.ambient-b").innerHTML = layer.ambient.z.toString();
|
|
@@ -163,8 +180,15 @@ class Lighting extends Control {
|
|
|
163
180
|
|
|
164
181
|
var _this = this;
|
|
165
182
|
|
|
183
|
+
document.getElementById("lighting").checked = this.planet.lightEnabled;
|
|
184
|
+
|
|
185
|
+
document.getElementById("lighting").addEventListener("change", (e) => {
|
|
186
|
+
_this.planet.lightEnabled = e.target.checked;
|
|
187
|
+
});
|
|
188
|
+
|
|
166
189
|
document.getElementById("layers").addEventListener("change", (e) => {
|
|
167
|
-
this._selectedLayer = _this.planet.getLayerByName(e.target.value);
|
|
190
|
+
//this._selectedLayer = _this.planet.getLayerByName(e.target.value);
|
|
191
|
+
this.bindLayer(_this.planet.getLayerByName(e.target.value));
|
|
168
192
|
});
|
|
169
193
|
|
|
170
194
|
document.getElementById("gamma").addEventListener("input", function (e) {
|
|
@@ -183,6 +207,13 @@ class Lighting extends Control {
|
|
|
183
207
|
document.getElementById("gamma").value = this.planet.renderer.gamma;
|
|
184
208
|
document.getElementById("exposure").value = this.planet.renderer.exposure;
|
|
185
209
|
|
|
210
|
+
document.getElementById("opacity").addEventListener("input", function (e) {
|
|
211
|
+
if (_this._selectedLayer) {
|
|
212
|
+
_this._selectedLayer.opacity = Number(this.value);
|
|
213
|
+
}
|
|
214
|
+
document.querySelector(".og-value.opacity").innerHTML = this.value;
|
|
215
|
+
});
|
|
216
|
+
|
|
186
217
|
document.getElementById("ambient-r").addEventListener("input", function (e) {
|
|
187
218
|
if (_this._selectedLayer) {
|
|
188
219
|
_this._selectedLayer.ambient.x = Number(this.value);
|
|
@@ -272,7 +303,7 @@ class Lighting extends Control {
|
|
|
272
303
|
document.getElementById("layers").value = e.name;
|
|
273
304
|
}
|
|
274
305
|
|
|
275
|
-
_onLayerRemove(e) {}
|
|
306
|
+
_onLayerRemove(e) { }
|
|
276
307
|
}
|
|
277
308
|
|
|
278
309
|
export function lighting(options) {
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
|
-
import { Control } from
|
|
4
|
-
import { EntityCollection } from
|
|
5
|
-
import { Entity } from
|
|
3
|
+
import { Control } from "./Control.js";
|
|
4
|
+
import { EntityCollection } from "../entity/EntityCollection.js";
|
|
5
|
+
import { Entity } from "../entity/Entity.js";
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Frame per second(FPS) display control.
|
|
9
9
|
* @class
|
|
10
|
-
* @extends {
|
|
10
|
+
* @extends {Control}
|
|
11
11
|
* @param {Object} [options] - Control options.
|
|
12
12
|
*/
|
|
13
13
|
class SegmentBoundVisualization extends Control {
|
|
@@ -18,7 +18,6 @@ class SegmentBoundVisualization extends Control {
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
oninit() {
|
|
21
|
-
|
|
22
21
|
this.planet.addEntityCollection(this._boundingSphereCollection);
|
|
23
22
|
|
|
24
23
|
this.renderer.events.on("draw", this._predraw, this);
|
|
@@ -28,7 +27,7 @@ class SegmentBoundVisualization extends Control {
|
|
|
28
27
|
_predraw() {
|
|
29
28
|
this._boundingSphereCollection.clear();
|
|
30
29
|
}
|
|
31
|
-
|
|
30
|
+
|
|
32
31
|
_draw() {
|
|
33
32
|
for (let i = 0; i < this.planet._renderedNodes.length; i++) {
|
|
34
33
|
let si = this.planet._renderedNodes[i].segment;
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
* @module og/control/ShowFps
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
"use strict";
|
|
6
6
|
|
|
7
|
-
import { Control } from
|
|
8
|
-
import { print2d } from
|
|
7
|
+
import { Control } from "./Control.js";
|
|
8
|
+
import { print2d } from "../utils/shared.js";
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Frame per second(FPS) display control.
|
|
12
12
|
* @class
|
|
13
|
-
* @extends {
|
|
13
|
+
* @extends {Control}
|
|
14
14
|
* @param {Object} [options] - Control options.
|
|
15
15
|
*/
|
|
16
16
|
class ShowFps extends Control {
|
|
@@ -19,15 +19,20 @@ class ShowFps extends Control {
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
oninit() {
|
|
22
|
-
var d = document.createElement(
|
|
23
|
-
d.className =
|
|
22
|
+
var d = document.createElement("div");
|
|
23
|
+
d.className = "defaultText ";
|
|
24
24
|
d.id = "ogShowFpsControl";
|
|
25
25
|
document.body.appendChild(d);
|
|
26
26
|
this.renderer.events.on("draw", this._draw, this);
|
|
27
27
|
}
|
|
28
|
-
|
|
28
|
+
|
|
29
29
|
_draw() {
|
|
30
|
-
print2d(
|
|
30
|
+
print2d(
|
|
31
|
+
"ogShowFpsControl",
|
|
32
|
+
(1000.0 / this.renderer.handler.deltaTime).toFixed(1),
|
|
33
|
+
this.renderer.handler.canvas.clientWidth - 60,
|
|
34
|
+
0
|
|
35
|
+
);
|
|
31
36
|
}
|
|
32
37
|
}
|
|
33
38
|
|