@pirireis/webglobeplugins 0.9.11 → 0.9.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/Math/angle-calculation.js +8 -8
  2. package/Math/arc.js +18 -18
  3. package/Math/bounds/line-bbox.js +78 -80
  4. package/Math/constants.js +3 -3
  5. package/Math/juction/arc-plane.js +23 -23
  6. package/Math/juction/line-sphere.js +11 -11
  7. package/Math/juction/plane-plane.js +11 -11
  8. package/Math/line.js +14 -16
  9. package/Math/methods.js +65 -70
  10. package/Math/plane.js +16 -18
  11. package/Math/quaternion.js +45 -49
  12. package/Math/utils.js +2 -2
  13. package/Math/vec3.js +42 -45
  14. package/algorithms/search-binary.js +4 -4
  15. package/altitude-locator/draw-subset-obj.js +7 -8
  16. package/altitude-locator/plugin.js +98 -114
  17. package/arrowfield/adaptor.js +3 -4
  18. package/arrowfield/index.js +2 -2
  19. package/arrowfield/plugin.js +62 -65
  20. package/bearing-line/index.js +1 -1
  21. package/bearing-line/plugin.js +200 -226
  22. package/circle-line-chain/chain-list-map.js +82 -88
  23. package/circle-line-chain/plugin.js +134 -165
  24. package/circle-line-chain/util.js +1 -1
  25. package/compass-rose/compass-rose-padding-flat.js +108 -133
  26. package/compass-rose/compass-text-writer.js +62 -70
  27. package/compass-rose/index.js +2 -2
  28. package/compassrose/compassrose.js +46 -50
  29. package/compassrose/index.js +1 -1
  30. package/heatwave/index.js +2 -2
  31. package/heatwave/isobar/objectarraylabels.js +44 -48
  32. package/heatwave/isobar/plugin.js +104 -123
  33. package/heatwave/isobar/quadtreecontours.js +76 -92
  34. package/heatwave/plugins/heatwaveglobeshell.js +69 -87
  35. package/index.js +11 -11
  36. package/package.json +1 -1
  37. package/partialrings/buffer-manager.js +32 -64
  38. package/partialrings/index.js +1 -1
  39. package/partialrings/plugin.js +48 -84
  40. package/partialrings/program.js +136 -47
  41. package/pin/pin-object-array.js +83 -86
  42. package/pin/pin-point-totem.js +21 -22
  43. package/point-heat-map/adaptors/timetracksplugin-format-to-this.js +10 -10
  44. package/point-heat-map/plugin-webworker.js +40 -45
  45. package/point-heat-map/point-to-heat-map-flow.js +40 -42
  46. package/point-tracks/key-methods.js +1 -1
  47. package/point-tracks/plugin.js +137 -162
  48. package/programs/arrowfield/index.js +1 -1
  49. package/programs/arrowfield/logic.js +170 -62
  50. package/programs/arrowfield/object.js +33 -35
  51. package/programs/data2legend/density-to-legend.js +45 -21
  52. package/programs/data2legend/point-to-density-texture.js +52 -27
  53. package/programs/float2legendwithratio/index.js +1 -1
  54. package/programs/float2legendwithratio/logic.js +88 -42
  55. package/programs/float2legendwithratio/object.js +43 -46
  56. package/programs/globe-util/is-globe-moved.js +10 -11
  57. package/programs/globeshell/index.js +1 -1
  58. package/programs/globeshell/wiggle/index.js +1 -1
  59. package/programs/globeshell/wiggle/logic.js +191 -98
  60. package/programs/globeshell/wiggle/object.js +33 -35
  61. package/programs/helpers/blender/program.js +36 -19
  62. package/programs/helpers/fadeaway/index.js +1 -1
  63. package/programs/helpers/fadeaway/logic.js +35 -13
  64. package/programs/helpers/fadeaway/object.js +9 -10
  65. package/programs/helpers/index.js +1 -1
  66. package/programs/index.js +8 -8
  67. package/programs/line-on-globe/angled-line.js +91 -32
  68. package/programs/line-on-globe/circle-accurate-3d.js +82 -32
  69. package/programs/line-on-globe/circle-accurate-flat.js +108 -50
  70. package/programs/line-on-globe/circle-accurate.js +103 -33
  71. package/programs/line-on-globe/circle.js +97 -32
  72. package/programs/line-on-globe/degree-padding-around-circle-3d.js +83 -33
  73. package/programs/line-on-globe/lines-color-instanced-flat.js +79 -34
  74. package/programs/line-on-globe/linestrip.js +111 -45
  75. package/programs/line-on-globe/naive-accurate-flexible.js +120 -50
  76. package/programs/line-on-globe/to-the-surface.js +58 -29
  77. package/programs/line-on-globe/util.js +1 -1
  78. package/programs/picking/pickable-renderer.js +117 -33
  79. package/programs/point-on-globe/element-globe-surface-glow.js +78 -38
  80. package/programs/point-on-globe/element-point-glow.js +103 -35
  81. package/programs/point-on-globe/square-pixel-point.js +76 -27
  82. package/programs/programcache.js +13 -13
  83. package/programs/rings/distancering/circleflatprogram.js +63 -21
  84. package/programs/rings/distancering/circlepaddingfreeangleprogram.js +156 -145
  85. package/programs/rings/distancering/circlepaddysharedbuffer.js +121 -197
  86. package/programs/rings/distancering/index.js +4 -4
  87. package/programs/rings/distancering/paddyflatprogram.js +73 -20
  88. package/programs/rings/distancering/paddyflatprogram2d.js +75 -22
  89. package/programs/rings/distancering/paddyflatprogram3d.js +73 -20
  90. package/programs/rings/partial-ring/piece-of-pie.js +137 -35
  91. package/programs/totems/camerauniformblock.js +64 -51
  92. package/programs/totems/canvas-webglobe-info.js +48 -40
  93. package/programs/totems/gpu-selection-uniform-block.js +44 -40
  94. package/programs/totems/index.js +1 -1
  95. package/programs/two-d/pixel-padding-for-compass.js +90 -29
  96. package/programs/util.js +6 -7
  97. package/programs/vectorfields/index.js +1 -1
  98. package/programs/vectorfields/logics/drawrectangleparticles.js +70 -29
  99. package/programs/vectorfields/logics/index.js +3 -3
  100. package/programs/vectorfields/logics/pixelbased.js +91 -35
  101. package/programs/vectorfields/logics/ubo.js +31 -25
  102. package/programs/vectorfields/pingpongbuffermanager.js +30 -34
  103. package/rangerings/index.js +4 -4
  104. package/rangerings/plugin.js +202 -258
  105. package/rangerings/rangeringangletext.js +108 -120
  106. package/rangerings/ring-account.js +52 -69
  107. package/shaders/fragment-toy/firework.js +55 -1
  108. package/shaders/fragment-toy/singularity.js +55 -1
  109. package/timetracks/adaptors-line-strip.js +26 -37
  110. package/timetracks/adaptors.js +47 -61
  111. package/timetracks/index.js +4 -4
  112. package/timetracks/plugin-line-strip.js +63 -71
  113. package/timetracks/plugin.js +69 -77
  114. package/timetracks/program-line-strip.js +296 -103
  115. package/timetracks/program.js +419 -113
  116. package/timetracks/programpoint-line-strip.js +97 -44
  117. package/timetracks/programpoint.js +90 -44
  118. package/util/account/bufferoffsetmanager.js +72 -95
  119. package/util/account/index.js +1 -1
  120. package/util/account/single-attribute-buffer-management/buffer-manager.js +44 -44
  121. package/util/account/single-attribute-buffer-management/buffer-orchestrator.js +68 -94
  122. package/util/account/single-attribute-buffer-management/index.js +3 -3
  123. package/util/account/single-attribute-buffer-management/object-store.js +29 -30
  124. package/util/account/util.js +2 -4
  125. package/util/algorithms/search-binary.js +4 -4
  126. package/util/check/get.js +5 -5
  127. package/util/check/typecheck.js +13 -15
  128. package/util/geometry/index.js +9 -11
  129. package/util/gl-util/buffer/attribute-loader.js +8 -20
  130. package/util/gl-util/buffer/index.js +1 -1
  131. package/util/gl-util/draw-options/methods.js +8 -9
  132. package/util/gl-util/uniform-block/manager.js +67 -67
  133. package/util/heatwavedatamanager/datamanager.js +56 -116
  134. package/util/heatwavedatamanager/index.js +2 -2
  135. package/util/heatwavedatamanager/pointcoordinatesdatacalculator.js +37 -40
  136. package/util/heatwavedatamanager/pointcoordsmeta.js +9 -10
  137. package/util/index.js +6 -6
  138. package/util/interpolation/timetrack/index.js +1 -1
  139. package/util/interpolation/timetrack/timetrack-interpolator.js +27 -29
  140. package/util/interpolation/timetrack/web-worker-str.js +179 -1
  141. package/util/interpolation/timetrack/web-worker.js +4 -4
  142. package/util/jshelpers/data-filler.js +7 -7
  143. package/util/jshelpers/timefilters.js +7 -7
  144. package/util/picking/fence.js +7 -7
  145. package/util/picking/picker-displayer.js +46 -52
  146. package/util/programs/draw-texture-on-canvas.js +39 -21
  147. package/util/programs/shapesonglobe.js +104 -64
  148. package/util/programs/supersampletotextures.js +45 -39
  149. package/util/programs/texturetoglobe.js +98 -48
  150. package/util/shaderfunctions/geometrytransformations.js +322 -27
  151. package/util/shaderfunctions/nodata.js +7 -1
  152. package/util/shaderfunctions/noisefunctions.js +39 -9
  153. package/util/surface-line-data/arcs-to-cuts.js +20 -23
  154. package/util/webglobe/rasteroverlay.js +35 -37
  155. package/util/webglobjectbuilders.js +55 -60
  156. package/util/webglobjectbuilders1.js +48 -49
  157. package/waveparticles/adaptor.js +6 -7
  158. package/waveparticles/index.js +2 -2
  159. package/waveparticles/plugin.js +79 -84
  160. package/wind/imagetovectorfieldandmagnitude.js +15 -15
  161. package/wind/index.js +4 -4
  162. package/wind/plugin.js +453 -251
  163. package/wind/vectorfieldimage.js +5 -5
  164. package/write-text/attached-text-writer.js +46 -48
  165. package/write-text/context-text.js +51 -58
  166. package/write-text/context-text3.js +69 -74
