@pirireis/webglobeplugins 0.9.11 → 0.9.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Math/angle-calculation.js +8 -8
- package/Math/arc.js +18 -18
- package/Math/bounds/line-bbox.js +78 -80
- 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 +14 -16
- package/Math/methods.js +65 -70
- package/Math/plane.js +16 -18
- package/Math/quaternion.js +45 -49
- package/Math/utils.js +2 -2
- package/Math/vec3.js +42 -45
- package/algorithms/search-binary.js +4 -4
- package/altitude-locator/draw-subset-obj.js +7 -8
- package/altitude-locator/plugin.js +98 -114
- package/arrowfield/adaptor.js +3 -4
- package/arrowfield/index.js +2 -2
- package/arrowfield/plugin.js +62 -65
- package/bearing-line/index.js +1 -1
- package/bearing-line/plugin.js +200 -226
- package/circle-line-chain/chain-list-map.js +82 -88
- package/circle-line-chain/plugin.js +134 -165
- package/circle-line-chain/util.js +1 -1
- package/compass-rose/compass-rose-padding-flat.js +108 -133
- package/compass-rose/compass-text-writer.js +62 -70
- package/compass-rose/index.js +2 -2
- package/compassrose/compassrose.js +46 -50
- package/compassrose/index.js +1 -1
- package/heatwave/index.js +2 -2
- package/heatwave/isobar/objectarraylabels.js +44 -48
- package/heatwave/isobar/plugin.js +104 -123
- package/heatwave/isobar/quadtreecontours.js +76 -92
- package/heatwave/plugins/heatwaveglobeshell.js +69 -87
- package/index.js +11 -11
- package/package.json +1 -1
- package/partialrings/buffer-manager.js +32 -64
- package/partialrings/index.js +1 -1
- package/partialrings/plugin.js +48 -84
- package/partialrings/program.js +136 -47
- package/pin/pin-object-array.js +83 -86
- package/pin/pin-point-totem.js +21 -22
- package/point-heat-map/adaptors/timetracksplugin-format-to-this.js +10 -10
- package/point-heat-map/plugin-webworker.js +40 -45
- package/point-heat-map/point-to-heat-map-flow.js +40 -42
- package/point-tracks/key-methods.js +1 -1
- package/point-tracks/plugin.js +137 -162
- package/programs/arrowfield/index.js +1 -1
- package/programs/arrowfield/logic.js +170 -62
- package/programs/arrowfield/object.js +33 -35
- package/programs/data2legend/density-to-legend.js +45 -21
- package/programs/data2legend/point-to-density-texture.js +52 -27
- package/programs/float2legendwithratio/index.js +1 -1
- package/programs/float2legendwithratio/logic.js +88 -42
- package/programs/float2legendwithratio/object.js +43 -46
- package/programs/globe-util/is-globe-moved.js +10 -11
- package/programs/globeshell/index.js +1 -1
- package/programs/globeshell/wiggle/index.js +1 -1
- package/programs/globeshell/wiggle/logic.js +191 -98
- package/programs/globeshell/wiggle/object.js +33 -35
- package/programs/helpers/blender/program.js +36 -19
- package/programs/helpers/fadeaway/index.js +1 -1
- package/programs/helpers/fadeaway/logic.js +35 -13
- package/programs/helpers/fadeaway/object.js +9 -10
- package/programs/helpers/index.js +1 -1
- package/programs/index.js +8 -8
- package/programs/line-on-globe/angled-line.js +91 -32
- package/programs/line-on-globe/circle-accurate-3d.js +82 -32
- package/programs/line-on-globe/circle-accurate-flat.js +108 -50
- package/programs/line-on-globe/circle-accurate.js +103 -33
- package/programs/line-on-globe/circle.js +97 -32
- package/programs/line-on-globe/degree-padding-around-circle-3d.js +83 -33
- package/programs/line-on-globe/lines-color-instanced-flat.js +79 -34
- package/programs/line-on-globe/linestrip.js +111 -45
- package/programs/line-on-globe/naive-accurate-flexible.js +120 -50
- package/programs/line-on-globe/to-the-surface.js +58 -29
- package/programs/line-on-globe/util.js +1 -1
- package/programs/picking/pickable-renderer.js +117 -33
- package/programs/point-on-globe/element-globe-surface-glow.js +78 -38
- package/programs/point-on-globe/element-point-glow.js +103 -35
- package/programs/point-on-globe/square-pixel-point.js +76 -27
- package/programs/programcache.js +13 -13
- package/programs/rings/distancering/circleflatprogram.js +63 -21
- package/programs/rings/distancering/circlepaddingfreeangleprogram.js +156 -145
- package/programs/rings/distancering/circlepaddysharedbuffer.js +121 -197
- package/programs/rings/distancering/index.js +4 -4
- package/programs/rings/distancering/paddyflatprogram.js +73 -20
- package/programs/rings/distancering/paddyflatprogram2d.js +75 -22
- package/programs/rings/distancering/paddyflatprogram3d.js +73 -20
- package/programs/rings/partial-ring/piece-of-pie.js +137 -35
- package/programs/totems/camerauniformblock.js +64 -51
- package/programs/totems/canvas-webglobe-info.js +48 -40
- package/programs/totems/gpu-selection-uniform-block.js +44 -40
- package/programs/totems/index.js +1 -1
- package/programs/two-d/pixel-padding-for-compass.js +90 -29
- package/programs/util.js +6 -7
- package/programs/vectorfields/index.js +1 -1
- package/programs/vectorfields/logics/drawrectangleparticles.js +70 -29
- package/programs/vectorfields/logics/index.js +3 -3
- package/programs/vectorfields/logics/pixelbased.js +91 -35
- package/programs/vectorfields/logics/ubo.js +31 -25
- package/programs/vectorfields/pingpongbuffermanager.js +30 -34
- package/rangerings/index.js +4 -4
- package/rangerings/plugin.js +202 -258
- package/rangerings/rangeringangletext.js +108 -120
- package/rangerings/ring-account.js +52 -69
- package/shaders/fragment-toy/firework.js +55 -1
- package/shaders/fragment-toy/singularity.js +55 -1
- package/timetracks/adaptors-line-strip.js +26 -37
- package/timetracks/adaptors.js +47 -61
- package/timetracks/index.js +4 -4
- package/timetracks/plugin-line-strip.js +63 -71
- package/timetracks/plugin.js +69 -77
- package/timetracks/program-line-strip.js +296 -103
- package/timetracks/program.js +419 -113
- package/timetracks/programpoint-line-strip.js +97 -44
- package/timetracks/programpoint.js +90 -44
- package/util/account/bufferoffsetmanager.js +72 -95
- package/util/account/index.js +1 -1
- package/util/account/single-attribute-buffer-management/buffer-manager.js +44 -44
- package/util/account/single-attribute-buffer-management/buffer-orchestrator.js +68 -94
- package/util/account/single-attribute-buffer-management/index.js +3 -3
- package/util/account/single-attribute-buffer-management/object-store.js +29 -30
- package/util/account/util.js +2 -4
- package/util/algorithms/search-binary.js +4 -4
- package/util/check/get.js +5 -5
- package/util/check/typecheck.js +13 -15
- package/util/geometry/index.js +9 -11
- package/util/gl-util/buffer/attribute-loader.js +8 -20
- package/util/gl-util/buffer/index.js +1 -1
- package/util/gl-util/draw-options/methods.js +8 -9
- package/util/gl-util/uniform-block/manager.js +67 -67
- package/util/heatwavedatamanager/datamanager.js +56 -116
- package/util/heatwavedatamanager/index.js +2 -2
- package/util/heatwavedatamanager/pointcoordinatesdatacalculator.js +37 -40
- package/util/heatwavedatamanager/pointcoordsmeta.js +9 -10
- package/util/index.js +6 -6
- package/util/interpolation/timetrack/index.js +1 -1
- package/util/interpolation/timetrack/timetrack-interpolator.js +27 -29
- package/util/interpolation/timetrack/web-worker-str.js +179 -1
- 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 +46 -52
- package/util/programs/draw-texture-on-canvas.js +39 -21
- package/util/programs/shapesonglobe.js +104 -64
- package/util/programs/supersampletotextures.js +45 -39
- package/util/programs/texturetoglobe.js +98 -48
- package/util/shaderfunctions/geometrytransformations.js +322 -27
- package/util/shaderfunctions/nodata.js +7 -1
- package/util/shaderfunctions/noisefunctions.js +39 -9
- package/util/surface-line-data/arcs-to-cuts.js +20 -23
- package/util/webglobe/rasteroverlay.js +35 -37
- package/util/webglobjectbuilders.js +55 -60
- package/util/webglobjectbuilders1.js +48 -49
- package/waveparticles/adaptor.js +6 -7
- package/waveparticles/index.js +2 -2
- package/waveparticles/plugin.js +79 -84
- package/wind/imagetovectorfieldandmagnitude.js +15 -15
- package/wind/index.js +4 -4
- package/wind/plugin.js +453 -251
- package/wind/vectorfieldimage.js +5 -5
- package/write-text/attached-text-writer.js +46 -48
- package/write-text/context-text.js +51 -58
- package/write-text/context-text3.js +69 -74
package/rangerings/plugin.js
CHANGED
|
@@ -30,25 +30,24 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
30
30
|
};
|
|
31
31
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
32
|
exports.Z_ALPHA_MODE = exports.RangeRings = void 0;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
33
|
+
const circle_accurate_flat_1 = require("../programs/line-on-globe/circle-accurate-flat");
|
|
34
|
+
const circle_accurate_3d_1 = require("../programs/line-on-globe/circle-accurate-3d");
|
|
35
|
+
const lines_color_instanced_flat_1 = require("../programs/line-on-globe/lines-color-instanced-flat");
|
|
36
|
+
const account_1 = require("../util/account");
|
|
37
|
+
const get_1 = require("../util/check/get");
|
|
38
|
+
const data_filler_1 = require("../util/jshelpers/data-filler");
|
|
39
|
+
const ring_account_1 = require("./ring-account");
|
|
40
|
+
const degree_padding_around_circle_3d_1 = require("../programs/line-on-globe/degree-padding-around-circle-3d");
|
|
41
|
+
const naive_accurate_flexible_1 = require("../programs/line-on-globe/naive-accurate-flexible");
|
|
42
|
+
const rangeringangletext_1 = __importDefault(require("./rangeringangletext"));
|
|
43
|
+
const util_1 = require("../programs/line-on-globe/util");
|
|
44
44
|
Object.defineProperty(exports, "Z_ALPHA_MODE", { enumerable: true, get: function () { return util_1.Z_ALPHA_MODE; } });
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
var coord = globe.api_GetCartesian3DPoint(long, lat, 0, 0);
|
|
45
|
+
const enum_1 = require("./enum");
|
|
46
|
+
const typecheck_1 = require("../util/check/typecheck");
|
|
47
|
+
const geometry_1 = require("../util/geometry");
|
|
48
|
+
const CIRCLE_FLAT_EDGE_COUNT = 362; // 360 + 2 for closing the circle and a cutting point
|
|
49
|
+
const coordOnSphere = (long, lat, globe, altitude = 0) => {
|
|
50
|
+
const coord = globe.api_GetCartesian3DPoint(long, lat, 0, 0);
|
|
52
51
|
return (0, geometry_1.normalize)(coord, 6378.137 + altitude);
|
|
53
52
|
};
|
|
54
53
|
/**
|
|
@@ -74,10 +73,8 @@ var coordOnSphere = function (long, lat, globe, altitude) {
|
|
|
74
73
|
* @property {number} rgba
|
|
75
74
|
* @property {Array<RangeRing>} rings
|
|
76
75
|
*/
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
var _c = _a === void 0 ? {} : _a, _d = _c.oneDegreePadding, oneDegreePadding = _d === void 0 ? true : _d, _e = _c.showNumbers, showNumbers = _e === void 0 ? true : _e, _f = _c.numbersStyle, numbersStyle = _f === void 0 ? null : _f, _g = _c.opacity, opacity = _g === void 0 ? 1 : _g, _h = _c.zAlphaOnDegreePadding, zAlphaOnDegreePadding = _h === void 0 ? util_1.Z_ALPHA_MODE.ON : _h;
|
|
80
|
-
var _j = _b === void 0 ? {} : _b, _k = _j.textDataPreAdaptor, textDataPreAdaptor = _k === void 0 ? null : _k, _l = _j.textWritersMap, textWritersMap = _l === void 0 ? new Map() : _l;
|
|
76
|
+
class RangeRings {
|
|
77
|
+
constructor(id, { oneDegreePadding = true, showNumbers = true, numbersStyle = null, opacity = 1, zAlphaOnDegreePadding = util_1.Z_ALPHA_MODE.ON } = {}, { textDataPreAdaptor = null, textWritersMap = new Map() } = {}) {
|
|
81
78
|
this.id = id;
|
|
82
79
|
this._oneDegreePadding = oneDegreePadding;
|
|
83
80
|
this._zAlphaOnDegreePadding = zAlphaOnDegreePadding;
|
|
@@ -87,44 +84,36 @@ var RangeRings = /** @class */ (function () {
|
|
|
87
84
|
this._ringAccount = new ring_account_1.RingAccount();
|
|
88
85
|
this._textWritersMap = textWritersMap;
|
|
89
86
|
this._textDataPreAdaptor = textDataPreAdaptor;
|
|
90
|
-
this._textWritersMap.forEach(
|
|
87
|
+
this._textWritersMap.forEach((textWriter) => textWriter.setKeyAdaptor((item) => item.__identity__));
|
|
91
88
|
}
|
|
92
89
|
// USER API
|
|
93
90
|
/**
|
|
94
91
|
* @method updateCentersCoordinate @param { Array < { centerID, long,lat } >} items
|
|
95
92
|
*/
|
|
96
|
-
|
|
93
|
+
updateCentersCoordinate(items, { textWriterIDs = [] } = {}) {
|
|
97
94
|
// Algorithm
|
|
98
95
|
/**
|
|
99
96
|
* 1. ask centerRingAccount for existing rings COORDINATE RELATED KEYS
|
|
100
97
|
* 2. update centers
|
|
101
98
|
* 3. update buffer orchestators
|
|
102
99
|
*/
|
|
103
|
-
var _b;
|
|
104
|
-
var _c = _a === void 0 ? {} : _a, _d = _c.textWriterIDs, textWriterIDs = _d === void 0 ? [] : _d;
|
|
105
100
|
this._ringAccount.updateCentersCoordinate(items);
|
|
106
|
-
|
|
107
|
-
for (
|
|
108
|
-
|
|
109
|
-
var datas = this.__reconstructCentralRings(centerID);
|
|
101
|
+
const { globe, bufferOrchestrator, bufferManagersCompMap, paddingBufferOrchestrator, bufferManagersCompMapPadding } = this;
|
|
102
|
+
for (const { centerID } of items) {
|
|
103
|
+
const datas = this.__reconstructCentralRings(centerID);
|
|
110
104
|
bufferOrchestrator.updateBulk(datas, bufferManagersCompMap, ["centerCoords3d", "centerCoords2dflat", "targetCoords3d", "centerCoords2dflatForPadding"]);
|
|
111
|
-
|
|
105
|
+
const paddingDatas = this.__reconstructCentralRingsBigPaddings(centerID);
|
|
112
106
|
paddingBufferOrchestrator.updateBulk(paddingDatas, bufferManagersCompMapPadding, ["circlePoint2d", "paddingPoint2d", "circlePoint3d", "paddingPoint3d"]);
|
|
113
107
|
}
|
|
114
|
-
|
|
115
|
-
this.__contextTextWriterUpdate(items.map(
|
|
116
|
-
var centerID = _a.centerID;
|
|
117
|
-
return centerID;
|
|
118
|
-
}), textWriterIDs);
|
|
108
|
+
this.paddingTextPlugin?.updateCentersXY(items);
|
|
109
|
+
this.__contextTextWriterUpdate(items.map(({ centerID }) => centerID), textWriterIDs);
|
|
119
110
|
globe.DrawRender();
|
|
120
|
-
}
|
|
111
|
+
}
|
|
121
112
|
/**
|
|
122
113
|
* @method insertBulk
|
|
123
114
|
* @param { Array < RangeRingsItem> } items
|
|
124
115
|
*/
|
|
125
|
-
|
|
126
|
-
var _b;
|
|
127
|
-
var _c = _a === void 0 ? {} : _a, _d = _c.textWriterIDs, textWriterIDs = _d === void 0 ? [] : _d;
|
|
116
|
+
insertBulk(items, { textWriterIDs = [] } = {}) {
|
|
128
117
|
// Algorithm
|
|
129
118
|
/**
|
|
130
119
|
* 1 ask centerRingAccount for existing rings
|
|
@@ -132,38 +121,32 @@ var RangeRings = /** @class */ (function () {
|
|
|
132
121
|
* 3. insert new centerRings to centerRingAccount
|
|
133
122
|
* 4. insert new keys with buffer orchestators
|
|
134
123
|
*/
|
|
135
|
-
|
|
136
|
-
for (
|
|
137
|
-
|
|
138
|
-
var existingKeys = _ringAccount.ringKeys(item.centerID);
|
|
124
|
+
const { globe, _ringAccount, bufferOrchestrator, bufferManagersCompMap, paddingBufferOrchestrator, bufferManagersCompMapPadding } = this;
|
|
125
|
+
for (const item of items) {
|
|
126
|
+
const existingKeys = _ringAccount.ringKeys(item.centerID);
|
|
139
127
|
if (existingKeys.length) {
|
|
140
128
|
bufferOrchestrator.deleteBulk(existingKeys, bufferManagersCompMap);
|
|
141
129
|
}
|
|
142
|
-
|
|
130
|
+
const paddingKeys = _ringAccount.ringBigPaddingKeys(item.centerID);
|
|
143
131
|
if (paddingKeys.length) {
|
|
144
132
|
paddingBufferOrchestrator.deleteBulk(paddingKeys, bufferManagersCompMapPadding);
|
|
145
133
|
}
|
|
146
134
|
}
|
|
147
|
-
for (
|
|
148
|
-
var item = items_3[_f];
|
|
135
|
+
for (const item of items) {
|
|
149
136
|
_ringAccount.insertCenter(item);
|
|
150
|
-
|
|
137
|
+
const datas = this.__reconstructCentralRings(item.centerID);
|
|
151
138
|
bufferOrchestrator.insertBulk(datas, bufferManagersCompMap);
|
|
152
|
-
|
|
139
|
+
const paddingDatas = this.__reconstructCentralRingsBigPaddings(item.centerID);
|
|
153
140
|
paddingBufferOrchestrator.insertBulk(paddingDatas, bufferManagersCompMapPadding);
|
|
154
141
|
}
|
|
155
|
-
|
|
156
|
-
this.__contextTextWriterUpdate(items.map(
|
|
157
|
-
var centerID = _a.centerID;
|
|
158
|
-
return centerID;
|
|
159
|
-
}), textWriterIDs);
|
|
142
|
+
this.paddingTextPlugin?.insertBulk(items);
|
|
143
|
+
this.__contextTextWriterUpdate(items.map(({ centerID }) => centerID), textWriterIDs);
|
|
160
144
|
globe.DrawRender();
|
|
161
|
-
}
|
|
145
|
+
}
|
|
162
146
|
/**
|
|
163
147
|
* @method updateCentersColor @param { Array < { centerID, rgba: [4 numbers] } >} centerColors
|
|
164
148
|
*/
|
|
165
|
-
|
|
166
|
-
var _b = _a === void 0 ? {} : _a, _c = _b.textWriterIDs, textWriterIDs = _c === void 0 ? [] : _c;
|
|
149
|
+
updateCentersColor(centerColors, { textWriterIDs = [] } = {}) {
|
|
167
150
|
// Algorithm
|
|
168
151
|
/**
|
|
169
152
|
* 1. ask centerRingAccount for existing rings COLOR KEYS
|
|
@@ -171,27 +154,21 @@ var RangeRings = /** @class */ (function () {
|
|
|
171
154
|
* 3. update buffer orchestators
|
|
172
155
|
*/
|
|
173
156
|
this._ringAccount.updateCentersColor(centerColors);
|
|
174
|
-
|
|
175
|
-
for (
|
|
176
|
-
|
|
177
|
-
var datas = this.__reconstructCentralProperties(centerID);
|
|
157
|
+
const { globe, bufferOrchestrator, bufferManagersCompMap, paddingBufferOrchestrator, bufferManagersCompMapPadding } = this;
|
|
158
|
+
for (const { centerID } of centerColors) {
|
|
159
|
+
const datas = this.__reconstructCentralProperties(centerID);
|
|
178
160
|
bufferOrchestrator.updateBulk(datas, bufferManagersCompMap, ["rgba", "rgbaMercator"]);
|
|
179
|
-
|
|
161
|
+
const paddingDatas = this.__reconstructCentralPaddingProperties(centerID);
|
|
180
162
|
paddingBufferOrchestrator.updateBulk(paddingDatas, bufferManagersCompMapPadding, ["rgba"]);
|
|
181
163
|
}
|
|
182
|
-
this.__contextTextWriterUpdate(centerColors.map(
|
|
183
|
-
var centerID = _a.centerID;
|
|
184
|
-
return centerID;
|
|
185
|
-
}), textWriterIDs);
|
|
164
|
+
this.__contextTextWriterUpdate(centerColors.map(({ centerID }) => centerID), textWriterIDs);
|
|
186
165
|
globe.DrawRender();
|
|
187
|
-
}
|
|
166
|
+
}
|
|
188
167
|
/**
|
|
189
168
|
*
|
|
190
169
|
* @method updateCentersHide @param { Array < { centerID, hide, textHide } >} centerHides
|
|
191
170
|
*/
|
|
192
|
-
|
|
193
|
-
var _b;
|
|
194
|
-
var _c = _a === void 0 ? {} : _a, _d = _c.textWriterIDs, textWriterIDs = _d === void 0 ? [] : _d;
|
|
171
|
+
updateCentersHide(centerHides, { textWriterIDs = [] } = {}) {
|
|
195
172
|
// Algorithm
|
|
196
173
|
/**
|
|
197
174
|
* Simple
|
|
@@ -200,21 +177,17 @@ var RangeRings = /** @class */ (function () {
|
|
|
200
177
|
* 3. update color buffer
|
|
201
178
|
* */
|
|
202
179
|
this._ringAccount.updateCentersHide(centerHides);
|
|
203
|
-
|
|
204
|
-
for (
|
|
205
|
-
|
|
206
|
-
var datas = this.__reconstructCentralProperties(centerID);
|
|
180
|
+
const { globe, bufferOrchestrator, bufferManagersCompMap, paddingBufferOrchestrator, bufferManagersCompMapPadding } = this;
|
|
181
|
+
for (const { centerID } of centerHides) {
|
|
182
|
+
const datas = this.__reconstructCentralProperties(centerID);
|
|
207
183
|
bufferOrchestrator.updateBulk(datas, bufferManagersCompMap, ["rgba", "rgbaMercator"]);
|
|
208
|
-
|
|
184
|
+
const paddingDatas0 = this.__reconstructCentralRings(centerID);
|
|
209
185
|
bufferOrchestrator.updateBulk(paddingDatas0, bufferManagersCompMap, ["radius3dsmall", "centerCoords2dflatForPadding"]);
|
|
210
|
-
|
|
186
|
+
const paddingDatas = this.__reconstructCentralPaddingProperties(centerID);
|
|
211
187
|
paddingBufferOrchestrator.updateBulk(paddingDatas, bufferManagersCompMapPadding, ["rgba"]);
|
|
212
188
|
}
|
|
213
|
-
|
|
214
|
-
this.__contextTextWriterUpdate(centerHides.map(
|
|
215
|
-
var centerID = _a.centerID;
|
|
216
|
-
return centerID;
|
|
217
|
-
}), textWriterIDs);
|
|
189
|
+
this.paddingTextPlugin?.updateCentersHide(centerHides);
|
|
190
|
+
this.__contextTextWriterUpdate(centerHides.map(({ centerID }) => centerID), textWriterIDs);
|
|
218
191
|
globe.DrawRender();
|
|
219
192
|
/**
|
|
220
193
|
* Complicated
|
|
@@ -222,195 +195,181 @@ var RangeRings = /** @class */ (function () {
|
|
|
222
195
|
* 2. delete from buffer orchestators
|
|
223
196
|
* 3. mark centers as hidden
|
|
224
197
|
*/
|
|
225
|
-
}
|
|
198
|
+
}
|
|
226
199
|
/**
|
|
227
200
|
* @param {Array<string>} textWriterIDs textWritersMap keys to be used for writing text.
|
|
228
201
|
* @param {Array<string>} itemKeys if empty, all texts will be updated. Use {@link ringKeyMethod} method to get keys
|
|
229
202
|
*/
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
if (textWriterIDs === void 0) { textWriterIDs = []; }
|
|
233
|
-
if (itemKeys === void 0) { itemKeys = null; }
|
|
234
|
-
var textWritersMap = textWriterGetOrThrow(this._textWritersMap, textWriterIDs);
|
|
203
|
+
updateText(textWriterIDs = [], itemKeys = null) {
|
|
204
|
+
const textWritersMap = textWriterGetOrThrow(this._textWritersMap, textWriterIDs);
|
|
235
205
|
if (itemKeys === null) {
|
|
236
206
|
this._ringAccount.updateAllText(textWritersMap, this._textDataPreAdaptor);
|
|
237
207
|
this.globe.DrawRender();
|
|
238
208
|
}
|
|
239
209
|
else {
|
|
240
|
-
itemKeys.forEach(
|
|
241
|
-
|
|
210
|
+
itemKeys.forEach((key) => {
|
|
211
|
+
const item = this._ringAccount.getCenter(key);
|
|
242
212
|
if (item === undefined)
|
|
243
213
|
throw new Error("Center not found");
|
|
244
|
-
|
|
245
|
-
textWritersMap.forEach(
|
|
214
|
+
const textData = this._textDataPreAdaptor(item);
|
|
215
|
+
textWritersMap.forEach((textWriter) => textWriter.insertText(textData));
|
|
246
216
|
});
|
|
247
217
|
}
|
|
248
218
|
this.globe.DrawRender();
|
|
249
|
-
}
|
|
219
|
+
}
|
|
250
220
|
/**
|
|
251
221
|
* @method removeCenters @param { Array < { centerID } >} centerIDs
|
|
252
222
|
*/
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
var existingKeys = _ringAccount.ringKeys(centerID);
|
|
223
|
+
removeCenters(centerIDs) {
|
|
224
|
+
const { globe, bufferOrchestrator, bufferManagersCompMap, paddingBufferOrchestrator, bufferManagersCompMapPadding, _ringAccount } = this;
|
|
225
|
+
for (const centerID of centerIDs) {
|
|
226
|
+
const existingKeys = _ringAccount.ringKeys(centerID);
|
|
258
227
|
if (existingKeys.length) {
|
|
259
228
|
bufferOrchestrator.deleteBulk(existingKeys, bufferManagersCompMap);
|
|
260
|
-
|
|
229
|
+
this._textWritersMap.forEach((textWriter) => textWriter.deleteTextBulk(existingKeys));
|
|
261
230
|
}
|
|
262
|
-
};
|
|
263
|
-
var this_1 = this;
|
|
264
|
-
for (var _i = 0, centerIDs_1 = centerIDs; _i < centerIDs_1.length; _i++) {
|
|
265
|
-
var centerID = centerIDs_1[_i];
|
|
266
|
-
_loop_1(centerID);
|
|
267
231
|
}
|
|
268
|
-
for (
|
|
269
|
-
|
|
270
|
-
var paddingKeys = _ringAccount.ringBigPaddingKeys(centerID);
|
|
232
|
+
for (const centerID of centerIDs) {
|
|
233
|
+
const paddingKeys = _ringAccount.ringBigPaddingKeys(centerID);
|
|
271
234
|
if (paddingKeys.length) {
|
|
272
235
|
paddingBufferOrchestrator.deleteBulk(paddingKeys, bufferManagersCompMapPadding);
|
|
273
236
|
}
|
|
274
237
|
}
|
|
275
|
-
|
|
238
|
+
this.paddingTextPlugin?.removeCenters(centerIDs);
|
|
276
239
|
this._ringAccount.removeCenters(centerIDs);
|
|
277
240
|
globe.DrawRender();
|
|
278
|
-
}
|
|
241
|
+
}
|
|
279
242
|
/**
|
|
280
243
|
* @method setOpacity @param { number } opacity
|
|
281
244
|
*/
|
|
282
|
-
|
|
283
|
-
var _a;
|
|
245
|
+
setOpacity(opacity) {
|
|
284
246
|
(0, typecheck_1.opacityCheck)(opacity);
|
|
285
247
|
this._opacity = opacity;
|
|
286
|
-
|
|
287
|
-
this._textWritersMap.forEach(
|
|
248
|
+
this.paddingTextPlugin?.setOpacity(opacity);
|
|
249
|
+
this._textWritersMap.forEach((writer) => writer.setOpacity(opacity));
|
|
288
250
|
this.globe.DrawRender();
|
|
289
|
-
}
|
|
251
|
+
}
|
|
290
252
|
/**
|
|
291
253
|
* @method setOneDegreePaddingOn // performance consuming, might be removed
|
|
292
254
|
*/
|
|
293
|
-
|
|
255
|
+
setOneDegreePaddingOn(isOneDegreePaddingOn) {
|
|
294
256
|
if (typeof isOneDegreePaddingOn !== "boolean")
|
|
295
257
|
throw new Error("Invalid value for one degree padding");
|
|
296
258
|
if (this._oneDegreePadding === isOneDegreePaddingOn)
|
|
297
259
|
return;
|
|
298
260
|
this._oneDegreePadding = isOneDegreePaddingOn;
|
|
299
261
|
this.globe.DrawRender();
|
|
300
|
-
}
|
|
301
|
-
|
|
262
|
+
}
|
|
263
|
+
setZAlphaOnDegreePadding(zAlphaOnDegreePadding) {
|
|
302
264
|
if (zAlphaOnDegreePadding !== 0 && zAlphaOnDegreePadding !== 1)
|
|
303
265
|
throw new Error("Invalid value for zAlphaOnDegreePadding");
|
|
304
266
|
if (this._zAlphaOnDegreePadding === zAlphaOnDegreePadding)
|
|
305
267
|
return;
|
|
306
268
|
this._zAlphaOnDegreePadding = zAlphaOnDegreePadding;
|
|
307
269
|
this.globe.DrawRender();
|
|
308
|
-
}
|
|
270
|
+
}
|
|
309
271
|
// PRIVATE METHODS
|
|
310
|
-
|
|
311
|
-
|
|
272
|
+
_initPrograms() {
|
|
273
|
+
const { globe } = this;
|
|
312
274
|
this._circleProgram2D = circle_accurate_flat_1.CircleCache.get(globe);
|
|
313
275
|
this._circleProgram3D = circle_accurate_3d_1.CircleCache.get(globe);
|
|
314
276
|
this._padding2dProgram = lines_color_instanced_flat_1.LinesColorInstancedFlatCache.get(globe);
|
|
315
277
|
this._padding3dProgram = degree_padding_around_circle_3d_1.CirclePadding3DCache.get(globe);
|
|
316
278
|
this._lineOnGlobe_bigPadding = naive_accurate_flexible_1.LineOnGlobeCache.get(globe);
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
var initialCapacity = 10;
|
|
323
|
-
var bufferType = "DYNAMIC_DRAW";
|
|
279
|
+
}
|
|
280
|
+
_initBufferManagers() {
|
|
281
|
+
const { gl } = this;
|
|
282
|
+
const initialCapacity = 10;
|
|
283
|
+
const bufferType = "DYNAMIC_DRAW";
|
|
324
284
|
// circle2d, circle3d, 1 degree paddings,
|
|
325
285
|
this.bufferOrchestrator = new account_1.BufferOrchestrator({ capacity: initialCapacity });
|
|
326
286
|
this.bufferManagersCompMap = new Map([
|
|
327
287
|
// circle 3D
|
|
328
288
|
["centerCoords3d", {
|
|
329
|
-
'bufferManager': new account_1.BufferManager(gl, 3, { bufferType
|
|
330
|
-
'adaptor':
|
|
289
|
+
'bufferManager': new account_1.BufferManager(gl, 3, { bufferType, initialCapacity }),
|
|
290
|
+
'adaptor': (item) => new Float32Array(item.centerCoords3d),
|
|
331
291
|
}],
|
|
332
292
|
["targetCoords3d", {
|
|
333
|
-
'bufferManager': new account_1.BufferManager(gl, 3, { bufferType
|
|
334
|
-
'adaptor':
|
|
293
|
+
'bufferManager': new account_1.BufferManager(gl, 3, { bufferType, initialCapacity }),
|
|
294
|
+
'adaptor': (item) => new Float32Array(item.targetCoords3d),
|
|
335
295
|
}],
|
|
336
296
|
["rgba", {
|
|
337
|
-
'bufferManager': new account_1.BufferManager(gl, 4, { bufferType
|
|
338
|
-
'adaptor':
|
|
297
|
+
'bufferManager': new account_1.BufferManager(gl, 4, { bufferType, initialCapacity }),
|
|
298
|
+
'adaptor': (item) => new Float32Array(item.hide === enum_1.ENUM_HIDE.HIDE ? [0, 0, 0, 0] : item.rgba)
|
|
339
299
|
}],
|
|
340
300
|
["radius3d", {
|
|
341
|
-
'bufferManager': new account_1.BufferManager(gl, 1, { bufferType
|
|
342
|
-
'adaptor':
|
|
301
|
+
'bufferManager': new account_1.BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
302
|
+
'adaptor': (item) => new Float32Array([item.radius])
|
|
343
303
|
}],
|
|
344
304
|
["radius3dsmall", {
|
|
345
|
-
'bufferManager': new account_1.BufferManager(gl, 1, { bufferType
|
|
346
|
-
'adaptor':
|
|
305
|
+
'bufferManager': new account_1.BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
306
|
+
'adaptor': (item) => {
|
|
347
307
|
if (item.hide === enum_1.ENUM_HIDE.HIDE_1_DEGREE_PADDINGS)
|
|
348
308
|
return new Float32Array([item.radius]);
|
|
349
309
|
return new Float32Array([item.radius - item.padding / 3]);
|
|
350
310
|
}
|
|
351
311
|
}],
|
|
352
312
|
["circleDashAngle", {
|
|
353
|
-
'bufferManager': new account_1.BufferManager(gl, 1, { bufferType
|
|
354
|
-
'adaptor':
|
|
313
|
+
'bufferManager': new account_1.BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
314
|
+
'adaptor': (item) => new Float32Array([1]),
|
|
355
315
|
}],
|
|
356
316
|
["dashOpacity", {
|
|
357
|
-
'bufferManager': new account_1.BufferManager(gl, 1, { bufferType
|
|
358
|
-
'adaptor':
|
|
317
|
+
'bufferManager': new account_1.BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
318
|
+
'adaptor': (item) => new Float32Array([1]),
|
|
359
319
|
}],
|
|
360
320
|
// circle 2D
|
|
361
321
|
["centerCoords2dflatForPadding", {
|
|
362
|
-
'bufferManager': new account_1.BufferManager(gl, CIRCLE_FLAT_EDGE_COUNT * 2, { bufferType
|
|
363
|
-
'adaptor':
|
|
322
|
+
'bufferManager': new account_1.BufferManager(gl, CIRCLE_FLAT_EDGE_COUNT * 2, { bufferType, initialCapacity }),
|
|
323
|
+
'adaptor': (item) => item.centerCoords2dflatForPadding,
|
|
364
324
|
}],
|
|
365
325
|
["centerCoords2dflat", {
|
|
366
|
-
'bufferManager': new account_1.BufferManager(gl, CIRCLE_FLAT_EDGE_COUNT * 2, { bufferType
|
|
367
|
-
'adaptor':
|
|
326
|
+
'bufferManager': new account_1.BufferManager(gl, CIRCLE_FLAT_EDGE_COUNT * 2, { bufferType, initialCapacity }),
|
|
327
|
+
'adaptor': (item) => item.centerCoords2dflat,
|
|
368
328
|
}],
|
|
369
329
|
["rgbaMercator", {
|
|
370
|
-
'bufferManager': new account_1.BufferManager(gl, 4 * CIRCLE_FLAT_EDGE_COUNT, { bufferType
|
|
371
|
-
'adaptor':
|
|
330
|
+
'bufferManager': new account_1.BufferManager(gl, 4 * CIRCLE_FLAT_EDGE_COUNT, { bufferType, initialCapacity }),
|
|
331
|
+
'adaptor': (item) => data_filler_1.populateFloat32Array.fillWithListData(CIRCLE_FLAT_EDGE_COUNT, item.hide === enum_1.ENUM_HIDE.HIDE ? [0, 0, 0, 0] : item.rgba),
|
|
372
332
|
}],
|
|
373
333
|
["circleDashAngleMercator", {
|
|
374
|
-
'bufferManager': new account_1.BufferManager(gl, CIRCLE_FLAT_EDGE_COUNT, { bufferType
|
|
375
|
-
'adaptor':
|
|
334
|
+
'bufferManager': new account_1.BufferManager(gl, CIRCLE_FLAT_EDGE_COUNT, { bufferType, initialCapacity }),
|
|
335
|
+
'adaptor': (item) => data_filler_1.populateFloat32Array.fillFloat32Array(CIRCLE_FLAT_EDGE_COUNT, 1),
|
|
376
336
|
}],
|
|
377
337
|
["dashOpacityMercator", {
|
|
378
|
-
'bufferManager': new account_1.BufferManager(gl, CIRCLE_FLAT_EDGE_COUNT, { bufferType
|
|
379
|
-
'adaptor':
|
|
338
|
+
'bufferManager': new account_1.BufferManager(gl, CIRCLE_FLAT_EDGE_COUNT, { bufferType, initialCapacity }),
|
|
339
|
+
'adaptor': (item) => data_filler_1.populateFloat32Array.fillFloat32Array(CIRCLE_FLAT_EDGE_COUNT, 1),
|
|
380
340
|
}],
|
|
381
341
|
]);
|
|
382
|
-
|
|
383
|
-
if (divisor === void 0) { divisor = 1; }
|
|
342
|
+
const obj = function (bufferManagerComp, divisor = 1) {
|
|
384
343
|
if (bufferManagerComp === null)
|
|
385
344
|
return null;
|
|
386
|
-
return { 'buffer': bufferManagerComp.bufferManager.buffer, 'stride': 0, 'offset': 0, divisor
|
|
345
|
+
return { 'buffer': bufferManagerComp.bufferManager.buffer, 'stride': 0, 'offset': 0, divisor };
|
|
387
346
|
};
|
|
388
|
-
this._circle2DVao =
|
|
389
|
-
this._circle3DVao =
|
|
347
|
+
this._circle2DVao = this._circleProgram2D.createVAO(...["centerCoords2dflat", "rgbaMercator", "circleDashAngleMercator", "dashOpacityMercator"].map(key => obj(this.bufferManagersCompMap.get(key))));
|
|
348
|
+
this._circle3DVao = this._circleProgram3D.createVAO(...["centerCoords3d", "targetCoords3d", "rgba", "circleDashAngle", "dashOpacity"].map(key => obj(this.bufferManagersCompMap.get(key))));
|
|
390
349
|
this._oneDegree2DPaddingVao = this._padding2dProgram.createVAO({ buffer: this.bufferManagersCompMap.get("centerCoords2dflat").bufferManager.buffer, size: 2, stride: 0, offset: 0 }, { buffer: this.bufferManagersCompMap.get("centerCoords2dflatForPadding").bufferManager.buffer, size: 2, stride: 0, offset: 0 }, { buffer: this.bufferManagersCompMap.get("rgbaMercator").bufferManager.buffer, size: 4, stride: 0, offset: 0 });
|
|
391
350
|
// PADDING
|
|
392
351
|
// this one needs glue to assosiate rings and their big paddings since the count for center is not fixed
|
|
393
352
|
this.paddingBufferOrchestrator = new account_1.BufferOrchestrator({ capacity: initialCapacity });
|
|
394
353
|
this.bufferManagersCompMapPadding = new Map([
|
|
395
354
|
["circlePoint2d", {
|
|
396
|
-
'bufferManager': new account_1.BufferManager(gl, 2, { bufferType
|
|
397
|
-
'adaptor':
|
|
355
|
+
'bufferManager': new account_1.BufferManager(gl, 2, { bufferType, initialCapacity }),
|
|
356
|
+
'adaptor': (item) => item.circlePoint2d,
|
|
398
357
|
}],
|
|
399
358
|
["paddingPoint2d", {
|
|
400
|
-
'bufferManager': new account_1.BufferManager(gl, 2, { bufferType
|
|
401
|
-
'adaptor':
|
|
359
|
+
'bufferManager': new account_1.BufferManager(gl, 2, { bufferType, initialCapacity }),
|
|
360
|
+
'adaptor': (item) => item.paddingPoint2d,
|
|
402
361
|
}],
|
|
403
362
|
["circlePoint3d", {
|
|
404
|
-
'bufferManager': new account_1.BufferManager(gl, 3, { bufferType
|
|
405
|
-
'adaptor':
|
|
363
|
+
'bufferManager': new account_1.BufferManager(gl, 3, { bufferType, initialCapacity }),
|
|
364
|
+
'adaptor': (item) => item.circlePoint3d
|
|
406
365
|
}],
|
|
407
366
|
["paddingPoint3d", {
|
|
408
|
-
'bufferManager': new account_1.BufferManager(gl, 3, { bufferType
|
|
409
|
-
'adaptor':
|
|
367
|
+
'bufferManager': new account_1.BufferManager(gl, 3, { bufferType, initialCapacity }),
|
|
368
|
+
'adaptor': (item) => item.paddingPoint3d
|
|
410
369
|
}],
|
|
411
370
|
["rgba", {
|
|
412
|
-
'bufferManager': new account_1.BufferManager(gl, 4, { bufferType
|
|
413
|
-
'adaptor':
|
|
371
|
+
'bufferManager': new account_1.BufferManager(gl, 4, { bufferType, initialCapacity }),
|
|
372
|
+
'adaptor': (item) => new Float32Array(item.rgba)
|
|
414
373
|
}],
|
|
415
374
|
// ["dashOpacity", {
|
|
416
375
|
// 'bufferManager': new BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
@@ -421,26 +380,24 @@ var RangeRings = /** @class */ (function () {
|
|
|
421
380
|
// 'adaptor': (item) => new Float32Array([1]),
|
|
422
381
|
// }],
|
|
423
382
|
]);
|
|
424
|
-
this._bigPadding3dFlatVAO =
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
};
|
|
383
|
+
this._bigPadding3dFlatVAO = this._lineOnGlobe_bigPadding.createVAO(//"dashRatio", "dashOpacity"
|
|
384
|
+
...["circlePoint2d", "circlePoint3d", "paddingPoint2d", "paddingPoint3d", null, null, "rgba",].map(key => (key === null) ? null : obj(this.bufferManagersCompMapPadding.get(key))));
|
|
385
|
+
this._padding3dOneDegreeVao = this._padding3dProgram.createVAO(...["centerCoords3d", "radius3d", "radius3dsmall", "rgba"].map(key => obj(this.bufferManagersCompMap.get(key))));
|
|
386
|
+
}
|
|
429
387
|
// IMPLICIT METHODS
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
388
|
+
__reconstructCentralRingsBigPaddings(centerID) {
|
|
389
|
+
const { globe } = this;
|
|
390
|
+
const centerItem = this._ringAccount.getCenter(centerID);
|
|
433
391
|
if (centerItem === undefined)
|
|
434
392
|
throw new Error("Center not found");
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
for (
|
|
439
|
-
|
|
440
|
-
var azimuthAngle = 0;
|
|
393
|
+
const { long, lat, stepAngle, rgba, rings, hide = 0, textHide = 0, altitude: centerAltitude = 0 } = centerItem;
|
|
394
|
+
const result = [];
|
|
395
|
+
const color = hide === 1 ? new Float32Array([0, 0, 0, 0]) : new Float32Array(rgba);
|
|
396
|
+
for (const { ringID, radius, padding, altitude = centerAltitude } of rings) {
|
|
397
|
+
let azimuthAngle = 0;
|
|
441
398
|
while (azimuthAngle < 360) {
|
|
442
|
-
|
|
443
|
-
|
|
399
|
+
const circlePoint = globe.Math.FindPointByPolar(long, lat, radius, azimuthAngle); // long lat
|
|
400
|
+
const paddingPoint = globe.Math.FindPointByPolar(long, lat, radius - padding, azimuthAngle); // long lat
|
|
444
401
|
result.push({
|
|
445
402
|
key: (0, ring_account_1.ringBigPaddingKeyMethod)(centerID, ringID, azimuthAngle),
|
|
446
403
|
circlePoint2d: new Float32Array(globe.api_GetMercator2DPoint(circlePoint.long, circlePoint.lat)),
|
|
@@ -448,84 +405,81 @@ var RangeRings = /** @class */ (function () {
|
|
|
448
405
|
circlePoint3d: coordOnSphere(circlePoint.long, circlePoint.lat, globe, altitude / 1000),
|
|
449
406
|
paddingPoint3d: coordOnSphere(paddingPoint.long, paddingPoint.lat, globe, altitude / 1000),
|
|
450
407
|
rgba: color,
|
|
451
|
-
hide
|
|
452
|
-
textHide
|
|
408
|
+
hide,
|
|
409
|
+
textHide
|
|
453
410
|
});
|
|
454
411
|
azimuthAngle += stepAngle;
|
|
455
412
|
}
|
|
456
413
|
}
|
|
457
414
|
return result;
|
|
458
|
-
}
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
415
|
+
}
|
|
416
|
+
__reconstructCentralRings(centerID) {
|
|
417
|
+
const { globe } = this;
|
|
418
|
+
const centerItem = this._ringAccount.getCenter(centerID);
|
|
462
419
|
if (centerItem === undefined)
|
|
463
420
|
throw new Error("Center not found");
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
for (
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
var centerCoords2dflatForPadding = (0, circle_accurate_flat_1.centerCoords2dflatDataCreatorWithRadius)(globe, long, lat, radiusPadding, { edgeCount: CIRCLE_FLAT_EDGE_COUNT });
|
|
421
|
+
const { long, lat, rgba, rings, hide = 0, textHide = 0, altitude: centralAltitude = 0 } = centerItem;
|
|
422
|
+
const centerCoords3d = coordOnSphere(long, lat, globe, centralAltitude / 1000);
|
|
423
|
+
const result = [];
|
|
424
|
+
for (const { ringID, radius, padding, __identity__, altitude = centralAltitude } of rings) {
|
|
425
|
+
const key = __identity__;
|
|
426
|
+
const centerCoords2dflat = (0, circle_accurate_flat_1.centerCoords2dflatDataCreatorWithRadius)(globe, long, lat, radius, { edgeCount: CIRCLE_FLAT_EDGE_COUNT });
|
|
427
|
+
const radiusPadding = hide === enum_1.ENUM_HIDE.HIDE_1_DEGREE_PADDINGS ? radius : radius - padding / 3;
|
|
428
|
+
const targetPoint = globe.Math.FindPointByPolar(long, lat, radius, 0); // long lat
|
|
429
|
+
const targetCoords3d = coordOnSphere(targetPoint.long, targetPoint.lat, globe, altitude / 1000);
|
|
430
|
+
const centerCoords2dflatForPadding = (0, circle_accurate_flat_1.centerCoords2dflatDataCreatorWithRadius)(globe, long, lat, radiusPadding, { edgeCount: CIRCLE_FLAT_EDGE_COUNT });
|
|
475
431
|
result.push({
|
|
476
|
-
key
|
|
477
|
-
centerCoords3d
|
|
478
|
-
targetCoords3d
|
|
479
|
-
centerCoords2dflat
|
|
480
|
-
radius
|
|
481
|
-
padding
|
|
482
|
-
rgba
|
|
483
|
-
centerCoords2dflatForPadding
|
|
484
|
-
hide
|
|
485
|
-
textHide
|
|
432
|
+
key,
|
|
433
|
+
centerCoords3d,
|
|
434
|
+
targetCoords3d,
|
|
435
|
+
centerCoords2dflat,
|
|
436
|
+
radius,
|
|
437
|
+
padding,
|
|
438
|
+
rgba,
|
|
439
|
+
centerCoords2dflatForPadding,
|
|
440
|
+
hide,
|
|
441
|
+
textHide
|
|
486
442
|
});
|
|
487
443
|
}
|
|
488
444
|
return result;
|
|
489
|
-
}
|
|
490
|
-
|
|
491
|
-
|
|
445
|
+
}
|
|
446
|
+
__reconstructCentralPaddingProperties(centerID) {
|
|
447
|
+
const centerItem = this._ringAccount.getCenter(centerID);
|
|
492
448
|
if (centerItem === undefined)
|
|
493
449
|
throw new Error("Center not found");
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
for (
|
|
497
|
-
|
|
498
|
-
var angle = 0;
|
|
450
|
+
const { stepAngle, rgba, rings, hide = 0, textHide = 0 } = centerItem;
|
|
451
|
+
const result = [];
|
|
452
|
+
for (const { ringID, } of rings) {
|
|
453
|
+
let angle = 0;
|
|
499
454
|
while (angle < 360) {
|
|
500
455
|
result.push({
|
|
501
456
|
key: (0, ring_account_1.ringBigPaddingKeyMethod)(centerID, ringID, angle),
|
|
502
457
|
rgba: hide === 1 ? new Float32Array([0, 0, 0, 0]) : rgba,
|
|
503
|
-
textHide
|
|
458
|
+
textHide
|
|
504
459
|
});
|
|
505
460
|
angle += stepAngle;
|
|
506
461
|
}
|
|
507
462
|
}
|
|
508
463
|
return result;
|
|
509
|
-
}
|
|
510
|
-
|
|
511
|
-
|
|
464
|
+
}
|
|
465
|
+
__reconstructCentralProperties(centerID) {
|
|
466
|
+
const centerItem = this._ringAccount.getCenter(centerID);
|
|
512
467
|
if (centerItem === undefined)
|
|
513
468
|
throw new Error("Center not found");
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
for (
|
|
517
|
-
|
|
518
|
-
var key = __identity__;
|
|
469
|
+
const { rgba, rings, hide = 0, textHide = 0 } = centerItem;
|
|
470
|
+
const result = [];
|
|
471
|
+
for (const { ringID, __identity__ } of rings) {
|
|
472
|
+
const key = __identity__;
|
|
519
473
|
result.push({
|
|
520
|
-
key
|
|
474
|
+
key,
|
|
521
475
|
rgba: hide === enum_1.ENUM_HIDE.HIDE ? new Float32Array([0, 0, 0, 0]) : rgba,
|
|
522
|
-
textHide
|
|
476
|
+
textHide
|
|
523
477
|
});
|
|
524
478
|
}
|
|
525
479
|
return result;
|
|
526
|
-
}
|
|
480
|
+
}
|
|
527
481
|
// GLOBE API
|
|
528
|
-
|
|
482
|
+
init(globe, gl) {
|
|
529
483
|
this.globe = globe;
|
|
530
484
|
this.gl = gl;
|
|
531
485
|
this._initPrograms();
|
|
@@ -534,11 +488,11 @@ var RangeRings = /** @class */ (function () {
|
|
|
534
488
|
this.paddingTextPlugin = new rangeringangletext_1.default(globe, this.id + "text", { style: this._numbersStyle, opacity: this._opacity });
|
|
535
489
|
delete this._numbersStyle;
|
|
536
490
|
}
|
|
537
|
-
}
|
|
538
|
-
|
|
539
|
-
|
|
491
|
+
}
|
|
492
|
+
draw3D() {
|
|
493
|
+
const { globe, gl, _circleProgram2D, _circleProgram3D, _padding2dProgram, _padding3dProgram, _lineOnGlobe_bigPadding, _circle2DVao, _circle3DVao, _oneDegree2DPaddingVao, _padding3dOneDegreeVao, _bigPadding3dFlatVAO, bufferOrchestrator, paddingBufferOrchestrator, _opacity, _oneDegreePadding, _zAlphaOnDegreePadding } = this;
|
|
540
494
|
gl.disable(gl.DEPTH_TEST);
|
|
541
|
-
|
|
495
|
+
const is3D = globe.api_GetCurrentGeometry() === 0;
|
|
542
496
|
// const lod = globe.api_GetCurrentLOD();
|
|
543
497
|
if (is3D) {
|
|
544
498
|
_circleProgram3D.draw(_circle3DVao, bufferOrchestrator.length, _opacity);
|
|
@@ -551,24 +505,17 @@ var RangeRings = /** @class */ (function () {
|
|
|
551
505
|
if (_oneDegreePadding)
|
|
552
506
|
_padding2dProgram.draw(_oneDegree2DPaddingVao, bufferOrchestrator.length * CIRCLE_FLAT_EDGE_COUNT, _opacity, _zAlphaOnDegreePadding);
|
|
553
507
|
}
|
|
554
|
-
|
|
508
|
+
const drawOptions = { drawRange: { first: 0, count: paddingBufferOrchestrator.length } };
|
|
555
509
|
_lineOnGlobe_bigPadding.draw(_bigPadding3dFlatVAO, drawOptions, _opacity);
|
|
556
|
-
this._textWritersMap.forEach(
|
|
510
|
+
this._textWritersMap.forEach((textWriter) => textWriter.draw());
|
|
557
511
|
gl.enable(gl.DEPTH_TEST);
|
|
558
|
-
}
|
|
559
|
-
|
|
560
|
-
var _a;
|
|
512
|
+
}
|
|
513
|
+
free() {
|
|
561
514
|
if (this._isFreed)
|
|
562
515
|
return;
|
|
563
|
-
|
|
564
|
-
this.bufferManagersCompMap.forEach(
|
|
565
|
-
|
|
566
|
-
return bufferManager.free();
|
|
567
|
-
});
|
|
568
|
-
this.bufferManagersCompMapPadding.forEach(function (_a) {
|
|
569
|
-
var bufferManager = _a.bufferManager;
|
|
570
|
-
return bufferManager.free();
|
|
571
|
-
});
|
|
516
|
+
const { globe } = this;
|
|
517
|
+
this.bufferManagersCompMap.forEach(({ bufferManager }) => bufferManager.free());
|
|
518
|
+
this.bufferManagersCompMapPadding.forEach(({ bufferManager }) => bufferManager.free());
|
|
572
519
|
// delete vaos
|
|
573
520
|
this.gl.deleteVertexArray(this._circle2DVao);
|
|
574
521
|
this.gl.deleteVertexArray(this._circle3DVao);
|
|
@@ -586,13 +533,11 @@ var RangeRings = /** @class */ (function () {
|
|
|
586
533
|
this._padding2dProgram = null;
|
|
587
534
|
this._padding3dProgram = null;
|
|
588
535
|
this._lineOnGlobe_bigPadding = null;
|
|
589
|
-
|
|
536
|
+
this.paddingTextPlugin?.free();
|
|
590
537
|
this._isFreed = true;
|
|
591
|
-
}
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
if (textWriterIDs === void 0) { textWriterIDs = null; }
|
|
595
|
-
var textWriters = null;
|
|
538
|
+
}
|
|
539
|
+
__contextTextWriterUpdate(centerIDs, textWriterIDs = null) {
|
|
540
|
+
let textWriters = null;
|
|
596
541
|
if (textWriterIDs === null) {
|
|
597
542
|
textWriters = Array.from(this._textWritersMap.values());
|
|
598
543
|
}
|
|
@@ -602,9 +547,8 @@ var RangeRings = /** @class */ (function () {
|
|
|
602
547
|
else {
|
|
603
548
|
textWriters = textWriterGetOrThrow(this._textWritersMap, textWriterIDs);
|
|
604
549
|
}
|
|
605
|
-
centerIDs.forEach(
|
|
606
|
-
}
|
|
607
|
-
|
|
608
|
-
}());
|
|
550
|
+
centerIDs.forEach((centerID) => { this._ringAccount.textUpdate(centerID, textWriters, this._textDataPreAdaptor); });
|
|
551
|
+
}
|
|
552
|
+
}
|
|
609
553
|
exports.RangeRings = RangeRings;
|
|
610
|
-
|
|
554
|
+
const textWriterGetOrThrow = (0, get_1.mapGetOrThrow)("textWriterIDs is invalid");
|