@pirireis/webglobeplugins 0.9.11 → 0.9.12
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/Math/angle-calculation.js +8 -8
- package/Math/arc.js +18 -18
- package/Math/bounds/line-bbox.js +78 -80
- package/Math/constants.js +3 -3
- package/Math/juction/arc-plane.js +23 -23
- package/Math/juction/line-sphere.js +11 -11
- package/Math/juction/plane-plane.js +11 -11
- package/Math/line.js +14 -16
- package/Math/methods.js +65 -70
- package/Math/plane.js +16 -18
- package/Math/quaternion.js +45 -49
- package/Math/utils.js +2 -2
- package/Math/vec3.js +42 -45
- package/algorithms/search-binary.js +4 -4
- package/altitude-locator/draw-subset-obj.js +7 -8
- package/altitude-locator/plugin.js +98 -114
- package/arrowfield/adaptor.js +3 -4
- package/arrowfield/index.js +2 -2
- package/arrowfield/plugin.js +62 -65
- package/bearing-line/index.js +1 -1
- package/bearing-line/plugin.js +200 -226
- package/circle-line-chain/chain-list-map.js +82 -88
- package/circle-line-chain/plugin.js +134 -165
- package/circle-line-chain/util.js +1 -1
- package/compass-rose/compass-rose-padding-flat.js +108 -133
- package/compass-rose/compass-text-writer.js +62 -70
- package/compass-rose/index.js +2 -2
- package/compassrose/compassrose.js +46 -50
- package/compassrose/index.js +1 -1
- package/heatwave/index.js +2 -2
- package/heatwave/isobar/objectarraylabels.js +44 -48
- package/heatwave/isobar/plugin.js +104 -123
- package/heatwave/isobar/quadtreecontours.js +76 -92
- package/heatwave/plugins/heatwaveglobeshell.js +69 -87
- package/index.js +11 -11
- package/package.json +1 -1
- package/partialrings/buffer-manager.js +32 -64
- package/partialrings/index.js +1 -1
- package/partialrings/plugin.js +48 -84
- package/partialrings/program.js +136 -47
- package/pin/pin-object-array.js +83 -86
- package/pin/pin-point-totem.js +21 -22
- package/point-heat-map/adaptors/timetracksplugin-format-to-this.js +10 -10
- package/point-heat-map/plugin-webworker.js +40 -45
- package/point-heat-map/point-to-heat-map-flow.js +40 -42
- package/point-tracks/key-methods.js +1 -1
- package/point-tracks/plugin.js +137 -162
- package/programs/arrowfield/index.js +1 -1
- package/programs/arrowfield/logic.js +170 -62
- package/programs/arrowfield/object.js +33 -35
- package/programs/data2legend/density-to-legend.js +45 -21
- package/programs/data2legend/point-to-density-texture.js +52 -27
- package/programs/float2legendwithratio/index.js +1 -1
- package/programs/float2legendwithratio/logic.js +88 -42
- package/programs/float2legendwithratio/object.js +43 -46
- package/programs/globe-util/is-globe-moved.js +10 -11
- package/programs/globeshell/index.js +1 -1
- package/programs/globeshell/wiggle/index.js +1 -1
- package/programs/globeshell/wiggle/logic.js +191 -98
- package/programs/globeshell/wiggle/object.js +33 -35
- package/programs/helpers/blender/program.js +36 -19
- package/programs/helpers/fadeaway/index.js +1 -1
- package/programs/helpers/fadeaway/logic.js +35 -13
- package/programs/helpers/fadeaway/object.js +9 -10
- package/programs/helpers/index.js +1 -1
- package/programs/index.js +8 -8
- package/programs/line-on-globe/angled-line.js +91 -32
- package/programs/line-on-globe/circle-accurate-3d.js +82 -32
- package/programs/line-on-globe/circle-accurate-flat.js +108 -50
- package/programs/line-on-globe/circle-accurate.js +103 -33
- package/programs/line-on-globe/circle.js +97 -32
- package/programs/line-on-globe/degree-padding-around-circle-3d.js +83 -33
- package/programs/line-on-globe/lines-color-instanced-flat.js +79 -34
- package/programs/line-on-globe/linestrip.js +111 -45
- package/programs/line-on-globe/naive-accurate-flexible.js +120 -50
- package/programs/line-on-globe/to-the-surface.js +58 -29
- package/programs/line-on-globe/util.js +1 -1
- package/programs/picking/pickable-renderer.js +117 -33
- package/programs/point-on-globe/element-globe-surface-glow.js +78 -38
- package/programs/point-on-globe/element-point-glow.js +103 -35
- package/programs/point-on-globe/square-pixel-point.js +76 -27
- package/programs/programcache.js +13 -13
- package/programs/rings/distancering/circleflatprogram.js +63 -21
- package/programs/rings/distancering/circlepaddingfreeangleprogram.js +156 -145
- package/programs/rings/distancering/circlepaddysharedbuffer.js +121 -197
- package/programs/rings/distancering/index.js +4 -4
- package/programs/rings/distancering/paddyflatprogram.js +73 -20
- package/programs/rings/distancering/paddyflatprogram2d.js +75 -22
- package/programs/rings/distancering/paddyflatprogram3d.js +73 -20
- package/programs/rings/partial-ring/piece-of-pie.js +137 -35
- package/programs/totems/camerauniformblock.js +64 -51
- package/programs/totems/canvas-webglobe-info.js +48 -40
- package/programs/totems/gpu-selection-uniform-block.js +44 -40
- package/programs/totems/index.js +1 -1
- package/programs/two-d/pixel-padding-for-compass.js +90 -29
- package/programs/util.js +6 -7
- package/programs/vectorfields/index.js +1 -1
- package/programs/vectorfields/logics/drawrectangleparticles.js +70 -29
- package/programs/vectorfields/logics/index.js +3 -3
- package/programs/vectorfields/logics/pixelbased.js +91 -35
- package/programs/vectorfields/logics/ubo.js +31 -25
- package/programs/vectorfields/pingpongbuffermanager.js +30 -34
- package/rangerings/index.js +4 -4
- package/rangerings/plugin.js +202 -258
- package/rangerings/rangeringangletext.js +108 -120
- package/rangerings/ring-account.js +52 -69
- package/shaders/fragment-toy/firework.js +55 -1
- package/shaders/fragment-toy/singularity.js +55 -1
- package/timetracks/adaptors-line-strip.js +26 -37
- package/timetracks/adaptors.js +47 -61
- package/timetracks/index.js +4 -4
- package/timetracks/plugin-line-strip.js +63 -71
- package/timetracks/plugin.js +69 -77
- package/timetracks/program-line-strip.js +296 -103
- package/timetracks/program.js +419 -113
- package/timetracks/programpoint-line-strip.js +97 -44
- package/timetracks/programpoint.js +90 -44
- package/util/account/bufferoffsetmanager.js +72 -95
- package/util/account/index.js +1 -1
- package/util/account/single-attribute-buffer-management/buffer-manager.js +44 -44
- package/util/account/single-attribute-buffer-management/buffer-orchestrator.js +68 -94
- package/util/account/single-attribute-buffer-management/index.js +3 -3
- package/util/account/single-attribute-buffer-management/object-store.js +29 -30
- package/util/account/util.js +2 -4
- package/util/algorithms/search-binary.js +4 -4
- package/util/check/get.js +5 -5
- package/util/check/typecheck.js +13 -15
- package/util/geometry/index.js +9 -11
- package/util/gl-util/buffer/attribute-loader.js +8 -20
- package/util/gl-util/buffer/index.js +1 -1
- package/util/gl-util/draw-options/methods.js +8 -9
- package/util/gl-util/uniform-block/manager.js +67 -67
- package/util/heatwavedatamanager/datamanager.js +56 -116
- package/util/heatwavedatamanager/index.js +2 -2
- package/util/heatwavedatamanager/pointcoordinatesdatacalculator.js +37 -40
- package/util/heatwavedatamanager/pointcoordsmeta.js +9 -10
- package/util/index.js +6 -6
- package/util/interpolation/timetrack/index.js +1 -1
- package/util/interpolation/timetrack/timetrack-interpolator.js +27 -29
- package/util/interpolation/timetrack/web-worker-str.js +179 -1
- package/util/interpolation/timetrack/web-worker.js +4 -4
- package/util/jshelpers/data-filler.js +7 -7
- package/util/jshelpers/timefilters.js +7 -7
- package/util/picking/fence.js +7 -7
- package/util/picking/picker-displayer.js +46 -52
- package/util/programs/draw-texture-on-canvas.js +39 -21
- package/util/programs/shapesonglobe.js +104 -64
- package/util/programs/supersampletotextures.js +45 -39
- package/util/programs/texturetoglobe.js +98 -48
- package/util/shaderfunctions/geometrytransformations.js +322 -27
- package/util/shaderfunctions/nodata.js +7 -1
- package/util/shaderfunctions/noisefunctions.js +39 -9
- package/util/surface-line-data/arcs-to-cuts.js +20 -23
- package/util/webglobe/rasteroverlay.js +35 -37
- package/util/webglobjectbuilders.js +55 -60
- package/util/webglobjectbuilders1.js +48 -49
- package/waveparticles/adaptor.js +6 -7
- package/waveparticles/index.js +2 -2
- package/waveparticles/plugin.js +79 -84
- package/wind/imagetovectorfieldandmagnitude.js +15 -15
- package/wind/index.js +4 -4
- package/wind/plugin.js +453 -251
- package/wind/vectorfieldimage.js +5 -5
- package/write-text/attached-text-writer.js +46 -48
- package/write-text/context-text.js +51 -58
- package/write-text/context-text3.js +69 -74
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SuperSampleTextureProgram = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
if (internalFormat === void 0) { internalFormat = null; }
|
|
8
|
-
if (sourceFormat === void 0) { sourceFormat = null; }
|
|
9
|
-
if (sourceType === void 0) { sourceType = null; }
|
|
10
|
-
if (glslOutputType === void 0) { glslOutputType = "float"; }
|
|
11
|
-
if (glslBand === void 0) { glslBand = "r"; }
|
|
4
|
+
const webglobjectbuilders_1 = require("../webglobjectbuilders");
|
|
5
|
+
class SuperSampleTextureProgram {
|
|
6
|
+
constructor(gl, internalFormat = null, sourceFormat = null, sourceType = null, glslOutputType = "float", glslBand = "r") {
|
|
12
7
|
this._internalFormat = internalFormat || gl.R16F;
|
|
13
8
|
this._sourceFormat = sourceFormat || gl.RED;
|
|
14
9
|
this._sourceType = sourceType || gl.FLOAT;
|
|
@@ -18,17 +13,29 @@ var SuperSampleTextureProgram = /** @class */ (function () {
|
|
|
18
13
|
this._programWrapper = this._createProgramWrapper();
|
|
19
14
|
this._framebuffer = this.gl.createFramebuffer();
|
|
20
15
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
16
|
+
_createProgramWrapper() {
|
|
17
|
+
const { gl, _glslBand, _glslOutputType } = this;
|
|
18
|
+
const vertexShaderSource = `#version 300 es
|
|
19
|
+
in vec2 a_position;
|
|
20
|
+
out vec2 v_texCoord;
|
|
21
|
+
|
|
22
|
+
uniform mat4 u_bbox_matrix;
|
|
23
|
+
|
|
24
|
+
void main() {
|
|
25
|
+
gl_Position = vec4(a_position, 0.0, 1.0);
|
|
26
|
+
v_texCoord = (u_bbox_matrix * vec4(a_position,0.0, 1.0)).xy;
|
|
27
|
+
}`;
|
|
28
|
+
const fragmentShaderSource = `#version 300 es
|
|
29
|
+
precision highp float;
|
|
30
|
+
in vec2 v_texCoord;`
|
|
31
|
+
+ `out ${_glslOutputType} outColor;`
|
|
32
|
+
+ `uniform sampler2D u_texture;
|
|
33
|
+
void main() {`
|
|
34
|
+
+ ` outColor = texture(u_texture, v_texCoord).${_glslBand};`
|
|
35
|
+
+ `}`;
|
|
36
|
+
const program = (0, webglobjectbuilders_1.createProgram)(gl, vertexShaderSource, fragmentShaderSource);
|
|
37
|
+
const vao = gl.createVertexArray();
|
|
38
|
+
const positionBuffer = gl.createBuffer();
|
|
32
39
|
gl.bindVertexArray(vao);
|
|
33
40
|
gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer);
|
|
34
41
|
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([
|
|
@@ -40,8 +47,8 @@ var SuperSampleTextureProgram = /** @class */ (function () {
|
|
|
40
47
|
gl.enableVertexAttribArray(0);
|
|
41
48
|
gl.vertexAttribPointer(0, 2, gl.FLOAT, false, 0, 0);
|
|
42
49
|
gl.bindVertexArray(null);
|
|
43
|
-
|
|
44
|
-
|
|
50
|
+
const u_bbox_matrix = gl.getUniformLocation(program, "u_bbox_matrix");
|
|
51
|
+
const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
|
|
45
52
|
gl.uniformMatrix2fv(u_bbox_matrix, false, new Float32Array([
|
|
46
53
|
1, 0, 0, 0,
|
|
47
54
|
0, 1, 0, 0,
|
|
@@ -51,17 +58,17 @@ var SuperSampleTextureProgram = /** @class */ (function () {
|
|
|
51
58
|
gl.useProgram(program);
|
|
52
59
|
gl.useProgram(currentProgram);
|
|
53
60
|
return {
|
|
54
|
-
program
|
|
55
|
-
vao
|
|
61
|
+
program,
|
|
62
|
+
vao,
|
|
56
63
|
u_texture: gl.getUniformLocation(program, "u_texture"),
|
|
57
|
-
u_bbox_matrix
|
|
64
|
+
u_bbox_matrix
|
|
58
65
|
};
|
|
59
|
-
}
|
|
60
|
-
|
|
66
|
+
}
|
|
67
|
+
createHigherResolutionTexture(targetWidth, targetHeight, sourceTexture) {
|
|
61
68
|
// save current state
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
69
|
+
const { gl, _internalFormat, _sourceFormat, _sourceType } = this;
|
|
70
|
+
const currentViewport = gl.getParameter(gl.VIEWPORT);
|
|
71
|
+
const resultTexture = gl.createTexture();
|
|
65
72
|
gl.bindTexture(gl.TEXTURE_2D, resultTexture);
|
|
66
73
|
gl.texImage2D(gl.TEXTURE_2D, 0, _internalFormat, targetWidth, targetHeight, 0, _sourceFormat, _sourceType, null);
|
|
67
74
|
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
|
|
@@ -78,9 +85,9 @@ var SuperSampleTextureProgram = /** @class */ (function () {
|
|
|
78
85
|
// restore previous state
|
|
79
86
|
this.gl.viewport(currentViewport[0], currentViewport[1], currentViewport[2], currentViewport[3]);
|
|
80
87
|
return resultTexture;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
|
|
88
|
+
}
|
|
89
|
+
_draw(texture) {
|
|
90
|
+
const currentProgram = this.gl.getParameter(this.gl.CURRENT_PROGRAM);
|
|
84
91
|
this.gl.useProgram(this._programWrapper.program);
|
|
85
92
|
this.gl.bindVertexArray(this._programWrapper.vao);
|
|
86
93
|
this.gl.activeTexture(this.gl.TEXTURE0);
|
|
@@ -89,10 +96,10 @@ var SuperSampleTextureProgram = /** @class */ (function () {
|
|
|
89
96
|
this.gl.drawArrays(this.gl.TRIANGLE_FAN, 0, 4);
|
|
90
97
|
this.gl.bindVertexArray(null);
|
|
91
98
|
this.gl.useProgram(currentProgram);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
99
|
+
}
|
|
100
|
+
setBBox(x0, y0, x1, y1) {
|
|
101
|
+
const { gl, _programWrapper } = this;
|
|
102
|
+
const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
|
|
96
103
|
gl.useProgram(_programWrapper.program);
|
|
97
104
|
gl.uniformMatrix2fv(_programWrapper.u_bbox_matrix, false, new Float32Array([
|
|
98
105
|
1 / (x1 - x0), 0, -x0 / (x1 - x0), 0,
|
|
@@ -101,7 +108,6 @@ var SuperSampleTextureProgram = /** @class */ (function () {
|
|
|
101
108
|
0, 0, 0, 1
|
|
102
109
|
]));
|
|
103
110
|
gl.useProgram(currentProgram);
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
}());
|
|
111
|
+
}
|
|
112
|
+
}
|
|
107
113
|
exports.SuperSampleTextureProgram = SuperSampleTextureProgram;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TextureToGlobeProgram = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
const webglobjectbuilders_1 = require("../webglobjectbuilders");
|
|
5
|
+
const __1 = require("..");
|
|
6
|
+
const __2 = require("..");
|
|
7
7
|
/** TODO:
|
|
8
8
|
* 3d icin calistir
|
|
9
9
|
*/
|
|
10
10
|
//TODO: DELETE THIS FILE.
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
class TextureToGlobeProgram {
|
|
12
|
+
constructor(gl, globe) {
|
|
13
13
|
this.globe = globe;
|
|
14
14
|
this.gl = gl;
|
|
15
15
|
this._is3D = true;
|
|
@@ -17,9 +17,9 @@ var TextureToGlobeProgram = /** @class */ (function () {
|
|
|
17
17
|
this._resizeHandler = this._resizeEventHandler.bind(this);
|
|
18
18
|
window.addEventListener('resize', this._resizeHandler, true);
|
|
19
19
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
_initUniforms() {
|
|
21
|
+
const { gl, _programWrapper } = this;
|
|
22
|
+
const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
|
|
23
23
|
gl.useProgram(_programWrapper.program);
|
|
24
24
|
// set u_alpha
|
|
25
25
|
gl.uniformMatrix3fv(_programWrapper.u_bbox_matrix, false, new Float32Array([
|
|
@@ -31,14 +31,65 @@ var TextureToGlobeProgram = /** @class */ (function () {
|
|
|
31
31
|
gl.uniform1f(_programWrapper.u_is3D, 1.0);
|
|
32
32
|
gl.uniform1f(_programWrapper.height, 0.0);
|
|
33
33
|
gl.useProgram(currentProgram);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
34
|
+
}
|
|
35
|
+
_createProgramWrapper() {
|
|
36
|
+
const gl = this.gl;
|
|
37
|
+
const vertexSource = `#version 300 es
|
|
38
|
+
precision highp float;
|
|
39
|
+
|
|
40
|
+
in vec2 a_position;
|
|
41
|
+
|
|
42
|
+
uniform mat3 u_bbox_matrix;
|
|
43
|
+
|
|
44
|
+
uniform mat4 u_model_view_matrix;
|
|
45
|
+
uniform mat4 u_proj_matrix;
|
|
46
|
+
uniform vec3 u_transpos;
|
|
47
|
+
|
|
48
|
+
uniform vec2 u_mapWH;
|
|
49
|
+
uniform vec2 u_scrWH;
|
|
50
|
+
|
|
51
|
+
uniform bool u_is3D;
|
|
52
|
+
uniform float height;
|
|
53
|
+
|
|
54
|
+
out vec2 v_texcoord;
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
` + __1.shaderfunctions.pixelXYToCartesian3DPoint + `
|
|
58
|
+
` + __1.shaderfunctions.pixelXYToCartesian2DPoint + `
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
void main() {
|
|
62
|
+
vec3 pos = u_bbox_matrix * vec3(a_position, height);
|
|
63
|
+
if(u_is3D){
|
|
64
|
+
pos = pixelXYToCartesian3DPoint(pos);
|
|
65
|
+
gl_Position = u_proj_matrix * u_model_view_matrix * vec4(pos - u_transpos, 1.0);
|
|
66
|
+
} else {
|
|
67
|
+
vec2 xy = pixelXYToCartesian2DPoint(pos.xy, u_transpos.xy, u_mapWH, u_scrWH);
|
|
68
|
+
gl_Position = u_proj_matrix * vec4(xy.x, xy.y, 0.0, 1.0);
|
|
69
|
+
}
|
|
70
|
+
gl_PointSize = 100.0;
|
|
71
|
+
v_texcoord = a_position * 0.5 + 0.5; // need a check
|
|
72
|
+
}
|
|
73
|
+
`;
|
|
74
|
+
const fragmentSource = `#version 300 es
|
|
75
|
+
precision highp float;
|
|
76
|
+
|
|
77
|
+
in vec2 v_texcoord;
|
|
78
|
+
|
|
79
|
+
uniform float u_alpha;
|
|
80
|
+
uniform sampler2D u_texture;
|
|
81
|
+
|
|
82
|
+
out vec4 outColor;
|
|
83
|
+
|
|
84
|
+
void main() {
|
|
85
|
+
// outColor = texture(u_texture, v_texcoord);
|
|
86
|
+
// outColor.a *= u_alpha;
|
|
87
|
+
outColor = vec4(1.0, 0.0, 0.0, 0.5);
|
|
88
|
+
}
|
|
89
|
+
`;
|
|
90
|
+
const program = (0, webglobjectbuilders_1.createProgram)(gl, vertexSource, fragmentSource);
|
|
91
|
+
const vao = gl.createVertexArray();
|
|
92
|
+
const buffer = gl.createBuffer();
|
|
42
93
|
gl.bindVertexArray(vao);
|
|
43
94
|
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
|
|
44
95
|
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([
|
|
@@ -47,7 +98,7 @@ var TextureToGlobeProgram = /** @class */ (function () {
|
|
|
47
98
|
1, 1,
|
|
48
99
|
0, 1
|
|
49
100
|
]), gl.STATIC_DRAW);
|
|
50
|
-
|
|
101
|
+
const a_position = -gl.getAttribLocation(program, 'a_position');
|
|
51
102
|
gl.enableVertexAttribArray(a_position);
|
|
52
103
|
gl.vertexAttribPointer(a_position, 2, gl.FLOAT, false, 0, 0);
|
|
53
104
|
gl.bindVertexArray(null);
|
|
@@ -63,10 +114,10 @@ var TextureToGlobeProgram = /** @class */ (function () {
|
|
|
63
114
|
u_bbox_matrix: gl.getUniformLocation(program, 'u_bbox_matrix'),
|
|
64
115
|
u_is3D: gl.getUniformLocation(program, 'u_is3D'),
|
|
65
116
|
};
|
|
66
|
-
}
|
|
67
|
-
|
|
117
|
+
}
|
|
118
|
+
draw(modelViewMatrix, projectionMatrix, transPos, texture) {
|
|
68
119
|
// console.log('draw')
|
|
69
|
-
|
|
120
|
+
const { gl, _programWrapper, _is3D } = this;
|
|
70
121
|
gl.useProgram(_programWrapper.program);
|
|
71
122
|
gl.bindVertexArray(_programWrapper.vao);
|
|
72
123
|
gl.uniformMatrix4fv(_programWrapper.u_model_view_matrix, false, modelViewMatrix);
|
|
@@ -76,15 +127,15 @@ var TextureToGlobeProgram = /** @class */ (function () {
|
|
|
76
127
|
gl.bindTexture(gl.TEXTURE_2D, texture);
|
|
77
128
|
gl.uniform1i(_programWrapper.u_texture, 0);
|
|
78
129
|
if (!_is3D) {
|
|
79
|
-
|
|
130
|
+
const mapWH = this.globe.api_GetCurrentWorldWH();
|
|
80
131
|
gl.uniform2f(_programWrapper.u_mapWH, mapWH.width, mapWH.height);
|
|
81
132
|
}
|
|
82
133
|
gl.drawArrays(gl.TRIANGLE_FAN, 0, 4);
|
|
83
134
|
gl.drawArrays(gl.POINTS, 0, 4);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
135
|
+
}
|
|
136
|
+
setBBox(minx, maxx, miny, maxy) {
|
|
137
|
+
const { gl, _programWrapper } = this;
|
|
138
|
+
const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
|
|
88
139
|
gl.useProgram(_programWrapper.program);
|
|
89
140
|
gl.uniformMatrix3fv(_programWrapper.u_bbox_matrix, false, new Float32Array([
|
|
90
141
|
maxx - minx, 0, minx,
|
|
@@ -92,41 +143,40 @@ var TextureToGlobeProgram = /** @class */ (function () {
|
|
|
92
143
|
0, 0, 1
|
|
93
144
|
]));
|
|
94
145
|
gl.useProgram(currentProgram);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
146
|
+
}
|
|
147
|
+
setLatLongBBox(minx, maxx, miny, maxy) {
|
|
148
|
+
const bboxMatrix = (0, __2.latLongBboxtoPixelXYBbox)(minx, miny, maxx, maxy);
|
|
149
|
+
const { gl, _programWrapper } = this;
|
|
150
|
+
const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
|
|
100
151
|
gl.useProgram(_programWrapper.program);
|
|
101
152
|
gl.uniformMatrix3fv(_programWrapper.u_bbox_matrix, false, bboxMatrix);
|
|
102
153
|
gl.useProgram(currentProgram);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
154
|
+
}
|
|
155
|
+
setScreenWH() {
|
|
156
|
+
const { gl, _programWrapper, globe } = this;
|
|
157
|
+
const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
|
|
107
158
|
gl.useProgram(_programWrapper.program);
|
|
108
159
|
gl.uniform2f(_programWrapper.u_scrWH, globe.api_ScrW(), globe.api_ScrH());
|
|
109
160
|
gl.useProgram(currentProgram);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
|
|
161
|
+
}
|
|
162
|
+
resize() {
|
|
163
|
+
const { globe } = this;
|
|
113
164
|
this.setScreenWH();
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
|
|
165
|
+
}
|
|
166
|
+
setGeometry() {
|
|
167
|
+
const { gl, globe, _programWrapper } = this;
|
|
117
168
|
this._is3D = globe.api_GetCurrentGeometry() === 0;
|
|
118
|
-
|
|
169
|
+
const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
|
|
119
170
|
gl.useProgram(_programWrapper.program);
|
|
120
171
|
gl.uniform1f(_programWrapper.u_is3D, this._is3D ? 1.0 : 0.0);
|
|
121
172
|
gl.useProgram(currentProgram);
|
|
122
173
|
this.resize();
|
|
123
|
-
}
|
|
124
|
-
|
|
174
|
+
}
|
|
175
|
+
free() {
|
|
125
176
|
window.removeEventListener('resize', this._resizeHandler, true);
|
|
126
|
-
}
|
|
127
|
-
|
|
177
|
+
}
|
|
178
|
+
_resizeEventHandler() {
|
|
128
179
|
this.resize();
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
}());
|
|
180
|
+
}
|
|
181
|
+
}
|
|
132
182
|
exports.TextureToGlobeProgram = TextureToGlobeProgram;
|