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