@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
package/Math/vec3.js CHANGED
@@ -1,56 +1,50 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.vec3 = void 0;
4
- var constants_1 = require("./constants");
5
- exports.vec3 = Object.freeze({
6
- create: function (x, y, z) {
7
- if (x === void 0) { x = 0; }
8
- if (y === void 0) { y = 0; }
9
- if (z === void 0) { z = 1; }
1
+ import { EPSILON } from './constants';
2
+ export const vec3 = Object.freeze({
3
+ create(x = 0, y = 0, z = 1) {
10
4
  return [x, y, z];
11
5
  },
12
- set: function (out, x, y, z) {
6
+ set(out, x, y, z) {
13
7
  out[0] = x;
14
8
  out[1] = y;
15
9
  out[2] = z;
16
10
  },
17
- clone: function (a) {
11
+ clone(a) {
18
12
  return [a[0], a[1], a[2]];
19
13
  },
20
- copy: function (out, a) {
14
+ copy(out, a) {
21
15
  out[0] = a[0];
22
16
  out[1] = a[1];
23
17
  out[2] = a[2];
24
18
  return out;
25
19
  },
26
- add: function (out, a, b) {
20
+ add(out, a, b) {
27
21
  out[0] = a[0] + b[0];
28
22
  out[1] = a[1] + b[1];
29
23
  out[2] = a[2] + b[2];
30
24
  return out;
31
25
  },
32
- subtract: function (out, a, b) {
26
+ subtract(out, a, b) {
33
27
  out[0] = a[0] - b[0];
34
28
  out[1] = a[1] - b[1];
35
29
  out[2] = a[2] - b[2];
36
30
  },
37
- dot: function (a, b) {
31
+ dot(a, b) {
38
32
  return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
39
33
  },
40
- cross: function (out, a, b) {
41
- var x = a[1] * b[2] - a[2] * b[1];
42
- var y = a[2] * b[0] - a[0] * b[2];
43
- var z = a[0] * b[1] - a[1] * b[0];
34
+ cross(out, a, b) {
35
+ const x = a[1] * b[2] - a[2] * b[1];
36
+ const y = a[2] * b[0] - a[0] * b[2];
37
+ const z = a[0] * b[1] - a[1] * b[0];
44
38
  out[0] = x;
45
39
  out[1] = y;
46
40
  out[2] = z;
47
41
  },
48
- multiplyScalar: function (out, a, b) {
42
+ multiplyScalar(out, a, b) {
49
43
  out[0] = a[0] * b;
50
44
  out[1] = a[1] * b;
51
45
  out[2] = a[2] * b;
52
46
  },
53
- divideScalar: function (out, a, b) {
47
+ divideScalar(out, a, b) {
54
48
  if (b === 0) {
55
49
  throw new Error('Division by zero');
56
50
  }
@@ -58,14 +52,14 @@ exports.vec3 = Object.freeze({
58
52
  out[1] = a[1] / b;
59
53
  out[2] = a[2] / b;
60
54
  },
61
- lengthSquared: function (a) {
55
+ lengthSquared(a) {
62
56
  return a[0] * a[0] + a[1] * a[1] + a[2] * a[2];
63
57
  },
64
- length: function (a) {
58
+ length(a) {
65
59
  return Math.sqrt(this.lengthSquared(a));
66
60
  },
67
- normalize: function (outVec, inVec) {
68
- var len = this.length(inVec);
61
+ normalize(outVec, inVec) {
62
+ const len = this.length(inVec);
69
63
  if (len === 0) {
70
64
  throw new Error('Cannot normalize a zero vector');
71
65
  }
@@ -73,57 +67,57 @@ exports.vec3 = Object.freeze({
73
67
  outVec[1] = inVec[1] / len;
74
68
  outVec[2] = inVec[2] / len;
75
69
  },
76
- distanceSquared: function (a, b) {
77
- var dx = a[0] - b[0];
78
- var dy = a[1] - b[1];
79
- var dz = a[2] - b[2];
70
+ distanceSquared(a, b) {
71
+ const dx = a[0] - b[0];
72
+ const dy = a[1] - b[1];
73
+ const dz = a[2] - b[2];
80
74
  return dx * dx + dy * dy + dz * dz;
81
75
  },
82
- distance: function (a, b) {
76
+ distance(a, b) {
83
77
  return Math.sqrt(this.distanceSquared(a, b));
84
78
  },
85
- equals: function (a, b) {
86
- return (Math.abs(a[0] - b[0]) < constants_1.EPSILON &&
87
- Math.abs(a[1] - b[1]) < constants_1.EPSILON &&
88
- Math.abs(a[2] - b[2]) < constants_1.EPSILON);
79
+ equals(a, b) {
80
+ return (Math.abs(a[0] - b[0]) < EPSILON &&
81
+ Math.abs(a[1] - b[1]) < EPSILON &&
82
+ Math.abs(a[2] - b[2]) < EPSILON);
89
83
  },
90
- toUnitVectorLongLat: function (out, a) {
91
- var len = this.length(a); // TODO Might drop length check
84
+ toUnitVectorLongLat(out, a) {
85
+ const len = this.length(a); // TODO Might drop length check
92
86
  if (len === 0) {
93
87
  throw new Error('Cannot convert a zero vector to unit vector');
94
88
  }
95
89
  out[0] = Math.atan2(a[1], a[0]); // Longitude
96
90
  out[1] = Math.asin(a[2] / len); // Latitude
97
91
  },
98
- fromUnitVectorLongLat: function (out, longLat) {
99
- var longitude = longLat[0];
100
- var latitude = longLat[1];
101
- var cosLat = Math.cos(latitude);
92
+ fromUnitVectorLongLat(out, longLat) {
93
+ const longitude = longLat[0];
94
+ const latitude = longLat[1];
95
+ const cosLat = Math.cos(latitude);
102
96
  out[0] = cosLat * Math.cos(longitude);
103
97
  out[1] = cosLat * Math.sin(longitude);
104
98
  out[2] = Math.sin(latitude);
105
99
  },
106
- applyQuaternion: function (out, a, q) {
107
- var x = a[0], y = a[1], z = a[2];
108
- var qx = q[0], qy = q[1], qz = q[2], qw = q[3];
100
+ applyQuaternion(out, a, q) {
101
+ const x = a[0], y = a[1], z = a[2];
102
+ const qx = q[0], qy = q[1], qz = q[2], qw = q[3];
109
103
  // Calculate the quaternion multiplication
110
- var ix = qw * x + qy * z - qz * y;
111
- var iy = qw * y + qz * x - qx * z;
112
- var iz = qw * z + qx * y - qy * x;
113
- var iw = -qx * x - qy * y - qz * z;
104
+ const ix = qw * x + qy * z - qz * y;
105
+ const iy = qw * y + qz * x - qx * z;
106
+ const iz = qw * z + qx * y - qy * x;
107
+ const iw = -qx * x - qy * y - qz * z;
114
108
  // Apply the quaternion to the vector
115
109
  out[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy;
116
110
  out[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz;
117
111
  out[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx;
118
112
  },
119
- randomUnit: function (out) {
120
- var theta = Math.random() * 2 * Math.PI;
121
- var phi = Math.acos(2 * Math.random() - 1);
113
+ randomUnit(out) {
114
+ const theta = Math.random() * 2 * Math.PI;
115
+ const phi = Math.acos(2 * Math.random() - 1);
122
116
  out[0] = Math.sin(phi) * Math.cos(theta);
123
117
  out[1] = Math.sin(phi) * Math.sin(theta);
124
118
  out[2] = Math.cos(phi);
125
119
  },
126
- str: function (a) {
127
- return "Vec3(".concat(a[0].toFixed(2), ", ").concat(a[1].toFixed(2), ", ").concat(a[2].toFixed(2), ")");
120
+ str(a) {
121
+ return `Vec3(${a[0].toFixed(2)}, ${a[1].toFixed(2)}, ${a[2].toFixed(2)})`;
128
122
  }
129
123
  });
@@ -1,10 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findFirstIndexInRange = void 0;
4
- var findFirstIndexInRange = function (container, value) {
5
- var start = 0;
6
- var end = container.length - 1;
7
- var mid = 0;
1
+ const findFirstIndexInRange = (container, value) => {
2
+ let start = 0;
3
+ let end = container.length - 1;
4
+ let mid = 0;
8
5
  while (start <= end) {
9
6
  mid = Math.floor((start + end) / 2);
10
7
  if (container[mid] <= value && value <= container[mid + 1])
@@ -16,4 +13,4 @@ var findFirstIndexInRange = function (container, value) {
16
13
  }
17
14
  return null;
18
15
  };
19
- exports.findFirstIndexInRange = findFirstIndexInRange;
16
+ export { findFirstIndexInRange };
@@ -1,19 +1,16 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- require("./types");
1
+ import "./types";
4
2
  /**
5
3
  * @param {DrawSubsetOptions} drawSubsetOptions
6
4
  */
7
5
  // TODO: Draw all is an optional property for the target plugin, with this approach.
8
- var DrawSubsetOptionRegistry = /** @class */ (function () {
9
- function DrawSubsetOptionRegistry() {
6
+ class DrawSubsetOptionRegistry {
7
+ constructor() {
10
8
  this._drawSubsetOptions = new Map();
11
9
  }
12
- DrawSubsetOptionRegistry.prototype.register = function (key, drawSubsetOptions) {
10
+ register(key, drawSubsetOptions) {
13
11
  this._drawSubsetOptions.set(key, drawSubsetOptions);
14
- };
15
- DrawSubsetOptionRegistry.prototype.unregister = function (key) {
12
+ }
13
+ unregister(key) {
16
14
  this._drawSubsetOptions.delete(key);
17
- };
18
- return DrawSubsetOptionRegistry;
19
- }());
15
+ }
16
+ }
@@ -1,33 +1,20 @@
1
- "use strict";
2
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
- if (ar || !(i in from)) {
5
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
- ar[i] = from[i];
7
- }
8
- }
9
- return to.concat(ar || Array.prototype.slice.call(from));
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.PointGlowLineToEarthPlugin = void 0;
13
- require("./types.js");
14
- var pickable_renderer_js_1 = require("../programs/picking/pickable-renderer.js");
15
- var element_point_glow_js_1 = require("../programs/point-on-globe/element-point-glow.js");
16
- var element_globe_surface_glow_js_1 = require("../programs/point-on-globe/element-globe-surface-glow.js");
17
- var naive_accurate_flexible_js_1 = require("../programs/line-on-globe/naive-accurate-flexible.js");
18
- var account_1 = require("../util/account");
19
- var picker_displayer_js_1 = require("../util/picking/picker-displayer.js");
20
- var methods_js_1 = require("../Math/methods.js");
21
- var typecheck_js_1 = require("../util/check/typecheck.js");
22
- var attribute_loader_1 = require("../util/gl-util/buffer/attribute-loader");
23
- var camerauniformblock_js_1 = require("../programs/totems/camerauniformblock.js");
1
+ import './types.js';
2
+ import { PickableRendererProgramCache } from '../programs/picking/pickable-renderer.js';
3
+ import { ElementPointGlowProgramCache } from '../programs/point-on-globe/element-point-glow.js';
4
+ import { ElementGlobeSufaceGlowCache } from '../programs/point-on-globe/element-globe-surface-glow.js';
5
+ import { LineOnGlobeCache } from '../programs/line-on-globe/naive-accurate-flexible.js';
6
+ import { BufferOrchestrator, BufferManager } from "../util/account";
7
+ import { PickerDisplayer } from '../util/picking/picker-displayer.js';
8
+ import { wgs84ToCartesian3d, wgs84ToMercator } from '../Math/methods.js';
9
+ import { constraintFloat, opacityCheck } from '../util/check/typecheck.js';
10
+ import { createBufferAndReadInfo } from '../util/gl-util/buffer/attribute-loader';
11
+ import { CameraUniformBlockTotemCache } from '../programs/totems/camerauniformblock.js';
24
12
  /**
25
13
  * is used with depth we can create a line from surface to the point.
26
14
  */
27
- var glowOverSize = 1.35; // 1.25 is the default value in the shader
28
- var PointGlowLineToEarthPlugin = /** @class */ (function () {
29
- function PointGlowLineToEarthPlugin(_a) {
30
- var _b = _a.isGlowPointOn, isGlowPointOn = _b === void 0 ? true : _b, _c = _a.isGlowSurfaceOn, isGlowSurfaceOn = _c === void 0 ? true : _c;
15
+ const glowOverSize = 1.35; // 1.25 is the default value in the shader
16
+ class PointGlowLineToEarthPlugin {
17
+ constructor({ isGlowPointOn = true, isGlowSurfaceOn = true }) {
31
18
  this.globe = null;
32
19
  this.gl = null;
33
20
  this._pickableWrapper = {};
@@ -35,8 +22,8 @@ var PointGlowLineToEarthPlugin = /** @class */ (function () {
35
22
  this._glowSurfaceWrapper = {};
36
23
  this._lineProgramWrapper = {};
37
24
  this._modes = {
38
- isGlowPointOn: isGlowPointOn,
39
- isGlowSurfaceOn: isGlowSurfaceOn
25
+ isGlowPointOn,
26
+ isGlowSurfaceOn
40
27
  };
41
28
  this._hoveredObjectId = null;
42
29
  this._lastWH = { w: 0, h: 0 };
@@ -50,47 +37,45 @@ var PointGlowLineToEarthPlugin = /** @class */ (function () {
50
37
  this._tickPhase = 0;
51
38
  this._parametersChanged = false;
52
39
  }
53
- PointGlowLineToEarthPlugin.prototype.init = function (globe, gl) {
40
+ init(globe, gl) {
54
41
  this.globe = globe;
55
42
  this.gl = gl;
56
43
  this._init();
57
- this._cameraBlockTotem = camerauniformblock_js_1.CameraUniformBlockTotemCache.get(this.globe);
58
- };
59
- PointGlowLineToEarthPlugin.prototype._init = function () {
60
- var _a, _b;
61
- var _this = this;
62
- var _c = this, globe = _c.globe, gl = _c.gl, _pickableWrapper = _c._pickableWrapper, _glowPointWrapper = _c._glowPointWrapper, _glowSurfaceWrapper = _c._glowSurfaceWrapper, _lineProgramWrapper = _c._lineProgramWrapper;
63
- var bufferType = "STATIC_DRAW";
64
- var initialCapacity = 50;
65
- this._bufferOrchestrator = new account_1.BufferOrchestrator({ initialCapacity: initialCapacity });
44
+ this._cameraBlockTotem = CameraUniformBlockTotemCache.get(this.globe);
45
+ }
46
+ _init() {
47
+ const { globe, gl, _pickableWrapper, _glowPointWrapper, _glowSurfaceWrapper, _lineProgramWrapper } = this;
48
+ const bufferType = "STATIC_DRAW";
49
+ const initialCapacity = 50;
50
+ this._bufferOrchestrator = new BufferOrchestrator({ initialCapacity });
66
51
  this._bufferManagersMap = new Map([
67
52
  ['pos3D', {
68
- bufferManager: new account_1.BufferManager(gl, 6, { bufferType: bufferType, initialCapacity: initialCapacity }),
69
- adaptor: function (item) { return new Float32Array(__spreadArray(__spreadArray([], (0, methods_js_1.wgs84ToCartesian3d)(item.long, item.lat, item.altitude / 1000), true), (0, methods_js_1.wgs84ToCartesian3d)(item.long, item.lat, 0 / 1000), true)); }
53
+ bufferManager: new BufferManager(gl, 6, { bufferType, initialCapacity }),
54
+ adaptor: (item) => new Float32Array([...wgs84ToCartesian3d(item.long, item.lat, item.altitude / 1000), ...wgs84ToCartesian3d(item.long, item.lat, 0 / 1000)])
70
55
  }],
71
56
  ['pos2D', {
72
- bufferManager: new account_1.BufferManager(gl, 2, { bufferType: bufferType, initialCapacity: initialCapacity }),
73
- adaptor: function (item) { return new Float32Array((0, methods_js_1.wgs84ToMercator)(item.long, item.lat)); }
57
+ bufferManager: new BufferManager(gl, 2, { bufferType, initialCapacity }),
58
+ adaptor: (item) => new Float32Array(wgs84ToMercator(item.long, item.lat))
74
59
  }],
75
60
  ['rgba', {
76
- bufferManager: new account_1.BufferManager(gl, 8, { bufferType: bufferType, initialCapacity: initialCapacity }),
77
- adaptor: function (item) { return new Float32Array(__spreadArray(__spreadArray([], item.color, true), item.color, true)); }
61
+ bufferManager: new BufferManager(gl, 8, { bufferType, initialCapacity }),
62
+ adaptor: (item) => new Float32Array([...item.color, ...item.color])
78
63
  }],
79
64
  ['size', {
80
- bufferManager: new account_1.BufferManager(gl, 1, { bufferType: bufferType, initialCapacity: initialCapacity }),
81
- adaptor: function (item) { return new Float32Array([item.size]); }
65
+ bufferManager: new BufferManager(gl, 1, { bufferType, initialCapacity }),
66
+ adaptor: (item) => new Float32Array([item.size])
82
67
  }],
83
68
  ]);
84
- _pickableWrapper.program = pickable_renderer_js_1.PickableRendererProgramCache.get(globe);
85
- _glowPointWrapper.program = element_point_glow_js_1.ElementPointGlowProgramCache.get(globe);
86
- _lineProgramWrapper.program = naive_accurate_flexible_js_1.LineOnGlobeCache.get(globe);
87
- this._pickerDisplayer = new picker_displayer_js_1.PickerDisplayer(globe);
88
- var obj = function (key) { return key === null ? null : (0, attribute_loader_1.createBufferAndReadInfo)(_this._bufferManagersMap.get(key).bufferManager.buffer); };
89
- _pickableWrapper.vao = _pickableWrapper.program.createVAO((0, attribute_loader_1.createBufferAndReadInfo)(this._bufferManagersMap.get('pos3D').bufferManager.buffer, 6 * 4, 0), (0, attribute_loader_1.createBufferAndReadInfo)(this._bufferManagersMap.get('pos2D').bufferManager.buffer), (0, attribute_loader_1.createBufferAndReadInfo)(this._bufferManagersMap.get('rgba').bufferManager.buffer, 8 * 4, 0), (0, attribute_loader_1.createBufferAndReadInfo)(this._bufferManagersMap.get('size').bufferManager.buffer));
90
- _pickableWrapper.vaoLine = (_a = _pickableWrapper.program).createVAO.apply(_a, ['pos3D', 'pos2D', 'rgba', null].map(obj));
91
- _pickableWrapper.vaoHoverPoint = _pickableWrapper.program.createVAO((0, attribute_loader_1.createBufferAndReadInfo)(this._bufferManagersMap.get('pos3D').bufferManager.buffer, 6 * 4, 0), (0, attribute_loader_1.createBufferAndReadInfo)(this._bufferManagersMap.get('pos2D').bufferManager.buffer), null, (0, attribute_loader_1.createBufferAndReadInfo)(this._bufferManagersMap.get('size').bufferManager.buffer));
92
- _pickableWrapper.vaoHoverLine = (_b = _pickableWrapper.program).createVAO.apply(_b, ['pos3D', 'pos2D', null, null].map(obj));
93
- _glowPointWrapper.vao = _glowPointWrapper.program.createVAO((0, attribute_loader_1.createBufferAndReadInfo)(this._bufferManagersMap.get('pos3D').bufferManager.buffer, 6 * 4, 0), (0, attribute_loader_1.createBufferAndReadInfo)(this._bufferManagersMap.get('pos2D').bufferManager.buffer), null, (0, attribute_loader_1.createBufferAndReadInfo)(this._bufferManagersMap.get('size').bufferManager.buffer));
69
+ _pickableWrapper.program = PickableRendererProgramCache.get(globe);
70
+ _glowPointWrapper.program = ElementPointGlowProgramCache.get(globe);
71
+ _lineProgramWrapper.program = LineOnGlobeCache.get(globe);
72
+ this._pickerDisplayer = new PickerDisplayer(globe);
73
+ const obj = (key) => key === null ? null : createBufferAndReadInfo(this._bufferManagersMap.get(key).bufferManager.buffer);
74
+ _pickableWrapper.vao = _pickableWrapper.program.createVAO(createBufferAndReadInfo(this._bufferManagersMap.get('pos3D').bufferManager.buffer, 6 * 4, 0), createBufferAndReadInfo(this._bufferManagersMap.get('pos2D').bufferManager.buffer), createBufferAndReadInfo(this._bufferManagersMap.get('rgba').bufferManager.buffer, 8 * 4, 0), createBufferAndReadInfo(this._bufferManagersMap.get('size').bufferManager.buffer));
75
+ _pickableWrapper.vaoLine = _pickableWrapper.program.createVAO(...['pos3D', 'pos2D', 'rgba', null].map(obj));
76
+ _pickableWrapper.vaoHoverPoint = _pickableWrapper.program.createVAO(createBufferAndReadInfo(this._bufferManagersMap.get('pos3D').bufferManager.buffer, 6 * 4, 0), createBufferAndReadInfo(this._bufferManagersMap.get('pos2D').bufferManager.buffer), null, createBufferAndReadInfo(this._bufferManagersMap.get('size').bufferManager.buffer));
77
+ _pickableWrapper.vaoHoverLine = _pickableWrapper.program.createVAO(...['pos3D', 'pos2D', null, null].map(obj));
78
+ _glowPointWrapper.vao = _glowPointWrapper.program.createVAO(createBufferAndReadInfo(this._bufferManagersMap.get('pos3D').bufferManager.buffer, 6 * 4, 0), createBufferAndReadInfo(this._bufferManagersMap.get('pos2D').bufferManager.buffer), null, createBufferAndReadInfo(this._bufferManagersMap.get('size').bufferManager.buffer));
94
79
  // _lineProgramWrapper.vao = _lineProgramWrapper.program.createVAO(
95
80
  // ...[null, 'pos3D', null, 'reverse3D', null, null, "rgba"].map(obj)
96
81
  // );
@@ -154,38 +139,37 @@ var PointGlowLineToEarthPlugin = /** @class */ (function () {
154
139
  // }
155
140
  // _glowPointWrapper.ubo.update(new Map([["u_phase", [_glowPointWrapper._phase]]]));
156
141
  // }
157
- };
142
+ }
158
143
  /**
159
144
  *
160
145
  * @param {Array<PointGlowData>} data
161
146
  */
162
- PointGlowLineToEarthPlugin.prototype.insertBulk = function (data) {
163
- var _a = this, _bufferManagersMap = _a._bufferManagersMap, _bufferOrchestrator = _a._bufferOrchestrator, globe = _a.globe;
147
+ insertBulk(data) {
148
+ const { _bufferManagersMap, _bufferOrchestrator, globe } = this;
164
149
  _bufferOrchestrator.insertBulk(data, _bufferManagersMap);
165
150
  this._changed();
166
- };
167
- PointGlowLineToEarthPlugin.prototype.setPointSizeMultiplier = function (sizeMultiplier) {
168
- (0, typecheck_js_1.constraintFloat)(sizeMultiplier, 0.1, null);
151
+ }
152
+ setPointSizeMultiplier(sizeMultiplier) {
153
+ constraintFloat(sizeMultiplier, 0.1, null);
169
154
  this._pickableWrapper.ubo.update(new Map([["u_size_multiplier", [sizeMultiplier]]]));
170
155
  this._glowPointWrapper.ubo.update(new Map([["u_size_multiplier", [sizeMultiplier * 1.25]]]));
171
156
  this._changed();
172
- };
157
+ }
173
158
  /**
174
159
  * @param {DrawRange} drawRange if null draws all
175
160
  * @returns
176
161
  */
177
- PointGlowLineToEarthPlugin.prototype.setDrawRange = function (drawRange) {
178
- if (drawRange === void 0) { drawRange = null; }
162
+ setDrawRange(drawRange = null) {
179
163
  this._drawRange = drawRange;
180
164
  this._changed();
181
- };
165
+ }
182
166
  /**
183
167
  *
184
168
  * sophisticated setDrawRange,
185
169
  * 3 concepts:
186
170
  */
187
- PointGlowLineToEarthPlugin.prototype.setGlowIndexes = function (glowIndexes) {
188
- var gl = this.gl;
171
+ setGlowIndexes(glowIndexes) {
172
+ const { gl } = this;
189
173
  if (!this._elementBuffer) {
190
174
  this._elementBuffer = gl.createBuffer();
191
175
  }
@@ -193,24 +177,24 @@ var PointGlowLineToEarthPlugin = /** @class */ (function () {
193
177
  gl.bindElementArrayBuffer(this._elementBuffer);
194
178
  this._parametersChanged = true;
195
179
  gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint32Array(glowIndexes), gl.DYNAMIC_DRAW);
196
- };
197
- PointGlowLineToEarthPlugin.prototype.setOpacity = function (opacity) {
198
- (0, typecheck_js_1.opacityCheck)(opacity);
180
+ }
181
+ setOpacity(opacity) {
182
+ opacityCheck(opacity);
199
183
  this._opacity = opacity;
200
184
  this._pickableWrapper.ubo.update(new Map([["u_opacity", [opacity]]]));
201
185
  this._pickableWrapper.uboLine.update(new Map([["u_opacity", [opacity]]]));
202
186
  this._glowPointWrapper.ubo.update(new Map([["u_opacity", [opacity * glowOverSize]]]));
203
187
  this._changed();
204
- };
205
- PointGlowLineToEarthPlugin.prototype.draw3D = function () {
206
- var _a = this, _pickableWrapper = _a._pickableWrapper, _bufferOrchestrator = _a._bufferOrchestrator, _drawRange = _a._drawRange, _pickerDisplayer = _a._pickerDisplayer;
207
- var _b = this, globe = _b.globe, gl = _b.gl;
188
+ }
189
+ draw3D() {
190
+ const { _pickableWrapper, _bufferOrchestrator, _drawRange, _pickerDisplayer } = this;
191
+ const { globe, gl } = this;
208
192
  this._hoverAgent();
209
193
  this.resize();
210
- var is3D = globe.api_GetCurrentGeometry() == 0;
211
- var drawRange = _drawRange || { first: 0, count: _bufferOrchestrator.length };
212
- var drawOptionsPoint = {
213
- drawRange: drawRange,
194
+ const is3D = globe.api_GetCurrentGeometry() == 0;
195
+ const drawRange = _drawRange || { first: 0, count: _bufferOrchestrator.length };
196
+ const drawOptionsPoint = {
197
+ drawRange,
214
198
  };
215
199
  this._doDraw(drawOptionsPoint, is3D, drawRange);
216
200
  _pickerDisplayer.drawColorTexture();
@@ -219,8 +203,8 @@ var PointGlowLineToEarthPlugin = /** @class */ (function () {
219
203
  }
220
204
  // hover draw
221
205
  gl.disable(gl.DEPTH_TEST);
222
- var program = _pickableWrapper.program, vaoHoverPoint = _pickableWrapper.vaoHoverPoint, vaoHoverLine = _pickableWrapper.vaoHoverLine, uboLineGlow = _pickableWrapper.uboLineGlow;
223
- var drawOptionsHoveredPoint = {
206
+ const { program, vaoHoverPoint, vaoHoverLine, uboLineGlow } = _pickableWrapper;
207
+ const drawOptionsHoveredPoint = {
224
208
  drawRange: {
225
209
  first: this._hoveredObjectId,
226
210
  count: 1
@@ -228,15 +212,15 @@ var PointGlowLineToEarthPlugin = /** @class */ (function () {
228
212
  };
229
213
  // program.draw(vaoHoverPoint, drawptionsHoveredPoint, ubo);
230
214
  if (true || this._modes.isGlowPointOn) {
231
- var _c = this._glowPointWrapper, program_1 = _c.program, vao = _c.vao, ubo = _c.ubo;
215
+ const { program, vao, ubo } = this._glowPointWrapper;
232
216
  // this._glowPointWrapper.phaseTick();
233
- program_1.draw(vao, drawOptionsHoveredPoint, ubo);
217
+ program.draw(vao, drawOptionsHoveredPoint, ubo);
234
218
  }
235
219
  else {
236
220
  }
237
221
  this.globe.DrawRender();
238
222
  if (is3D) {
239
- var drawOptionsHoveredLine = {
223
+ const drawOptionsHoveredLine = {
240
224
  drawRange: {
241
225
  first: this._hoveredObjectId * 2,
242
226
  count: 2
@@ -248,10 +232,10 @@ var PointGlowLineToEarthPlugin = /** @class */ (function () {
248
232
  }
249
233
  this._phaseTick();
250
234
  gl.enable(gl.DEPTH_TEST);
251
- };
252
- PointGlowLineToEarthPlugin.prototype._doDraw = function (drawOptionsPoint, is3D, drawRange) {
253
- var _a = this, gl = _a.gl, _pickableWrapper = _a._pickableWrapper, _pickerDisplayer = _a._pickerDisplayer;
254
- var program = _pickableWrapper.program, vao = _pickableWrapper.vao, ubo = _pickableWrapper.ubo, uboLine = _pickableWrapper.uboLine, vaoLine = _pickableWrapper.vaoLine;
235
+ }
236
+ _doDraw(drawOptionsPoint, is3D, drawRange) {
237
+ const { gl, _pickableWrapper, _pickerDisplayer } = this;
238
+ const { program, vao, ubo, uboLine, vaoLine } = _pickableWrapper;
255
239
  if (this._doesChanged()) {
256
240
  _pickerDisplayer.bindFBO();
257
241
  _pickerDisplayer.clearTextures();
@@ -259,7 +243,7 @@ var PointGlowLineToEarthPlugin = /** @class */ (function () {
259
243
  program.draw(vao, drawOptionsPoint, ubo);
260
244
  }
261
245
  if (is3D) {
262
- var drawOptionsLine = {
246
+ const drawOptionsLine = {
263
247
  drawRange: {
264
248
  first: drawRange.first * 2,
265
249
  count: drawRange.count * 2
@@ -278,80 +262,77 @@ var PointGlowLineToEarthPlugin = /** @class */ (function () {
278
262
  ]));
279
263
  program.draw(vaoLine, drawOptionsLine, uboLine);
280
264
  }
281
- };
282
- PointGlowLineToEarthPlugin.prototype.getCurrentSelection = function () {
265
+ }
266
+ getCurrentSelection() {
283
267
  return this._hoveredObjectId;
284
- };
285
- PointGlowLineToEarthPlugin.prototype.resize = function () {
286
- var w = this.globe.api_ScrW();
287
- var h = this.globe.api_ScrH();
268
+ }
269
+ resize() {
270
+ const w = this.globe.api_ScrW();
271
+ const h = this.globe.api_ScrH();
288
272
  if (w === this._lastWH.w && h === this._lastWH.h)
289
273
  return;
290
274
  this._lastWH.w = w;
291
275
  this._lastWH.h = h;
292
276
  this._pickerDisplayer.resize();
293
277
  this._changed();
294
- };
295
- PointGlowLineToEarthPlugin.prototype.free = function () {
296
- var _this = this;
297
- var _a = this, _pickableWrapper = _a._pickableWrapper, _glowPointWrapper = _a._glowPointWrapper, _glowSurfaceWrapper = _a._glowSurfaceWrapper, _lineProgramWrapper = _a._lineProgramWrapper;
298
- [_pickableWrapper, _glowPointWrapper, _glowSurfaceWrapper, _lineProgramWrapper].forEach(function (item) {
299
- var vao = item.vao, ubo = item.ubo;
300
- ubo === null || ubo === void 0 ? void 0 : ubo.free();
301
- _this.gl.deleteVertexArray(vao);
278
+ }
279
+ free() {
280
+ const { _pickableWrapper, _glowPointWrapper, _glowSurfaceWrapper, _lineProgramWrapper } = this;
281
+ [_pickableWrapper, _glowPointWrapper, _glowSurfaceWrapper, _lineProgramWrapper].forEach((item) => {
282
+ const { vao, ubo } = item;
283
+ ubo?.free();
284
+ this.gl.deleteVertexArray(vao);
302
285
  });
303
- pickable_renderer_js_1.PickableRendererProgramCache.release(this.globe);
304
- element_point_glow_js_1.ElementPointGlowProgramCache.release(this.globe);
286
+ PickableRendererProgramCache.release(this.globe);
287
+ ElementPointGlowProgramCache.release(this.globe);
305
288
  // ElementGlobeSufaceGlowCache.release(this.globe); // TODO: uncomment when needed
306
- naive_accurate_flexible_js_1.LineOnGlobeCache.release(this.globe);
289
+ LineOnGlobeCache.release(this.globe);
307
290
  if (this._elementBuffer)
308
291
  this.gl.deleteBuffer(this._elementBuffer);
309
292
  this._pickerDisplayer.free();
310
- this._bufferManagersMap.forEach(function (item) { return item.bufferManager.free(); });
293
+ this._bufferManagersMap.forEach((item) => item.bufferManager.free());
311
294
  this._bufferManagersMap.clear();
312
- camerauniformblock_js_1.CameraUniformBlockTotemCache.release(this.globe);
313
- };
314
- PointGlowLineToEarthPlugin.prototype._phaseTick = function () {
295
+ CameraUniformBlockTotemCache.release(this.globe);
296
+ }
297
+ _phaseTick() {
315
298
  this._tickPhase += 0.003;
316
299
  if (this._tickPhase > 1) {
317
300
  this._tickPhase = 0;
318
301
  }
319
302
  this._glowPointWrapper.ubo.update(new Map([["u_phase", [this._tickPhase * 2]]]));
320
303
  this._pickableWrapper.uboLineGlow.update(new Map([["u_dash_phase", [1 - this._tickPhase]]]));
321
- };
322
- PointGlowLineToEarthPlugin.prototype._hoverAgent = function () {
323
- var _this = this;
324
- var _a = this, globe = _a.globe, _hoverAgentParams = _a._hoverAgentParams;
325
- var pos = globe.api_GetMousePos();
326
- var currentTime = new Date().getTime();
304
+ }
305
+ _hoverAgent() {
306
+ const { globe, _hoverAgentParams } = this;
307
+ const pos = globe.api_GetMousePos();
308
+ const currentTime = new Date().getTime();
327
309
  if (_hoverAgentParams.stillPicking || _hoverAgentParams.timePass > currentTime) {
328
310
  return;
329
311
  }
330
312
  ;
331
313
  _hoverAgentParams.timePass = currentTime + _hoverAgentParams.timeGap;
332
- var x = pos.canvasX;
333
- var y = globe.api_ScrH() - pos.canvasY;
314
+ const x = pos.canvasX;
315
+ const y = globe.api_ScrH() - pos.canvasY;
334
316
  _hoverAgentParams.stillPicking = true;
335
- this._pickerDisplayer.pickXY(x, y, 1, function (idSet) {
317
+ this._pickerDisplayer.pickXY(x, y, 1, (idSet) => {
336
318
  _hoverAgentParams.stillPicking = false;
337
319
  if (idSet.size === 0) {
338
- _this._hoveredObjectId = -1;
320
+ this._hoveredObjectId = -1;
339
321
  return;
340
322
  }
341
- var index = __spreadArray([], idSet, true)[0];
342
- if (index !== _this._hoveredObjectId) {
343
- _this._hoveredObjectId = index;
344
- _this.globe.DrawRender();
323
+ const index = [...idSet][0];
324
+ if (index !== this._hoveredObjectId) {
325
+ this._hoveredObjectId = index;
326
+ this.globe.DrawRender();
345
327
  }
346
328
  });
347
- };
348
- PointGlowLineToEarthPlugin.prototype._doesChanged = function () {
329
+ }
330
+ _doesChanged() {
349
331
  return this._cameraBlockTotem.isMoved() || this._parametersChanged; // TODO: implement
350
- };
351
- PointGlowLineToEarthPlugin.prototype._changed = function () {
332
+ }
333
+ _changed() {
352
334
  this._parametersChanged = true;
353
335
  this.globe.DrawRender();
354
- };
355
- return PointGlowLineToEarthPlugin;
356
- }());
357
- exports.PointGlowLineToEarthPlugin = PointGlowLineToEarthPlugin;
336
+ }
337
+ }
338
+ export { PointGlowLineToEarthPlugin };
@@ -1,6 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- require("../types");
1
+ import "../types";
4
2
  /**
5
3
  * @typedef PointGlowData
6
4
  * @type {Object}
@@ -1,10 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.centigradePlus90ToRadians = centigradePlus90ToRadians;
4
- function centigradePlus90ToRadians(centigradeArray, noDataValue) {
5
- if (noDataValue === void 0) { noDataValue = -9999; }
6
- var radiansArray = new Float32Array(centigradeArray.length);
7
- for (var i = 0; i < centigradeArray.length; i++) {
1
+ export function centigradePlus90ToRadians(centigradeArray, noDataValue = -9999) {
2
+ const radiansArray = new Float32Array(centigradeArray.length);
3
+ for (let i = 0; i < centigradeArray.length; i++) {
8
4
  if (centigradeArray[i] === noDataValue) {
9
5
  radiansArray[i] = noDataValue;
10
6
  continue;