@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
package/src/og/math/Vec4.js
CHANGED
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
* @module og/math/Vec4
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
"use strict";
|
|
6
6
|
|
|
7
|
-
import { Vec3 } from
|
|
7
|
+
import { Vec3 } from "./Vec3.js";
|
|
8
|
+
import { frac } from "../math.js";
|
|
8
9
|
|
|
9
10
|
/**
|
|
10
11
|
* Class represents a 4d vector.
|
|
@@ -15,9 +16,7 @@ import { Vec3 } from './Vec3.js';
|
|
|
15
16
|
* @param {number} [w] - Fourth value.
|
|
16
17
|
*/
|
|
17
18
|
export class Vec4 {
|
|
18
|
-
|
|
19
19
|
constructor(x, y, z, w) {
|
|
20
|
-
|
|
21
20
|
/**
|
|
22
21
|
* @public
|
|
23
22
|
* @type {number}
|
|
@@ -46,15 +45,17 @@ export class Vec4 {
|
|
|
46
45
|
/**
|
|
47
46
|
* Identity vector [0,0,0,1].
|
|
48
47
|
* @const
|
|
49
|
-
* @type {
|
|
48
|
+
* @type {Vec4}
|
|
50
49
|
*/
|
|
51
|
-
static get identity() {
|
|
50
|
+
static get identity() {
|
|
51
|
+
return new Vec4(0, 0, 0, 1);
|
|
52
|
+
}
|
|
52
53
|
|
|
53
54
|
/**
|
|
54
55
|
* Creates 4d vector from array.
|
|
55
56
|
* @function
|
|
56
57
|
* @param {Array.<number>} - (exactly 4 entries)
|
|
57
|
-
* @returns {
|
|
58
|
+
* @returns {Vec4}
|
|
58
59
|
*/
|
|
59
60
|
static fromVec(arr) {
|
|
60
61
|
return new Vec4(arr[0], arr[1], arr[2], arr[3]);
|
|
@@ -63,7 +64,7 @@ export class Vec4 {
|
|
|
63
64
|
/**
|
|
64
65
|
* Converts to 3d vector, without fourth value.
|
|
65
66
|
* @public
|
|
66
|
-
* @returns {
|
|
67
|
+
* @returns {Vec3}
|
|
67
68
|
*/
|
|
68
69
|
toVec3() {
|
|
69
70
|
return new Vec3(this.x, this.y, this.z);
|
|
@@ -72,7 +73,7 @@ export class Vec4 {
|
|
|
72
73
|
/**
|
|
73
74
|
* Returns clone vector.
|
|
74
75
|
* @public
|
|
75
|
-
* @returns {
|
|
76
|
+
* @returns {Vec4}
|
|
76
77
|
*/
|
|
77
78
|
clone(v) {
|
|
78
79
|
return new Vec4(this.x, this.y, this.z, this.w);
|
|
@@ -81,7 +82,7 @@ export class Vec4 {
|
|
|
81
82
|
/**
|
|
82
83
|
* Compares with vector. Returns true if it equals another.
|
|
83
84
|
* @public
|
|
84
|
-
* @param {
|
|
85
|
+
* @param {Vec4} p - Vector to compare.
|
|
85
86
|
* @returns {boolean}
|
|
86
87
|
*/
|
|
87
88
|
equal(v) {
|
|
@@ -90,8 +91,8 @@ export class Vec4 {
|
|
|
90
91
|
|
|
91
92
|
/**
|
|
92
93
|
* Copy input vector's values.
|
|
93
|
-
* @param {
|
|
94
|
-
* @returns {
|
|
94
|
+
* @param {Vec4} v - Vector to copy.
|
|
95
|
+
* @returns {Vec4}
|
|
95
96
|
*/
|
|
96
97
|
copy(v) {
|
|
97
98
|
this.x = v.x;
|
|
@@ -127,7 +128,7 @@ export class Vec4 {
|
|
|
127
128
|
* @param {number} y - Value Y.
|
|
128
129
|
* @param {number} z - Value Z.
|
|
129
130
|
* @param {number} w - Value W.
|
|
130
|
-
* @returns {
|
|
131
|
+
* @returns {Vec4}
|
|
131
132
|
*/
|
|
132
133
|
set(x, y, z, w) {
|
|
133
134
|
this.x = x;
|
|
@@ -140,8 +141,8 @@ export class Vec4 {
|
|
|
140
141
|
/**
|
|
141
142
|
* Adds vector to the current.
|
|
142
143
|
* @public
|
|
143
|
-
* @param {
|
|
144
|
-
* @returns {
|
|
144
|
+
* @param {Vec4}
|
|
145
|
+
* @returns {Vec4}
|
|
145
146
|
*/
|
|
146
147
|
addA(v) {
|
|
147
148
|
this.x += v.x;
|
|
@@ -154,8 +155,8 @@ export class Vec4 {
|
|
|
154
155
|
/**
|
|
155
156
|
* Subtract vector from the current.
|
|
156
157
|
* @public
|
|
157
|
-
* @param {
|
|
158
|
-
* @returns {
|
|
158
|
+
* @param {Vec4} v - Subtract vector.
|
|
159
|
+
* @returns {Vec4}
|
|
159
160
|
*/
|
|
160
161
|
subA(v) {
|
|
161
162
|
this.x -= v.x;
|
|
@@ -169,7 +170,7 @@ export class Vec4 {
|
|
|
169
170
|
* Scale current vector.
|
|
170
171
|
* @public
|
|
171
172
|
* @param {number} scale - Scale value.
|
|
172
|
-
* @returns {
|
|
173
|
+
* @returns {Vec4}
|
|
173
174
|
*/
|
|
174
175
|
scale(scale) {
|
|
175
176
|
this.x *= scale;
|
|
@@ -182,7 +183,7 @@ export class Vec4 {
|
|
|
182
183
|
/**
|
|
183
184
|
* Makes vector affinity. Thereby fourh component becomes to 1.0.
|
|
184
185
|
* @public
|
|
185
|
-
* @returns {
|
|
186
|
+
* @returns {Vec4}
|
|
186
187
|
*/
|
|
187
188
|
affinity() {
|
|
188
189
|
var iw = 1 / this.w;
|
|
@@ -197,7 +198,7 @@ export class Vec4 {
|
|
|
197
198
|
* Scale current vector to another instance.
|
|
198
199
|
* @public
|
|
199
200
|
* @param {number} scale - Scale value.
|
|
200
|
-
* @returns {
|
|
201
|
+
* @returns {Vec3}
|
|
201
202
|
*/
|
|
202
203
|
scaleTo(scale) {
|
|
203
204
|
return new Vec4(this.x * scale, this.y * scale, this.z * scale, this.w * scale);
|
|
@@ -206,7 +207,7 @@ export class Vec4 {
|
|
|
206
207
|
/**
|
|
207
208
|
* Vector's edge function that returns vector where each component is 0.0 if it's smaller then edge and otherwise 1.0.
|
|
208
209
|
* @public
|
|
209
|
-
* @returns {
|
|
210
|
+
* @returns {Vec4}
|
|
210
211
|
*/
|
|
211
212
|
getStep(edge) {
|
|
212
213
|
return new Vec4(
|
|
@@ -220,21 +221,16 @@ export class Vec4 {
|
|
|
220
221
|
/**
|
|
221
222
|
* The vector fract function returns the vector of fractional parts of each value, i.e. x minus floor(x).
|
|
222
223
|
* @public
|
|
223
|
-
* @returns {
|
|
224
|
+
* @returns {Vec4}
|
|
224
225
|
*/
|
|
225
226
|
getFrac(v) {
|
|
226
|
-
return new Vec4(
|
|
227
|
-
og.math.frac(v.x),
|
|
228
|
-
og.math.frac(v.y),
|
|
229
|
-
og.math.frac(v.z),
|
|
230
|
-
og.math.frac(v.w)
|
|
231
|
-
);
|
|
227
|
+
return new Vec4(frac(v.x), frac(v.y), frac(v.z), frac(v.w));
|
|
232
228
|
}
|
|
233
229
|
|
|
234
230
|
/**
|
|
235
231
|
* Gets vectors dot production.
|
|
236
232
|
* @public
|
|
237
|
-
* @param {
|
|
233
|
+
* @param {math.Vec4} v - Another vector.
|
|
238
234
|
* @returns {number} - Dot product.
|
|
239
235
|
*/
|
|
240
236
|
dot(v) {
|
|
@@ -258,8 +254,8 @@ export class Vec4 {
|
|
|
258
254
|
* @param {number} [y] - Second value.
|
|
259
255
|
* @param {number} [z] - Third value.
|
|
260
256
|
* @param {number} [w] - Fourth value.
|
|
261
|
-
* @returns {
|
|
257
|
+
* @returns {Vec4}
|
|
262
258
|
*/
|
|
263
259
|
export function vec4(x, y, z, w) {
|
|
264
|
-
return new
|
|
260
|
+
return new Vec4(x, y, z, w);
|
|
265
261
|
}
|
package/src/og/math/coder.js
CHANGED
|
@@ -2,19 +2,19 @@
|
|
|
2
2
|
* @module og/math/coder
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
"use strict";
|
|
6
6
|
|
|
7
|
-
import * as math from
|
|
8
|
-
import { Vec4 } from
|
|
7
|
+
import * as math from "../math.js";
|
|
8
|
+
import { Vec4 } from "./Vec4.js";
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Encode 32 bit float value to the RGBA vector.
|
|
12
12
|
* @function
|
|
13
13
|
* @param {number} v - 32 bit float value.
|
|
14
|
-
* @returns {
|
|
14
|
+
* @returns {math.Vec4} - RGBA vector value.
|
|
15
15
|
*/
|
|
16
16
|
export function encodeFloatToRGBA(v) {
|
|
17
|
-
var enc = new Vec4(1.0 * v % 1, 255.0 * v % 1, 65025.0 * v % 1, 160581375.0 * v % 1);
|
|
17
|
+
var enc = new Vec4((1.0 * v) % 1, (255.0 * v) % 1, (65025.0 * v) % 1, (160581375.0 * v) % 1);
|
|
18
18
|
var yzww = new Vec4(enc.y / 255, enc.z / 255, enc.w / 255, 0);
|
|
19
19
|
return enc.subA(yzww);
|
|
20
20
|
}
|
|
@@ -22,26 +22,26 @@ export function encodeFloatToRGBA(v) {
|
|
|
22
22
|
/**
|
|
23
23
|
* Decode RGBA vector to 32 bit float value.
|
|
24
24
|
* @function
|
|
25
|
-
* @param {
|
|
25
|
+
* @param {Vec4} rgba - RGBA encoded 32 bit float value.
|
|
26
26
|
* @returns {number} - Float value.
|
|
27
27
|
*/
|
|
28
28
|
export function decodeFloatFromRGBA(rgba) {
|
|
29
29
|
var s = 1.0 - math.step(128.0, rgba.x) * 2.0;
|
|
30
30
|
var e = 2.0 * math.mod(rgba.x, 128.0) + math.step(128.0, rgba.y) - 127.0;
|
|
31
|
-
var m = math.mod(rgba.y, 128.0) * 65536.0 + rgba.z * 256.0 + rgba.w + 8388608.
|
|
31
|
+
var m = math.mod(rgba.y, 128.0) * 65536.0 + rgba.z * 256.0 + rgba.w + 8388608.0;
|
|
32
32
|
return s * math.exp2(e) * (m * 1.1920928955078125e-7);
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
/**
|
|
36
36
|
* Decode RGBA vector to 32 bit float value.
|
|
37
37
|
* @function
|
|
38
|
-
* @param {
|
|
38
|
+
* @param {Vec4} rgba - RGBA encoded 32 bit float value.
|
|
39
39
|
* @returns {number} - Float value.
|
|
40
40
|
*/
|
|
41
41
|
export function decodeFloatFromRGBAArr(arr, use32) {
|
|
42
42
|
var s = 1.0 - math.step(128.0, arr[0]) * 2.0;
|
|
43
43
|
var e = 2.0 * math.mod(arr[0], 128.0) + math.step(128.0, arr[1]) - 127.0;
|
|
44
|
-
var m = math.mod(arr[1], 128.0) * 65536.0 + arr[2] * 256.0 + (use32 ? arr[3] : 0.0) + 8388608.
|
|
44
|
+
var m = math.mod(arr[1], 128.0) * 65536.0 + arr[2] * 256.0 + (use32 ? arr[3] : 0.0) + 8388608.0;
|
|
45
45
|
return s * math.exp2(e) * (m * 1.1920928955078125e-7);
|
|
46
46
|
}
|
|
47
47
|
|
|
@@ -101,4 +101,4 @@ export function doubleToTwoFloatsV2(value, highLowVec) {
|
|
|
101
101
|
highLowVec.y = Math.fround(value + doubleHigh);
|
|
102
102
|
}
|
|
103
103
|
return highLowVec;
|
|
104
|
-
}
|
|
104
|
+
}
|
package/src/og/math.js
CHANGED
|
@@ -77,7 +77,7 @@ export const EPSILON20 = 1e-20;
|
|
|
77
77
|
* @param {number} base - Base value.
|
|
78
78
|
* @returns {number} -
|
|
79
79
|
* @example
|
|
80
|
-
*
|
|
80
|
+
* log(64, 2)
|
|
81
81
|
* //returns 6
|
|
82
82
|
*/
|
|
83
83
|
export function log(n, base) {
|
|
@@ -92,7 +92,7 @@ export function log(n, base) {
|
|
|
92
92
|
* @param {number} max - Maximal edge.
|
|
93
93
|
* @returns {number} -
|
|
94
94
|
* @example
|
|
95
|
-
*
|
|
95
|
+
* clamp(12, 1, 5)
|
|
96
96
|
* //returns 5
|
|
97
97
|
*/
|
|
98
98
|
export function clamp(number, min, max) {
|
|
@@ -200,9 +200,9 @@ export function mod(m, n) {
|
|
|
200
200
|
* @returns {number} -
|
|
201
201
|
*/
|
|
202
202
|
export function zeroTwoPI(a) {
|
|
203
|
-
var mod =
|
|
204
|
-
if (Math.abs(mod) <
|
|
205
|
-
return
|
|
203
|
+
var mod = mod(a, TWO_PI);
|
|
204
|
+
if (Math.abs(mod) < EPSILON14 && Math.abs(a) > EPSILON14) {
|
|
205
|
+
return TWO_PI;
|
|
206
206
|
}
|
|
207
207
|
return mod;
|
|
208
208
|
}
|
|
@@ -235,7 +235,7 @@ export function frac(x) {
|
|
|
235
235
|
* @returns {number} -
|
|
236
236
|
*/
|
|
237
237
|
export function log2(x) {
|
|
238
|
-
return Math.log(x) /
|
|
238
|
+
return Math.log(x) / LOG2;
|
|
239
239
|
}
|
|
240
240
|
|
|
241
241
|
/**
|
|
@@ -299,11 +299,11 @@ export function bezier1v(t, p0, p1, p2, p3) {
|
|
|
299
299
|
* Performs a 3D bezier interpolation.
|
|
300
300
|
* @function
|
|
301
301
|
* @param {number} t - Interpolation value.
|
|
302
|
-
* @param {
|
|
303
|
-
* @param {
|
|
304
|
-
* @param {
|
|
305
|
-
* @param {
|
|
306
|
-
* @returns {
|
|
302
|
+
* @param {Vec3} p0 - First control point.
|
|
303
|
+
* @param {Vec3} p1 - Second control point.
|
|
304
|
+
* @param {Vec3} p2 - Third control point.
|
|
305
|
+
* @param {Vec3} p3 - Fourth control point.
|
|
306
|
+
* @returns {Vec3} -
|
|
307
307
|
*/
|
|
308
308
|
export function bezier3v(t, p0, p1, p2, p3) {
|
|
309
309
|
var u = 1 - t;
|
|
@@ -346,7 +346,7 @@ export function norm_lon(lon) {
|
|
|
346
346
|
* @returns {number} -
|
|
347
347
|
*/
|
|
348
348
|
export function negativePItoPI(a) {
|
|
349
|
-
return
|
|
349
|
+
return zeroTwoPI(a + Math.PI) - Math.PI;
|
|
350
350
|
}
|
|
351
351
|
|
|
352
352
|
/**
|
package/src/og/proj/EPSG3857.js
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
* @module og/proj/EPSG3857
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
"use strict";
|
|
6
6
|
|
|
7
|
-
import { Units, Proj } from
|
|
7
|
+
import { Units, Proj } from "./Proj.js";
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* EPSG:3857 projection object.
|
|
11
|
-
* @type {
|
|
11
|
+
* @type {Proj}
|
|
12
12
|
*/
|
|
13
|
-
export const EPSG3857 = new Proj({ code: "epsg:3857", units: Units.METERS });
|
|
13
|
+
export const EPSG3857 = new Proj({ code: "epsg:3857", units: Units.METERS });
|
package/src/og/proj/EPSG4326.js
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
* @module og/proj/EPSG4326
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
"use strict";
|
|
6
6
|
|
|
7
|
-
import { Units, Proj } from
|
|
7
|
+
import { Units, Proj } from "./Proj.js";
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* EPSG:4326 projection object.
|
|
11
|
-
* @type {
|
|
11
|
+
* @type {Proj}
|
|
12
12
|
*/
|
|
13
|
-
export const EPSG4326 = new Proj({ code: "epsg:4326", units: Units.DEGREES });
|
|
13
|
+
export const EPSG4326 = new Proj({ code: "epsg:4326", units: Units.DEGREES });
|
package/src/og/proj/Proj.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @module og/proj/Proj
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
"use strict";
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Projection units: 'degrees', 'ft', 'm' or 'km'.
|
|
@@ -28,9 +28,7 @@ METERS_PER_UNIT[Units.KILOMETERS] = 1000;
|
|
|
28
28
|
|
|
29
29
|
let _counter = 0;
|
|
30
30
|
class Proj {
|
|
31
|
-
|
|
32
31
|
constructor(options) {
|
|
33
|
-
|
|
34
32
|
/**
|
|
35
33
|
* @public
|
|
36
34
|
* @type {string}
|
|
@@ -39,7 +37,7 @@ class Proj {
|
|
|
39
37
|
|
|
40
38
|
/**
|
|
41
39
|
* @public
|
|
42
|
-
* @type {
|
|
40
|
+
* @type {proj.Units}
|
|
43
41
|
*/
|
|
44
42
|
this.units = /** @type {Units} */ (options.units);
|
|
45
43
|
|
|
@@ -54,7 +52,7 @@ class Proj {
|
|
|
54
52
|
/**
|
|
55
53
|
* Compare projections.
|
|
56
54
|
* @public
|
|
57
|
-
* @param {
|
|
55
|
+
* @param {Proj} proj - Projetion object.
|
|
58
56
|
* @returns {boolean}
|
|
59
57
|
*/
|
|
60
58
|
equal(proj) {
|
|
@@ -62,4 +60,4 @@ class Proj {
|
|
|
62
60
|
}
|
|
63
61
|
}
|
|
64
62
|
|
|
65
|
-
export { Proj };
|
|
63
|
+
export { Proj };
|
package/src/og/quadTree/Node.js
CHANGED
|
@@ -55,13 +55,13 @@ let BOUNDS = {
|
|
|
55
55
|
/**
|
|
56
56
|
* Quad tree planet segment node.
|
|
57
57
|
* @constructor
|
|
58
|
-
* @param {
|
|
59
|
-
* @param {
|
|
58
|
+
* @param {Segment|og.planetSegment.SegmentLonLat} segmentPrototype - Planet segment node constructor.
|
|
59
|
+
* @param {RenderNode} planet - Planet render node.
|
|
60
60
|
* @param {number} partId - NorthEast, SouthWest etc.
|
|
61
|
-
* @param {
|
|
61
|
+
* @param {quadTree.Node} parent - Parent of this node.
|
|
62
62
|
* @param {number} id - Tree node identifier (id * 4 + 1);
|
|
63
63
|
* @param {number} tileZoom - Deep index of the quad tree.
|
|
64
|
-
* @param {
|
|
64
|
+
* @param {Extent} extent - Planet segment extent.
|
|
65
65
|
*/
|
|
66
66
|
class Node {
|
|
67
67
|
|
|
@@ -173,7 +173,7 @@ class Node {
|
|
|
173
173
|
* Returns the same deep existent neighbour node.
|
|
174
174
|
* @public
|
|
175
175
|
* @param {Number} side - Neighbour side index e.g. og.quadTree.N, og.quadTree.W etc.
|
|
176
|
-
* @returns {
|
|
176
|
+
* @returns {quadTree.Node} -
|
|
177
177
|
*/
|
|
178
178
|
getEqualNeighbor(side) {
|
|
179
179
|
var pn = this;
|
|
@@ -279,8 +279,8 @@ class Node {
|
|
|
279
279
|
}
|
|
280
280
|
}
|
|
281
281
|
|
|
282
|
-
|
|
283
|
-
|
|
282
|
+
if (this.inFrustum || this._cameraInside || seg.tileZoom < 3) {
|
|
283
|
+
let h = cam._lonLat.height;
|
|
284
284
|
|
|
285
285
|
let altVis =
|
|
286
286
|
cam.eye.distance(seg.bsphere.center) - seg.bsphere.radius <
|
|
@@ -294,7 +294,7 @@ class Node {
|
|
|
294
294
|
|
|
295
295
|
if (seg.tileZoom < 2 && seg.normalMapReady) {
|
|
296
296
|
this.traverseNodes(cam, maxZoom, terrainReadySegment, stopLoading);
|
|
297
|
-
} else if ((!maxZoom && seg.acceptForRendering(cam)) || seg.tileZoom === maxZoom) {
|
|
297
|
+
} else if ((!maxZoom && seg.acceptForRendering(cam)) || seg.tileZoom === maxZoom || !altVis && maxZoom) {
|
|
298
298
|
this.prepareForRendering(cam, altVis, this.inFrustum, terrainReadySegment, stopLoading);
|
|
299
299
|
} else if (seg.tileZoom < planet.terrain._maxNodeZoom && seg.terrainReady) {
|
|
300
300
|
// Deleting terrainReady here, you have to remove
|