@pirireis/webglobeplugins 0.9.10 → 0.9.11
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.
- package/Math/angle-calculation.js +8 -8
- package/Math/arc.js +18 -18
- package/Math/bounds/line-bbox.js +80 -78
- package/Math/constants.js +3 -3
- package/Math/juction/arc-plane.js +23 -23
- package/Math/juction/line-sphere.js +11 -11
- package/Math/juction/plane-plane.js +11 -11
- package/Math/line.js +16 -14
- package/Math/methods.js +72 -67
- package/Math/plane.js +18 -16
- package/Math/quaternion.js +49 -45
- package/Math/utils.js +2 -2
- package/Math/vec3.js +45 -42
- package/algorithms/search-binary.js +4 -4
- package/altitude-locator/draw-subset-obj.js +8 -7
- package/altitude-locator/plugin.js +113 -97
- package/arrowfield/adaptor.js +4 -3
- package/arrowfield/index.js +2 -2
- package/arrowfield/plugin.js +65 -62
- package/bearing-line/index.js +1 -1
- package/bearing-line/plugin.js +225 -200
- package/circle-line-chain/chain-list-map.js +88 -82
- package/circle-line-chain/plugin.js +154 -129
- package/circle-line-chain/util.js +1 -1
- package/compass-rose/compass-rose-padding-flat.js +126 -104
- package/compass-rose/compass-text-writer.js +70 -62
- package/compass-rose/index.js +2 -2
- package/compassrose/compassrose.js +50 -46
- package/compassrose/index.js +1 -1
- package/heatwave/index.js +2 -2
- package/heatwave/isobar/objectarraylabels.js +48 -44
- package/heatwave/isobar/plugin.js +123 -104
- package/heatwave/isobar/quadtreecontours.js +92 -76
- package/heatwave/plugins/heatwaveglobeshell.js +87 -69
- package/index.js +11 -11
- package/package.json +1 -1
- package/partialrings/buffer-manager.js +64 -32
- package/partialrings/index.js +1 -1
- package/partialrings/plugin.js +84 -48
- package/partialrings/program.js +47 -136
- package/pin/pin-object-array.js +86 -83
- package/pin/pin-point-totem.js +22 -21
- package/point-heat-map/adaptors/timetracksplugin-format-to-this.js +10 -10
- package/point-heat-map/plugin-webworker.js +45 -40
- package/point-heat-map/point-to-heat-map-flow.js +42 -40
- package/point-tracks/key-methods.js +1 -1
- package/point-tracks/plugin.js +142 -127
- package/programs/arrowfield/index.js +1 -1
- package/programs/arrowfield/logic.js +62 -170
- package/programs/arrowfield/object.js +35 -33
- package/programs/data2legend/density-to-legend.js +21 -45
- package/programs/data2legend/point-to-density-texture.js +27 -52
- package/programs/float2legendwithratio/index.js +1 -1
- package/programs/float2legendwithratio/logic.js +42 -88
- package/programs/float2legendwithratio/object.js +46 -43
- package/programs/globe-util/is-globe-moved.js +11 -10
- package/programs/globeshell/index.js +1 -1
- package/programs/globeshell/wiggle/index.js +1 -1
- package/programs/globeshell/wiggle/logic.js +98 -191
- package/programs/globeshell/wiggle/object.js +35 -33
- package/programs/helpers/blender/program.js +19 -36
- package/programs/helpers/fadeaway/index.js +1 -1
- package/programs/helpers/fadeaway/logic.js +13 -35
- package/programs/helpers/fadeaway/object.js +10 -9
- package/programs/helpers/index.js +1 -1
- package/programs/index.js +8 -8
- package/programs/line-on-globe/angled-line.js +32 -91
- package/programs/line-on-globe/circle-accurate-3d.js +32 -82
- package/programs/line-on-globe/circle-accurate-flat.js +50 -108
- package/programs/line-on-globe/circle-accurate.js +33 -103
- package/programs/line-on-globe/circle.js +32 -97
- package/programs/line-on-globe/degree-padding-around-circle-3d.js +33 -83
- package/programs/line-on-globe/lines-color-instanced-flat.js +34 -79
- package/programs/line-on-globe/linestrip.js +39 -100
- package/programs/line-on-globe/naive-accurate-flexible.js +48 -118
- package/programs/line-on-globe/to-the-surface.js +29 -58
- package/programs/line-on-globe/util.js +1 -1
- package/programs/picking/pickable-renderer.js +33 -117
- package/programs/point-on-globe/element-globe-surface-glow.js +38 -78
- package/programs/point-on-globe/element-point-glow.js +35 -103
- package/programs/point-on-globe/square-pixel-point.js +27 -76
- package/programs/programcache.js +13 -13
- package/programs/rings/distancering/circleflatprogram.js +21 -63
- package/programs/rings/distancering/circlepaddingfreeangleprogram.js +145 -156
- package/programs/rings/distancering/circlepaddysharedbuffer.js +197 -121
- package/programs/rings/distancering/index.js +4 -4
- package/programs/rings/distancering/paddyflatprogram.js +20 -73
- package/programs/rings/distancering/paddyflatprogram2d.js +22 -75
- package/programs/rings/distancering/paddyflatprogram3d.js +20 -73
- package/programs/rings/partial-ring/piece-of-pie.js +35 -137
- package/programs/totems/camerauniformblock.js +51 -64
- package/programs/totems/canvas-webglobe-info.js +40 -48
- package/programs/totems/gpu-selection-uniform-block.js +40 -44
- package/programs/totems/index.js +1 -1
- package/programs/two-d/pixel-padding-for-compass.js +29 -90
- package/programs/util.js +7 -6
- package/programs/vectorfields/index.js +1 -1
- package/programs/vectorfields/logics/drawrectangleparticles.js +29 -70
- package/programs/vectorfields/logics/index.js +3 -3
- package/programs/vectorfields/logics/pixelbased.js +35 -91
- package/programs/vectorfields/logics/ubo.js +25 -31
- package/programs/vectorfields/pingpongbuffermanager.js +34 -30
- package/rangerings/index.js +4 -4
- package/rangerings/plugin.js +252 -202
- package/rangerings/rangeringangletext.js +120 -108
- package/rangerings/ring-account.js +69 -52
- package/shaders/fragment-toy/firework.js +1 -55
- package/shaders/fragment-toy/singularity.js +1 -55
- package/timetracks/adaptors-line-strip.js +37 -26
- package/timetracks/adaptors.js +61 -47
- package/timetracks/index.js +4 -4
- package/timetracks/plugin-line-strip.js +63 -59
- package/timetracks/plugin.js +69 -65
- package/timetracks/program-line-strip.js +103 -296
- package/timetracks/program.js +113 -419
- package/timetracks/programpoint-line-strip.js +44 -97
- package/timetracks/programpoint.js +44 -90
- package/util/account/bufferoffsetmanager.js +95 -72
- package/util/account/index.js +1 -1
- package/util/account/single-attribute-buffer-management/buffer-manager.js +43 -39
- package/util/account/single-attribute-buffer-management/buffer-orchestrator.js +94 -64
- package/util/account/single-attribute-buffer-management/index.js +3 -3
- package/util/account/single-attribute-buffer-management/object-store.js +30 -28
- package/util/account/util.js +4 -2
- package/util/algorithms/search-binary.js +4 -4
- package/util/check/get.js +5 -5
- package/util/check/typecheck.js +15 -13
- package/util/geometry/index.js +11 -9
- package/util/gl-util/buffer/attribute-loader.js +20 -8
- package/util/gl-util/buffer/index.js +1 -1
- package/util/gl-util/draw-options/methods.js +7 -7
- package/util/gl-util/uniform-block/manager.js +67 -55
- package/util/heatwavedatamanager/datamanager.js +116 -56
- package/util/heatwavedatamanager/index.js +2 -2
- package/util/heatwavedatamanager/pointcoordinatesdatacalculator.js +40 -37
- package/util/heatwavedatamanager/pointcoordsmeta.js +10 -9
- package/util/index.js +6 -6
- package/util/interpolation/timetrack/index.js +1 -1
- package/util/interpolation/timetrack/timetrack-interpolator.js +29 -27
- package/util/interpolation/timetrack/web-worker-str.js +1 -179
- package/util/interpolation/timetrack/web-worker.js +4 -4
- package/util/jshelpers/data-filler.js +7 -7
- package/util/jshelpers/timefilters.js +7 -7
- package/util/picking/fence.js +7 -7
- package/util/picking/picker-displayer.js +52 -46
- package/util/programs/draw-texture-on-canvas.js +21 -39
- package/util/programs/shapesonglobe.js +64 -104
- package/util/programs/supersampletotextures.js +39 -45
- package/util/programs/texturetoglobe.js +48 -98
- package/util/shaderfunctions/geometrytransformations.js +27 -322
- package/util/shaderfunctions/nodata.js +1 -7
- package/util/shaderfunctions/noisefunctions.js +9 -39
- package/util/surface-line-data/arcs-to-cuts.js +23 -20
- package/util/webglobe/rasteroverlay.js +37 -35
- package/util/webglobjectbuilders.js +60 -55
- package/util/webglobjectbuilders1.js +49 -48
- package/waveparticles/adaptor.js +7 -6
- package/waveparticles/index.js +2 -2
- package/waveparticles/plugin.js +84 -79
- package/wind/imagetovectorfieldandmagnitude.js +15 -15
- package/wind/index.js +4 -4
- package/wind/plugin.js +251 -453
- package/wind/vectorfieldimage.js +5 -5
- package/write-text/attached-text-writer.js +48 -46
- package/write-text/context-text.js +58 -51
- package/write-text/context-text3.js +74 -69
package/point-tracks/plugin.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.keyMethod = exports.PointTracksPlugin = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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");
|
|
8
8
|
/**
|
|
9
9
|
* @typedef {number} long
|
|
10
10
|
* @typedef {number} lat
|
|
@@ -15,8 +15,9 @@ const methods_1 = require("../Math/methods");
|
|
|
15
15
|
* @typedef { long ,lat, height, ID } Point
|
|
16
16
|
* @typedef {Array<Point>, rgba, trackID} Track
|
|
17
17
|
*/
|
|
18
|
-
|
|
19
|
-
|
|
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;
|
|
20
21
|
this.id = id;
|
|
21
22
|
this._isFreed = false;
|
|
22
23
|
this._pointProgram = null;
|
|
@@ -32,40 +33,40 @@ class PointTracksPlugin {
|
|
|
32
33
|
this._lastWH = { w: 0, h: 0 };
|
|
33
34
|
this._focusParams = { on: false, length: 0, elementBuffer: null, trackIDs: [] };
|
|
34
35
|
this.pointSizes = {
|
|
35
|
-
pointSize,
|
|
36
|
-
selectionPointFilling,
|
|
37
|
-
hoveredPointSize
|
|
36
|
+
pointSize: pointSize,
|
|
37
|
+
selectionPointFilling: selectionPointFilling,
|
|
38
|
+
hoveredPointSize: hoveredPointSize
|
|
38
39
|
};
|
|
39
40
|
}
|
|
40
|
-
init(globe, gl) {
|
|
41
|
+
PointTracksPlugin.prototype.init = function (globe, gl) {
|
|
41
42
|
this.globe = globe;
|
|
42
43
|
this.gl = gl;
|
|
43
44
|
this._pickerDisplayer = new picker_displayer_1.PickerDisplayer(globe);
|
|
44
45
|
this._pointProgram = square_pixel_point_1.PointOnGlobeProgramCache.get(globe);
|
|
45
46
|
this._focusParams.elementBuffer = gl.createBuffer();
|
|
46
47
|
this._initBufferManagers();
|
|
47
|
-
}
|
|
48
|
-
_initBufferManagers() {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
this._bufferOrchestrator = new account_1.BufferOrchestrator({ initialCapacity });
|
|
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 });
|
|
53
54
|
this._bufferManagersMap = new Map([
|
|
54
55
|
["pos3D", {
|
|
55
|
-
bufferManager: new account_1.BufferManager(gl, 3, { bufferType, initialCapacity }),
|
|
56
|
-
adaptor: (item)
|
|
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
|
|
57
58
|
}],
|
|
58
59
|
["pos2D", {
|
|
59
|
-
bufferManager: new account_1.BufferManager(gl, 2, { bufferType, initialCapacity }),
|
|
60
|
-
adaptor: (item)
|
|
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)); }
|
|
61
62
|
}],
|
|
62
63
|
["rgba", {
|
|
63
|
-
bufferManager: new account_1.BufferManager(gl, 4, { bufferType, initialCapacity }),
|
|
64
|
-
adaptor: (item)
|
|
64
|
+
bufferManager: new account_1.BufferManager(gl, 4, { bufferType: bufferType, initialCapacity: initialCapacity }),
|
|
65
|
+
adaptor: function (item) { return item.rgba; }
|
|
65
66
|
}],
|
|
66
67
|
["objectStore", {
|
|
67
|
-
bufferManager: new account_1.ObjectStore({ initialCapacity }),
|
|
68
|
-
adaptor: (item)
|
|
68
|
+
bufferManager: new account_1.ObjectStore({ initialCapacity: initialCapacity }),
|
|
69
|
+
adaptor: function (item) {
|
|
69
70
|
return {
|
|
70
71
|
trackID: item.trackID, pointID: item.pointID
|
|
71
72
|
};
|
|
@@ -73,117 +74,122 @@ class PointTracksPlugin {
|
|
|
73
74
|
}]
|
|
74
75
|
]);
|
|
75
76
|
this._vao = this._pointProgram.createVAO(this._bufferManagersMap.get("pos3D").bufferManager.buffer, this._bufferManagersMap.get("pos2D").bufferManager.buffer, this._bufferManagersMap.get("rgba").bufferManager.buffer);
|
|
76
|
-
}
|
|
77
|
-
setPointSize(size) {
|
|
77
|
+
};
|
|
78
|
+
PointTracksPlugin.prototype.setPointSize = function (size) {
|
|
78
79
|
var _a;
|
|
79
80
|
this.pointSizes.pointSize = size;
|
|
80
81
|
(_a = this.globe) === null || _a === void 0 ? void 0 : _a.DrawRender();
|
|
81
|
-
}
|
|
82
|
-
setSelectionPointFilling(size) {
|
|
82
|
+
};
|
|
83
|
+
PointTracksPlugin.prototype.setSelectionPointFilling = function (size) {
|
|
83
84
|
var _a;
|
|
84
85
|
this.pointSizes.selectionPointFilling = size;
|
|
85
86
|
(_a = this.globe) === null || _a === void 0 ? void 0 : _a.DrawRender();
|
|
86
|
-
}
|
|
87
|
-
setHoveredPointSize(size) {
|
|
87
|
+
};
|
|
88
|
+
PointTracksPlugin.prototype.setHoveredPointSize = function (size) {
|
|
88
89
|
var _a;
|
|
89
90
|
this.pointSizes.hoveredPointSize = size;
|
|
90
91
|
(_a = this.globe) === null || _a === void 0 ? void 0 : _a.DrawRender();
|
|
91
|
-
}
|
|
92
|
-
setOpacity(opacity) {
|
|
92
|
+
};
|
|
93
|
+
PointTracksPlugin.prototype.setOpacity = function (opacity) {
|
|
93
94
|
var _a;
|
|
94
95
|
if (opacity < 0 || opacity > 1)
|
|
95
96
|
return;
|
|
96
97
|
this._opacity = opacity;
|
|
97
98
|
(_a = this.globe) === null || _a === void 0 ? void 0 : _a.DrawRender();
|
|
98
|
-
}
|
|
99
|
-
getCurrentSelection() {
|
|
99
|
+
};
|
|
100
|
+
PointTracksPlugin.prototype.getCurrentSelection = function () {
|
|
100
101
|
return this._selectedObj;
|
|
101
|
-
}
|
|
102
|
+
};
|
|
102
103
|
/**
|
|
103
104
|
*
|
|
104
105
|
* @param {*} x screen x
|
|
105
106
|
* @param {*} y screen y
|
|
106
107
|
* @param {*} callback callback on selection
|
|
107
108
|
*/
|
|
108
|
-
screenSelection(x, y, callback) {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
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);
|
|
113
115
|
if (selectedIDs.length === 0) {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
+
_this._selectedObj = null;
|
|
117
|
+
_this._selectedID = -1;
|
|
116
118
|
callback([]);
|
|
117
119
|
return;
|
|
118
120
|
}
|
|
119
|
-
|
|
120
|
-
for (
|
|
121
|
-
|
|
121
|
+
var selectedPoints = [];
|
|
122
|
+
for (var i = 0; i < selectedIDs.length; i++) {
|
|
123
|
+
var id = selectedIDs[i];
|
|
122
124
|
if (i === 0) {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
+
_this._selectedID = id;
|
|
126
|
+
_this._selectedObj = objectStore.get(id);
|
|
125
127
|
}
|
|
126
|
-
|
|
128
|
+
var obj = objectStore.get(id);
|
|
127
129
|
selectedPoints.push(obj);
|
|
128
130
|
}
|
|
129
131
|
callback(selectedPoints);
|
|
130
132
|
};
|
|
131
133
|
_pickerDisplayer.pickXY(x, y, pointSizes.selectionPointFilling, wrapper);
|
|
132
|
-
}
|
|
134
|
+
};
|
|
133
135
|
/**
|
|
134
136
|
* @param {Array<Track>} tracks
|
|
135
137
|
* @returns
|
|
136
138
|
*/
|
|
137
|
-
insertBulk(tracks) {
|
|
139
|
+
PointTracksPlugin.prototype.insertBulk = function (tracks) {
|
|
138
140
|
var _a;
|
|
139
141
|
this._fillTracksToPointsMap(tracks); // TODO error should be at the top
|
|
140
|
-
|
|
141
|
-
|
|
142
|
+
var flattenedPoints = tracks.map(trackToFlatPoints).flat();
|
|
143
|
+
var currentLoad = this._bufferOrchestrator.length;
|
|
142
144
|
if (currentLoad + flattenedPoints.length >= 2147483647) {
|
|
143
145
|
throw new Error("Too many points, Point count cannot exceed 2147483647");
|
|
144
146
|
}
|
|
145
|
-
|
|
147
|
+
var _b = this, _bufferManagersMap = _b._bufferManagersMap, _bufferOrchestrator = _b._bufferOrchestrator;
|
|
146
148
|
_bufferOrchestrator.insertBulk(flattenedPoints, _bufferManagersMap);
|
|
147
149
|
this._refillFocus();
|
|
148
150
|
(_a = this.globe) === null || _a === void 0 ? void 0 : _a.DrawRender();
|
|
149
|
-
}
|
|
150
|
-
flush() {
|
|
151
|
+
};
|
|
152
|
+
PointTracksPlugin.prototype.flush = function () {
|
|
151
153
|
var _a, _b;
|
|
152
|
-
|
|
153
|
-
(_a = this._bufferOrchestrator) === null || _a === void 0 ? void 0 : _a.flush({ capacity });
|
|
154
|
-
this._bufferManagersMap.forEach((
|
|
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
|
+
});
|
|
155
160
|
this._turnOffFocus();
|
|
156
161
|
this._tracksToPointsMap.clear();
|
|
157
162
|
(_b = this.globe) === null || _b === void 0 ? void 0 : _b.DrawRender();
|
|
158
|
-
}
|
|
163
|
+
};
|
|
159
164
|
/**
|
|
160
165
|
* @param {string} trackID
|
|
161
166
|
*/
|
|
162
|
-
deleteTrack(trackID) {
|
|
167
|
+
PointTracksPlugin.prototype.deleteTrack = function (trackID) {
|
|
163
168
|
var _a;
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
_bufferOrchestrator.deleteBulk(points.map((pointID)
|
|
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);
|
|
168
173
|
this._tracksToPointsMap.delete(trackID);
|
|
169
174
|
this._redraw = true;
|
|
170
175
|
this._refillFocus();
|
|
171
176
|
(_a = this.globe) === null || _a === void 0 ? void 0 : _a.DrawRender();
|
|
172
|
-
}
|
|
177
|
+
};
|
|
173
178
|
/**
|
|
174
179
|
* @param {string} trackID
|
|
175
180
|
* @param {Array<string>} pointIDs
|
|
176
181
|
*/
|
|
177
|
-
deletePoints(trackID, pointIDs) {
|
|
182
|
+
PointTracksPlugin.prototype.deletePoints = function (trackID, pointIDs) {
|
|
178
183
|
var _a;
|
|
179
|
-
|
|
180
|
-
_bufferOrchestrator.deleteBulk(pointIDs.map((pointID)
|
|
184
|
+
var _b = this, _bufferOrchestrator = _b._bufferOrchestrator, _bufferManagersMap = _b._bufferManagersMap;
|
|
185
|
+
_bufferOrchestrator.deleteBulk(pointIDs.map(function (pointID) { return keyMethod(trackID, pointID); }), _bufferManagersMap);
|
|
181
186
|
this._deletePointsFromTracksMap(trackID, pointIDs);
|
|
182
187
|
this._refillFocus();
|
|
183
188
|
(_a = this.globe) === null || _a === void 0 ? void 0 : _a.DrawRender();
|
|
184
|
-
}
|
|
185
|
-
focusTracks
|
|
189
|
+
};
|
|
190
|
+
PointTracksPlugin.prototype.focusTracks = function (trackIDs) {
|
|
186
191
|
var _a;
|
|
192
|
+
if (trackIDs === void 0) { trackIDs = null; }
|
|
187
193
|
if (!this.globe)
|
|
188
194
|
return;
|
|
189
195
|
if (!trackIDs) {
|
|
@@ -196,19 +202,22 @@ class PointTracksPlugin {
|
|
|
196
202
|
this._turnOffFocus();
|
|
197
203
|
}
|
|
198
204
|
this.globe.DrawRender();
|
|
199
|
-
}
|
|
205
|
+
};
|
|
200
206
|
// GLOBE API METHODS
|
|
201
|
-
free() {
|
|
207
|
+
PointTracksPlugin.prototype.free = function () {
|
|
202
208
|
if (this._isFreed)
|
|
203
209
|
return;
|
|
204
210
|
this._isFreed = true;
|
|
205
211
|
this._pickerDisplayer.free();
|
|
206
212
|
square_pixel_point_1.PointOnGlobeProgramCache.release(this.globe);
|
|
207
213
|
this.gl.deleteBuffer(this._focusParams.elementBuffer);
|
|
208
|
-
this._bufferManagersMap.forEach((
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
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;
|
|
212
221
|
this.resize();
|
|
213
222
|
_pickerDisplayer.bindFBO();
|
|
214
223
|
_pickerDisplayer.clearTextures();
|
|
@@ -232,73 +241,77 @@ class PointTracksPlugin {
|
|
|
232
241
|
gl.bindFramebuffer(gl.FRAMEBUFFER, null);
|
|
233
242
|
_pickerDisplayer.drawColorTexture();
|
|
234
243
|
this._selfSelect();
|
|
235
|
-
}
|
|
236
|
-
resize() {
|
|
244
|
+
};
|
|
245
|
+
PointTracksPlugin.prototype.resize = function () {
|
|
237
246
|
var _a;
|
|
238
|
-
|
|
239
|
-
|
|
247
|
+
var w = this.globe.api_ScrW();
|
|
248
|
+
var h = this.globe.api_ScrH();
|
|
240
249
|
if (w === this._lastWH.w && h === this._lastWH.h)
|
|
241
250
|
return;
|
|
242
251
|
this._lastWH.w = w;
|
|
243
252
|
this._lastWH.h = h;
|
|
244
253
|
this._pickerDisplayer.resize();
|
|
245
254
|
(_a = this.globe) === null || _a === void 0 ? void 0 : _a.DrawRender();
|
|
246
|
-
}
|
|
255
|
+
};
|
|
247
256
|
// IMPLICIT METHODS
|
|
248
|
-
_fillTracksToPointsMap(tracks) {
|
|
249
|
-
for (
|
|
250
|
-
|
|
251
|
-
|
|
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;
|
|
252
262
|
if (!this._tracksToPointsMap.has(trackID)) {
|
|
253
263
|
this._tracksToPointsMap.set(trackID, new Set());
|
|
254
264
|
}
|
|
255
|
-
|
|
256
|
-
for (
|
|
257
|
-
|
|
265
|
+
var pointSet = this._tracksToPointsMap.get(trackID);
|
|
266
|
+
for (var p = 0; p < points.length; p++) {
|
|
267
|
+
var pointID = points[p].ID;
|
|
258
268
|
pointSet.add(pointID);
|
|
259
269
|
}
|
|
260
270
|
}
|
|
261
|
-
}
|
|
262
|
-
_refillFocus() {
|
|
271
|
+
};
|
|
272
|
+
PointTracksPlugin.prototype._refillFocus = function () {
|
|
263
273
|
if (this._focusParams.on) {
|
|
264
274
|
this.focusTracks(this._focusParams.trackIDs);
|
|
265
275
|
}
|
|
266
|
-
}
|
|
267
|
-
_deletePointsFromTracksMap(trackID, pointIDs) {
|
|
268
|
-
|
|
269
|
-
for (
|
|
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];
|
|
270
281
|
trackSet.delete(pointID);
|
|
271
282
|
}
|
|
272
|
-
}
|
|
273
|
-
_selfSelect() {
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
this.screenSelection(x, y, (selectedPoints)
|
|
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) {
|
|
279
290
|
});
|
|
280
|
-
}
|
|
281
|
-
_turnOffFocus() {
|
|
282
|
-
|
|
291
|
+
};
|
|
292
|
+
PointTracksPlugin.prototype._turnOffFocus = function () {
|
|
293
|
+
var gl = this.gl;
|
|
283
294
|
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._focusParams.elementBuffer);
|
|
284
295
|
gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint32Array([]), gl.STATIC_DRAW);
|
|
285
296
|
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null);
|
|
286
297
|
this._focusParams.length = 0;
|
|
287
298
|
this._focusParams.on = false;
|
|
288
|
-
}
|
|
289
|
-
_fillElementBuffer(trackIDs) {
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
for (
|
|
294
|
-
|
|
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);
|
|
295
307
|
if (!pointSet)
|
|
296
308
|
continue;
|
|
297
309
|
foundTracks.push(trackID);
|
|
298
|
-
|
|
299
|
-
for (
|
|
300
|
-
|
|
301
|
-
|
|
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);
|
|
302
315
|
indexes.push(index);
|
|
303
316
|
length++;
|
|
304
317
|
}
|
|
@@ -308,31 +321,33 @@ class PointTracksPlugin {
|
|
|
308
321
|
if (length === 0) {
|
|
309
322
|
return false;
|
|
310
323
|
}
|
|
311
|
-
|
|
324
|
+
var gl = this.gl;
|
|
312
325
|
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._focusParams.elementBuffer);
|
|
313
326
|
gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint32Array(indexes), gl.STATIC_DRAW);
|
|
314
327
|
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null);
|
|
315
328
|
return true;
|
|
316
|
-
}
|
|
317
|
-
|
|
329
|
+
};
|
|
330
|
+
return PointTracksPlugin;
|
|
331
|
+
}());
|
|
318
332
|
exports.PointTracksPlugin = PointTracksPlugin;
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
for (
|
|
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];
|
|
325
340
|
flatPoints.push({
|
|
326
341
|
key: keyMethod(trackID, point.ID),
|
|
327
342
|
long: point.long,
|
|
328
343
|
lat: point.lat,
|
|
329
344
|
height: point.height,
|
|
330
345
|
pointID: point.ID,
|
|
331
|
-
rgba,
|
|
332
|
-
trackID
|
|
346
|
+
rgba: rgba,
|
|
347
|
+
trackID: trackID
|
|
333
348
|
});
|
|
334
349
|
}
|
|
335
350
|
return flatPoints;
|
|
336
351
|
};
|
|
337
|
-
|
|
352
|
+
var keyMethod = function (trackID, pointID) { return "".concat(trackID, "_").concat(pointID); };
|
|
338
353
|
exports.keyMethod = keyMethod;
|
|
@@ -3,5 +3,5 @@ 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
|
-
|
|
6
|
+
var object_1 = __importDefault(require("./object"));
|
|
7
7
|
exports.default = object_1.default;
|