@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
@@ -5,14 +5,14 @@
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.PickerDisplayer = void 0;
8
- const draw_texture_on_canvas_1 = require("../programs/draw-texture-on-canvas");
9
- const fence_1 = require("./fence");
10
- const ESCAPE_VALUE = -1;
11
- class PickerDisplayer {
12
- constructor(globe) {
8
+ var draw_texture_on_canvas_1 = require("../programs/draw-texture-on-canvas");
9
+ var fence_1 = require("./fence");
10
+ var ESCAPE_VALUE = -1;
11
+ var PickerDisplayer = /** @class */ (function () {
12
+ function PickerDisplayer(globe) {
13
13
  this.globe = globe;
14
14
  this.gl = globe.gl;
15
- const gl = this.gl;
15
+ var gl = this.gl;
16
16
  this.colorTexture = gl.createTexture(); // bind to color attachment 0
17
17
  this.indexTexture = gl.createTexture(); // bind to color attachment 1
18
18
  this.fbo = gl.createFramebuffer();
@@ -21,37 +21,39 @@ class PickerDisplayer {
21
21
  this.resize();
22
22
  this.displayer = draw_texture_on_canvas_1.textureOnCanvasProgramCache.get(this.gl);
23
23
  }
24
- resize(width = null, height = null) {
24
+ PickerDisplayer.prototype.resize = function (width, height) {
25
+ if (width === void 0) { width = null; }
26
+ if (height === void 0) { height = null; }
25
27
  if (width === null || height === null) {
26
28
  width = this.globe.api_ScrW();
27
29
  height = this.globe.api_ScrH();
28
30
  }
29
- const { gl, colorTexture, indexTexture } = this;
31
+ var _a = this, gl = _a.gl, colorTexture = _a.colorTexture, indexTexture = _a.indexTexture;
30
32
  gl.deleteTexture(colorTexture);
31
33
  gl.deleteTexture(indexTexture);
32
- const colorTextureNew = gl.createTexture();
34
+ var colorTextureNew = gl.createTexture();
33
35
  gl.bindTexture(gl.TEXTURE_2D, colorTextureNew);
34
36
  gl.texStorage2D(gl.TEXTURE_2D, 1, gl.RGBA8, width, height);
35
- const indexTextureNew = gl.createTexture();
37
+ var indexTextureNew = gl.createTexture();
36
38
  gl.bindTexture(gl.TEXTURE_2D, indexTextureNew);
37
39
  // gl.texStorage2D(gl.TEXTURE_2D, 1, gl.R16I, width, height);
38
40
  gl.texStorage2D(gl.TEXTURE_2D, 1, gl.R32I, width, height);
39
41
  gl.bindTexture(gl.TEXTURE_2D, null);
40
42
  this.colorTexture = colorTextureNew;
41
43
  this.indexTexture = indexTextureNew;
42
- }
43
- clearTextures() {
44
- const { gl, colorTexture, indexTexture } = this;
44
+ };
45
+ PickerDisplayer.prototype.clearTextures = function () {
46
+ var _a = this, gl = _a.gl, colorTexture = _a.colorTexture, indexTexture = _a.indexTexture;
45
47
  gl.activeTexture(gl.TEXTURE1);
46
48
  gl.bindTexture(gl.TEXTURE_2D, indexTexture);
47
49
  gl.clearBufferiv(gl.COLOR, 1, new Int32Array([-1, -1, -1, -1]));
48
50
  gl.activeTexture(gl.TEXTURE0);
49
51
  gl.bindTexture(gl.TEXTURE_2D, colorTexture);
50
52
  gl.clearBufferfv(gl.COLOR, 0, new Float32Array([0, 0, 0, 0]));
51
- }
53
+ };
52
54
  // call before drawing the scene with gl picker shader
53
- bindFBO() {
54
- const { gl, colorTexture, indexTexture, fbo } = this;
55
+ PickerDisplayer.prototype.bindFBO = function () {
56
+ var _a = this, gl = _a.gl, colorTexture = _a.colorTexture, indexTexture = _a.indexTexture, fbo = _a.fbo;
55
57
  gl.activeTexture(gl.TEXTURE1);
56
58
  gl.bindTexture(gl.TEXTURE_2D, indexTexture);
57
59
  gl.activeTexture(gl.TEXTURE0);
@@ -62,27 +64,30 @@ class PickerDisplayer {
62
64
  gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT1, gl.TEXTURE_2D, this.indexTexture, 0);
63
65
  gl.drawBuffers([gl.COLOR_ATTACHMENT0, gl.COLOR_ATTACHMENT1]);
64
66
  }
65
- }
67
+ };
66
68
  // call after drawing the scene with gl picker shader
67
- drawColorTexture() {
68
- const { colorTexture } = this;
69
+ PickerDisplayer.prototype.drawColorTexture = function () {
70
+ var colorTexture = this.colorTexture;
69
71
  this.gl.bindFramebuffer(this.gl.FRAMEBUFFER, null);
70
72
  this.displayer.draw(colorTexture);
71
- }
72
- pickXY(x, y, selectionPointFilling = 1, callback = () => { }) {
73
- const size = Math.pow(1 + 2 * selectionPointFilling, 2);
73
+ };
74
+ PickerDisplayer.prototype.pickXY = function (x, y, selectionPointFilling, callback) {
75
+ if (selectionPointFilling === void 0) { selectionPointFilling = 1; }
76
+ if (callback === void 0) { callback = function () { }; }
77
+ var size = Math.pow(1 + 2 * selectionPointFilling, 2);
74
78
  this._pick(size, x - selectionPointFilling, y - selectionPointFilling, 1 + 2 * selectionPointFilling, 1 + 2 * selectionPointFilling, callback);
75
- }
76
- pickBbox(left, top, right, bottom, callback) {
77
- const size = (right - left) * (bottom - top) * 4;
79
+ };
80
+ PickerDisplayer.prototype.pickBbox = function (left, top, right, bottom, callback) {
81
+ var size = (right - left) * (bottom - top) * 4;
78
82
  this._pick(size, left, top, right - left, bottom - top, callback);
79
- }
80
- _pick(size, startX, startY, lengthX, lengthY, callback) {
83
+ };
84
+ PickerDisplayer.prototype._pick = function (size, startX, startY, lengthX, lengthY, callback) {
85
+ var _this = this;
81
86
  if (this._inProgress)
82
87
  return false;
83
88
  this._inProgress = true;
84
89
  this._initHoldBuffer(size * 4);
85
- const { gl, _pbo } = this;
90
+ var _a = this, gl = _a.gl, _pbo = _a._pbo;
86
91
  gl.bindBuffer(gl.PIXEL_PACK_BUFFER, _pbo);
87
92
  this.bindFBO();
88
93
  gl.readBuffer(gl.COLOR_ATTACHMENT1); // This is the attachment we want to read
@@ -90,35 +95,35 @@ class PickerDisplayer {
90
95
  startX, startY, lengthX, lengthY, gl.RED_INTEGER, gl.INT, 0);
91
96
  gl.bindFramebuffer(gl.FRAMEBUFFER, null);
92
97
  gl.bindBuffer(gl.PIXEL_PACK_BUFFER, null);
93
- (0, fence_1.fence)(this.gl).then(() => {
98
+ (0, fence_1.fence)(this.gl).then(function () {
94
99
  gl.bindBuffer(gl.PIXEL_PACK_BUFFER, _pbo);
95
100
  // const data = new Int16Array(size);
96
- const data = new Int32Array(size);
101
+ var data = new Int32Array(size);
97
102
  gl.getBufferSubData(gl.PIXEL_PACK_BUFFER, 0, data);
98
103
  gl.bindBuffer(gl.PIXEL_PACK_BUFFER, null);
99
- const result = this._pickFromBuffer(data, size);
104
+ var result = _this._pickFromBuffer(data, size);
100
105
  callback(result);
101
106
  // gl.deleteBuffer(pbo);
102
- this._inProgress = false;
107
+ _this._inProgress = false;
103
108
  });
104
109
  return true;
105
- }
106
- _pickFromBuffer(array, size) {
107
- const selectedObjects = new Set();
108
- for (let i = 0; i < size; i += 1) {
109
- const id = array[i];
110
+ };
111
+ PickerDisplayer.prototype._pickFromBuffer = function (array, size) {
112
+ var selectedObjects = new Set();
113
+ for (var i = 0; i < size; i += 1) {
114
+ var id = array[i];
110
115
  if (id !== ESCAPE_VALUE) {
111
116
  selectedObjects.add(id);
112
117
  }
113
118
  }
114
119
  return selectedObjects;
115
- }
116
- _initHoldBuffer(size) {
120
+ };
121
+ PickerDisplayer.prototype._initHoldBuffer = function (size) {
117
122
  if (this._pbo && this._pboSize >= size) {
118
123
  return;
119
124
  }
120
- const { gl } = this;
121
- const pbo = gl.createBuffer();
125
+ var gl = this.gl;
126
+ var pbo = gl.createBuffer();
122
127
  gl.bindBuffer(gl.PIXEL_PACK_BUFFER, pbo);
123
128
  gl.bufferData(gl.PIXEL_PACK_BUFFER, size, gl.STREAM_READ);
124
129
  gl.bindBuffer(gl.PIXEL_PACK_BUFFER, null);
@@ -127,13 +132,14 @@ class PickerDisplayer {
127
132
  gl.deleteBuffer(this._pbo);
128
133
  }
129
134
  this._pbo = pbo;
130
- }
131
- free() {
132
- const { gl, colorTexture, indexTexture, fbo } = this;
135
+ };
136
+ PickerDisplayer.prototype.free = function () {
137
+ var _a = this, gl = _a.gl, colorTexture = _a.colorTexture, indexTexture = _a.indexTexture, fbo = _a.fbo;
133
138
  gl.deleteTexture(colorTexture);
134
139
  gl.deleteTexture(indexTexture);
135
140
  gl.deleteFramebuffer(fbo);
136
141
  draw_texture_on_canvas_1.textureOnCanvasProgramCache.release(this.gl);
137
- }
138
- }
142
+ };
143
+ return PickerDisplayer;
144
+ }());
139
145
  exports.PickerDisplayer = PickerDisplayer;
@@ -1,33 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.textureOnCanvasProgramCache = void 0;
4
- const webglobjectbuilders_1 = require("../webglobjectbuilders");
5
- const programs_1 = require("../../programs");
4
+ var webglobjectbuilders_1 = require("../webglobjectbuilders");
5
+ var programs_1 = require("../../programs");
6
6
  // import { CameraUniformBlockTotemCache, CameraUniformBlockString } from "../../programs/totems";
7
- const vs = `#version 300 es
8
- precision highp float;
9
-
10
- in vec2 a_position;
11
- out vec2 v_texcoord;
12
-
13
- void main() {
14
- gl_Position = vec4(a_position, 0.0, 1.0);
15
- v_texcoord = a_position * 0.5 + 0.5;
16
- }`;
17
- const fs = `#version 300 es
18
- precision highp float;
19
-
20
- uniform sampler2D u_texture;
21
- uniform float u_opacity;
22
- in vec2 v_texcoord;
23
- out vec4 fragColor;
24
-
25
- void main() {
26
- fragColor = texture(u_texture, v_texcoord);
27
- fragColor.a *= u_opacity;
28
- }`;
29
- class TextureOnCanvasProgram {
30
- constructor(gl) {
7
+ var vs = "#version 300 es\nprecision highp float;\n\nin vec2 a_position;\nout vec2 v_texcoord;\n\nvoid main() {\n gl_Position = vec4(a_position, 0.0, 1.0);\n v_texcoord = a_position * 0.5 + 0.5;\n}";
8
+ var fs = "#version 300 es\nprecision highp float;\n\nuniform sampler2D u_texture;\nuniform float u_opacity; \nin vec2 v_texcoord;\nout vec4 fragColor;\n\nvoid main() {\n fragColor = texture(u_texture, v_texcoord);\n fragColor.a *= u_opacity;\n}";
9
+ var TextureOnCanvasProgram = /** @class */ (function () {
10
+ function TextureOnCanvasProgram(gl) {
31
11
  this.gl = gl;
32
12
  this.vao = this.gl.createVertexArray();
33
13
  this.buffer = this.gl.createBuffer();
@@ -45,22 +25,23 @@ class TextureOnCanvasProgram {
45
25
  this.gl.bindBuffer(this.gl.ARRAY_BUFFER, null);
46
26
  this.program = (0, webglobjectbuilders_1.createProgram)(this.gl, vs, fs);
47
27
  {
48
- const { gl, program } = this;
28
+ var _a = this, gl_1 = _a.gl, program = _a.program;
49
29
  this.uniforms = {
50
- texture: gl.getUniformLocation(program, "u_texture"),
51
- opacity: gl.getUniformLocation(program, "u_opacity"),
30
+ texture: gl_1.getUniformLocation(program, "u_texture"),
31
+ opacity: gl_1.getUniformLocation(program, "u_opacity"),
52
32
  };
53
33
  }
54
34
  {
55
35
  this._lastOpacity = 1.0;
56
- const currentProgram = this.gl.getParameter(this.gl.CURRENT_PROGRAM);
36
+ var currentProgram = this.gl.getParameter(this.gl.CURRENT_PROGRAM);
57
37
  this.gl.useProgram(this.program);
58
38
  this.gl.uniform1f(this.uniforms.opacity, this._lastOpacity);
59
39
  this.gl.useProgram(currentProgram);
60
40
  }
61
41
  }
62
- draw(texture, { opacity = 1.0 } = {}) {
63
- const { gl, program, uniforms, vao } = this;
42
+ TextureOnCanvasProgram.prototype.draw = function (texture, _a) {
43
+ var _b = _a === void 0 ? {} : _a, _c = _b.opacity, opacity = _c === void 0 ? 1.0 : _c;
44
+ var _d = this, gl = _d.gl, program = _d.program, uniforms = _d.uniforms, vao = _d.vao;
64
45
  gl.useProgram(program);
65
46
  gl.bindVertexArray(vao);
66
47
  gl.activeTexture(gl.TEXTURE0);
@@ -72,18 +53,19 @@ class TextureOnCanvasProgram {
72
53
  }
73
54
  gl.drawArrays(gl.TRIANGLE_FAN, 0, 4);
74
55
  gl.bindVertexArray(null);
75
- }
76
- free() {
56
+ };
57
+ TextureOnCanvasProgram.prototype.free = function () {
77
58
  if (this._isFreed)
78
59
  return;
79
60
  this.gl.deleteVertexArray(this.vao);
80
61
  this.gl.deleteBuffer(this.buffer);
81
62
  this.gl.deleteProgram(this.program);
82
63
  this._isFreed = true;
83
- }
84
- }
85
- const textureOnCanvasProgramCache = Object.freeze({
86
- get: (gl) => programs_1.glProgramCache.getProgram(gl, TextureOnCanvasProgram),
87
- release: (gl) => programs_1.glProgramCache.releaseProgram(gl, TextureOnCanvasProgram)
64
+ };
65
+ return TextureOnCanvasProgram;
66
+ }());
67
+ var textureOnCanvasProgramCache = Object.freeze({
68
+ get: function (gl) { return programs_1.glProgramCache.getProgram(gl, TextureOnCanvasProgram); },
69
+ release: function (gl) { return programs_1.glProgramCache.releaseProgram(gl, TextureOnCanvasProgram); }
88
70
  });
89
71
  exports.textureOnCanvasProgramCache = textureOnCanvasProgramCache;
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ShapesOnGlobeProgram = void 0;
4
- const webglobjectbuilders_1 = require("../webglobjectbuilders");
5
- const camerauniformblock_1 = require("../../programs/totems/camerauniformblock");
6
- const __1 = require("..");
4
+ var webglobjectbuilders_1 = require("../webglobjectbuilders");
5
+ var camerauniformblock_1 = require("../../programs/totems/camerauniformblock");
6
+ var __1 = require("..");
7
7
  /** TODO:
8
8
  * 3d icin calistir
9
9
  */
10
- const drawModeFunc = (gl) => {
11
- return (mode) => {
10
+ var drawModeFunc = function (gl) {
11
+ return function (mode) {
12
12
  return {
13
13
  "point": gl.POINTS,
14
14
  "line": gl.LINES,
@@ -20,8 +20,9 @@ const drawModeFunc = (gl) => {
20
20
  }[mode];
21
21
  };
22
22
  };
23
- class ShapesOnGlobeProgram {
24
- constructor(gl, globe, drawMode = 'point') {
23
+ var ShapesOnGlobeProgram = /** @class */ (function () {
24
+ function ShapesOnGlobeProgram(gl, globe, drawMode) {
25
+ if (drawMode === void 0) { drawMode = 'point'; }
25
26
  this.globe = globe;
26
27
  this.gl = gl;
27
28
  this._getDraw = drawModeFunc(gl);
@@ -32,9 +33,9 @@ class ShapesOnGlobeProgram {
32
33
  this._initUniforms();
33
34
  this.setScreenWH();
34
35
  }
35
- _initUniforms() {
36
- const { gl, _programWrapper } = this;
37
- const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
36
+ ShapesOnGlobeProgram.prototype._initUniforms = function () {
37
+ var _a = this, gl = _a.gl, _programWrapper = _a._programWrapper;
38
+ var currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
38
39
  this._getDrawMode = drawModeFunc(gl);
39
40
  gl.useProgram(_programWrapper.program);
40
41
  gl.uniform1f(_programWrapper.u_opacity, 1.0);
@@ -42,59 +43,16 @@ class ShapesOnGlobeProgram {
42
43
  gl.uniform1f(_programWrapper.height, 0.0);
43
44
  gl.uniform1f(_programWrapper.u_point_size, 1.0);
44
45
  gl.useProgram(currentProgram);
45
- }
46
- _createProgramWrapper() {
47
- const { gl, globe } = this;
48
- const vertexSource = `#version 300 es
49
- precision highp float;
50
- ${camerauniformblock_1.CameraUniformBlockString}
51
-
52
- in vec2 a_position;
53
- in vec4 a_color;
54
-
55
-
56
- uniform bool u_is3D;
57
- uniform float height;
58
-
59
- uniform float u_point_size;
60
-
61
- out vec4 v_color;
62
-
63
- ` + __1.shaderfunctions.pixelXYToCartesian3DPoint + `
64
- ` + __1.shaderfunctions.pixelXYToCartesian2DPoint + `
65
-
66
-
67
- void main() {
68
- vec3 pos = vec3(a_position, height);
69
- if(is3D){
70
- pos = pixelXYToCartesian3DPoint(pos);
71
- gl_Position = projection * view * vec4(pos - translate, 1.0);
72
- } else {
73
- vec2 xy = pixelXYToCartesian2DPoint(pos.xy, translate.xy, mapWH, screenWH);
74
- gl_Position = projection * vec4(xy.x, xy.y, 0.0, 1.0);
75
- }
76
- gl_PointSize = u_point_size;
77
- v_color = a_color;
78
- }
79
- `;
80
- const fragmentSource = `#version 300 es
81
- precision highp float;
82
-
83
- uniform float u_opacity;
84
-
85
- in vec4 v_color;
86
- out vec4 outColor;
87
-
88
- void main() {
89
- outColor = v_color;
90
- outColor.a = u_opacity;
91
- }
92
- `;
93
- const program = (0, webglobjectbuilders_1.createProgram)(gl, vertexSource, fragmentSource);
94
- const a_position = gl.getAttribLocation(program, 'a_position');
95
- const a_color = gl.getAttribLocation(program, 'a_color');
46
+ };
47
+ ShapesOnGlobeProgram.prototype._createProgramWrapper = function () {
48
+ var _a = this, gl = _a.gl, globe = _a.globe;
49
+ var vertexSource = "#version 300 es\n precision highp float;\n ".concat(camerauniformblock_1.CameraUniformBlockString, "\n\n in vec2 a_position;\n in vec4 a_color;\n\n\n uniform bool u_is3D;\n uniform float height; \n\n uniform float u_point_size;\n\n out vec4 v_color;\n\n ") + __1.shaderfunctions.pixelXYToCartesian3DPoint + "\n " + __1.shaderfunctions.pixelXYToCartesian2DPoint + "\n\n\n void main() {\n vec3 pos = vec3(a_position, height);\n if(is3D){\n pos = pixelXYToCartesian3DPoint(pos);\n gl_Position = projection * view * vec4(pos - translate, 1.0);\n } else {\n vec2 xy = pixelXYToCartesian2DPoint(pos.xy, translate.xy, mapWH, screenWH);\n gl_Position = projection * vec4(xy.x, xy.y, 0.0, 1.0);\n }\n gl_PointSize = u_point_size;\n v_color = a_color;\n }\n ";
50
+ var fragmentSource = "#version 300 es\n precision highp float;\n\n uniform float u_opacity;\n\n in vec4 v_color;\n out vec4 outColor;\n\n void main() {\n outColor = v_color;\n outColor.a = u_opacity;\n } \n ";
51
+ var program = (0, webglobjectbuilders_1.createProgram)(gl, vertexSource, fragmentSource);
52
+ var a_position = gl.getAttribLocation(program, 'a_position');
53
+ var a_color = gl.getAttribLocation(program, 'a_color');
96
54
  // vao and buffer.
97
- const vao = gl.createVertexArray();
55
+ var vao = gl.createVertexArray();
98
56
  gl.bindVertexArray(vao);
99
57
  gl.bindBuffer(gl.ARRAY_BUFFER, this._inBuffer);
100
58
  gl.enableVertexAttribArray(a_position);
@@ -102,22 +60,22 @@ class ShapesOnGlobeProgram {
102
60
  gl.enableVertexAttribArray(a_color);
103
61
  gl.vertexAttribPointer(a_color, 4, gl.FLOAT, false, 6 * 4, 2 * 4);
104
62
  gl.bindVertexArray(null);
105
- const cm = camerauniformblock_1.CameraUniformBlockTotemCache.get(globe);
106
- const bindingPoint = 0;
107
- const cmIndex = gl.getUniformBlockIndex(program, "CameraUniformBlock");
63
+ var cm = camerauniformblock_1.CameraUniformBlockTotemCache.get(globe);
64
+ var bindingPoint = 0;
65
+ var cmIndex = gl.getUniformBlockIndex(program, "CameraUniformBlock");
108
66
  gl.uniformBlockBinding(program, cmIndex, bindingPoint);
109
67
  return {
110
68
  program: program,
111
69
  vao: vao,
112
70
  u_point_size: gl.getUniformLocation(program, 'u_point_size'),
113
71
  u_opacity: gl.getUniformLocation(program, 'u_opacity'),
114
- bindCamera: () => cm.bind(bindingPoint),
115
- unbindCamera: () => cm.unbind(bindingPoint)
72
+ bindCamera: function () { return cm.bind(bindingPoint); },
73
+ unbindCamera: function () { return cm.unbind(bindingPoint); }
116
74
  };
117
- }
118
- draw(uProjectionMatrix, uModelViewMatrix, uTranslate, drawRanges) {
119
- const { gl, _programWrapper, _is3D } = this;
120
- const deepTest = gl.isEnabled(gl.DEPTH_TEST);
75
+ };
76
+ ShapesOnGlobeProgram.prototype.draw = function (uProjectionMatrix, uModelViewMatrix, uTranslate, drawRanges) {
77
+ var _a = this, gl = _a.gl, _programWrapper = _a._programWrapper, _is3D = _a._is3D;
78
+ var deepTest = gl.isEnabled(gl.DEPTH_TEST);
121
79
  gl.disable(gl.DEPTH_TEST);
122
80
  gl.useProgram(_programWrapper.program);
123
81
  gl.bindVertexArray(_programWrapper.vao);
@@ -127,10 +85,11 @@ class ShapesOnGlobeProgram {
127
85
  gl.bindVertexArray(_programWrapper.vao);
128
86
  _programWrapper.bindCamera();
129
87
  if (!_is3D) {
130
- const mapWH = this.globe.api_GetCurrentWorldWH();
88
+ var mapWH = this.globe.api_GetCurrentWorldWH();
131
89
  gl.uniform2f(_programWrapper.u_mapWH, mapWH.width, mapWH.height);
132
90
  }
133
- for (const drawRange of drawRanges) {
91
+ for (var _i = 0, drawRanges_1 = drawRanges; _i < drawRanges_1.length; _i++) {
92
+ var drawRange = drawRanges_1[_i];
134
93
  gl.drawArrays(this._drawMode, drawRange[0], drawRange[1]);
135
94
  // gl.drawArrays(gl.POINTS, drawRange[0], 1);
136
95
  }
@@ -139,76 +98,77 @@ class ShapesOnGlobeProgram {
139
98
  if (deepTest) {
140
99
  gl.enable(gl.DEPTH_TEST);
141
100
  }
142
- }
143
- setOpacity(opacity) {
101
+ };
102
+ ShapesOnGlobeProgram.prototype.setOpacity = function (opacity) {
144
103
  if (opacity < 0 || opacity > 1) {
145
104
  throw new Error('Invalid opacity value');
146
105
  }
147
106
  ;
148
- const { gl, _programWrapper } = this;
149
- const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
107
+ var _a = this, gl = _a.gl, _programWrapper = _a._programWrapper;
108
+ var currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
150
109
  gl.useProgram(_programWrapper.program);
151
110
  gl.uniform1f(_programWrapper.u_opacity, opacity);
152
111
  gl.useProgram(currentProgram);
153
112
  this.globe.DrawRender();
154
- }
155
- setPointSize(size) {
156
- const { gl, _programWrapper } = this;
157
- const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
113
+ };
114
+ ShapesOnGlobeProgram.prototype.setPointSize = function (size) {
115
+ var _a = this, gl = _a.gl, _programWrapper = _a._programWrapper;
116
+ var currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
158
117
  gl.useProgram(_programWrapper.program);
159
118
  gl.uniform1f(_programWrapper.u_point_size, size);
160
119
  gl.useProgram(currentProgram);
161
120
  this.globe.DrawRender();
162
- }
163
- setDrawMode(mode) {
164
- const modegl = this._getDraw(mode);
121
+ };
122
+ ShapesOnGlobeProgram.prototype.setDrawMode = function (mode) {
123
+ var modegl = this._getDraw(mode);
165
124
  if (modegl) {
166
125
  this._drawMode = modegl;
167
126
  }
168
127
  else {
169
128
  throw new Error('Invalid draw mode ' + mode);
170
129
  }
171
- }
172
- setScreenWH() {
173
- const { gl, _programWrapper, globe } = this;
174
- const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
130
+ };
131
+ ShapesOnGlobeProgram.prototype.setScreenWH = function () {
132
+ var _a = this, gl = _a.gl, _programWrapper = _a._programWrapper, globe = _a.globe;
133
+ var currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
175
134
  gl.useProgram(_programWrapper.program);
176
135
  gl.uniform2f(_programWrapper.u_scrWH, globe.api_ScrW(), globe.api_ScrH());
177
136
  gl.useProgram(currentProgram);
178
- }
179
- resize(width, height) {
180
- const { gl, _programWrapper, globe } = this;
137
+ };
138
+ ShapesOnGlobeProgram.prototype.resize = function (width, height) {
139
+ var _a = this, gl = _a.gl, _programWrapper = _a._programWrapper, globe = _a.globe;
181
140
  width = width || globe.api_ScrW();
182
141
  height = height || globe.api_ScrH();
183
- const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
142
+ var currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
184
143
  gl.useProgram(_programWrapper.program);
185
144
  gl.uniform2f(_programWrapper.u_scrWH, width, height);
186
145
  gl.useProgram(currentProgram);
187
- }
188
- setGeometry() {
189
- const { gl, globe, _programWrapper } = this;
146
+ };
147
+ ShapesOnGlobeProgram.prototype.setGeometry = function () {
148
+ var _a = this, gl = _a.gl, globe = _a.globe, _programWrapper = _a._programWrapper;
190
149
  this._is3D = globe.api_GetCurrentGeometry() === 0;
191
- const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
150
+ var currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
192
151
  gl.useProgram(_programWrapper.program);
193
152
  gl.uniform1f(_programWrapper.u_is3D, this._is3D ? 1.0 : 0.0);
194
153
  gl.useProgram(currentProgram);
195
154
  this.resize();
196
- }
197
- free() {
198
- const { gl, _programWrapper } = this;
155
+ };
156
+ ShapesOnGlobeProgram.prototype.free = function () {
157
+ var _a = this, gl = _a.gl, _programWrapper = _a._programWrapper;
199
158
  gl.deleteProgram(_programWrapper.program);
200
159
  gl.deleteVertexArray(_programWrapper.vao);
201
160
  gl.deleteBuffer(this._inBuffer);
202
- }
161
+ };
203
162
  /**
204
163
  *
205
164
  * @param {Float32Array} data
206
165
  * @format [x, y, r, g, b, a, x, y, r, g, b, a, x, y, r, g, b, a, x, y, r, g, b, a]
207
166
  */
208
- setBufferData(data) {
209
- const { gl } = this;
167
+ ShapesOnGlobeProgram.prototype.setBufferData = function (data) {
168
+ var gl = this.gl;
210
169
  gl.bindBuffer(gl.ARRAY_BUFFER, this._inBuffer);
211
170
  gl.bufferData(gl.ARRAY_BUFFER, data, gl.STATIC_DRAW);
212
- }
213
- }
171
+ };
172
+ return ShapesOnGlobeProgram;
173
+ }());
214
174
  exports.ShapesOnGlobeProgram = ShapesOnGlobeProgram;