@pirireis/webglobeplugins 0.9.11 → 0.9.13

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 (179) hide show
  1. package/Math/angle-calculation.js +9 -11
  2. package/Math/arc.js +38 -41
  3. package/Math/bounds/line-bbox.js +79 -83
  4. package/Math/constants.js +4 -9
  5. package/Math/frustum/types.js +1 -2
  6. package/Math/juction/arc-plane.js +33 -36
  7. package/Math/juction/line-sphere.js +15 -18
  8. package/Math/juction/plane-plane.js +20 -23
  9. package/Math/line.js +42 -47
  10. package/Math/methods.js +69 -92
  11. package/Math/plane.js +33 -38
  12. package/Math/quaternion.js +48 -55
  13. package/Math/types.js +1 -2
  14. package/Math/utils.js +2 -4
  15. package/Math/vec3.js +46 -52
  16. package/algorithms/search-binary.js +5 -8
  17. package/altitude-locator/draw-subset-obj.js +8 -11
  18. package/altitude-locator/plugin.js +114 -133
  19. package/altitude-locator/types.js +1 -3
  20. package/arrowfield/adaptor.js +3 -7
  21. package/arrowfield/index.js +3 -10
  22. package/arrowfield/plugin.js +63 -69
  23. package/bearing-line/index.js +2 -8
  24. package/bearing-line/plugin.js +218 -248
  25. package/circle-line-chain/chain-list-map.js +82 -92
  26. package/circle-line-chain/plugin.js +147 -182
  27. package/circle-line-chain/util.js +1 -5
  28. package/compass-rose/compass-rose-padding-flat.js +111 -140
  29. package/compass-rose/compass-text-writer.js +63 -75
  30. package/compass-rose/index.js +3 -7
  31. package/compassrose/compassrose.js +50 -57
  32. package/compassrose/index.js +2 -8
  33. package/heatwave/index.js +3 -10
  34. package/heatwave/isobar/objectarraylabels.js +50 -56
  35. package/heatwave/isobar/plugin.js +111 -170
  36. package/heatwave/isobar/quadtreecontours.js +78 -96
  37. package/heatwave/plugins/heatwaveglobeshell.js +73 -94
  38. package/index.js +12 -58
  39. package/package.json +1 -1
  40. package/partialrings/buffer-manager.js +32 -70
  41. package/partialrings/index.js +2 -41
  42. package/partialrings/plugin.js +55 -98
  43. package/partialrings/program.js +141 -59
  44. package/pin/pin-object-array.js +89 -97
  45. package/pin/pin-point-totem.js +21 -22
  46. package/point-heat-map/adaptors/timetracksplugin-format-to-this.js +11 -14
  47. package/point-heat-map/plugin-webworker.js +45 -53
  48. package/point-heat-map/point-to-heat-map-flow.js +46 -51
  49. package/point-tracks/key-methods.js +2 -5
  50. package/point-tracks/plugin.js +141 -170
  51. package/programs/arrowfield/index.js +2 -7
  52. package/programs/arrowfield/logic.js +172 -67
  53. package/programs/arrowfield/object.js +35 -43
  54. package/programs/data2legend/density-to-legend.js +47 -26
  55. package/programs/data2legend/point-to-density-texture.js +56 -34
  56. package/programs/float2legendwithratio/index.js +2 -8
  57. package/programs/float2legendwithratio/logic.js +88 -45
  58. package/programs/float2legendwithratio/object.js +45 -54
  59. package/programs/globe-util/is-globe-moved.js +10 -13
  60. package/programs/globeshell/index.js +2 -8
  61. package/programs/globeshell/wiggle/index.js +2 -8
  62. package/programs/globeshell/wiggle/logic.js +191 -101
  63. package/programs/globeshell/wiggle/object.js +35 -43
  64. package/programs/helpers/blender/program.js +36 -22
  65. package/programs/helpers/fadeaway/index.js +2 -7
  66. package/programs/helpers/fadeaway/logic.js +36 -17
  67. package/programs/helpers/fadeaway/object.js +11 -18
  68. package/programs/helpers/index.js +2 -8
  69. package/programs/index.js +9 -58
  70. package/programs/line-on-globe/angled-line.js +95 -39
  71. package/programs/line-on-globe/circle-accurate-3d.js +86 -39
  72. package/programs/line-on-globe/circle-accurate-flat.js +116 -64
  73. package/programs/line-on-globe/circle-accurate.js +113 -46
  74. package/programs/line-on-globe/circle.js +106 -44
  75. package/programs/line-on-globe/degree-padding-around-circle-3d.js +89 -42
  76. package/programs/line-on-globe/lines-color-instanced-flat.js +84 -43
  77. package/programs/line-on-globe/linestrip.js +126 -63
  78. package/programs/line-on-globe/naive-accurate-flexible.js +126 -59
  79. package/programs/line-on-globe/to-the-surface.js +62 -35
  80. package/programs/line-on-globe/util.js +2 -5
  81. package/programs/picking/pickable-renderer.js +127 -46
  82. package/programs/point-on-globe/element-globe-surface-glow.js +83 -46
  83. package/programs/point-on-globe/element-point-glow.js +112 -47
  84. package/programs/point-on-globe/square-pixel-point.js +80 -34
  85. package/programs/programcache.js +14 -19
  86. package/programs/rings/distancering/circleflatprogram.js +76 -70
  87. package/programs/rings/distancering/circlepaddingfreeangleprogram.js +168 -194
  88. package/programs/rings/distancering/circlepaddysharedbuffer.js +121 -200
  89. package/programs/rings/distancering/index.js +5 -14
  90. package/programs/rings/distancering/paddyflatprogram.js +87 -70
  91. package/programs/rings/distancering/paddyflatprogram2d.js +89 -72
  92. package/programs/rings/distancering/paddyflatprogram3d.js +87 -70
  93. package/programs/rings/index.js +1 -17
  94. package/programs/rings/partial-ring/piece-of-pie.js +144 -44
  95. package/programs/totems/camerauniformblock.js +65 -56
  96. package/programs/totems/canvas-webglobe-info.js +49 -45
  97. package/programs/totems/gpu-selection-uniform-block.js +45 -45
  98. package/programs/totems/index.js +2 -40
  99. package/programs/two-d/pixel-padding-for-compass.js +94 -36
  100. package/programs/util.js +7 -10
  101. package/programs/vectorfields/index.js +3 -23
  102. package/programs/vectorfields/logics/drawrectangleparticles.js +73 -35
  103. package/programs/vectorfields/logics/index.js +4 -12
  104. package/programs/vectorfields/logics/pixelbased.js +94 -41
  105. package/programs/vectorfields/logics/ubo.js +32 -32
  106. package/programs/vectorfields/pingpongbuffermanager.js +30 -37
  107. package/rangerings/enum.js +2 -5
  108. package/rangerings/index.js +5 -15
  109. package/rangerings/plugin.js +223 -286
  110. package/rangerings/rangeringangletext.js +122 -137
  111. package/rangerings/ring-account.js +53 -75
  112. package/shaders/fragment-toy/firework.js +55 -4
  113. package/shaders/fragment-toy/singularity.js +56 -5
  114. package/timetracks/adaptors-line-strip.js +27 -44
  115. package/timetracks/adaptors.js +48 -67
  116. package/timetracks/index.js +5 -19
  117. package/timetracks/plugin-line-strip.js +65 -79
  118. package/timetracks/plugin.js +71 -85
  119. package/timetracks/program-line-strip.js +297 -107
  120. package/timetracks/program.js +421 -118
  121. package/timetracks/programpoint-line-strip.js +98 -48
  122. package/timetracks/programpoint.js +91 -48
  123. package/util/account/bufferoffsetmanager.js +72 -98
  124. package/util/account/index.js +3 -23
  125. package/util/account/single-attribute-buffer-management/buffer-manager.js +44 -48
  126. package/util/account/single-attribute-buffer-management/buffer-orchestrator.js +68 -98
  127. package/util/account/single-attribute-buffer-management/index.js +4 -9
  128. package/util/account/single-attribute-buffer-management/object-store.js +29 -34
  129. package/util/account/single-attribute-buffer-management/types.js +1 -2
  130. package/util/account/util.js +2 -8
  131. package/util/algorithms/search-binary.js +5 -8
  132. package/util/check/get.js +5 -9
  133. package/util/check/typecheck.js +13 -24
  134. package/util/geometry/index.js +10 -18
  135. package/util/gl-util/buffer/attribute-loader.js +10 -26
  136. package/util/gl-util/buffer/index.js +2 -5
  137. package/util/gl-util/draw-options/methods.js +10 -15
  138. package/util/gl-util/uniform-block/manager.js +69 -72
  139. package/util/heatwavedatamanager/datamanager.js +56 -119
  140. package/util/heatwavedatamanager/index.js +3 -10
  141. package/util/heatwavedatamanager/pointcoordinatesdatacalculator.js +38 -47
  142. package/util/heatwavedatamanager/pointcoordsmeta.js +9 -13
  143. package/util/index.js +13 -57
  144. package/util/interpolation/timetrack/index.js +2 -5
  145. package/util/interpolation/timetrack/timetrack-interpolator.js +30 -36
  146. package/util/interpolation/timetrack/web-worker-str.js +180 -5
  147. package/util/interpolation/timetrack/web-worker.js +4 -6
  148. package/util/jshelpers/data-filler.js +8 -11
  149. package/util/jshelpers/equality.js +1 -3
  150. package/util/jshelpers/index.js +2 -37
  151. package/util/jshelpers/timefilters.js +8 -10
  152. package/util/picking/fence.js +8 -11
  153. package/util/picking/picker-displayer.js +49 -58
  154. package/util/programs/draw-texture-on-canvas.js +41 -26
  155. package/util/programs/index.js +1 -17
  156. package/util/programs/shapesonglobe.js +104 -68
  157. package/util/programs/supersampletotextures.js +45 -43
  158. package/util/programs/texturetoglobe.js +99 -52
  159. package/util/shaderfunctions/geometrytransformations.js +323 -35
  160. package/util/shaderfunctions/index.js +2 -18
  161. package/util/shaderfunctions/nodata.js +8 -5
  162. package/util/shaderfunctions/noisefunctions.js +40 -12
  163. package/util/surface-line-data/arcs-to-cuts.js +20 -23
  164. package/util/webglobe/gldefaultstates.js +1 -4
  165. package/util/webglobe/index.js +2 -18
  166. package/util/webglobe/rasteroverlay.js +36 -41
  167. package/util/webglobjectbuilders.js +70 -93
  168. package/util/webglobjectbuilders1.js +63 -82
  169. package/waveparticles/adaptor.js +7 -10
  170. package/waveparticles/index.js +3 -10
  171. package/waveparticles/plugin.js +82 -90
  172. package/wind/imagetovectorfieldandmagnitude.js +16 -19
  173. package/wind/index.js +5 -14
  174. package/wind/plugin.js +454 -291
  175. package/wind/vectorfieldimage.js +6 -8
  176. package/write-text/attached-text-writer.js +48 -54
  177. package/write-text/context-text.js +52 -63
  178. package/write-text/context-text3.js +71 -80
  179. package/write-text/index.js +1 -5
