@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.
- package/Math/angle-calculation.js +9 -11
- package/Math/arc.js +38 -41
- package/Math/bounds/line-bbox.js +79 -83
- package/Math/constants.js +4 -9
- package/Math/frustum/types.js +1 -2
- package/Math/juction/arc-plane.js +33 -36
- package/Math/juction/line-sphere.js +15 -18
- package/Math/juction/plane-plane.js +20 -23
- package/Math/line.js +42 -47
- package/Math/methods.js +69 -92
- package/Math/plane.js +33 -38
- package/Math/quaternion.js +48 -55
- package/Math/types.js +1 -2
- package/Math/utils.js +2 -4
- package/Math/vec3.js +46 -52
- package/algorithms/search-binary.js +5 -8
- package/altitude-locator/draw-subset-obj.js +8 -11
- package/altitude-locator/plugin.js +114 -133
- package/altitude-locator/types.js +1 -3
- package/arrowfield/adaptor.js +3 -7
- package/arrowfield/index.js +3 -10
- package/arrowfield/plugin.js +63 -69
- package/bearing-line/index.js +2 -8
- package/bearing-line/plugin.js +218 -248
- package/circle-line-chain/chain-list-map.js +82 -92
- package/circle-line-chain/plugin.js +147 -182
- package/circle-line-chain/util.js +1 -5
- package/compass-rose/compass-rose-padding-flat.js +111 -140
- package/compass-rose/compass-text-writer.js +63 -75
- package/compass-rose/index.js +3 -7
- package/compassrose/compassrose.js +50 -57
- package/compassrose/index.js +2 -8
- package/heatwave/index.js +3 -10
- package/heatwave/isobar/objectarraylabels.js +50 -56
- package/heatwave/isobar/plugin.js +111 -170
- package/heatwave/isobar/quadtreecontours.js +78 -96
- package/heatwave/plugins/heatwaveglobeshell.js +73 -94
- package/index.js +12 -58
- package/package.json +1 -1
- package/partialrings/buffer-manager.js +32 -70
- package/partialrings/index.js +2 -41
- package/partialrings/plugin.js +55 -98
- package/partialrings/program.js +141 -59
- package/pin/pin-object-array.js +89 -97
- package/pin/pin-point-totem.js +21 -22
- package/point-heat-map/adaptors/timetracksplugin-format-to-this.js +11 -14
- package/point-heat-map/plugin-webworker.js +45 -53
- package/point-heat-map/point-to-heat-map-flow.js +46 -51
- package/point-tracks/key-methods.js +2 -5
- package/point-tracks/plugin.js +141 -170
- package/programs/arrowfield/index.js +2 -7
- package/programs/arrowfield/logic.js +172 -67
- package/programs/arrowfield/object.js +35 -43
- package/programs/data2legend/density-to-legend.js +47 -26
- package/programs/data2legend/point-to-density-texture.js +56 -34
- package/programs/float2legendwithratio/index.js +2 -8
- package/programs/float2legendwithratio/logic.js +88 -45
- package/programs/float2legendwithratio/object.js +45 -54
- package/programs/globe-util/is-globe-moved.js +10 -13
- package/programs/globeshell/index.js +2 -8
- package/programs/globeshell/wiggle/index.js +2 -8
- package/programs/globeshell/wiggle/logic.js +191 -101
- package/programs/globeshell/wiggle/object.js +35 -43
- package/programs/helpers/blender/program.js +36 -22
- package/programs/helpers/fadeaway/index.js +2 -7
- package/programs/helpers/fadeaway/logic.js +36 -17
- package/programs/helpers/fadeaway/object.js +11 -18
- package/programs/helpers/index.js +2 -8
- package/programs/index.js +9 -58
- package/programs/line-on-globe/angled-line.js +95 -39
- package/programs/line-on-globe/circle-accurate-3d.js +86 -39
- package/programs/line-on-globe/circle-accurate-flat.js +116 -64
- package/programs/line-on-globe/circle-accurate.js +113 -46
- package/programs/line-on-globe/circle.js +106 -44
- package/programs/line-on-globe/degree-padding-around-circle-3d.js +89 -42
- package/programs/line-on-globe/lines-color-instanced-flat.js +84 -43
- package/programs/line-on-globe/linestrip.js +126 -63
- package/programs/line-on-globe/naive-accurate-flexible.js +126 -59
- package/programs/line-on-globe/to-the-surface.js +62 -35
- package/programs/line-on-globe/util.js +2 -5
- package/programs/picking/pickable-renderer.js +127 -46
- package/programs/point-on-globe/element-globe-surface-glow.js +83 -46
- package/programs/point-on-globe/element-point-glow.js +112 -47
- package/programs/point-on-globe/square-pixel-point.js +80 -34
- package/programs/programcache.js +14 -19
- package/programs/rings/distancering/circleflatprogram.js +76 -70
- package/programs/rings/distancering/circlepaddingfreeangleprogram.js +168 -194
- package/programs/rings/distancering/circlepaddysharedbuffer.js +121 -200
- package/programs/rings/distancering/index.js +5 -14
- package/programs/rings/distancering/paddyflatprogram.js +87 -70
- package/programs/rings/distancering/paddyflatprogram2d.js +89 -72
- package/programs/rings/distancering/paddyflatprogram3d.js +87 -70
- package/programs/rings/index.js +1 -17
- package/programs/rings/partial-ring/piece-of-pie.js +144 -44
- package/programs/totems/camerauniformblock.js +65 -56
- package/programs/totems/canvas-webglobe-info.js +49 -45
- package/programs/totems/gpu-selection-uniform-block.js +45 -45
- package/programs/totems/index.js +2 -40
- package/programs/two-d/pixel-padding-for-compass.js +94 -36
- package/programs/util.js +7 -10
- package/programs/vectorfields/index.js +3 -23
- package/programs/vectorfields/logics/drawrectangleparticles.js +73 -35
- package/programs/vectorfields/logics/index.js +4 -12
- package/programs/vectorfields/logics/pixelbased.js +94 -41
- package/programs/vectorfields/logics/ubo.js +32 -32
- package/programs/vectorfields/pingpongbuffermanager.js +30 -37
- package/rangerings/enum.js +2 -5
- package/rangerings/index.js +5 -15
- package/rangerings/plugin.js +223 -286
- package/rangerings/rangeringangletext.js +122 -137
- package/rangerings/ring-account.js +53 -75
- package/shaders/fragment-toy/firework.js +55 -4
- package/shaders/fragment-toy/singularity.js +56 -5
- package/timetracks/adaptors-line-strip.js +27 -44
- package/timetracks/adaptors.js +48 -67
- package/timetracks/index.js +5 -19
- package/timetracks/plugin-line-strip.js +65 -79
- package/timetracks/plugin.js +71 -85
- package/timetracks/program-line-strip.js +297 -107
- package/timetracks/program.js +421 -118
- package/timetracks/programpoint-line-strip.js +98 -48
- package/timetracks/programpoint.js +91 -48
- package/util/account/bufferoffsetmanager.js +72 -98
- package/util/account/index.js +3 -23
- package/util/account/single-attribute-buffer-management/buffer-manager.js +44 -48
- package/util/account/single-attribute-buffer-management/buffer-orchestrator.js +68 -98
- package/util/account/single-attribute-buffer-management/index.js +4 -9
- package/util/account/single-attribute-buffer-management/object-store.js +29 -34
- package/util/account/single-attribute-buffer-management/types.js +1 -2
- package/util/account/util.js +2 -8
- package/util/algorithms/search-binary.js +5 -8
- package/util/check/get.js +5 -9
- package/util/check/typecheck.js +13 -24
- package/util/geometry/index.js +10 -18
- package/util/gl-util/buffer/attribute-loader.js +10 -26
- package/util/gl-util/buffer/index.js +2 -5
- package/util/gl-util/draw-options/methods.js +10 -15
- package/util/gl-util/uniform-block/manager.js +69 -72
- package/util/heatwavedatamanager/datamanager.js +56 -119
- package/util/heatwavedatamanager/index.js +3 -10
- package/util/heatwavedatamanager/pointcoordinatesdatacalculator.js +38 -47
- package/util/heatwavedatamanager/pointcoordsmeta.js +9 -13
- package/util/index.js +13 -57
- package/util/interpolation/timetrack/index.js +2 -5
- package/util/interpolation/timetrack/timetrack-interpolator.js +30 -36
- package/util/interpolation/timetrack/web-worker-str.js +180 -5
- package/util/interpolation/timetrack/web-worker.js +4 -6
- package/util/jshelpers/data-filler.js +8 -11
- package/util/jshelpers/equality.js +1 -3
- package/util/jshelpers/index.js +2 -37
- package/util/jshelpers/timefilters.js +8 -10
- package/util/picking/fence.js +8 -11
- package/util/picking/picker-displayer.js +49 -58
- package/util/programs/draw-texture-on-canvas.js +41 -26
- package/util/programs/index.js +1 -17
- package/util/programs/shapesonglobe.js +104 -68
- package/util/programs/supersampletotextures.js +45 -43
- package/util/programs/texturetoglobe.js +99 -52
- package/util/shaderfunctions/geometrytransformations.js +323 -35
- package/util/shaderfunctions/index.js +2 -18
- package/util/shaderfunctions/nodata.js +8 -5
- package/util/shaderfunctions/noisefunctions.js +40 -12
- package/util/surface-line-data/arcs-to-cuts.js +20 -23
- package/util/webglobe/gldefaultstates.js +1 -4
- package/util/webglobe/index.js +2 -18
- package/util/webglobe/rasteroverlay.js +36 -41
- package/util/webglobjectbuilders.js +70 -93
- package/util/webglobjectbuilders1.js +63 -82
- package/waveparticles/adaptor.js +7 -10
- package/waveparticles/index.js +3 -10
- package/waveparticles/plugin.js +82 -90
- package/wind/imagetovectorfieldandmagnitude.js +16 -19
- package/wind/index.js +5 -14
- package/wind/plugin.js +454 -291
- package/wind/vectorfieldimage.js +6 -8
- package/write-text/attached-text-writer.js +48 -54
- package/write-text/context-text.js +52 -63
- package/write-text/context-text3.js +71 -80
- package/write-text/index.js +1 -5
package/bearing-line/plugin.js
CHANGED
|
@@ -1,29 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.RINGPARTIAL_DRAW_MODE = void 0;
|
|
15
|
-
var piece_of_pie_1 = require("../programs/rings/partial-ring/piece-of-pie");
|
|
16
|
-
var naive_accurate_flexible_1 = require("../programs/line-on-globe/naive-accurate-flexible");
|
|
17
|
-
var circle_accurate_3d_1 = require("../programs/line-on-globe/circle-accurate-3d");
|
|
18
|
-
var circle_accurate_flat_1 = require("../programs/line-on-globe/circle-accurate-flat");
|
|
19
|
-
var account_1 = require("../util/account");
|
|
20
|
-
var get_1 = require("../util/check/get");
|
|
21
|
-
var data_filler_1 = require("../util/jshelpers/data-filler");
|
|
22
|
-
var context_text3_1 = require("../write-text/context-text3");
|
|
23
|
-
var typecheck_1 = require("../util/check/typecheck");
|
|
24
|
-
var geometry_1 = require("../util/geometry");
|
|
25
|
-
var attribute_loader_1 = require("../util/gl-util/buffer/attribute-loader");
|
|
26
|
-
exports.RINGPARTIAL_DRAW_MODE = Object.freeze({
|
|
1
|
+
import { PieceOfPieProgramCache } from '../programs/rings/partial-ring/piece-of-pie';
|
|
2
|
+
import { LineOnGlobeCache } from '../programs/line-on-globe/naive-accurate-flexible';
|
|
3
|
+
import { CircleCache as Circle3DCache } from '../programs/line-on-globe/circle-accurate-3d';
|
|
4
|
+
import { CircleCache, EDGE_COUNT as flatCircleEdgeCount, centerCoords2dflatDataCreator } from '../programs/line-on-globe/circle-accurate-flat';
|
|
5
|
+
import { BufferOrchestrator, BufferManager } from '../util/account';
|
|
6
|
+
import { mapGetOrThrow } from "../util/check/get";
|
|
7
|
+
import { populateFloat32Array } from "../util/jshelpers/data-filler";
|
|
8
|
+
import { ContextTextWriter3 } from '../write-text/context-text3';
|
|
9
|
+
import { constraintFloat, isBoolean } from '../util/check/typecheck';
|
|
10
|
+
import { sphereCoord } from '../util/geometry';
|
|
11
|
+
import { createBufferAndReadInfo } from '../util/gl-util/buffer/attribute-loader';
|
|
12
|
+
export const RINGPARTIAL_DRAW_MODE = Object.freeze({
|
|
27
13
|
LINE_STRIP: "LINE_STRIP",
|
|
28
14
|
TRIANGLE_FAN: "TRIANGLE_FAN",
|
|
29
15
|
});
|
|
@@ -44,30 +30,29 @@ exports.RINGPARTIAL_DRAW_MODE = Object.freeze({
|
|
|
44
30
|
* @property {number} dashOpacity 0-1
|
|
45
31
|
* @property {number} circleDashAngle 0-360
|
|
46
32
|
*/
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
33
|
+
const textWriterGetOrThrow = mapGetOrThrow("BearingLine textContextInjection id does not exist in map");
|
|
34
|
+
const radian = (degree) => degree * Math.PI / 180;
|
|
35
|
+
const integralSec = (angle) => {
|
|
50
36
|
return Math.log(Math.tan(angle / 2 + Math.PI / 4));
|
|
51
37
|
};
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
38
|
+
const calculateStartAngle = (long, lat, endLong, endLat) => {
|
|
39
|
+
const dLat = (integralSec(endLat) - integralSec(lat)); // Because lines are strectes toward poles.
|
|
40
|
+
const dLong = endLong - long;
|
|
41
|
+
let angle = -Math.atan2(dLat, dLong);
|
|
56
42
|
return angle;
|
|
57
43
|
};
|
|
58
|
-
|
|
44
|
+
export default class BearingLinePlugin {
|
|
59
45
|
/**
|
|
60
46
|
* @param {*} id
|
|
61
47
|
* @param {Map<[key, ContextTextWriter3]>} textWritersMap
|
|
62
48
|
*/
|
|
63
|
-
|
|
64
|
-
var _b = _a === void 0 ? {} : _a, _c = _b.opacity, opacity = _c === void 0 ? 1 : _c, _d = _b.textWritersMap, textWritersMap = _d === void 0 ? new Map() : _d, _e = _b.textDataPreAdaptor, textDataPreAdaptor = _e === void 0 ? function (x) { return x; } : _e, _f = _b.drawVRM, drawVRM = _f === void 0 ? true : _f, _g = _b.drawBearingLine, drawBearingLine = _g === void 0 ? true : _g, _h = _b.drawAngleRing, drawAngleRing = _h === void 0 ? true : _h, _j = _b.drawText, drawText = _j === void 0 ? true : _j, _k = _b.circleFlatEdgeCount, circleFlatEdgeCount = _k === void 0 ? circle_accurate_flat_1.EDGE_COUNT - 2 : _k;
|
|
49
|
+
constructor(id, { opacity = 1, textWritersMap = new Map(), textDataPreAdaptor = (x) => x, drawVRM = true, drawBearingLine = true, drawAngleRing = true, drawText = true, circleFlatEdgeCount = flatCircleEdgeCount - 2 } = {}) {
|
|
65
50
|
this.id = id;
|
|
66
51
|
this._opacity = opacity;
|
|
67
|
-
this.bufferOrchestrator = new
|
|
52
|
+
this.bufferOrchestrator = new BufferOrchestrator({ capacity: 10 });
|
|
68
53
|
this._checkTextContextWriterInjectionMap(textWritersMap);
|
|
69
54
|
this._textWritersMap = textWritersMap;
|
|
70
|
-
this._textWritersMap.forEach(
|
|
55
|
+
this._textWritersMap.forEach((writer) => writer.keyAdaptor = (item) => item.key);
|
|
71
56
|
this.drawVRM = drawVRM;
|
|
72
57
|
this.drawBearingLine = drawBearingLine;
|
|
73
58
|
this.drawAngleRing = drawAngleRing;
|
|
@@ -76,105 +61,97 @@ var BearingLinePlugin = /** @class */ (function () {
|
|
|
76
61
|
this._memoryForText = new Map();
|
|
77
62
|
this.circleFlatEdgeCount = circleFlatEdgeCount + 2;
|
|
78
63
|
}
|
|
79
|
-
|
|
80
|
-
|
|
64
|
+
setDoDrawVRM(bool) {
|
|
65
|
+
isBoolean(bool);
|
|
81
66
|
if (bool === this.drawVRM)
|
|
82
67
|
return;
|
|
83
68
|
this.drawVRM = bool;
|
|
84
69
|
this.globe.DrawRender();
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
|
|
70
|
+
}
|
|
71
|
+
setDoDrawText(bool) {
|
|
72
|
+
isBoolean(bool);
|
|
88
73
|
if (bool === this.drawText)
|
|
89
74
|
return;
|
|
90
75
|
this.drawText = bool;
|
|
91
76
|
this.globe.DrawRender();
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
|
|
77
|
+
}
|
|
78
|
+
setDoDrawText(bool) {
|
|
79
|
+
isBoolean(bool);
|
|
95
80
|
if (bool === this.drawText)
|
|
96
81
|
return;
|
|
97
82
|
this.drawText = bool;
|
|
98
83
|
this.globe.DrawRender();
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
|
|
84
|
+
}
|
|
85
|
+
setDoDrawAngleRing(bool) {
|
|
86
|
+
isBoolean(bool);
|
|
102
87
|
if (bool === this.drawAngleRing)
|
|
103
88
|
return;
|
|
104
89
|
this.drawAngleRing = bool;
|
|
105
90
|
this.globe.DrawRender();
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
|
|
91
|
+
}
|
|
92
|
+
setOpacity(opacity) {
|
|
93
|
+
constraintFloat(opacity, 0, 1);
|
|
109
94
|
this._opacity = opacity;
|
|
110
|
-
this._textWritersMap.forEach(
|
|
95
|
+
this._textWritersMap.forEach((writer) => writer.setOpacity(opacity));
|
|
111
96
|
this.globe.DrawRender();
|
|
112
|
-
}
|
|
97
|
+
}
|
|
113
98
|
/**
|
|
114
99
|
|
|
115
100
|
* @param {Array<BearingLineItem>} items
|
|
116
101
|
* @param {Array<string>} textWriterIDs | textWritersMap keys to be used for writing text.
|
|
117
102
|
*/
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {
|
|
123
|
-
var item = items_1[_i];
|
|
103
|
+
insertBulk(items, { textWriterIDs = [] } = {}) {
|
|
104
|
+
const { globe, bufferOrchestrator, bufferManagersCompMap } = this; // angleTextContext, distanceTextContext,
|
|
105
|
+
const data = [];
|
|
106
|
+
for (let item of items) {
|
|
124
107
|
data.push(this.__insertAdaptor(item));
|
|
125
108
|
}
|
|
126
109
|
bufferOrchestrator.insertBulk(data, bufferManagersCompMap);
|
|
127
110
|
this.__insertTexts(items, textWriterIDs);
|
|
128
111
|
globe.DrawRender();
|
|
129
|
-
}
|
|
112
|
+
}
|
|
130
113
|
/**
|
|
131
114
|
* @param {Array<string>} textWriterIDs | textWritersMap keys to be used for writing text.
|
|
132
115
|
* @param {Array<string>} itemKeys | if empty, all texts will be updated.
|
|
133
116
|
*/
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
if (textWriterIDs === void 0) { textWriterIDs = []; }
|
|
137
|
-
if (itemKeys === void 0) { itemKeys = null; }
|
|
138
|
-
var textWritersMap = textWriterGetOrThrow(this._textWritersMap, textWriterIDs);
|
|
117
|
+
updateText(textWriterIDs = [], itemKeys = null) {
|
|
118
|
+
const textWritersMap = textWriterGetOrThrow(this._textWritersMap, textWriterIDs);
|
|
139
119
|
if (itemKeys === null) {
|
|
140
|
-
this._memoryForText.forEach(
|
|
141
|
-
|
|
142
|
-
textWritersMap.forEach(
|
|
120
|
+
this._memoryForText.forEach((item) => {
|
|
121
|
+
let _item = this._textDataPreAdaptor(item);
|
|
122
|
+
textWritersMap.forEach((writer) => writer.insertText(_item));
|
|
143
123
|
});
|
|
144
124
|
}
|
|
145
125
|
else {
|
|
146
|
-
itemKeys.forEach(
|
|
147
|
-
|
|
126
|
+
itemKeys.forEach((key) => {
|
|
127
|
+
let item = this._memoryForText.get(key);
|
|
148
128
|
if (item === undefined)
|
|
149
129
|
return;
|
|
150
|
-
|
|
151
|
-
textWritersMap.forEach(
|
|
130
|
+
let _item = this._textDataPreAdaptor(item);
|
|
131
|
+
textWritersMap.forEach((writer) => writer.insertText(_item));
|
|
152
132
|
});
|
|
153
133
|
}
|
|
154
134
|
this.globe.DrawRender();
|
|
155
|
-
}
|
|
156
|
-
|
|
135
|
+
}
|
|
136
|
+
deleteBulk(keys) {
|
|
157
137
|
this.bufferOrchestrator.deleteBulk(keys, this.bufferManagersCompMap);
|
|
158
|
-
for (
|
|
159
|
-
var key = keys_1[_i];
|
|
138
|
+
for (const key of keys) {
|
|
160
139
|
this._memoryForText.delete(key);
|
|
161
140
|
}
|
|
162
141
|
this._deleteTexts(keys);
|
|
163
142
|
this.globe.DrawRender();
|
|
164
|
-
}
|
|
165
|
-
|
|
143
|
+
}
|
|
144
|
+
defrag() {
|
|
166
145
|
this.bufferOrchestrator.defrag(this.bufferManagersCompMap);
|
|
167
|
-
}
|
|
146
|
+
}
|
|
168
147
|
/**
|
|
169
148
|
* @param {Array<{key, long, lat, endLong, endLat, bearingAngle}>} items
|
|
170
149
|
* @param {Array<string>} textWriterIDs | textWritersMap keys to be used for writing text.
|
|
171
150
|
*/
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
for (var _i = 0, items_2 = items; _i < items_2.length; _i++) {
|
|
177
|
-
var item = items_2[_i];
|
|
151
|
+
updateCoordinatesBulk(items, { textWriterIDs = [] } = {}) {
|
|
152
|
+
const { globe, bufferOrchestrator, bufferManagersCompMap, } = this;
|
|
153
|
+
const data = [];
|
|
154
|
+
for (let item of items) {
|
|
178
155
|
data.push(this.__updateCoordsAdaptor(item));
|
|
179
156
|
}
|
|
180
157
|
this.__insertTexts(items, textWriterIDs);
|
|
@@ -182,7 +159,7 @@ var BearingLinePlugin = /** @class */ (function () {
|
|
|
182
159
|
"startAngle2d", "tailAngle2d", "startAngle3d", "tailAngle3d", "bearingTargetCoords2d", "bearingTargetCoords3d", "centerCoords2dflat",
|
|
183
160
|
"bigRadius", "radius"]);
|
|
184
161
|
globe.DrawRender();
|
|
185
|
-
}
|
|
162
|
+
}
|
|
186
163
|
/**
|
|
187
164
|
*
|
|
188
165
|
* @param {Array<BearingLineItem>} items some colums EXCEPT positional ones
|
|
@@ -191,218 +168,214 @@ var BearingLinePlugin = /** @class */ (function () {
|
|
|
191
168
|
* Do NOT send empty data if property ID of this data is entered or NaN is loaded to the buffer, resulting in an unwanted behaviour.
|
|
192
169
|
*{ textWriterIDs = []}
|
|
193
170
|
*/
|
|
194
|
-
|
|
195
|
-
if (propertyIDs === void 0) { propertyIDs = []; }
|
|
196
|
-
var _b = _a === void 0 ? {} : _a, _c = _b.textWriterIDs, textWriterIDs = _c === void 0 ? [] : _c;
|
|
171
|
+
updatePartial(items, propertyIDs = [], { textWriterIDs = [] } = {}) {
|
|
197
172
|
if (propertyIDs.length === 0)
|
|
198
173
|
console.warn("updatePartial is called with no target propertyIDs");
|
|
199
|
-
|
|
200
|
-
|
|
174
|
+
const fixedPropertyIDs = this.__fixPartialProperties(propertyIDs);
|
|
175
|
+
const { bufferOrchestrator, bufferManagersCompMap } = this;
|
|
201
176
|
bufferOrchestrator.updateBulk(items, bufferManagersCompMap, fixedPropertyIDs);
|
|
202
177
|
// patch to update text opacity
|
|
203
178
|
this.__insertTexts(items, textWriterIDs);
|
|
204
179
|
this.globe.DrawRender();
|
|
205
|
-
}
|
|
180
|
+
}
|
|
206
181
|
// Private methods
|
|
207
|
-
|
|
182
|
+
_checkTextContextWriterInjectionMap(textContextWriterInjectionMap) {
|
|
208
183
|
if (!(textContextWriterInjectionMap instanceof Map))
|
|
209
184
|
throw new Error("textContextWriterInjectionMap is not an instance of Map");
|
|
210
|
-
textContextWriterInjectionMap.forEach(
|
|
211
|
-
if (!(v instanceof
|
|
185
|
+
textContextWriterInjectionMap.forEach((v) => {
|
|
186
|
+
if (!(v instanceof ContextTextWriter3))
|
|
212
187
|
throw new Error("textContextWriterInjectionMap element is not an instance of ContextTextWriter3");
|
|
213
188
|
});
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
if (
|
|
222
|
-
_item =
|
|
223
|
-
textWritersMap.forEach(
|
|
224
|
-
};
|
|
225
|
-
var this_1 = this;
|
|
226
|
-
for (var _i = 0, items_3 = items; _i < items_3.length; _i++) {
|
|
227
|
-
var item = items_3[_i];
|
|
228
|
-
_loop_1(item);
|
|
189
|
+
}
|
|
190
|
+
__insertTexts(items, textWriterIDs) {
|
|
191
|
+
const textWritersMap = textWriterGetOrThrow(this._textWritersMap, textWriterIDs);
|
|
192
|
+
for (const item of items) {
|
|
193
|
+
const oldItem = this._memoryForText.get(item.key);
|
|
194
|
+
let _item = oldItem !== undefined ? { ...oldItem, ...item } : item;
|
|
195
|
+
this._memoryForText.set(item.key, _item);
|
|
196
|
+
if (this._textDataPreAdaptor !== null)
|
|
197
|
+
_item = this._textDataPreAdaptor(_item);
|
|
198
|
+
textWritersMap.forEach((writer) => writer.insertText(_item));
|
|
229
199
|
}
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
return
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
200
|
+
}
|
|
201
|
+
__insertAdaptor(item) {
|
|
202
|
+
const rgba = item.rgba !== undefined ? item.rgba : [0, 0, 0, 0];
|
|
203
|
+
const rgbaMode = item.rgbaMode !== undefined ? item.rgbaMode : 0;
|
|
204
|
+
const dashRatio = item.dashRatio !== undefined ? item.dashRatio : 1.0;
|
|
205
|
+
const dashOpacity = item.dashOpacity !== undefined ? item.dashOpacity : 0.9;
|
|
206
|
+
const circleDashAngle = item.circleDashAngle !== undefined ? item.circleDashAngle : 360;
|
|
207
|
+
const coordsData = this.__updateCoordsAdaptor(item);
|
|
208
|
+
return {
|
|
209
|
+
...coordsData,
|
|
210
|
+
rgba,
|
|
211
|
+
dashRatio,
|
|
212
|
+
dashOpacity,
|
|
213
|
+
circleDashAngle,
|
|
214
|
+
rgbaMode
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
__updateCoordsAdaptor(item) {
|
|
218
|
+
const { globe } = this;
|
|
219
|
+
const lat = radian(item.lat);
|
|
220
|
+
const long = radian(item.long);
|
|
221
|
+
const endLat = radian(item.endLat);
|
|
222
|
+
const endLong = radian(item.endLong);
|
|
223
|
+
const altitude = (item.altitude ?? 0) / 1000;
|
|
224
|
+
const bigRadius = item.bigRadius ?? globe.Math.GetDist2D(item.long, item.lat, item.endLong, item.endLat);
|
|
225
|
+
const radius = item.radius !== undefined ? item.radius : bigRadius * 0.2;
|
|
226
|
+
const { long: bearingLong, lat: bearingLat } = globe.Math.FindPointByPolar(item.long, item.lat, bigRadius, item.bearingAngle);
|
|
227
|
+
const startAngle2d = calculateStartAngle(long, lat, endLong, endLat);
|
|
228
|
+
const bearingAngle2d = calculateStartAngle(long, lat, radian(bearingLong), radian(bearingLat));
|
|
229
|
+
let tailAngle2d = bearingAngle2d - startAngle2d;
|
|
254
230
|
if (tailAngle2d > 0) {
|
|
255
231
|
tailAngle2d -= Math.PI * 2;
|
|
256
232
|
}
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
233
|
+
const bearingAngle = radian(item.bearingAngle - 90);
|
|
234
|
+
const startAngleOfCircle = globe.Math.GetAzimuthAngle(item.long, item.lat, item.endLong, item.endLat); //startAngle2d * 180 / Math.PI;
|
|
235
|
+
const startAngle3d = radian(startAngleOfCircle) - radian(90);
|
|
236
|
+
let tailAngle3d = bearingAngle - startAngle3d;
|
|
261
237
|
if (tailAngle3d > 0) {
|
|
262
238
|
tailAngle3d -= Math.PI * 2;
|
|
263
239
|
}
|
|
264
|
-
|
|
240
|
+
const centerCoords2dflat = centerCoords2dflatDataCreator(globe, item.long, item.lat, item.endLong, item.endLat, { startAngleOfCircle, edgeCount: this.circleFlatEdgeCount });
|
|
265
241
|
return {
|
|
266
242
|
key: item.key,
|
|
267
243
|
lat: item.lat,
|
|
268
244
|
long: item.long,
|
|
269
245
|
endLat: item.endLat,
|
|
270
246
|
endLong: item.endLong,
|
|
271
|
-
altitude
|
|
272
|
-
bearingAngle
|
|
273
|
-
radius
|
|
274
|
-
bigRadius
|
|
275
|
-
startAngle2d
|
|
276
|
-
tailAngle2d
|
|
277
|
-
startAngle3d
|
|
278
|
-
tailAngle3d
|
|
279
|
-
bearingLong
|
|
280
|
-
bearingLat
|
|
281
|
-
centerCoords2dflat
|
|
247
|
+
altitude,
|
|
248
|
+
bearingAngle,
|
|
249
|
+
radius,
|
|
250
|
+
bigRadius,
|
|
251
|
+
startAngle2d,
|
|
252
|
+
tailAngle2d,
|
|
253
|
+
startAngle3d,
|
|
254
|
+
tailAngle3d,
|
|
255
|
+
bearingLong,
|
|
256
|
+
bearingLat,
|
|
257
|
+
centerCoords2dflat
|
|
282
258
|
};
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
for (
|
|
288
|
-
var item = propertyIDs_1[_i];
|
|
259
|
+
}
|
|
260
|
+
__fixPartialProperties(propertyIDs) {
|
|
261
|
+
const s = new Set(["rgba", "dashOpacity", "circleDashAngle"]);
|
|
262
|
+
const result = [];
|
|
263
|
+
for (const item of propertyIDs) {
|
|
289
264
|
result.push(item);
|
|
290
265
|
if (s.has(item)) {
|
|
291
266
|
result.push(item + "Mercator");
|
|
292
267
|
}
|
|
293
268
|
}
|
|
294
269
|
return result;
|
|
295
|
-
}
|
|
270
|
+
}
|
|
296
271
|
// Globe API
|
|
297
|
-
|
|
298
|
-
var _a, _b, _c, _d, _e;
|
|
299
|
-
var _this = this;
|
|
272
|
+
init(globe, gl) {
|
|
300
273
|
this.gl = gl;
|
|
301
274
|
this.globe = globe;
|
|
302
|
-
this.lineProgram =
|
|
303
|
-
this.pieceOfPieProgram =
|
|
304
|
-
this.circleProgram =
|
|
305
|
-
this.circle3DProgram =
|
|
306
|
-
|
|
275
|
+
this.lineProgram = LineOnGlobeCache.get(globe);
|
|
276
|
+
this.pieceOfPieProgram = PieceOfPieProgramCache.get(globe);
|
|
277
|
+
this.circleProgram = CircleCache.get(globe);
|
|
278
|
+
this.circle3DProgram = Circle3DCache.get(globe);
|
|
279
|
+
const circleFlatEdgeCount = this.circleFlatEdgeCount;
|
|
307
280
|
{
|
|
308
281
|
// createBuffers
|
|
309
|
-
|
|
310
|
-
|
|
282
|
+
const bufferType = "DYNAMIC_DRAW";
|
|
283
|
+
const initialCapacity = this.bufferOrchestrator.capacity;
|
|
311
284
|
this.bufferManagersCompMap = new Map([
|
|
312
285
|
["centerCoords2d", {
|
|
313
|
-
'bufferManager': new
|
|
314
|
-
'adaptor':
|
|
286
|
+
'bufferManager': new BufferManager(gl, 2, { bufferType, initialCapacity }),
|
|
287
|
+
'adaptor': (item) => new Float32Array(globe.api_GetMercator2DPoint(item.long, item.lat)),
|
|
315
288
|
}],
|
|
316
289
|
["centerCoords2dflat", {
|
|
317
|
-
'bufferManager': new
|
|
318
|
-
'adaptor':
|
|
290
|
+
'bufferManager': new BufferManager(gl, circleFlatEdgeCount * 2, { bufferType, initialCapacity }),
|
|
291
|
+
'adaptor': (item) => item.centerCoords2dflat,
|
|
319
292
|
}],
|
|
320
293
|
["centerCoords3d", {
|
|
321
|
-
'bufferManager': new
|
|
322
|
-
'adaptor':
|
|
294
|
+
'bufferManager': new BufferManager(gl, 3, { bufferType, initialCapacity }),
|
|
295
|
+
'adaptor': (item) => sphereCoord(item.long, item.lat, globe, item.altitude),
|
|
323
296
|
}],
|
|
324
297
|
["targetCoords2d", {
|
|
325
|
-
'bufferManager': new
|
|
326
|
-
'adaptor':
|
|
298
|
+
'bufferManager': new BufferManager(gl, 2, { bufferType, initialCapacity }),
|
|
299
|
+
'adaptor': (item) => new Float32Array(globe.api_GetMercator2DPoint(item.endLong, item.endLat))
|
|
327
300
|
}],
|
|
328
301
|
["targetCoords3d", {
|
|
329
|
-
'bufferManager': new
|
|
330
|
-
'adaptor':
|
|
302
|
+
'bufferManager': new BufferManager(gl, 3, { bufferType, initialCapacity }),
|
|
303
|
+
'adaptor': (item) => sphereCoord(item.endLong, item.endLat, globe, item.altitude)
|
|
331
304
|
}],
|
|
332
305
|
["bearingTargetCoords2d", {
|
|
333
|
-
'bufferManager': new
|
|
334
|
-
'adaptor':
|
|
306
|
+
'bufferManager': new BufferManager(gl, 2, { bufferType, initialCapacity }),
|
|
307
|
+
'adaptor': (item) => new Float32Array(globe.api_GetMercator2DPoint(item.bearingLong, item.bearingLat))
|
|
335
308
|
}],
|
|
336
309
|
["bearingTargetCoords3d", {
|
|
337
|
-
'bufferManager': new
|
|
338
|
-
'adaptor':
|
|
310
|
+
'bufferManager': new BufferManager(gl, 3, { bufferType, initialCapacity }),
|
|
311
|
+
'adaptor': (item) => sphereCoord(item.bearingLong, item.bearingLat, globe, item.altitude)
|
|
339
312
|
}],
|
|
340
313
|
["startAngle2d", {
|
|
341
|
-
'bufferManager': new
|
|
342
|
-
'adaptor':
|
|
314
|
+
'bufferManager': new BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
315
|
+
'adaptor': (item) => new Float32Array([item.startAngle2d])
|
|
343
316
|
}],
|
|
344
317
|
["tailAngle2d", {
|
|
345
|
-
'bufferManager': new
|
|
346
|
-
'adaptor':
|
|
318
|
+
'bufferManager': new BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
319
|
+
'adaptor': (item) => new Float32Array([item.tailAngle2d])
|
|
347
320
|
}],
|
|
348
321
|
["startAngle3d", {
|
|
349
|
-
'bufferManager': new
|
|
350
|
-
'adaptor':
|
|
322
|
+
'bufferManager': new BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
323
|
+
'adaptor': (item) => new Float32Array([item.startAngle3d])
|
|
351
324
|
}],
|
|
352
325
|
["tailAngle3d", {
|
|
353
|
-
'bufferManager': new
|
|
354
|
-
'adaptor':
|
|
326
|
+
'bufferManager': new BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
327
|
+
'adaptor': (item) => new Float32Array([item.tailAngle3d])
|
|
355
328
|
}],
|
|
356
329
|
["bearingDashRatio", {
|
|
357
|
-
'bufferManager': new
|
|
358
|
-
'adaptor':
|
|
330
|
+
'bufferManager': new BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
331
|
+
'adaptor': (item) => new Float32Array([0])
|
|
359
332
|
}],
|
|
360
333
|
["rgba", {
|
|
361
|
-
'bufferManager': new
|
|
362
|
-
'adaptor':
|
|
334
|
+
'bufferManager': new BufferManager(gl, 4, { bufferType, initialCapacity }),
|
|
335
|
+
'adaptor': (item) => new Float32Array(item.rgba)
|
|
363
336
|
}],
|
|
364
337
|
["radius", {
|
|
365
|
-
'bufferManager': new
|
|
366
|
-
'adaptor':
|
|
338
|
+
'bufferManager': new BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
339
|
+
'adaptor': (item) => new Float32Array([item.radius])
|
|
367
340
|
}],
|
|
368
341
|
["rgbaMode", {
|
|
369
|
-
'bufferManager': new
|
|
370
|
-
'adaptor':
|
|
342
|
+
'bufferManager': new BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
343
|
+
'adaptor': (item) => new Float32Array([item.rgbaMode])
|
|
371
344
|
}],
|
|
372
345
|
["dashRatio", {
|
|
373
|
-
'bufferManager': new
|
|
374
|
-
'adaptor':
|
|
346
|
+
'bufferManager': new BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
347
|
+
'adaptor': (item) => new Float32Array([item.dashRatio])
|
|
375
348
|
}],
|
|
376
349
|
["bigRadius", {
|
|
377
|
-
'bufferManager': new
|
|
378
|
-
'adaptor':
|
|
350
|
+
'bufferManager': new BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
351
|
+
'adaptor': (item) => new Float32Array([item.bigRadius])
|
|
379
352
|
}],
|
|
380
353
|
["dashOpacity", {
|
|
381
|
-
'bufferManager': new
|
|
382
|
-
'adaptor':
|
|
354
|
+
'bufferManager': new BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
355
|
+
'adaptor': (item) => new Float32Array([item.dashOpacity]),
|
|
383
356
|
}],
|
|
384
357
|
["circleDashAngle", {
|
|
385
|
-
'bufferManager': new
|
|
386
|
-
'adaptor':
|
|
358
|
+
'bufferManager': new BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
359
|
+
'adaptor': (item) => new Float32Array([item.circleDashAngle / 360]),
|
|
387
360
|
}],
|
|
388
361
|
// Mercator circle properties are duplicated for the sake of performance.
|
|
389
362
|
["rgbaMercator", {
|
|
390
|
-
'bufferManager': new
|
|
391
|
-
'adaptor':
|
|
363
|
+
'bufferManager': new BufferManager(gl, 4 * circleFlatEdgeCount, { bufferType, initialCapacity }),
|
|
364
|
+
'adaptor': (item) => populateFloat32Array.fillWithListData(circleFlatEdgeCount, item.rgba),
|
|
392
365
|
}],
|
|
393
366
|
["circleDashAngleMercator", {
|
|
394
|
-
'bufferManager': new
|
|
395
|
-
'adaptor':
|
|
367
|
+
'bufferManager': new BufferManager(gl, circleFlatEdgeCount, { bufferType, initialCapacity }),
|
|
368
|
+
'adaptor': (item) => populateFloat32Array.fillFloat32Array(circleFlatEdgeCount, item.circleDashAngle / 360),
|
|
396
369
|
}],
|
|
397
370
|
["dashOpacityMercator", {
|
|
398
|
-
'bufferManager': new
|
|
399
|
-
'adaptor':
|
|
371
|
+
'bufferManager': new BufferManager(gl, circleFlatEdgeCount, { bufferType, initialCapacity }),
|
|
372
|
+
'adaptor': (item) => populateFloat32Array.fillFloat32Array(circleFlatEdgeCount, item.dashOpacity),
|
|
400
373
|
}],
|
|
401
374
|
]);
|
|
402
375
|
}
|
|
403
|
-
|
|
404
|
-
this.lineVao =
|
|
405
|
-
this.ringVao =
|
|
376
|
+
const vaoOBJ = (key) => createBufferAndReadInfo(this.bufferManagersCompMap.get(key).bufferManager.buffer);
|
|
377
|
+
this.lineVao = this.lineProgram.createVAO(...['centerCoords2d', 'centerCoords3d', 'targetCoords2d', 'targetCoords3d', 'dashOpacity', 'dashOpacity', 'rgba'].map(key => vaoOBJ(key)));
|
|
378
|
+
this.ringVao = this.pieceOfPieProgram.createVAO(...['centerCoords2d',
|
|
406
379
|
'centerCoords3d',
|
|
407
380
|
'startAngle2d',
|
|
408
381
|
'tailAngle2d',
|
|
@@ -410,27 +383,27 @@ var BearingLinePlugin = /** @class */ (function () {
|
|
|
410
383
|
'tailAngle3d',
|
|
411
384
|
'rgba',
|
|
412
385
|
'radius',
|
|
413
|
-
'rgbaMode'].map(
|
|
414
|
-
this.bearingLineVAO =
|
|
415
|
-
].map(
|
|
416
|
-
this.circleVao =
|
|
417
|
-
].map(
|
|
418
|
-
this.circle3DVao =
|
|
419
|
-
].map(
|
|
420
|
-
}
|
|
421
|
-
|
|
422
|
-
|
|
386
|
+
'rgbaMode'].map(key => vaoOBJ(key)));
|
|
387
|
+
this.bearingLineVAO = this.lineProgram.createVAO(...['centerCoords2d', 'centerCoords3d', 'bearingTargetCoords2d', 'bearingTargetCoords3d', 'bearingDashRatio', 'dashOpacity', 'rgba'
|
|
388
|
+
].map(key => vaoOBJ(key)));
|
|
389
|
+
this.circleVao = this.circleProgram.createVAO(...["centerCoords2dflat", "rgbaMercator", "circleDashAngleMercator", "dashOpacityMercator"
|
|
390
|
+
].map(key => vaoOBJ(key)));
|
|
391
|
+
this.circle3DVao = this.circle3DProgram.createVAO(...["centerCoords3d", "targetCoords3d", "rgba", "circleDashAngle", "dashOpacity"
|
|
392
|
+
].map(key => vaoOBJ(key)));
|
|
393
|
+
}
|
|
394
|
+
draw3D() {
|
|
395
|
+
const { gl } = this;
|
|
423
396
|
gl.disable(gl.DEPTH_TEST);
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
this.lineProgram.draw(this.lineVao, { drawRange
|
|
397
|
+
const is3D = this.globe.api_GetCurrentGeometry() === 0;
|
|
398
|
+
const drawRange = { first: 0, count: this.bufferOrchestrator.length };
|
|
399
|
+
this.lineProgram.draw(this.lineVao, { drawRange }, this._opacity);
|
|
427
400
|
if (this.drawAngleRing) {
|
|
428
|
-
this.pieceOfPieProgram.draw(this.bufferOrchestrator.length, this.ringVao, 360, this._opacity * 0.8,
|
|
429
|
-
this.pieceOfPieProgram.draw(this.bufferOrchestrator.length, this.ringVao, 360, this._opacity * 0.8,
|
|
401
|
+
this.pieceOfPieProgram.draw(this.bufferOrchestrator.length, this.ringVao, 360, this._opacity * 0.8, RINGPARTIAL_DRAW_MODE.TRIANGLE_FAN);
|
|
402
|
+
this.pieceOfPieProgram.draw(this.bufferOrchestrator.length, this.ringVao, 360, this._opacity * 0.8, RINGPARTIAL_DRAW_MODE.LINE_STRIP);
|
|
430
403
|
}
|
|
431
404
|
if (this.drawBearingLine) {
|
|
432
405
|
// this.lineProgram.draw(this.bearingLineVAO, this.bufferOrchestrator.length, this._opacity );
|
|
433
|
-
this.lineProgram.draw(this.bearingLineVAO, { drawRange
|
|
406
|
+
this.lineProgram.draw(this.bearingLineVAO, { drawRange }, this._opacity);
|
|
434
407
|
}
|
|
435
408
|
if (this.drawVRM) {
|
|
436
409
|
if (is3D) {
|
|
@@ -441,34 +414,31 @@ var BearingLinePlugin = /** @class */ (function () {
|
|
|
441
414
|
}
|
|
442
415
|
}
|
|
443
416
|
if (this.drawText) {
|
|
444
|
-
this._textWritersMap.forEach(
|
|
417
|
+
this._textWritersMap.forEach((writer) => writer.draw());
|
|
445
418
|
}
|
|
446
419
|
gl.enable(gl.DEPTH_TEST);
|
|
447
|
-
}
|
|
448
|
-
|
|
420
|
+
}
|
|
421
|
+
free() {
|
|
449
422
|
if (this.isFreed)
|
|
450
423
|
return;
|
|
451
|
-
this.bufferManagersCompMap.forEach(
|
|
452
|
-
var bufferManager = _a.bufferManager, adaptor = _a.adaptor;
|
|
424
|
+
this.bufferManagersCompMap.forEach(({ bufferManager, adaptor }) => {
|
|
453
425
|
bufferManager.free();
|
|
454
426
|
});
|
|
455
|
-
|
|
427
|
+
const { gl, globe } = this;
|
|
456
428
|
gl.deleteVertexArray(this.lineVao);
|
|
457
429
|
gl.deleteVertexArray(this.ringVao);
|
|
458
430
|
gl.deleteVertexArray(this.bearingLineVAO);
|
|
459
431
|
gl.deleteVertexArray(this.circleVao);
|
|
460
432
|
gl.deleteVertexArray(this.circle3DVao);
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
433
|
+
LineOnGlobeCache.release(globe);
|
|
434
|
+
PieceOfPieProgramCache.release(globe);
|
|
435
|
+
CircleCache.release(globe);
|
|
436
|
+
Circle3DCache.release(globe);
|
|
465
437
|
this.isFreed = true;
|
|
466
|
-
}
|
|
467
|
-
|
|
468
|
-
this._textWritersMap.forEach(
|
|
438
|
+
}
|
|
439
|
+
_deleteTexts(keys) {
|
|
440
|
+
this._textWritersMap.forEach((writer) => {
|
|
469
441
|
writer.deleteTextBulk(keys);
|
|
470
442
|
});
|
|
471
|
-
}
|
|
472
|
-
|
|
473
|
-
}());
|
|
474
|
-
exports.default = BearingLinePlugin;
|
|
443
|
+
}
|
|
444
|
+
}
|