@pirireis/webglobeplugins 0.9.11 → 0.9.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/Math/angle-calculation.js +8 -8
  2. package/Math/arc.js +18 -18
  3. package/Math/bounds/line-bbox.js +78 -80
  4. package/Math/constants.js +3 -3
  5. package/Math/juction/arc-plane.js +23 -23
  6. package/Math/juction/line-sphere.js +11 -11
  7. package/Math/juction/plane-plane.js +11 -11
  8. package/Math/line.js +14 -16
  9. package/Math/methods.js +65 -70
  10. package/Math/plane.js +16 -18
  11. package/Math/quaternion.js +45 -49
  12. package/Math/utils.js +2 -2
  13. package/Math/vec3.js +42 -45
  14. package/algorithms/search-binary.js +4 -4
  15. package/altitude-locator/draw-subset-obj.js +7 -8
  16. package/altitude-locator/plugin.js +98 -114
  17. package/arrowfield/adaptor.js +3 -4
  18. package/arrowfield/index.js +2 -2
  19. package/arrowfield/plugin.js +62 -65
  20. package/bearing-line/index.js +1 -1
  21. package/bearing-line/plugin.js +200 -226
  22. package/circle-line-chain/chain-list-map.js +82 -88
  23. package/circle-line-chain/plugin.js +134 -165
  24. package/circle-line-chain/util.js +1 -1
  25. package/compass-rose/compass-rose-padding-flat.js +108 -133
  26. package/compass-rose/compass-text-writer.js +62 -70
  27. package/compass-rose/index.js +2 -2
  28. package/compassrose/compassrose.js +46 -50
  29. package/compassrose/index.js +1 -1
  30. package/heatwave/index.js +2 -2
  31. package/heatwave/isobar/objectarraylabels.js +44 -48
  32. package/heatwave/isobar/plugin.js +104 -123
  33. package/heatwave/isobar/quadtreecontours.js +76 -92
  34. package/heatwave/plugins/heatwaveglobeshell.js +69 -87
  35. package/index.js +11 -11
  36. package/package.json +1 -1
  37. package/partialrings/buffer-manager.js +32 -64
  38. package/partialrings/index.js +1 -1
  39. package/partialrings/plugin.js +48 -84
  40. package/partialrings/program.js +136 -47
  41. package/pin/pin-object-array.js +83 -86
  42. package/pin/pin-point-totem.js +21 -22
  43. package/point-heat-map/adaptors/timetracksplugin-format-to-this.js +10 -10
  44. package/point-heat-map/plugin-webworker.js +40 -45
  45. package/point-heat-map/point-to-heat-map-flow.js +40 -42
  46. package/point-tracks/key-methods.js +1 -1
  47. package/point-tracks/plugin.js +137 -162
  48. package/programs/arrowfield/index.js +1 -1
  49. package/programs/arrowfield/logic.js +170 -62
  50. package/programs/arrowfield/object.js +33 -35
  51. package/programs/data2legend/density-to-legend.js +45 -21
  52. package/programs/data2legend/point-to-density-texture.js +52 -27
  53. package/programs/float2legendwithratio/index.js +1 -1
  54. package/programs/float2legendwithratio/logic.js +88 -42
  55. package/programs/float2legendwithratio/object.js +43 -46
  56. package/programs/globe-util/is-globe-moved.js +10 -11
  57. package/programs/globeshell/index.js +1 -1
  58. package/programs/globeshell/wiggle/index.js +1 -1
  59. package/programs/globeshell/wiggle/logic.js +191 -98
  60. package/programs/globeshell/wiggle/object.js +33 -35
  61. package/programs/helpers/blender/program.js +36 -19
  62. package/programs/helpers/fadeaway/index.js +1 -1
  63. package/programs/helpers/fadeaway/logic.js +35 -13
  64. package/programs/helpers/fadeaway/object.js +9 -10
  65. package/programs/helpers/index.js +1 -1
  66. package/programs/index.js +8 -8
  67. package/programs/line-on-globe/angled-line.js +91 -32
  68. package/programs/line-on-globe/circle-accurate-3d.js +82 -32
  69. package/programs/line-on-globe/circle-accurate-flat.js +108 -50
  70. package/programs/line-on-globe/circle-accurate.js +103 -33
  71. package/programs/line-on-globe/circle.js +97 -32
  72. package/programs/line-on-globe/degree-padding-around-circle-3d.js +83 -33
  73. package/programs/line-on-globe/lines-color-instanced-flat.js +79 -34
  74. package/programs/line-on-globe/linestrip.js +111 -45
  75. package/programs/line-on-globe/naive-accurate-flexible.js +120 -50
  76. package/programs/line-on-globe/to-the-surface.js +58 -29
  77. package/programs/line-on-globe/util.js +1 -1
  78. package/programs/picking/pickable-renderer.js +117 -33
  79. package/programs/point-on-globe/element-globe-surface-glow.js +78 -38
  80. package/programs/point-on-globe/element-point-glow.js +103 -35
  81. package/programs/point-on-globe/square-pixel-point.js +76 -27
  82. package/programs/programcache.js +13 -13
  83. package/programs/rings/distancering/circleflatprogram.js +63 -21
  84. package/programs/rings/distancering/circlepaddingfreeangleprogram.js +156 -145
  85. package/programs/rings/distancering/circlepaddysharedbuffer.js +121 -197
  86. package/programs/rings/distancering/index.js +4 -4
  87. package/programs/rings/distancering/paddyflatprogram.js +73 -20
  88. package/programs/rings/distancering/paddyflatprogram2d.js +75 -22
  89. package/programs/rings/distancering/paddyflatprogram3d.js +73 -20
  90. package/programs/rings/partial-ring/piece-of-pie.js +137 -35
  91. package/programs/totems/camerauniformblock.js +64 -51
  92. package/programs/totems/canvas-webglobe-info.js +48 -40
  93. package/programs/totems/gpu-selection-uniform-block.js +44 -40
  94. package/programs/totems/index.js +1 -1
  95. package/programs/two-d/pixel-padding-for-compass.js +90 -29
  96. package/programs/util.js +6 -7
  97. package/programs/vectorfields/index.js +1 -1
  98. package/programs/vectorfields/logics/drawrectangleparticles.js +70 -29
  99. package/programs/vectorfields/logics/index.js +3 -3
  100. package/programs/vectorfields/logics/pixelbased.js +91 -35
  101. package/programs/vectorfields/logics/ubo.js +31 -25
  102. package/programs/vectorfields/pingpongbuffermanager.js +30 -34
  103. package/rangerings/index.js +4 -4
  104. package/rangerings/plugin.js +202 -258
  105. package/rangerings/rangeringangletext.js +108 -120
  106. package/rangerings/ring-account.js +52 -69
  107. package/shaders/fragment-toy/firework.js +55 -1
  108. package/shaders/fragment-toy/singularity.js +55 -1
  109. package/timetracks/adaptors-line-strip.js +26 -37
  110. package/timetracks/adaptors.js +47 -61
  111. package/timetracks/index.js +4 -4
  112. package/timetracks/plugin-line-strip.js +63 -71
  113. package/timetracks/plugin.js +69 -77
  114. package/timetracks/program-line-strip.js +296 -103
  115. package/timetracks/program.js +419 -113
  116. package/timetracks/programpoint-line-strip.js +97 -44
  117. package/timetracks/programpoint.js +90 -44
  118. package/util/account/bufferoffsetmanager.js +72 -95
  119. package/util/account/index.js +1 -1
  120. package/util/account/single-attribute-buffer-management/buffer-manager.js +44 -44
  121. package/util/account/single-attribute-buffer-management/buffer-orchestrator.js +68 -94
  122. package/util/account/single-attribute-buffer-management/index.js +3 -3
  123. package/util/account/single-attribute-buffer-management/object-store.js +29 -30
  124. package/util/account/util.js +2 -4
  125. package/util/algorithms/search-binary.js +4 -4
  126. package/util/check/get.js +5 -5
  127. package/util/check/typecheck.js +13 -15
  128. package/util/geometry/index.js +9 -11
  129. package/util/gl-util/buffer/attribute-loader.js +8 -20
  130. package/util/gl-util/buffer/index.js +1 -1
  131. package/util/gl-util/draw-options/methods.js +8 -9
  132. package/util/gl-util/uniform-block/manager.js +67 -67
  133. package/util/heatwavedatamanager/datamanager.js +56 -116
  134. package/util/heatwavedatamanager/index.js +2 -2
  135. package/util/heatwavedatamanager/pointcoordinatesdatacalculator.js +37 -40
  136. package/util/heatwavedatamanager/pointcoordsmeta.js +9 -10
  137. package/util/index.js +6 -6
  138. package/util/interpolation/timetrack/index.js +1 -1
  139. package/util/interpolation/timetrack/timetrack-interpolator.js +27 -29
  140. package/util/interpolation/timetrack/web-worker-str.js +179 -1
  141. package/util/interpolation/timetrack/web-worker.js +4 -4
  142. package/util/jshelpers/data-filler.js +7 -7
  143. package/util/jshelpers/timefilters.js +7 -7
  144. package/util/picking/fence.js +7 -7
  145. package/util/picking/picker-displayer.js +46 -52
  146. package/util/programs/draw-texture-on-canvas.js +39 -21
  147. package/util/programs/shapesonglobe.js +104 -64
  148. package/util/programs/supersampletotextures.js +45 -39
  149. package/util/programs/texturetoglobe.js +98 -48
  150. package/util/shaderfunctions/geometrytransformations.js +322 -27
  151. package/util/shaderfunctions/nodata.js +7 -1
  152. package/util/shaderfunctions/noisefunctions.js +39 -9
  153. package/util/surface-line-data/arcs-to-cuts.js +20 -23
  154. package/util/webglobe/rasteroverlay.js +35 -37
  155. package/util/webglobjectbuilders.js +55 -60
  156. package/util/webglobjectbuilders1.js +48 -49
  157. package/waveparticles/adaptor.js +6 -7
  158. package/waveparticles/index.js +2 -2
  159. package/waveparticles/plugin.js +79 -84
  160. package/wind/imagetovectorfieldandmagnitude.js +15 -15
  161. package/wind/index.js +4 -4
  162. package/wind/plugin.js +453 -251
  163. package/wind/vectorfieldimage.js +5 -5
  164. package/write-text/attached-text-writer.js +46 -48
  165. package/write-text/context-text.js +51 -58
  166. package/write-text/context-text3.js +69 -74
