@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.
Files changed (166) hide show
  1. package/Math/angle-calculation.js +8 -8
  2. package/Math/arc.js +18 -18
  3. package/Math/bounds/line-bbox.js +78 -80
  4. package/Math/constants.js +3 -3
  5. package/Math/juction/arc-plane.js +23 -23
  6. package/Math/juction/line-sphere.js +11 -11
  7. package/Math/juction/plane-plane.js +11 -11
  8. package/Math/line.js +14 -16
  9. package/Math/methods.js +65 -70
  10. package/Math/plane.js +16 -18
  11. package/Math/quaternion.js +45 -49
  12. package/Math/utils.js +2 -2
  13. package/Math/vec3.js +42 -45
  14. package/algorithms/search-binary.js +4 -4
  15. package/altitude-locator/draw-subset-obj.js +7 -8
  16. package/altitude-locator/plugin.js +98 -114
  17. package/arrowfield/adaptor.js +3 -4
  18. package/arrowfield/index.js +2 -2
  19. package/arrowfield/plugin.js +62 -65
  20. package/bearing-line/index.js +1 -1
  21. package/bearing-line/plugin.js +200 -226
  22. package/circle-line-chain/chain-list-map.js +82 -88
  23. package/circle-line-chain/plugin.js +134 -165
  24. package/circle-line-chain/util.js +1 -1
  25. package/compass-rose/compass-rose-padding-flat.js +108 -133
  26. package/compass-rose/compass-text-writer.js +62 -70
  27. package/compass-rose/index.js +2 -2
  28. package/compassrose/compassrose.js +46 -50
  29. package/compassrose/index.js +1 -1
  30. package/heatwave/index.js +2 -2
  31. package/heatwave/isobar/objectarraylabels.js +44 -48
  32. package/heatwave/isobar/plugin.js +104 -123
  33. package/heatwave/isobar/quadtreecontours.js +76 -92
  34. package/heatwave/plugins/heatwaveglobeshell.js +69 -87
  35. package/index.js +11 -11
  36. package/package.json +1 -1
  37. package/partialrings/buffer-manager.js +32 -64
  38. package/partialrings/index.js +1 -1
  39. package/partialrings/plugin.js +48 -84
  40. package/partialrings/program.js +136 -47
  41. package/pin/pin-object-array.js +83 -86
  42. package/pin/pin-point-totem.js +21 -22
  43. package/point-heat-map/adaptors/timetracksplugin-format-to-this.js +10 -10
  44. package/point-heat-map/plugin-webworker.js +40 -45
  45. package/point-heat-map/point-to-heat-map-flow.js +40 -42
  46. package/point-tracks/key-methods.js +1 -1
  47. package/point-tracks/plugin.js +137 -162
  48. package/programs/arrowfield/index.js +1 -1
  49. package/programs/arrowfield/logic.js +170 -62
  50. package/programs/arrowfield/object.js +33 -35
  51. package/programs/data2legend/density-to-legend.js +45 -21
  52. package/programs/data2legend/point-to-density-texture.js +52 -27
  53. package/programs/float2legendwithratio/index.js +1 -1
  54. package/programs/float2legendwithratio/logic.js +88 -42
  55. package/programs/float2legendwithratio/object.js +43 -46
  56. package/programs/globe-util/is-globe-moved.js +10 -11
  57. package/programs/globeshell/index.js +1 -1
  58. package/programs/globeshell/wiggle/index.js +1 -1
  59. package/programs/globeshell/wiggle/logic.js +191 -98
  60. package/programs/globeshell/wiggle/object.js +33 -35
  61. package/programs/helpers/blender/program.js +36 -19
  62. package/programs/helpers/fadeaway/index.js +1 -1
  63. package/programs/helpers/fadeaway/logic.js +35 -13
  64. package/programs/helpers/fadeaway/object.js +9 -10
  65. package/programs/helpers/index.js +1 -1
  66. package/programs/index.js +8 -8
  67. package/programs/line-on-globe/angled-line.js +91 -32
  68. package/programs/line-on-globe/circle-accurate-3d.js +82 -32
  69. package/programs/line-on-globe/circle-accurate-flat.js +108 -50
  70. package/programs/line-on-globe/circle-accurate.js +103 -33
  71. package/programs/line-on-globe/circle.js +97 -32
  72. package/programs/line-on-globe/degree-padding-around-circle-3d.js +83 -33
  73. package/programs/line-on-globe/lines-color-instanced-flat.js +79 -34
  74. package/programs/line-on-globe/linestrip.js +111 -45
  75. package/programs/line-on-globe/naive-accurate-flexible.js +120 -50
  76. package/programs/line-on-globe/to-the-surface.js +58 -29
  77. package/programs/line-on-globe/util.js +1 -1
  78. package/programs/picking/pickable-renderer.js +117 -33
  79. package/programs/point-on-globe/element-globe-surface-glow.js +78 -38
  80. package/programs/point-on-globe/element-point-glow.js +103 -35
  81. package/programs/point-on-globe/square-pixel-point.js +76 -27
  82. package/programs/programcache.js +13 -13
  83. package/programs/rings/distancering/circleflatprogram.js +63 -21
  84. package/programs/rings/distancering/circlepaddingfreeangleprogram.js +156 -145
  85. package/programs/rings/distancering/circlepaddysharedbuffer.js +121 -197
  86. package/programs/rings/distancering/index.js +4 -4
  87. package/programs/rings/distancering/paddyflatprogram.js +73 -20
  88. package/programs/rings/distancering/paddyflatprogram2d.js +75 -22
  89. package/programs/rings/distancering/paddyflatprogram3d.js +73 -20
  90. package/programs/rings/partial-ring/piece-of-pie.js +137 -35
  91. package/programs/totems/camerauniformblock.js +64 -51
  92. package/programs/totems/canvas-webglobe-info.js +48 -40
  93. package/programs/totems/gpu-selection-uniform-block.js +44 -40
  94. package/programs/totems/index.js +1 -1
  95. package/programs/two-d/pixel-padding-for-compass.js +90 -29
  96. package/programs/util.js +6 -7
  97. package/programs/vectorfields/index.js +1 -1
  98. package/programs/vectorfields/logics/drawrectangleparticles.js +70 -29
  99. package/programs/vectorfields/logics/index.js +3 -3
  100. package/programs/vectorfields/logics/pixelbased.js +91 -35
  101. package/programs/vectorfields/logics/ubo.js +31 -25
  102. package/programs/vectorfields/pingpongbuffermanager.js +30 -34
  103. package/rangerings/index.js +4 -4
  104. package/rangerings/plugin.js +202 -258
  105. package/rangerings/rangeringangletext.js +108 -120
  106. package/rangerings/ring-account.js +52 -69
  107. package/shaders/fragment-toy/firework.js +55 -1
  108. package/shaders/fragment-toy/singularity.js +55 -1
  109. package/timetracks/adaptors-line-strip.js +26 -37
  110. package/timetracks/adaptors.js +47 -61
  111. package/timetracks/index.js +4 -4
  112. package/timetracks/plugin-line-strip.js +63 -71
  113. package/timetracks/plugin.js +69 -77
  114. package/timetracks/program-line-strip.js +296 -103
  115. package/timetracks/program.js +419 -113
  116. package/timetracks/programpoint-line-strip.js +97 -44
  117. package/timetracks/programpoint.js +90 -44
  118. package/util/account/bufferoffsetmanager.js +72 -95
  119. package/util/account/index.js +1 -1
  120. package/util/account/single-attribute-buffer-management/buffer-manager.js +44 -44
  121. package/util/account/single-attribute-buffer-management/buffer-orchestrator.js +68 -94
  122. package/util/account/single-attribute-buffer-management/index.js +3 -3
  123. package/util/account/single-attribute-buffer-management/object-store.js +29 -30
  124. package/util/account/util.js +2 -4
  125. package/util/algorithms/search-binary.js +4 -4
  126. package/util/check/get.js +5 -5
  127. package/util/check/typecheck.js +13 -15
  128. package/util/geometry/index.js +9 -11
  129. package/util/gl-util/buffer/attribute-loader.js +8 -20
  130. package/util/gl-util/buffer/index.js +1 -1
  131. package/util/gl-util/draw-options/methods.js +8 -9
  132. package/util/gl-util/uniform-block/manager.js +67 -67
  133. package/util/heatwavedatamanager/datamanager.js +56 -116
  134. package/util/heatwavedatamanager/index.js +2 -2
  135. package/util/heatwavedatamanager/pointcoordinatesdatacalculator.js +37 -40
  136. package/util/heatwavedatamanager/pointcoordsmeta.js +9 -10
  137. package/util/index.js +6 -6
  138. package/util/interpolation/timetrack/index.js +1 -1
  139. package/util/interpolation/timetrack/timetrack-interpolator.js +27 -29
  140. package/util/interpolation/timetrack/web-worker-str.js +179 -1
  141. package/util/interpolation/timetrack/web-worker.js +4 -4
  142. package/util/jshelpers/data-filler.js +7 -7
  143. package/util/jshelpers/timefilters.js +7 -7
  144. package/util/picking/fence.js +7 -7
  145. package/util/picking/picker-displayer.js +46 -52
  146. package/util/programs/draw-texture-on-canvas.js +39 -21
  147. package/util/programs/shapesonglobe.js +104 -64
  148. package/util/programs/supersampletotextures.js +45 -39
  149. package/util/programs/texturetoglobe.js +98 -48
  150. package/util/shaderfunctions/geometrytransformations.js +322 -27
  151. package/util/shaderfunctions/nodata.js +7 -1
  152. package/util/shaderfunctions/noisefunctions.js +39 -9
  153. package/util/surface-line-data/arcs-to-cuts.js +20 -23
  154. package/util/webglobe/rasteroverlay.js +35 -37
  155. package/util/webglobjectbuilders.js +55 -60
  156. package/util/webglobjectbuilders1.js +48 -49
  157. package/waveparticles/adaptor.js +6 -7
  158. package/waveparticles/index.js +2 -2
  159. package/waveparticles/plugin.js +79 -84
  160. package/wind/imagetovectorfieldandmagnitude.js +15 -15
  161. package/wind/index.js +4 -4
  162. package/wind/plugin.js +453 -251
  163. package/wind/vectorfieldimage.js +5 -5
  164. package/write-text/attached-text-writer.js +46 -48
  165. package/write-text/context-text.js +51 -58
  166. package/write-text/context-text3.js +69 -74
