@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/layer/XYZ.js
CHANGED
|
@@ -2,18 +2,18 @@
|
|
|
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.
|
|
@@ -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,7 +42,6 @@ import { RENDERING } from '../quadTree/quadTree.js';
|
|
|
41
42
|
* });
|
|
42
43
|
*/
|
|
43
44
|
class XYZ extends Layer {
|
|
44
|
-
|
|
45
45
|
/**
|
|
46
46
|
* @param {string} name - Layer name.
|
|
47
47
|
* @param {*} options
|
|
@@ -63,7 +63,7 @@ class XYZ extends Layer {
|
|
|
63
63
|
/**
|
|
64
64
|
* @protected
|
|
65
65
|
*/
|
|
66
|
-
this._s = options.subdomains || [
|
|
66
|
+
this._s = options.subdomains || ["a", "b", "c"];
|
|
67
67
|
|
|
68
68
|
/**
|
|
69
69
|
* Minimal native zoom level when tiles are available.
|
|
@@ -82,13 +82,13 @@ class XYZ extends Layer {
|
|
|
82
82
|
/**
|
|
83
83
|
* @protected
|
|
84
84
|
*/
|
|
85
|
-
this._crossOrigin = options.crossOrigin === undefined ?
|
|
85
|
+
this._crossOrigin = options.crossOrigin === undefined ? "" : options.crossOrigin;
|
|
86
86
|
|
|
87
87
|
/**
|
|
88
88
|
* Rewrites imagery tile url query.
|
|
89
89
|
* @private
|
|
90
90
|
* @callback og.layer.XYZ~_urlRewriteCallback
|
|
91
|
-
* @param {
|
|
91
|
+
* @param {Segment} segment - Segment to load.
|
|
92
92
|
* @param {string} url - Created url.
|
|
93
93
|
* @returns {string} - Url query string.
|
|
94
94
|
*/
|
|
@@ -114,7 +114,6 @@ class XYZ extends Layer {
|
|
|
114
114
|
*/
|
|
115
115
|
setVisibility(visibility) {
|
|
116
116
|
if (visibility !== this._visibility) {
|
|
117
|
-
|
|
118
117
|
super.setVisibility(visibility);
|
|
119
118
|
|
|
120
119
|
if (!visibility) {
|
|
@@ -143,10 +142,9 @@ class XYZ extends Layer {
|
|
|
143
142
|
* Start to load tile material.
|
|
144
143
|
* @public
|
|
145
144
|
* @virtual
|
|
146
|
-
* @param {
|
|
145
|
+
* @param {Material} material - Loads current material.
|
|
147
146
|
*/
|
|
148
147
|
loadMaterial(material, forceLoading) {
|
|
149
|
-
|
|
150
148
|
let seg = material.segment;
|
|
151
149
|
|
|
152
150
|
if (this._isBaseLayer) {
|
|
@@ -156,37 +154,39 @@ class XYZ extends Layer {
|
|
|
156
154
|
}
|
|
157
155
|
|
|
158
156
|
if (this._planet.layerLock.isFree()) {
|
|
159
|
-
|
|
160
157
|
material.isReady = false;
|
|
161
158
|
material.isLoading = true;
|
|
162
159
|
|
|
163
160
|
if (this._checkSegment(seg)) {
|
|
164
|
-
|
|
165
161
|
material.loadingAttempts++;
|
|
166
162
|
|
|
167
|
-
this._planet._tileLoader.load(
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
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();
|
|
178
186
|
}
|
|
179
|
-
material.applyImage(response.data);
|
|
180
|
-
response.data = null;
|
|
181
|
-
}
|
|
182
|
-
} else if (response.status === "abort") {
|
|
183
|
-
material.isLoading = false;
|
|
184
|
-
} else if (response.status === "error") {
|
|
185
|
-
if (material.isLoading) {
|
|
186
|
-
material.textureNotExists();
|
|
187
187
|
}
|
|
188
188
|
}
|
|
189
|
-
|
|
189
|
+
);
|
|
190
190
|
} else {
|
|
191
191
|
material.textureNotExists();
|
|
192
192
|
}
|
|
@@ -197,7 +197,7 @@ class XYZ extends Layer {
|
|
|
197
197
|
* Creates query url.
|
|
198
198
|
* @protected
|
|
199
199
|
* @virtual
|
|
200
|
-
* @param {
|
|
200
|
+
* @param {Segment} segment - Creates specific url for current segment.
|
|
201
201
|
* @returns {String} - Returns url string.
|
|
202
202
|
*/
|
|
203
203
|
_createUrl(segment) {
|
|
@@ -216,28 +216,28 @@ class XYZ extends Layer {
|
|
|
216
216
|
/**
|
|
217
217
|
* Returns actual url query string.
|
|
218
218
|
* @protected
|
|
219
|
-
* @param {
|
|
219
|
+
* @param {Segment} segment - Segment that loads image data.
|
|
220
220
|
* @returns {string} - Url string.
|
|
221
221
|
*/
|
|
222
222
|
_getHTTPRequestString(segment) {
|
|
223
|
-
return this._urlRewriteCallback
|
|
223
|
+
return this._urlRewriteCallback
|
|
224
|
+
? this._urlRewriteCallback(segment, this.url)
|
|
225
|
+
: this._createUrl(segment);
|
|
224
226
|
}
|
|
225
227
|
|
|
226
228
|
/**
|
|
227
229
|
* Sets url rewrite callback, used for custom url rewriting for every tile laoding.
|
|
228
230
|
* @public
|
|
229
|
-
* @param {
|
|
231
|
+
* @param {layer.XYZ~_urlRewriteCallback} ur - The callback that returns tile custom created url.
|
|
230
232
|
*/
|
|
231
233
|
setUrlRewriteCallback(ur) {
|
|
232
234
|
this._urlRewriteCallback = ur;
|
|
233
235
|
}
|
|
234
236
|
|
|
235
237
|
applyMaterial(material) {
|
|
236
|
-
|
|
237
238
|
if (material.isReady) {
|
|
238
239
|
return material.texOffset;
|
|
239
240
|
} else {
|
|
240
|
-
|
|
241
241
|
// if (material.loadingAttempts > 20) {
|
|
242
242
|
// debugger;
|
|
243
243
|
// }
|
|
@@ -272,7 +272,9 @@ class XYZ extends Layer {
|
|
|
272
272
|
if (pnm) {
|
|
273
273
|
!pnm.isLoading && !pnm.isReady && this.loadMaterial(pnm, true);
|
|
274
274
|
} else {
|
|
275
|
-
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
|
+
);
|
|
276
278
|
this.loadMaterial(pnm, true);
|
|
277
279
|
}
|
|
278
280
|
}
|
|
@@ -305,7 +307,7 @@ class XYZ extends Layer {
|
|
|
305
307
|
material.texture = null;
|
|
306
308
|
|
|
307
309
|
if (material.image) {
|
|
308
|
-
material.image.src =
|
|
310
|
+
material.image.src = "";
|
|
309
311
|
material.image = null;
|
|
310
312
|
}
|
|
311
313
|
}
|
|
@@ -360,4 +362,4 @@ const EVENT_NAMES = [
|
|
|
360
362
|
"loadend"
|
|
361
363
|
];
|
|
362
364
|
|
|
363
|
-
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;
|
|
@@ -353,4 +360,4 @@ class LightSource {
|
|
|
353
360
|
}
|
|
354
361
|
}
|
|
355
362
|
|
|
356
|
-
export { LightSource };
|
|
363
|
+
export { LightSource };
|
package/src/og/math/Mat3.js
CHANGED
|
@@ -2,17 +2,16 @@
|
|
|
2
2
|
* @module og/math/Mat3
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
"use strict";
|
|
6
6
|
|
|
7
|
-
import { Mat4 } from
|
|
8
|
-
import { Vec3 } from
|
|
7
|
+
import { Mat4 } from "./Mat4.js";
|
|
8
|
+
import { Vec3 } from "./Vec3.js";
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Class represents a 3x3 matrix.
|
|
12
12
|
* @class
|
|
13
13
|
*/
|
|
14
14
|
export class Mat3 {
|
|
15
|
-
|
|
16
15
|
constructor() {
|
|
17
16
|
/**
|
|
18
17
|
* A 3x3 matrix, indexable as a column-major order array.
|
|
@@ -26,7 +25,7 @@ export class Mat3 {
|
|
|
26
25
|
* Sets column-major order array matrix.
|
|
27
26
|
* @public
|
|
28
27
|
* @param {Array.<number>} m - Matrix array.
|
|
29
|
-
* @returns {
|
|
28
|
+
* @returns {Mat3}
|
|
30
29
|
*/
|
|
31
30
|
set(m) {
|
|
32
31
|
this._m[0] = m[0];
|
|
@@ -44,7 +43,7 @@ export class Mat3 {
|
|
|
44
43
|
/**
|
|
45
44
|
* Duplicates a Mat3 instance.
|
|
46
45
|
* @public
|
|
47
|
-
* @returns {
|
|
46
|
+
* @returns {Mat3}
|
|
48
47
|
*/
|
|
49
48
|
clone() {
|
|
50
49
|
var res = new Mat3();
|
|
@@ -55,8 +54,8 @@ export class Mat3 {
|
|
|
55
54
|
/**
|
|
56
55
|
* Copy matrix.
|
|
57
56
|
* @public
|
|
58
|
-
* @param {
|
|
59
|
-
* @returns {
|
|
57
|
+
* @param {Mat3} a - Matrix to copy.
|
|
58
|
+
* @returns {Mat3}
|
|
60
59
|
*/
|
|
61
60
|
copy(a) {
|
|
62
61
|
return this.set(a._m);
|
|
@@ -65,37 +64,51 @@ export class Mat3 {
|
|
|
65
64
|
/**
|
|
66
65
|
* Creates trasposed matrix from the current.
|
|
67
66
|
* @public
|
|
68
|
-
* @returns {
|
|
67
|
+
* @returns {Mat3}
|
|
69
68
|
*/
|
|
70
69
|
transposeTo() {
|
|
71
70
|
var res = new Mat3();
|
|
72
71
|
var m = this._m;
|
|
73
|
-
res._m[0] = m[0];
|
|
74
|
-
res._m[
|
|
75
|
-
res._m[
|
|
72
|
+
res._m[0] = m[0];
|
|
73
|
+
res._m[1] = m[3];
|
|
74
|
+
res._m[2] = m[6];
|
|
75
|
+
res._m[3] = m[1];
|
|
76
|
+
res._m[4] = m[4];
|
|
77
|
+
res._m[5] = m[7];
|
|
78
|
+
res._m[6] = m[2];
|
|
79
|
+
res._m[7] = m[5];
|
|
80
|
+
res._m[8] = m[8];
|
|
76
81
|
return res;
|
|
77
82
|
}
|
|
78
83
|
|
|
79
84
|
/**
|
|
80
85
|
* Sets matrix to identity.
|
|
81
86
|
* @public
|
|
82
|
-
* @returns {
|
|
87
|
+
* @returns {Mat3}
|
|
83
88
|
*/
|
|
84
89
|
setIdentity() {
|
|
85
|
-
this._m[0] = 1;
|
|
86
|
-
this._m[
|
|
87
|
-
this._m[
|
|
90
|
+
this._m[0] = 1;
|
|
91
|
+
this._m[1] = 0;
|
|
92
|
+
this._m[2] = 0;
|
|
93
|
+
this._m[3] = 0;
|
|
94
|
+
this._m[4] = 1;
|
|
95
|
+
this._m[5] = 0;
|
|
96
|
+
this._m[6] = 0;
|
|
97
|
+
this._m[7] = 0;
|
|
98
|
+
this._m[8] = 1;
|
|
88
99
|
return this;
|
|
89
100
|
}
|
|
90
101
|
|
|
91
102
|
/**
|
|
92
103
|
* Multiply to 3d vector.
|
|
93
104
|
* @public
|
|
94
|
-
* @params {
|
|
95
|
-
* @returns {
|
|
105
|
+
* @params {Vec3} p - 3d vector.
|
|
106
|
+
* @returns {Vec3}
|
|
96
107
|
*/
|
|
97
108
|
mulVec(p) {
|
|
98
|
-
var d = p.x,
|
|
109
|
+
var d = p.x,
|
|
110
|
+
e = p.y,
|
|
111
|
+
g = p.z;
|
|
99
112
|
var m = this._m;
|
|
100
113
|
return new Vec3(
|
|
101
114
|
m[0] * d + m[3] * e + m[6] * g,
|
|
@@ -107,7 +120,7 @@ export class Mat3 {
|
|
|
107
120
|
/**
|
|
108
121
|
* Converts to 4x4 matrix.
|
|
109
122
|
* @public
|
|
110
|
-
* @returns {
|
|
123
|
+
* @returns {Mat4}
|
|
111
124
|
*/
|
|
112
125
|
toMatrix4() {
|
|
113
126
|
var res = new Mat4();
|
|
@@ -131,13 +144,12 @@ export class Mat3 {
|
|
|
131
144
|
b[15] = 1;
|
|
132
145
|
return res;
|
|
133
146
|
}
|
|
134
|
-
|
|
135
147
|
}
|
|
136
148
|
|
|
137
149
|
/**
|
|
138
150
|
* Mat3 factory.
|
|
139
151
|
* @static
|
|
140
|
-
* @return {
|
|
152
|
+
* @return {Mat3}
|
|
141
153
|
*/
|
|
142
154
|
export function mat3() {
|
|
143
155
|
return new Mat3();
|