@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.
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 +80 -78
  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 +16 -14
  9. package/Math/methods.js +72 -67
  10. package/Math/plane.js +18 -16
  11. package/Math/quaternion.js +49 -45
  12. package/Math/utils.js +2 -2
  13. package/Math/vec3.js +45 -42
  14. package/algorithms/search-binary.js +4 -4
  15. package/altitude-locator/draw-subset-obj.js +8 -7
  16. package/altitude-locator/plugin.js +113 -97
  17. package/arrowfield/adaptor.js +4 -3
  18. package/arrowfield/index.js +2 -2
  19. package/arrowfield/plugin.js +65 -62
  20. package/bearing-line/index.js +1 -1
  21. package/bearing-line/plugin.js +225 -200
  22. package/circle-line-chain/chain-list-map.js +88 -82
  23. package/circle-line-chain/plugin.js +154 -129
  24. package/circle-line-chain/util.js +1 -1
  25. package/compass-rose/compass-rose-padding-flat.js +126 -104
  26. package/compass-rose/compass-text-writer.js +70 -62
  27. package/compass-rose/index.js +2 -2
  28. package/compassrose/compassrose.js +50 -46
  29. package/compassrose/index.js +1 -1
  30. package/heatwave/index.js +2 -2
  31. package/heatwave/isobar/objectarraylabels.js +48 -44
  32. package/heatwave/isobar/plugin.js +123 -104
  33. package/heatwave/isobar/quadtreecontours.js +92 -76
  34. package/heatwave/plugins/heatwaveglobeshell.js +87 -69
  35. package/index.js +11 -11
  36. package/package.json +1 -1
  37. package/partialrings/buffer-manager.js +64 -32
  38. package/partialrings/index.js +1 -1
  39. package/partialrings/plugin.js +84 -48
  40. package/partialrings/program.js +47 -136
  41. package/pin/pin-object-array.js +86 -83
  42. package/pin/pin-point-totem.js +22 -21
  43. package/point-heat-map/adaptors/timetracksplugin-format-to-this.js +10 -10
  44. package/point-heat-map/plugin-webworker.js +45 -40
  45. package/point-heat-map/point-to-heat-map-flow.js +42 -40
  46. package/point-tracks/key-methods.js +1 -1
  47. package/point-tracks/plugin.js +142 -127
  48. package/programs/arrowfield/index.js +1 -1
  49. package/programs/arrowfield/logic.js +62 -170
  50. package/programs/arrowfield/object.js +35 -33
  51. package/programs/data2legend/density-to-legend.js +21 -45
  52. package/programs/data2legend/point-to-density-texture.js +27 -52
  53. package/programs/float2legendwithratio/index.js +1 -1
  54. package/programs/float2legendwithratio/logic.js +42 -88
  55. package/programs/float2legendwithratio/object.js +46 -43
  56. package/programs/globe-util/is-globe-moved.js +11 -10
  57. package/programs/globeshell/index.js +1 -1
  58. package/programs/globeshell/wiggle/index.js +1 -1
  59. package/programs/globeshell/wiggle/logic.js +98 -191
  60. package/programs/globeshell/wiggle/object.js +35 -33
  61. package/programs/helpers/blender/program.js +19 -36
  62. package/programs/helpers/fadeaway/index.js +1 -1
  63. package/programs/helpers/fadeaway/logic.js +13 -35
  64. package/programs/helpers/fadeaway/object.js +10 -9
  65. package/programs/helpers/index.js +1 -1
  66. package/programs/index.js +8 -8
  67. package/programs/line-on-globe/angled-line.js +32 -91
  68. package/programs/line-on-globe/circle-accurate-3d.js +32 -82
  69. package/programs/line-on-globe/circle-accurate-flat.js +50 -108
  70. package/programs/line-on-globe/circle-accurate.js +33 -103
  71. package/programs/line-on-globe/circle.js +32 -97
  72. package/programs/line-on-globe/degree-padding-around-circle-3d.js +33 -83
  73. package/programs/line-on-globe/lines-color-instanced-flat.js +34 -79
  74. package/programs/line-on-globe/linestrip.js +39 -100
  75. package/programs/line-on-globe/naive-accurate-flexible.js +48 -118
  76. package/programs/line-on-globe/to-the-surface.js +29 -58
  77. package/programs/line-on-globe/util.js +1 -1
  78. package/programs/picking/pickable-renderer.js +33 -117
  79. package/programs/point-on-globe/element-globe-surface-glow.js +38 -78
  80. package/programs/point-on-globe/element-point-glow.js +35 -103
  81. package/programs/point-on-globe/square-pixel-point.js +27 -76
  82. package/programs/programcache.js +13 -13
  83. package/programs/rings/distancering/circleflatprogram.js +21 -63
  84. package/programs/rings/distancering/circlepaddingfreeangleprogram.js +145 -156
  85. package/programs/rings/distancering/circlepaddysharedbuffer.js +197 -121
  86. package/programs/rings/distancering/index.js +4 -4
  87. package/programs/rings/distancering/paddyflatprogram.js +20 -73
  88. package/programs/rings/distancering/paddyflatprogram2d.js +22 -75
  89. package/programs/rings/distancering/paddyflatprogram3d.js +20 -73
  90. package/programs/rings/partial-ring/piece-of-pie.js +35 -137
  91. package/programs/totems/camerauniformblock.js +51 -64
  92. package/programs/totems/canvas-webglobe-info.js +40 -48
  93. package/programs/totems/gpu-selection-uniform-block.js +40 -44
  94. package/programs/totems/index.js +1 -1
  95. package/programs/two-d/pixel-padding-for-compass.js +29 -90
  96. package/programs/util.js +7 -6
  97. package/programs/vectorfields/index.js +1 -1
  98. package/programs/vectorfields/logics/drawrectangleparticles.js +29 -70
  99. package/programs/vectorfields/logics/index.js +3 -3
  100. package/programs/vectorfields/logics/pixelbased.js +35 -91
  101. package/programs/vectorfields/logics/ubo.js +25 -31
  102. package/programs/vectorfields/pingpongbuffermanager.js +34 -30
  103. package/rangerings/index.js +4 -4
  104. package/rangerings/plugin.js +252 -202
  105. package/rangerings/rangeringangletext.js +120 -108
  106. package/rangerings/ring-account.js +69 -52
  107. package/shaders/fragment-toy/firework.js +1 -55
  108. package/shaders/fragment-toy/singularity.js +1 -55
  109. package/timetracks/adaptors-line-strip.js +37 -26
  110. package/timetracks/adaptors.js +61 -47
  111. package/timetracks/index.js +4 -4
  112. package/timetracks/plugin-line-strip.js +63 -59
  113. package/timetracks/plugin.js +69 -65
  114. package/timetracks/program-line-strip.js +103 -296
  115. package/timetracks/program.js +113 -419
  116. package/timetracks/programpoint-line-strip.js +44 -97
  117. package/timetracks/programpoint.js +44 -90
  118. package/util/account/bufferoffsetmanager.js +95 -72
  119. package/util/account/index.js +1 -1
  120. package/util/account/single-attribute-buffer-management/buffer-manager.js +43 -39
  121. package/util/account/single-attribute-buffer-management/buffer-orchestrator.js +94 -64
  122. package/util/account/single-attribute-buffer-management/index.js +3 -3
  123. package/util/account/single-attribute-buffer-management/object-store.js +30 -28
  124. package/util/account/util.js +4 -2
  125. package/util/algorithms/search-binary.js +4 -4
  126. package/util/check/get.js +5 -5
  127. package/util/check/typecheck.js +15 -13
  128. package/util/geometry/index.js +11 -9
  129. package/util/gl-util/buffer/attribute-loader.js +20 -8
  130. package/util/gl-util/buffer/index.js +1 -1
  131. package/util/gl-util/draw-options/methods.js +7 -7
  132. package/util/gl-util/uniform-block/manager.js +67 -55
  133. package/util/heatwavedatamanager/datamanager.js +116 -56
  134. package/util/heatwavedatamanager/index.js +2 -2
  135. package/util/heatwavedatamanager/pointcoordinatesdatacalculator.js +40 -37
  136. package/util/heatwavedatamanager/pointcoordsmeta.js +10 -9
  137. package/util/index.js +6 -6
  138. package/util/interpolation/timetrack/index.js +1 -1
  139. package/util/interpolation/timetrack/timetrack-interpolator.js +29 -27
  140. package/util/interpolation/timetrack/web-worker-str.js +1 -179
  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 +52 -46
  146. package/util/programs/draw-texture-on-canvas.js +21 -39
  147. package/util/programs/shapesonglobe.js +64 -104
  148. package/util/programs/supersampletotextures.js +39 -45
  149. package/util/programs/texturetoglobe.js +48 -98
  150. package/util/shaderfunctions/geometrytransformations.js +27 -322
  151. package/util/shaderfunctions/nodata.js +1 -7
  152. package/util/shaderfunctions/noisefunctions.js +9 -39
  153. package/util/surface-line-data/arcs-to-cuts.js +23 -20
  154. package/util/webglobe/rasteroverlay.js +37 -35
  155. package/util/webglobjectbuilders.js +60 -55
  156. package/util/webglobjectbuilders1.js +49 -48
  157. package/waveparticles/adaptor.js +7 -6
  158. package/waveparticles/index.js +2 -2
  159. package/waveparticles/plugin.js +84 -79
  160. package/wind/imagetovectorfieldandmagnitude.js +15 -15
  161. package/wind/index.js +4 -4
  162. package/wind/plugin.js +251 -453
  163. package/wind/vectorfieldimage.js +5 -5
  164. package/write-text/attached-text-writer.js +48 -46
  165. package/write-text/context-text.js +58 -51
  166. 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