@@ -1,10 +1,33 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var util_1 = require("../../../util");
4
- var vertexShaderSource = "#version 300 es\nprecision highp float; \nin vec2 a_position;\nout vec2 v_texCoord; \nvoid main() {\n gl_Position = vec4(a_position, 0.0, 1.0);\n v_texCoord = a_position * 0.5 + vec2(0.5);\n}\n";
5
- var fragmentShaderSource = "#version 300 es\nprecision highp float;\nuniform float opacity;\nuniform sampler2D u_texture;\nin vec2 v_texCoord;\nout vec4 outColor;\nvoid main() {\n\n vec4 color = texture(u_texture, v_texCoord);\n if (color.a <= 0.2) {\n outColor = vec4(0.0);\n return;\n }\n outColor = vec4(color.rgb, color.a * opacity);\n}\n";
6
- var FadeAwayProgram = /** @class */ (function () {
7
- function FadeAwayProgram(gl) {
3
+ const util_1 = require("../../../util");
4
+ const vertexShaderSource = `#version 300 es
5
+ precision highp float;
6
+ in vec2 a_position;
7
+ out vec2 v_texCoord;
8
+ void main() {
9
+ gl_Position = vec4(a_position, 0.0, 1.0);
10
+ v_texCoord = a_position * 0.5 + vec2(0.5);
11
+ }
12
+ `;
13
+ const fragmentShaderSource = `#version 300 es
14
+ precision highp float;
15
+ uniform float opacity;
16
+ uniform sampler2D u_texture;
17
+ in vec2 v_texCoord;
18
+ out vec4 outColor;
19
+ void main() {
20
+
21
+ vec4 color = texture(u_texture, v_texCoord);
22
+ if (color.a <= 0.2) {
23
+ outColor = vec4(0.0);
24
+ return;
25
+ }
26
+ outColor = vec4(color.rgb, color.a * opacity);
27
+ }
28
+ `;
29
+ class FadeAwayProgram {
30
+ constructor(gl) {
8
31
  this.gl = gl;
9
32
  this.program = (0, util_1.createProgram)(gl, vertexShaderSource, fragmentShaderSource);
10
33
  this.vao = gl.createVertexArray();
@@ -28,8 +51,8 @@ var FadeAwayProgram = /** @class */ (function () {
28
51
  opacity: gl.getUniformLocation(this.program, 'opacity')
29
52
  };
30
53
  }
31
- FadeAwayProgram.prototype.draw = function (texture, opacity) {
32
- var _a = this, gl = _a.gl, vao = _a.vao, uniforms = _a.uniforms, program = _a.program;
54
+ draw(texture, opacity) {
55
+ const { gl, vao, uniforms, program } = this;
33
56
  gl.useProgram(program);
34
57
  gl.bindVertexArray(vao);
35
58
  gl.uniform1f(uniforms.opacity, opacity);
@@ -38,13 +61,12 @@ var FadeAwayProgram = /** @class */ (function () {
38
61
  gl.bindTexture(gl.TEXTURE_2D, texture);
39
62
  gl.drawArrays(gl.TRIANGLES, 0, 6);
40
63
  gl.bindVertexArray(null);
41
- };
42
- FadeAwayProgram.prototype.free = function () {
43
- var _a = this, gl = _a.gl, vao = _a.vao, _buffer = _a._buffer, program = _a.program;
64
+ }
65
+ free() {
66
+ const { gl, vao, _buffer, program } = this;
44
67
  gl.deleteVertexArray(vao);
45
68
  gl.deleteProgram(program);
46
69
  gl.deleteBuffer(_buffer);
47
- };
48
- return FadeAwayProgram;
49
- }());
70
+ }
71
+ }
50
72
  exports.default = FadeAwayProgram;
@@ -3,19 +3,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- var programcache_1 = require("../../programcache");
7
- var logic_1 = __importDefault(require("./logic"));
8
- var FadeAway = /** @class */ (function () {
9
- function FadeAway(gl) {
6
+ const programcache_1 = require("../../programcache");
7
+ const logic_1 = __importDefault(require("./logic"));
8
+ class FadeAway {
9
+ constructor(gl) {
10
10
  this.gl = gl;
11
11
  this.program = programcache_1.glProgramCache.getProgram(gl, logic_1.default);
12
12
  }
13
- FadeAway.prototype.draw = function (sourceTexture, opacity) {
13
+ draw(sourceTexture, opacity) {
14
14
  this.program.draw(sourceTexture, opacity);
15
- };
16
- FadeAway.prototype.free = function () {
15
+ }
16
+ free() {
17
17
  programcache_1.glProgramCache.releaseProgram(logic_1.default);
18
- };
19
- return FadeAway;
20
- }());
18
+ }
19
+ }
21
20
  exports.default = FadeAway;
@@ -4,5 +4,5 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.FadeAway = void 0;
7
- var fadeaway_1 = __importDefault(require("./fadeaway"));
7
+ const fadeaway_1 = __importDefault(require("./fadeaway"));
8
8
  exports.FadeAway = fadeaway_1.default;
package/programs/index.js CHANGED
@@ -37,22 +37,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.rings = exports.FadeAway = exports.vectorfield = exports.noRegisterGlobeProgramCache = exports.globeProgramCache = exports.glProgramCache = exports.CameraUniformBlockString = exports.CameraUniformBlockTotem = exports.ArrowField = exports.GlobeShellWiggle = exports.Float2LegendWithRatio = void 0;
40
- var float2legendwithratio_1 = require("./float2legendwithratio");
40
+ const float2legendwithratio_1 = require("./float2legendwithratio");
41
41
  Object.defineProperty(exports, "Float2LegendWithRatio", { enumerable: true, get: function () { return float2legendwithratio_1.Float2LegendWithRatio; } });
42
- var wiggle_1 = require("./globeshell/wiggle");
42
+ const wiggle_1 = require("./globeshell/wiggle");
43
43
  Object.defineProperty(exports, "GlobeShellWiggle", { enumerable: true, get: function () { return wiggle_1.GlobeShellWiggle; } });
44
- var index_1 = require("./totems/index");
44
+ const index_1 = require("./totems/index");
45
45
  Object.defineProperty(exports, "CameraUniformBlockTotem", { enumerable: true, get: function () { return index_1.CameraUniformBlockTotem; } });
46
46
  Object.defineProperty(exports, "CameraUniformBlockString", { enumerable: true, get: function () { return index_1.CameraUniformBlockString; } });
47
- var arrowfield_1 = __importDefault(require("./arrowfield"));
47
+ const arrowfield_1 = __importDefault(require("./arrowfield"));
48
48
  exports.ArrowField = arrowfield_1.default;
49
- var programcache_1 = require("./programcache");
49
+ const programcache_1 = require("./programcache");
50
50
  Object.defineProperty(exports, "glProgramCache", { enumerable: true, get: function () { return programcache_1.glProgramCache; } });
51
51
  Object.defineProperty(exports, "globeProgramCache", { enumerable: true, get: function () { return programcache_1.globeProgramCache; } });
52
52
  Object.defineProperty(exports, "noRegisterGlobeProgramCache", { enumerable: true, get: function () { return programcache_1.noRegisterGlobeProgramCache; } });
53
- var vectorfield = __importStar(require("./vectorfields"));
53
+ const vectorfield = __importStar(require("./vectorfields"));
54
54
  exports.vectorfield = vectorfield;
55
- var helpers_1 = require("./helpers");
55
+ const helpers_1 = require("./helpers");
56
56
  Object.defineProperty(exports, "FadeAway", { enumerable: true, get: function () { return helpers_1.FadeAway; } });
57
- var rings = __importStar(require("./rings"));
57
+ const rings = __importStar(require("./rings"));
58
58
  exports.rings = rings;
@@ -2,20 +2,80 @@
2
2
  // angle radius, rgba, dashRatio, rgbaMode
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.AngledLineProgramCache = void 0;
5
- var util_1 = require("../../util");
6
- var totems_1 = require("../totems");
7
- var geometrytransformations_1 = require("../../util/shaderfunctions/geometrytransformations");
8
- var programcache_1 = require("../programcache");
9
- var EDGE_COUNT_ON_SPHERE = 50;
10
- var vertexShaderSource = "#version 300 es\nprecision highp float;\n\n".concat(totems_1.CameraUniformBlockString, "\n").concat(geometrytransformations_1.longLatRadToMercator, "\n").concat(geometrytransformations_1.longLatRadToCartesian3D, "\n").concat(geometrytransformations_1.cartesian3DToGLPosition, "\n").concat(geometrytransformations_1.mercatorXYToGLPosition, "\n").concat(geometrytransformations_1.circleLimpFromLongLatRadCenterCartesian3D, "\n").concat(geometrytransformations_1.circleLimpFromLongLatRadCenterMercatorCompass, "\n").concat(geometrytransformations_1.circleLimpFromLongLatRadCenterMercatorRealDistance, "\n\nin vec2 center_point;\nin float angle;\nin float radius;\nin vec4 rgba;\nin float dash_ratio;\nin float dash_opacity;\n\nout vec4 v_color;\nout float v_dash_ratio;\nout float interpolation;\nout float v_dash_opacity;\nout vec2 v_limp;\n// TODO: Draw World Boundaries \nvoid main() {\n if ( is3D ) {\n interpolation = float( gl_VertexID ) / ").concat(EDGE_COUNT_ON_SPHERE - 1, ".0;\n float radius_ = radius* interpolation;\n vec3 position = circleLimpFromLongLatRadCenterCartesian3D( center_point, radius_, angle);\n gl_Position = cartesian3DToGLPosition( position);\n v_limp = vec2(0.0, 0.0);\n } else {\n interpolation = float( gl_VertexID );\n float radius_ = radius * interpolation;\n vec2 position = circleLimpFromLongLatRadCenterMercatorRealDistance( center_point, radius_, angle);\n v_limp = position;\n gl_Position = mercatorXYToGLPosition( position);\n }\n v_dash_opacity = dash_opacity;\n v_color = rgba;\n v_dash_ratio = dash_ratio;\n}");
11
- var fragmentShaderSource = "#version 300 es\n".concat(geometrytransformations_1.POLE, "\nprecision highp float;\n\nuniform float opacity;\nin vec4 v_color;\nin float v_dash_ratio;\nin float v_dash_opacity;\nin float interpolation;\nin vec2 v_limp;\nout vec4 color;\n\nvoid main() {\n if ( v_limp.x < -POLE || v_limp.x > POLE || v_limp.y < -POLE || v_limp.y > POLE ){ color = vec4(0.0,0.0,0.0,0.0); return; }\n color = vec4(v_color.rgb, v_color.a * opacity);\n if (fract(interpolation / (2.0 * v_dash_ratio)) < 0.5 ) {\n color.a *= v_dash_opacity;\n } \n}");
12
- var Logic = /** @class */ (function () {
13
- function Logic(globe) {
5
+ const util_1 = require("../../util");
6
+ const totems_1 = require("../totems");
7
+ const geometrytransformations_1 = require("../../util/shaderfunctions/geometrytransformations");
8
+ const programcache_1 = require("../programcache");
9
+ const EDGE_COUNT_ON_SPHERE = 50;
10
+ const vertexShaderSource = `#version 300 es
11
+ precision highp float;
12
+
13
+ ${totems_1.CameraUniformBlockString}
14
+ ${geometrytransformations_1.longLatRadToMercator}
15
+ ${geometrytransformations_1.longLatRadToCartesian3D}
16
+ ${geometrytransformations_1.cartesian3DToGLPosition}
17
+ ${geometrytransformations_1.mercatorXYToGLPosition}
18
+ ${geometrytransformations_1.circleLimpFromLongLatRadCenterCartesian3D}
19
+ ${geometrytransformations_1.circleLimpFromLongLatRadCenterMercatorCompass}
20
+ ${geometrytransformations_1.circleLimpFromLongLatRadCenterMercatorRealDistance}
21
+
22
+ in vec2 center_point;
23
+ in float angle;
24
+ in float radius;
25
+ in vec4 rgba;
26
+ in float dash_ratio;
27
+ in float dash_opacity;
28
+
29
+ out vec4 v_color;
30
+ out float v_dash_ratio;
31
+ out float interpolation;
32
+ out float v_dash_opacity;
33
+ out vec2 v_limp;
34
+ // TODO: Draw World Boundaries
35
+ void main() {
36
+ if ( is3D ) {
37
+ interpolation = float( gl_VertexID ) / ${EDGE_COUNT_ON_SPHERE - 1}.0;
38
+ float radius_ = radius* interpolation;
39
+ vec3 position = circleLimpFromLongLatRadCenterCartesian3D( center_point, radius_, angle);
40
+ gl_Position = cartesian3DToGLPosition( position);
41
+ v_limp = vec2(0.0, 0.0);
42
+ } else {
43
+ interpolation = float( gl_VertexID );
44
+ float radius_ = radius * interpolation;
45
+ vec2 position = circleLimpFromLongLatRadCenterMercatorRealDistance( center_point, radius_, angle);
46
+ v_limp = position;
47
+ gl_Position = mercatorXYToGLPosition( position);
48
+ }
49
+ v_dash_opacity = dash_opacity;
50
+ v_color = rgba;
51
+ v_dash_ratio = dash_ratio;
52
+ }`;
53
+ const fragmentShaderSource = `#version 300 es
54
+ ${geometrytransformations_1.POLE}
55
+ precision highp float;
56
+
57
+ uniform float opacity;
58
+ in vec4 v_color;
59
+ in float v_dash_ratio;
60
+ in float v_dash_opacity;
61
+ in float interpolation;
62
+ in vec2 v_limp;
63
+ out vec4 color;
64
+
65
+ void main() {
66
+ if ( v_limp.x < -POLE || v_limp.x > POLE || v_limp.y < -POLE || v_limp.y > POLE ){ color = vec4(0.0,0.0,0.0,0.0); return; }
67
+ color = vec4(v_color.rgb, v_color.a * opacity);
68
+ if (fract(interpolation / (2.0 * v_dash_ratio)) < 0.5 ) {
69
+ color.a *= v_dash_opacity;
70
+ }
71
+ }`;
72
+ class Logic {
73
+ constructor(globe) {
14
74
  this.globe = globe;
15
75
  this.gl = globe.gl;
16
76
  this.program = (0, util_1.createProgram)(this.gl, vertexShaderSource, fragmentShaderSource);
17
77
  this._lastOpacity = 1;
18
- var _a = this, gl = _a.gl, program = _a.program;
78
+ const { gl, program } = this;
19
79
  { // assign attribute locations
20
80
  gl.bindAttribLocation(program, 0, "center_point");
21
81
  gl.bindAttribLocation(program, 1, "angle");
@@ -26,24 +86,24 @@ var Logic = /** @class */ (function () {
26
86
  }
27
87
  {
28
88
  this._opacityLocation = gl.getUniformLocation(program, "opacity");
29
- var currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
89
+ const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
30
90
  gl.useProgram(program);
31
91
  gl.uniform1f(this._opacityLocation, this._lastOpacity);
32
92
  gl.useProgram(currentProgram);
33
93
  }
34
94
  this.cameraBlockBindingPoint = 0;
35
- var cameraBlockIndex = gl.getUniformBlockIndex(program, "CameraUniformBlock");
95
+ const cameraBlockIndex = gl.getUniformBlockIndex(program, "CameraUniformBlock");
36
96
  this.cameraBlockTotem = totems_1.CameraUniformBlockTotemCache.get(globe);
37
97
  gl.uniformBlockBinding(program, cameraBlockIndex, this.cameraBlockBindingPoint);
38
98
  }
39
- Logic.prototype.draw = function (vao, length, opacity) {
40
- var _a = this, gl = _a.gl, program = _a.program, globe = _a.globe, cameraBlockTotem = _a.cameraBlockTotem, cameraBlockBindingPoint = _a.cameraBlockBindingPoint;
99
+ draw(vao, length, opacity) {
100
+ const { gl, program, globe, cameraBlockTotem, cameraBlockBindingPoint } = this;
41
101
  gl.useProgram(program);
42
102
  if (opacity !== this._lastOpacity) {
43
103
  gl.uniform1f(this._opacityLocation, opacity);
44
104
  this._lastOpacity = opacity;
45
105
  }
46
- var drawCount = globe.api_GetCurrentGeometry() === 0 ? EDGE_COUNT_ON_SPHERE : 2;
106
+ const drawCount = globe.api_GetCurrentGeometry() === 0 ? EDGE_COUNT_ON_SPHERE : 2;
47
107
  gl.bindVertexArray(vao);
48
108
  cameraBlockTotem.bind(cameraBlockBindingPoint);
49
109
  // gl.disable(gl.DEPTH_TEST);
@@ -51,48 +111,48 @@ var Logic = /** @class */ (function () {
51
111
  gl.bindVertexArray(null);
52
112
  cameraBlockTotem.unbind(cameraBlockBindingPoint);
53
113
  // gl.enable(gl.DEPTH_TEST);
54
- };
55
- Logic.prototype.createVAO = function (centerCoords, angle, radius, rgba, dashRatio, dashOpacity) {
56
- var gl = this.gl;
57
- var vao = gl.createVertexArray();
114
+ }
115
+ createVAO(centerCoords, angle, radius, rgba, dashRatio, dashOpacity) {
116
+ const { gl } = this;
117
+ const vao = gl.createVertexArray();
58
118
  gl.bindVertexArray(vao);
59
119
  {
60
- var buffer = centerCoords.buffer, _a = centerCoords.stride, stride = _a === void 0 ? 0 : _a, _b = centerCoords.offset, offset = _b === void 0 ? 0 : _b;
120
+ const { buffer, stride = 0, offset = 0 } = centerCoords;
61
121
  gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
62
122
  gl.enableVertexAttribArray(0);
63
123
  gl.vertexAttribPointer(0, 2, gl.FLOAT, false, stride, offset);
64
124
  gl.vertexAttribDivisor(0, 1);
65
125
  }
66
126
  {
67
- var buffer = angle.buffer, _c = angle.stride, stride = _c === void 0 ? 0 : _c, _d = angle.offset, offset = _d === void 0 ? 0 : _d;
127
+ const { buffer, stride = 0, offset = 0 } = angle;
68
128
  gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
69
129
  gl.enableVertexAttribArray(1);
70
130
  gl.vertexAttribPointer(1, 1, gl.FLOAT, false, stride, offset);
71
131
  gl.vertexAttribDivisor(1, 1);
72
132
  }
73
133
  {
74
- var buffer = radius.buffer, _e = radius.stride, stride = _e === void 0 ? 0 : _e, _f = radius.offset, offset = _f === void 0 ? 0 : _f;
134
+ const { buffer, stride = 0, offset = 0 } = radius;
75
135
  gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
76
136
  gl.enableVertexAttribArray(2);
77
137
  gl.vertexAttribPointer(2, 1, gl.FLOAT, false, stride, offset);
78
138
  gl.vertexAttribDivisor(2, 1);
79
139
  }
80
140
  {
81
- var buffer = rgba.buffer, _g = rgba.stride, stride = _g === void 0 ? 0 : _g, _h = rgba.offset, offset = _h === void 0 ? 0 : _h;
141
+ const { buffer, stride = 0, offset = 0 } = rgba;
82
142
  gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
83
143
  gl.enableVertexAttribArray(3);
84
144
  gl.vertexAttribPointer(3, 4, gl.FLOAT, false, stride, offset);
85
145
  gl.vertexAttribDivisor(3, 1);
86
146
  }
87
147
  {
88
- var buffer = dashRatio.buffer, _j = dashRatio.stride, stride = _j === void 0 ? 0 : _j, _k = dashRatio.offset, offset = _k === void 0 ? 0 : _k;
148
+ const { buffer, stride = 0, offset = 0 } = dashRatio;
89
149
  gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
90
150
  gl.enableVertexAttribArray(4);
91
151
  gl.vertexAttribPointer(4, 1, gl.FLOAT, false, stride, offset);
92
152
  gl.vertexAttribDivisor(4, 1);
93
153
  }
94
154
  {
95
- var buffer = dashOpacity.buffer, _l = dashOpacity.stride, stride = _l === void 0 ? 0 : _l, _m = dashOpacity.offset, offset = _m === void 0 ? 0 : _m;
155
+ const { buffer, stride = 0, offset = 0 } = dashOpacity;
96
156
  gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
97
157
  gl.enableVertexAttribArray(5);
98
158
  gl.vertexAttribPointer(5, 1, gl.FLOAT, false, stride, offset);
@@ -100,18 +160,17 @@ var Logic = /** @class */ (function () {
100
160
  }
101
161
  gl.bindVertexArray(null);
102
162
  return vao;
103
- };
104
- Logic.prototype.free = function () {
163
+ }
164
+ free() {
105
165
  if (this.isFreed)
106
166
  return;
107
167
  totems_1.CameraUniformBlockTotemCache.release(this.globe);
108
168
  this.cameraBlockTotem = null;
109
169
  this.gl.deleteProgram(this.program);
110
170
  this.isFreed = true;
111
- };
112
- return Logic;
113
- }());
171
+ }
172
+ }
114
173
  exports.AngledLineProgramCache = Object.freeze({
115
- get: function (globe) { return programcache_1.noRegisterGlobeProgramCache.getProgram(globe, Logic); },
116
- release: function (globe) { return programcache_1.noRegisterGlobeProgramCache.releaseProgram(globe, Logic); }
174
+ get: (globe) => { return programcache_1.noRegisterGlobeProgramCache.getProgram(globe, Logic); },
175
+ release: (globe) => { return programcache_1.noRegisterGlobeProgramCache.releaseProgram(globe, Logic); }
117
176
  });
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CircleCache = void 0;
4
- var webglobjectbuilders_1 = require("../../util/webglobjectbuilders");
5
- var camerauniformblock_1 = require("../totems/camerauniformblock");
6
- var programcache_1 = require("../programcache");
4
+ const webglobjectbuilders_1 = require("../../util/webglobjectbuilders");
5
+ const camerauniformblock_1 = require("../totems/camerauniformblock");
6
+ const programcache_1 = require("../programcache");
7
7
  // import { vaoAttributeLoader } from "../../util/account/util";
8
- var attribute_loader_1 = require("../../util/gl-util/buffer/attribute-loader");
9
- var geometrytransformations_1 = require("../../util/shaderfunctions/geometrytransformations");
8
+ const attribute_loader_1 = require("../../util/gl-util/buffer/attribute-loader");
9
+ const geometrytransformations_1 = require("../../util/shaderfunctions/geometrytransformations");
10
10
  /**
11
11
  * TODO:
12
12
  * 1. integrate geometry functions for radius angle and center
@@ -15,22 +15,73 @@ var geometrytransformations_1 = require("../../util/shaderfunctions/geometrytran
15
15
  * TODO:
16
16
  * center_position is too small or doenst loaded as expected.
17
17
  */
18
- var EDGE_COUNT_ON_SPHERE = 360;
18
+ const EDGE_COUNT_ON_SPHERE = 360;
19
19
  //${circleLimpFromLongLatRadCenterCartesian3D_accurate}
20
- var vertexShaderSource = "#version 300 es\nprecision highp float;\n".concat(geometrytransformations_1.PI, "\n").concat(camerauniformblock_1.CameraUniformBlockString, "\n").concat(geometrytransformations_1.cartesian3DToGLPosition, "\n").concat(geometrytransformations_1.circleOnSphere, "\n\nuniform float edge_count;\n\nin vec3 center_position3d;\nin vec3 target_position3d;\n// in float radius;\nin vec4 color;\nin float dash_ratio;\nin float dash_opacity;\n\nout float interpolation;\nout vec4 v_color;\nout float v_dash_ratio;\nout float v_dash_opacity;\nvoid main() {\n interpolation = float( gl_VertexID ) / ").concat(EDGE_COUNT_ON_SPHERE, ".0;\n if ( is3D ) {\n float angle = PI * 2.0 * interpolation;\n vec3 position = circleOnSphere(center_position3d, target_position3d, angle);\n gl_Position = cartesian3DToGLPosition(position);\n } else {\n return;\n }\n v_dash_ratio = dash_ratio;\n v_dash_opacity = dash_opacity;\n v_color = color;\n gl_PointSize = 3.0;\n}");
21
- var fragmentShaderSource = "#version 300 es\n".concat(geometrytransformations_1.POLE, "\nprecision highp float;\nuniform float opacity;\nin vec4 v_color;\nin float v_dash_ratio;\nin float v_dash_opacity;\nin float interpolation;\nin vec2 v_limp;\nout vec4 color;\nvoid main() {\n color = v_color;\n color.a *= opacity;\n if ( v_dash_ratio == 1.0 || v_dash_ratio == 0.0 ) return;\n if (fract(interpolation / (2.0 * v_dash_ratio)) < 0.5 ) {\n color.a *= v_dash_opacity;\n } \n}\n");
22
- var Logic = /** @class */ (function () {
23
- function Logic(globe) {
20
+ const vertexShaderSource = `#version 300 es
21
+ precision highp float;
22
+ ${geometrytransformations_1.PI}
23
+ ${camerauniformblock_1.CameraUniformBlockString}
24
+ ${geometrytransformations_1.cartesian3DToGLPosition}
25
+ ${geometrytransformations_1.circleOnSphere}
26
+
27
+ uniform float edge_count;
28
+
29
+ in vec3 center_position3d;
30
+ in vec3 target_position3d;
31
+ // in float radius;
32
+ in vec4 color;
33
+ in float dash_ratio;
34
+ in float dash_opacity;
35
+
36
+ out float interpolation;
37
+ out vec4 v_color;
38
+ out float v_dash_ratio;
39
+ out float v_dash_opacity;
40
+ void main() {
41
+ interpolation = float( gl_VertexID ) / ${EDGE_COUNT_ON_SPHERE}.0;
42
+ if ( is3D ) {
43
+ float angle = PI * 2.0 * interpolation;
44
+ vec3 position = circleOnSphere(center_position3d, target_position3d, angle);
45
+ gl_Position = cartesian3DToGLPosition(position);
46
+ } else {
47
+ return;
48
+ }
49
+ v_dash_ratio = dash_ratio;
50
+ v_dash_opacity = dash_opacity;
51
+ v_color = color;
52
+ gl_PointSize = 3.0;
53
+ }`;
54
+ const fragmentShaderSource = `#version 300 es
55
+ ${geometrytransformations_1.POLE}
56
+ precision highp float;
57
+ uniform float opacity;
58
+ in vec4 v_color;
59
+ in float v_dash_ratio;
60
+ in float v_dash_opacity;
61
+ in float interpolation;
62
+ in vec2 v_limp;
63
+ out vec4 color;
64
+ void main() {
65
+ color = v_color;
66
+ color.a *= opacity;
67
+ if ( v_dash_ratio == 1.0 || v_dash_ratio == 0.0 ) return;
68
+ if (fract(interpolation / (2.0 * v_dash_ratio)) < 0.5 ) {
69
+ color.a *= v_dash_opacity;
70
+ }
71
+ }
72
+ `;
73
+ class Logic {
74
+ constructor(globe) {
24
75
  this.globe = globe;
25
76
  this.gl = globe.gl;
26
77
  this._lastOpacity = 1.0;
27
78
  this.program = (0, webglobjectbuilders_1.createProgram)(this.gl, vertexShaderSource, fragmentShaderSource);
28
- var _a = this, gl = _a.gl, program = _a.program;
79
+ const { gl, program } = this;
29
80
  this.program.uniforms = {
30
81
  opacity: gl.getUniformLocation(program, "opacity")
31
82
  };
32
83
  { // initial uniform values
33
- var currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
84
+ const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
34
85
  gl.useProgram(program);
35
86
  gl.uniform1f(program.uniforms.opacity, 1.0);
36
87
  gl.useProgram(currentProgram);
@@ -44,26 +95,26 @@ var Logic = /** @class */ (function () {
44
95
  }
45
96
  this.cameraBindingPoint = 0;
46
97
  this.cameraBlockTotem = camerauniformblock_1.CameraUniformBlockTotemCache.get(globe);
47
- var cameraBlockLocation = gl.getUniformBlockIndex(program, "CameraUniformBlock");
98
+ const cameraBlockLocation = gl.getUniformBlockIndex(program, "CameraUniformBlock");
48
99
  gl.uniformBlockBinding(program, cameraBlockLocation, this.cameraBindingPoint);
49
100
  }
50
- Logic.prototype.createVAO = function (center3dObj, target3dObj, colorObj, dashRatioObj, dashOpacityObj) {
51
- var gl = this.gl;
52
- var vao = gl.createVertexArray();
53
- var divisor = 1;
101
+ createVAO(center3dObj, target3dObj, colorObj, dashRatioObj, dashOpacityObj) {
102
+ const { gl } = this;
103
+ const vao = gl.createVertexArray();
104
+ const divisor = 1;
54
105
  gl.bindVertexArray(vao);
55
- (0, attribute_loader_1.attributeLoader)(gl, center3dObj, 0, 3, { divisor: divisor });
56
- (0, attribute_loader_1.attributeLoader)(gl, target3dObj, 1, 3, { divisor: divisor });
106
+ (0, attribute_loader_1.attributeLoader)(gl, center3dObj, 0, 3, { divisor });
107
+ (0, attribute_loader_1.attributeLoader)(gl, target3dObj, 1, 3, { divisor });
57
108
  // attributeLoader(gl, radiusObj, 1, 1, { divisor });
58
- (0, attribute_loader_1.attributeLoader)(gl, colorObj, 2, 4, { divisor: divisor });
59
- (0, attribute_loader_1.attributeLoader)(gl, dashRatioObj, 3, 1, { divisor: divisor });
60
- (0, attribute_loader_1.attributeLoader)(gl, dashOpacityObj, 4, 1, { divisor: divisor });
109
+ (0, attribute_loader_1.attributeLoader)(gl, colorObj, 2, 4, { divisor });
110
+ (0, attribute_loader_1.attributeLoader)(gl, dashRatioObj, 3, 1, { divisor });
111
+ (0, attribute_loader_1.attributeLoader)(gl, dashOpacityObj, 4, 1, { divisor });
61
112
  gl.bindVertexArray(null);
62
113
  gl.bindVertexArray(null);
63
114
  return vao;
64
- };
65
- Logic.prototype.draw = function (vao, length, opacity) {
66
- var _a = this, gl = _a.gl, program = _a.program, cameraBlockTotem = _a.cameraBlockTotem, cameraBindingPoint = _a.cameraBindingPoint;
115
+ }
116
+ draw(vao, length, opacity) {
117
+ const { gl, program, cameraBlockTotem, cameraBindingPoint } = this;
67
118
  gl.useProgram(program);
68
119
  if (this._lastOpacity !== opacity) {
69
120
  gl.uniform1f(program.uniforms.opacity, opacity);
@@ -75,17 +126,16 @@ var Logic = /** @class */ (function () {
75
126
  // gl.drawArraysInstanced(gl.POINTS, 0, EDGE_COUNT_ON_SPHERE + 1, length);
76
127
  cameraBlockTotem.unbind(cameraBindingPoint);
77
128
  gl.bindVertexArray(null);
78
- };
79
- Logic.prototype.free = function () {
129
+ }
130
+ free() {
80
131
  if (this.isFreed)
81
132
  return;
82
133
  camerauniformblock_1.CameraUniformBlockTotemCache.release(this.globe);
83
134
  this.gl.deleteProgram(this.program);
84
135
  this.isFreed = true;
85
- };
86
- return Logic;
87
- }());
136
+ }
137
+ }
88
138
  exports.CircleCache = Object.freeze({
89
- get: function (globe) { return programcache_1.noRegisterGlobeProgramCache.getProgram(globe, Logic); },
90
- release: function (globe) { return programcache_1.noRegisterGlobeProgramCache.releaseProgram(globe, Logic); }
139
+ get: (globe) => programcache_1.noRegisterGlobeProgramCache.getProgram(globe, Logic),
140
+ release: (globe) => programcache_1.noRegisterGlobeProgramCache.releaseProgram(globe, Logic)
91
141
  });