@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,10 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.keyMethod = exports.PointTracksPlugin = void 0;
4
- var account_1 = require("../util/account");
5
- var picker_displayer_1 = require("../util/picking/picker-displayer");
6
- var square_pixel_point_1 = require("../programs/point-on-globe/square-pixel-point");
7
- var methods_1 = require("../Math/methods");
1
+ import { BufferOrchestrator, BufferManager, ObjectStore } from "../util/account";
2
+ import { PickerDisplayer } from "../util/picking/picker-displayer";
3
+ import { PointOnGlobeProgramCache } from "../programs/point-on-globe/square-pixel-point";
4
+ import { wgs84ToCartesian3d, wgs84ToMercator } from "../Math/methods";
8
5
  /**
9
6
  * @typedef {number} long
10
7
  * @typedef {number} lat
@@ -15,9 +12,8 @@ var methods_1 = require("../Math/methods");
15
12
  * @typedef { long ,lat, height, ID } Point
16
13
  * @typedef {Array<Point>, rgba, trackID} Track
17
14
  */
18
- var PointTracksPlugin = /** @class */ (function () {
19
- function PointTracksPlugin(id, _a) {
20
- var _b = _a === void 0 ? {} : _a, _c = _b.pointSize, pointSize = _c === void 0 ? 2 : _c, _d = _b.hoveredPointSize, hoveredPointSize = _d === void 0 ? 4 : _d, _e = _b.selectionPointFilling, selectionPointFilling = _e === void 0 ? 4 : _e, _f = _b.opacity, opacity = _f === void 0 ? 1.0 : _f;
15
+ class PointTracksPlugin {
16
+ constructor(id, { pointSize = 2, hoveredPointSize = 4, selectionPointFilling = 4, opacity = 1.0 } = {}) {
21
17
  this.id = id;
22
18
  this._isFreed = false;
23
19
  this._pointProgram = null;
@@ -33,40 +29,40 @@ var PointTracksPlugin = /** @class */ (function () {
33
29
  this._lastWH = { w: 0, h: 0 };
34
30
  this._focusParams = { on: false, length: 0, elementBuffer: null, trackIDs: [] };
35
31
  this.pointSizes = {
36
- pointSize: pointSize,
37
- selectionPointFilling: selectionPointFilling,
38
- hoveredPointSize: hoveredPointSize
32
+ pointSize,
33
+ selectionPointFilling,
34
+ hoveredPointSize
39
35
  };
40
36
  }
41
- PointTracksPlugin.prototype.init = function (globe, gl) {
37
+ init(globe, gl) {
42
38
  this.globe = globe;
43
39
  this.gl = gl;
44
- this._pickerDisplayer = new picker_displayer_1.PickerDisplayer(globe);
45
- this._pointProgram = square_pixel_point_1.PointOnGlobeProgramCache.get(globe);
40
+ this._pickerDisplayer = new PickerDisplayer(globe);
41
+ this._pointProgram = PointOnGlobeProgramCache.get(globe);
46
42
  this._focusParams.elementBuffer = gl.createBuffer();
47
43
  this._initBufferManagers();
48
- };
49
- PointTracksPlugin.prototype._initBufferManagers = function () {
50
- var gl = this.gl;
51
- var initialCapacity = 10;
52
- var bufferType = "DYNAMIC_DRAW";
53
- this._bufferOrchestrator = new account_1.BufferOrchestrator({ initialCapacity: initialCapacity });
44
+ }
45
+ _initBufferManagers() {
46
+ const { gl } = this;
47
+ const initialCapacity = 10;
48
+ const bufferType = "DYNAMIC_DRAW";
49
+ this._bufferOrchestrator = new BufferOrchestrator({ initialCapacity });
54
50
  this._bufferManagersMap = new Map([
55
51
  ["pos3D", {
56
- bufferManager: new account_1.BufferManager(gl, 3, { bufferType: bufferType, initialCapacity: initialCapacity }),
57
- adaptor: function (item) { return new Float32Array((0, methods_1.wgs84ToCartesian3d)(item.long, item.lat, item.height / 1000)); } // height is in meters
52
+ bufferManager: new BufferManager(gl, 3, { bufferType, initialCapacity }),
53
+ adaptor: (item) => new Float32Array(wgs84ToCartesian3d(item.long, item.lat, item.height / 1000)) // height is in meters
58
54
  }],
59
55
  ["pos2D", {
60
- bufferManager: new account_1.BufferManager(gl, 2, { bufferType: bufferType, initialCapacity: initialCapacity }),
61
- adaptor: function (item) { return new Float32Array((0, methods_1.wgs84ToMercator)(item.long, item.lat)); }
56
+ bufferManager: new BufferManager(gl, 2, { bufferType, initialCapacity }),
57
+ adaptor: (item) => new Float32Array(wgs84ToMercator(item.long, item.lat))
62
58
  }],
63
59
  ["rgba", {
64
- bufferManager: new account_1.BufferManager(gl, 4, { bufferType: bufferType, initialCapacity: initialCapacity }),
65
- adaptor: function (item) { return item.rgba; }
60
+ bufferManager: new BufferManager(gl, 4, { bufferType, initialCapacity }),
61
+ adaptor: (item) => item.rgba
66
62
  }],
67
63
  ["objectStore", {
68
- bufferManager: new account_1.ObjectStore({ initialCapacity: initialCapacity }),
69
- adaptor: function (item) {
64
+ bufferManager: new ObjectStore({ initialCapacity }),
65
+ adaptor: (item) => {
70
66
  return {
71
67
  trackID: item.trackID, pointID: item.pointID
72
68
  };
@@ -74,127 +70,113 @@ var PointTracksPlugin = /** @class */ (function () {
74
70
  }]
75
71
  ]);
76
72
  this._vao = this._pointProgram.createVAO(this._bufferManagersMap.get("pos3D").bufferManager.buffer, this._bufferManagersMap.get("pos2D").bufferManager.buffer, this._bufferManagersMap.get("rgba").bufferManager.buffer);
77
- };
78
- PointTracksPlugin.prototype.setPointSize = function (size) {
79
- var _a;
73
+ }
74
+ setPointSize(size) {
80
75
  this.pointSizes.pointSize = size;
81
- (_a = this.globe) === null || _a === void 0 ? void 0 : _a.DrawRender();
82
- };
83
- PointTracksPlugin.prototype.setSelectionPointFilling = function (size) {
84
- var _a;
76
+ this.globe?.DrawRender();
77
+ }
78
+ setSelectionPointFilling(size) {
85
79
  this.pointSizes.selectionPointFilling = size;
86
- (_a = this.globe) === null || _a === void 0 ? void 0 : _a.DrawRender();
87
- };
88
- PointTracksPlugin.prototype.setHoveredPointSize = function (size) {
89
- var _a;
80
+ this.globe?.DrawRender();
81
+ }
82
+ setHoveredPointSize(size) {
90
83
  this.pointSizes.hoveredPointSize = size;
91
- (_a = this.globe) === null || _a === void 0 ? void 0 : _a.DrawRender();
92
- };
93
- PointTracksPlugin.prototype.setOpacity = function (opacity) {
94
- var _a;
84
+ this.globe?.DrawRender();
85
+ }
86
+ setOpacity(opacity) {
95
87
  if (opacity < 0 || opacity > 1)
96
88
  return;
97
89
  this._opacity = opacity;
98
- (_a = this.globe) === null || _a === void 0 ? void 0 : _a.DrawRender();
99
- };
100
- PointTracksPlugin.prototype.getCurrentSelection = function () {
90
+ this.globe?.DrawRender();
91
+ }
92
+ getCurrentSelection() {
101
93
  return this._selectedObj;
102
- };
94
+ }
103
95
  /**
104
96
  *
105
97
  * @param {*} x screen x
106
98
  * @param {*} y screen y
107
99
  * @param {*} callback callback on selection
108
100
  */
109
- PointTracksPlugin.prototype.screenSelection = function (x, y, callback) {
110
- var _this = this;
111
- var _a = this, pointSizes = _a.pointSizes, _pickerDisplayer = _a._pickerDisplayer;
112
- var objectStore = this._bufferManagersMap.get("objectStore").bufferManager;
113
- var wrapper = function (selectedIDsSet) {
114
- var selectedIDs = Array.from(selectedIDsSet);
101
+ screenSelection(x, y, callback) {
102
+ const { pointSizes, _pickerDisplayer } = this;
103
+ const objectStore = this._bufferManagersMap.get("objectStore").bufferManager;
104
+ const wrapper = (selectedIDsSet) => {
105
+ const selectedIDs = Array.from(selectedIDsSet);
115
106
  if (selectedIDs.length === 0) {
116
- _this._selectedObj = null;
117
- _this._selectedID = -1;
107
+ this._selectedObj = null;
108
+ this._selectedID = -1;
118
109
  callback([]);
119
110
  return;
120
111
  }
121
- var selectedPoints = [];
122
- for (var i = 0; i < selectedIDs.length; i++) {
123
- var id = selectedIDs[i];
112
+ const selectedPoints = [];
113
+ for (let i = 0; i < selectedIDs.length; i++) {
114
+ const id = selectedIDs[i];
124
115
  if (i === 0) {
125
- _this._selectedID = id;
126
- _this._selectedObj = objectStore.get(id);
116
+ this._selectedID = id;
117
+ this._selectedObj = objectStore.get(id);
127
118
  }
128
- var obj = objectStore.get(id);
119
+ const obj = objectStore.get(id);
129
120
  selectedPoints.push(obj);
130
121
  }
131
122
  callback(selectedPoints);
132
123
  };
133
124
  _pickerDisplayer.pickXY(x, y, pointSizes.selectionPointFilling, wrapper);
134
- };
125
+ }
135
126
  /**
136
127
  * @param {Array<Track>} tracks
137
128
  * @returns
138
129
  */
139
- PointTracksPlugin.prototype.insertBulk = function (tracks) {
140
- var _a;
130
+ insertBulk(tracks) {
141
131
  this._fillTracksToPointsMap(tracks); // TODO error should be at the top
142
- var flattenedPoints = tracks.map(trackToFlatPoints).flat();
143
- var currentLoad = this._bufferOrchestrator.length;
132
+ const flattenedPoints = tracks.map(trackToFlatPoints).flat();
133
+ const currentLoad = this._bufferOrchestrator.length;
144
134
  if (currentLoad + flattenedPoints.length >= 2147483647) {
145
135
  throw new Error("Too many points, Point count cannot exceed 2147483647");
146
136
  }
147
- var _b = this, _bufferManagersMap = _b._bufferManagersMap, _bufferOrchestrator = _b._bufferOrchestrator;
137
+ const { _bufferManagersMap, _bufferOrchestrator } = this;
148
138
  _bufferOrchestrator.insertBulk(flattenedPoints, _bufferManagersMap);
149
139
  this._refillFocus();
150
- (_a = this.globe) === null || _a === void 0 ? void 0 : _a.DrawRender();
151
- };
152
- PointTracksPlugin.prototype.flush = function () {
153
- var _a, _b;
154
- var capacity = 100;
155
- (_a = this._bufferOrchestrator) === null || _a === void 0 ? void 0 : _a.flush({ capacity: capacity });
156
- this._bufferManagersMap.forEach(function (_a) {
157
- var bufferManager = _a.bufferManager;
158
- return bufferManager.resetWithCapacity(capacity);
159
- });
140
+ this.globe?.DrawRender();
141
+ }
142
+ flush() {
143
+ const capacity = 100;
144
+ this._bufferOrchestrator?.flush({ capacity });
145
+ this._bufferManagersMap.forEach(({ bufferManager }) => bufferManager.resetWithCapacity(capacity));
160
146
  this._turnOffFocus();
161
147
  this._tracksToPointsMap.clear();
162
- (_b = this.globe) === null || _b === void 0 ? void 0 : _b.DrawRender();
163
- };
148
+ this.globe?.DrawRender();
149
+ }
164
150
  /**
165
151
  * @param {string} trackID
166
152
  */
167
- PointTracksPlugin.prototype.deleteTrack = function (trackID) {
168
- var _a;
169
- var pointSet = this._tracksToPointsMap.get(trackID);
170
- var points = Array.from(pointSet);
171
- var _b = this, _bufferOrchestrator = _b._bufferOrchestrator, _bufferManagersMap = _b._bufferManagersMap;
172
- _bufferOrchestrator.deleteBulk(points.map(function (pointID) { return keyMethod(trackID, pointID); }), _bufferManagersMap);
153
+ deleteTrack(trackID) {
154
+ const pointSet = this._tracksToPointsMap.get(trackID);
155
+ const points = Array.from(pointSet);
156
+ const { _bufferOrchestrator, _bufferManagersMap } = this;
157
+ _bufferOrchestrator.deleteBulk(points.map((pointID) => keyMethod(trackID, pointID)), _bufferManagersMap);
173
158
  this._tracksToPointsMap.delete(trackID);
174
159
  this._redraw = true;
175
160
  this._refillFocus();
176
- (_a = this.globe) === null || _a === void 0 ? void 0 : _a.DrawRender();
177
- };
161
+ this.globe?.DrawRender();
162
+ }
178
163
  /**
179
164
  * @param {string} trackID
180
165
  * @param {Array<string>} pointIDs
181
166
  */
182
- PointTracksPlugin.prototype.deletePoints = function (trackID, pointIDs) {
183
- var _a;
184
- var _b = this, _bufferOrchestrator = _b._bufferOrchestrator, _bufferManagersMap = _b._bufferManagersMap;
185
- _bufferOrchestrator.deleteBulk(pointIDs.map(function (pointID) { return keyMethod(trackID, pointID); }), _bufferManagersMap);
167
+ deletePoints(trackID, pointIDs) {
168
+ const { _bufferOrchestrator, _bufferManagersMap } = this;
169
+ _bufferOrchestrator.deleteBulk(pointIDs.map((pointID) => keyMethod(trackID, pointID)), _bufferManagersMap);
186
170
  this._deletePointsFromTracksMap(trackID, pointIDs);
187
171
  this._refillFocus();
188
- (_a = this.globe) === null || _a === void 0 ? void 0 : _a.DrawRender();
189
- };
190
- PointTracksPlugin.prototype.focusTracks = function (trackIDs) {
191
- var _a;
192
- if (trackIDs === void 0) { trackIDs = null; }
172
+ this.globe?.DrawRender();
173
+ }
174
+ focusTracks(trackIDs = null) {
193
175
  if (!this.globe)
194
176
  return;
195
177
  if (!trackIDs) {
196
178
  this._focusParams.on = false;
197
- (_a = this.globe) === null || _a === void 0 ? void 0 : _a.DrawRender();
179
+ this.globe?.DrawRender();
198
180
  return;
199
181
  }
200
182
  this._focusParams.on = this._fillElementBuffer(trackIDs);
@@ -202,22 +184,19 @@ var PointTracksPlugin = /** @class */ (function () {
202
184
  this._turnOffFocus();
203
185
  }
204
186
  this.globe.DrawRender();
205
- };
187
+ }
206
188
  // GLOBE API METHODS
207
- PointTracksPlugin.prototype.free = function () {
189
+ free() {
208
190
  if (this._isFreed)
209
191
  return;
210
192
  this._isFreed = true;
211
193
  this._pickerDisplayer.free();
212
- square_pixel_point_1.PointOnGlobeProgramCache.release(this.globe);
194
+ PointOnGlobeProgramCache.release(this.globe);
213
195
  this.gl.deleteBuffer(this._focusParams.elementBuffer);
214
- this._bufferManagersMap.forEach(function (_a) {
215
- var bufferManager = _a.bufferManager, adaptor = _a.adaptor;
216
- return bufferManager.free();
217
- });
218
- };
219
- PointTracksPlugin.prototype.draw3D = function () {
220
- var _a = this, gl = _a.gl, _pointProgram = _a._pointProgram, _pickerDisplayer = _a._pickerDisplayer, _bufferOrchestrator = _a._bufferOrchestrator, _vao = _a._vao;
196
+ this._bufferManagersMap.forEach(({ bufferManager, adaptor }) => bufferManager.free());
197
+ }
198
+ draw3D() {
199
+ const { gl, _pointProgram, _pickerDisplayer, _bufferOrchestrator, _vao } = this;
221
200
  this.resize();
222
201
  _pickerDisplayer.bindFBO();
223
202
  _pickerDisplayer.clearTextures();
@@ -241,77 +220,72 @@ var PointTracksPlugin = /** @class */ (function () {
241
220
  gl.bindFramebuffer(gl.FRAMEBUFFER, null);
242
221
  _pickerDisplayer.drawColorTexture();
243
222
  this._selfSelect();
244
- };
245
- PointTracksPlugin.prototype.resize = function () {
246
- var _a;
247
- var w = this.globe.api_ScrW();
248
- var h = this.globe.api_ScrH();
223
+ }
224
+ resize() {
225
+ const w = this.globe.api_ScrW();
226
+ const h = this.globe.api_ScrH();
249
227
  if (w === this._lastWH.w && h === this._lastWH.h)
250
228
  return;
251
229
  this._lastWH.w = w;
252
230
  this._lastWH.h = h;
253
231
  this._pickerDisplayer.resize();
254
- (_a = this.globe) === null || _a === void 0 ? void 0 : _a.DrawRender();
255
- };
232
+ this.globe?.DrawRender();
233
+ }
256
234
  // IMPLICIT METHODS
257
- PointTracksPlugin.prototype._fillTracksToPointsMap = function (tracks) {
258
- for (var _i = 0, tracks_1 = tracks; _i < tracks_1.length; _i++) {
259
- var track = tracks_1[_i];
260
- var trackID = track.trackID;
261
- var points = track.points;
235
+ _fillTracksToPointsMap(tracks) {
236
+ for (const track of tracks) {
237
+ const trackID = track.trackID;
238
+ const points = track.points;
262
239
  if (!this._tracksToPointsMap.has(trackID)) {
263
240
  this._tracksToPointsMap.set(trackID, new Set());
264
241
  }
265
- var pointSet = this._tracksToPointsMap.get(trackID);
266
- for (var p = 0; p < points.length; p++) {
267
- var pointID = points[p].ID;
242
+ const pointSet = this._tracksToPointsMap.get(trackID);
243
+ for (let p = 0; p < points.length; p++) {
244
+ const pointID = points[p].ID;
268
245
  pointSet.add(pointID);
269
246
  }
270
247
  }
271
- };
272
- PointTracksPlugin.prototype._refillFocus = function () {
248
+ }
249
+ _refillFocus() {
273
250
  if (this._focusParams.on) {
274
251
  this.focusTracks(this._focusParams.trackIDs);
275
252
  }
276
- };
277
- PointTracksPlugin.prototype._deletePointsFromTracksMap = function (trackID, pointIDs) {
278
- var trackSet = this._tracksToPointsMap.get(trackID);
279
- for (var _i = 0, pointIDs_1 = pointIDs; _i < pointIDs_1.length; _i++) {
280
- var pointID = pointIDs_1[_i];
253
+ }
254
+ _deletePointsFromTracksMap(trackID, pointIDs) {
255
+ const trackSet = this._tracksToPointsMap.get(trackID);
256
+ for (const pointID of pointIDs) {
281
257
  trackSet.delete(pointID);
282
258
  }
283
- };
284
- PointTracksPlugin.prototype._selfSelect = function () {
285
- var globe = this.globe;
286
- var pos = globe.api_GetMousePos();
287
- var x = pos.canvasX;
288
- var y = globe.api_ScrH() - pos.canvasY;
289
- this.screenSelection(x, y, function (selectedPoints) {
259
+ }
260
+ _selfSelect() {
261
+ const { globe } = this;
262
+ const pos = globe.api_GetMousePos();
263
+ const x = pos.canvasX;
264
+ const y = globe.api_ScrH() - pos.canvasY;
265
+ this.screenSelection(x, y, (selectedPoints) => {
290
266
  });
291
- };
292
- PointTracksPlugin.prototype._turnOffFocus = function () {
293
- var gl = this.gl;
267
+ }
268
+ _turnOffFocus() {
269
+ const { gl } = this;
294
270
  gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._focusParams.elementBuffer);
295
271
  gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint32Array([]), gl.STATIC_DRAW);
296
272
  gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null);
297
273
  this._focusParams.length = 0;
298
274
  this._focusParams.on = false;
299
- };
300
- PointTracksPlugin.prototype._fillElementBuffer = function (trackIDs) {
301
- var length = 0;
302
- var indexes = [];
303
- var foundTracks = [];
304
- for (var _i = 0, trackIDs_1 = trackIDs; _i < trackIDs_1.length; _i++) {
305
- var trackID = trackIDs_1[_i];
306
- var pointSet = this._tracksToPointsMap.get(trackID);
275
+ }
276
+ _fillElementBuffer(trackIDs) {
277
+ let length = 0;
278
+ const indexes = [];
279
+ const foundTracks = [];
280
+ for (const trackID of trackIDs) {
281
+ const pointSet = this._tracksToPointsMap.get(trackID);
307
282
  if (!pointSet)
308
283
  continue;
309
284
  foundTracks.push(trackID);
310
- var points = Array.from(pointSet);
311
- for (var _a = 0, points_1 = points; _a < points_1.length; _a++) {
312
- var pointID = points_1[_a];
313
- var key = keyMethod(trackID, pointID);
314
- var index = this._bufferOrchestrator.offsetMap.get(key);
285
+ const points = Array.from(pointSet);
286
+ for (const pointID of points) {
287
+ const key = keyMethod(trackID, pointID);
288
+ const index = this._bufferOrchestrator.offsetMap.get(key);
315
289
  indexes.push(index);
316
290
  length++;
317
291
  }
@@ -321,33 +295,30 @@ var PointTracksPlugin = /** @class */ (function () {
321
295
  if (length === 0) {
322
296
  return false;
323
297
  }
324
- var gl = this.gl;
298
+ const { gl } = this;
325
299
  gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._focusParams.elementBuffer);
326
300
  gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint32Array(indexes), gl.STATIC_DRAW);
327
301
  gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null);
328
302
  return true;
329
- };
330
- return PointTracksPlugin;
331
- }());
332
- exports.PointTracksPlugin = PointTracksPlugin;
333
- var trackToFlatPoints = function (track) {
334
- var trackID = track.trackID;
335
- var points = track.points;
336
- var rgba = new Float32Array(track.rgba);
337
- var flatPoints = [];
338
- for (var _i = 0, points_2 = points; _i < points_2.length; _i++) {
339
- var point = points_2[_i];
303
+ }
304
+ }
305
+ const trackToFlatPoints = (track) => {
306
+ const trackID = track.trackID;
307
+ const points = track.points;
308
+ const rgba = new Float32Array(track.rgba);
309
+ const flatPoints = [];
310
+ for (const point of points) {
340
311
  flatPoints.push({
341
312
  key: keyMethod(trackID, point.ID),
342
313
  long: point.long,
343
314
  lat: point.lat,
344
315
  height: point.height,
345
316
  pointID: point.ID,
346
- rgba: rgba,
347
- trackID: trackID
317
+ rgba,
318
+ trackID
348
319
  });
349
320
  }
350
321
  return flatPoints;
351
322
  };
352
- var keyMethod = function (trackID, pointID) { return "".concat(trackID, "_").concat(pointID); };
353
- exports.keyMethod = keyMethod;
323
+ const keyMethod = (trackID, pointID) => `${trackID}_${pointID}`;
324
+ export { PointTracksPlugin, keyMethod };
@@ -1,7 +1,2 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- var object_1 = __importDefault(require("./object"));
7
- exports.default = object_1.default;
1
+ import ArrowField from './object';
2
+ export default ArrowField;