@@ -1,18 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CircleLineChainPlugin = void 0;
4
- var naive_accurate_flexible_1 = require("../programs/line-on-globe/naive-accurate-flexible");
5
- var circle_accurate_flat_1 = require("../programs/line-on-globe/circle-accurate-flat");
6
- var circle_accurate_3d_1 = require("../programs/line-on-globe/circle-accurate-3d");
7
- var account_1 = require("../util/account");
8
- var chain_list_map_1 = require("./chain-list-map");
9
- var get_1 = require("../util/check/get");
10
- var util_1 = require("./util");
11
- var data_filler_1 = require("../util/jshelpers/data-filler");
12
- var context_text3_1 = require("../write-text/context-text3");
13
- var typecheck_1 = require("../util/check/typecheck");
14
- var attribute_loader_1 = require("../util/gl-util/buffer/attribute-loader");
15
- var index_1 = require("../util/geometry/index");
4
+ const naive_accurate_flexible_1 = require("../programs/line-on-globe/naive-accurate-flexible");
5
+ const circle_accurate_flat_1 = require("../programs/line-on-globe/circle-accurate-flat");
6
+ const circle_accurate_3d_1 = require("../programs/line-on-globe/circle-accurate-3d");
7
+ const account_1 = require("../util/account");
8
+ const chain_list_map_1 = require("./chain-list-map");
9
+ const get_1 = require("../util/check/get");
10
+ const util_1 = require("./util");
11
+ const data_filler_1 = require("../util/jshelpers/data-filler");
12
+ const context_text3_1 = require("../write-text/context-text3");
13
+ const typecheck_1 = require("../util/check/typecheck");
14
+ const attribute_loader_1 = require("../util/gl-util/buffer/attribute-loader");
15
+ const index_1 = require("../util/geometry/index");
16
16
  /**
17
17
  * Insert info to chain list map (nodes and properties)
18
18
  *
@@ -55,19 +55,18 @@ var index_1 = require("../util/geometry/index");
55
55
  *
56
56
  * //property {Array<Node>} nodes
57
57
  */