- 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) {
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
- 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);
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
- 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");
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
- const globalsBlockIndex = gl.getUniformBlockIndex(program, "Globals");
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
- 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");
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
- const { gl, _globalsbuffer } = this;
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
- const { gl, _globalsbuffer } = this;
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
- const { gl, _globalsbuffer } = this;
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
- const { gl, program, _vao, _drawCount } = this;
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
- const { gl, _vao, _globalsbuffer, program } = this;
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
- 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) {
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
- 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);
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
- 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");
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
- const globalsBlockIndex = gl.getUniformBlockIndex(program, "Globals");
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
- 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");
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
- const { gl, _globalsbuffer } = this;
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
- const { gl, _globalsbuffer } = this;
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
- const { gl, _globalsbuffer } = this;
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
- const { gl, program, _vao, _drawCount } = this;
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
- const { gl, _vao, _globalsbuffer, program } = this;
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
- class default_1 {
23
- constructor(itemSize, { capacity = 10, bufferType = "STATIC_DRAW" } = {}) {
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
- get length() {
32
- return this._length;
33
- }
34
- get capacity() {
35
- return this._capacity;
36
- }
37
- getOffset(key) {
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
- const offset = this.tombstoneOffSet.pop();
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
- 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);
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
- const { gl, buffer } = this;
72
- const emptyBlock = new Float32Array(this.itemSize).fill(0);
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 (let key of keys) {
75
- const offset = this.getOffset(key);
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(newCapacity = null) {
88
- const { gl, buffer, bufferType } = this;
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
- 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;
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
- const newCapacity = Math.ceil((payloadSize + this.length));
138
+ var newCapacity = Math.ceil((payloadSize + this.length));
119
139
  this.extendBuffer(newCapacity);
120
- }
121
- extendBuffer(newCapacity) {
122
- const { gl, buffer, bufferType } = this;
123
- const itemSize = this.itemSize;
124
- const bufferData = this._getBufferData();
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
- const { gl, buffer } = this;
140
- const partStart = partOffset * 4;
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 (let { key, payload } of items) {
143
- let offset = this.getOffset(key);
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
- const { gl, buffer } = this;
152
- const size = new Float32Array(this.length * this.itemSize);
153
- const bufferData = new Float32Array(size);
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
- const { gl, buffer } = this;
161
- const emptyBlock = new Float32Array(this.itemSize).fill(0);
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 (let key of keys) {
164
- let offset = this.getOffset(key);
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;
@@ -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
- const bufferoffsetmanager_1 = __importDefault(require("./bufferoffsetmanager"));
21
+ var bufferoffsetmanager_1 = __importDefault(require("./bufferoffsetmanager"));
22
22
  exports.BufferOffsetManager = bufferoffsetmanager_1.default;
23
23
  __exportStar(require("./single-attribute-buffer-management/index"), exports);