@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
|
@@ -16,6 +16,7 @@ import { TextureAtlas } from "../utils/TextureAtlas.js";
|
|
|
16
16
|
import * as arial from "../arial.js";
|
|
17
17
|
import { depth } from "../shaders/depth.js";
|
|
18
18
|
import { ARIAL_FONT_B64 } from "../res/images.js";
|
|
19
|
+
import { LabelWorker } from "../entity/LabelWorker.js";
|
|
19
20
|
|
|
20
21
|
let __pickingCallbackCounter__ = 0;
|
|
21
22
|
|
|
@@ -24,7 +25,7 @@ let __depthCallbackCounter__ = 0;
|
|
|
24
25
|
/**
|
|
25
26
|
* Represents high level WebGL context interface that starts WebGL handler working in real time.
|
|
26
27
|
* @class
|
|
27
|
-
* @param {
|
|
28
|
+
* @param {Handler} handler - WebGL handler context.
|
|
28
29
|
* @param {Object} [params] - Renderer parameters:
|
|
29
30
|
* @fires og.RendererEvents#draw
|
|
30
31
|
* @fires og.RendererEvents#resize
|
|
@@ -55,7 +56,6 @@ let __depthCallbackCounter__ = 0;
|
|
|
55
56
|
* @fires og.RendererEvents#touchenter
|
|
56
57
|
*/
|
|
57
58
|
class Renderer {
|
|
58
|
-
|
|
59
59
|
constructor(handler, params) {
|
|
60
60
|
params = params || {};
|
|
61
61
|
|
|
@@ -69,13 +69,13 @@ class Renderer {
|
|
|
69
69
|
/**
|
|
70
70
|
* WebGL handler context.
|
|
71
71
|
* @public
|
|
72
|
-
* @type {
|
|
72
|
+
* @type {Handler}
|
|
73
73
|
*/
|
|
74
74
|
this.handler = handler;
|
|
75
75
|
|
|
76
|
-
this.exposure =
|
|
76
|
+
this.exposure = 3.01;
|
|
77
77
|
|
|
78
|
-
this.gamma = 0.
|
|
78
|
+
this.gamma = 0.47;
|
|
79
79
|
|
|
80
80
|
this.whitepoint = 1.0;
|
|
81
81
|
|
|
@@ -86,7 +86,7 @@ class Renderer {
|
|
|
86
86
|
/**
|
|
87
87
|
* Render nodes drawing queue.
|
|
88
88
|
* @private
|
|
89
|
-
* @type {Array.<
|
|
89
|
+
* @type {Array.<scene.RenderNode>}
|
|
90
90
|
*/
|
|
91
91
|
this._renderNodesArr = [];
|
|
92
92
|
|
|
@@ -100,14 +100,14 @@ class Renderer {
|
|
|
100
100
|
/**
|
|
101
101
|
* Current active camera.
|
|
102
102
|
* @public
|
|
103
|
-
* @type {
|
|
103
|
+
* @type {Camera}
|
|
104
104
|
*/
|
|
105
105
|
this.activeCamera = null;
|
|
106
106
|
|
|
107
107
|
/**
|
|
108
108
|
* Renderer events. Represents interface for setting events like mousemove, draw, keypress etc.
|
|
109
109
|
* @public
|
|
110
|
-
* @type {
|
|
110
|
+
* @type {RendererEvents}
|
|
111
111
|
*/
|
|
112
112
|
this.events = new RendererEvents(this);
|
|
113
113
|
|
|
@@ -140,32 +140,30 @@ class Renderer {
|
|
|
140
140
|
|
|
141
141
|
/**
|
|
142
142
|
* Color picking objects rendering queue.
|
|
143
|
-
* @type {Array.<
|
|
143
|
+
* @type {Array.<Renderer~pickingCallback>}
|
|
144
144
|
*/
|
|
145
145
|
this._pickingCallbacks = [];
|
|
146
146
|
|
|
147
147
|
/**
|
|
148
148
|
* Picking objects(labels and billboards) framebuffer.
|
|
149
149
|
* @public
|
|
150
|
-
* @type {
|
|
150
|
+
* @type {Framebuffer}
|
|
151
151
|
*/
|
|
152
152
|
this.pickingFramebuffer = null;
|
|
153
153
|
|
|
154
154
|
/**
|
|
155
155
|
* Depth objects rendering queue.
|
|
156
|
-
* @type {Array.<
|
|
156
|
+
* @type {Array.<Renderer~depthCallback>}
|
|
157
157
|
*/
|
|
158
158
|
this._depthCallbacks = [];
|
|
159
159
|
|
|
160
160
|
this.depthFramebuffer = null;
|
|
161
161
|
|
|
162
|
-
this._msaa = params.msaa ||
|
|
162
|
+
this._msaa = params.msaa || 4;
|
|
163
163
|
this._internalFormat = "RGBA16F";
|
|
164
164
|
this._format = "RGBA";
|
|
165
165
|
this._type = "FLOAT";
|
|
166
166
|
|
|
167
|
-
this._screenScale = params.screenScale || 1.0;
|
|
168
|
-
|
|
169
167
|
this.sceneFramebuffer = null;
|
|
170
168
|
|
|
171
169
|
this.blitFramebuffer = null;
|
|
@@ -193,14 +191,14 @@ class Renderer {
|
|
|
193
191
|
/**
|
|
194
192
|
* Texture atlas for the billboards images. One atlas per node.
|
|
195
193
|
* @protected
|
|
196
|
-
* @type {
|
|
194
|
+
* @type {utils.TextureAtlas}
|
|
197
195
|
*/
|
|
198
196
|
this.billboardsTextureAtlas = new TextureAtlas();
|
|
199
197
|
|
|
200
198
|
/**
|
|
201
199
|
* Texture font atlas for the font families and styles. One atlas per node.
|
|
202
200
|
* @public
|
|
203
|
-
* @type {
|
|
201
|
+
* @type {utils.FontAtlas}
|
|
204
202
|
*/
|
|
205
203
|
this.fontAtlas = new FontAtlas();
|
|
206
204
|
|
|
@@ -212,6 +210,8 @@ class Renderer {
|
|
|
212
210
|
}
|
|
213
211
|
|
|
214
212
|
this._currentOutput = "screen";
|
|
213
|
+
|
|
214
|
+
this.labelWorker = new LabelWorker();
|
|
215
215
|
}
|
|
216
216
|
|
|
217
217
|
/**
|
|
@@ -222,11 +222,6 @@ class Renderer {
|
|
|
222
222
|
this.events.active = activity;
|
|
223
223
|
}
|
|
224
224
|
|
|
225
|
-
setScreenScale(scale) {
|
|
226
|
-
this._screenScale = scale;
|
|
227
|
-
this._resize();
|
|
228
|
-
}
|
|
229
|
-
|
|
230
225
|
addDepthCallback(sender, callback) {
|
|
231
226
|
var id = __depthCallbackCounter__++;
|
|
232
227
|
this._depthCallbacks.push({
|
|
@@ -249,7 +244,7 @@ class Renderer {
|
|
|
249
244
|
/**
|
|
250
245
|
* Adds picking rendering callback function.
|
|
251
246
|
* @param {object} sender - Callback context.
|
|
252
|
-
* @param {
|
|
247
|
+
* @param {Renderer~pickingCallback} callback - Rendering callback.
|
|
253
248
|
* @returns {Number} Handler id
|
|
254
249
|
*/
|
|
255
250
|
addPickingCallback(sender, callback) {
|
|
@@ -331,7 +326,7 @@ class Renderer {
|
|
|
331
326
|
* @returns {number} -
|
|
332
327
|
*/
|
|
333
328
|
getWidth() {
|
|
334
|
-
return this.handler.canvas.
|
|
329
|
+
return this.handler.canvas.clientWidth;
|
|
335
330
|
}
|
|
336
331
|
|
|
337
332
|
/**
|
|
@@ -340,22 +335,22 @@ class Renderer {
|
|
|
340
335
|
* @returns {number} -
|
|
341
336
|
*/
|
|
342
337
|
getHeight() {
|
|
343
|
-
return this.handler.canvas.
|
|
338
|
+
return this.handler.canvas.clientHeight;
|
|
344
339
|
}
|
|
345
340
|
|
|
346
341
|
/**
|
|
347
342
|
* Get center of the screen
|
|
348
343
|
* @public
|
|
349
|
-
* @returns {
|
|
344
|
+
* @returns {math.Vec2} -
|
|
350
345
|
*/
|
|
351
346
|
getCenter() {
|
|
352
347
|
var cnv = this.handler.canvas;
|
|
353
|
-
return new Vec2(Math.round(cnv.
|
|
348
|
+
return new Vec2(Math.round(cnv.clientWidth * 0.5), Math.round(cnv.clientHeight * 0.5));
|
|
354
349
|
}
|
|
355
350
|
|
|
356
351
|
/**
|
|
357
352
|
* Add the given control to the renderer.
|
|
358
|
-
* @param {
|
|
353
|
+
* @param {control.Control} control - Control.
|
|
359
354
|
*/
|
|
360
355
|
addControl(control) {
|
|
361
356
|
control.addTo(this);
|
|
@@ -363,7 +358,7 @@ class Renderer {
|
|
|
363
358
|
|
|
364
359
|
/**
|
|
365
360
|
* Add the given controls array to the planet node.
|
|
366
|
-
* @param {Array.<
|
|
361
|
+
* @param {Array.<control.Control>} cArr - Control array.
|
|
367
362
|
*/
|
|
368
363
|
addControls(cArr) {
|
|
369
364
|
for (var i = 0; i < cArr.length; i++) {
|
|
@@ -373,7 +368,7 @@ class Renderer {
|
|
|
373
368
|
|
|
374
369
|
/**
|
|
375
370
|
* Remove control from the renderer.
|
|
376
|
-
* @param {
|
|
371
|
+
* @param {control.Control} control - Control.
|
|
377
372
|
*/
|
|
378
373
|
removeControl(control) {
|
|
379
374
|
control.remove();
|
|
@@ -441,7 +436,7 @@ class Renderer {
|
|
|
441
436
|
useDepth: false
|
|
442
437
|
}).init();
|
|
443
438
|
|
|
444
|
-
this.readPixels = () => {
|
|
439
|
+
this.readPixels = () => {};
|
|
445
440
|
|
|
446
441
|
if (this.handler.gl.type === "webgl") {
|
|
447
442
|
this.sceneFramebuffer = new Framebuffer(this.handler);
|
|
@@ -477,7 +472,7 @@ class Renderer {
|
|
|
477
472
|
internalFormat: this._internalFormat,
|
|
478
473
|
format: this._format,
|
|
479
474
|
type: this._type,
|
|
480
|
-
filter: "
|
|
475
|
+
filter: "NEAREST"
|
|
481
476
|
}).init();
|
|
482
477
|
|
|
483
478
|
this.toneMappingFramebuffer = new Framebuffer(this.handler, {
|
|
@@ -524,23 +519,21 @@ class Renderer {
|
|
|
524
519
|
}
|
|
525
520
|
|
|
526
521
|
_resize() {
|
|
527
|
-
let
|
|
528
|
-
this.activeCamera.setAspectRatio(
|
|
529
|
-
this.sceneFramebuffer.setSize(
|
|
530
|
-
|
|
531
|
-
obj.clientHeight * this._screenScale
|
|
532
|
-
);
|
|
522
|
+
let c = this.handler.canvas;
|
|
523
|
+
this.activeCamera.setAspectRatio(c.width / c.height);
|
|
524
|
+
this.sceneFramebuffer.setSize(c.width, c.height);
|
|
525
|
+
|
|
533
526
|
this.blitFramebuffer &&
|
|
534
|
-
this.blitFramebuffer.setSize(
|
|
535
|
-
|
|
536
|
-
obj.clientHeight * this._screenScale,
|
|
537
|
-
true
|
|
538
|
-
);
|
|
527
|
+
this.blitFramebuffer.setSize(c.width, c.height, true);
|
|
528
|
+
|
|
539
529
|
this.toneMappingFramebuffer &&
|
|
540
|
-
this.toneMappingFramebuffer.setSize(
|
|
541
|
-
|
|
530
|
+
this.toneMappingFramebuffer.setSize(c.width, c.height, true);
|
|
531
|
+
|
|
532
|
+
this.depthFramebuffer &&
|
|
533
|
+
this.depthFramebuffer.setSize(c.width, c.height, true);
|
|
534
|
+
|
|
542
535
|
this.screenDepthFramebuffer &&
|
|
543
|
-
this.screenDepthFramebuffer.setSize(
|
|
536
|
+
this.screenDepthFramebuffer.setSize(c.width, c.height, true);
|
|
544
537
|
|
|
545
538
|
if (this.handler.gl.type === "webgl") {
|
|
546
539
|
this.screenTexture.screen = this.sceneFramebuffer.textures[0];
|
|
@@ -564,7 +557,7 @@ class Renderer {
|
|
|
564
557
|
/**
|
|
565
558
|
* Adds render node to the renderer.
|
|
566
559
|
* @public
|
|
567
|
-
* @param {
|
|
560
|
+
* @param {RenderNode} renderNode - Render node.
|
|
568
561
|
*/
|
|
569
562
|
addNode(renderNode) {
|
|
570
563
|
if (!this.renderNodes[renderNode.name]) {
|
|
@@ -579,7 +572,7 @@ class Renderer {
|
|
|
579
572
|
/**
|
|
580
573
|
* Adds render node to the renderer before specific node.
|
|
581
574
|
* @public
|
|
582
|
-
* @param {
|
|
575
|
+
* @param {RenderNode} renderNode - Render node.
|
|
583
576
|
*/
|
|
584
577
|
addNodeBefore(renderNode, renderNodeBefore) {
|
|
585
578
|
if (!this.renderNodes[renderNode.name]) {
|
|
@@ -600,7 +593,7 @@ class Renderer {
|
|
|
600
593
|
/**
|
|
601
594
|
* Adds render nodes array to the renderer.
|
|
602
595
|
* @public
|
|
603
|
-
* @param {Array.<
|
|
596
|
+
* @param {Array.<scene.RenderNode>} nodesArr - Render nodes array.
|
|
604
597
|
*/
|
|
605
598
|
addNodes(nodesArr) {
|
|
606
599
|
for (var i = 0; i < nodesArr.length; i++) {
|
|
@@ -610,7 +603,11 @@ class Renderer {
|
|
|
610
603
|
|
|
611
604
|
getMaxMSAA(internalFormat) {
|
|
612
605
|
var gl = this.handler.gl;
|
|
613
|
-
let samples = gl.getInternalformatParameter(
|
|
606
|
+
let samples = gl.getInternalformatParameter(
|
|
607
|
+
gl.RENDERBUFFER,
|
|
608
|
+
gl[internalFormat],
|
|
609
|
+
gl.SAMPLES
|
|
610
|
+
);
|
|
614
611
|
return samples[0];
|
|
615
612
|
}
|
|
616
613
|
|
|
@@ -671,6 +668,12 @@ class Renderer {
|
|
|
671
668
|
ec[i]._fadingOpacity && ec[i].labelHandler.draw();
|
|
672
669
|
}
|
|
673
670
|
|
|
671
|
+
//geoObject
|
|
672
|
+
i = ec.length;
|
|
673
|
+
while (i--) {
|
|
674
|
+
ec[i]._fadingOpacity && ec[i].geoObjectHandler.draw();
|
|
675
|
+
}
|
|
676
|
+
|
|
674
677
|
// rays
|
|
675
678
|
i = ec.length;
|
|
676
679
|
while (i--) {
|
|
@@ -735,7 +738,12 @@ class Renderer {
|
|
|
735
738
|
|
|
736
739
|
let h = this.handler;
|
|
737
740
|
|
|
738
|
-
h.gl.clearColor(
|
|
741
|
+
h.gl.clearColor(
|
|
742
|
+
this.backgroundColor.x,
|
|
743
|
+
this.backgroundColor.y,
|
|
744
|
+
this.backgroundColor.z,
|
|
745
|
+
1.0
|
|
746
|
+
);
|
|
739
747
|
h.gl.clear(h.gl.COLOR_BUFFER_BIT | h.gl.DEPTH_BUFFER_BIT);
|
|
740
748
|
|
|
741
749
|
e.dispatch(e.draw, this);
|
|
@@ -847,7 +855,7 @@ class Renderer {
|
|
|
847
855
|
getPickingObject(x, y) {
|
|
848
856
|
let cnv = this.renderer.handler.canvas,
|
|
849
857
|
c = new Uint8Array(3);
|
|
850
|
-
this.readPixels(c, x / cnv.
|
|
858
|
+
this.readPixels(c, x / cnv.clientWidth, (cnv.clientHeight - y) / cnv.clientHeight, 1);
|
|
851
859
|
return this.colorObjects[c[0] + "_" + c[1] + "_" + c[2]];
|
|
852
860
|
}
|
|
853
861
|
|
|
@@ -964,7 +972,6 @@ class Renderer {
|
|
|
964
972
|
start() {
|
|
965
973
|
this.handler.start();
|
|
966
974
|
}
|
|
967
|
-
|
|
968
975
|
}
|
|
969
976
|
|
|
970
977
|
export { Renderer };
|
|
@@ -19,7 +19,7 @@ const MB_M = 0b0100;
|
|
|
19
19
|
/**
|
|
20
20
|
* Renderer events handler.
|
|
21
21
|
* @class
|
|
22
|
-
* @param {
|
|
22
|
+
* @param {Renderer} renderer - Renderer object, events that works for.
|
|
23
23
|
*/
|
|
24
24
|
class RendererEvents extends Events {
|
|
25
25
|
constructor(renderer) {
|
|
@@ -28,28 +28,28 @@ class RendererEvents extends Events {
|
|
|
28
28
|
/**
|
|
29
29
|
* Assigned renderer.
|
|
30
30
|
* @public
|
|
31
|
-
* @type {
|
|
31
|
+
* @type {Renderer}
|
|
32
32
|
*/
|
|
33
33
|
this.renderer = renderer;
|
|
34
34
|
|
|
35
35
|
/**
|
|
36
36
|
* Low level touch events handler.
|
|
37
37
|
* @private
|
|
38
|
-
* @type {
|
|
38
|
+
* @type {input.TouchHandler}
|
|
39
39
|
*/
|
|
40
40
|
this._touchHandler = new TouchHandler(renderer.handler.canvas);
|
|
41
41
|
|
|
42
42
|
/**
|
|
43
43
|
* Low level mouse events handler.
|
|
44
44
|
* @private
|
|
45
|
-
* @type {
|
|
45
|
+
* @type {input.MouseHandler}
|
|
46
46
|
*/
|
|
47
47
|
this._mouseHandler = new MouseHandler(renderer.handler.canvas);
|
|
48
48
|
|
|
49
49
|
/**
|
|
50
50
|
* Low level keyboard events handler.
|
|
51
51
|
* @private
|
|
52
|
-
* @type {
|
|
52
|
+
* @type {input.KeyboardHandler}
|
|
53
53
|
*/
|
|
54
54
|
this._keyboardHandler = new KeyboardHandler();
|
|
55
55
|
|
|
@@ -84,10 +84,14 @@ class RendererEvents extends Events {
|
|
|
84
84
|
ms.moving ||
|
|
85
85
|
ms.justStopped
|
|
86
86
|
);
|
|
87
|
-
},
|
|
88
|
-
/** Current mouse X position. */
|
|
87
|
+
},
|
|
88
|
+
/** Current screen mouse X position. */
|
|
89
|
+
clientX: 0,
|
|
90
|
+
/** Current screen mouse Y position. */
|
|
91
|
+
clientY: 0,
|
|
92
|
+
/** Current viewport mouse X position. */
|
|
89
93
|
x: 0,
|
|
90
|
-
/** Current mouse Y position. */
|
|
94
|
+
/** Current viewport mouse Y position. */
|
|
91
95
|
y: 0,
|
|
92
96
|
/** Current mouse X position from 0 to 1 */
|
|
93
97
|
nx: 0,
|
|
@@ -190,6 +194,9 @@ class RendererEvents extends Events {
|
|
|
190
194
|
this._dblTchCoords = new Vec2();
|
|
191
195
|
this._oneTouchStart = false;
|
|
192
196
|
this._dblTchBegins = 0;
|
|
197
|
+
/**
|
|
198
|
+
* @type {number}
|
|
199
|
+
*/
|
|
193
200
|
this._mousestopThread = null;
|
|
194
201
|
this._ldblClkBegins = 0;
|
|
195
202
|
this._rdblClkBegins = 0;
|
|
@@ -332,7 +339,7 @@ class RendererEvents extends Events {
|
|
|
332
339
|
*/
|
|
333
340
|
onMouseMove(event, sys) {
|
|
334
341
|
var ms = this.mouseState;
|
|
335
|
-
this.updateButtonsStates(sys.buttons)
|
|
342
|
+
this.updateButtonsStates(sys.buttons);
|
|
336
343
|
ms.sys = event;
|
|
337
344
|
|
|
338
345
|
let ex = event.clientX,
|
|
@@ -354,16 +361,20 @@ class RendererEvents extends Events {
|
|
|
354
361
|
this._mClkBegins = 0;
|
|
355
362
|
}
|
|
356
363
|
|
|
357
|
-
if (ms.
|
|
364
|
+
if (ms.clientX === event.clientX && ms.clientY === event.clientY) {
|
|
358
365
|
return;
|
|
359
|
-
}
|
|
366
|
+
}
|
|
360
367
|
|
|
361
|
-
ms.
|
|
362
|
-
ms.
|
|
368
|
+
ms.clientX = event.clientX;
|
|
369
|
+
ms.clientY = event.clientY;
|
|
370
|
+
|
|
371
|
+
let h = this.renderer.handler;
|
|
372
|
+
|
|
373
|
+
ms.x = event.clientX * h.pixelRatio;
|
|
374
|
+
ms.y = event.clientY * h.pixelRatio;
|
|
363
375
|
|
|
364
|
-
|
|
365
|
-
ms.
|
|
366
|
-
ms.ny = ms.y / cnv.height;
|
|
376
|
+
ms.nx = ms.x / h.canvas.width;
|
|
377
|
+
ms.ny = ms.y / h.canvas.height;
|
|
367
378
|
|
|
368
379
|
ms.moving = true;
|
|
369
380
|
|
|
@@ -489,12 +500,18 @@ class RendererEvents extends Events {
|
|
|
489
500
|
*/
|
|
490
501
|
onTouchStart(event) {
|
|
491
502
|
var ts = this.touchState;
|
|
492
|
-
ts.sys = event;
|
|
493
|
-
|
|
494
|
-
ts.
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
503
|
+
ts.sys = event;
|
|
504
|
+
|
|
505
|
+
ts.clienX = event.touches.item(0).clientX - event.offsetLeft;
|
|
506
|
+
ts.clientY = event.touches.item(0).clientY - event.offsetTop;
|
|
507
|
+
|
|
508
|
+
let h = this.renderer.handler;
|
|
509
|
+
|
|
510
|
+
ts.x = ts.clientX * h.pixelRatio;
|
|
511
|
+
ts.y = ts.clientY * h.pixelRatio;
|
|
512
|
+
|
|
513
|
+
ts.nx = ts.x / h.canvas.width;
|
|
514
|
+
ts.ny = ts.y / h.canvas.height;
|
|
498
515
|
ts.prev_x = ts.x;
|
|
499
516
|
ts.prev_y = ts.y;
|
|
500
517
|
ts.touchStart = true;
|
|
@@ -548,11 +565,17 @@ class RendererEvents extends Events {
|
|
|
548
565
|
*/
|
|
549
566
|
onTouchMove(event) {
|
|
550
567
|
var ts = this.touchState;
|
|
551
|
-
ts.
|
|
552
|
-
ts.
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
568
|
+
ts.clientX = event.touches.item(0).clientX - event.offsetLeft;
|
|
569
|
+
ts.clientY = event.touches.item(0).clientY - event.offsetTop;
|
|
570
|
+
|
|
571
|
+
var h = this.renderer.handler;
|
|
572
|
+
|
|
573
|
+
ts.x = ts.clientX * h.pixelRatio;
|
|
574
|
+
ts.y = ts.clientY * h.pixelRatio;
|
|
575
|
+
|
|
576
|
+
ts.nx = ts.x / h.canvas.width;
|
|
577
|
+
ts.ny = ts.y / h.canvas.height;
|
|
578
|
+
|
|
556
579
|
ts.sys = event;
|
|
557
580
|
ts.moving = true;
|
|
558
581
|
this._dblTchBegins = 0;
|
package/src/og/scene/BaseNode.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @module og/scene/BaseNode
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
"use strict";
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Scene node base class.
|
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
*/
|
|
12
12
|
class BaseNode {
|
|
13
13
|
constructor(name) {
|
|
14
|
-
|
|
15
14
|
/**
|
|
16
15
|
* Node name.
|
|
17
16
|
* @public
|
|
@@ -22,7 +21,7 @@ class BaseNode {
|
|
|
22
21
|
/**
|
|
23
22
|
* Top scene tree node pointer.
|
|
24
23
|
* @public
|
|
25
|
-
* @type {
|
|
24
|
+
* @type {RenderNode}
|
|
26
25
|
*/
|
|
27
26
|
this.topNode = this;
|
|
28
27
|
|
|
@@ -32,14 +31,14 @@ class BaseNode {
|
|
|
32
31
|
/**
|
|
33
32
|
* Children nodes.
|
|
34
33
|
* @public
|
|
35
|
-
* @type {Array.<
|
|
34
|
+
* @type {Array.<RenderNode>}
|
|
36
35
|
*/
|
|
37
36
|
this.childNodes = [];
|
|
38
37
|
|
|
39
38
|
/**
|
|
40
39
|
* Parent node pointer.
|
|
41
40
|
* @public
|
|
42
|
-
* @type {
|
|
41
|
+
* @type {RenderNode}
|
|
43
42
|
*/
|
|
44
43
|
this.parentNode = null;
|
|
45
44
|
|
|
@@ -60,7 +59,7 @@ class BaseNode {
|
|
|
60
59
|
/**
|
|
61
60
|
* Adds node to the current hierarchy.
|
|
62
61
|
* @public
|
|
63
|
-
* @type {
|
|
62
|
+
* @type {BaseNode}
|
|
64
63
|
*/
|
|
65
64
|
addNode(node) {
|
|
66
65
|
if (this.parentNode == null) {
|
|
@@ -89,7 +88,7 @@ class BaseNode {
|
|
|
89
88
|
* Gets node by name in the current.
|
|
90
89
|
* @public
|
|
91
90
|
* @param {string} name - Node name.
|
|
92
|
-
* @return {
|
|
91
|
+
* @return {RenderNode} Node object in the current node.
|
|
93
92
|
*/
|
|
94
93
|
getNodeByName(name) {
|
|
95
94
|
return this._dictionary[name];
|
|
@@ -111,4 +110,4 @@ class BaseNode {
|
|
|
111
110
|
}
|
|
112
111
|
}
|
|
113
112
|
|
|
114
|
-
export { BaseNode };
|
|
113
|
+
export { BaseNode };
|