@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
@@ -25,18 +25,18 @@ exports.reloadCurrentGLProgram = reloadCurrentGLProgram;
25
25
  * @throws An error if shader compilation fails.
26
26
  */
27
27
  function createShader(gl, type, source) {
28
- var shader = gl.createShader(type);
28
+ const shader = gl.createShader(type);
29
29
  if (!shader) {
30
30
  throw new Error("Failed to create WebGLShader.");
31
31
  }
32
32
  gl.shaderSource(shader, source);
33
33
  gl.compileShader(shader);
34
34
  if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
35
- var errorLog = gl.getShaderInfoLog(shader);
36
- var shaderType = type === gl.VERTEX_SHADER ? 'VERTEX_SHADER' : 'FRAGMENT_SHADER';
37
- var sourceWithLineNumbers = source.split('\n').map(function (line, i) { return "".concat(i + 1, ": ").concat(line); }).join('\n');
35
+ const errorLog = gl.getShaderInfoLog(shader);
36
+ const shaderType = type === gl.VERTEX_SHADER ? 'VERTEX_SHADER' : 'FRAGMENT_SHADER';
37
+ const sourceWithLineNumbers = source.split('\n').map((line, i) => `${i + 1}: ${line}`).join('\n');
38
38
  gl.deleteShader(shader); // Clean up the failed shader
39
- throw new Error("Error compiling ".concat(shaderType, ":\n").concat(errorLog, "\nSource:\n").concat(sourceWithLineNumbers));
39
+ throw new Error(`Error compiling ${shaderType}:\n${errorLog}\nSource:\n${sourceWithLineNumbers}`);
40
40
  }
41
41
  return shader;
42
42
  }