@@ -1,13 +1,30 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.textureOnCanvasProgramCache = void 0;
4
- var webglobjectbuilders_1 = require("../webglobjectbuilders");
5
- var programs_1 = require("../../programs");
1
+ import { createProgram } from "../webglobjectbuilders";
2
+ import { glProgramCache } from "../../programs";
6
3
  // import { CameraUniformBlockTotemCache, CameraUniformBlockString } from "../../programs/totems";
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) {
4
+ const vs = `#version 300 es
5
+ precision highp float;
6
+
7
+ in vec2 a_position;
8
+ out vec2 v_texcoord;
9
+
10
+ void main() {
11
+ gl_Position = vec4(a_position, 0.0, 1.0);
12
+ v_texcoord = a_position * 0.5 + 0.5;
13
+ }`;
14
+ const fs = `#version 300 es
15
+ precision highp float;
16
+
17
+ uniform sampler2D u_texture;
18
+ uniform float u_opacity;
19
+ in vec2 v_texcoord;
20
+ out vec4 fragColor;
21
+
22
+ void main() {
23
+ fragColor = texture(u_texture, v_texcoord);
24
+ fragColor.a *= u_opacity;
25
+ }`;
26
+ class TextureOnCanvasProgram {
27
+ constructor(gl) {
11
28
  this.gl = gl;
12
29
  this.vao = this.gl.createVertexArray();
13
30
  this.buffer = this.gl.createBuffer();
@@ -23,25 +40,24 @@ var TextureOnCanvasProgram = /** @class */ (function () {
23
40
  this.gl.vertexAttribPointer(0, 2, this.gl.FLOAT, false, 0, 0);
24
41
  this.gl.bindVertexArray(null);
25
42
  this.gl.bindBuffer(this.gl.ARRAY_BUFFER, null);
26
- this.program = (0, webglobjectbuilders_1.createProgram)(this.gl, vs, fs);
43
+ this.program = createProgram(this.gl, vs, fs);
27
44
  {
28
- var _a = this, gl_1 = _a.gl, program = _a.program;
45
+ const { gl, program } = this;
29
46
  this.uniforms = {
30
- texture: gl_1.getUniformLocation(program, "u_texture"),
31
- opacity: gl_1.getUniformLocation(program, "u_opacity"),
47
+ texture: gl.getUniformLocation(program, "u_texture"),
48
+ opacity: gl.getUniformLocation(program, "u_opacity"),
32
49
  };
33
50
  }
34
51
  {
35
52
  this._lastOpacity = 1.0;
36
- var currentProgram = this.gl.getParameter(this.gl.CURRENT_PROGRAM);
53
+ const currentProgram = this.gl.getParameter(this.gl.CURRENT_PROGRAM);
37
54
  this.gl.useProgram(this.program);
38
55
  this.gl.uniform1f(this.uniforms.opacity, this._lastOpacity);
39
56
  this.gl.useProgram(currentProgram);
40
57
  }
41
58
  }
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;
59
+ draw(texture, { opacity = 1.0 } = {}) {
60
+ const { gl, program, uniforms, vao } = this;
45
61
  gl.useProgram(program);
46
62
  gl.bindVertexArray(vao);
47
63
  gl.activeTexture(gl.TEXTURE0);
@@ -53,19 +69,18 @@ var TextureOnCanvasProgram = /** @class */ (function () {
53
69
  }
54
70
  gl.drawArrays(gl.TRIANGLE_FAN, 0, 4);
55
71
  gl.bindVertexArray(null);
56
- };
57
- TextureOnCanvasProgram.prototype.free = function () {
72
+ }
73
+ free() {
58
74
  if (this._isFreed)
59
75
  return;
60
76
  this.gl.deleteVertexArray(this.vao);
61
77
  this.gl.deleteBuffer(this.buffer);
62
78
  this.gl.deleteProgram(this.program);
63
79
  this._isFreed = true;
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); }
80
+ }
81
+ }
82
+ const textureOnCanvasProgramCache = Object.freeze({
83
+ get: (gl) => glProgramCache.getProgram(gl, TextureOnCanvasProgram),
84
+ release: (gl) => glProgramCache.releaseProgram(gl, TextureOnCanvasProgram)
70
85
  });
71
- exports.textureOnCanvasProgramCache = textureOnCanvasProgramCache;
86
+ export { textureOnCanvasProgramCache };
@@ -1,17 +1 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./shapesonglobe"), exports);
1
+ export * from "./shapesonglobe";
@@ -1,14 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ShapesOnGlobeProgram = void 0;
4
- var webglobjectbuilders_1 = require("../webglobjectbuilders");
5
- var camerauniformblock_1 = require("../../programs/totems/camerauniformblock");
6
- var __1 = require("..");
1
+ import { createProgram } from "../webglobjectbuilders";
2
+ import { CameraUniformBlockString, CameraUniformBlockTotemCache } from "../../programs/totems/camerauniformblock";
3
+ import { shaderfunctions } from "..";
7
4
  /** TODO:
8
5
  * 3d icin calistir
9
6
  */
10
- var drawModeFunc = function (gl) {
11
- return function (mode) {
7
+ const drawModeFunc = (gl) => {
8
+ return (mode) => {
12
9
  return {
13
10
  "point": gl.POINTS,
14
11
  "line": gl.LINES,
@@ -20,9 +17,8 @@ var drawModeFunc = function (gl) {
20
17
  }[mode];
21
18
  };
22
19
  };
23
- var ShapesOnGlobeProgram = /** @class */ (function () {
24
- function ShapesOnGlobeProgram(gl, globe, drawMode) {
25
- if (drawMode === void 0) { drawMode = 'point'; }
20
+ export class ShapesOnGlobeProgram {
21
+ constructor(gl, globe, drawMode = 'point') {
26
22
  this.globe = globe;
27
23
  this.gl = gl;
28
24
  this._getDraw = drawModeFunc(gl);
@@ -33,9 +29,9 @@ var ShapesOnGlobeProgram = /** @class */ (function () {
33
29
  this._initUniforms();
34
30
  this.setScreenWH();
35
31
  }
36
- ShapesOnGlobeProgram.prototype._initUniforms = function () {
37
- var _a = this, gl = _a.gl, _programWrapper = _a._programWrapper;
38
- var currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
32
+ _initUniforms() {
33
+ const { gl, _programWrapper } = this;
34
+ const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
39
35
  this._getDrawMode = drawModeFunc(gl);
40
36
  gl.useProgram(_programWrapper.program);
41
37
  gl.uniform1f(_programWrapper.u_opacity, 1.0);
@@ -43,16 +39,59 @@ var ShapesOnGlobeProgram = /** @class */ (function () {
43
39
  gl.uniform1f(_programWrapper.height, 0.0);
44
40
  gl.uniform1f(_programWrapper.u_point_size, 1.0);
45
41
  gl.useProgram(currentProgram);
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');
42
+ }
43
+ _createProgramWrapper() {
44
+ const { gl, globe } = this;
45
+ const vertexSource = `#version 300 es
46
+ precision highp float;
47
+ ${CameraUniformBlockString}
48
+
49
+ in vec2 a_position;
50
+ in vec4 a_color;
51
+
52
+
53
+ uniform bool u_is3D;
54
+ uniform float height;
55
+
56
+ uniform float u_point_size;
57
+
58
+ out vec4 v_color;
59
+
60
+ ` + shaderfunctions.pixelXYToCartesian3DPoint + `
61
+ ` + shaderfunctions.pixelXYToCartesian2DPoint + `
62
+
63
+
64
+ void main() {
65
+ vec3 pos = vec3(a_position, height);
66
+ if(is3D){
67
+ pos = pixelXYToCartesian3DPoint(pos);
68
+ gl_Position = projection * view * vec4(pos - translate, 1.0);
69
+ } else {
70
+ vec2 xy = pixelXYToCartesian2DPoint(pos.xy, translate.xy, mapWH, screenWH);
71
+ gl_Position = projection * vec4(xy.x, xy.y, 0.0, 1.0);
72
+ }
73
+ gl_PointSize = u_point_size;
74
+ v_color = a_color;
75
+ }
76
+ `;
77
+ const fragmentSource = `#version 300 es
78
+ precision highp float;
79
+
80
+ uniform float u_opacity;
81
+
82
+ in vec4 v_color;
83
+ out vec4 outColor;
84
+
85
+ void main() {
86
+ outColor = v_color;
87
+ outColor.a = u_opacity;
88
+ }
89
+ `;
90
+ const program = createProgram(gl, vertexSource, fragmentSource);
91
+ const a_position = gl.getAttribLocation(program, 'a_position');
92
+ const a_color = gl.getAttribLocation(program, 'a_color');
54
93
  // vao and buffer.
55
- var vao = gl.createVertexArray();
94
+ const vao = gl.createVertexArray();
56
95
  gl.bindVertexArray(vao);
57
96
  gl.bindBuffer(gl.ARRAY_BUFFER, this._inBuffer);
58
97
  gl.enableVertexAttribArray(a_position);
@@ -60,22 +99,22 @@ var ShapesOnGlobeProgram = /** @class */ (function () {
60
99
  gl.enableVertexAttribArray(a_color);
61
100
  gl.vertexAttribPointer(a_color, 4, gl.FLOAT, false, 6 * 4, 2 * 4);
62
101
  gl.bindVertexArray(null);
63
- var cm = camerauniformblock_1.CameraUniformBlockTotemCache.get(globe);
64
- var bindingPoint = 0;
65
- var cmIndex = gl.getUniformBlockIndex(program, "CameraUniformBlock");
102
+ const cm = CameraUniformBlockTotemCache.get(globe);
103
+ const bindingPoint = 0;
104
+ const cmIndex = gl.getUniformBlockIndex(program, "CameraUniformBlock");
66
105
  gl.uniformBlockBinding(program, cmIndex, bindingPoint);
67
106
  return {
68
107
  program: program,
69
108
  vao: vao,
70
109
  u_point_size: gl.getUniformLocation(program, 'u_point_size'),
71
110
  u_opacity: gl.getUniformLocation(program, 'u_opacity'),
72
- bindCamera: function () { return cm.bind(bindingPoint); },
73
- unbindCamera: function () { return cm.unbind(bindingPoint); }
111
+ bindCamera: () => cm.bind(bindingPoint),
112
+ unbindCamera: () => cm.unbind(bindingPoint)
74
113
  };
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);
114
+ }
115
+ draw(uProjectionMatrix, uModelViewMatrix, uTranslate, drawRanges) {
116
+ const { gl, _programWrapper, _is3D } = this;
117
+ const deepTest = gl.isEnabled(gl.DEPTH_TEST);
79
118
  gl.disable(gl.DEPTH_TEST);
80
119
  gl.useProgram(_programWrapper.program);
81
120
  gl.bindVertexArray(_programWrapper.vao);
@@ -85,11 +124,10 @@ var ShapesOnGlobeProgram = /** @class */ (function () {
85
124
  gl.bindVertexArray(_programWrapper.vao);
86
125
  _programWrapper.bindCamera();
87
126
  if (!_is3D) {
88
- var mapWH = this.globe.api_GetCurrentWorldWH();
127
+ const mapWH = this.globe.api_GetCurrentWorldWH();
89
128
  gl.uniform2f(_programWrapper.u_mapWH, mapWH.width, mapWH.height);
90
129
  }
91
- for (var _i = 0, drawRanges_1 = drawRanges; _i < drawRanges_1.length; _i++) {
92
- var drawRange = drawRanges_1[_i];
130
+ for (const drawRange of drawRanges) {
93
131
  gl.drawArrays(this._drawMode, drawRange[0], drawRange[1]);
94
132
  // gl.drawArrays(gl.POINTS, drawRange[0], 1);
95
133
  }
@@ -98,77 +136,75 @@ var ShapesOnGlobeProgram = /** @class */ (function () {
98
136
  if (deepTest) {
99
137
  gl.enable(gl.DEPTH_TEST);
100
138
  }
101
- };
102
- ShapesOnGlobeProgram.prototype.setOpacity = function (opacity) {
139
+ }
140
+ setOpacity(opacity) {
103
141
  if (opacity < 0 || opacity > 1) {
104
142
  throw new Error('Invalid opacity value');
105
143
  }
106
144
  ;
107
- var _a = this, gl = _a.gl, _programWrapper = _a._programWrapper;
108
- var currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
145
+ const { gl, _programWrapper } = this;
146
+ const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
109
147
  gl.useProgram(_programWrapper.program);
110
148
  gl.uniform1f(_programWrapper.u_opacity, opacity);
111
149
  gl.useProgram(currentProgram);
112
150
  this.globe.DrawRender();
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);
151
+ }
152
+ setPointSize(size) {
153
+ const { gl, _programWrapper } = this;
154
+ const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
117
155
  gl.useProgram(_programWrapper.program);
118
156
  gl.uniform1f(_programWrapper.u_point_size, size);
119
157
  gl.useProgram(currentProgram);
120
158
  this.globe.DrawRender();
121
- };
122
- ShapesOnGlobeProgram.prototype.setDrawMode = function (mode) {
123
- var modegl = this._getDraw(mode);
159
+ }
160
+ setDrawMode(mode) {
161
+ const modegl = this._getDraw(mode);
124
162
  if (modegl) {
125
163
  this._drawMode = modegl;
126
164
  }
127
165
  else {
128
166
  throw new Error('Invalid draw mode ' + mode);
129
167
  }
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);
168
+ }
169
+ setScreenWH() {
170
+ const { gl, _programWrapper, globe } = this;
171
+ const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
134
172
  gl.useProgram(_programWrapper.program);
135
173
  gl.uniform2f(_programWrapper.u_scrWH, globe.api_ScrW(), globe.api_ScrH());
136
174
  gl.useProgram(currentProgram);
137
- };
138
- ShapesOnGlobeProgram.prototype.resize = function (width, height) {
139
- var _a = this, gl = _a.gl, _programWrapper = _a._programWrapper, globe = _a.globe;
175
+ }
176
+ resize(width, height) {
177
+ const { gl, _programWrapper, globe } = this;
140
178
  width = width || globe.api_ScrW();
141
179
  height = height || globe.api_ScrH();
142
- var currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
180
+ const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
143
181
  gl.useProgram(_programWrapper.program);
144
182
  gl.uniform2f(_programWrapper.u_scrWH, width, height);
145
183
  gl.useProgram(currentProgram);
146
- };
147
- ShapesOnGlobeProgram.prototype.setGeometry = function () {
148
- var _a = this, gl = _a.gl, globe = _a.globe, _programWrapper = _a._programWrapper;
184
+ }
185
+ setGeometry() {
186
+ const { gl, globe, _programWrapper } = this;
149
187
  this._is3D = globe.api_GetCurrentGeometry() === 0;
150
- var currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
188
+ const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
151
189
  gl.useProgram(_programWrapper.program);
152
190
  gl.uniform1f(_programWrapper.u_is3D, this._is3D ? 1.0 : 0.0);
153
191
  gl.useProgram(currentProgram);
154
192
  this.resize();
155
- };
156
- ShapesOnGlobeProgram.prototype.free = function () {
157
- var _a = this, gl = _a.gl, _programWrapper = _a._programWrapper;
193
+ }
194
+ free() {
195
+ const { gl, _programWrapper } = this;
158
196
  gl.deleteProgram(_programWrapper.program);
159
197
  gl.deleteVertexArray(_programWrapper.vao);
160
198
  gl.deleteBuffer(this._inBuffer);
161
- };
199
+ }
162
200
  /**
163
201
  *
164
202
  * @param {Float32Array} data
165
203
  * @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]
166
204
  */
167
- ShapesOnGlobeProgram.prototype.setBufferData = function (data) {
168
- var gl = this.gl;
205
+ setBufferData(data) {
206
+ const { gl } = this;
169
207
  gl.bindBuffer(gl.ARRAY_BUFFER, this._inBuffer);
170
208
  gl.bufferData(gl.ARRAY_BUFFER, data, gl.STATIC_DRAW);
171
- };
172
- return ShapesOnGlobeProgram;
173
- }());
174
- exports.ShapesOnGlobeProgram = ShapesOnGlobeProgram;
209
+ }
210
+ }
@@ -1,14 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SuperSampleTextureProgram = void 0;
4
- var webglobjectbuilders_1 = require("../webglobjectbuilders");
5
- var SuperSampleTextureProgram = /** @class */ (function () {
6
- function SuperSampleTextureProgram(gl, internalFormat, sourceFormat, sourceType, glslOutputType, glslBand) {
7
- if (internalFormat === void 0) { internalFormat = null; }
8
- if (sourceFormat === void 0) { sourceFormat = null; }
9
- if (sourceType === void 0) { sourceType = null; }
10
- if (glslOutputType === void 0) { glslOutputType = "float"; }
11
- if (glslBand === void 0) { glslBand = "r"; }
1
+ import { createProgram } from '../webglobjectbuilders';
2
+ export class SuperSampleTextureProgram {
3
+ constructor(gl, internalFormat = null, sourceFormat = null, sourceType = null, glslOutputType = "float", glslBand = "r") {
12
4
  this._internalFormat = internalFormat || gl.R16F;
13
5
  this._sourceFormat = sourceFormat || gl.RED;
14
6
  this._sourceType = sourceType || gl.FLOAT;
@@ -18,17 +10,29 @@ var SuperSampleTextureProgram = /** @class */ (function () {
18
10
  this._programWrapper = this._createProgramWrapper();
19
11
  this._framebuffer = this.gl.createFramebuffer();
20
12
  }
21
- SuperSampleTextureProgram.prototype._createProgramWrapper = function () {
22
- var _a = this, gl = _a.gl, _glslBand = _a._glslBand, _glslOutputType = _a._glslOutputType;
23
- var vertexShaderSource = "#version 300 es\n in vec2 a_position;\n out vec2 v_texCoord;\n\n uniform mat4 u_bbox_matrix;\n\n void main() {\n gl_Position = vec4(a_position, 0.0, 1.0);\n v_texCoord = (u_bbox_matrix * vec4(a_position,0.0, 1.0)).xy;\n }";
24
- var fragmentShaderSource = "#version 300 es\n precision highp float;\n in vec2 v_texCoord;"
25
- + "out ".concat(_glslOutputType, " outColor;")
26
- + "uniform sampler2D u_texture;\n void main() {"
27
- + " outColor = texture(u_texture, v_texCoord).".concat(_glslBand, ";")
28
- + "}";
29
- var program = (0, webglobjectbuilders_1.createProgram)(gl, vertexShaderSource, fragmentShaderSource);
30
- var vao = gl.createVertexArray();
31
- var positionBuffer = gl.createBuffer();
13
+ _createProgramWrapper() {
14
+ const { gl, _glslBand, _glslOutputType } = this;
15
+ const vertexShaderSource = `#version 300 es
16
+ in vec2 a_position;
17
+ out vec2 v_texCoord;
18
+
19
+ uniform mat4 u_bbox_matrix;
20
+
21
+ void main() {
22
+ gl_Position = vec4(a_position, 0.0, 1.0);
23
+ v_texCoord = (u_bbox_matrix * vec4(a_position,0.0, 1.0)).xy;
24
+ }`;
25
+ const fragmentShaderSource = `#version 300 es
26
+ precision highp float;
27
+ in vec2 v_texCoord;`
28
+ + `out ${_glslOutputType} outColor;`
29
+ + `uniform sampler2D u_texture;
30
+ void main() {`
31
+ + ` outColor = texture(u_texture, v_texCoord).${_glslBand};`
32
+ + `}`;
33
+ const program = createProgram(gl, vertexShaderSource, fragmentShaderSource);
34
+ const vao = gl.createVertexArray();
35
+ const positionBuffer = gl.createBuffer();
32
36
  gl.bindVertexArray(vao);
33
37
  gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer);
34
38
  gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([
@@ -40,8 +44,8 @@ var SuperSampleTextureProgram = /** @class */ (function () {
40
44
  gl.enableVertexAttribArray(0);
41
45
  gl.vertexAttribPointer(0, 2, gl.FLOAT, false, 0, 0);
42
46
  gl.bindVertexArray(null);
43
- var u_bbox_matrix = gl.getUniformLocation(program, "u_bbox_matrix");
44
- var currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
47
+ const u_bbox_matrix = gl.getUniformLocation(program, "u_bbox_matrix");
48
+ const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
45
49
  gl.uniformMatrix2fv(u_bbox_matrix, false, new Float32Array([
46
50
  1, 0, 0, 0,
47
51
  0, 1, 0, 0,
@@ -51,17 +55,17 @@ var SuperSampleTextureProgram = /** @class */ (function () {
51
55
  gl.useProgram(program);
52
56
  gl.useProgram(currentProgram);
53
57
  return {
54
- program: program,
55
- vao: vao,
58
+ program,
59
+ vao,
56
60
  u_texture: gl.getUniformLocation(program, "u_texture"),
57
- u_bbox_matrix: u_bbox_matrix
61
+ u_bbox_matrix
58
62
  };
59
- };
60
- SuperSampleTextureProgram.prototype.createHigherResolutionTexture = function (targetWidth, targetHeight, sourceTexture) {
63
+ }
64
+ createHigherResolutionTexture(targetWidth, targetHeight, sourceTexture) {
61
65
  // save current state
62
- var _a = this, gl = _a.gl, _internalFormat = _a._internalFormat, _sourceFormat = _a._sourceFormat, _sourceType = _a._sourceType;
63
- var currentViewport = gl.getParameter(gl.VIEWPORT);
64
- var resultTexture = gl.createTexture();
66
+ const { gl, _internalFormat, _sourceFormat, _sourceType } = this;
67
+ const currentViewport = gl.getParameter(gl.VIEWPORT);
68
+ const resultTexture = gl.createTexture();
65
69
  gl.bindTexture(gl.TEXTURE_2D, resultTexture);
66
70
  gl.texImage2D(gl.TEXTURE_2D, 0, _internalFormat, targetWidth, targetHeight, 0, _sourceFormat, _sourceType, null);
67
71
  gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
@@ -78,9 +82,9 @@ var SuperSampleTextureProgram = /** @class */ (function () {
78
82
  // restore previous state
79
83
  this.gl.viewport(currentViewport[0], currentViewport[1], currentViewport[2], currentViewport[3]);
80
84
  return resultTexture;
81
- };
82
- SuperSampleTextureProgram.prototype._draw = function (texture) {
83
- var currentProgram = this.gl.getParameter(this.gl.CURRENT_PROGRAM);
85
+ }
86
+ _draw(texture) {
87
+ const currentProgram = this.gl.getParameter(this.gl.CURRENT_PROGRAM);
84
88
  this.gl.useProgram(this._programWrapper.program);
85
89
  this.gl.bindVertexArray(this._programWrapper.vao);
86
90
  this.gl.activeTexture(this.gl.TEXTURE0);
@@ -89,10 +93,10 @@ var SuperSampleTextureProgram = /** @class */ (function () {
89
93
  this.gl.drawArrays(this.gl.TRIANGLE_FAN, 0, 4);
90
94
  this.gl.bindVertexArray(null);
91
95
  this.gl.useProgram(currentProgram);
92
- };
93
- SuperSampleTextureProgram.prototype.setBBox = function (x0, y0, x1, y1) {
94
- var _a = this, gl = _a.gl, _programWrapper = _a._programWrapper;
95
- var currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
96
+ }
97
+ setBBox(x0, y0, x1, y1) {
98
+ const { gl, _programWrapper } = this;
99
+ const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
96
100
  gl.useProgram(_programWrapper.program);
97
101
  gl.uniformMatrix2fv(_programWrapper.u_bbox_matrix, false, new Float32Array([
98
102
  1 / (x1 - x0), 0, -x0 / (x1 - x0), 0,
@@ -101,7 +105,5 @@ var SuperSampleTextureProgram = /** @class */ (function () {
101
105
  0, 0, 0, 1
102
106
  ]));
103
107
  gl.useProgram(currentProgram);
104
- };
105
- return SuperSampleTextureProgram;
106
- }());
107
- exports.SuperSampleTextureProgram = SuperSampleTextureProgram;
108
+ }
109
+ }