@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/rangerings/plugin.js
CHANGED
|
@@ -30,24 +30,25 @@ 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
|
+
var circle_accurate_flat_1 = require("../programs/line-on-globe/circle-accurate-flat");
|
|
34
|
+
var circle_accurate_3d_1 = require("../programs/line-on-globe/circle-accurate-3d");
|
|
35
|
+
var lines_color_instanced_flat_1 = require("../programs/line-on-globe/lines-color-instanced-flat");
|
|
36
|
+
var account_1 = require("../util/account");
|
|
37
|
+
var get_1 = require("../util/check/get");
|
|
38
|
+
var data_filler_1 = require("../util/jshelpers/data-filler");
|
|
39
|
+
var ring_account_1 = require("./ring-account");
|
|
40
|
+
var degree_padding_around_circle_3d_1 = require("../programs/line-on-globe/degree-padding-around-circle-3d");
|
|
41
|
+
var naive_accurate_flexible_1 = require("../programs/line-on-globe/naive-accurate-flexible");
|
|
42
|
+
var rangeringangletext_1 = __importDefault(require("./rangeringangletext"));
|
|
43
|
+
var 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
|
-
|
|
45
|
+
var enum_1 = require("./enum");
|
|
46
|
+
var typecheck_1 = require("../util/check/typecheck");
|
|
47
|
+
var geometry_1 = require("../util/geometry");
|
|
48
|
+
var CIRCLE_FLAT_EDGE_COUNT = 362; // 360 + 2 for closing the circle and a cutting point
|
|
49
|
+
var coordOnSphere = function (long, lat, globe, altitude) {
|
|
50
|
+
if (altitude === void 0) { altitude = 0; }
|
|
51
|
+
var coord = globe.api_GetCartesian3DPoint(long, lat, 0, 0);
|
|
51
52
|
return (0, geometry_1.normalize)(coord, 6378.137 + altitude);
|
|
52
53
|
};
|
|
53
54
|
/**
|
|
@@ -73,8 +74,10 @@ const coordOnSphere = (long, lat, globe, altitude = 0) => {
|
|
|
73
74
|
* @property {number} rgba
|
|
74
75
|
* @property {Array<RangeRing>} rings
|
|
75
76
|
*/
|
|
76
|
-
|
|
77
|
-
|
|
77
|
+
var RangeRings = /** @class */ (function () {
|
|
78
|
+
function RangeRings(id, _a, _b) {
|
|
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;
|
|
78
81
|
this.id = id;
|
|
79
82
|
this._oneDegreePadding = oneDegreePadding;
|
|
80
83
|
this._zAlphaOnDegreePadding = zAlphaOnDegreePadding;
|
|
@@ -84,38 +87,44 @@ class RangeRings {
|
|
|
84
87
|
this._ringAccount = new ring_account_1.RingAccount();
|
|
85
88
|
this._textWritersMap = textWritersMap;
|
|
86
89
|
this._textDataPreAdaptor = textDataPreAdaptor;
|
|
87
|
-
this._textWritersMap.forEach((textWriter)
|
|
90
|
+
this._textWritersMap.forEach(function (textWriter) { return textWriter.setKeyAdaptor(function (item) { return item.__identity__; }); });
|
|
88
91
|
}
|
|
89
92
|
// USER API
|
|
90
93
|
/**
|
|
91
94
|
* @method updateCentersCoordinate @param { Array < { centerID, long,lat } >} items
|
|
92
95
|
*/
|
|
93
|
-
updateCentersCoordinate
|
|
96
|
+
RangeRings.prototype.updateCentersCoordinate = function (items, _a) {
|
|
94
97
|
// Algorithm
|
|
95
98
|
/**
|
|
96
99
|
* 1. ask centerRingAccount for existing rings COORDINATE RELATED KEYS
|
|
97
100
|
* 2. update centers
|
|
98
101
|
* 3. update buffer orchestators
|
|
99
102
|
*/
|
|
100
|
-
var
|
|
103
|
+
var _b;
|
|
104
|
+
var _c = _a === void 0 ? {} : _a, _d = _c.textWriterIDs, textWriterIDs = _d === void 0 ? [] : _d;
|
|
101
105
|
this._ringAccount.updateCentersCoordinate(items);
|
|
102
|
-
|
|
103
|
-
for (
|
|
104
|
-
|
|
106
|
+
var _e = this, globe = _e.globe, bufferOrchestrator = _e.bufferOrchestrator, bufferManagersCompMap = _e.bufferManagersCompMap, paddingBufferOrchestrator = _e.paddingBufferOrchestrator, bufferManagersCompMapPadding = _e.bufferManagersCompMapPadding;
|
|
107
|
+
for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {
|
|
108
|
+
var centerID = items_1[_i].centerID;
|
|
109
|
+
var datas = this.__reconstructCentralRings(centerID);
|
|
105
110
|
bufferOrchestrator.updateBulk(datas, bufferManagersCompMap, ["centerCoords3d", "centerCoords2dflat", "targetCoords3d", "centerCoords2dflatForPadding"]);
|
|
106
|
-
|
|
111
|
+
var paddingDatas = this.__reconstructCentralRingsBigPaddings(centerID);
|
|
107
112
|
paddingBufferOrchestrator.updateBulk(paddingDatas, bufferManagersCompMapPadding, ["circlePoint2d", "paddingPoint2d", "circlePoint3d", "paddingPoint3d"]);
|
|
108
113
|
}
|
|
109
|
-
(
|
|
110
|
-
this.__contextTextWriterUpdate(items.map((
|
|
114
|
+
(_b = this.paddingTextPlugin) === null || _b === void 0 ? void 0 : _b.updateCentersXY(items);
|
|
115
|
+
this.__contextTextWriterUpdate(items.map(function (_a) {
|
|
116
|
+
var centerID = _a.centerID;
|
|
117
|
+
return centerID;
|
|
118
|
+
}), textWriterIDs);
|
|
111
119
|
globe.DrawRender();
|
|
112
|
-
}
|
|
120
|
+
};
|
|
113
121
|
/**
|
|
114
122
|
* @method insertBulk
|
|
115
123
|
* @param { Array < RangeRingsItem> } items
|
|
116
124
|
*/
|
|
117
|
-
insertBulk
|
|
118
|
-
var
|
|
125
|
+
RangeRings.prototype.insertBulk = function (items, _a) {
|
|
126
|
+
var _b;
|
|
127
|
+
var _c = _a === void 0 ? {} : _a, _d = _c.textWriterIDs, textWriterIDs = _d === void 0 ? [] : _d;
|
|
119
128
|
// Algorithm
|
|
120
129
|
/**
|
|
121
130
|
* 1 ask centerRingAccount for existing rings
|
|
@@ -123,32 +132,38 @@ class RangeRings {
|
|
|
123
132
|
* 3. insert new centerRings to centerRingAccount
|
|
124
133
|
* 4. insert new keys with buffer orchestators
|
|
125
134
|
*/
|
|
126
|
-
|
|
127
|
-
for (
|
|
128
|
-
|
|
135
|
+
var _e = this, globe = _e.globe, _ringAccount = _e._ringAccount, bufferOrchestrator = _e.bufferOrchestrator, bufferManagersCompMap = _e.bufferManagersCompMap, paddingBufferOrchestrator = _e.paddingBufferOrchestrator, bufferManagersCompMapPadding = _e.bufferManagersCompMapPadding;
|
|
136
|
+
for (var _i = 0, items_2 = items; _i < items_2.length; _i++) {
|
|
137
|
+
var item = items_2[_i];
|
|
138
|
+
var existingKeys = _ringAccount.ringKeys(item.centerID);
|
|
129
139
|
if (existingKeys.length) {
|
|
130
140
|
bufferOrchestrator.deleteBulk(existingKeys, bufferManagersCompMap);
|
|
131
141
|
}
|
|
132
|
-
|
|
142
|
+
var paddingKeys = _ringAccount.ringBigPaddingKeys(item.centerID);
|
|
133
143
|
if (paddingKeys.length) {
|
|
134
144
|
paddingBufferOrchestrator.deleteBulk(paddingKeys, bufferManagersCompMapPadding);
|
|
135
145
|
}
|
|
136
146
|
}
|
|
137
|
-
for (
|
|
147
|
+
for (var _f = 0, items_3 = items; _f < items_3.length; _f++) {
|
|
148
|
+
var item = items_3[_f];
|
|
138
149
|
_ringAccount.insertCenter(item);
|
|
139
|
-
|
|
150
|
+
var datas = this.__reconstructCentralRings(item.centerID);
|
|
140
151
|
bufferOrchestrator.insertBulk(datas, bufferManagersCompMap);
|
|
141
|
-
|
|
152
|
+
var paddingDatas = this.__reconstructCentralRingsBigPaddings(item.centerID);
|
|
142
153
|
paddingBufferOrchestrator.insertBulk(paddingDatas, bufferManagersCompMapPadding);
|
|
143
154
|
}
|
|
144
|
-
(
|
|
145
|
-
this.__contextTextWriterUpdate(items.map((
|
|
155
|
+
(_b = this.paddingTextPlugin) === null || _b === void 0 ? void 0 : _b.insertBulk(items);
|
|
156
|
+
this.__contextTextWriterUpdate(items.map(function (_a) {
|
|
157
|
+
var centerID = _a.centerID;
|
|
158
|
+
return centerID;
|
|
159
|
+
}), textWriterIDs);
|
|
146
160
|
globe.DrawRender();
|
|
147
|
-
}
|
|
161
|
+
};
|
|
148
162
|
/**
|
|
149
163
|
* @method updateCentersColor @param { Array < { centerID, rgba: [4 numbers] } >} centerColors
|
|
150
164
|
*/
|
|
151
|
-
updateCentersColor
|
|
165
|
+
RangeRings.prototype.updateCentersColor = function (centerColors, _a) {
|
|
166
|
+
var _b = _a === void 0 ? {} : _a, _c = _b.textWriterIDs, textWriterIDs = _c === void 0 ? [] : _c;
|
|
152
167
|
// Algorithm
|
|
153
168
|
/**
|
|
154
169
|
* 1. ask centerRingAccount for existing rings COLOR KEYS
|
|
@@ -156,22 +171,27 @@ class RangeRings {
|
|
|
156
171
|
* 3. update buffer orchestators
|
|
157
172
|
*/
|
|
158
173
|
this._ringAccount.updateCentersColor(centerColors);
|
|
159
|
-
|
|
160
|
-
for (
|
|
161
|
-
|
|
174
|
+
var _d = this, globe = _d.globe, bufferOrchestrator = _d.bufferOrchestrator, bufferManagersCompMap = _d.bufferManagersCompMap, paddingBufferOrchestrator = _d.paddingBufferOrchestrator, bufferManagersCompMapPadding = _d.bufferManagersCompMapPadding;
|
|
175
|
+
for (var _i = 0, centerColors_1 = centerColors; _i < centerColors_1.length; _i++) {
|
|
176
|
+
var centerID = centerColors_1[_i].centerID;
|
|
177
|
+
var datas = this.__reconstructCentralProperties(centerID);
|
|
162
178
|
bufferOrchestrator.updateBulk(datas, bufferManagersCompMap, ["rgba", "rgbaMercator"]);
|
|
163
|
-
|
|
179
|
+
var paddingDatas = this.__reconstructCentralPaddingProperties(centerID);
|
|
164
180
|
paddingBufferOrchestrator.updateBulk(paddingDatas, bufferManagersCompMapPadding, ["rgba"]);
|
|
165
181
|
}
|
|
166
|
-
this.__contextTextWriterUpdate(centerColors.map((
|
|
182
|
+
this.__contextTextWriterUpdate(centerColors.map(function (_a) {
|
|
183
|
+
var centerID = _a.centerID;
|
|
184
|
+
return centerID;
|
|
185
|
+
}), textWriterIDs);
|
|
167
186
|
globe.DrawRender();
|
|
168
|
-
}
|
|
187
|
+
};
|
|
169
188
|
/**
|
|
170
189
|
*
|
|
171
190
|
* @method updateCentersHide @param { Array < { centerID, hide, textHide } >} centerHides
|
|
172
191
|
*/
|
|
173
|
-
updateCentersHide
|
|
174
|
-
var
|
|
192
|
+
RangeRings.prototype.updateCentersHide = function (centerHides, _a) {
|
|
193
|
+
var _b;
|
|
194
|
+
var _c = _a === void 0 ? {} : _a, _d = _c.textWriterIDs, textWriterIDs = _d === void 0 ? [] : _d;
|
|
175
195
|
// Algorithm
|
|
176
196
|
/**
|
|
177
197
|
* Simple
|
|
@@ -180,17 +200,21 @@ class RangeRings {
|
|
|
180
200
|
* 3. update color buffer
|
|
181
201
|
* */
|
|
182
202
|
this._ringAccount.updateCentersHide(centerHides);
|
|
183
|
-
|
|
184
|
-
for (
|
|
185
|
-
|
|
203
|
+
var _e = this, globe = _e.globe, bufferOrchestrator = _e.bufferOrchestrator, bufferManagersCompMap = _e.bufferManagersCompMap, paddingBufferOrchestrator = _e.paddingBufferOrchestrator, bufferManagersCompMapPadding = _e.bufferManagersCompMapPadding;
|
|
204
|
+
for (var _i = 0, centerHides_1 = centerHides; _i < centerHides_1.length; _i++) {
|
|
205
|
+
var centerID = centerHides_1[_i].centerID;
|
|
206
|
+
var datas = this.__reconstructCentralProperties(centerID);
|
|
186
207
|
bufferOrchestrator.updateBulk(datas, bufferManagersCompMap, ["rgba", "rgbaMercator"]);
|
|
187
|
-
|
|
208
|
+
var paddingDatas0 = this.__reconstructCentralRings(centerID);
|
|
188
209
|
bufferOrchestrator.updateBulk(paddingDatas0, bufferManagersCompMap, ["radius3dsmall", "centerCoords2dflatForPadding"]);
|
|
189
|
-
|
|
210
|
+
var paddingDatas = this.__reconstructCentralPaddingProperties(centerID);
|
|
190
211
|
paddingBufferOrchestrator.updateBulk(paddingDatas, bufferManagersCompMapPadding, ["rgba"]);
|
|
191
212
|
}
|
|
192
|
-
(
|
|
193
|
-
this.__contextTextWriterUpdate(centerHides.map((
|
|
213
|
+
(_b = this.paddingTextPlugin) === null || _b === void 0 ? void 0 : _b.updateCentersHide(centerHides);
|
|
214
|
+
this.__contextTextWriterUpdate(centerHides.map(function (_a) {
|
|
215
|
+
var centerID = _a.centerID;
|
|
216
|
+
return centerID;
|
|
217
|
+
}), textWriterIDs);
|
|
194
218
|
globe.DrawRender();
|
|
195
219
|
/**
|
|
196
220
|
* Complicated
|
|
@@ -198,43 +222,52 @@ class RangeRings {
|
|
|
198
222
|
* 2. delete from buffer orchestators
|
|
199
223
|
* 3. mark centers as hidden
|
|
200
224
|
*/
|
|
201
|
-
}
|
|
225
|
+
};
|
|
202
226
|
/**
|
|
203
227
|
* @param {Array<string>} textWriterIDs textWritersMap keys to be used for writing text.
|
|
204
228
|
* @param {Array<string>} itemKeys if empty, all texts will be updated. Use {@link ringKeyMethod} method to get keys
|
|
205
229
|
*/
|
|
206
|
-
updateText
|
|
207
|
-
|
|
230
|
+
RangeRings.prototype.updateText = function (textWriterIDs, itemKeys) {
|
|
231
|
+
var _this = this;
|
|
232
|
+
if (textWriterIDs === void 0) { textWriterIDs = []; }
|
|
233
|
+
if (itemKeys === void 0) { itemKeys = null; }
|
|
234
|
+
var textWritersMap = textWriterGetOrThrow(this._textWritersMap, textWriterIDs);
|
|
208
235
|
if (itemKeys === null) {
|
|
209
236
|
this._ringAccount.updateAllText(textWritersMap, this._textDataPreAdaptor);
|
|
210
237
|
this.globe.DrawRender();
|
|
211
238
|
}
|
|
212
239
|
else {
|
|
213
|
-
itemKeys.forEach((key)
|
|
214
|
-
|
|
240
|
+
itemKeys.forEach(function (key) {
|
|
241
|
+
var item = _this._ringAccount.getCenter(key);
|
|
215
242
|
if (item === undefined)
|
|
216
243
|
throw new Error("Center not found");
|
|
217
|
-
|
|
218
|
-
textWritersMap.forEach((textWriter)
|
|
244
|
+
var textData = _this._textDataPreAdaptor(item);
|
|
245
|
+
textWritersMap.forEach(function (textWriter) { return textWriter.insertText(textData); });
|
|
219
246
|
});
|
|
220
247
|
}
|
|
221
248
|
this.globe.DrawRender();
|
|
222
|
-
}
|
|
249
|
+
};
|
|
223
250
|
/**
|
|
224
251
|
* @method removeCenters @param { Array < { centerID } >} centerIDs
|
|
225
252
|
*/
|
|
226
|
-
removeCenters(centerIDs) {
|
|
253
|
+
RangeRings.prototype.removeCenters = function (centerIDs) {
|
|
227
254
|
var _a;
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
255
|
+
var _b = this, globe = _b.globe, bufferOrchestrator = _b.bufferOrchestrator, bufferManagersCompMap = _b.bufferManagersCompMap, paddingBufferOrchestrator = _b.paddingBufferOrchestrator, bufferManagersCompMapPadding = _b.bufferManagersCompMapPadding, _ringAccount = _b._ringAccount;
|
|
256
|
+
var _loop_1 = function (centerID) {
|
|
257
|
+
var existingKeys = _ringAccount.ringKeys(centerID);
|
|
231
258
|
if (existingKeys.length) {
|
|
232
259
|
bufferOrchestrator.deleteBulk(existingKeys, bufferManagersCompMap);
|
|
233
|
-
|
|
260
|
+
this_1._textWritersMap.forEach(function (textWriter) { return textWriter.deleteTextBulk(existingKeys); });
|
|
234
261
|
}
|
|
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);
|
|
235
267
|
}
|
|
236
|
-
for (
|
|
237
|
-
|
|
268
|
+
for (var _c = 0, centerIDs_2 = centerIDs; _c < centerIDs_2.length; _c++) {
|
|
269
|
+
var centerID = centerIDs_2[_c];
|
|
270
|
+
var paddingKeys = _ringAccount.ringBigPaddingKeys(centerID);
|
|
238
271
|
if (paddingKeys.length) {
|
|
239
272
|
paddingBufferOrchestrator.deleteBulk(paddingKeys, bufferManagersCompMapPadding);
|
|
240
273
|
}
|
|
@@ -242,139 +275,142 @@ class RangeRings {
|
|
|
242
275
|
(_a = this.paddingTextPlugin) === null || _a === void 0 ? void 0 : _a.removeCenters(centerIDs);
|
|
243
276
|
this._ringAccount.removeCenters(centerIDs);
|
|
244
277
|
globe.DrawRender();
|
|
245
|
-
}
|
|
278
|
+
};
|
|
246
279
|
/**
|
|
247
280
|
* @method setOpacity @param { number } opacity
|
|
248
281
|
*/
|
|
249
|
-
setOpacity(opacity) {
|
|
282
|
+
RangeRings.prototype.setOpacity = function (opacity) {
|
|
250
283
|
var _a;
|
|
251
284
|
(0, typecheck_1.opacityCheck)(opacity);
|
|
252
285
|
this._opacity = opacity;
|
|
253
286
|
(_a = this.paddingTextPlugin) === null || _a === void 0 ? void 0 : _a.setOpacity(opacity);
|
|
254
|
-
this._textWritersMap.forEach((writer)
|
|
287
|
+
this._textWritersMap.forEach(function (writer) { return writer.setOpacity(opacity); });
|
|
255
288
|
this.globe.DrawRender();
|
|
256
|
-
}
|
|
289
|
+
};
|
|
257
290
|
/**
|
|
258
291
|
* @method setOneDegreePaddingOn // performance consuming, might be removed
|
|
259
292
|
*/
|
|
260
|
-
setOneDegreePaddingOn(isOneDegreePaddingOn) {
|
|
293
|
+
RangeRings.prototype.setOneDegreePaddingOn = function (isOneDegreePaddingOn) {
|
|
261
294
|
if (typeof isOneDegreePaddingOn !== "boolean")
|
|
262
295
|
throw new Error("Invalid value for one degree padding");
|
|
263
296
|
if (this._oneDegreePadding === isOneDegreePaddingOn)
|
|
264
297
|
return;
|
|
265
298
|
this._oneDegreePadding = isOneDegreePaddingOn;
|
|
266
299
|
this.globe.DrawRender();
|
|
267
|
-
}
|
|
268
|
-
setZAlphaOnDegreePadding(zAlphaOnDegreePadding) {
|
|
300
|
+
};
|
|
301
|
+
RangeRings.prototype.setZAlphaOnDegreePadding = function (zAlphaOnDegreePadding) {
|
|
269
302
|
if (zAlphaOnDegreePadding !== 0 && zAlphaOnDegreePadding !== 1)
|
|
270
303
|
throw new Error("Invalid value for zAlphaOnDegreePadding");
|
|
271
304
|
if (this._zAlphaOnDegreePadding === zAlphaOnDegreePadding)
|
|
272
305
|
return;
|
|
273
306
|
this._zAlphaOnDegreePadding = zAlphaOnDegreePadding;
|
|
274
307
|
this.globe.DrawRender();
|
|
275
|
-
}
|
|
308
|
+
};
|
|
276
309
|
// PRIVATE METHODS
|
|
277
|
-
_initPrograms() {
|
|
278
|
-
|
|
310
|
+
RangeRings.prototype._initPrograms = function () {
|
|
311
|
+
var globe = this.globe;
|
|
279
312
|
this._circleProgram2D = circle_accurate_flat_1.CircleCache.get(globe);
|
|
280
313
|
this._circleProgram3D = circle_accurate_3d_1.CircleCache.get(globe);
|
|
281
314
|
this._padding2dProgram = lines_color_instanced_flat_1.LinesColorInstancedFlatCache.get(globe);
|
|
282
315
|
this._padding3dProgram = degree_padding_around_circle_3d_1.CirclePadding3DCache.get(globe);
|
|
283
316
|
this._lineOnGlobe_bigPadding = naive_accurate_flexible_1.LineOnGlobeCache.get(globe);
|
|
284
|
-
}
|
|
285
|
-
_initBufferManagers() {
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
317
|
+
};
|
|
318
|
+
RangeRings.prototype._initBufferManagers = function () {
|
|
319
|
+
var _a, _b, _c, _d;
|
|
320
|
+
var _this = this;
|
|
321
|
+
var gl = this.gl;
|
|
322
|
+
var initialCapacity = 10;
|
|
323
|
+
var bufferType = "DYNAMIC_DRAW";
|
|
289
324
|
// circle2d, circle3d, 1 degree paddings,
|
|
290
325
|
this.bufferOrchestrator = new account_1.BufferOrchestrator({ capacity: initialCapacity });
|
|
291
326
|
this.bufferManagersCompMap = new Map([
|
|
292
327
|
// circle 3D
|
|
293
328
|
["centerCoords3d", {
|
|
294
|
-
'bufferManager': new account_1.BufferManager(gl, 3, { bufferType, initialCapacity }),
|
|
295
|
-
'adaptor': (item)
|
|
329
|
+
'bufferManager': new account_1.BufferManager(gl, 3, { bufferType: bufferType, initialCapacity: initialCapacity }),
|
|
330
|
+
'adaptor': function (item) { return new Float32Array(item.centerCoords3d); },
|
|
296
331
|
}],
|
|
297
332
|
["targetCoords3d", {
|
|
298
|
-
'bufferManager': new account_1.BufferManager(gl, 3, { bufferType, initialCapacity }),
|
|
299
|
-
'adaptor': (item)
|
|
333
|
+
'bufferManager': new account_1.BufferManager(gl, 3, { bufferType: bufferType, initialCapacity: initialCapacity }),
|
|
334
|
+
'adaptor': function (item) { return new Float32Array(item.targetCoords3d); },
|
|
300
335
|
}],
|
|
301
336
|
["rgba", {
|
|
302
|
-
'bufferManager': new account_1.BufferManager(gl, 4, { bufferType, initialCapacity }),
|
|
303
|
-
'adaptor': (item)
|
|
337
|
+
'bufferManager': new account_1.BufferManager(gl, 4, { bufferType: bufferType, initialCapacity: initialCapacity }),
|
|
338
|
+
'adaptor': function (item) { return new Float32Array(item.hide === enum_1.ENUM_HIDE.HIDE ? [0, 0, 0, 0] : item.rgba); }
|
|
304
339
|
}],
|
|
305
340
|
["radius3d", {
|
|
306
|
-
'bufferManager': new account_1.BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
307
|
-
'adaptor': (item)
|
|
341
|
+
'bufferManager': new account_1.BufferManager(gl, 1, { bufferType: bufferType, initialCapacity: initialCapacity }),
|
|
342
|
+
'adaptor': function (item) { return new Float32Array([item.radius]); }
|
|
308
343
|
}],
|
|
309
344
|
["radius3dsmall", {
|
|
310
|
-
'bufferManager': new account_1.BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
311
|
-
'adaptor': (item)
|
|
345
|
+
'bufferManager': new account_1.BufferManager(gl, 1, { bufferType: bufferType, initialCapacity: initialCapacity }),
|
|
346
|
+
'adaptor': function (item) {
|
|
312
347
|
if (item.hide === enum_1.ENUM_HIDE.HIDE_1_DEGREE_PADDINGS)
|
|
313
348
|
return new Float32Array([item.radius]);
|
|
314
349
|
return new Float32Array([item.radius - item.padding / 3]);
|
|
315
350
|
}
|
|
316
351
|
}],
|
|
317
352
|
["circleDashAngle", {
|
|
318
|
-
'bufferManager': new account_1.BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
319
|
-
'adaptor': (item)
|
|
353
|
+
'bufferManager': new account_1.BufferManager(gl, 1, { bufferType: bufferType, initialCapacity: initialCapacity }),
|
|
354
|
+
'adaptor': function (item) { return new Float32Array([1]); },
|
|
320
355
|
}],
|
|
321
356
|
["dashOpacity", {
|
|
322
|
-
'bufferManager': new account_1.BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
323
|
-
'adaptor': (item)
|
|
357
|
+
'bufferManager': new account_1.BufferManager(gl, 1, { bufferType: bufferType, initialCapacity: initialCapacity }),
|
|
358
|
+
'adaptor': function (item) { return new Float32Array([1]); },
|
|
324
359
|
}],
|
|
325
360
|
// circle 2D
|
|
326
361
|
["centerCoords2dflatForPadding", {
|
|
327
|
-
'bufferManager': new account_1.BufferManager(gl, CIRCLE_FLAT_EDGE_COUNT * 2, { bufferType, initialCapacity }),
|
|
328
|
-
'adaptor': (item)
|
|
362
|
+
'bufferManager': new account_1.BufferManager(gl, CIRCLE_FLAT_EDGE_COUNT * 2, { bufferType: bufferType, initialCapacity: initialCapacity }),
|
|
363
|
+
'adaptor': function (item) { return item.centerCoords2dflatForPadding; },
|
|
329
364
|
}],
|
|
330
365
|
["centerCoords2dflat", {
|
|
331
|
-
'bufferManager': new account_1.BufferManager(gl, CIRCLE_FLAT_EDGE_COUNT * 2, { bufferType, initialCapacity }),
|
|
332
|
-
'adaptor': (item)
|
|
366
|
+
'bufferManager': new account_1.BufferManager(gl, CIRCLE_FLAT_EDGE_COUNT * 2, { bufferType: bufferType, initialCapacity: initialCapacity }),
|
|
367
|
+
'adaptor': function (item) { return item.centerCoords2dflat; },
|
|
333
368
|
}],
|
|
334
369
|
["rgbaMercator", {
|
|
335
|
-
'bufferManager': new account_1.BufferManager(gl, 4 * CIRCLE_FLAT_EDGE_COUNT, { bufferType, initialCapacity }),
|
|
336
|
-
'adaptor': (item)
|
|
370
|
+
'bufferManager': new account_1.BufferManager(gl, 4 * CIRCLE_FLAT_EDGE_COUNT, { bufferType: bufferType, initialCapacity: initialCapacity }),
|
|
371
|
+
'adaptor': function (item) { return data_filler_1.populateFloat32Array.fillWithListData(CIRCLE_FLAT_EDGE_COUNT, item.hide === enum_1.ENUM_HIDE.HIDE ? [0, 0, 0, 0] : item.rgba); },
|
|
337
372
|
}],
|
|
338
373
|
["circleDashAngleMercator", {
|
|
339
|
-
'bufferManager': new account_1.BufferManager(gl, CIRCLE_FLAT_EDGE_COUNT, { bufferType, initialCapacity }),
|
|
340
|
-
'adaptor': (item)
|
|
374
|
+
'bufferManager': new account_1.BufferManager(gl, CIRCLE_FLAT_EDGE_COUNT, { bufferType: bufferType, initialCapacity: initialCapacity }),
|
|
375
|
+
'adaptor': function (item) { return data_filler_1.populateFloat32Array.fillFloat32Array(CIRCLE_FLAT_EDGE_COUNT, 1); },
|
|
341
376
|
}],
|
|
342
377
|
["dashOpacityMercator", {
|
|
343
|
-
'bufferManager': new account_1.BufferManager(gl, CIRCLE_FLAT_EDGE_COUNT, { bufferType, initialCapacity }),
|
|
344
|
-
'adaptor': (item)
|
|
378
|
+
'bufferManager': new account_1.BufferManager(gl, CIRCLE_FLAT_EDGE_COUNT, { bufferType: bufferType, initialCapacity: initialCapacity }),
|
|
379
|
+
'adaptor': function (item) { return data_filler_1.populateFloat32Array.fillFloat32Array(CIRCLE_FLAT_EDGE_COUNT, 1); },
|
|
345
380
|
}],
|
|
346
381
|
]);
|
|
347
|
-
|
|
382
|
+
var obj = function (bufferManagerComp, divisor) {
|
|
383
|
+
if (divisor === void 0) { divisor = 1; }
|
|
348
384
|
if (bufferManagerComp === null)
|
|
349
385
|
return null;
|
|
350
|
-
return { 'buffer': bufferManagerComp.bufferManager.buffer, 'stride': 0, 'offset': 0, divisor };
|
|
386
|
+
return { 'buffer': bufferManagerComp.bufferManager.buffer, 'stride': 0, 'offset': 0, divisor: divisor };
|
|
351
387
|
};
|
|
352
|
-
this._circle2DVao = this._circleProgram2D.createVAO(
|
|
353
|
-
this._circle3DVao = this._circleProgram3D.createVAO(
|
|
388
|
+
this._circle2DVao = (_a = this._circleProgram2D).createVAO.apply(_a, ["centerCoords2dflat", "rgbaMercator", "circleDashAngleMercator", "dashOpacityMercator"].map(function (key) { return obj(_this.bufferManagersCompMap.get(key)); }));
|
|
389
|
+
this._circle3DVao = (_b = this._circleProgram3D).createVAO.apply(_b, ["centerCoords3d", "targetCoords3d", "rgba", "circleDashAngle", "dashOpacity"].map(function (key) { return obj(_this.bufferManagersCompMap.get(key)); }));
|
|
354
390
|
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 });
|
|
355
391
|
// PADDING
|
|
356
392
|
// this one needs glue to assosiate rings and their big paddings since the count for center is not fixed
|
|
357
393
|
this.paddingBufferOrchestrator = new account_1.BufferOrchestrator({ capacity: initialCapacity });
|
|
358
394
|
this.bufferManagersCompMapPadding = new Map([
|
|
359
395
|
["circlePoint2d", {
|
|
360
|
-
'bufferManager': new account_1.BufferManager(gl, 2, { bufferType, initialCapacity }),
|
|
361
|
-
'adaptor': (item)
|
|
396
|
+
'bufferManager': new account_1.BufferManager(gl, 2, { bufferType: bufferType, initialCapacity: initialCapacity }),
|
|
397
|
+
'adaptor': function (item) { return item.circlePoint2d; },
|
|
362
398
|
}],
|
|
363
399
|
["paddingPoint2d", {
|
|
364
|
-
'bufferManager': new account_1.BufferManager(gl, 2, { bufferType, initialCapacity }),
|
|
365
|
-
'adaptor': (item)
|
|
400
|
+
'bufferManager': new account_1.BufferManager(gl, 2, { bufferType: bufferType, initialCapacity: initialCapacity }),
|
|
401
|
+
'adaptor': function (item) { return item.paddingPoint2d; },
|
|
366
402
|
}],
|
|
367
403
|
["circlePoint3d", {
|
|
368
|
-
'bufferManager': new account_1.BufferManager(gl, 3, { bufferType, initialCapacity }),
|
|
369
|
-
'adaptor': (item)
|
|
404
|
+
'bufferManager': new account_1.BufferManager(gl, 3, { bufferType: bufferType, initialCapacity: initialCapacity }),
|
|
405
|
+
'adaptor': function (item) { return item.circlePoint3d; }
|
|
370
406
|
}],
|
|
371
407
|
["paddingPoint3d", {
|
|
372
|
-
'bufferManager': new account_1.BufferManager(gl, 3, { bufferType, initialCapacity }),
|
|
373
|
-
'adaptor': (item)
|
|
408
|
+
'bufferManager': new account_1.BufferManager(gl, 3, { bufferType: bufferType, initialCapacity: initialCapacity }),
|
|
409
|
+
'adaptor': function (item) { return item.paddingPoint3d; }
|
|
374
410
|
}],
|
|
375
411
|
["rgba", {
|
|
376
|
-
'bufferManager': new account_1.BufferManager(gl, 4, { bufferType, initialCapacity }),
|
|
377
|
-
'adaptor': (item)
|
|
412
|
+
'bufferManager': new account_1.BufferManager(gl, 4, { bufferType: bufferType, initialCapacity: initialCapacity }),
|
|
413
|
+
'adaptor': function (item) { return new Float32Array(item.rgba); }
|
|
378
414
|
}],
|
|
379
415
|
// ["dashOpacity", {
|
|
380
416
|
// 'bufferManager': new BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
@@ -385,24 +421,26 @@ class RangeRings {
|
|
|
385
421
|
// 'adaptor': (item) => new Float32Array([1]),
|
|
386
422
|
// }],
|
|
387
423
|
]);
|
|
388
|
-
this._bigPadding3dFlatVAO = this._lineOnGlobe_bigPadding.createVAO(
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
424
|
+
this._bigPadding3dFlatVAO = (_c = this._lineOnGlobe_bigPadding).createVAO.apply(_c, ["circlePoint2d", "circlePoint3d", "paddingPoint2d", "paddingPoint3d", null, null, "rgba",].map(function (key) {
|
|
425
|
+
return (key === null) ? null : obj(_this.bufferManagersCompMapPadding.get(key));
|
|
426
|
+
}));
|
|
427
|
+
this._padding3dOneDegreeVao = (_d = this._padding3dProgram).createVAO.apply(_d, ["centerCoords3d", "radius3d", "radius3dsmall", "rgba"].map(function (key) { return obj(_this.bufferManagersCompMap.get(key)); }));
|
|
428
|
+
};
|
|
392
429
|
// IMPLICIT METHODS
|
|
393
|
-
__reconstructCentralRingsBigPaddings(centerID) {
|
|
394
|
-
|
|
395
|
-
|
|
430
|
+
RangeRings.prototype.__reconstructCentralRingsBigPaddings = function (centerID) {
|
|
431
|
+
var globe = this.globe;
|
|
432
|
+
var centerItem = this._ringAccount.getCenter(centerID);
|
|
396
433
|
if (centerItem === undefined)
|
|
397
434
|
throw new Error("Center not found");
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
for (
|
|
402
|
-
|
|
435
|
+
var long = centerItem.long, lat = centerItem.lat, stepAngle = centerItem.stepAngle, rgba = centerItem.rgba, rings = centerItem.rings, _a = centerItem.hide, hide = _a === void 0 ? 0 : _a, _b = centerItem.textHide, textHide = _b === void 0 ? 0 : _b, _c = centerItem.altitude, centerAltitude = _c === void 0 ? 0 : _c;
|
|
436
|
+
var result = [];
|
|
437
|
+
var color = hide === 1 ? new Float32Array([0, 0, 0, 0]) : new Float32Array(rgba);
|
|
438
|
+
for (var _i = 0, rings_1 = rings; _i < rings_1.length; _i++) {
|
|
439
|
+
var _d = rings_1[_i], ringID = _d.ringID, radius = _d.radius, padding = _d.padding, _e = _d.altitude, altitude = _e === void 0 ? centerAltitude : _e;
|
|
440
|
+
var azimuthAngle = 0;
|
|
403
441
|
while (azimuthAngle < 360) {
|
|
404
|
-
|
|
405
|
-
|
|
442
|
+
var circlePoint = globe.Math.FindPointByPolar(long, lat, radius, azimuthAngle); // long lat
|
|
443
|
+
var paddingPoint = globe.Math.FindPointByPolar(long, lat, radius - padding, azimuthAngle); // long lat
|
|
406
444
|
result.push({
|
|
407
445
|
key: (0, ring_account_1.ringBigPaddingKeyMethod)(centerID, ringID, azimuthAngle),
|
|
408
446
|
circlePoint2d: new Float32Array(globe.api_GetMercator2DPoint(circlePoint.long, circlePoint.lat)),
|
|
@@ -410,81 +448,84 @@ class RangeRings {
|
|
|
410
448
|
circlePoint3d: coordOnSphere(circlePoint.long, circlePoint.lat, globe, altitude / 1000),
|
|
411
449
|
paddingPoint3d: coordOnSphere(paddingPoint.long, paddingPoint.lat, globe, altitude / 1000),
|
|
412
450
|
rgba: color,
|
|
413
|
-
hide,
|
|
414
|
-
textHide
|
|
451
|
+
hide: hide,
|
|
452
|
+
textHide: textHide
|
|
415
453
|
});
|
|
416
454
|
azimuthAngle += stepAngle;
|
|
417
455
|
}
|
|
418
456
|
}
|
|
419
457
|
return result;
|
|
420
|
-
}
|
|
421
|
-
__reconstructCentralRings(centerID) {
|
|
422
|
-
|
|
423
|
-
|
|
458
|
+
};
|
|
459
|
+
RangeRings.prototype.__reconstructCentralRings = function (centerID) {
|
|
460
|
+
var globe = this.globe;
|
|
461
|
+
var centerItem = this._ringAccount.getCenter(centerID);
|
|
424
462
|
if (centerItem === undefined)
|
|
425
463
|
throw new Error("Center not found");
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
for (
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
464
|
+
var long = centerItem.long, lat = centerItem.lat, rgba = centerItem.rgba, rings = centerItem.rings, _a = centerItem.hide, hide = _a === void 0 ? 0 : _a, _b = centerItem.textHide, textHide = _b === void 0 ? 0 : _b, _c = centerItem.altitude, centralAltitude = _c === void 0 ? 0 : _c;
|
|
465
|
+
var centerCoords3d = coordOnSphere(long, lat, globe, centralAltitude / 1000);
|
|
466
|
+
var result = [];
|
|
467
|
+
for (var _i = 0, rings_2 = rings; _i < rings_2.length; _i++) {
|
|
468
|
+
var _d = rings_2[_i], ringID = _d.ringID, radius = _d.radius, padding = _d.padding, __identity__ = _d.__identity__, _e = _d.altitude, altitude = _e === void 0 ? centralAltitude : _e;
|
|
469
|
+
var key = __identity__;
|
|
470
|
+
var centerCoords2dflat = (0, circle_accurate_flat_1.centerCoords2dflatDataCreatorWithRadius)(globe, long, lat, radius, { edgeCount: CIRCLE_FLAT_EDGE_COUNT });
|
|
471
|
+
var radiusPadding = hide === enum_1.ENUM_HIDE.HIDE_1_DEGREE_PADDINGS ? radius : radius - padding / 3;
|
|
472
|
+
var targetPoint = globe.Math.FindPointByPolar(long, lat, radius, 0); // long lat
|
|
473
|
+
var targetCoords3d = coordOnSphere(targetPoint.long, targetPoint.lat, globe, altitude / 1000);
|
|
474
|
+
var centerCoords2dflatForPadding = (0, circle_accurate_flat_1.centerCoords2dflatDataCreatorWithRadius)(globe, long, lat, radiusPadding, { edgeCount: CIRCLE_FLAT_EDGE_COUNT });
|
|
436
475
|
result.push({
|
|
437
|
-
key,
|
|
438
|
-
centerCoords3d,
|
|
439
|
-
targetCoords3d,
|
|
440
|
-
centerCoords2dflat,
|
|
441
|
-
radius,
|
|
442
|
-
padding,
|
|
443
|
-
rgba,
|
|
444
|
-
centerCoords2dflatForPadding,
|
|
445
|
-
hide,
|
|
446
|
-
textHide
|
|
476
|
+
key: key,
|
|
477
|
+
centerCoords3d: centerCoords3d,
|
|
478
|
+
targetCoords3d: targetCoords3d,
|
|
479
|
+
centerCoords2dflat: centerCoords2dflat,
|
|
480
|
+
radius: radius,
|
|
481
|
+
padding: padding,
|
|
482
|
+
rgba: rgba,
|
|
483
|
+
centerCoords2dflatForPadding: centerCoords2dflatForPadding,
|
|
484
|
+
hide: hide,
|
|
485
|
+
textHide: textHide
|
|
447
486
|
});
|
|
448
487
|
}
|
|
449
488
|
return result;
|
|
450
|
-
}
|
|
451
|
-
__reconstructCentralPaddingProperties(centerID) {
|
|
452
|
-
|
|
489
|
+
};
|
|
490
|
+
RangeRings.prototype.__reconstructCentralPaddingProperties = function (centerID) {
|
|
491
|
+
var centerItem = this._ringAccount.getCenter(centerID);
|
|
453
492
|
if (centerItem === undefined)
|
|
454
493
|
throw new Error("Center not found");
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
for (
|
|
458
|
-
|
|
494
|
+
var stepAngle = centerItem.stepAngle, rgba = centerItem.rgba, rings = centerItem.rings, _a = centerItem.hide, hide = _a === void 0 ? 0 : _a, _b = centerItem.textHide, textHide = _b === void 0 ? 0 : _b;
|
|
495
|
+
var result = [];
|
|
496
|
+
for (var _i = 0, rings_3 = rings; _i < rings_3.length; _i++) {
|
|
497
|
+
var ringID = rings_3[_i].ringID;
|
|
498
|
+
var angle = 0;
|
|
459
499
|
while (angle < 360) {
|
|
460
500
|
result.push({
|
|
461
501
|
key: (0, ring_account_1.ringBigPaddingKeyMethod)(centerID, ringID, angle),
|
|
462
502
|
rgba: hide === 1 ? new Float32Array([0, 0, 0, 0]) : rgba,
|
|
463
|
-
textHide
|
|
503
|
+
textHide: textHide
|
|
464
504
|
});
|
|
465
505
|
angle += stepAngle;
|
|
466
506
|
}
|
|
467
507
|
}
|
|
468
508
|
return result;
|
|
469
|
-
}
|
|
470
|
-
__reconstructCentralProperties(centerID) {
|
|
471
|
-
|
|
509
|
+
};
|
|
510
|
+
RangeRings.prototype.__reconstructCentralProperties = function (centerID) {
|
|
511
|
+
var centerItem = this._ringAccount.getCenter(centerID);
|
|
472
512
|
if (centerItem === undefined)
|
|
473
513
|
throw new Error("Center not found");
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
for (
|
|
477
|
-
|
|
514
|
+
var rgba = centerItem.rgba, rings = centerItem.rings, _a = centerItem.hide, hide = _a === void 0 ? 0 : _a, _b = centerItem.textHide, textHide = _b === void 0 ? 0 : _b;
|
|
515
|
+
var result = [];
|
|
516
|
+
for (var _i = 0, rings_4 = rings; _i < rings_4.length; _i++) {
|
|
517
|
+
var _c = rings_4[_i], ringID = _c.ringID, __identity__ = _c.__identity__;
|
|
518
|
+
var key = __identity__;
|
|
478
519
|
result.push({
|
|
479
|
-
key,
|
|
520
|
+
key: key,
|
|
480
521
|
rgba: hide === enum_1.ENUM_HIDE.HIDE ? new Float32Array([0, 0, 0, 0]) : rgba,
|
|
481
|
-
textHide
|
|
522
|
+
textHide: textHide
|
|
482
523
|
});
|
|
483
524
|
}
|
|
484
525
|
return result;
|
|
485
|
-
}
|
|
526
|
+
};
|
|
486
527
|
// GLOBE API
|
|
487
|
-
init(globe, gl) {
|
|
528
|
+
RangeRings.prototype.init = function (globe, gl) {
|
|
488
529
|
this.globe = globe;
|
|
489
530
|
this.gl = gl;
|
|
490
531
|
this._initPrograms();
|
|
@@ -493,11 +534,11 @@ class RangeRings {
|
|
|
493
534
|
this.paddingTextPlugin = new rangeringangletext_1.default(globe, this.id + "text", { style: this._numbersStyle, opacity: this._opacity });
|
|
494
535
|
delete this._numbersStyle;
|
|
495
536
|
}
|
|
496
|
-
}
|
|
497
|
-
draw3D() {
|
|
498
|
-
|
|
537
|
+
};
|
|
538
|
+
RangeRings.prototype.draw3D = function () {
|
|
539
|
+
var _a = this, globe = _a.globe, gl = _a.gl, _circleProgram2D = _a._circleProgram2D, _circleProgram3D = _a._circleProgram3D, _padding2dProgram = _a._padding2dProgram, _padding3dProgram = _a._padding3dProgram, _lineOnGlobe_bigPadding = _a._lineOnGlobe_bigPadding, _circle2DVao = _a._circle2DVao, _circle3DVao = _a._circle3DVao, _oneDegree2DPaddingVao = _a._oneDegree2DPaddingVao, _padding3dOneDegreeVao = _a._padding3dOneDegreeVao, _bigPadding3dFlatVAO = _a._bigPadding3dFlatVAO, bufferOrchestrator = _a.bufferOrchestrator, paddingBufferOrchestrator = _a.paddingBufferOrchestrator, _opacity = _a._opacity, _oneDegreePadding = _a._oneDegreePadding, _zAlphaOnDegreePadding = _a._zAlphaOnDegreePadding;
|
|
499
540
|
gl.disable(gl.DEPTH_TEST);
|
|
500
|
-
|
|
541
|
+
var is3D = globe.api_GetCurrentGeometry() === 0;
|
|
501
542
|
// const lod = globe.api_GetCurrentLOD();
|
|
502
543
|
if (is3D) {
|
|
503
544
|
_circleProgram3D.draw(_circle3DVao, bufferOrchestrator.length, _opacity);
|
|
@@ -510,18 +551,24 @@ class RangeRings {
|
|
|
510
551
|
if (_oneDegreePadding)
|
|
511
552
|
_padding2dProgram.draw(_oneDegree2DPaddingVao, bufferOrchestrator.length * CIRCLE_FLAT_EDGE_COUNT, _opacity, _zAlphaOnDegreePadding);
|
|
512
553
|
}
|
|
513
|
-
|
|
554
|
+
var drawOptions = { drawRange: { first: 0, count: paddingBufferOrchestrator.length } };
|
|
514
555
|
_lineOnGlobe_bigPadding.draw(_bigPadding3dFlatVAO, drawOptions, _opacity);
|
|
515
|
-
this._textWritersMap.forEach((textWriter)
|
|
556
|
+
this._textWritersMap.forEach(function (textWriter) { return textWriter.draw(); });
|
|
516
557
|
gl.enable(gl.DEPTH_TEST);
|
|
517
|
-
}
|
|
518
|
-
free() {
|
|
558
|
+
};
|
|
559
|
+
RangeRings.prototype.free = function () {
|
|
519
560
|
var _a;
|
|
520
561
|
if (this._isFreed)
|
|
521
562
|
return;
|
|
522
|
-
|
|
523
|
-
this.bufferManagersCompMap.forEach((
|
|
524
|
-
|
|
563
|
+
var globe = this.globe;
|
|
564
|
+
this.bufferManagersCompMap.forEach(function (_a) {
|
|
565
|
+
var bufferManager = _a.bufferManager;
|
|
566
|
+
return bufferManager.free();
|
|
567
|
+
});
|
|
568
|
+
this.bufferManagersCompMapPadding.forEach(function (_a) {
|
|
569
|
+
var bufferManager = _a.bufferManager;
|
|
570
|
+
return bufferManager.free();
|
|
571
|
+
});
|
|
525
572
|
// delete vaos
|
|
526
573
|
this.gl.deleteVertexArray(this._circle2DVao);
|
|
527
574
|
this.gl.deleteVertexArray(this._circle3DVao);
|
|
@@ -541,9 +588,11 @@ class RangeRings {
|
|
|
541
588
|
this._lineOnGlobe_bigPadding = null;
|
|
542
589
|
(_a = this.paddingTextPlugin) === null || _a === void 0 ? void 0 : _a.free();
|
|
543
590
|
this._isFreed = true;
|
|
544
|
-
}
|
|
545
|
-
__contextTextWriterUpdate(centerIDs, textWriterIDs
|
|
546
|
-
|
|
591
|
+
};
|
|
592
|
+
RangeRings.prototype.__contextTextWriterUpdate = function (centerIDs, textWriterIDs) {
|
|
593
|
+
var _this = this;
|
|
594
|
+
if (textWriterIDs === void 0) { textWriterIDs = null; }
|
|
595
|
+
var textWriters = null;
|
|
547
596
|
if (textWriterIDs === null) {
|
|
548
597
|
textWriters = Array.from(this._textWritersMap.values());
|
|
549
598
|
}
|
|
@@ -553,8 +602,9 @@ class RangeRings {
|
|
|
553
602
|
else {
|
|
554
603
|
textWriters = textWriterGetOrThrow(this._textWritersMap, textWriterIDs);
|
|
555
604
|
}
|
|
556
|
-
centerIDs.forEach((centerID)
|
|
557
|
-
}
|
|
558
|
-
|
|
605
|
+
centerIDs.forEach(function (centerID) { _this._ringAccount.textUpdate(centerID, textWriters, _this._textDataPreAdaptor); });
|
|
606
|
+
};
|
|
607
|
+
return RangeRings;
|
|
608
|
+
}());
|
|
559
609
|
exports.RangeRings = RangeRings;
|
|
560
|
-
|
|
610
|
+
var textWriterGetOrThrow = (0, get_1.mapGetOrThrow)("textWriterIDs is invalid");
|