@pirireis/webglobeplugins 0.9.11 → 0.9.13

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