58
- var textWriterGetOrThrow = (0, get_1.mapGetOrThrow)("textWriterIDs is invalid");
59
- var CircleLineChainPlugin = /** @class */ (function () {
58
+ const textWriterGetOrThrow = (0, get_1.mapGetOrThrow)("textWriterIDs is invalid");
59
+ class CircleLineChainPlugin {
60
60
  /**
61
61
  *
62
62
  * @param {*} id
63
63
  * @param {Map<[key, ContextTextWriter3]} textWritersMap //import { ContextTextWriter3 } from "@pirireis/webglobeplugins/write-text/context-text3";
64
64
  */
65
- function CircleLineChainPlugin(id, _a) {
66
- var _b = _a === void 0 ? {} : _a, _c = _b.drawCircleOn, drawCircleOn = _c === void 0 ? true : _c, _d = _b.textWritersMap, textWritersMap = _d === void 0 ? new Map() : _d, _e = _b.textDataPreAdaptor, textDataPreAdaptor = _e === void 0 ? null : _e, _f = _b.circleFlatEdgeCount, circleFlatEdgeCount = _f === void 0 ? circle_accurate_flat_1.EDGE_COUNT - 2 : _f;
65
+ constructor(id, { drawCircleOn = true, textWritersMap = new Map(), textDataPreAdaptor = null, circleFlatEdgeCount = circle_accurate_flat_1.EDGE_COUNT - 2 } = {}) {
67
66
  this.id = id;
68
67
  this._checktextWritersMap(textWritersMap);
69
68
  this._textWritersMap = textWritersMap;
70
- this._textWritersMap.forEach(function (writer) { return writer.setKeyAdaptor(function (v, i, c, properties) { return v.__identity__; }); });
69
+ this._textWritersMap.forEach((writer) => writer.setKeyAdaptor((v, i, c, properties) => v.__identity__));
71
70
  this._opacity = 1;
72
71
  this._chainListMap = new chain_list_map_1.ChainListMap(util_1.keyMethod);
73
72
  this.bufferOrchestrator = new account_1.BufferOrchestrator({ capacity: 10 });
@@ -77,12 +76,12 @@ var CircleLineChainPlugin = /** @class */ (function () {
77
76
  }
78
77
  // init
79
78
  // API
80
- CircleLineChainPlugin.prototype.setDrawCircleOn = function (bool) {
79
+ setDrawCircleOn(bool) {
81
80
  if (typeof bool !== 'boolean')
82
81
  throw new Error("setDrawCircleOn parameter must be a boolean");
83
82
  this._drawCircleOn = bool;
84
83
  this.globe.DrawRender();
85
- };
84
+ }
86
85
  // ---- updateBulk
87
86
  /**
88
87
  * @param {Array<chain>} data
@@ -91,57 +90,48 @@ var CircleLineChainPlugin = /** @class */ (function () {
91
90
  * @property {Array<Node>} nodes
92
91
 
93
92
  */
94
- CircleLineChainPlugin.prototype.updateCoordinatesBulk = function (data, _a) {
95
- var _this = this;
96
- var _b = _a === void 0 ? {} : _a, _c = _b.textWriterIDs, textWriterIDs = _c === void 0 ? [] : _c;
93
+ updateCoordinatesBulk(data, { textWriterIDs = [] } = {}) {
97
94
  // update implicit data structure
98
95
  // find keys to update.. (inserted data and the radius of "from")
99
96
  // updateBuffers
100
97
  // update text
101
- var chainKeys = [];
102
- var _loop_1 = function (chain) {
98
+ const chainKeys = [];
99
+ for (const chain of data) {
103
100
  chainKeys.push(chain.chainKey);
104
- chain.nodes.forEach(function (node) {
105
- _this._chainListMap.updateCoordsinatesOfNode(node, chain.chainKey);
101
+ chain.nodes.forEach((node) => {
102
+ this._chainListMap.updateCoordsinatesOfNode(node, chain.chainKey);
106
103
  });
107
- };
108
- for (var _i = 0, data_1 = data; _i < data_1.length; _i++) {
109
- var chain = data_1[_i];
110
- _loop_1(chain);
111
104
  }
112
105
  this._reconstructChains(chainKeys);
113
106
  this._updateTexts(chainKeys, textWriterIDs);
114
- };
107
+ }
115
108
  /**
116
109
  * @param {*} chainKey
117
110
  * @param {Array<{nodeKey, circleProperties:Map[propertyName ,value], lineProperties:Map[propertyName ,value] }} propertyMap
118
111
  */
119
- CircleLineChainPlugin.prototype.updateNodesProperties = function (chainKey, nodesAndPropertyMap, _a) {
120
- var _b = _a === void 0 ? {} : _a, _c = _b.textWriterIDs, textWriterIDs = _c === void 0 ? [] : _c;
112
+ updateNodesProperties(chainKey, nodesAndPropertyMap, { textWriterIDs = [] } = {}) {
121
113
  this._chainListMap.updateNodesProperties(chainKey, nodesAndPropertyMap);
122
114
  this._reconstructChains([chainKey]);
123
115
  this._updateTexts([chainKey], textWriterIDs);
124
116
  this.globe.DrawRender();
125
- };
117
+ }
126
118
  /**
127
119
  * @param {*} chainKey
128
120
  * @param {Map<propertyName ,value} propertyMap
129
121
  */
130
- CircleLineChainPlugin.prototype.updateChainProperties = function (chainKey, propertyMap, _a) {
131
- var _b = _a === void 0 ? {} : _a, _c = _b.textWriterIDs, textWriterIDs = _c === void 0 ? [] : _c;
122
+ updateChainProperties(chainKey, propertyMap, { textWriterIDs = [] } = {}) {
132
123
  this._chainListMap.updateChainProperties(chainKey, propertyMap);
133
124
  this._reconstructChains([chainKey]);
134
125
  if (textWriterIDs)
135
126
  this._updateTexts([chainKey], textWriterIDs);
136
- };
137
- CircleLineChainPlugin.prototype.updateNodeCoordinates = function (node, chainKey, _a) {
138
- var _b = _a === void 0 ? {} : _a, _c = _b.textWriterIDs, textWriterIDs = _c === void 0 ? [] : _c;
127
+ }
128
+ updateNodeCoordinates(node, chainKey, { textWriterIDs = [] } = {}) {
139
129
  this._chainListMap.updateCoordsinatesOfNode(node, chainKey);
140
130
  if (textWriterIDs)
141
131
  this._updateTexts([chainKey], textWriterIDs);
142
132
  this._reconstructChains([chainKey]);
143
133
  this.globe.DrawRender();
144
- };
134
+ }
145
135
  /**
146
136
  *
147
137
 
@@ -149,27 +139,23 @@ var CircleLineChainPlugin = /** @class */ (function () {
149
139
  * @param {Array<string>} textWriterIDs | textWritersMap keys to be used for writing text.
150
140
  * @param {Array<string>} chainKeys | if empty, all texts will be updated
151
141
  */
152
- CircleLineChainPlugin.prototype.updateText = function (textWriterIDs, chainKeys) {
153
- if (textWriterIDs === void 0) { textWriterIDs = []; }
154
- if (chainKeys === void 0) { chainKeys = null; }
142
+ updateText(textWriterIDs = [], chainKeys = null) {
155
143
  if (chainKeys === null)
156
144
  chainKeys = this._chainListMap.getAllChainKeysIterator();
157
145
  this._updateTexts(chainKeys, textWriterIDs);
158
146
  this.globe.DrawRender();
159
- };
147
+ }
160
148
  // ---- insertBulk
161
149
  /**
162
150
  *
163
151
  * @param {Array<chain>} data
164
152
  */
165
- CircleLineChainPlugin.prototype.insertBulk = function (data, _a) {
166
- var _b = _a === void 0 ? {} : _a, _c = _b.textWriterIDs, textWriterIDs = _c === void 0 ? [] : _c;
153
+ insertBulk(data, { textWriterIDs = [] } = {}) {
167
154
  // first insert everything to implicit structure,
168
155
  // then iterate over data again to update text
169
156
  // let _reconstractChainBufferData method interact with data and bufferOrchestrator.
170
- var chainKeysToConstruct = [];
171
- for (var _i = 0, data_2 = data; _i < data_2.length; _i++) {
172
- var _d = data_2[_i], chainKey = _d.chainKey, chainProperties = _d.chainProperties, nodes = _d.nodes;
157
+ const chainKeysToConstruct = [];
158
+ for (const { chainKey, chainProperties, nodes } of data) {
173
159
  this._chainListMap.setChain(chainKey, nodes);
174
160
  this._chainListMap.setChainProperties(chainKey, chainProperties);
175
161
  chainKeysToConstruct.push(chainKey);
@@ -178,112 +164,104 @@ var CircleLineChainPlugin = /** @class */ (function () {
178
164
  if (textWriterIDs)
179
165
  this._updateTexts(chainKeysToConstruct, textWriterIDs);
180
166
  this.globe.DrawRender();
181
- };
167
+ }
182
168
  /**
183
169
  * @param {Node} node
184
170
  * @param {*} chainKey
185
171
  * @param {*} theNodeKeyFront | node key of the next node, null places to the last
186
172
  */
187
- CircleLineChainPlugin.prototype.addNode = function (node, chainKey, _a) {
188
- var _b = _a === void 0 ? {} : _a, _c = _b.theNodeKeyFront, theNodeKeyFront = _c === void 0 ? null : _c, _d = _b.textWriterIDs, textWriterIDs = _d === void 0 ? [] : _d;
173
+ addNode(node, chainKey, { theNodeKeyFront = null, textWriterIDs = [] } = {}) {
189
174
  this._chainListMap.addNode(node, chainKey, theNodeKeyFront);
190
175
  if (textWriterIDs)
191
176
  this._updateTexts([chainKey], textWriterIDs);
192
177
  this._reconstructChains([chainKey]);
193
178
  this.globe.DrawRender();
194
- };
195
- CircleLineChainPlugin.prototype.setOpacity = function (opacity) {
179
+ }
180
+ setOpacity(opacity) {
196
181
  (0, typecheck_1.opacityCheck)(opacity);
197
- this._textWritersMap.forEach(function (writer) { return writer.setOpacity(opacity); });
182
+ this._textWritersMap.forEach((writer) => writer.setOpacity(opacity));
198
183
  this._opacity = opacity;
199
184
  this.globe.DrawRender();
200
- };
201
- CircleLineChainPlugin.prototype.getChain = function (chainKey) {
185
+ }
186
+ getChain(chainKey) {
202
187
  this._chainListMap.getChain(chainKey);
203
- };
188
+ }
204
189
  /**
205
190
  *
206
191
  * @param {*} chainKeys
207
192
  */
208
- CircleLineChainPlugin.prototype.deleteChains = function (chainKeys) {
209
- var bufferKeys = [];
210
- for (var _i = 0, chainKeys_1 = chainKeys; _i < chainKeys_1.length; _i++) {
211
- var chainKey = chainKeys_1[_i];
212
- bufferKeys.push.apply(bufferKeys, this._chainListMap.deleteChainAndReturnChainKeys(chainKey));
193
+ deleteChains(chainKeys) {
194
+ const bufferKeys = [];
195
+ for (const chainKey of chainKeys) {
196
+ bufferKeys.push(...this._chainListMap.deleteChainAndReturnChainKeys(chainKey));
213
197
  }
214
- this._textWritersMap.forEach(function (writer) { return writer.deleteTextBulk(bufferKeys); });
198
+ this._textWritersMap.forEach((writer) => writer.deleteTextBulk(bufferKeys));
215
199
  this._updateTexts(chainKeys, this._textWritersMap.keys());
216
200
  this.bufferOrchestrator.deleteBulk(bufferKeys, this.bufferManagersCompMap);
217
201
  this.globe.DrawRender();
218
- };
202
+ }
219
203
  /**
220
204
  *
221
205
  * @param {Array<{chainKey, nodeKeys:[]} keysAndNodes
222
206
  */
223
- CircleLineChainPlugin.prototype.deleteNodes = function (keysAndNodes, _a) {
224
- var _this = this;
225
- var _b = _a === void 0 ? {} : _a, _c = _b.textWriterIDs, textWriterIDs = _c === void 0 ? [] : _c;
226
- var bufferKeys = [];
227
- var chainKeysToReconstuct = [];
228
- keysAndNodes.forEach(function (_a) {
229
- var chainKey = _a.chainKey, nodeKeys = _a.nodeKeys;
230
- bufferKeys.push.apply(bufferKeys, _this._chainListMap.deleteNodesBelongToAChain(chainKey, nodeKeys));
207
+ deleteNodes(keysAndNodes, { textWriterIDs = [] } = {}) {
208
+ const bufferKeys = [];
209
+ const chainKeysToReconstuct = [];
210
+ keysAndNodes.forEach(({ chainKey, nodeKeys }) => {
211
+ bufferKeys.push(...this._chainListMap.deleteNodesBelongToAChain(chainKey, nodeKeys));
231
212
  chainKeysToReconstuct.push(chainKey);
232
213
  });
233
- this._textWritersMap.forEach(function (writer) { return writer.deleteTextBulk(bufferKeys); });
214
+ this._textWritersMap.forEach((writer) => writer.deleteTextBulk(bufferKeys));
234
215
  this.bufferOrchestrator.deleteBulk(bufferKeys, this.bufferManagersCompMap);
235
216
  this._reconstructChains(chainKeysToReconstuct);
236
217
  this._updateTexts(chainKeysToReconstuct, textWriterIDs);
237
218
  this.globe.DrawRender();
238
- };
239
- CircleLineChainPlugin.prototype.init = function (globe, gl) {
219
+ }
220
+ init(globe, gl) {
240
221
  this.gl = gl;
241
222
  this.globe = globe;
242
223
  this._initOrchestrations();
243
- };
224
+ }
244
225
  // implicit
245
- CircleLineChainPlugin.prototype._checktextWritersMap = function (textWritersMap) {
226
+ _checktextWritersMap(textWritersMap) {
246
227
  if (!(textWritersMap instanceof Map))
247
228
  throw new Error("textWritersMap is not an instance of Map");
248
- textWritersMap.forEach(function (v) {
229
+ textWritersMap.forEach((v) => {
249
230
  if (!(v instanceof context_text3_1.ContextTextWriter3))
250
231
  throw new Error("textWritersMap element is not an instance of ContextTextWriter3");
251
232
  });
252
- };
253
- CircleLineChainPlugin.prototype._initOrchestrations = function () {
254
- var _a, _b, _c;
255
- var _this = this;
256
- var _d = this, gl = _d.gl, globe = _d.globe;
233
+ }
234
+ _initOrchestrations() {
235
+ const { gl, globe } = this;
257
236
  this.lineProgram = naive_accurate_flexible_1.LineOnGlobeCache.get(globe);
258
237
  this.circleProgram2d = circle_accurate_flat_1.CircleCache.get(globe);
259
238
  this.circle3DProgram = circle_accurate_3d_1.CircleCache.get(globe);
260
- var _circleFlatEdgeCount = this._circleFlatEdgeCount;
239
+ const _circleFlatEdgeCount = this._circleFlatEdgeCount;
261
240
  {
262
241
  // createBuffers
263
- var bufferType = "DYNAMIC_DRAW";
264
- var initialCapacity = this.bufferOrchestrator.capacity;
242
+ const bufferType = "DYNAMIC_DRAW";
243
+ const initialCapacity = this.bufferOrchestrator.capacity;
265
244
  this.bufferManagersCompMap = new Map([
266
245
  ["centerCoords2d", {
267
- 'bufferManager': new account_1.BufferManager(gl, 2, { bufferType: bufferType, initialCapacity: initialCapacity }),
268
- 'adaptor': function (item) { return new Float32Array(globe.api_GetMercator2DPoint(item.long, item.lat)); },
246
+ 'bufferManager': new account_1.BufferManager(gl, 2, { bufferType, initialCapacity }),
247
+ 'adaptor': (item) => new Float32Array(globe.api_GetMercator2DPoint(item.long, item.lat)),
269
248
  }],
270
249
  ["centerCoords3d", {
271
- 'bufferManager': new account_1.BufferManager(gl, 3, { bufferType: bufferType, initialCapacity: initialCapacity }),
272
- 'adaptor': function (item) { return (0, index_1.sphereCoord)(item.long, item.lat, globe, item.altitude); },
250
+ 'bufferManager': new account_1.BufferManager(gl, 3, { bufferType, initialCapacity }),
251
+ 'adaptor': (item) => (0, index_1.sphereCoord)(item.long, item.lat, globe, item.altitude),
273
252
  }],
274
253
  ["targetCoords2d", {
275
- 'bufferManager': new account_1.BufferManager(gl, 2, { bufferType: bufferType, initialCapacity: initialCapacity }),
276
- 'adaptor': function (item) { return new Float32Array(globe.api_GetMercator2DPoint(item.targetLong, item.targetLat)); },
254
+ 'bufferManager': new account_1.BufferManager(gl, 2, { bufferType, initialCapacity }),
255
+ 'adaptor': (item) => new Float32Array(globe.api_GetMercator2DPoint(item.targetLong, item.targetLat)),
277
256
  }],
278
257
  ["targetCoords3d", {
279
- 'bufferManager': new account_1.BufferManager(gl, 3, { bufferType: bufferType, initialCapacity: initialCapacity }),
280
- 'adaptor': function (item) { return (0, index_1.sphereCoord)(item.targetLong, item.targetLat, globe, item.altitude); },
258
+ 'bufferManager': new account_1.BufferManager(gl, 3, { bufferType, initialCapacity }),
259
+ 'adaptor': (item) => (0, index_1.sphereCoord)(item.targetLong, item.targetLat, globe, item.altitude),
281
260
  }],
282
261
  ["rgba", {
283
- 'bufferManager': new account_1.BufferManager(gl, 4, { bufferType: bufferType, initialCapacity: initialCapacity }),
284
- 'adaptor': function (item) {
285
- var _a;
286
- if ((_a = item.lineProperties) === null || _a === void 0 ? void 0 : _a.rgba)
262
+ 'bufferManager': new account_1.BufferManager(gl, 4, { bufferType, initialCapacity }),
263
+ 'adaptor': (item) => {
264
+ if (item.lineProperties?.rgba)
287
265
  return new Float32Array(item.lineProperties.rgba);
288
266
  return new Float32Array(item.chainProperties.rgba);
289
267
  }
@@ -293,87 +271,80 @@ var CircleLineChainPlugin = /** @class */ (function () {
293
271
  // 'adaptor': (item) => new Float32Array([item.bigRadius])
294
272
  // }],
295
273
  ["dashRatio", {
296
- 'bufferManager': new account_1.BufferManager(gl, 1, { bufferType: bufferType, initialCapacity: initialCapacity }),
297
- 'adaptor': function (item) { return new Float32Array([item.chainProperties.dashRatio]); }
274
+ 'bufferManager': new account_1.BufferManager(gl, 1, { bufferType, initialCapacity }),
275
+ 'adaptor': (item) => new Float32Array([item.chainProperties.dashRatio])
298
276
  }],
299
277
  ["dashOpacity", {
300
- 'bufferManager': new account_1.BufferManager(gl, 1, { bufferType: bufferType, initialCapacity: initialCapacity }),
301
- 'adaptor': function (item) { return new Float32Array([item.chainProperties.dashOpacity]); }
278
+ 'bufferManager': new account_1.BufferManager(gl, 1, { bufferType, initialCapacity }),
279
+ 'adaptor': (item) => new Float32Array([item.chainProperties.dashOpacity])
302
280
  }],
303
281
  ["circleDashAngle", {
304
- 'bufferManager': new account_1.BufferManager(gl, 1, { bufferType: bufferType, initialCapacity: initialCapacity }),
305
- 'adaptor': function (item) {
306
- var _a;
307
- if ((_a = item.circleProperties) === null || _a === void 0 ? void 0 : _a.circleDashAngle)
282
+ 'bufferManager': new account_1.BufferManager(gl, 1, { bufferType, initialCapacity }),
283
+ 'adaptor': (item) => {
284
+ if (item.circleProperties?.circleDashAngle)
308
285
  return new Float32Array([item.circleProperties.circleDashAngle / 360]);
309
286
  return new Float32Array([item.chainProperties.circleDashAngle / 360]);
310
287
  }
311
288
  }],
312
289
  ["rgbaCircle", {
313
- "bufferManager": new account_1.BufferManager(gl, 4, { bufferType: bufferType, initialCapacity: initialCapacity }),
314
- "adaptor": function (item) {
315
- var _a;
316
- if ((_a = item.circleProperties) === null || _a === void 0 ? void 0 : _a.rgba)
290
+ "bufferManager": new account_1.BufferManager(gl, 4, { bufferType, initialCapacity }),
291
+ "adaptor": (item) => {
292
+ if (item.circleProperties?.rgba)
317
293
  return new Float32Array(item.circleProperties.rgba);
318
294
  return new Float32Array(item.chainProperties.rgba);
319
295
  }
320
296
  }],
321
297
  // Mercator buffers
322
298
  ["circleDashAngleMercator", {
323
- 'bufferManager': new account_1.BufferManager(gl, 1 * _circleFlatEdgeCount, { bufferType: bufferType, initialCapacity: initialCapacity }),
324
- 'adaptor': function (item) {
325
- var _a;
326
- if ((_a = item.circleProperties) === null || _a === void 0 ? void 0 : _a.circleDashAngle)
299
+ 'bufferManager': new account_1.BufferManager(gl, 1 * _circleFlatEdgeCount, { bufferType, initialCapacity }),
300
+ 'adaptor': (item) => {
301
+ if (item.circleProperties?.circleDashAngle)
327
302
  return new Float32Array([item.circleProperties.circleDashAngle / 360]);
328
303
  return data_filler_1.populateFloat32Array.fillFloat32Array(_circleFlatEdgeCount, item.chainProperties.circleDashAngle / 360);
329
304
  }
330
305
  }],
331
306
  ["rgbaCircleMercator", {
332
- "bufferManager": new account_1.BufferManager(gl, 4 * _circleFlatEdgeCount, { bufferType: bufferType, initialCapacity: initialCapacity }),
333
- "adaptor": function (item) {
334
- var _a;
335
- if ((_a = item.circleProperties) === null || _a === void 0 ? void 0 : _a.rgba)
307
+ "bufferManager": new account_1.BufferManager(gl, 4 * _circleFlatEdgeCount, { bufferType, initialCapacity }),
308
+ "adaptor": (item) => {
309
+ if (item.circleProperties?.rgba)
336
310
  return data_filler_1.populateFloat32Array.fillWithListData(_circleFlatEdgeCount, item.circleProperties.rgba);
337
311
  return data_filler_1.populateFloat32Array.fillWithListData(_circleFlatEdgeCount, item.chainProperties.rgba);
338
312
  }
339
313
  }],
340
314
  ["dashOpacityMercator", {
341
- 'bufferManager': new account_1.BufferManager(gl, 1 * _circleFlatEdgeCount, { bufferType: bufferType, initialCapacity: initialCapacity }),
342
- 'adaptor': function (item) { return data_filler_1.populateFloat32Array.fillFloat32Array(_circleFlatEdgeCount, item.chainProperties.dashOpacity); }
315
+ 'bufferManager': new account_1.BufferManager(gl, 1 * _circleFlatEdgeCount, { bufferType, initialCapacity }),
316
+ 'adaptor': (item) => data_filler_1.populateFloat32Array.fillFloat32Array(_circleFlatEdgeCount, item.chainProperties.dashOpacity)
343
317
  }],
344
318
  ["centerCoords2dMercator", {
345
- 'bufferManager': new account_1.BufferManager(gl, 2 * _circleFlatEdgeCount, { bufferType: bufferType, initialCapacity: initialCapacity }),
346
- 'adaptor': function (item) { return item.centerCoords2dflat; },
319
+ 'bufferManager': new account_1.BufferManager(gl, 2 * _circleFlatEdgeCount, { bufferType, initialCapacity }),
320
+ 'adaptor': (item) => item.centerCoords2dflat,
347
321
  }],
348
322
  ]);
349
- var obj_1 = function (key) { return (0, attribute_loader_1.createBufferAndReadInfo)(_this.bufferManagersCompMap.get(key).bufferManager.buffer); };
350
- this.lineVao = (_a = this.lineProgram).createVAO.apply(_a, ['centerCoords2d', 'centerCoords3d', 'targetCoords2d', 'targetCoords3d', 'dashRatio', 'dashOpacity', 'rgba'
351
- ].map(function (key) { return obj_1(key); }));
352
- this.circleVao2d = (_b = this.circleProgram2d).createVAO.apply(_b, ["centerCoords2dMercator", "rgbaCircleMercator", "circleDashAngleMercator", "dashOpacityMercator"
353
- ].map(function (key) { return obj_1(key); }));
354
- this.circle3DVao = (_c = this.circle3DProgram).createVAO.apply(_c, ["centerCoords3d", "targetCoords3d", "rgbaCircle", "circleDashAngle", "dashOpacity"
355
- ].map(function (key) { return obj_1(key); }));
323
+ const obj = (key) => (0, attribute_loader_1.createBufferAndReadInfo)(this.bufferManagersCompMap.get(key).bufferManager.buffer);
324
+ this.lineVao = this.lineProgram.createVAO(...['centerCoords2d', 'centerCoords3d', 'targetCoords2d', 'targetCoords3d', 'dashRatio', 'dashOpacity', 'rgba'
325
+ ].map(key => obj(key)));
326
+ this.circleVao2d = this.circleProgram2d.createVAO(...["centerCoords2dMercator", "rgbaCircleMercator", "circleDashAngleMercator", "dashOpacityMercator"
327
+ ].map(key => obj(key)));
328
+ this.circle3DVao = this.circle3DProgram.createVAO(...["centerCoords3d", "targetCoords3d", "rgbaCircle", "circleDashAngle", "dashOpacity"
329
+ ].map(key => obj(key)));
356
330
  }
357
- };
358
- CircleLineChainPlugin.prototype._updateTexts = function (chainKeys, textWriterIDs) {
359
- var _this = this;
331
+ }
332
+ _updateTexts(chainKeys, textWriterIDs) {
360
333
  if (textWriterIDs.length === 0)
361
334
  return;
362
- var textWriters = textWriterGetOrThrow(this._textWritersMap, textWriterIDs);
363
- chainKeys.forEach(function (chainKey) {
364
- _this._chainListMap.textUpdate(chainKey, textWriters, _this._textDataPreAdaptor);
335
+ const textWriters = textWriterGetOrThrow(this._textWritersMap, textWriterIDs);
336
+ chainKeys.forEach((chainKey) => {
337
+ this._chainListMap.textUpdate(chainKey, textWriters, this._textDataPreAdaptor);
365
338
  });
366
- };
367
- CircleLineChainPlugin.prototype._reconstructChains = function (chainKeys) {
368
- var _this = this;
369
- var globe = this.globe;
339
+ }
340
+ _reconstructChains(chainKeys) {
341
+ const { globe } = this;
370
342
  // const radiusM = radiusMethod(globe);
371
- var callback = function (v, i, array, chainProperties) {
372
- var _a, _b;
343
+ const callback = (v, i, array, chainProperties) => {
373
344
  if (i === array.length - 1)
374
345
  return null;
375
- var centerCoords2dflat = (0, circle_accurate_flat_1.centerCoords2dflatDataCreator)(globe, v.long, v.lat, array[i + 1].long, array[i + 1].lat, { edgeCount: _this._circleFlatEdgeCount });
376
- var altitude = ((_b = (_a = v.altitude) !== null && _a !== void 0 ? _a : chainProperties.altitude) !== null && _b !== void 0 ? _b : 0) / 1000;
346
+ const centerCoords2dflat = (0, circle_accurate_flat_1.centerCoords2dflatDataCreator)(globe, v.long, v.lat, array[i + 1].long, array[i + 1].lat, { edgeCount: this._circleFlatEdgeCount });
347
+ const altitude = (v.altitude ?? chainProperties.altitude ?? 0) / 1000;
377
348
  return {
378
349
  chainProperties: chainProperties,
379
350
  // bigRadius: radiusM(v, i, array),
@@ -384,53 +355,52 @@ var CircleLineChainPlugin = /** @class */ (function () {
384
355
  lat: v.lat,
385
356
  lineProperties: v.lineProperties,
386
357
  circleProperties: v.circleProperties,
387
- centerCoords2dflat: centerCoords2dflat,
358
+ centerCoords2dflat,
388
359
  key: v.__identity__
389
360
  };
390
361
  };
391
- var bulkData = [];
392
- chainKeys.forEach(function (k) {
393
- _this._chainListMap.calculateBufferPropertiesChain(k, callback, bulkData);
362
+ const bulkData = [];
363
+ chainKeys.forEach((k) => {
364
+ this._chainListMap.calculateBufferPropertiesChain(k, callback, bulkData);
394
365
  });
395
366
  this._insertBulk(bulkData);
396
- };
397
- CircleLineChainPlugin.prototype._insertBulk = function (bulkData) {
367
+ }
368
+ _insertBulk(bulkData) {
398
369
  this.bufferOrchestrator.insertBulk(bulkData, this.bufferManagersCompMap);
399
370
  this.globe.DrawRender();
400
- };
371
+ }
401
372
  // GLOBE API
402
- CircleLineChainPlugin.prototype.free = function () {
373
+ free() {
403
374
  if (this.isFreed)
404
375
  return;
405
- this.bufferManagersCompMap.forEach(function (_a) {
406
- var bufferManager = _a.bufferManager;
376
+ this.bufferManagersCompMap.forEach(({ bufferManager }) => {
407
377
  bufferManager.free();
408
378
  });
409
379
  naive_accurate_flexible_1.LineOnGlobeCache.release(this.globe);
410
380
  circle_accurate_flat_1.CircleCache.release(this.globe);
411
381
  circle_accurate_3d_1.CircleCache.release(this.globe);
412
382
  // LineToTheOriginCache.release(this.globe);
413
- this._textWritersMap.forEach(function (writer) { return writer.free(); });
414
- var gl = this.gl;
383
+ this._textWritersMap.forEach((writer) => writer.free());
384
+ const { gl } = this;
415
385
  gl.deleteVertexArray(this.lineVao);
416
386
  gl.deleteVertexArray(this.circleVao2d);
417
387
  gl.deleteVertexArray(this.circle3DVao);
418
388
  this.lineProgram = null;
419
389
  this.circleProgram2d = null;
420
390
  this.isFreed = true;
421
- };
422
- CircleLineChainPlugin.prototype.draw3D = function () {
423
- var _a = this, gl = _a.gl, globe = _a.globe;
391
+ }
392
+ draw3D() {
393
+ const { gl, globe } = this;
424
394
  gl.disable(gl.DEPTH_TEST);
425
- var drawOptions = {
395
+ const drawOptions = {
426
396
  drawRange: {
427
397
  first: 0,
428
398
  count: this.bufferOrchestrator.length
429
399
  }
430
400
  };
431
401
  this.lineProgram.draw(this.lineVao, drawOptions, this._opacity);
432
- this._textWritersMap.forEach(function (writer) { return writer.draw(); });
433
- var is3D = globe.api_GetCurrentGeometry() === 0;
402
+ this._textWritersMap.forEach((writer) => writer.draw());
403
+ const is3D = globe.api_GetCurrentGeometry() === 0;
434
404
  if (this._drawCircleOn) {
435
405
  if (is3D) {
436
406
  this.circle3DProgram.draw(this.circle3DVao, this.bufferOrchestrator.length, this._opacity);
@@ -440,9 +410,8 @@ var CircleLineChainPlugin = /** @class */ (function () {
440
410
  }
441
411
  }
442
412
  gl.enable(gl.DEPTH_TEST);
443
- };
444
- return CircleLineChainPlugin;
445
- }());
413
+ }
414
+ }
446
415
  exports.CircleLineChainPlugin = CircleLineChainPlugin;
447
416
  // const radiusMethod = (globe) => (v, i, array) => {
448
417
  // return globe.Math.GetDist3D(v.long, v.lat, array[i + 1].long, array[i + 1].lat)
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.keyMethod = void 0;
4
- var keyMethod = function (chainKey, nodeKey) { return "".concat(chainKey, "_").concat(nodeKey); };
4
+ const keyMethod = (chainKey, nodeKey) => `${chainKey}_${nodeKey}`;
5
5
  exports.keyMethod = keyMethod;