@openglobus/og 0.11.1 → 0.11.6
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 +18 -20
- package/src/og/Clock.js +11 -11
- package/src/og/Deferred.js +1 -1
- package/src/og/Events.js +9 -7
- package/src/og/Extent.js +117 -72
- package/src/og/Globe.js +35 -22
- package/src/og/ImageCanvas.js +24 -18
- package/src/og/Lock.js +2 -2
- package/src/og/LonLat.js +40 -37
- package/src/og/Popup.js +21 -15
- package/src/og/QueueArray.js +7 -3
- package/src/og/Rectangle.js +11 -6
- package/src/og/Stack.js +8 -5
- package/src/og/ajax.js +21 -33
- package/src/og/astro/astro.js +5 -5
- package/src/og/astro/earth.js +23 -17
- package/src/og/astro/jd.js +44 -39
- package/src/og/astro/orbit.js +20 -18
- package/src/og/astro/rotation.js +17 -8
- package/src/og/bv/Box.js +7 -3
- package/src/og/bv/Sphere.js +17 -9
- package/src/og/camera/Camera.js +137 -86
- package/src/og/camera/Frustum.js +30 -19
- package/src/og/camera/PlanetCamera.js +30 -26
- package/src/og/control/CompassButton.js +8 -2
- package/src/og/control/Control.js +13 -11
- package/src/og/control/DebugInfo.js +4 -1
- package/src/og/control/EarthCoordinates.js +62 -41
- package/src/og/control/EarthNavigation.js +20 -22
- package/src/og/control/GeoImageDragControl.js +1 -1
- package/src/og/control/KeyboardNavigation.js +12 -12
- package/src/og/control/LayerSwitcher.js +24 -23
- package/src/og/control/Lighting.js +1 -1
- package/src/og/control/MouseNavigation.js +1 -1
- package/src/og/control/ScaleControl.js +1 -1
- package/src/og/control/SegmentBoundVisualization.js +8 -9
- package/src/og/control/ShowFps.js +15 -10
- package/src/og/control/SimpleNavigation.js +8 -10
- package/src/og/control/Sun.js +25 -15
- package/src/og/control/ToggleWireframe.js +5 -5
- package/src/og/control/TouchNavigation.js +58 -45
- package/src/og/control/ZoomControl.js +41 -25
- package/src/og/control/index.js +4 -0
- package/src/og/ellipsoid/Ellipsoid.js +181 -85
- package/src/og/ellipsoid/wgs84.js +4 -4
- package/src/og/entity/BaseBillboard.js +97 -44
- package/src/og/entity/Billboard.js +15 -11
- package/src/og/entity/BillboardHandler.js +314 -64
- package/src/og/entity/Entity.js +106 -74
- package/src/og/entity/EntityCollection.js +72 -49
- package/src/og/entity/GeoObject.js +228 -0
- package/src/og/entity/GeoObjectHandler.js +910 -0
- package/src/og/entity/Geometry.js +29 -26
- package/src/og/entity/GeometryHandler.js +598 -126
- package/src/og/entity/Label.js +74 -40
- package/src/og/entity/LabelHandler.js +47 -246
- package/src/og/entity/LabelWorker.js +213 -0
- package/src/og/entity/Object3d.js +504 -0
- package/src/og/entity/PointCloud.js +81 -33
- package/src/og/entity/PointCloudHandler.js +9 -9
- package/src/og/entity/Polyline.js +39 -39
- package/src/og/entity/Ray.js +61 -28
- package/src/og/entity/ShapeHandler.js +1 -1
- package/src/og/entity/Strip.js +77 -48
- package/src/og/entity/StripHandler.js +27 -27
- package/src/og/entity/index.js +8 -16
- package/src/og/input/KeyboardHandler.js +107 -104
- package/src/og/input/MouseHandler.js +81 -78
- package/src/og/input/TouchHandler.js +55 -51
- package/src/og/layer/BaseGeoImage.js +61 -30
- package/src/og/layer/CanvasTiles.js +26 -24
- package/src/og/layer/GeoImage.js +10 -10
- package/src/og/layer/GeoTexture2d.js +1 -1
- package/src/og/layer/GeoVideo.js +3 -3
- package/src/og/layer/KML.js +66 -40
- package/src/og/layer/Layer.js +27 -17
- package/src/og/layer/Material.js +93 -61
- package/src/og/layer/Vector.js +118 -72
- package/src/og/layer/WMS.js +36 -19
- package/src/og/layer/XYZ.js +55 -48
- package/src/og/light/LightSource.js +47 -40
- package/src/og/math/Line2.js +24 -24
- package/src/og/math/Line3.js +103 -102
- package/src/og/math/Mat3.js +134 -121
- package/src/og/math/Mat4.js +603 -459
- package/src/og/math/Plane.js +21 -20
- package/src/og/math/Quat.js +980 -927
- package/src/og/math/Ray.js +195 -187
- package/src/og/math/Vec2.js +127 -117
- package/src/og/math/Vec3.js +206 -176
- package/src/og/math/Vec4.js +49 -53
- package/src/og/math/coder.js +18 -18
- package/src/og/math.js +12 -12
- package/src/og/mercator.js +11 -11
- package/src/og/proj/EPSG3857.js +4 -4
- package/src/og/proj/EPSG4326.js +4 -4
- package/src/og/proj/Proj.js +31 -31
- package/src/og/quadTree/EntityCollectionNode.js +310 -300
- package/src/og/quadTree/Node.js +1008 -993
- package/src/og/renderer/Renderer.js +768 -747
- package/src/og/renderer/RendererEvents.js +9 -6
- package/src/og/scene/Axes.js +1 -1
- package/src/og/scene/BaseNode.js +8 -9
- package/src/og/scene/Planet.js +115 -87
- package/src/og/scene/RenderNode.js +29 -22
- package/src/og/scene/SkyBox.js +1 -1
- package/src/og/segment/Segment.js +1886 -1878
- package/src/og/segment/SegmentLonLat.js +298 -268
- package/src/og/segment/segmentHelper.js +11 -11
- package/src/og/shaders/bloom.js +1 -1
- package/src/og/shaders/blur.js +2 -2
- package/src/og/shaders/depth.js +1 -1
- package/src/og/shaders/geoObject.js +211 -0
- package/src/og/shaders/label.js +1 -1
- package/src/og/shaders/lumFilter.js +1 -1
- package/src/og/shaders/pointCloud.js +42 -42
- package/src/og/shaders/screenFrame.js +1 -1
- package/src/og/shaders/shape.js +15 -21
- package/src/og/shaders/skybox.js +37 -37
- package/src/og/shaders/toneMapping.js +1 -1
- package/src/og/shapes/BaseShape.js +129 -57
- package/src/og/shapes/Icosphere.js +30 -15
- package/src/og/shapes/Sphere.js +13 -16
- package/src/og/terrain/BilTerrain.js +2 -1
- package/src/og/terrain/EmptyTerrain.js +2 -2
- package/src/og/terrain/Geoid.js +2 -2
- package/src/og/terrain/GlobusTerrain.js +10 -10
- package/src/og/terrain/MapboxTerrain.js +1 -1
- package/src/og/utils/GeoImageCreator.js +9 -9
- package/src/og/utils/Loader.js +6 -6
- package/src/og/utils/NormalMapCreator.js +13 -13
- package/src/og/utils/TerrainWorker.js +1 -1
- package/src/og/utils/TextureAtlas.js +20 -22
- package/src/og/utils/VectorTileCreator.js +5 -5
- package/src/og/utils/earcut.js +1 -1
- package/src/og/utils/shared.js +15 -15
- package/src/og/webgl/Framebuffer.js +101 -53
- package/src/og/webgl/Handler.js +125 -85
- package/src/og/webgl/Multisample.js +55 -27
- package/src/og/webgl/Program.js +80 -35
- package/src/og/webgl/ProgramController.js +27 -23
- package/src/og/webgl/callbacks.js +8 -8
- package/types/Clock.d.ts +6 -2
- package/types/Deferred.d.ts +1 -1
- package/types/Events.d.ts +8 -4
- package/types/Extent.d.ts +37 -33
- package/types/Globe.d.ts +15 -13
- package/types/ImageCanvas.d.ts +5 -3
- package/types/LonLat.d.ts +24 -24
- package/types/Popup.d.ts +4 -0
- package/types/QueueArray.d.ts +6 -2
- package/types/Rectangle.d.ts +10 -4
- package/types/Stack.d.ts +4 -0
- package/types/ajax.d.ts +1 -1
- package/types/astro/earth.d.ts +3 -2
- package/types/bv/Box.d.ts +10 -5
- package/types/bv/Sphere.d.ts +13 -7
- package/types/camera/Camera.d.ts +90 -81
- package/types/camera/Frustum.d.ts +26 -22
- package/types/camera/PlanetCamera.d.ts +49 -53
- package/types/control/CompassButton.d.ts +4 -4
- package/types/control/Control.d.ts +7 -4
- package/types/control/DebugInfo.d.ts +3 -4
- package/types/control/EarthCoordinates.d.ts +6 -6
- package/types/control/EarthNavigation.d.ts +42 -0
- package/types/control/KeyboardNavigation.d.ts +3 -4
- package/types/control/LayerSwitcher.d.ts +3 -5
- package/types/control/Lighting.d.ts +3 -3
- package/types/control/MouseNavigation.d.ts +47 -0
- package/types/control/ScaleControl.d.ts +3 -3
- package/types/control/ShowFps.d.ts +3 -4
- package/types/control/SimpleNavigation.d.ts +3 -6
- package/types/control/Sun.d.ts +8 -10
- package/types/control/ToggleWireframe.d.ts +3 -3
- package/types/control/TouchNavigation.d.ts +48 -0
- package/types/control/ZoomControl.d.ts +3 -4
- package/types/control/index.d.ts +3 -1
- package/types/ellipsoid/Ellipsoid.d.ts +47 -43
- package/types/ellipsoid/wgs84.d.ts +3 -2
- package/types/entity/BaseBillboard.d.ts +41 -34
- package/types/entity/Billboard.d.ts +7 -7
- package/types/entity/BillboardHandler.d.ts +4 -0
- package/types/entity/Entity.d.ts +101 -83
- package/types/entity/EntityCollection.d.ts +57 -43
- package/types/entity/GeoObject.d.ts +111 -0
- package/types/entity/GeoObjectHandler.d.ts +77 -0
- package/types/entity/Geometry.d.ts +9 -7
- package/types/entity/GeometryHandler.d.ts +2 -2
- package/types/entity/Label.d.ts +24 -29
- package/types/entity/LabelHandler.d.ts +9 -2
- package/types/entity/LabelWorker.d.ts +9 -0
- package/types/entity/PointCloud.d.ts +8 -8
- package/types/entity/PointCloudHandler.d.ts +3 -3
- package/types/entity/Polyline.d.ts +58 -55
- package/types/entity/Ray.d.ts +19 -18
- package/types/entity/Strip.d.ts +8 -7
- package/types/entity/StripHandler.d.ts +3 -3
- package/types/entity/index.d.ts +7 -7
- package/types/input/KeyboardHandler.d.ts +10 -0
- package/types/input/MouseHandler.d.ts +5 -0
- package/types/input/TouchHandler.d.ts +5 -0
- package/types/layer/BaseGeoImage.d.ts +23 -35
- package/types/layer/CanvasTiles.d.ts +15 -22
- package/types/layer/GeoImage.d.ts +5 -18
- package/types/layer/GeoVideo.d.ts +5 -30
- package/types/layer/KML.d.ts +20 -15
- package/types/layer/Layer.d.ts +326 -0
- package/types/layer/Material.d.ts +45 -0
- package/types/layer/Vector.d.ts +208 -0
- package/types/layer/WMS.d.ts +4 -7
- package/types/layer/XYZ.d.ts +19 -25
- package/types/light/LightSource.d.ts +54 -53
- package/types/math/Line2.d.ts +11 -0
- package/types/math/Line3.d.ts +10 -0
- package/types/math/Mat3.d.ts +30 -18
- package/types/math/Mat4.d.ts +71 -52
- package/types/math/Plane.d.ts +5 -4
- package/types/math/Quat.d.ts +379 -0
- package/types/math/Ray.d.ts +82 -0
- package/types/math/Vec2.d.ts +102 -101
- package/types/math/Vec3.d.ts +143 -142
- package/types/math/Vec4.d.ts +40 -39
- package/types/math/coder.d.ts +12 -11
- package/types/math.d.ts +8 -8
- package/types/mercator.d.ts +3 -3
- package/types/proj/EPSG3857.d.ts +3 -2
- package/types/proj/EPSG4326.d.ts +3 -2
- package/types/proj/Proj.d.ts +42 -0
- package/types/quadTree/EntityCollectionNode.d.ts +34 -0
- package/types/quadTree/Node.d.ts +61 -0
- package/types/renderer/Renderer.d.ts +300 -0
- package/types/renderer/RendererEvents.d.ts +10 -7
- package/types/scene/BaseNode.d.ts +9 -9
- package/types/scene/Planet.d.ts +131 -126
- package/types/scene/RenderNode.d.ts +22 -23
- package/types/segment/Segment.d.ts +279 -0
- package/types/segment/SegmentLonLat.d.ts +16 -0
- package/types/shaders/geoObject.d.ts +3 -0
- package/types/shapes/BaseShape.d.ts +43 -40
- package/types/shapes/Sphere.d.ts +7 -7
- package/types/terrain/BilTerrain.d.ts +0 -1
- package/types/terrain/EmptyTerrain.d.ts +4 -4
- package/types/terrain/GlobusTerrain.d.ts +17 -54
- package/types/terrain/MapboxTerrain.d.ts +0 -1
- package/types/utils/GeoImageCreator.d.ts +3 -2
- package/types/utils/TextureAtlas.d.ts +8 -8
- package/types/utils/shared.d.ts +25 -24
- package/types/webgl/Framebuffer.d.ts +5 -5
- package/types/webgl/Handler.d.ts +68 -43
- package/types/webgl/Multisample.d.ts +5 -5
- package/types/webgl/Program.d.ts +8 -2
- package/types/webgl/ProgramController.d.ts +18 -13
- package/src/og/inherits.js +0 -8
- package/src/og/utils/polylabel.js +0 -176
- package/types/inherits.d.ts +0 -4
package/src/og/layer/XYZ.js
CHANGED
|
@@ -2,22 +2,22 @@
|
|
|
2
2
|
* @module og/layer/XYZ
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
"use strict";
|
|
6
6
|
|
|
7
|
-
import * as mercator from
|
|
8
|
-
import { EPSG3857 } from
|
|
9
|
-
import { Layer } from
|
|
10
|
-
import { stringTemplate } from
|
|
11
|
-
import { RENDERING } from
|
|
7
|
+
import * as mercator from "../mercator.js";
|
|
8
|
+
import { EPSG3857 } from "../proj/EPSG3857.js";
|
|
9
|
+
import { Layer } from "./Layer.js";
|
|
10
|
+
import { stringTemplate } from "../utils/shared.js";
|
|
11
|
+
import { RENDERING } from "../quadTree/quadTree.js";
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Represents an imagery tiles source provider.
|
|
15
15
|
* @class
|
|
16
|
-
* @extends {
|
|
16
|
+
* @extends {Layer}
|
|
17
17
|
* @param {string} name - Layer name.
|
|
18
18
|
* @param {Object} options:
|
|
19
19
|
* @param {number} [options.opacity=1.0] - Layer opacity.
|
|
20
|
-
* @param {Array.<number
|
|
20
|
+
* @param {Array.<number>} [options.transparentColor=[-1,-1,-1]] - RGB color that defines transparent color. (exactly 3 entries)
|
|
21
21
|
* @param {Array.<string>} [options.subdomains=['a','b','c']] - Subdomains of the tile service.
|
|
22
22
|
* @param {number} [options.minZoom=0] - Minimal visibility zoom level.
|
|
23
23
|
* @param {number} [options.maxZoom=0] - Maximal visibility zoom level.
|
|
@@ -28,7 +28,8 @@ import { RENDERING } from '../quadTree/quadTree.js';
|
|
|
28
28
|
* @param {boolean} [options.visibility=true] - Layer visibility.
|
|
29
29
|
* @param {string} [options.crossOrigin=true] - If true, all tiles will have their crossOrigin attribute set to ''.
|
|
30
30
|
* @param {string} options.url - Tile url source template(see example below).
|
|
31
|
-
* @param {
|
|
31
|
+
* @param {string} options.textureFilter - texture gl filter. NEAREST, LINEAR, MIPMAP, ANISOTROPHIC.
|
|
32
|
+
* @param {layer.XYZ~_urlRewriteCallback} options.urlRewrite - Url rewrite function.
|
|
32
33
|
* @fires og.layer.XYZ#load
|
|
33
34
|
* @fires og.layer.XYZ#loadend
|
|
34
35
|
*
|
|
@@ -41,6 +42,10 @@ import { RENDERING } from '../quadTree/quadTree.js';
|
|
|
41
42
|
* });
|
|
42
43
|
*/
|
|
43
44
|
class XYZ extends Layer {
|
|
45
|
+
/**
|
|
46
|
+
* @param {string} name - Layer name.
|
|
47
|
+
* @param {*} options
|
|
48
|
+
*/
|
|
44
49
|
constructor(name, options) {
|
|
45
50
|
super(name, options);
|
|
46
51
|
|
|
@@ -58,7 +63,7 @@ class XYZ extends Layer {
|
|
|
58
63
|
/**
|
|
59
64
|
* @protected
|
|
60
65
|
*/
|
|
61
|
-
this._s = options.subdomains || [
|
|
66
|
+
this._s = options.subdomains || ["a", "b", "c"];
|
|
62
67
|
|
|
63
68
|
/**
|
|
64
69
|
* Minimal native zoom level when tiles are available.
|
|
@@ -77,13 +82,13 @@ class XYZ extends Layer {
|
|
|
77
82
|
/**
|
|
78
83
|
* @protected
|
|
79
84
|
*/
|
|
80
|
-
this._crossOrigin = options.crossOrigin === undefined ?
|
|
85
|
+
this._crossOrigin = options.crossOrigin === undefined ? "" : options.crossOrigin;
|
|
81
86
|
|
|
82
87
|
/**
|
|
83
88
|
* Rewrites imagery tile url query.
|
|
84
89
|
* @private
|
|
85
90
|
* @callback og.layer.XYZ~_urlRewriteCallback
|
|
86
|
-
* @param {
|
|
91
|
+
* @param {Segment} segment - Segment to load.
|
|
87
92
|
* @param {string} url - Created url.
|
|
88
93
|
* @returns {string} - Url query string.
|
|
89
94
|
*/
|
|
@@ -109,7 +114,6 @@ class XYZ extends Layer {
|
|
|
109
114
|
*/
|
|
110
115
|
setVisibility(visibility) {
|
|
111
116
|
if (visibility !== this._visibility) {
|
|
112
|
-
|
|
113
117
|
super.setVisibility(visibility);
|
|
114
118
|
|
|
115
119
|
if (!visibility) {
|
|
@@ -138,10 +142,9 @@ class XYZ extends Layer {
|
|
|
138
142
|
* Start to load tile material.
|
|
139
143
|
* @public
|
|
140
144
|
* @virtual
|
|
141
|
-
* @param {
|
|
145
|
+
* @param {Material} material - Loads current material.
|
|
142
146
|
*/
|
|
143
147
|
loadMaterial(material, forceLoading) {
|
|
144
|
-
|
|
145
148
|
let seg = material.segment;
|
|
146
149
|
|
|
147
150
|
if (this._isBaseLayer) {
|
|
@@ -151,37 +154,39 @@ class XYZ extends Layer {
|
|
|
151
154
|
}
|
|
152
155
|
|
|
153
156
|
if (this._planet.layerLock.isFree()) {
|
|
154
|
-
|
|
155
157
|
material.isReady = false;
|
|
156
158
|
material.isLoading = true;
|
|
157
159
|
|
|
158
160
|
if (this._checkSegment(seg)) {
|
|
159
|
-
|
|
160
161
|
material.loadingAttempts++;
|
|
161
162
|
|
|
162
|
-
this._planet._tileLoader.load(
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
163
|
+
this._planet._tileLoader.load(
|
|
164
|
+
{
|
|
165
|
+
src: this._getHTTPRequestString(material.segment),
|
|
166
|
+
type: "imageBitmap",
|
|
167
|
+
filter: () =>
|
|
168
|
+
(seg.initialized && seg.node.getState() === RENDERING) || forceLoading,
|
|
169
|
+
options: {}
|
|
170
|
+
},
|
|
171
|
+
(response) => {
|
|
172
|
+
if (response.status === "ready") {
|
|
173
|
+
if (material.isLoading) {
|
|
174
|
+
let e = this.events.load;
|
|
175
|
+
if (e.handlers.length) {
|
|
176
|
+
this.events.dispatch(e, material);
|
|
177
|
+
}
|
|
178
|
+
material.applyImage(response.data);
|
|
179
|
+
response.data = null;
|
|
180
|
+
}
|
|
181
|
+
} else if (response.status === "abort") {
|
|
182
|
+
material.isLoading = false;
|
|
183
|
+
} else if (response.status === "error") {
|
|
184
|
+
if (material.isLoading) {
|
|
185
|
+
material.textureNotExists();
|
|
173
186
|
}
|
|
174
|
-
material.applyImage(response.data);
|
|
175
|
-
response.data = null;
|
|
176
|
-
}
|
|
177
|
-
} else if (response.status === "abort") {
|
|
178
|
-
material.isLoading = false;
|
|
179
|
-
} else if (response.status === "error") {
|
|
180
|
-
if (material.isLoading) {
|
|
181
|
-
material.textureNotExists();
|
|
182
187
|
}
|
|
183
188
|
}
|
|
184
|
-
|
|
189
|
+
);
|
|
185
190
|
} else {
|
|
186
191
|
material.textureNotExists();
|
|
187
192
|
}
|
|
@@ -192,7 +197,7 @@ class XYZ extends Layer {
|
|
|
192
197
|
* Creates query url.
|
|
193
198
|
* @protected
|
|
194
199
|
* @virtual
|
|
195
|
-
* @param {
|
|
200
|
+
* @param {Segment} segment - Creates specific url for current segment.
|
|
196
201
|
* @returns {String} - Returns url string.
|
|
197
202
|
*/
|
|
198
203
|
_createUrl(segment) {
|
|
@@ -211,28 +216,28 @@ class XYZ extends Layer {
|
|
|
211
216
|
/**
|
|
212
217
|
* Returns actual url query string.
|
|
213
218
|
* @protected
|
|
214
|
-
* @param {
|
|
219
|
+
* @param {Segment} segment - Segment that loads image data.
|
|
215
220
|
* @returns {string} - Url string.
|
|
216
221
|
*/
|
|
217
222
|
_getHTTPRequestString(segment) {
|
|
218
|
-
return this._urlRewriteCallback
|
|
223
|
+
return this._urlRewriteCallback
|
|
224
|
+
? this._urlRewriteCallback(segment, this.url)
|
|
225
|
+
: this._createUrl(segment);
|
|
219
226
|
}
|
|
220
227
|
|
|
221
228
|
/**
|
|
222
229
|
* Sets url rewrite callback, used for custom url rewriting for every tile laoding.
|
|
223
230
|
* @public
|
|
224
|
-
* @param {
|
|
231
|
+
* @param {layer.XYZ~_urlRewriteCallback} ur - The callback that returns tile custom created url.
|
|
225
232
|
*/
|
|
226
233
|
setUrlRewriteCallback(ur) {
|
|
227
234
|
this._urlRewriteCallback = ur;
|
|
228
235
|
}
|
|
229
236
|
|
|
230
237
|
applyMaterial(material) {
|
|
231
|
-
|
|
232
238
|
if (material.isReady) {
|
|
233
239
|
return material.texOffset;
|
|
234
240
|
} else {
|
|
235
|
-
|
|
236
241
|
// if (material.loadingAttempts > 20) {
|
|
237
242
|
// debugger;
|
|
238
243
|
// }
|
|
@@ -267,7 +272,9 @@ class XYZ extends Layer {
|
|
|
267
272
|
if (pnm) {
|
|
268
273
|
!pnm.isLoading && !pnm.isReady && this.loadMaterial(pnm, true);
|
|
269
274
|
} else {
|
|
270
|
-
pnm = pn.segment.materials[material.layer._id] = material.layer.createMaterial(
|
|
275
|
+
pnm = pn.segment.materials[material.layer._id] = material.layer.createMaterial(
|
|
276
|
+
pn.segment
|
|
277
|
+
);
|
|
271
278
|
this.loadMaterial(pnm, true);
|
|
272
279
|
}
|
|
273
280
|
}
|
|
@@ -300,7 +307,7 @@ class XYZ extends Layer {
|
|
|
300
307
|
material.texture = null;
|
|
301
308
|
|
|
302
309
|
if (material.image) {
|
|
303
|
-
material.image.src =
|
|
310
|
+
material.image.src = "";
|
|
304
311
|
material.image = null;
|
|
305
312
|
}
|
|
306
313
|
}
|
|
@@ -338,8 +345,8 @@ class XYZ extends Layer {
|
|
|
338
345
|
if (e.northEast.lat <= mercator.MIN_LAT) {
|
|
339
346
|
e.northEast.lat = mercator.MIN_LAT;
|
|
340
347
|
}
|
|
341
|
-
}
|
|
342
|
-
}
|
|
348
|
+
}
|
|
349
|
+
}
|
|
343
350
|
|
|
344
351
|
const EVENT_NAMES = [
|
|
345
352
|
/**
|
|
@@ -355,4 +362,4 @@ const EVENT_NAMES = [
|
|
|
355
362
|
"loadend"
|
|
356
363
|
];
|
|
357
364
|
|
|
358
|
-
export { XYZ };
|
|
365
|
+
export { XYZ };
|
|
@@ -2,19 +2,19 @@
|
|
|
2
2
|
* @module og/light/LightSource
|
|
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
|
* Represents basic light source.
|
|
11
11
|
* @class
|
|
12
12
|
* @param {string} [name] - Light source name.
|
|
13
13
|
* @param {Object} [params] - Light parameters:
|
|
14
|
-
* @param {
|
|
15
|
-
* @param {
|
|
16
|
-
* @param {
|
|
17
|
-
* @param {
|
|
14
|
+
* @param {Vec3} [params.position] - Light source position if it is a point light, otherwise it is a light direction vector.
|
|
15
|
+
* @param {Vec3} [params.ambient] - Ambient RGB color.
|
|
16
|
+
* @param {Vec3} [params.diffuse] - Diffuse RGB color.
|
|
17
|
+
* @param {Vec3} [params.specular] - Specular RGB color.
|
|
18
18
|
* @param {number} [params.shininess] - Specular shininess.
|
|
19
19
|
*/
|
|
20
20
|
class LightSource {
|
|
@@ -37,19 +37,19 @@ class LightSource {
|
|
|
37
37
|
* @protected
|
|
38
38
|
* @type {string}
|
|
39
39
|
*/
|
|
40
|
-
this._name = name ||
|
|
40
|
+
this._name = name || "light_" + LightSource._staticCounter++;
|
|
41
41
|
|
|
42
42
|
/**
|
|
43
43
|
* Render node where light is shines.
|
|
44
44
|
* @protected
|
|
45
|
-
* @type {
|
|
45
|
+
* @type {RenderNode}
|
|
46
46
|
*/
|
|
47
47
|
this._renderNode = null;
|
|
48
48
|
|
|
49
49
|
/**
|
|
50
50
|
* Light position.
|
|
51
51
|
* @protected
|
|
52
|
-
* @type {
|
|
52
|
+
* @type {Vec3}
|
|
53
53
|
*/
|
|
54
54
|
this._position = params.position || new Vec3();
|
|
55
55
|
|
|
@@ -63,21 +63,21 @@ class LightSource {
|
|
|
63
63
|
/**
|
|
64
64
|
* Ambient color.
|
|
65
65
|
* @protected
|
|
66
|
-
* @type {
|
|
66
|
+
* @type {Vec3}
|
|
67
67
|
*/
|
|
68
68
|
this._ambient = params.ambient || new Vec3();
|
|
69
69
|
|
|
70
70
|
/**
|
|
71
71
|
* Diffuse color.
|
|
72
72
|
* @protected
|
|
73
|
-
* @type {
|
|
73
|
+
* @type {Vec3}
|
|
74
74
|
*/
|
|
75
75
|
this._diffuse = params.diffuse || new Vec3(0.8, 0.8, 0.8);
|
|
76
76
|
|
|
77
77
|
/**
|
|
78
78
|
* Specular color.
|
|
79
79
|
* @protected
|
|
80
|
-
* @type {
|
|
80
|
+
* @type {Vec3}
|
|
81
81
|
*/
|
|
82
82
|
this._specular = params.specular || new Vec3(0.18, 0.18, 0.18);
|
|
83
83
|
|
|
@@ -105,7 +105,7 @@ class LightSource {
|
|
|
105
105
|
* Creates clone of the current light object.
|
|
106
106
|
* @todo: TODO
|
|
107
107
|
* @public
|
|
108
|
-
* @returns {
|
|
108
|
+
* @returns {LightSource}
|
|
109
109
|
*/
|
|
110
110
|
clone() {
|
|
111
111
|
// TODO
|
|
@@ -158,8 +158,8 @@ class LightSource {
|
|
|
158
158
|
/**
|
|
159
159
|
* Set light source position, or if it is a directional type sets light direction vector.
|
|
160
160
|
* @public
|
|
161
|
-
* @param {
|
|
162
|
-
* @returns {
|
|
161
|
+
* @param {Vec3} position - Light position or direction vector.
|
|
162
|
+
* @returns {LightSource}
|
|
163
163
|
*/
|
|
164
164
|
setPosition3v(position) {
|
|
165
165
|
this._position.x = position.x;
|
|
@@ -171,8 +171,8 @@ class LightSource {
|
|
|
171
171
|
/**
|
|
172
172
|
* Set light source position, or if it is a directional type sets light direction vector.
|
|
173
173
|
* @public
|
|
174
|
-
* @param {
|
|
175
|
-
* @returns {
|
|
174
|
+
* @param {Vec3} position - Light position or direction vector.
|
|
175
|
+
* @returns {LightSource}
|
|
176
176
|
*/
|
|
177
177
|
setPosition(x, y, z) {
|
|
178
178
|
this._position.x = x;
|
|
@@ -184,7 +184,7 @@ class LightSource {
|
|
|
184
184
|
/**
|
|
185
185
|
* Returns light source position, or if it is a directional type sets light direction vector.
|
|
186
186
|
* @public
|
|
187
|
-
* @returns {
|
|
187
|
+
* @returns {Vec3} - Light source position/direction.
|
|
188
188
|
*/
|
|
189
189
|
getPosition() {
|
|
190
190
|
return this._position.clone();
|
|
@@ -193,8 +193,8 @@ class LightSource {
|
|
|
193
193
|
/**
|
|
194
194
|
* Set ambient color.
|
|
195
195
|
* @public
|
|
196
|
-
* @param {
|
|
197
|
-
* @returns {
|
|
196
|
+
* @param {Vec3} rgb - Ambient color.
|
|
197
|
+
* @returns {LightSource}
|
|
198
198
|
*/
|
|
199
199
|
setAmbient3v(rgb) {
|
|
200
200
|
return this.setAmbient(rgb.x, rgb.y, rgb.z);
|
|
@@ -203,8 +203,8 @@ class LightSource {
|
|
|
203
203
|
/**
|
|
204
204
|
* Set diffuse color.
|
|
205
205
|
* @public
|
|
206
|
-
* @param {
|
|
207
|
-
* @returns {
|
|
206
|
+
* @param {Vec3} rgb - Diffuse color.
|
|
207
|
+
* @returns {LightSource}
|
|
208
208
|
*/
|
|
209
209
|
setDiffuse3v(rgb) {
|
|
210
210
|
return this.setDiffuse(rgb.x, rgb.y, rgb.z);
|
|
@@ -213,19 +213,19 @@ class LightSource {
|
|
|
213
213
|
/**
|
|
214
214
|
* Set specular color.
|
|
215
215
|
* @public
|
|
216
|
-
* @param {
|
|
217
|
-
* @returns {
|
|
216
|
+
* @param {Vec3} rgb - Specular color.
|
|
217
|
+
* @returns {LightSource}
|
|
218
218
|
*/
|
|
219
219
|
setSpecular3v(rgb) {
|
|
220
220
|
return this.setSpecular(rgb.x, rgb.y, rgb.z);
|
|
221
221
|
}
|
|
222
222
|
|
|
223
223
|
/**
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
224
|
+
* Set ambient color.
|
|
225
|
+
* @public
|
|
226
|
+
* @param {Vec3} rgb - Ambient color.
|
|
227
|
+
* @returns {LightSource}
|
|
228
|
+
*/
|
|
229
229
|
setAmbient(r, g, b) {
|
|
230
230
|
this._ambient.set(r, g, b);
|
|
231
231
|
var rn = this._renderNode;
|
|
@@ -243,7 +243,7 @@ class LightSource {
|
|
|
243
243
|
/**
|
|
244
244
|
* Set diffuse color.
|
|
245
245
|
* @public
|
|
246
|
-
* @returns {
|
|
246
|
+
* @returns {LightSource}
|
|
247
247
|
*/
|
|
248
248
|
setDiffuse(r, g, b) {
|
|
249
249
|
this._diffuse.set(r, g, b);
|
|
@@ -262,7 +262,7 @@ class LightSource {
|
|
|
262
262
|
/**
|
|
263
263
|
* Set specular color.
|
|
264
264
|
* @public
|
|
265
|
-
* @returns {
|
|
265
|
+
* @returns {LightSource}
|
|
266
266
|
*/
|
|
267
267
|
setSpecular(r, g, b) {
|
|
268
268
|
this._specular.set(r, g, b);
|
|
@@ -281,7 +281,7 @@ class LightSource {
|
|
|
281
281
|
/**
|
|
282
282
|
* Set material shininess.
|
|
283
283
|
* @public
|
|
284
|
-
* @returns {
|
|
284
|
+
* @returns {LightSource}
|
|
285
285
|
*/
|
|
286
286
|
setShininess(shininess) {
|
|
287
287
|
this._shininess = shininess;
|
|
@@ -298,7 +298,7 @@ class LightSource {
|
|
|
298
298
|
/**
|
|
299
299
|
* Sets light to black.
|
|
300
300
|
* @public
|
|
301
|
-
* @returns {
|
|
301
|
+
* @returns {LightSource}
|
|
302
302
|
*/
|
|
303
303
|
setBlack() {
|
|
304
304
|
this._ambient.clear();
|
|
@@ -309,9 +309,16 @@ class LightSource {
|
|
|
309
309
|
if (rn) {
|
|
310
310
|
var index = 9 * rn._lightsNames.indexOf(this._name);
|
|
311
311
|
if (index != -1) {
|
|
312
|
-
rn._lightsParamsv[index] =
|
|
313
|
-
rn._lightsParamsv[index +
|
|
314
|
-
rn._lightsParamsv[index +
|
|
312
|
+
rn._lightsParamsv[index] =
|
|
313
|
+
rn._lightsParamsv[index + 1] =
|
|
314
|
+
rn._lightsParamsv[index + 2] =
|
|
315
|
+
rn._lightsParamsv[index + 3] =
|
|
316
|
+
rn._lightsParamsv[index + 4] =
|
|
317
|
+
rn._lightsParamsv[index + 5] =
|
|
318
|
+
rn._lightsParamsv[index + 6] =
|
|
319
|
+
rn._lightsParamsv[index + 7] =
|
|
320
|
+
rn._lightsParamsv[index + 8] =
|
|
321
|
+
0;
|
|
315
322
|
}
|
|
316
323
|
}
|
|
317
324
|
return this;
|
|
@@ -320,8 +327,8 @@ class LightSource {
|
|
|
320
327
|
/**
|
|
321
328
|
* Adds current light to the render node scene.
|
|
322
329
|
* @public
|
|
323
|
-
* @param {
|
|
324
|
-
* @returns {
|
|
330
|
+
* @param {RenderNode} renderNode - Render node scene.
|
|
331
|
+
* @returns {LightSource}
|
|
325
332
|
*/
|
|
326
333
|
addTo(renderNode) {
|
|
327
334
|
this._renderNode = renderNode;
|
|
@@ -351,6 +358,6 @@ class LightSource {
|
|
|
351
358
|
}
|
|
352
359
|
this._renderNode = null;
|
|
353
360
|
}
|
|
354
|
-
}
|
|
361
|
+
}
|
|
355
362
|
|
|
356
|
-
export { LightSource };
|
|
363
|
+
export { LightSource };
|
package/src/og/math/Line2.js
CHANGED
|
@@ -6,27 +6,27 @@
|
|
|
6
6
|
|
|
7
7
|
import { Vec2 } from './Vec2.js';
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
9
|
+
export class Line2 {
|
|
10
|
+
constructor(a, b, c) {
|
|
11
|
+
this.a = a || 0;
|
|
12
|
+
this.b = b || 0;
|
|
13
|
+
this.c = c || 0;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
static get(p0, p1) {
|
|
17
|
+
return new Line2(p1.y - p0.y, p0.x - p1.x, p1.x * p0.y - p0.x * p1.y);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
static getParallel(l, p) {
|
|
21
|
+
return new Line2(l.a, l.b, -l.a * p.x - l.b * p.y);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
static getIntersection(L0, L1) {
|
|
25
|
+
var x = (L1.b * L0.c - L0.b * L1.c) / (L0.b * L1.a - L1.b * L0.a);
|
|
26
|
+
return new Vec2(x, -(L0.c + L0.a * x) / L0.b);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
intersects(l) {
|
|
30
|
+
return Line2.getIntersection(this, l);
|
|
31
|
+
}
|
|
32
|
+
}
|