@@ -1,11 +1,65 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
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) {
3
+ const util_1 = require("../util");
4
+ const programs_1 = require("../programs");
5
+ const vertexShader = `#version 300 es
6
+
7
+ layout(std140) uniform GlobeCamera {
8
+ mat4 view; // 64 bytes 0
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) {
9
63
  this.gl = gl;
10
64
  this._cameraBlockBindingPoint = 0;
11
65
  this._globalsBlockBindingPoint = 1;
@@ -16,31 +70,31 @@ var default_1 = /** @class */ (function () {
16
70
  this._drawCount = 0;
17
71
  this._globalsbuffer = gl.createBuffer();
18
72
  {
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);
73
+ const { gl, _globalsbuffer } = this;
74
+ gl.bindBuffer(gl.UNIFORM_BUFFER, _globalsbuffer);
75
+ gl.bufferData(gl.UNIFORM_BUFFER, 12, gl.STREAM_DRAW);
76
+ gl.bufferSubData(gl.UNIFORM_BUFFER, 0, new Float32Array([0, options.opacity, options.pointSize]));
77
+ gl.bindBufferBase(gl.UNIFORM_BUFFER, this._globalsBlockBindingPoint, _globalsbuffer);
78
+ gl.bindBuffer(gl.UNIFORM_BUFFER, null);
25
79
  }
26
80
  }
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");
81
+ _createProgram() {
82
+ const gl = this.gl;
83
+ const program = (0, util_1.createProgram)(gl, vertexShader, fragmentShader);
84
+ const ubo = this.cameraUniformBlockTotem.getUBO(); // ubo bl
85
+ const cameraBlockIndex = gl.getUniformBlockIndex(program, "GlobeCamera");
32
86
  gl.uniformBlockBinding(program, cameraBlockIndex, this._cameraBlockBindingPoint);
33
- var globalsBlockIndex = gl.getUniformBlockIndex(program, "Globals");
87
+ const globalsBlockIndex = gl.getUniformBlockIndex(program, "Globals");
34
88
  gl.bindBufferBase(gl.UNIFORM_BUFFER, this._cameraBlockBindingPoint, ubo);
35
89
  gl.uniformBlockBinding(program, globalsBlockIndex, this._globalsBlockBindingPoint);
36
90
  gl.bindBufferBase(gl.UNIFORM_BUFFER, this._globalsBlockBindingPoint, this._globalsbuffer);
37
91
  // numaralarda yanlışlık olabilir
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");
92
+ const start_position = gl.getAttribLocation(program, "start_position");
93
+ const start_time = gl.getAttribLocation(program, "start_time");
94
+ const start_color = gl.getAttribLocation(program, "start_color");
95
+ const end_position = gl.getAttribLocation(program, "end_position");
96
+ const end_time = gl.getAttribLocation(program, "end_time");
97
+ const end_color = gl.getAttribLocation(program, "end_color");
44
98
  gl.bindVertexArray(this._vao);
45
99
  gl.bindBuffer(gl.ARRAY_BUFFER, this._attbuffer);
46
100
  gl.enableVertexAttribArray(start_position);
@@ -58,44 +112,43 @@ var default_1 = /** @class */ (function () {
58
112
  gl.bindVertexArray(null);
59
113
  gl.bindBuffer(gl.ARRAY_BUFFER, null);
60
114
  return program;
61
- };
62
- default_1.prototype.setOpacity = function (opacity) {
63
- var _a = this, gl = _a.gl, _globalsbuffer = _a._globalsbuffer;
115
+ }
116
+ setOpacity(opacity) {
117
+ const { gl, _globalsbuffer } = this;
64
118
  gl.bindBuffer(gl.UNIFORM_BUFFER, _globalsbuffer);
65
119
  gl.bufferSubData(gl.UNIFORM_BUFFER, 4, new Float32Array([opacity]));
66
120
  gl.bindBuffer(gl.UNIFORM_BUFFER, null);
67
- };
68
- default_1.prototype.setDrawCount = function (count) {
121
+ }
122
+ setDrawCount(count) {
69
123
  this._drawCount = count;
70
- };
71
- default_1.prototype.setPointSize = function (size) {
72
- var _a = this, gl = _a.gl, _globalsbuffer = _a._globalsbuffer;
124
+ }
125
+ setPointSize(size) {
126
+ const { gl, _globalsbuffer } = this;
73
127
  gl.bindBuffer(gl.UNIFORM_BUFFER, _globalsbuffer);
74
128
  gl.bufferSubData(gl.UNIFORM_BUFFER, 8, new Float32Array([size]));
75
129
  gl.bindBuffer(gl.UNIFORM_BUFFER, null);
76
- };
77
- default_1.prototype.setHeadTime = function (time) {
78
- var _a = this, gl = _a.gl, _globalsbuffer = _a._globalsbuffer;
130
+ }
131
+ setHeadTime(time) {
132
+ const { gl, _globalsbuffer } = this;
79
133
  gl.bindBuffer(gl.UNIFORM_BUFFER, _globalsbuffer);
80
134
  gl.bufferSubData(gl.UNIFORM_BUFFER, 0, new Float32Array([time]));
81
135
  gl.bindBuffer(gl.UNIFORM_BUFFER, null);
82
- };
83
- default_1.prototype.draw = function () {
84
- var _a = this, gl = _a.gl, program = _a.program, _vao = _a._vao, _drawCount = _a._drawCount;
136
+ }
137
+ draw() {
138
+ const { gl, program, _vao, _drawCount } = this;
85
139
  gl.useProgram(program);
86
140
  gl.bindVertexArray(_vao);
87
141
  gl.disable(gl.DEPTH_TEST);
88
142
  gl.drawArrays(gl.POINTS, 0, _drawCount);
89
143
  gl.enable(gl.DEPTH_TEST);
90
144
  gl.bindVertexArray(null);
91
- };
92
- default_1.prototype.free = function () {
93
- var _a = this, gl = _a.gl, _vao = _a._vao, _globalsbuffer = _a._globalsbuffer, program = _a.program;
145
+ }
146
+ free() {
147
+ const { gl, _vao, _globalsbuffer, program } = this;
94
148
  gl.deleteVertexArray(_vao);
95
149
  // gl.deleteBuffer(_attbuffer);
96
150
  gl.deleteBuffer(_globalsbuffer);
97
151
  gl.deleteProgram(program);
98
- };
99
- return default_1;
100
- }());
152
+ }
153
+ }
101
154
  exports.default = default_1;
@@ -1,11 +1,58 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
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) {
3
+ const util_1 = require("../util");
4
+ const programs_1 = require("../programs");
5
+ const vertexShader = `#version 300 es
6
+
7
+ layout(std140) uniform GlobeCamera {
8
+ mat4 view; // 64 bytes 0
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) {
9
56
  this.gl = gl;
10
57
  this._cameraBlockBindingPoint = 0;
11
58
  this._globalsBlockBindingPoint = 1;
@@ -16,31 +63,31 @@ var default_1 = /** @class */ (function () {
16
63
  this._drawCount = 0;
17
64
  this._globalsbuffer = gl.createBuffer();
18
65
  {
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);
66
+ const { gl, _globalsbuffer } = this;
67
+ gl.bindBuffer(gl.UNIFORM_BUFFER, _globalsbuffer);
68
+ gl.bufferData(gl.UNIFORM_BUFFER, 12, gl.STREAM_DRAW);
69
+ gl.bufferSubData(gl.UNIFORM_BUFFER, 0, new Float32Array([0, options.opacity, options.pointSize]));
70
+ gl.bindBufferBase(gl.UNIFORM_BUFFER, this._globalsBlockBindingPoint, _globalsbuffer);
71
+ gl.bindBuffer(gl.UNIFORM_BUFFER, null);
25
72
  }
26
73
  }
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");
74
+ _createProgram() {
75
+ const gl = this.gl;
76
+ const program = (0, util_1.createProgram)(gl, vertexShader, fragmentShader);
77
+ const ubo = this.cameraUniformBlockTotem.getUBO(); // ubo bl
78
+ const cameraBlockIndex = gl.getUniformBlockIndex(program, "GlobeCamera");
32
79
  gl.uniformBlockBinding(program, cameraBlockIndex, this._cameraBlockBindingPoint);
33
- var globalsBlockIndex = gl.getUniformBlockIndex(program, "Globals");
80
+ const globalsBlockIndex = gl.getUniformBlockIndex(program, "Globals");
34
81
  gl.bindBufferBase(gl.UNIFORM_BUFFER, this._cameraBlockBindingPoint, ubo);
35
82
  gl.uniformBlockBinding(program, globalsBlockIndex, this._globalsBlockBindingPoint);
36
83
  gl.bindBufferBase(gl.UNIFORM_BUFFER, this._globalsBlockBindingPoint, this._globalsbuffer);
37
84
  // numaralarda yanlışlık olabilir
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");
85
+ const start_position = gl.getAttribLocation(program, "start_position");
86
+ const start_time = gl.getAttribLocation(program, "start_time");
87
+ const start_color = gl.getAttribLocation(program, "start_color");
88
+ const end_position = gl.getAttribLocation(program, "end_position");
89
+ const end_time = gl.getAttribLocation(program, "end_time");
90
+ const end_color = gl.getAttribLocation(program, "end_color");
44
91
  gl.bindVertexArray(this._vao);
45
92
  gl.bindBuffer(gl.ARRAY_BUFFER, this._attbuffer);
46
93
  gl.enableVertexAttribArray(start_position);
@@ -58,44 +105,43 @@ var default_1 = /** @class */ (function () {
58
105
  gl.bindVertexArray(null);
59
106
  gl.bindBuffer(gl.ARRAY_BUFFER, null);
60
107
  return program;
61
- };
62
- default_1.prototype.setOpacity = function (opacity) {
63
- var _a = this, gl = _a.gl, _globalsbuffer = _a._globalsbuffer;
108
+ }
109
+ setOpacity(opacity) {
110
+ const { gl, _globalsbuffer } = this;
64
111
  gl.bindBuffer(gl.UNIFORM_BUFFER, _globalsbuffer);
65
112
  gl.bufferSubData(gl.UNIFORM_BUFFER, 4, new Float32Array([opacity]));
66
113
  gl.bindBuffer(gl.UNIFORM_BUFFER, null);
67
- };
68
- default_1.prototype.setDrawCount = function (count) {
114
+ }
115
+ setDrawCount(count) {
69
116
  this._drawCount = count;
70
- };
71
- default_1.prototype.setPointSize = function (size) {
72
- var _a = this, gl = _a.gl, _globalsbuffer = _a._globalsbuffer;
117
+ }
118
+ setPointSize(size) {
119
+ const { gl, _globalsbuffer } = this;
73
120
  gl.bindBuffer(gl.UNIFORM_BUFFER, _globalsbuffer);
74
121
  gl.bufferSubData(gl.UNIFORM_BUFFER, 8, new Float32Array([size]));
75
122
  gl.bindBuffer(gl.UNIFORM_BUFFER, null);
76
- };
77
- default_1.prototype.setHeadTime = function (time) {
78
- var _a = this, gl = _a.gl, _globalsbuffer = _a._globalsbuffer;
123
+ }
124
+ setHeadTime(time) {
125
+ const { gl, _globalsbuffer } = this;
79
126
  gl.bindBuffer(gl.UNIFORM_BUFFER, _globalsbuffer);
80
127
  gl.bufferSubData(gl.UNIFORM_BUFFER, 0, new Float32Array([time]));
81
128
  gl.bindBuffer(gl.UNIFORM_BUFFER, null);
82
- };
83
- default_1.prototype.draw = function () {
84
- var _a = this, gl = _a.gl, program = _a.program, _vao = _a._vao, _drawCount = _a._drawCount;
129
+ }
130
+ draw() {
131
+ const { gl, program, _vao, _drawCount } = this;
85
132
  gl.useProgram(program);
86
133
  gl.bindVertexArray(_vao);
87
134
  gl.disable(gl.DEPTH_TEST);
88
135
  gl.drawArrays(gl.POINTS, 0, _drawCount);
89
136
  gl.enable(gl.DEPTH_TEST);
90
137
  gl.bindVertexArray(null);
91
- };
92
- default_1.prototype.free = function () {
93
- var _a = this, gl = _a.gl, _vao = _a._vao, _globalsbuffer = _a._globalsbuffer, program = _a.program;
138
+ }
139
+ free() {
140
+ const { gl, _vao, _globalsbuffer, program } = this;
94
141
  gl.deleteVertexArray(_vao);
95
142
  // gl.deleteBuffer(_attbuffer);
96
143
  gl.deleteBuffer(_globalsbuffer);
97
144
  gl.deleteProgram(program);
98
- };
99
- return default_1;
100
- }());
145
+ }
146
+ }
101
147
  exports.default = default_1;
