@openglobus/og 0.11.4 → 0.11.8
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/css/og.css +3 -2
- package/package.json +12 -14
- package/src/og/Clock.js +6 -10
- package/src/og/Events.js +5 -7
- package/src/og/Extent.js +73 -32
- package/src/og/Globe.js +8 -5
- package/src/og/ImageCanvas.js +18 -15
- package/src/og/LonLat.js +13 -10
- package/src/og/Popup.js +19 -17
- package/src/og/QueueArray.js +3 -4
- package/src/og/Rectangle.js +4 -6
- package/src/og/Stack.js +2 -4
- package/src/og/ajax.js +20 -14
- package/src/og/astro/earth.js +21 -15
- package/src/og/bv/Box.js +2 -3
- package/src/og/bv/Sphere.js +10 -7
- package/src/og/camera/Frustum.js +19 -12
- package/src/og/camera/PlanetCamera.js +9 -5
- package/src/og/control/CompassButton.js +1 -2
- package/src/og/control/Control.js +7 -9
- package/src/og/control/DebugInfo.js +0 -1
- package/src/og/control/KeyboardNavigation.js +9 -9
- package/src/og/control/LayerSwitcher.js +21 -20
- package/src/og/control/Lighting.js +74 -64
- package/src/og/control/MouseNavigation.js +21 -18
- package/src/og/control/MouseWheelZoomControl.js +257 -0
- package/src/og/control/SegmentBoundVisualization.js +5 -6
- package/src/og/control/ShowFps.js +12 -7
- package/src/og/control/SimpleNavigation.js +5 -7
- package/src/og/control/Sun.js +22 -12
- package/src/og/control/ToggleWireframe.js +3 -3
- package/src/og/control/TouchNavigation.js +43 -32
- package/src/og/control/ZoomControl.js +40 -24
- package/src/og/control/index.js +2 -0
- package/src/og/control/visibleExtent/Segment.js +1862 -0
- package/src/og/control/visibleExtent/VisibleExtent.js +80 -0
- package/src/og/control/visibleExtent/drawnode.js +751 -0
- package/src/og/ellipsoid/Ellipsoid.js +149 -57
- package/src/og/ellipsoid/wgs84.js +3 -3
- package/src/og/entity/BaseBillboard.js +72 -30
- package/src/og/entity/Billboard.js +9 -5
- package/src/og/entity/BillboardHandler.js +315 -62
- package/src/og/entity/Entity.js +39 -1
- package/src/og/entity/EntityCollection.js +47 -24
- package/src/og/entity/GeoObject.js +228 -0
- package/src/og/entity/GeoObjectHandler.js +910 -0
- package/src/og/entity/GeometryHandler.js +595 -123
- package/src/og/entity/Label.js +62 -30
- package/src/og/entity/LabelHandler.js +40 -242
- package/src/og/entity/LabelWorker.js +218 -0
- package/src/og/entity/Object3d.js +504 -0
- package/src/og/entity/PointCloud.js +76 -28
- package/src/og/entity/PointCloudHandler.js +5 -5
- package/src/og/entity/Ray.js +49 -16
- package/src/og/entity/Strip.js +72 -43
- package/src/og/entity/StripHandler.js +23 -23
- package/src/og/layer/BaseGeoImage.js +50 -19
- package/src/og/layer/CanvasTiles.js +16 -17
- package/src/og/layer/GeoImage.js +8 -16
- package/src/og/layer/GeoTexture2d.js +2 -10
- package/src/og/layer/GeoVideo.js +2 -10
- package/src/og/layer/KML.js +55 -33
- package/src/og/layer/Layer.js +24 -32
- package/src/og/layer/Material.js +1 -1
- package/src/og/layer/Vector.js +94 -48
- package/src/og/layer/WMS.js +33 -18
- package/src/og/layer/XYZ.js +4 -5
- package/src/og/light/LightSource.js +19 -12
- package/src/og/math/Mat3.js +24 -12
- package/src/og/math/Mat4.js +603 -603
- package/src/og/math/Plane.js +19 -18
- package/src/og/math/Ray.js +17 -12
- package/src/og/math/Vec2.js +24 -14
- package/src/og/math/Vec3.js +60 -30
- package/src/og/math/coder.js +7 -7
- package/src/og/proj/EPSG3857.js +3 -3
- package/src/og/proj/EPSG4326.js +3 -3
- package/src/og/proj/Proj.js +2 -4
- package/src/og/quadTree/Node.js +3 -3
- package/src/og/renderer/Renderer.js +106 -124
- package/src/og/renderer/RendererEvents.js +45 -23
- package/src/og/scene/BaseNode.js +2 -3
- package/src/og/scene/Planet.js +51 -90
- package/src/og/scene/RenderNode.js +15 -8
- package/src/og/segment/Segment.js +60 -156
- package/src/og/segment/Slice.js +45 -0
- package/src/og/shaders/drawnode.js +245 -342
- 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 +108 -36
- package/src/og/shapes/Icosphere.js +25 -10
- package/src/og/shapes/Sphere.js +8 -11
- package/src/og/utils/FontAtlas.js +6 -2
- package/src/og/utils/GeoImageCreator.js +5 -1
- package/src/og/utils/TextureAtlas.js +18 -20
- package/src/og/utils/VectorTileCreator.js +1 -3
- package/src/og/utils/shared.js +2 -2
- package/src/og/webgl/Handler.js +215 -162
- package/src/og/webgl/Multisample.js +44 -16
- package/src/og/webgl/Program.js +78 -33
- package/src/og/webgl/callbacks.js +3 -3
- package/types/Clock.d.ts +0 -94
- package/types/Deferred.d.ts +0 -6
- package/types/Events.d.ts +0 -77
- package/types/Extent.d.ts +0 -166
- package/types/Globe.d.ts +0 -82
- package/types/ImageCanvas.d.ts +0 -123
- package/types/Lock.d.ts +0 -12
- package/types/LonLat.d.ts +0 -108
- package/types/Popup.d.ts +0 -42
- package/types/QueueArray.d.ts +0 -19
- package/types/Rectangle.d.ts +0 -80
- package/types/Stack.d.ts +0 -19
- 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 -7
- package/types/astro/jd.d.ts +0 -254
- package/types/bv/Box.d.ts +0 -30
- package/types/bv/Sphere.d.ts +0 -38
- package/types/bv/index.d.ts +0 -3
- package/types/camera/Camera.d.ts +0 -312
- package/types/camera/Frustum.d.ts +0 -133
- package/types/camera/PlanetCamera.d.ts +0 -218
- package/types/camera/index.d.ts +0 -3
- package/types/cons.d.ts +0 -40
- package/types/control/CompassButton.d.ts +0 -17
- package/types/control/Control.d.ts +0 -104
- package/types/control/DebugInfo.d.ts +0 -15
- 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 -21
- package/types/control/LayerSwitcher.d.ts +0 -21
- package/types/control/Lighting.d.ts +0 -16
- package/types/control/MouseNavigation.d.ts +0 -47
- package/types/control/ScaleControl.d.ts +0 -22
- package/types/control/ShowFps.d.ts +0 -11
- package/types/control/SimpleNavigation.d.ts +0 -25
- package/types/control/Sun.d.ts +0 -50
- package/types/control/ToggleWireframe.d.ts +0 -12
- package/types/control/TouchNavigation.d.ts +0 -48
- package/types/control/ZoomControl.d.ts +0 -27
- package/types/control/index.d.ts +0 -17
- package/types/ellipsoid/Ellipsoid.d.ts +0 -146
- package/types/ellipsoid/index.d.ts +0 -3
- package/types/ellipsoid/wgs84.d.ts +0 -6
- package/types/entity/BaseBillboard.d.ts +0 -208
- package/types/entity/Billboard.d.ts +0 -94
- package/types/entity/BillboardHandler.d.ts +0 -78
- package/types/entity/Entity.d.ts +0 -333
- package/types/entity/EntityCollection.d.ts +0 -311
- package/types/entity/Geometry.d.ts +0 -74
- package/types/entity/GeometryHandler.d.ts +0 -76
- package/types/entity/Label.d.ts +0 -189
- package/types/entity/LabelHandler.d.ts +0 -29
- package/types/entity/PointCloud.d.ts +0 -174
- package/types/entity/PointCloudHandler.d.ts +0 -38
- package/types/entity/Polyline.d.ts +0 -306
- package/types/entity/PolylineHandler.d.ts +0 -18
- package/types/entity/Ray.d.ts +0 -124
- package/types/entity/RayHandler.d.ts +0 -67
- package/types/entity/ShapeHandler.d.ts +0 -22
- package/types/entity/Strip.d.ts +0 -119
- 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/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 -94
- package/types/layer/CanvasTiles.d.ts +0 -68
- package/types/layer/GeoImage.d.ts +0 -52
- package/types/layer/GeoTexture2d.d.ts +0 -8
- package/types/layer/GeoVideo.d.ts +0 -55
- package/types/layer/KML.d.ts +0 -63
- package/types/layer/Layer.d.ts +0 -325
- package/types/layer/Material.d.ts +0 -45
- package/types/layer/Vector.d.ts +0 -208
- package/types/layer/WMS.d.ts +0 -63
- package/types/layer/XYZ.d.ts +0 -120
- package/types/layer/index.d.ts +0 -10
- package/types/light/LightSource.d.ts +0 -178
- package/types/math/Line2.d.ts +0 -11
- package/types/math/Line3.d.ts +0 -10
- package/types/math/Mat3.d.ts +0 -65
- package/types/math/Mat4.d.ts +0 -176
- package/types/math/Plane.d.ts +0 -18
- package/types/math/Quat.d.ts +0 -379
- package/types/math/Ray.d.ts +0 -82
- package/types/math/Vec2.d.ts +0 -309
- package/types/math/Vec3.d.ts +0 -460
- package/types/math/Vec4.d.ts +0 -162
- package/types/math/coder.d.ts +0 -43
- 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 -6
- package/types/proj/EPSG4326.d.ts +0 -6
- 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 -298
- package/types/renderer/RendererEvents.d.ts +0 -233
- 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 -577
- package/types/scene/RenderNode.d.ts +0 -142
- package/types/scene/SkyBox.d.ts +0 -10
- package/types/scene/index.d.ts +0 -4
- package/types/segment/Segment.d.ts +0 -279
- package/types/segment/SegmentLonLat.d.ts +0 -16
- 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 -250
- package/types/shapes/Sphere.d.ts +0 -41
- package/types/terrain/BilTerrain.d.ts +0 -7
- package/types/terrain/EmptyTerrain.d.ts +0 -72
- package/types/terrain/Geoid.d.ts +0 -26
- package/types/terrain/GlobusTerrain.d.ts +0 -116
- package/types/terrain/MapboxTerrain.d.ts +0 -7
- 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 -231
- package/types/webgl/Framebuffer.d.ts +0 -135
- package/types/webgl/Handler.d.ts +0 -388
- package/types/webgl/Multisample.d.ts +0 -89
- package/types/webgl/Program.d.ts +0 -155
- package/types/webgl/ProgramController.d.ts +0 -89
- package/types/webgl/callbacks.d.ts +0 -1
- package/types/webgl/index.d.ts +0 -6
- package/types/webgl/types.d.ts +0 -2
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @module og/webgl/Multisample
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
"use strict";
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Class represents multisample framebuffer.
|
|
@@ -16,9 +16,7 @@
|
|
|
16
16
|
* @param {Boolean} [options.useDepth] - Using depth buffer during the rendering.
|
|
17
17
|
*/
|
|
18
18
|
export class Multisample {
|
|
19
|
-
|
|
20
19
|
constructor(handler, options) {
|
|
21
|
-
|
|
22
20
|
options = options || {};
|
|
23
21
|
|
|
24
22
|
/**
|
|
@@ -28,7 +26,9 @@ export class Multisample {
|
|
|
28
26
|
*/
|
|
29
27
|
this.handler = handler;
|
|
30
28
|
|
|
31
|
-
this._internalFormat = options.internalFormat
|
|
29
|
+
this._internalFormat = options.internalFormat
|
|
30
|
+
? options.internalFormat.toUpperCase()
|
|
31
|
+
: "RGBA8";
|
|
32
32
|
|
|
33
33
|
/**
|
|
34
34
|
* Framebuffer object.
|
|
@@ -62,10 +62,11 @@ export class Multisample {
|
|
|
62
62
|
|
|
63
63
|
this._useDepth = options.useDepth != undefined ? options.useDepth : true;
|
|
64
64
|
|
|
65
|
-
this._depthComponent =
|
|
65
|
+
this._depthComponent =
|
|
66
|
+
options.depthComponent != undefined ? options.depthComponent : "DEPTH_COMPONENT16";
|
|
66
67
|
|
|
67
68
|
/**
|
|
68
|
-
* Framebuffer activity.
|
|
69
|
+
* Framebuffer activity.
|
|
69
70
|
* @private
|
|
70
71
|
* @type {boolean}
|
|
71
72
|
*/
|
|
@@ -102,7 +103,6 @@ export class Multisample {
|
|
|
102
103
|
* @private
|
|
103
104
|
*/
|
|
104
105
|
init() {
|
|
105
|
-
|
|
106
106
|
var gl = this.handler.gl;
|
|
107
107
|
|
|
108
108
|
this._glFilter = gl[this._filter];
|
|
@@ -115,8 +115,19 @@ export class Multisample {
|
|
|
115
115
|
for (var i = 0; i < this.renderbuffers.length; i++) {
|
|
116
116
|
let rb = gl.createRenderbuffer();
|
|
117
117
|
gl.bindRenderbuffer(gl.RENDERBUFFER, rb);
|
|
118
|
-
gl.renderbufferStorageMultisample(
|
|
119
|
-
|
|
118
|
+
gl.renderbufferStorageMultisample(
|
|
119
|
+
gl.RENDERBUFFER,
|
|
120
|
+
this._msaa,
|
|
121
|
+
gl[this._internalFormat],
|
|
122
|
+
this._width,
|
|
123
|
+
this._height
|
|
124
|
+
);
|
|
125
|
+
gl.framebufferRenderbuffer(
|
|
126
|
+
gl.FRAMEBUFFER,
|
|
127
|
+
gl.COLOR_ATTACHMENT0 + i,
|
|
128
|
+
gl.RENDERBUFFER,
|
|
129
|
+
rb
|
|
130
|
+
);
|
|
120
131
|
colorAttachments.push(gl.COLOR_ATTACHMENT0 + i);
|
|
121
132
|
this.renderbuffers[i] = rb;
|
|
122
133
|
gl.bindRenderbuffer(gl.RENDERBUFFER, null);
|
|
@@ -126,8 +137,19 @@ export class Multisample {
|
|
|
126
137
|
if (this._useDepth) {
|
|
127
138
|
this._depthRenderbuffer = gl.createRenderbuffer();
|
|
128
139
|
gl.bindRenderbuffer(gl.RENDERBUFFER, this._depthRenderbuffer);
|
|
129
|
-
gl.renderbufferStorageMultisample(
|
|
130
|
-
|
|
140
|
+
gl.renderbufferStorageMultisample(
|
|
141
|
+
gl.RENDERBUFFER,
|
|
142
|
+
this._msaa,
|
|
143
|
+
gl[this._depthComponent],
|
|
144
|
+
this._width,
|
|
145
|
+
this._height
|
|
146
|
+
);
|
|
147
|
+
gl.framebufferRenderbuffer(
|
|
148
|
+
gl.FRAMEBUFFER,
|
|
149
|
+
gl.DEPTH_ATTACHMENT,
|
|
150
|
+
gl.RENDERBUFFER,
|
|
151
|
+
this._depthRenderbuffer
|
|
152
|
+
);
|
|
131
153
|
gl.bindRenderbuffer(gl.RENDERBUFFER, null);
|
|
132
154
|
}
|
|
133
155
|
|
|
@@ -137,7 +159,6 @@ export class Multisample {
|
|
|
137
159
|
}
|
|
138
160
|
|
|
139
161
|
blitTo(framebuffer, attachmentIndex = 0) {
|
|
140
|
-
|
|
141
162
|
let gl = this.handler.gl;
|
|
142
163
|
|
|
143
164
|
gl.bindFramebuffer(gl.READ_FRAMEBUFFER, this._fbo);
|
|
@@ -147,9 +168,16 @@ export class Multisample {
|
|
|
147
168
|
gl.clearBufferfv(gl.COLOR, 0, [0.0, 0.0, 0.0, 1.0]);
|
|
148
169
|
|
|
149
170
|
gl.blitFramebuffer(
|
|
150
|
-
0,
|
|
151
|
-
0,
|
|
152
|
-
|
|
171
|
+
0,
|
|
172
|
+
0,
|
|
173
|
+
this._width,
|
|
174
|
+
this._height,
|
|
175
|
+
0,
|
|
176
|
+
0,
|
|
177
|
+
framebuffer._width,
|
|
178
|
+
framebuffer._height,
|
|
179
|
+
gl.COLOR_BUFFER_BIT,
|
|
180
|
+
this._glFilter
|
|
153
181
|
);
|
|
154
182
|
|
|
155
183
|
gl.bindFramebuffer(gl.FRAMEBUFFER, null);
|
|
@@ -229,4 +257,4 @@ export class Multisample {
|
|
|
229
257
|
gl.viewport(0, 0, h.canvas.width, h.canvas.height);
|
|
230
258
|
}
|
|
231
259
|
}
|
|
232
|
-
}
|
|
260
|
+
}
|
package/src/og/webgl/Program.js
CHANGED
|
@@ -2,20 +2,13 @@
|
|
|
2
2
|
* @module og/webgl/Program
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
"use strict";
|
|
6
6
|
|
|
7
|
-
import { callbacks } from
|
|
8
|
-
import { cons } from
|
|
9
|
-
import { typeStr } from
|
|
7
|
+
import { callbacks } from "./callbacks.js";
|
|
8
|
+
import { cons } from "../cons.js";
|
|
9
|
+
import { typeStr, types } from "./types.js";
|
|
10
10
|
|
|
11
|
-
const itemTypes = [
|
|
12
|
-
"BYTE",
|
|
13
|
-
"SHORT",
|
|
14
|
-
"UNSIGNED_BYTE",
|
|
15
|
-
"UNSIGNED_SHORT",
|
|
16
|
-
"FLOAT",
|
|
17
|
-
"HALF_FLOAT"
|
|
18
|
-
];
|
|
11
|
+
const itemTypes = ["BYTE", "SHORT", "UNSIGNED_BYTE", "UNSIGNED_SHORT", "FLOAT", "HALF_FLOAT"];
|
|
19
12
|
|
|
20
13
|
/**
|
|
21
14
|
* Represents more comfortable using WebGL shader program.
|
|
@@ -46,9 +39,11 @@ class Program {
|
|
|
46
39
|
*/
|
|
47
40
|
this._attributes = {};
|
|
48
41
|
for (let t in material.attributes) {
|
|
49
|
-
if (
|
|
50
|
-
typeof
|
|
51
|
-
|
|
42
|
+
if (
|
|
43
|
+
typeof material.attributes[t] === "string" ||
|
|
44
|
+
typeof material.attributes[t] === "number"
|
|
45
|
+
) {
|
|
46
|
+
this._attributes[t] = { type: material.attributes[t] };
|
|
52
47
|
} else {
|
|
53
48
|
this._attributes[t] = material.attributes[t];
|
|
54
49
|
}
|
|
@@ -61,9 +56,11 @@ class Program {
|
|
|
61
56
|
*/
|
|
62
57
|
this._uniforms = {};
|
|
63
58
|
for (let t in material.uniforms) {
|
|
64
|
-
if (
|
|
65
|
-
typeof
|
|
66
|
-
|
|
59
|
+
if (
|
|
60
|
+
typeof material.uniforms[t] === "string" ||
|
|
61
|
+
typeof material.uniforms[t] === "number"
|
|
62
|
+
) {
|
|
63
|
+
this._uniforms[t] = { type: material.uniforms[t] };
|
|
67
64
|
} else {
|
|
68
65
|
this._uniforms[t] = material.uniforms[t];
|
|
69
66
|
}
|
|
@@ -117,6 +114,13 @@ class Program {
|
|
|
117
114
|
* @type {Array.<Object>}
|
|
118
115
|
*/
|
|
119
116
|
this._attribArrays = [];
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Program attributes divisor.
|
|
120
|
+
* @private
|
|
121
|
+
* @type {Array.<Object>}
|
|
122
|
+
*/
|
|
123
|
+
this._attribDivisor = [];
|
|
120
124
|
}
|
|
121
125
|
|
|
122
126
|
/**
|
|
@@ -128,7 +132,14 @@ class Program {
|
|
|
128
132
|
static bindBuffer(program, variable) {
|
|
129
133
|
var gl = program.gl;
|
|
130
134
|
gl.bindBuffer(gl.ARRAY_BUFFER, variable.value);
|
|
131
|
-
gl.vertexAttribPointer(
|
|
135
|
+
gl.vertexAttribPointer(
|
|
136
|
+
variable._pName,
|
|
137
|
+
variable.value.itemSize,
|
|
138
|
+
variable.itemType,
|
|
139
|
+
variable.normalized,
|
|
140
|
+
0,
|
|
141
|
+
0
|
|
142
|
+
);
|
|
132
143
|
}
|
|
133
144
|
|
|
134
145
|
/**
|
|
@@ -196,7 +207,9 @@ class Program {
|
|
|
196
207
|
this.gl.shaderSource(shader, src);
|
|
197
208
|
this.gl.compileShader(shader);
|
|
198
209
|
if (!this.gl.getShaderParameter(shader, this.gl.COMPILE_STATUS)) {
|
|
199
|
-
cons.logErr(
|
|
210
|
+
cons.logErr(
|
|
211
|
+
"og/Program/Program:" + this.name + " - " + this.gl.getShaderInfoLog(shader) + "."
|
|
212
|
+
);
|
|
200
213
|
return false;
|
|
201
214
|
}
|
|
202
215
|
return true;
|
|
@@ -237,9 +250,9 @@ class Program {
|
|
|
237
250
|
disableAttribArrays() {
|
|
238
251
|
var gl = this.gl;
|
|
239
252
|
var a = this._attribArrays;
|
|
240
|
-
|
|
241
|
-
while (i--) {
|
|
253
|
+
for (let i = 0, len = a.length; i < len; i++) {
|
|
242
254
|
gl.disableVertexAttribArray(a[i]);
|
|
255
|
+
gl.vertexAttribDivisor(a[i], 0);
|
|
243
256
|
}
|
|
244
257
|
}
|
|
245
258
|
|
|
@@ -250,9 +263,10 @@ class Program {
|
|
|
250
263
|
enableAttribArrays() {
|
|
251
264
|
var gl = this.gl;
|
|
252
265
|
var a = this._attribArrays;
|
|
253
|
-
var
|
|
254
|
-
|
|
266
|
+
var d = this._attribDivisor;
|
|
267
|
+
for (let i = 0, len = a.length; i < len; i++) {
|
|
255
268
|
gl.enableVertexAttribArray(a[i]);
|
|
269
|
+
gl.vertexAttribDivisor(a[i], d[i]);
|
|
256
270
|
}
|
|
257
271
|
}
|
|
258
272
|
|
|
@@ -280,7 +294,13 @@ class Program {
|
|
|
280
294
|
gl.linkProgram(this._p);
|
|
281
295
|
|
|
282
296
|
if (!gl.getProgramParameter(this._p, gl.LINK_STATUS)) {
|
|
283
|
-
cons.logErr(
|
|
297
|
+
cons.logErr(
|
|
298
|
+
"og/Program/Program:" +
|
|
299
|
+
this.name +
|
|
300
|
+
" - couldn't initialise shaders. " +
|
|
301
|
+
gl.getProgramInfoLog(this._p) +
|
|
302
|
+
"."
|
|
303
|
+
);
|
|
284
304
|
gl.deleteProgram(this._p);
|
|
285
305
|
return;
|
|
286
306
|
}
|
|
@@ -293,25 +313,47 @@ class Program {
|
|
|
293
313
|
|
|
294
314
|
this._attributes[a]._callback = Program.bindBuffer;
|
|
295
315
|
|
|
296
|
-
let itemTypeStr = this._attributes[a].itemType
|
|
316
|
+
let itemTypeStr = this._attributes[a].itemType
|
|
317
|
+
? this._attributes[a].itemType.trim().toUpperCase()
|
|
318
|
+
: "FLOAT";
|
|
319
|
+
|
|
297
320
|
if (itemTypes.indexOf(itemTypeStr) == -1) {
|
|
298
|
-
cons.logErr(
|
|
321
|
+
cons.logErr(
|
|
322
|
+
`og/Program/Program: ${this.name}- attribute '${a}', item type ${this._attributes[a].itemType} not exists.`
|
|
323
|
+
);
|
|
299
324
|
this._attributes[a].itemType = gl.FLOAT;
|
|
300
325
|
} else {
|
|
301
326
|
this._attributes[a].itemType = gl[itemTypeStr];
|
|
302
327
|
}
|
|
303
328
|
|
|
304
329
|
this._attributes[a].normalized = this._attributes[a].normalized || false;
|
|
330
|
+
this._attributes[a].divisor = this._attributes[a].divisor || 0;
|
|
305
331
|
|
|
306
332
|
this._p[a] = gl.getAttribLocation(this._p, a);
|
|
307
333
|
|
|
308
334
|
if (this._p[a] == undefined) {
|
|
309
|
-
cons.logErr(
|
|
335
|
+
cons.logErr(
|
|
336
|
+
"og/Program/Program:" + this.name + " - attribute '" + a + "' is not exists."
|
|
337
|
+
);
|
|
310
338
|
gl.deleteProgram(this._p);
|
|
311
339
|
return;
|
|
312
340
|
}
|
|
313
341
|
|
|
314
|
-
this.
|
|
342
|
+
let type = this._attributes[a].type;
|
|
343
|
+
if (typeof type === "string") {
|
|
344
|
+
type = typeStr[type.trim().toLowerCase()];
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
let d = this._attributes[a].divisor;
|
|
348
|
+
if (type === types.MAT4) {
|
|
349
|
+
let loc = this._p[a];
|
|
350
|
+
this._attribArrays.push(loc, loc + 1, loc + 2, loc + 3);
|
|
351
|
+
this._attribDivisor.push(d, d, d, d);
|
|
352
|
+
} else {
|
|
353
|
+
this._attribArrays.push(this._p[a]);
|
|
354
|
+
this._attribDivisor.push(d);
|
|
355
|
+
}
|
|
356
|
+
|
|
315
357
|
gl.enableVertexAttribArray(this._p[a]);
|
|
316
358
|
|
|
317
359
|
this._attributes[a]._pName = this._p[a];
|
|
@@ -321,8 +363,9 @@ class Program {
|
|
|
321
363
|
for (var u in this._uniforms) {
|
|
322
364
|
//this.uniforms[u]._name = u;
|
|
323
365
|
|
|
324
|
-
if (typeof
|
|
325
|
-
this._uniforms[u]._callback =
|
|
366
|
+
if (typeof this._uniforms[u].type === "string") {
|
|
367
|
+
this._uniforms[u]._callback =
|
|
368
|
+
callbacks.u[typeStr[this._uniforms[u].type.trim().toLowerCase()]];
|
|
326
369
|
} else {
|
|
327
370
|
this._uniforms[u]._callback = callbacks.u[this._uniforms[u].type];
|
|
328
371
|
}
|
|
@@ -331,7 +374,9 @@ class Program {
|
|
|
331
374
|
this._p[u] = gl.getUniformLocation(this._p, u);
|
|
332
375
|
|
|
333
376
|
if (this._p[u] == undefined) {
|
|
334
|
-
cons.logErr(
|
|
377
|
+
cons.logErr(
|
|
378
|
+
"og/Program/Program:" + this.name + " - uniform '" + u + "' is not exists."
|
|
379
|
+
);
|
|
335
380
|
gl.deleteProgram(this._p);
|
|
336
381
|
return;
|
|
337
382
|
}
|
|
@@ -348,4 +393,4 @@ class Program {
|
|
|
348
393
|
}
|
|
349
394
|
}
|
|
350
395
|
|
|
351
|
-
export { Program };
|
|
396
|
+
export { Program };
|
|
@@ -93,6 +93,6 @@ callbacks.a[types.VEC3] = function (program, variable) {
|
|
|
93
93
|
program.gl.vertexAttrib3fv(variable._pName, variable.value);
|
|
94
94
|
};
|
|
95
95
|
|
|
96
|
-
callbacks.a[types.VEC4] = function (program, variable) {
|
|
97
|
-
program.gl.vertexAttrib4fv(variable._pName, variable.value);
|
|
98
|
-
};
|
|
96
|
+
//callbacks.a[types.VEC4] = function (program, variable) {
|
|
97
|
+
// program.gl.vertexAttrib4fv(variable._pName, variable.value);
|
|
98
|
+
//};
|
package/types/Clock.d.ts
DELETED
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Class represents application timer that stores custom current julian datetime, and time speed multiplier.
|
|
3
|
-
* @class
|
|
4
|
-
* @param {Object} [params] - Clock parameters:
|
|
5
|
-
* @param {number} [params.startDate=0.0] - Julian start date.
|
|
6
|
-
* @param {number} [params.endDate=0.0] - Julian end date.
|
|
7
|
-
* @param {number} [params.currentDate] - Julian current date. Default: current date.
|
|
8
|
-
* @param {number} [params.multiplier=1.0] - Time speed multiolier.
|
|
9
|
-
*/
|
|
10
|
-
export class Clock {
|
|
11
|
-
static set _staticCounter(arg: any);
|
|
12
|
-
static get _staticCounter(): any;
|
|
13
|
-
/**
|
|
14
|
-
*
|
|
15
|
-
* @param {Object} [params] - Clock parameters:
|
|
16
|
-
*/
|
|
17
|
-
constructor(params?: any);
|
|
18
|
-
_id: number;
|
|
19
|
-
/**
|
|
20
|
-
* Clock name.
|
|
21
|
-
* @public
|
|
22
|
-
* @type {string}
|
|
23
|
-
*/
|
|
24
|
-
public name: string;
|
|
25
|
-
/**
|
|
26
|
-
* Clock events.
|
|
27
|
-
* @public
|
|
28
|
-
* @type {Events}
|
|
29
|
-
*/
|
|
30
|
-
public events: Events;
|
|
31
|
-
/**
|
|
32
|
-
* Start julian date clock loop.
|
|
33
|
-
* @public
|
|
34
|
-
* @type {number}
|
|
35
|
-
*/
|
|
36
|
-
public startDate: number;
|
|
37
|
-
/**
|
|
38
|
-
* End julian date clock loop.
|
|
39
|
-
* @public
|
|
40
|
-
* @type {number}
|
|
41
|
-
*/
|
|
42
|
-
public endDate: number;
|
|
43
|
-
/**
|
|
44
|
-
* Current julian datetime.
|
|
45
|
-
* @public
|
|
46
|
-
* @type {number}
|
|
47
|
-
*/
|
|
48
|
-
public currentDate: number;
|
|
49
|
-
/**
|
|
50
|
-
* Timer speed multiplier.
|
|
51
|
-
* @public
|
|
52
|
-
* @type {number}
|
|
53
|
-
*/
|
|
54
|
-
public multiplier: number;
|
|
55
|
-
/**
|
|
56
|
-
* Animation frame delta time.
|
|
57
|
-
* @public
|
|
58
|
-
* @readonly
|
|
59
|
-
* @type {number}
|
|
60
|
-
*/
|
|
61
|
-
public readonly deltaTicks: number;
|
|
62
|
-
/**
|
|
63
|
-
* Timer activity.
|
|
64
|
-
* @public
|
|
65
|
-
* @type {boolean}
|
|
66
|
-
*/
|
|
67
|
-
public active: boolean;
|
|
68
|
-
_intervalDelay: number;
|
|
69
|
-
_intervalStart: number;
|
|
70
|
-
_intervalCallback: any;
|
|
71
|
-
clearInterval(): void;
|
|
72
|
-
setInterval(delay: any, callback: any): void;
|
|
73
|
-
/**
|
|
74
|
-
* Sets current clock datetime.
|
|
75
|
-
* @public
|
|
76
|
-
* @param {Object} date - JavaScript Date object.
|
|
77
|
-
*/
|
|
78
|
-
public setDate(date: any): void;
|
|
79
|
-
/**
|
|
80
|
-
* Returns current application date.
|
|
81
|
-
* @public
|
|
82
|
-
* @returns {Date} - Current date.
|
|
83
|
-
*/
|
|
84
|
-
public getDate(): Date;
|
|
85
|
-
reset(): void;
|
|
86
|
-
_tick(dt: any): void;
|
|
87
|
-
/**
|
|
88
|
-
* @public
|
|
89
|
-
* @param {Clock} clock - Clock instance to compare.
|
|
90
|
-
* @returns {boolean} - Returns true if a clock is the same instance.
|
|
91
|
-
*/
|
|
92
|
-
public equal(clock: Clock): boolean;
|
|
93
|
-
}
|
|
94
|
-
import { Events } from "./Events.js";
|
package/types/Deferred.d.ts
DELETED
package/types/Events.d.ts
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Base events class to handle custom events.
|
|
3
|
-
* @class
|
|
4
|
-
*/
|
|
5
|
-
export class Events {
|
|
6
|
-
static set _staticCounter(arg: any);
|
|
7
|
-
static get _staticCounter(): any;
|
|
8
|
-
/**
|
|
9
|
-
*
|
|
10
|
-
* @param {Array.<string>} [eventNames] - Event names that could be dispatched.
|
|
11
|
-
* @param {*} [sender]
|
|
12
|
-
*/
|
|
13
|
-
constructor(eventNames?: Array<string>, sender?: any);
|
|
14
|
-
/**
|
|
15
|
-
* Registered event names.
|
|
16
|
-
* @protected
|
|
17
|
-
* @type {Array.<string>}
|
|
18
|
-
*/
|
|
19
|
-
protected _eventNames: Array<string>;
|
|
20
|
-
_sender: any;
|
|
21
|
-
/**
|
|
22
|
-
* Stop propagation flag
|
|
23
|
-
* @protected
|
|
24
|
-
* @type {boolean}
|
|
25
|
-
*/
|
|
26
|
-
protected _stopPropagation: boolean;
|
|
27
|
-
_stampCache: {};
|
|
28
|
-
__id: number;
|
|
29
|
-
bindSender(sender: any): void;
|
|
30
|
-
/**
|
|
31
|
-
* Function that creates event object properties that would be dispatched.
|
|
32
|
-
* @public
|
|
33
|
-
* @param {Array.<string>} eventNames - Specified event names list.
|
|
34
|
-
*/
|
|
35
|
-
public registerNames(eventNames: Array<string>): void;
|
|
36
|
-
_getStamp(name: any, id: any, ogid: any): string;
|
|
37
|
-
/**
|
|
38
|
-
* Returns true if event callback has stamped.
|
|
39
|
-
* @protected
|
|
40
|
-
* @param {Object} name - Event identifier.
|
|
41
|
-
* @param {Object} obj - Event callback.
|
|
42
|
-
* @return {boolean} -
|
|
43
|
-
*/
|
|
44
|
-
protected _stamp(name: any, obj: any): boolean;
|
|
45
|
-
/**
|
|
46
|
-
* Attach listener.
|
|
47
|
-
* @public
|
|
48
|
-
* @param {string} name - Event name to listen.
|
|
49
|
-
* @param {eventCallback} callback - Event callback function.
|
|
50
|
-
* @param {Object} sender - Event callback function owner.
|
|
51
|
-
*/
|
|
52
|
-
public on(name: string, callback: any, sender: any, priority?: number): void;
|
|
53
|
-
/**
|
|
54
|
-
* Stop listening event name with specified callback function.
|
|
55
|
-
* @public
|
|
56
|
-
* @param {string} name - Event name.
|
|
57
|
-
* @param {eventCallback} callback - Attached event callback.
|
|
58
|
-
*/
|
|
59
|
-
public off(name: string, callback: any): void;
|
|
60
|
-
/**
|
|
61
|
-
* Dispatch event.
|
|
62
|
-
* @public
|
|
63
|
-
* @param {Object} event - Event instance property that created by event name.
|
|
64
|
-
* @param {Object} [obj] - Event object.
|
|
65
|
-
*/
|
|
66
|
-
public dispatch(event: any, ...args: any[]): boolean;
|
|
67
|
-
/**
|
|
68
|
-
* Brakes events propagation.
|
|
69
|
-
* @public
|
|
70
|
-
*/
|
|
71
|
-
public stopPropagation(): void;
|
|
72
|
-
/**
|
|
73
|
-
* Removes all events.
|
|
74
|
-
* @public
|
|
75
|
-
*/
|
|
76
|
-
public clear(): void;
|
|
77
|
-
}
|
package/types/Extent.d.ts
DELETED
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Represents geographical coordinates extent.
|
|
3
|
-
* @class
|
|
4
|
-
* @param {LonLat} [sw] - South West extent corner coordiantes.
|
|
5
|
-
* @param {LonLat} [ne] - North East extent corner coordiantes.
|
|
6
|
-
*/
|
|
7
|
-
export class Extent {
|
|
8
|
-
/**
|
|
9
|
-
* Whole mercator extent.
|
|
10
|
-
* @const
|
|
11
|
-
*/
|
|
12
|
-
static get FULL_MERC(): Extent;
|
|
13
|
-
/**
|
|
14
|
-
* Degrees extent from north mercator limit to north pole.
|
|
15
|
-
* @const
|
|
16
|
-
*/
|
|
17
|
-
static get NORTH_POLE_DEG(): Extent;
|
|
18
|
-
/**
|
|
19
|
-
* Degrees extent from south pole to south mercator limit.
|
|
20
|
-
* @const
|
|
21
|
-
*/
|
|
22
|
-
static get SOUTH_POLE_DEG(): Extent;
|
|
23
|
-
/**
|
|
24
|
-
* Creates extent instance from values in array.
|
|
25
|
-
* @static
|
|
26
|
-
* @param {Array.<number>} arr - South west and north east longitude and latidudes packed in array. (exactly 4 entries)
|
|
27
|
-
* @return {Extent} Extent object.
|
|
28
|
-
*/
|
|
29
|
-
static createFromArray(arr: Array<number>): Extent;
|
|
30
|
-
/**
|
|
31
|
-
* Creates bound extent instance by coordinate array.
|
|
32
|
-
* @static
|
|
33
|
-
* @param {Array.<LonLat>} arr - Coordinate array.
|
|
34
|
-
* @return {Extent} Extent object.
|
|
35
|
-
*/
|
|
36
|
-
static createByCoordinates(arr: Array<LonLat>): Extent;
|
|
37
|
-
/**
|
|
38
|
-
* Creates bound extent instance by coordinate array.
|
|
39
|
-
* @static
|
|
40
|
-
* @param {Array.<Array<number>>} arr - Coordinate array. (exactly 2 entries)
|
|
41
|
-
* @return {Extent} Extent object.
|
|
42
|
-
*/
|
|
43
|
-
static createByCoordinatesArr(arr: Array<Array<number>>): Extent;
|
|
44
|
-
/**
|
|
45
|
-
* Creates extent by meractor grid tile coordinates.
|
|
46
|
-
* @static
|
|
47
|
-
* @param {number} x -
|
|
48
|
-
* @param {number} y -
|
|
49
|
-
* @param {number} z -
|
|
50
|
-
* @param {number} width -
|
|
51
|
-
* @param {number} height -
|
|
52
|
-
* @returns {Extent} -
|
|
53
|
-
*/
|
|
54
|
-
static fromTile(x: number, y: number, z: number, width: number, height: number): Extent;
|
|
55
|
-
/**
|
|
56
|
-
* @param {LonLat} [sw] - South West extent corner coordiantes.
|
|
57
|
-
* @param {LonLat} [ne] - North East extent corner coordiantes.
|
|
58
|
-
*/
|
|
59
|
-
constructor(sw?: LonLat, ne?: LonLat);
|
|
60
|
-
/**
|
|
61
|
-
* @public
|
|
62
|
-
*/
|
|
63
|
-
public southWest: LonLat;
|
|
64
|
-
/**
|
|
65
|
-
* @public
|
|
66
|
-
*/
|
|
67
|
-
public northEast: LonLat;
|
|
68
|
-
/**
|
|
69
|
-
* Sets current bounding extent object by coordinate array.
|
|
70
|
-
* @public
|
|
71
|
-
* @param {Array.<LonLat>} arr - Coordinate array.
|
|
72
|
-
* @return {Extent} Current extent.
|
|
73
|
-
*/
|
|
74
|
-
public setByCoordinates(arr: Array<LonLat>): Extent;
|
|
75
|
-
/**
|
|
76
|
-
* Determines if point inside extent.
|
|
77
|
-
* @public
|
|
78
|
-
* @param {LonLat} lonlat - Coordinate point.
|
|
79
|
-
* @return {boolean} Returns true if point inside extent.
|
|
80
|
-
*/
|
|
81
|
-
public isInside(lonlat: LonLat): boolean;
|
|
82
|
-
/**
|
|
83
|
-
* Returns true if two extent overlap each other.
|
|
84
|
-
* @public
|
|
85
|
-
* @param {Extent} e - Another extent.
|
|
86
|
-
* @return {boolean} -
|
|
87
|
-
*/
|
|
88
|
-
public overlaps(e: Extent): boolean;
|
|
89
|
-
/**
|
|
90
|
-
* Gets extent width.
|
|
91
|
-
* @public
|
|
92
|
-
* @return {number} Extent width.
|
|
93
|
-
*/
|
|
94
|
-
public getWidth(): number;
|
|
95
|
-
/**
|
|
96
|
-
* Gets extent height.
|
|
97
|
-
* @public
|
|
98
|
-
* @return {number} Extent height.
|
|
99
|
-
*/
|
|
100
|
-
public getHeight(): number;
|
|
101
|
-
/**
|
|
102
|
-
* Creates clone instance of the current extent.
|
|
103
|
-
* @public
|
|
104
|
-
* @return {Extent} Extent clone.
|
|
105
|
-
*/
|
|
106
|
-
public clone(): Extent;
|
|
107
|
-
/**
|
|
108
|
-
* Gets the center coordinate of the extent.
|
|
109
|
-
* @public
|
|
110
|
-
* @return {number} Center coordinate.
|
|
111
|
-
*/
|
|
112
|
-
public getCenter(): number;
|
|
113
|
-
/**
|
|
114
|
-
* @public
|
|
115
|
-
*/
|
|
116
|
-
public getNorthWest(): LonLat;
|
|
117
|
-
/**
|
|
118
|
-
* @public
|
|
119
|
-
*/
|
|
120
|
-
public getNorthEast(): LonLat;
|
|
121
|
-
getSouthWest(): LonLat;
|
|
122
|
-
/**
|
|
123
|
-
* @public
|
|
124
|
-
*/
|
|
125
|
-
public getSouthEast(): LonLat;
|
|
126
|
-
/**
|
|
127
|
-
* @public
|
|
128
|
-
*/
|
|
129
|
-
public getNorth(): number;
|
|
130
|
-
getEast(): number;
|
|
131
|
-
/**
|
|
132
|
-
* @public
|
|
133
|
-
*/
|
|
134
|
-
public getWest(): number;
|
|
135
|
-
/**
|
|
136
|
-
* @public
|
|
137
|
-
*/
|
|
138
|
-
public getSouth(): number;
|
|
139
|
-
/**
|
|
140
|
-
* Returns extents are equals.
|
|
141
|
-
* @param {Extent} extent - Extent.
|
|
142
|
-
* @returns {boolean} -
|
|
143
|
-
*/
|
|
144
|
-
equals(extent: Extent): boolean;
|
|
145
|
-
/**
|
|
146
|
-
* Converts extent coordinates to mercator projection coordinates.
|
|
147
|
-
* @public
|
|
148
|
-
* @return {Extent} New instance of the current extent.
|
|
149
|
-
*/
|
|
150
|
-
public forwardMercator(): Extent;
|
|
151
|
-
/**
|
|
152
|
-
* Converts extent coordinates from mercator projection to degrees.
|
|
153
|
-
* @public
|
|
154
|
-
* @return {Extent} New instance of the current extent.
|
|
155
|
-
*/
|
|
156
|
-
public inverseMercator(): Extent;
|
|
157
|
-
/**
|
|
158
|
-
* Gets cartesian bounding bounds of the current ellipsoid.
|
|
159
|
-
* @public
|
|
160
|
-
* @param {Ellipsoid} ellipsoid - Ellipsoid.
|
|
161
|
-
* @return {Array.<number>} Cartesian 3d coordinate array. (exactly 6 entries)
|
|
162
|
-
*/
|
|
163
|
-
public getCartesianBounds(ellipsoid: any): Array<number>;
|
|
164
|
-
toString(): string;
|
|
165
|
-
}
|
|
166
|
-
import { LonLat } from "./LonLat.js";
|