@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,65 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
mat4 projection; // 64 bytes 64
|
|
10
|
-
vec3 translate; // 12 bytes 128
|
|
11
|
-
bool is3D; // 4 bytes 140
|
|
12
|
-
vec2 mapWH; // 8 bytes 144
|
|
13
|
-
vec2 screenWH; // 8 bytes 152
|
|
14
|
-
float z_level; // 4 bytes 160
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
layout(std140) uniform Globals {
|
|
18
|
-
float head_time;
|
|
19
|
-
float final_opacity;
|
|
20
|
-
float point_size;
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
in vec3 start_position;
|
|
24
|
-
in float start_time;
|
|
25
|
-
in vec3 start_color;
|
|
26
|
-
in vec3 end_position;
|
|
27
|
-
in float end_time;
|
|
28
|
-
in vec3 end_color;
|
|
29
|
-
out vec4 v_color;
|
|
30
|
-
|
|
31
|
-
` + util_1.shaderfunctions.pixelXYToCartesian3DPoint + util_1.shaderfunctions.pixelXYToCartesian2DPoint + `
|
|
32
|
-
|
|
33
|
-
void main() {
|
|
34
|
-
if (head_time < start_time || head_time > end_time) { return; }
|
|
35
|
-
if ( start_color.r < 0.0 || end_color.r < 0.0) { return; }
|
|
36
|
-
float t = (head_time - start_time) / (end_time - start_time);
|
|
37
|
-
vec3 position = mix(start_position, end_position, t);
|
|
38
|
-
if (is3D){
|
|
39
|
-
vec3 pos = pixelXYToCartesian3DPoint(position);
|
|
40
|
-
gl_Position = projection * view * vec4(pos - translate, 1.0);
|
|
41
|
-
} else {
|
|
42
|
-
vec2 xy = pixelXYToCartesian2DPoint(position.xy, translate.xy, mapWH, screenWH);
|
|
43
|
-
gl_Position = projection * vec4(xy.x, xy.y, 0.0, 1.0);
|
|
44
|
-
}
|
|
45
|
-
v_color = vec4(mix(start_color, end_color, t), final_opacity);
|
|
46
|
-
gl_PointSize = point_size;
|
|
47
|
-
}`;
|
|
48
|
-
const fragmentShader = `#version 300 es
|
|
49
|
-
precision highp float;
|
|
50
|
-
in vec4 v_color;
|
|
51
|
-
out vec4 outColor;
|
|
52
|
-
void main() {
|
|
53
|
-
// circle point
|
|
54
|
-
vec2 cxy = 2.0 * gl_PointCoord - 1.0;
|
|
55
|
-
float cc = dot(cxy, cxy);
|
|
56
|
-
outColor = v_color;
|
|
57
|
-
if (cc > 0.5) {
|
|
58
|
-
outColor.a = 0.0;
|
|
59
|
-
}
|
|
60
|
-
}`;
|
|
61
|
-
class default_1 {
|
|
62
|
-
constructor(gl, globe, attrBuffer, options) {
|
|
3
|
+
var util_1 = require("../util");
|
|
4
|
+
var programs_1 = require("../programs");
|
|
5
|
+
var vertexShader = "#version 300 es\n\nlayout(std140) uniform GlobeCamera {\n mat4 view; // 64 bytes 0\n mat4 projection; // 64 bytes 64\n vec3 translate; // 12 bytes 128\n bool is3D; // 4 bytes 140\n vec2 mapWH; // 8 bytes 144\n vec2 screenWH; // 8 bytes 152\n float z_level; // 4 bytes 160\n};\n\nlayout(std140) uniform Globals {\n float head_time;\n float final_opacity;\n float point_size;\n};\n\nin vec3 start_position;\nin float start_time;\nin vec3 start_color;\nin vec3 end_position;\nin float end_time;\nin vec3 end_color;\nout vec4 v_color;\n\n" + util_1.shaderfunctions.pixelXYToCartesian3DPoint + util_1.shaderfunctions.pixelXYToCartesian2DPoint + "\n\nvoid main() {\n if (head_time < start_time || head_time > end_time) { return; }\n if ( start_color.r < 0.0 || end_color.r < 0.0) { return; }\n float t = (head_time - start_time) / (end_time - start_time);\n vec3 position = mix(start_position, end_position, t);\n if (is3D){\n vec3 pos = pixelXYToCartesian3DPoint(position);\n gl_Position = projection * view * vec4(pos - translate, 1.0);\n } else {\n vec2 xy = pixelXYToCartesian2DPoint(position.xy, translate.xy, mapWH, screenWH);\n gl_Position = projection * vec4(xy.x, xy.y, 0.0, 1.0);\n }\n v_color = vec4(mix(start_color, end_color, t), final_opacity);\n gl_PointSize = point_size;\n}";
|
|
6
|
+
var fragmentShader = "#version 300 es\nprecision highp float;\nin vec4 v_color;\nout vec4 outColor;\nvoid main() {\n // circle point\n vec2 cxy = 2.0 * gl_PointCoord - 1.0;\n float cc = dot(cxy, cxy);\n outColor = v_color;\n if (cc > 0.5) {\n outColor.a = 0.0; \n }\n}";
|
|
7
|
+
var default_1 = /** @class */ (function () {
|
|
8
|
+
function default_1(gl, globe, attrBuffer, options) {
|
|
63
9
|
this.gl = gl;
|
|
64
10
|
this._cameraBlockBindingPoint = 0;
|
|
65
11
|
this._globalsBlockBindingPoint = 1;
|
|
@@ -70,31 +16,31 @@ class default_1 {
|
|
|
70
16
|
this._drawCount = 0;
|
|
71
17
|
this._globalsbuffer = gl.createBuffer();
|
|
72
18
|
{
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
19
|
+
var _a = this, gl_1 = _a.gl, _globalsbuffer = _a._globalsbuffer;
|
|
20
|
+
gl_1.bindBuffer(gl_1.UNIFORM_BUFFER, _globalsbuffer);
|
|
21
|
+
gl_1.bufferData(gl_1.UNIFORM_BUFFER, 12, gl_1.STREAM_DRAW);
|
|
22
|
+
gl_1.bufferSubData(gl_1.UNIFORM_BUFFER, 0, new Float32Array([0, options.opacity, options.pointSize]));
|
|
23
|
+
gl_1.bindBufferBase(gl_1.UNIFORM_BUFFER, this._globalsBlockBindingPoint, _globalsbuffer);
|
|
24
|
+
gl_1.bindBuffer(gl_1.UNIFORM_BUFFER, null);
|
|
79
25
|
}
|
|
80
26
|
}
|
|
81
|
-
_createProgram() {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
27
|
+
default_1.prototype._createProgram = function () {
|
|
28
|
+
var gl = this.gl;
|
|
29
|
+
var program = (0, util_1.createProgram)(gl, vertexShader, fragmentShader);
|
|
30
|
+
var ubo = this.cameraUniformBlockTotem.getUBO(); // ubo bl
|
|
31
|
+
var cameraBlockIndex = gl.getUniformBlockIndex(program, "GlobeCamera");
|
|
86
32
|
gl.uniformBlockBinding(program, cameraBlockIndex, this._cameraBlockBindingPoint);
|
|
87
|
-
|
|
33
|
+
var globalsBlockIndex = gl.getUniformBlockIndex(program, "Globals");
|
|
88
34
|
gl.bindBufferBase(gl.UNIFORM_BUFFER, this._cameraBlockBindingPoint, ubo);
|
|
89
35
|
gl.uniformBlockBinding(program, globalsBlockIndex, this._globalsBlockBindingPoint);
|
|
90
36
|
gl.bindBufferBase(gl.UNIFORM_BUFFER, this._globalsBlockBindingPoint, this._globalsbuffer);
|
|
91
37
|
// numaralarda yanlışlık olabilir
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
38
|
+
var start_position = gl.getAttribLocation(program, "start_position");
|
|
39
|
+
var start_time = gl.getAttribLocation(program, "start_time");
|
|
40
|
+
var start_color = gl.getAttribLocation(program, "start_color");
|
|
41
|
+
var end_position = gl.getAttribLocation(program, "end_position");
|
|
42
|
+
var end_time = gl.getAttribLocation(program, "end_time");
|
|
43
|
+
var end_color = gl.getAttribLocation(program, "end_color");
|
|
98
44
|
gl.bindVertexArray(this._vao);
|
|
99
45
|
gl.bindBuffer(gl.ARRAY_BUFFER, this._attbuffer);
|
|
100
46
|
gl.enableVertexAttribArray(start_position);
|
|
@@ -112,43 +58,44 @@ class default_1 {
|
|
|
112
58
|
gl.bindVertexArray(null);
|
|
113
59
|
gl.bindBuffer(gl.ARRAY_BUFFER, null);
|
|
114
60
|
return program;
|
|
115
|
-
}
|
|
116
|
-
setOpacity(opacity) {
|
|
117
|
-
|
|
61
|
+
};
|
|
62
|
+
default_1.prototype.setOpacity = function (opacity) {
|
|
63
|
+
var _a = this, gl = _a.gl, _globalsbuffer = _a._globalsbuffer;
|
|
118
64
|
gl.bindBuffer(gl.UNIFORM_BUFFER, _globalsbuffer);
|
|
119
65
|
gl.bufferSubData(gl.UNIFORM_BUFFER, 4, new Float32Array([opacity]));
|
|
120
66
|
gl.bindBuffer(gl.UNIFORM_BUFFER, null);
|
|
121
|
-
}
|
|
122
|
-
setDrawCount(count) {
|
|
67
|
+
};
|
|
68
|
+
default_1.prototype.setDrawCount = function (count) {
|
|
123
69
|
this._drawCount = count;
|
|
124
|
-
}
|
|
125
|
-
setPointSize(size) {
|
|
126
|
-
|
|
70
|
+
};
|
|
71
|
+
default_1.prototype.setPointSize = function (size) {
|
|
72
|
+
var _a = this, gl = _a.gl, _globalsbuffer = _a._globalsbuffer;
|
|
127
73
|
gl.bindBuffer(gl.UNIFORM_BUFFER, _globalsbuffer);
|
|
128
74
|
gl.bufferSubData(gl.UNIFORM_BUFFER, 8, new Float32Array([size]));
|
|
129
75
|
gl.bindBuffer(gl.UNIFORM_BUFFER, null);
|
|
130
|
-
}
|
|
131
|
-
setHeadTime(time) {
|
|
132
|
-
|
|
76
|
+
};
|
|
77
|
+
default_1.prototype.setHeadTime = function (time) {
|
|
78
|
+
var _a = this, gl = _a.gl, _globalsbuffer = _a._globalsbuffer;
|
|
133
79
|
gl.bindBuffer(gl.UNIFORM_BUFFER, _globalsbuffer);
|
|
134
80
|
gl.bufferSubData(gl.UNIFORM_BUFFER, 0, new Float32Array([time]));
|
|
135
81
|
gl.bindBuffer(gl.UNIFORM_BUFFER, null);
|
|
136
|
-
}
|
|
137
|
-
draw() {
|
|
138
|
-
|
|
82
|
+
};
|
|
83
|
+
default_1.prototype.draw = function () {
|
|
84
|
+
var _a = this, gl = _a.gl, program = _a.program, _vao = _a._vao, _drawCount = _a._drawCount;
|
|
139
85
|
gl.useProgram(program);
|
|
140
86
|
gl.bindVertexArray(_vao);
|
|
141
87
|
gl.disable(gl.DEPTH_TEST);
|
|
142
88
|
gl.drawArrays(gl.POINTS, 0, _drawCount);
|
|
143
89
|
gl.enable(gl.DEPTH_TEST);
|
|
144
90
|
gl.bindVertexArray(null);
|
|
145
|
-
}
|
|
146
|
-
free() {
|
|
147
|
-
|
|
91
|
+
};
|
|
92
|
+
default_1.prototype.free = function () {
|
|
93
|
+
var _a = this, gl = _a.gl, _vao = _a._vao, _globalsbuffer = _a._globalsbuffer, program = _a.program;
|
|
148
94
|
gl.deleteVertexArray(_vao);
|
|
149
95
|
// gl.deleteBuffer(_attbuffer);
|
|
150
96
|
gl.deleteBuffer(_globalsbuffer);
|
|
151
97
|
gl.deleteProgram(program);
|
|
152
|
-
}
|
|
153
|
-
|
|
98
|
+
};
|
|
99
|
+
return default_1;
|
|
100
|
+
}());
|
|
154
101
|
exports.default = default_1;
|
|
@@ -1,58 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
mat4 projection; // 64 bytes 64
|
|
10
|
-
vec3 translate; // 12 bytes 128
|
|
11
|
-
bool is3D; // 4 bytes 140
|
|
12
|
-
vec2 mapWH; // 8 bytes 144
|
|
13
|
-
vec2 screenWH; // 8 bytes 152
|
|
14
|
-
float z_level; // 4 bytes 160
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
layout(std140) uniform Globals {
|
|
18
|
-
float head_time;
|
|
19
|
-
float final_opacity;
|
|
20
|
-
float point_size;
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
in vec3 start_position;
|
|
24
|
-
in float start_time;
|
|
25
|
-
in vec3 start_color;
|
|
26
|
-
in vec3 end_position;
|
|
27
|
-
in float end_time;
|
|
28
|
-
in vec3 end_color;
|
|
29
|
-
out vec4 v_color;
|
|
30
|
-
|
|
31
|
-
` + util_1.shaderfunctions.pixelXYToCartesian3DPoint + util_1.shaderfunctions.pixelXYToCartesian2DPoint + `
|
|
32
|
-
|
|
33
|
-
void main() {
|
|
34
|
-
if (head_time < start_time || head_time > end_time) { return; }
|
|
35
|
-
float t = (head_time - start_time) / (end_time - start_time);
|
|
36
|
-
vec3 position = mix(start_position, end_position, t);
|
|
37
|
-
if (is3D){
|
|
38
|
-
vec3 pos = pixelXYToCartesian3DPoint(position);
|
|
39
|
-
gl_Position = projection * view * vec4(pos - translate, 1.0);
|
|
40
|
-
} else {
|
|
41
|
-
vec2 xy = pixelXYToCartesian2DPoint(position.xy, translate.xy, mapWH, screenWH);
|
|
42
|
-
gl_Position = projection * vec4(xy.x, xy.y, 0.0, 1.0);
|
|
43
|
-
}
|
|
44
|
-
v_color = vec4(mix(start_color, end_color, t), final_opacity);
|
|
45
|
-
gl_PointSize = point_size;
|
|
46
|
-
}`;
|
|
47
|
-
const fragmentShader = `#version 300 es
|
|
48
|
-
precision highp float;
|
|
49
|
-
in vec4 v_color;
|
|
50
|
-
out vec4 outColor;
|
|
51
|
-
void main() {
|
|
52
|
-
outColor = v_color;
|
|
53
|
-
}`;
|
|
54
|
-
class default_1 {
|
|
55
|
-
constructor(gl, globe, attrBuffer, options) {
|
|
3
|
+
var util_1 = require("../util");
|
|
4
|
+
var programs_1 = require("../programs");
|
|
5
|
+
var vertexShader = "#version 300 es\n\nlayout(std140) uniform GlobeCamera {\n mat4 view; // 64 bytes 0\n mat4 projection; // 64 bytes 64\n vec3 translate; // 12 bytes 128\n bool is3D; // 4 bytes 140\n vec2 mapWH; // 8 bytes 144\n vec2 screenWH; // 8 bytes 152\n float z_level; // 4 bytes 160\n};\n\nlayout(std140) uniform Globals {\n float head_time;\n float final_opacity;\n float point_size;\n};\n\nin vec3 start_position;\nin float start_time;\nin vec3 start_color;\nin vec3 end_position;\nin float end_time;\nin vec3 end_color;\nout vec4 v_color;\n\n" + util_1.shaderfunctions.pixelXYToCartesian3DPoint + util_1.shaderfunctions.pixelXYToCartesian2DPoint + "\n\nvoid main() {\n if (head_time < start_time || head_time > end_time) { return; }\n float t = (head_time - start_time) / (end_time - start_time);\n vec3 position = mix(start_position, end_position, t);\n if (is3D){\n vec3 pos = pixelXYToCartesian3DPoint(position);\n gl_Position = projection * view * vec4(pos - translate, 1.0);\n } else {\n vec2 xy = pixelXYToCartesian2DPoint(position.xy, translate.xy, mapWH, screenWH);\n gl_Position = projection * vec4(xy.x, xy.y, 0.0, 1.0);\n }\n v_color = vec4(mix(start_color, end_color, t), final_opacity);\n gl_PointSize = point_size;\n}";
|
|
6
|
+
var fragmentShader = "#version 300 es\nprecision highp float;\nin vec4 v_color;\nout vec4 outColor;\nvoid main() {\n outColor = v_color;\n}";
|
|
7
|
+
var default_1 = /** @class */ (function () {
|
|
8
|
+
function default_1(gl, globe, attrBuffer, options) {
|
|
56
9
|
this.gl = gl;
|
|
57
10
|
this._cameraBlockBindingPoint = 0;
|
|
58
11
|
this._globalsBlockBindingPoint = 1;
|
|
@@ -63,31 +16,31 @@ class default_1 {
|
|
|
63
16
|
this._drawCount = 0;
|
|
64
17
|
this._globalsbuffer = gl.createBuffer();
|
|
65
18
|
{
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
19
|
+
var _a = this, gl_1 = _a.gl, _globalsbuffer = _a._globalsbuffer;
|
|
20
|
+
gl_1.bindBuffer(gl_1.UNIFORM_BUFFER, _globalsbuffer);
|
|
21
|
+
gl_1.bufferData(gl_1.UNIFORM_BUFFER, 12, gl_1.STREAM_DRAW);
|
|
22
|
+
gl_1.bufferSubData(gl_1.UNIFORM_BUFFER, 0, new Float32Array([0, options.opacity, options.pointSize]));
|
|
23
|
+
gl_1.bindBufferBase(gl_1.UNIFORM_BUFFER, this._globalsBlockBindingPoint, _globalsbuffer);
|
|
24
|
+
gl_1.bindBuffer(gl_1.UNIFORM_BUFFER, null);
|
|
72
25
|
}
|
|
73
26
|
}
|
|
74
|
-
_createProgram() {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
27
|
+
default_1.prototype._createProgram = function () {
|
|
28
|
+
var gl = this.gl;
|
|
29
|
+
var program = (0, util_1.createProgram)(gl, vertexShader, fragmentShader);
|
|
30
|
+
var ubo = this.cameraUniformBlockTotem.getUBO(); // ubo bl
|
|
31
|
+
var cameraBlockIndex = gl.getUniformBlockIndex(program, "GlobeCamera");
|
|
79
32
|
gl.uniformBlockBinding(program, cameraBlockIndex, this._cameraBlockBindingPoint);
|
|
80
|
-
|
|
33
|
+
var globalsBlockIndex = gl.getUniformBlockIndex(program, "Globals");
|
|
81
34
|
gl.bindBufferBase(gl.UNIFORM_BUFFER, this._cameraBlockBindingPoint, ubo);
|
|
82
35
|
gl.uniformBlockBinding(program, globalsBlockIndex, this._globalsBlockBindingPoint);
|
|
83
36
|
gl.bindBufferBase(gl.UNIFORM_BUFFER, this._globalsBlockBindingPoint, this._globalsbuffer);
|
|
84
37
|
// numaralarda yanlışlık olabilir
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
38
|
+
var start_position = gl.getAttribLocation(program, "start_position");
|
|
39
|
+
var start_time = gl.getAttribLocation(program, "start_time");
|
|
40
|
+
var start_color = gl.getAttribLocation(program, "start_color");
|
|
41
|
+
var end_position = gl.getAttribLocation(program, "end_position");
|
|
42
|
+
var end_time = gl.getAttribLocation(program, "end_time");
|
|
43
|
+
var end_color = gl.getAttribLocation(program, "end_color");
|
|
91
44
|
gl.bindVertexArray(this._vao);
|
|
92
45
|
gl.bindBuffer(gl.ARRAY_BUFFER, this._attbuffer);
|
|
93
46
|
gl.enableVertexAttribArray(start_position);
|
|
@@ -105,43 +58,44 @@ class default_1 {
|
|
|
105
58
|
gl.bindVertexArray(null);
|
|
106
59
|
gl.bindBuffer(gl.ARRAY_BUFFER, null);
|
|
107
60
|
return program;
|
|
108
|
-
}
|
|
109
|
-
setOpacity(opacity) {
|
|
110
|
-
|
|
61
|
+
};
|
|
62
|
+
default_1.prototype.setOpacity = function (opacity) {
|
|
63
|
+
var _a = this, gl = _a.gl, _globalsbuffer = _a._globalsbuffer;
|
|
111
64
|
gl.bindBuffer(gl.UNIFORM_BUFFER, _globalsbuffer);
|
|
112
65
|
gl.bufferSubData(gl.UNIFORM_BUFFER, 4, new Float32Array([opacity]));
|
|
113
66
|
gl.bindBuffer(gl.UNIFORM_BUFFER, null);
|
|
114
|
-
}
|
|
115
|
-
setDrawCount(count) {
|
|
67
|
+
};
|
|
68
|
+
default_1.prototype.setDrawCount = function (count) {
|
|
116
69
|
this._drawCount = count;
|
|
117
|
-
}
|
|
118
|
-
setPointSize(size) {
|
|
119
|
-
|
|
70
|
+
};
|
|
71
|
+
default_1.prototype.setPointSize = function (size) {
|
|
72
|
+
var _a = this, gl = _a.gl, _globalsbuffer = _a._globalsbuffer;
|
|
120
73
|
gl.bindBuffer(gl.UNIFORM_BUFFER, _globalsbuffer);
|
|
121
74
|
gl.bufferSubData(gl.UNIFORM_BUFFER, 8, new Float32Array([size]));
|
|
122
75
|
gl.bindBuffer(gl.UNIFORM_BUFFER, null);
|
|
123
|
-
}
|
|
124
|
-
setHeadTime(time) {
|
|
125
|
-
|
|
76
|
+
};
|
|
77
|
+
default_1.prototype.setHeadTime = function (time) {
|
|
78
|
+
var _a = this, gl = _a.gl, _globalsbuffer = _a._globalsbuffer;
|
|
126
79
|
gl.bindBuffer(gl.UNIFORM_BUFFER, _globalsbuffer);
|
|
127
80
|
gl.bufferSubData(gl.UNIFORM_BUFFER, 0, new Float32Array([time]));
|
|
128
81
|
gl.bindBuffer(gl.UNIFORM_BUFFER, null);
|
|
129
|
-
}
|
|
130
|
-
draw() {
|
|
131
|
-
|
|
82
|
+
};
|
|
83
|
+
default_1.prototype.draw = function () {
|
|
84
|
+
var _a = this, gl = _a.gl, program = _a.program, _vao = _a._vao, _drawCount = _a._drawCount;
|
|
132
85
|
gl.useProgram(program);
|
|
133
86
|
gl.bindVertexArray(_vao);
|
|
134
87
|
gl.disable(gl.DEPTH_TEST);
|
|
135
88
|
gl.drawArrays(gl.POINTS, 0, _drawCount);
|
|
136
89
|
gl.enable(gl.DEPTH_TEST);
|
|
137
90
|
gl.bindVertexArray(null);
|
|
138
|
-
}
|
|
139
|
-
free() {
|
|
140
|
-
|
|
91
|
+
};
|
|
92
|
+
default_1.prototype.free = function () {
|
|
93
|
+
var _a = this, gl = _a.gl, _vao = _a._vao, _globalsbuffer = _a._globalsbuffer, program = _a.program;
|
|
141
94
|
gl.deleteVertexArray(_vao);
|
|
142
95
|
// gl.deleteBuffer(_attbuffer);
|
|
143
96
|
gl.deleteBuffer(_globalsbuffer);
|
|
144
97
|
gl.deleteProgram(program);
|
|
145
|
-
}
|
|
146
|
-
|
|
98
|
+
};
|
|
99
|
+
return default_1;
|
|
100
|
+
}());
|
|
147
101
|
exports.default = default_1;
|
|
@@ -19,8 +19,9 @@
|
|
|
19
19
|
* This unpredicatable behavior is not handled by this class.
|
|
20
20
|
*/
|
|
21
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
var default_1 = /** @class */ (function () {
|
|
23
|
+
function default_1(itemSize, _a) {
|
|
24
|
+
var _b = _a === void 0 ? {} : _a, _c = _b.capacity, capacity = _c === void 0 ? 10 : _c, _d = _b.bufferType, bufferType = _d === void 0 ? "STATIC_DRAW" : _d;
|
|
24
25
|
this.itemSize = itemSize;
|
|
25
26
|
this.bufferType = bufferType;
|
|
26
27
|
this.offSetMap = new Map();
|
|
@@ -28,36 +29,52 @@ class default_1 {
|
|
|
28
29
|
this._capacity = capacity;
|
|
29
30
|
this._length = 0;
|
|
30
31
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
32
|
+
Object.defineProperty(default_1.prototype, "length", {
|
|
33
|
+
get: function () {
|
|
34
|
+
return this._length;
|
|
35
|
+
},
|
|
36
|
+
enumerable: false,
|
|
37
|
+
configurable: true
|
|
38
|
+
});
|
|
39
|
+
Object.defineProperty(default_1.prototype, "capacity", {
|
|
40
|
+
get: function () {
|
|
41
|
+
return this._capacity;
|
|
42
|
+
},
|
|
43
|
+
enumerable: false,
|
|
44
|
+
configurable: true
|
|
45
|
+
});
|
|
46
|
+
default_1.prototype.getOffset = function (key) {
|
|
38
47
|
return this.offSetMap.get(key);
|
|
39
|
-
}
|
|
40
|
-
setOffset(key, offset) {
|
|
48
|
+
};
|
|
49
|
+
default_1.prototype.setOffset = function (key, offset) {
|
|
41
50
|
this.offSetMap.set(key, offset);
|
|
42
|
-
}
|
|
43
|
-
nextOffset() {
|
|
51
|
+
};
|
|
52
|
+
default_1.prototype.nextOffset = function () {
|
|
44
53
|
if (this.tombstoneOffSet.length > 0) {
|
|
45
|
-
|
|
54
|
+
var offset = this.tombstoneOffSet.pop();
|
|
46
55
|
return offset;
|
|
47
56
|
}
|
|
48
57
|
if (this._length < this._capacity) {
|
|
49
58
|
return this._length++ * this.itemSize * 4;
|
|
50
59
|
}
|
|
51
60
|
return false;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
+
};
|
|
62
|
+
Object.defineProperty(default_1.prototype, "spaceLeft", {
|
|
63
|
+
get: function () {
|
|
64
|
+
return this._capacity - (this._length - this.tombstoneOffSet.length);
|
|
65
|
+
},
|
|
66
|
+
enumerable: false,
|
|
67
|
+
configurable: true
|
|
68
|
+
});
|
|
69
|
+
Object.defineProperty(default_1.prototype, "itemCount", {
|
|
70
|
+
get: function () {
|
|
71
|
+
return this._length - this.tombstoneOffSet.length;
|
|
72
|
+
},
|
|
73
|
+
enumerable: false,
|
|
74
|
+
configurable: true
|
|
75
|
+
});
|
|
76
|
+
default_1.prototype.deleteFromAccount = function (key) {
|
|
77
|
+
var offSet = this.offSetMap.get(key);
|
|
61
78
|
if (offSet !== undefined) {
|
|
62
79
|
this.tombstoneOffSet.push(offSet);
|
|
63
80
|
this.offSetMap.delete(key);
|
|
@@ -66,38 +83,41 @@ class default_1 {
|
|
|
66
83
|
else {
|
|
67
84
|
return false;
|
|
68
85
|
}
|
|
69
|
-
}
|
|
70
|
-
_deleteBulk(keys) {
|
|
71
|
-
|
|
72
|
-
|
|
86
|
+
};
|
|
87
|
+
default_1.prototype._deleteBulk = function (keys) {
|
|
88
|
+
var _a = this, gl = _a.gl, buffer = _a.buffer;
|
|
89
|
+
var emptyBlock = new Float32Array(this.itemSize).fill(0);
|
|
73
90
|
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
|
|
74
|
-
for (
|
|
75
|
-
|
|
91
|
+
for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
|
|
92
|
+
var key = keys_1[_i];
|
|
93
|
+
var offset = this.getOffset(key);
|
|
76
94
|
if (offset !== undefined) {
|
|
77
95
|
this.deleteFromAccount(key);
|
|
78
96
|
gl.bufferSubData(gl.ARRAY_BUFFER, offset, emptyBlock);
|
|
79
97
|
}
|
|
80
98
|
}
|
|
81
99
|
gl.bindBuffer(gl.ARRAY_BUFFER, null);
|
|
82
|
-
}
|
|
83
|
-
offsetMapIterator() {
|
|
100
|
+
};
|
|
101
|
+
default_1.prototype.offsetMapIterator = function () {
|
|
84
102
|
return this.offSetMap.entries();
|
|
85
|
-
}
|
|
103
|
+
};
|
|
86
104
|
// TODO: this is broken
|
|
87
|
-
defrag
|
|
88
|
-
|
|
105
|
+
default_1.prototype.defrag = function (newCapacity) {
|
|
106
|
+
if (newCapacity === void 0) { newCapacity = null; }
|
|
107
|
+
var _a = this, gl = _a.gl, buffer = _a.buffer, bufferType = _a.bufferType;
|
|
89
108
|
if (gl === undefined || buffer === undefined || bufferType === undefined) {
|
|
90
109
|
throw new Error("gl, buffer, bufferType are required");
|
|
91
110
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
for (
|
|
100
|
-
|
|
111
|
+
var itemSize = this.itemSize;
|
|
112
|
+
var itemCount = this.itemCount;
|
|
113
|
+
var capacity = (newCapacity && newCapacity > itemCount) ? newCapacity : itemCount;
|
|
114
|
+
var newArray = new Float32Array(itemCount * itemSize);
|
|
115
|
+
var bufferData = this._getBufferData();
|
|
116
|
+
var newOffSet = 0;
|
|
117
|
+
var newOffSetMap = new Map();
|
|
118
|
+
for (var _i = 0, _b = this.offSetMap; _i < _b.length; _i++) {
|
|
119
|
+
var _c = _b[_i], key = _c[0], offSet = _c[1];
|
|
120
|
+
var itemOffSet = offSet / 4;
|
|
101
121
|
newArray.set(bufferData.slice(itemOffSet, itemOffSet + itemSize), newOffSet);
|
|
102
122
|
// this.offSetMap.set(key, newOffSet * 4);
|
|
103
123
|
newOffSetMap.set(key, newOffSet * 4);
|
|
@@ -111,23 +131,23 @@ class default_1 {
|
|
|
111
131
|
this.tombstoneOffSet = [];
|
|
112
132
|
this._length = itemCount;
|
|
113
133
|
this.offSetMap = newOffSetMap;
|
|
114
|
-
}
|
|
115
|
-
autoExtendBuffer(payloadSize) {
|
|
134
|
+
};
|
|
135
|
+
default_1.prototype.autoExtendBuffer = function (payloadSize) {
|
|
116
136
|
if (payloadSize <= this.spaceLeft)
|
|
117
137
|
return;
|
|
118
|
-
|
|
138
|
+
var newCapacity = Math.ceil((payloadSize + this.length));
|
|
119
139
|
this.extendBuffer(newCapacity);
|
|
120
|
-
}
|
|
121
|
-
extendBuffer(newCapacity) {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
140
|
+
};
|
|
141
|
+
default_1.prototype.extendBuffer = function (newCapacity) {
|
|
142
|
+
var _a = this, gl = _a.gl, buffer = _a.buffer, bufferType = _a.bufferType;
|
|
143
|
+
var itemSize = this.itemSize;
|
|
144
|
+
var bufferData = this._getBufferData();
|
|
125
145
|
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
|
|
126
146
|
gl.bufferData(gl.ARRAY_BUFFER, newCapacity * itemSize * 4, gl[bufferType]);
|
|
127
147
|
gl.bufferSubData(gl.ARRAY_BUFFER, 0, bufferData);
|
|
128
148
|
gl.bindBuffer(gl.ARRAY_BUFFER, null);
|
|
129
149
|
this._capacity = newCapacity;
|
|
130
|
-
}
|
|
150
|
+
};
|
|
131
151
|
/** implicit methods to be used by the child class */
|
|
132
152
|
/**
|
|
133
153
|
* @typedef {Float32Array} payload
|
|
@@ -135,45 +155,48 @@ class default_1 {
|
|
|
135
155
|
* @param {number} partOffset
|
|
136
156
|
* @returns
|
|
137
157
|
*/
|
|
138
|
-
_updatePartial(items, partOffset) {
|
|
139
|
-
|
|
140
|
-
|
|
158
|
+
default_1.prototype._updatePartial = function (items, partOffset) {
|
|
159
|
+
var _a = this, gl = _a.gl, buffer = _a.buffer;
|
|
160
|
+
var partStart = partOffset * 4;
|
|
141
161
|
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
|
|
142
|
-
for (
|
|
143
|
-
|
|
162
|
+
for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {
|
|
163
|
+
var _b = items_1[_i], key = _b.key, payload = _b.payload;
|
|
164
|
+
var offset = this.getOffset(key);
|
|
144
165
|
if (offset !== undefined) {
|
|
145
166
|
gl.bufferSubData(gl.ARRAY_BUFFER, offset + partStart, payload);
|
|
146
167
|
}
|
|
147
168
|
}
|
|
148
169
|
gl.bindBuffer(gl.ARRAY_BUFFER, null);
|
|
149
|
-
}
|
|
150
|
-
_getBufferData() {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
170
|
+
};
|
|
171
|
+
default_1.prototype._getBufferData = function () {
|
|
172
|
+
var _a = this, gl = _a.gl, buffer = _a.buffer;
|
|
173
|
+
var size = new Float32Array(this.length * this.itemSize);
|
|
174
|
+
var bufferData = new Float32Array(size);
|
|
154
175
|
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
|
|
155
176
|
gl.getBufferSubData(gl.ARRAY_BUFFER, 0, bufferData);
|
|
156
177
|
gl.bindBuffer(gl.ARRAY_BUFFER, null);
|
|
157
178
|
return bufferData;
|
|
158
|
-
}
|
|
159
|
-
_removeFromBuffer(keys) {
|
|
160
|
-
|
|
161
|
-
|
|
179
|
+
};
|
|
180
|
+
default_1.prototype._removeFromBuffer = function (keys) {
|
|
181
|
+
var _a = this, gl = _a.gl, buffer = _a.buffer;
|
|
182
|
+
var emptyBlock = new Float32Array(this.itemSize).fill(0);
|
|
162
183
|
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
|
|
163
|
-
for (
|
|
164
|
-
|
|
184
|
+
for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {
|
|
185
|
+
var key = keys_2[_i];
|
|
186
|
+
var offset = this.getOffset(key);
|
|
165
187
|
if (offset !== undefined) {
|
|
166
188
|
this.deleteFromAccount(key);
|
|
167
189
|
gl.bufferSubData(gl.ARRAY_BUFFER, offset, emptyBlock);
|
|
168
190
|
}
|
|
169
191
|
}
|
|
170
192
|
gl.bindBuffer(gl.ARRAY_BUFFER, null);
|
|
171
|
-
}
|
|
172
|
-
free() {
|
|
193
|
+
};
|
|
194
|
+
default_1.prototype.free = function () {
|
|
173
195
|
this.gl.deleteBuffer(this.buffer);
|
|
174
196
|
this.buffer = null;
|
|
175
197
|
this.vao = null;
|
|
176
198
|
this.gl = null;
|
|
177
|
-
}
|
|
178
|
-
|
|
199
|
+
};
|
|
200
|
+
return default_1;
|
|
201
|
+
}());
|
|
179
202
|
exports.default = default_1;
|
package/util/account/index.js
CHANGED
|
@@ -18,6 +18,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
20
|
exports.BufferOffsetManager = void 0;
|
|
21
|
-
|
|
21
|
+
var bufferoffsetmanager_1 = __importDefault(require("./bufferoffsetmanager"));
|
|
22
22
|
exports.BufferOffsetManager = bufferoffsetmanager_1.default;
|
|
23
23
|
__exportStar(require("./single-attribute-buffer-management/index"), exports);
|