@@ -19,9 +19,8 @@
19
19
  * This unpredicatable behavior is not handled by this class.
20
20
  */
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
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;
22
+ class default_1 {
23
+ constructor(itemSize, { capacity = 10, bufferType = "STATIC_DRAW" } = {}) {
25
24
  this.itemSize = itemSize;
26
25
  this.bufferType = bufferType;
27
26
  this.offSetMap = new Map();
@@ -29,52 +28,36 @@ var default_1 = /** @class */ (function () {
29
28
  this._capacity = capacity;
30
29
  this._length = 0;
31
30
  }
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) {
31
+ get length() {
32
+ return this._length;
33
+ }
34
+ get capacity() {
35
+ return this._capacity;
36
+ }
37
+ getOffset(key) {
47
38
  return this.offSetMap.get(key);
48
- };
49
- default_1.prototype.setOffset = function (key, offset) {
39
+ }
40
+ setOffset(key, offset) {
50
41
  this.offSetMap.set(key, offset);
51
- };
52
- default_1.prototype.nextOffset = function () {
42
+ }
43
+ nextOffset() {
53
44
  if (this.tombstoneOffSet.length > 0) {
54
- var offset = this.tombstoneOffSet.pop();
45
+ const offset = this.tombstoneOffSet.pop();
55
46
  return offset;
56
47
  }
57
48
  if (this._length < this._capacity) {
58
49
  return this._length++ * this.itemSize * 4;
59
50
  }
60
51
  return false;
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);
52
+ }
53
+ get spaceLeft() {
54
+ return this._capacity - (this._length - this.tombstoneOffSet.length);
55
+ }
56
+ get itemCount() {
57
+ return this._length - this.tombstoneOffSet.length;
58
+ }
59
+ deleteFromAccount(key) {
60
+ const offSet = this.offSetMap.get(key);
78
61
  if (offSet !== undefined) {
79
62
  this.tombstoneOffSet.push(offSet);
80
63
  this.offSetMap.delete(key);
@@ -83,41 +66,38 @@ var default_1 = /** @class */ (function () {
83
66
  else {
84
67
  return false;
85
68
  }
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);
69
+ }
70
+ _deleteBulk(keys) {
71
+ const { gl, buffer } = this;
72
+ const emptyBlock = new Float32Array(this.itemSize).fill(0);
90
73
  gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
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);
74
+ for (let key of keys) {
75
+ const offset = this.getOffset(key);
94
76
  if (offset !== undefined) {
95
77
  this.deleteFromAccount(key);
96
78
  gl.bufferSubData(gl.ARRAY_BUFFER, offset, emptyBlock);
97
79
  }
98
80
  }
99
81
  gl.bindBuffer(gl.ARRAY_BUFFER, null);
100
- };
101
- default_1.prototype.offsetMapIterator = function () {
82
+ }
83
+ offsetMapIterator() {
102
84
  return this.offSetMap.entries();
103
- };
85
+ }
104
86
  // TODO: this is broken
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;
87
+ defrag(newCapacity = null) {
88
+ const { gl, buffer, bufferType } = this;
108
89
  if (gl === undefined || buffer === undefined || bufferType === undefined) {
109
90
  throw new Error("gl, buffer, bufferType are required");
110
91
  }
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;
92
+ const itemSize = this.itemSize;
93
+ const itemCount = this.itemCount;
94
+ const capacity = (newCapacity && newCapacity > itemCount) ? newCapacity : itemCount;
95
+ const newArray = new Float32Array(itemCount * itemSize);
96
+ const bufferData = this._getBufferData();
97
+ let newOffSet = 0;
98
+ const newOffSetMap = new Map();
99
+ for (const [key, offSet] of this.offSetMap) {
100
+ const itemOffSet = offSet / 4;
121
101
  newArray.set(bufferData.slice(itemOffSet, itemOffSet + itemSize), newOffSet);
122
102
  // this.offSetMap.set(key, newOffSet * 4);
123
103
  newOffSetMap.set(key, newOffSet * 4);
@@ -131,23 +111,23 @@ var default_1 = /** @class */ (function () {
131
111
  this.tombstoneOffSet = [];
132
112
  this._length = itemCount;
133
113
  this.offSetMap = newOffSetMap;
134
- };
135
- default_1.prototype.autoExtendBuffer = function (payloadSize) {
114
+ }
115
+ autoExtendBuffer(payloadSize) {
136
116
  if (payloadSize <= this.spaceLeft)
137
117
  return;
138
- var newCapacity = Math.ceil((payloadSize + this.length));
118
+ const newCapacity = Math.ceil((payloadSize + this.length));
139
119
  this.extendBuffer(newCapacity);
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();
120
+ }
121
+ extendBuffer(newCapacity) {
122
+ const { gl, buffer, bufferType } = this;
123
+ const itemSize = this.itemSize;
124
+ const bufferData = this._getBufferData();
145
125
  gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
146
126
  gl.bufferData(gl.ARRAY_BUFFER, newCapacity * itemSize * 4, gl[bufferType]);
147
127
  gl.bufferSubData(gl.ARRAY_BUFFER, 0, bufferData);
148
128
  gl.bindBuffer(gl.ARRAY_BUFFER, null);
149
129
  this._capacity = newCapacity;
150
- };
130
+ }
151
131
  /** implicit methods to be used by the child class */
152
132
  /**
153
133
  * @typedef {Float32Array} payload
@@ -155,48 +135,45 @@ var default_1 = /** @class */ (function () {
155
135
  * @param {number} partOffset
156
136
  * @returns
157
137
  */
158
- default_1.prototype._updatePartial = function (items, partOffset) {
159
- var _a = this, gl = _a.gl, buffer = _a.buffer;
160
- var partStart = partOffset * 4;
138
+ _updatePartial(items, partOffset) {
139
+ const { gl, buffer } = this;
140
+ const partStart = partOffset * 4;
161
141
  gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
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);
142
+ for (let { key, payload } of items) {
143
+ let offset = this.getOffset(key);
165
144
  if (offset !== undefined) {
166
145
  gl.bufferSubData(gl.ARRAY_BUFFER, offset + partStart, payload);
167
146
  }
168
147
  }
169
148
  gl.bindBuffer(gl.ARRAY_BUFFER, null);
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);
149
+ }
150
+ _getBufferData() {
151
+ const { gl, buffer } = this;
152
+ const size = new Float32Array(this.length * this.itemSize);
153
+ const bufferData = new Float32Array(size);
175
154
  gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
176
155
  gl.getBufferSubData(gl.ARRAY_BUFFER, 0, bufferData);
177
156
  gl.bindBuffer(gl.ARRAY_BUFFER, null);
178
157
  return bufferData;
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);
158
+ }
159
+ _removeFromBuffer(keys) {
160
+ const { gl, buffer } = this;
161
+ const emptyBlock = new Float32Array(this.itemSize).fill(0);
183
162
  gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
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);
163
+ for (let key of keys) {
164
+ let offset = this.getOffset(key);
187
165
  if (offset !== undefined) {
188
166
  this.deleteFromAccount(key);
189
167
  gl.bufferSubData(gl.ARRAY_BUFFER, offset, emptyBlock);
190
168
  }
191
169
  }
192
170
  gl.bindBuffer(gl.ARRAY_BUFFER, null);
193
- };
194
- default_1.prototype.free = function () {
171
+ }
172
+ free() {
195
173
  this.gl.deleteBuffer(this.buffer);
196
174
  this.buffer = null;
197
175
  this.vao = null;
198
176
  this.gl = null;
199
- };
200
- return default_1;
201
- }());
177
+ }
178
+ }
202
179
  exports.default = default_1;
@@ -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
- var bufferoffsetmanager_1 = __importDefault(require("./bufferoffsetmanager"));
21
+ const bufferoffsetmanager_1 = __importDefault(require("./bufferoffsetmanager"));
22
22
  exports.BufferOffsetManager = bufferoffsetmanager_1.default;
23
23
  __exportStar(require("./single-attribute-buffer-management/index"), exports);