@@ -50,13 +50,13 @@ function createShader(gl, type, source) {
50
50
  * @returns The linked WebGLProgram, or `undefined` if compilation or linking fails.
51
51
  */
52
52
  function createProgram(gl, vertexSource, fragmentSource) {
53
- var program = gl.createProgram();
53
+ const program = gl.createProgram();
54
54
  if (!program) {
55
55
  console.error("Failed to create WebGLProgram.");
56
56
  return undefined;
57
57
  }
58
- var vertexShader;
59
- var fragmentShader;
58
+ let vertexShader;
59
+ let fragmentShader;
60
60
  try {
61
61
  vertexShader = createShader(gl, gl.VERTEX_SHADER, vertexSource);
62
62
  fragmentShader = createShader(gl, gl.FRAGMENT_SHADER, fragmentSource);
@@ -93,21 +93,21 @@ function createProgram(gl, vertexSource, fragmentSource) {
93
93
  * @throws An error if shader compilation or program linking fails.
94
94
  */
95
95
  function createProgramWrapper(gl, vertexSource, fragmentSource) {
96
- var program = gl.createProgram();
96
+ const program = gl.createProgram();
97
97
  if (!program) {
98
98
  throw new Error("Failed to create WebGLProgram.");
99
99
  }
100
- var vertexShader = createShader(gl, gl.VERTEX_SHADER, vertexSource);
101
- var fragmentShader = createShader(gl, gl.FRAGMENT_SHADER, fragmentSource);
100
+ const vertexShader = createShader(gl, gl.VERTEX_SHADER, vertexSource);
101
+ const fragmentShader = createShader(gl, gl.FRAGMENT_SHADER, fragmentSource);
102
102
  gl.attachShader(program, vertexShader);
103
103
  gl.attachShader(program, fragmentShader);
104
104
  gl.linkProgram(program);
105
105
  if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {
106
- var errorLog = gl.getProgramInfoLog(program);
106
+ const errorLog = gl.getProgramInfoLog(program);
107
107
  gl.deleteProgram(program);
108
108
  gl.deleteShader(vertexShader);
109
109
  gl.deleteShader(fragmentShader);
110
- throw new Error("Error linking program:\n".concat(errorLog));
110
+ throw new Error(`Error linking program:\n${errorLog}`);
111
111
  }
112
112
  // Detach and delete shaders after linking
113
113
  gl.detachShader(program, vertexShader);
@@ -115,17 +115,17 @@ function createProgramWrapper(gl, vertexSource, fragmentSource) {
115
115
  gl.deleteShader(vertexShader);
116
116
  gl.deleteShader(fragmentShader);
117
117
  // Using an object literal for dynamic properties
118
- var wrapper = { program: program };
119
- var numAttributes = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);
120
- for (var i = 0; i < numAttributes; i++) {
121
- var attribute = gl.getActiveAttrib(program, i);
118
+ const wrapper = { program: program };
119
+ const numAttributes = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);
120
+ for (let i = 0; i < numAttributes; i++) {
121
+ const attribute = gl.getActiveAttrib(program, i);
122
122
  if (attribute) {
123
123
  wrapper[attribute.name] = gl.getAttribLocation(program, attribute.name);
124
124
  }
125
125
  }
126
- var numUniforms = gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS);
127
- for (var i = 0; i < numUniforms; i++) {
128
- var uniform = gl.getActiveUniform(program, i);
126
+ const numUniforms = gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS);
127
+ for (let i = 0; i < numUniforms; i++) {
128
+ const uniform = gl.getActiveUniform(program, i);
129
129
  if (uniform) {
130
130
  wrapper[uniform.name] = gl.getUniformLocation(program, uniform.name);
131
131
  }
@@ -143,7 +143,7 @@ function createProgramWrapper(gl, vertexSource, fragmentSource) {
143
143
  * @throws An error if texture creation fails.
144
144
  */
145
145
  function createTexture(gl, filter, data, width, height) {
146
- var texture = gl.createTexture();
146
+ const texture = gl.createTexture();
147
147
  if (!texture) {
148
148
  throw new Error("Failed to create WebGLTexture.");
149
149
  }
@@ -182,7 +182,7 @@ function bindTexture(gl, texture, unit) {
182
182
  * @throws An error if buffer creation fails.
183
183
  */
184
184
  function createBuffer(gl, data) {
185
- var buffer = gl.createBuffer();
185
+ const buffer = gl.createBuffer();
186
186
  if (!buffer) {
187
187
  throw new Error("Failed to create WebGLBuffer.");
188
188
  }
@@ -220,10 +220,10 @@ function bindFramebuffer(gl, framebuffer, texture) {
220
220
  * @returns A Uint8Array containing the decoded bytes.
221
221
  */
222
222
  function decodeBase64(data) {
223
- var binary_string = atob(data);
224
- var len = binary_string.length;
225
- var bytes = new Uint8Array(len);
226
- for (var i = 0; i < len; i++) {
223
+ const binary_string = atob(data);
224
+ const len = binary_string.length;
225
+ const bytes = new Uint8Array(len);
226
+ for (let i = 0; i < len; i++) {
227
227
  bytes[i] = binary_string.charCodeAt(i);
228
228
  }
229
229
  return bytes;
@@ -234,14 +234,14 @@ function decodeBase64(data) {
234
234
  * @returns An HTMLImageElement with the image data loaded.
235
235
  */
236
236
  function createImageFromBase64(encodedData) {
237
- var bytes = decodeBase64(encodedData);
238
- var blob = new Blob([bytes.buffer], { type: "image/png" });
239
- var urlCreator = window.URL || window.webkitURL;
240
- var imageUrl = urlCreator.createObjectURL(blob);
241
- var image = new Image();
237
+ const bytes = decodeBase64(encodedData);
238
+ const blob = new Blob([bytes.buffer], { type: "image/png" });
239
+ const urlCreator = window.URL || window.webkitURL;
240
+ const imageUrl = urlCreator.createObjectURL(blob);
241
+ const image = new Image();
242
242
  image.src = imageUrl;
243
243
  // Revoke the object URL after the image has loaded to free up memory
244
- image.onload = function () { return urlCreator.revokeObjectURL(imageUrl); };
244
+ image.onload = () => urlCreator.revokeObjectURL(imageUrl);
245
245
  return image;
246
246
  }
247
247
  /**
@@ -250,23 +250,23 @@ function createImageFromBase64(encodedData) {
250
250
  * @returns A Uint8Array representing the RGBA pixel data of the 1x256 color ramp.
251
251
  */
252
252
  function getColorRamp(colors) {
253
- var canvas = document.createElement('canvas');
254
- var ctx = canvas.getContext('2d');
253
+ const canvas = document.createElement('canvas');
254
+ const ctx = canvas.getContext('2d');
255
255
  if (!ctx) {
256
256
  throw new Error("Failed to get 2D rendering context for canvas.");
257
257
  }
258
258
  canvas.width = 256;
259
259
  canvas.height = 1;
260
- var gradient = ctx.createLinearGradient(0, 0, 256, 0);
261
- for (var stop_1 in colors) {
260
+ const gradient = ctx.createLinearGradient(0, 0, 256, 0);
261
+ for (const stop in colors) {
262
262
  // Ensure the stop is a valid number, although `addColorStop` can parse strings,
263
263
  // explicit conversion is safer for object keys if they come from arbitrary sources.
264
- var stopValue = parseFloat(stop_1);
264
+ const stopValue = parseFloat(stop);
265
265
  if (isNaN(stopValue)) {
266
- console.warn("Invalid stop value for color ramp: ".concat(stop_1, ". Skipping."));
266
+ console.warn(`Invalid stop value for color ramp: ${stop}. Skipping.`);
267
267
  continue;
268
268
  }
269
- gradient.addColorStop(stopValue, colors[stop_1]);
269
+ gradient.addColorStop(stopValue, colors[stop]);
270
270
  }
271
271
  ctx.fillStyle = gradient;
272
272
  ctx.fillRect(0, 0, 256, 1);
@@ -280,16 +280,16 @@ function getColorRamp(colors) {
280
280
  * @returns A Uint8Array representing the RGBA pixel data of the 1x256 discrete color ramp.
281
281
  */
282
282
  function getColorRampDiscrate(values, thresholds) {
283
- var canvas = document.createElement('canvas');
284
- var ctx = canvas.getContext('2d');
283
+ const canvas = document.createElement('canvas');
284
+ const ctx = canvas.getContext('2d');
285
285
  if (!ctx) {
286
286
  throw new Error("Failed to get 2D rendering context for canvas.");
287
287
  }
288
288
  canvas.width = 256;
289
289
  canvas.height = 1;
290
- var gap = 1.0 / 256; // Represents one pixel width in normalized coordinates
291
- var gradient = ctx.createLinearGradient(0, 0, 256, 0);
292
- for (var i = 0; i < thresholds.length - 1; i++) {
290
+ const gap = 1.0 / 256; // Represents one pixel width in normalized coordinates
291
+ const gradient = ctx.createLinearGradient(0, 0, 256, 0);
292
+ for (let i = 0; i < thresholds.length - 1; i++) {
293
293
  gradient.addColorStop(thresholds[i], values[i]);
294
294
  // Create a sharp transition by setting the next stop just before the next threshold
295
295
  gradient.addColorStop(Math.max(0, thresholds[i + 1] - gap), values[i]);
@@ -307,15 +307,15 @@ function getColorRampDiscrate(values, thresholds) {
307
307
  * @returns A Uint8Array representing the RGBA pixel data of the 1x256 interpolated color ramp.
308
308
  */
309
309
  function getColorRampInterpolated(values, thresholds) {
310
- var canvas = document.createElement('canvas');
311
- var ctx = canvas.getContext('2d');
310
+ const canvas = document.createElement('canvas');
311
+ const ctx = canvas.getContext('2d');
312
312
  if (!ctx) {
313
313
  throw new Error("Failed to get 2D rendering context for canvas.");
314
314
  }
315
315
  canvas.width = 256;
316
316
  canvas.height = 1;
317
- var gradient = ctx.createLinearGradient(0, 0, 256, 0);
318
- for (var i = 0; i < thresholds.length; i++) {
317
+ const gradient = ctx.createLinearGradient(0, 0, 256, 0);
318
+ for (let i = 0; i < thresholds.length; i++) {
319
319
  gradient.addColorStop(thresholds[i], values[i]);
320
320
  }
321
321
  ctx.fillStyle = gradient;
@@ -330,8 +330,7 @@ function getColorRampInterpolated(values, thresholds) {
330
330
  * @returns A Uint8Array representing the RGBA pixel data of the 1x256 color ramp.
331
331
  * @throws An error if an invalid mode is provided.
332
332
  */
333
- function getColorRampModed(values, thresholds, mode) {
334
- if (mode === void 0) { mode = "interpolated"; }
333
+ function getColorRampModed(values, thresholds, mode = "interpolated") {
335
334
  if (mode === "discrete") {
336
335
  return getColorRampDiscrate(values, thresholds);
337
336
  }
@@ -347,7 +346,7 @@ function getColorRampModed(values, thresholds, mode) {
347
346
  * @returns A Uint8Array representing the RGBA pixel data of the default 1x256 color ramp.
348
347
  */
349
348
  function defaultColorRamp() {
350
- var defaultRampColors = {
349
+ const defaultRampColors = {
351
350
  "0.0": '#5e4fa2',
352
351
  "0.15": '#3288bd',
353
352
  "0.20": '#66c2a5',
@@ -368,23 +367,19 @@ function defaultColorRamp() {
368
367
  */
369
368
  function reloadCurrentGLProgram() {
370
369
  return function (target, key, descriptor) {
371
- var originalMethod = descriptor.value;
370
+ const originalMethod = descriptor.value;
372
371
  // Ensure the target has a 'gl' property of type WebGL2RenderingContext
373
372
  if (!('gl' in target) || !(target.gl instanceof WebGL2RenderingContext)) {
374
- console.warn("Decorator 'reloadCurrentGLProgram' applied to a method where 'this.gl' is not a WebGL2RenderingContext. This may not function as expected.");
373
+ console.warn(`Decorator 'reloadCurrentGLProgram' applied to a method where 'this.gl' is not a WebGL2RenderingContext. This may not function as expected.`);
375
374
  // Optionally, throw an error here if strictness is desired
376
375
  }
377
- descriptor.value = function () {
378
- var args = [];
379
- for (var _i = 0; _i < arguments.length; _i++) {
380
- args[_i] = arguments[_i];
381
- }
382
- var gl = this.gl;
376
+ descriptor.value = function (...args) {
377
+ const gl = this.gl;
383
378
  if (!gl) {
384
379
  console.error("reloadCurrentGLProgram decorator: 'gl' context not found on 'this'.");
385
380
  return originalMethod.apply(this, args);
386
381
  }
387
- var currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
382
+ const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
388
383
  originalMethod.apply(this, args);
389
384
  gl.useProgram(currentProgram);
390
385
  };
@@ -26,21 +26,21 @@ exports.reloadCurrentGLProgram = reloadCurrentGLProgram;
26
26
  // return shader;
27
27
  // }
28
28
  function createShader(gl, type, source) {
29
- var shader = gl.createShader(type);
29
+ const shader = gl.createShader(type);
30
30
  gl.shaderSource(shader, source);
31
31
  gl.compileShader(shader);
32
32
  if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
33
- var errorLog = gl.getShaderInfoLog(shader);
34
- var shaderType = type === gl.VERTEX_SHADER ? 'VERTEX_SHADER' : 'FRAGMENT_SHADER';
35
- var sourceWithLineNumbers = source.split('\n').map(function (line, i) { return "".concat(i + 1, ": ").concat(line); }).join('\n');
36
- throw new Error("Error compiling ".concat(shaderType, ":\n").concat(errorLog, "\nSource:\n").concat(sourceWithLineNumbers));
33
+ const errorLog = gl.getShaderInfoLog(shader);
34
+ const shaderType = type === gl.VERTEX_SHADER ? 'VERTEX_SHADER' : 'FRAGMENT_SHADER';
35
+ const sourceWithLineNumbers = source.split('\n').map((line, i) => `${i + 1}: ${line}`).join('\n');
36
+ throw new Error(`Error compiling ${shaderType}:\n${errorLog}\nSource:\n${sourceWithLineNumbers}`);
37
37
  }
38
38
  return shader;
39
39
  }
40
40
  function createProgram(gl, vertexSource, fragmentSource) {
41
- var program = gl.createProgram();
42
- var vertexShader = createShader(gl, gl.VERTEX_SHADER, vertexSource);
43
- var fragmentShader = createShader(gl, gl.FRAGMENT_SHADER, fragmentSource);
41
+ const program = gl.createProgram();
42
+ const vertexShader = createShader(gl, gl.VERTEX_SHADER, vertexSource);
43
+ const fragmentShader = createShader(gl, gl.FRAGMENT_SHADER, fragmentSource);
44
44
  gl.compileShader(vertexShader);
45
45
  if (!gl.getShaderParameter(vertexShader, gl.COMPILE_STATUS)) {
46
46
  console.error(gl.getShaderInfoLog(vertexShader));
@@ -61,9 +61,9 @@ function createProgram(gl, vertexSource, fragmentSource) {
61
61
  return program;
62
62
  }
63
63
  function createProgramWrapper(gl, vertexSource, fragmentSource) {
64
- var program = gl.createProgram();
65
- var vertexShader = createShader(gl, gl.VERTEX_SHADER, vertexSource);
66
- var fragmentShader = createShader(gl, gl.FRAGMENT_SHADER, fragmentSource);
64
+ const program = gl.createProgram();
65
+ const vertexShader = createShader(gl, gl.VERTEX_SHADER, vertexSource);
66
+ const fragmentShader = createShader(gl, gl.FRAGMENT_SHADER, fragmentSource);
67
67
  gl.attachShader(program, vertexShader);
68
68
  gl.attachShader(program, fragmentShader);
69
69
  gl.linkProgram(program);
@@ -71,21 +71,21 @@ function createProgramWrapper(gl, vertexSource, fragmentSource) {
71
71
  // console.log(gl.getProgramInfoLog(program));
72
72
  throw new Error(gl.getProgramInfoLog(program));
73
73
  }
74
- var wrapper = { program: program };
75
- var numAttributes = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);
76
- for (var i = 0; i < numAttributes; i++) {
77
- var attribute = gl.getActiveAttrib(program, i);
74
+ const wrapper = { program: program };
75
+ const numAttributes = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);
76
+ for (let i = 0; i < numAttributes; i++) {
77
+ const attribute = gl.getActiveAttrib(program, i);
78
78
  wrapper[attribute.name] = gl.getAttribLocation(program, attribute.name);
79
79
  }
80
- var numUniforms = gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS);
81
- for (var i = 0; i < numUniforms; i++) {
82
- var uniform = gl.getActiveUniform(program, i);
80
+ const numUniforms = gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS);
81
+ for (let i = 0; i < numUniforms; i++) {
82
+ const uniform = gl.getActiveUniform(program, i);
83
83
  wrapper[uniform.name] = gl.getUniformLocation(program, uniform.name);
84
84
  }
85
85
  return wrapper;
86
86
  }
87
87
  function createTexture(gl, filter, data, width, height) {
88
- var texture = gl.createTexture();
88
+ const texture = gl.createTexture();
89
89
  gl.bindTexture(gl.TEXTURE_2D, texture);
90
90
  gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
91
91
  gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
@@ -105,7 +105,7 @@ function bindTexture(gl, texture, unit) {
105
105
  gl.bindTexture(gl.TEXTURE_2D, texture);
106
106
  }
107
107
  function createBuffer(gl, data) {
108
- var buffer = gl.createBuffer();
108
+ const buffer = gl.createBuffer();
109
109
  gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
110
110
  gl.bufferData(gl.ARRAY_BUFFER, data, gl.STATIC_DRAW);
111
111
  return buffer;
@@ -125,33 +125,33 @@ function bindFramebuffer(gl, framebuffer, texture) {
125
125
  }
126
126
  }
127
127
  function decodeBase64(data) {
128
- var binary_string = atob(data);
129
- var len = binary_string.length;
130
- var bytes = new Uint8Array(len);
131
- for (var i = 0; i < len; i++) {
128
+ const binary_string = atob(data);
129
+ const len = binary_string.length;
130
+ const bytes = new Uint8Array(len);
131
+ for (let i = 0; i < len; i++) {
132
132
  bytes[i] = binary_string.charCodeAt(i);
133
133
  }
134
134
  return bytes;
135
135
  }
136
136
  function createImageFromBase64(encodedData) {
137
- var bytes = decodeBase64(encodedData);
138
- var blob = new Blob([bytes.buffer], { type: "image/png" });
139
- var urlCreator = window.URL || window.webkitURL;
140
- var imageUrl = urlCreator.createObjectURL(blob);
141
- var image = new Image();
137
+ const bytes = decodeBase64(encodedData);
138
+ const blob = new Blob([bytes.buffer], { type: "image/png" });
139
+ const urlCreator = window.URL || window.webkitURL;
140
+ const imageUrl = urlCreator.createObjectURL(blob);
141
+ const image = new Image();
142
142
  image.src = imageUrl;
143
143
  return image;
144
144
  }
145
145
  function getColorRamp(colors) {
146
146
  // console.log("getColorRamp", colors)
147
- var canvas = document.createElement('canvas');
148
- var ctx = canvas.getContext('2d');
147
+ const canvas = document.createElement('canvas');
148
+ const ctx = canvas.getContext('2d');
149
149
  canvas.width = 256;
150
150
  canvas.height = 1;
151
- var gradient = ctx.createLinearGradient(0, 0, 256, 0);
152
- for (var stop_1 in colors) {
151
+ const gradient = ctx.createLinearGradient(0, 0, 256, 0);
152
+ for (const stop in colors) {
153
153
  // console.log("stop", stop);
154
- gradient.addColorStop(colors[stop_1][0], colors[stop_1][1]);
154
+ gradient.addColorStop(colors[stop][0], colors[stop][1]);
155
155
  // Alttaki satir ile gradienti cevirip, shaderda ki `speed_t = 1.0 - speed_t`' kaldirdim.
156
156
  // gradientin en dusuk olmasi gereken siyah - mavi aralikta, mor renk gozlemledim.
157
157
  // gradient.addColorStop( 1.0 - colors[stop][0], colors[stop][1]);
@@ -161,13 +161,13 @@ function getColorRamp(colors) {
161
161
  return new Uint8Array(ctx.getImageData(0, 0, 256, 1).data);
162
162
  }
163
163
  function getColorRampDiscrate(values, thresholds) {
164
- var canvas = document.createElement('canvas');
165
- var ctx = canvas.getContext('2d');
164
+ const canvas = document.createElement('canvas');
165
+ const ctx = canvas.getContext('2d');
166
166
  canvas.width = 256;
167
167
  canvas.height = 1;
168
- var gap = 1.0 / 256;
169
- var gradient = ctx.createLinearGradient(0, 0, 256, 0);
170
- for (var i = 0; i < thresholds.length - 1; i++) {
168
+ const gap = 1.0 / 256;
169
+ const gradient = ctx.createLinearGradient(0, 0, 256, 0);
170
+ for (let i = 0; i < thresholds.length - 1; i++) {
171
171
  gradient.addColorStop(thresholds[i], values[i]);
172
172
  gradient.addColorStop(thresholds[i + 1] - gap, values[i]);
173
173
  }
@@ -177,15 +177,15 @@ function getColorRampDiscrate(values, thresholds) {
177
177
  return new Uint8Array(ctx.getImageData(0, 0, 256, 1).data);
178
178
  }
179
179
  function getColorRampInterpolated(values, thresholds) {
180
- var canvas = document.createElement('canvas');
181
- var ctx = canvas.getContext('2d');
180
+ const canvas = document.createElement('canvas');
181
+ const ctx = canvas.getContext('2d');
182
182
  canvas.width = 256;
183
183
  canvas.height = 1;
184
- var gradient = ctx.createLinearGradient(0, 0, 256, 0);
184
+ const gradient = ctx.createLinearGradient(0, 0, 256, 0);
185
185
  // const gap = 1.0 / 256;
186
186
  // gradient.addColorStop(thresholds[0], values[0]);
187
187
  // gradient.addColorStop(thresholds[0] + gap, values[1]);
188
- for (var i = 0; i < thresholds.length; i++) {
188
+ for (let i = 0; i < thresholds.length; i++) {
189
189
  gradient.addColorStop(thresholds[i], values[i]);
190
190
  }
191
191
  // gradient.addColorStop(thresholds[thresholds.length - 1] - gap, values[values.length - 1]);
@@ -198,8 +198,7 @@ function getColorRampInterpolated(values, thresholds) {
198
198
  * thresholds: n number of thresholds. Ex: [0, 10, 20]
199
199
  * mode: [discrete, interpolated,]
200
200
  */
201
- function getColorRampModed(values, thresholds, mode) {
202
- if (mode === void 0) { mode = "interpolated"; }
201
+ function getColorRampModed(values, thresholds, mode = "interpolated") {
203
202
  if (mode === "discrete") {
204
203
  return getColorRampDiscrate(values, thresholds);
205
204
  }
@@ -211,7 +210,7 @@ function getColorRampModed(values, thresholds, mode) {
211
210
  }
212
211
  }
213
212
  function defaultColorRamp() {
214
- var defaultRampColors = [
213
+ const defaultRampColors = [
215
214
  [0.0, '#5e4fa2'],
216
215
  [0.15, '#3288bd'],
217
216
  [0.20, '#66c2a5'],
@@ -227,10 +226,10 @@ function defaultColorRamp() {
227
226
  }
228
227
  function reloadCurrentGLProgram() {
229
228
  return function (target, key, descriptor) {
230
- var originalMethod = descriptor.value;
229
+ const originalMethod = descriptor.value;
231
230
  descriptor.value = function () {
232
- var gl = target.gl;
233
- var currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
231
+ const gl = target.gl;
232
+ const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
234
233
  originalMethod.apply(this, arguments);
235
234
  gl.useProgram(currentProgram);
236
235
  };
@@ -1,17 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.centigradePlus90ToVectorArray = centigradePlus90ToVectorArray;
4
- function centigradePlus90ToVectorArray(centigradeArray, noDataValue) {
5
- if (noDataValue === void 0) { noDataValue = -9999; }
6
- var vectorArray = new Float32Array(centigradeArray.length * 2);
7
- for (var i = 0; i < centigradeArray.length; i++) {
4
+ function centigradePlus90ToVectorArray(centigradeArray, noDataValue = -9999) {
5
+ const vectorArray = new Float32Array(centigradeArray.length * 2);
6
+ for (let i = 0; i < centigradeArray.length; i++) {
8
7
  if (centigradeArray[i] === noDataValue) {
9
8
  vectorArray.set([0, 0], i * 2);
10
9
  continue;
11
10
  }
12
- var rad = (centigradeArray[i] + 90.0) * Math.PI / 180;
13
- var x = Math.cos(rad);
14
- var y = Math.sin(rad);
11
+ const rad = (centigradeArray[i] + 90.0) * Math.PI / 180;
12
+ const x = Math.cos(rad);
13
+ const y = Math.sin(rad);
15
14
  vectorArray.set([x, y], i * 2);
16
15
  }
17
16
  return vectorArray;
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.VectorFieldWaveParticle = exports.centigradePlus90ToVectorArray = void 0;
7
- var plugin_1 = __importDefault(require("./plugin"));
7
+ const plugin_1 = __importDefault(require("./plugin"));
8
8
  exports.VectorFieldWaveParticle = plugin_1.default;
9
- var adaptor_1 = require("./adaptor");
9
+ const adaptor_1 = require("./adaptor");
10
10
  Object.defineProperty(exports, "centigradePlus90ToVectorArray", { enumerable: true, get: function () { return adaptor_1.centigradePlus90ToVectorArray; } });