@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,18 +1,15 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
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");
1
+ import { LineOnGlobeCache } from '../programs/line-on-globe/naive-accurate-flexible';
2
+ import { CircleCache, EDGE_COUNT as flatCircleEdgeCount, centerCoords2dflatDataCreator } from '../programs/line-on-globe/circle-accurate-flat';
3
+ import { CircleCache as Circle3DCache } from '../programs/line-on-globe/circle-accurate-3d';
4
+ import { BufferOrchestrator, BufferManager } from "../util/account";
5
+ import { ChainListMap } from "./chain-list-map";
6
+ import { mapGetOrThrow } from "../util/check/get";
7
+ import { keyMethod } from "./util";
8
+ import { populateFloat32Array } from "../util/jshelpers/data-filler";
9
+ import { ContextTextWriter3 } from '../write-text/context-text3';
10
+ import { isBoolean, constraintFloat, opacityCheck } from '../util/check/typecheck';
11
+ import { createBufferAndReadInfo } from '../util/gl-util/buffer/attribute-loader';
12
+ import { sphereCoord } from '../util/geometry/index';
16
13
  /**
17
14
  * Insert info to chain list map (nodes and properties)
18
15
  *
@@ -55,34 +52,33 @@ var index_1 = require("../util/geometry/index");
55
52
  *
56
53
  * //property {Array<Node>} nodes
57
54
  */
58
- var textWriterGetOrThrow = (0, get_1.mapGetOrThrow)("textWriterIDs is invalid");
59
- var CircleLineChainPlugin = /** @class */ (function () {
55
+ const textWriterGetOrThrow = mapGetOrThrow("textWriterIDs is invalid");
56
+ export class CircleLineChainPlugin {
60
57
  /**
61
58
  *
62
59
  * @param {*} id
63
60
  * @param {Map<[key, ContextTextWriter3]} textWritersMap //import { ContextTextWriter3 } from "@pirireis/webglobeplugins/write-text/context-text3";
64
61
  */
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;
62
+ constructor(id, { drawCircleOn = true, textWritersMap = new Map(), textDataPreAdaptor = null, circleFlatEdgeCount = flatCircleEdgeCount - 2 } = {}) {
67
63
  this.id = id;
68
64
  this._checktextWritersMap(textWritersMap);
69
65
  this._textWritersMap = textWritersMap;
70
- this._textWritersMap.forEach(function (writer) { return writer.setKeyAdaptor(function (v, i, c, properties) { return v.__identity__; }); });
66
+ this._textWritersMap.forEach((writer) => writer.setKeyAdaptor((v, i, c, properties) => v.__identity__));
71
67
  this._opacity = 1;
72
- this._chainListMap = new chain_list_map_1.ChainListMap(util_1.keyMethod);
73
- this.bufferOrchestrator = new account_1.BufferOrchestrator({ capacity: 10 });
68
+ this._chainListMap = new ChainListMap(keyMethod);
69
+ this.bufferOrchestrator = new BufferOrchestrator({ capacity: 10 });
74
70
  this._drawCircleOn = drawCircleOn;
75
71
  this._textDataPreAdaptor = textDataPreAdaptor;
76
72
  this._circleFlatEdgeCount = circleFlatEdgeCount + 2;
77
73
  }
78
74
  // init
79
75
  // API
80
- CircleLineChainPlugin.prototype.setDrawCircleOn = function (bool) {
76
+ setDrawCircleOn(bool) {
81
77
  if (typeof bool !== 'boolean')
82
78
  throw new Error("setDrawCircleOn parameter must be a boolean");
83
79
  this._drawCircleOn = bool;
84
80
  this.globe.DrawRender();
85
- };
81
+ }
86
82
  // ---- updateBulk
87
83
  /**
88
84
  * @param {Array<chain>} data
@@ -91,57 +87,48 @@ var CircleLineChainPlugin = /** @class */ (function () {
91
87
  * @property {Array<Node>} nodes
92
88
 
93
89
  */
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;
90
+ updateCoordinatesBulk(data, { textWriterIDs = [] } = {}) {
97
91
  // update implicit data structure
98
92
  // find keys to update.. (inserted data and the radius of "from")
99
93
  // updateBuffers
100
94
  // update text
101
- var chainKeys = [];
102
- var _loop_1 = function (chain) {
95
+ const chainKeys = [];
96
+ for (const chain of data) {
103
97
  chainKeys.push(chain.chainKey);
104
- chain.nodes.forEach(function (node) {
105
- _this._chainListMap.updateCoordsinatesOfNode(node, chain.chainKey);
98
+ chain.nodes.forEach((node) => {
99
+ this._chainListMap.updateCoordsinatesOfNode(node, chain.chainKey);
106
100
  });
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
101
  }
112
102
  this._reconstructChains(chainKeys);
113
103
  this._updateTexts(chainKeys, textWriterIDs);
114
- };
104
+ }
115
105
  /**
116
106
  * @param {*} chainKey
117
107
  * @param {Array<{nodeKey, circleProperties:Map[propertyName ,value], lineProperties:Map[propertyName ,value] }} propertyMap
118
108
  */
119
- CircleLineChainPlugin.prototype.updateNodesProperties = function (chainKey, nodesAndPropertyMap, _a) {
120
- var _b = _a === void 0 ? {} : _a, _c = _b.textWriterIDs, textWriterIDs = _c === void 0 ? [] : _c;
109
+ updateNodesProperties(chainKey, nodesAndPropertyMap, { textWriterIDs = [] } = {}) {
121
110
  this._chainListMap.updateNodesProperties(chainKey, nodesAndPropertyMap);
122
111
  this._reconstructChains([chainKey]);
123
112
  this._updateTexts([chainKey], textWriterIDs);
124
113
  this.globe.DrawRender();
125
- };
114
+ }
126
115
  /**
127
116
  * @param {*} chainKey
128
117
  * @param {Map<propertyName ,value} propertyMap
129
118
  */
130
- CircleLineChainPlugin.prototype.updateChainProperties = function (chainKey, propertyMap, _a) {
131
- var _b = _a === void 0 ? {} : _a, _c = _b.textWriterIDs, textWriterIDs = _c === void 0 ? [] : _c;
119
+ updateChainProperties(chainKey, propertyMap, { textWriterIDs = [] } = {}) {
132
120
  this._chainListMap.updateChainProperties(chainKey, propertyMap);
133
121
  this._reconstructChains([chainKey]);
134
122
  if (textWriterIDs)
135
123
  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;
124
+ }
125
+ updateNodeCoordinates(node, chainKey, { textWriterIDs = [] } = {}) {
139
126
  this._chainListMap.updateCoordsinatesOfNode(node, chainKey);
140
127
  if (textWriterIDs)
141
128
  this._updateTexts([chainKey], textWriterIDs);
142
129
  this._reconstructChains([chainKey]);
143
130
  this.globe.DrawRender();
144
- };
131
+ }
145
132
  /**
146
133
  *
147
134
 
@@ -149,27 +136,23 @@ var CircleLineChainPlugin = /** @class */ (function () {
149
136
  * @param {Array<string>} textWriterIDs | textWritersMap keys to be used for writing text.
150
137
  * @param {Array<string>} chainKeys | if empty, all texts will be updated
151
138
  */
152
- CircleLineChainPlugin.prototype.updateText = function (textWriterIDs, chainKeys) {
153
- if (textWriterIDs === void 0) { textWriterIDs = []; }
154
- if (chainKeys === void 0) { chainKeys = null; }
139
+ updateText(textWriterIDs = [], chainKeys = null) {
155
140
  if (chainKeys === null)
156
141
  chainKeys = this._chainListMap.getAllChainKeysIterator();
157
142
  this._updateTexts(chainKeys, textWriterIDs);
158
143
  this.globe.DrawRender();
159
- };
144
+ }
160
145
  // ---- insertBulk
161
146
  /**
162
147
  *
163
148
  * @param {Array<chain>} data
164
149
  */
165
- CircleLineChainPlugin.prototype.insertBulk = function (data, _a) {
166
- var _b = _a === void 0 ? {} : _a, _c = _b.textWriterIDs, textWriterIDs = _c === void 0 ? [] : _c;
150
+ insertBulk(data, { textWriterIDs = [] } = {}) {
167
151
  // first insert everything to implicit structure,
168
152
  // then iterate over data again to update text
169
153
  // 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;
154
+ const chainKeysToConstruct = [];
155
+ for (const { chainKey, chainProperties, nodes } of data) {
173
156
  this._chainListMap.setChain(chainKey, nodes);
174
157
  this._chainListMap.setChainProperties(chainKey, chainProperties);
175
158
  chainKeysToConstruct.push(chainKey);
@@ -178,112 +161,104 @@ var CircleLineChainPlugin = /** @class */ (function () {
178
161
  if (textWriterIDs)
179
162
  this._updateTexts(chainKeysToConstruct, textWriterIDs);
180
163
  this.globe.DrawRender();
181
- };
164
+ }
182
165
  /**
183
166
  * @param {Node} node
184
167
  * @param {*} chainKey
185
168
  * @param {*} theNodeKeyFront | node key of the next node, null places to the last
186
169
  */
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;
170
+ addNode(node, chainKey, { theNodeKeyFront = null, textWriterIDs = [] } = {}) {
189
171
  this._chainListMap.addNode(node, chainKey, theNodeKeyFront);
190
172
  if (textWriterIDs)
191
173
  this._updateTexts([chainKey], textWriterIDs);
192
174
  this._reconstructChains([chainKey]);
193
175
  this.globe.DrawRender();
194
- };
195
- CircleLineChainPlugin.prototype.setOpacity = function (opacity) {
196
- (0, typecheck_1.opacityCheck)(opacity);
197
- this._textWritersMap.forEach(function (writer) { return writer.setOpacity(opacity); });
176
+ }
177
+ setOpacity(opacity) {
178
+ opacityCheck(opacity);
179
+ this._textWritersMap.forEach((writer) => writer.setOpacity(opacity));
198
180
  this._opacity = opacity;
199
181
  this.globe.DrawRender();
200
- };
201
- CircleLineChainPlugin.prototype.getChain = function (chainKey) {
182
+ }
183
+ getChain(chainKey) {
202
184
  this._chainListMap.getChain(chainKey);
203
- };
185
+ }
204
186
  /**
205
187
  *
206
188
  * @param {*} chainKeys
207
189
  */
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));
190
+ deleteChains(chainKeys) {
191
+ const bufferKeys = [];
192
+ for (const chainKey of chainKeys) {
193
+ bufferKeys.push(...this._chainListMap.deleteChainAndReturnChainKeys(chainKey));
213
194
  }
214
- this._textWritersMap.forEach(function (writer) { return writer.deleteTextBulk(bufferKeys); });
195
+ this._textWritersMap.forEach((writer) => writer.deleteTextBulk(bufferKeys));
215
196
  this._updateTexts(chainKeys, this._textWritersMap.keys());
216
197
  this.bufferOrchestrator.deleteBulk(bufferKeys, this.bufferManagersCompMap);
217
198
  this.globe.DrawRender();
218
- };
199
+ }
219
200
  /**
220
201
  *
221
202
  * @param {Array<{chainKey, nodeKeys:[]} keysAndNodes
222
203
  */
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));
204
+ deleteNodes(keysAndNodes, { textWriterIDs = [] } = {}) {
205
+ const bufferKeys = [];
206
+ const chainKeysToReconstuct = [];
207
+ keysAndNodes.forEach(({ chainKey, nodeKeys }) => {
208
+ bufferKeys.push(...this._chainListMap.deleteNodesBelongToAChain(chainKey, nodeKeys));
231
209
  chainKeysToReconstuct.push(chainKey);
232
210
  });
233
- this._textWritersMap.forEach(function (writer) { return writer.deleteTextBulk(bufferKeys); });
211
+ this._textWritersMap.forEach((writer) => writer.deleteTextBulk(bufferKeys));
234
212
  this.bufferOrchestrator.deleteBulk(bufferKeys, this.bufferManagersCompMap);
235
213
  this._reconstructChains(chainKeysToReconstuct);
236
214
  this._updateTexts(chainKeysToReconstuct, textWriterIDs);
237
215
  this.globe.DrawRender();
238
- };
239
- CircleLineChainPlugin.prototype.init = function (globe, gl) {
216
+ }
217
+ init(globe, gl) {
240
218
  this.gl = gl;
241
219
  this.globe = globe;
242
220
  this._initOrchestrations();
243
- };
221
+ }
244
222
  // implicit
245
- CircleLineChainPlugin.prototype._checktextWritersMap = function (textWritersMap) {
223
+ _checktextWritersMap(textWritersMap) {
246
224
  if (!(textWritersMap instanceof Map))
247
225
  throw new Error("textWritersMap is not an instance of Map");
248
- textWritersMap.forEach(function (v) {
249
- if (!(v instanceof context_text3_1.ContextTextWriter3))
226
+ textWritersMap.forEach((v) => {
227
+ if (!(v instanceof ContextTextWriter3))
250
228
  throw new Error("textWritersMap element is not an instance of ContextTextWriter3");
251
229
  });
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;
257
- this.lineProgram = naive_accurate_flexible_1.LineOnGlobeCache.get(globe);
258
- this.circleProgram2d = circle_accurate_flat_1.CircleCache.get(globe);
259
- this.circle3DProgram = circle_accurate_3d_1.CircleCache.get(globe);
260
- var _circleFlatEdgeCount = this._circleFlatEdgeCount;
230
+ }
231
+ _initOrchestrations() {
232
+ const { gl, globe } = this;
233
+ this.lineProgram = LineOnGlobeCache.get(globe);
234
+ this.circleProgram2d = CircleCache.get(globe);
235
+ this.circle3DProgram = Circle3DCache.get(globe);
236
+ const _circleFlatEdgeCount = this._circleFlatEdgeCount;
261
237
  {
262
238
  // createBuffers
263
- var bufferType = "DYNAMIC_DRAW";
264
- var initialCapacity = this.bufferOrchestrator.capacity;
239
+ const bufferType = "DYNAMIC_DRAW";
240
+ const initialCapacity = this.bufferOrchestrator.capacity;
265
241
  this.bufferManagersCompMap = new Map([
266
242
  ["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)); },
243
+ 'bufferManager': new BufferManager(gl, 2, { bufferType, initialCapacity }),
244
+ 'adaptor': (item) => new Float32Array(globe.api_GetMercator2DPoint(item.long, item.lat)),
269
245
  }],
270
246
  ["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); },
247
+ 'bufferManager': new BufferManager(gl, 3, { bufferType, initialCapacity }),
248
+ 'adaptor': (item) => sphereCoord(item.long, item.lat, globe, item.altitude),
273
249
  }],
274
250
  ["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)); },
251
+ 'bufferManager': new BufferManager(gl, 2, { bufferType, initialCapacity }),
252
+ 'adaptor': (item) => new Float32Array(globe.api_GetMercator2DPoint(item.targetLong, item.targetLat)),
277
253
  }],
278
254
  ["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); },
255
+ 'bufferManager': new BufferManager(gl, 3, { bufferType, initialCapacity }),
256
+ 'adaptor': (item) => sphereCoord(item.targetLong, item.targetLat, globe, item.altitude),
281
257
  }],
282
258
  ["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)
259
+ 'bufferManager': new BufferManager(gl, 4, { bufferType, initialCapacity }),
260
+ 'adaptor': (item) => {
261
+ if (item.lineProperties?.rgba)
287
262
  return new Float32Array(item.lineProperties.rgba);
288
263
  return new Float32Array(item.chainProperties.rgba);
289
264
  }
@@ -293,87 +268,80 @@ var CircleLineChainPlugin = /** @class */ (function () {
293
268
  // 'adaptor': (item) => new Float32Array([item.bigRadius])
294
269
  // }],
295
270
  ["dashRatio", {
296
- 'bufferManager': new account_1.BufferManager(gl, 1, { bufferType: bufferType, initialCapacity: initialCapacity }),
297
- 'adaptor': function (item) { return new Float32Array([item.chainProperties.dashRatio]); }
271
+ 'bufferManager': new BufferManager(gl, 1, { bufferType, initialCapacity }),
272
+ 'adaptor': (item) => new Float32Array([item.chainProperties.dashRatio])
298
273
  }],
299
274
  ["dashOpacity", {
300
- 'bufferManager': new account_1.BufferManager(gl, 1, { bufferType: bufferType, initialCapacity: initialCapacity }),
301
- 'adaptor': function (item) { return new Float32Array([item.chainProperties.dashOpacity]); }
275
+ 'bufferManager': new BufferManager(gl, 1, { bufferType, initialCapacity }),
276
+ 'adaptor': (item) => new Float32Array([item.chainProperties.dashOpacity])
302
277
  }],
303
278
  ["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)
279
+ 'bufferManager': new BufferManager(gl, 1, { bufferType, initialCapacity }),
280
+ 'adaptor': (item) => {
281
+ if (item.circleProperties?.circleDashAngle)
308
282
  return new Float32Array([item.circleProperties.circleDashAngle / 360]);
309
283
  return new Float32Array([item.chainProperties.circleDashAngle / 360]);
310
284
  }
311
285
  }],
312
286
  ["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)
287
+ "bufferManager": new BufferManager(gl, 4, { bufferType, initialCapacity }),
288
+ "adaptor": (item) => {
289
+ if (item.circleProperties?.rgba)
317
290
  return new Float32Array(item.circleProperties.rgba);
318
291
  return new Float32Array(item.chainProperties.rgba);
319
292
  }
320
293
  }],
321
294
  // Mercator buffers
322
295
  ["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)
296
+ 'bufferManager': new BufferManager(gl, 1 * _circleFlatEdgeCount, { bufferType, initialCapacity }),
297
+ 'adaptor': (item) => {
298
+ if (item.circleProperties?.circleDashAngle)
327
299
  return new Float32Array([item.circleProperties.circleDashAngle / 360]);
328
- return data_filler_1.populateFloat32Array.fillFloat32Array(_circleFlatEdgeCount, item.chainProperties.circleDashAngle / 360);
300
+ return populateFloat32Array.fillFloat32Array(_circleFlatEdgeCount, item.chainProperties.circleDashAngle / 360);
329
301
  }
330
302
  }],
331
303
  ["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)
336
- return data_filler_1.populateFloat32Array.fillWithListData(_circleFlatEdgeCount, item.circleProperties.rgba);
337
- return data_filler_1.populateFloat32Array.fillWithListData(_circleFlatEdgeCount, item.chainProperties.rgba);
304
+ "bufferManager": new BufferManager(gl, 4 * _circleFlatEdgeCount, { bufferType, initialCapacity }),
305
+ "adaptor": (item) => {
306
+ if (item.circleProperties?.rgba)
307
+ return populateFloat32Array.fillWithListData(_circleFlatEdgeCount, item.circleProperties.rgba);
308
+ return populateFloat32Array.fillWithListData(_circleFlatEdgeCount, item.chainProperties.rgba);
338
309
  }
339
310
  }],
340
311
  ["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); }
312
+ 'bufferManager': new BufferManager(gl, 1 * _circleFlatEdgeCount, { bufferType, initialCapacity }),
313
+ 'adaptor': (item) => populateFloat32Array.fillFloat32Array(_circleFlatEdgeCount, item.chainProperties.dashOpacity)
343
314
  }],
344
315
  ["centerCoords2dMercator", {
345
- 'bufferManager': new account_1.BufferManager(gl, 2 * _circleFlatEdgeCount, { bufferType: bufferType, initialCapacity: initialCapacity }),
346
- 'adaptor': function (item) { return item.centerCoords2dflat; },
316
+ 'bufferManager': new BufferManager(gl, 2 * _circleFlatEdgeCount, { bufferType, initialCapacity }),
317
+ 'adaptor': (item) => item.centerCoords2dflat,
347
318
  }],
348
319
  ]);
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); }));
320
+ const obj = (key) => createBufferAndReadInfo(this.bufferManagersCompMap.get(key).bufferManager.buffer);
321
+ this.lineVao = this.lineProgram.createVAO(...['centerCoords2d', 'centerCoords3d', 'targetCoords2d', 'targetCoords3d', 'dashRatio', 'dashOpacity', 'rgba'
322
+ ].map(key => obj(key)));
323
+ this.circleVao2d = this.circleProgram2d.createVAO(...["centerCoords2dMercator", "rgbaCircleMercator", "circleDashAngleMercator", "dashOpacityMercator"
324
+ ].map(key => obj(key)));
325
+ this.circle3DVao = this.circle3DProgram.createVAO(...["centerCoords3d", "targetCoords3d", "rgbaCircle", "circleDashAngle", "dashOpacity"
326
+ ].map(key => obj(key)));
356
327
  }
357
- };
358
- CircleLineChainPlugin.prototype._updateTexts = function (chainKeys, textWriterIDs) {
359
- var _this = this;
328
+ }
329
+ _updateTexts(chainKeys, textWriterIDs) {
360
330
  if (textWriterIDs.length === 0)
361
331
  return;
362
- var textWriters = textWriterGetOrThrow(this._textWritersMap, textWriterIDs);
363
- chainKeys.forEach(function (chainKey) {
364
- _this._chainListMap.textUpdate(chainKey, textWriters, _this._textDataPreAdaptor);
332
+ const textWriters = textWriterGetOrThrow(this._textWritersMap, textWriterIDs);
333
+ chainKeys.forEach((chainKey) => {
334
+ this._chainListMap.textUpdate(chainKey, textWriters, this._textDataPreAdaptor);
365
335
  });
366
- };
367
- CircleLineChainPlugin.prototype._reconstructChains = function (chainKeys) {
368
- var _this = this;
369
- var globe = this.globe;
336
+ }
337
+ _reconstructChains(chainKeys) {
338
+ const { globe } = this;
370
339
  // const radiusM = radiusMethod(globe);
371
- var callback = function (v, i, array, chainProperties) {
372
- var _a, _b;
340
+ const callback = (v, i, array, chainProperties) => {
373
341
  if (i === array.length - 1)
374
342
  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;
343
+ const centerCoords2dflat = centerCoords2dflatDataCreator(globe, v.long, v.lat, array[i + 1].long, array[i + 1].lat, { edgeCount: this._circleFlatEdgeCount });
344
+ const altitude = (v.altitude ?? chainProperties.altitude ?? 0) / 1000;
377
345
  return {
378
346
  chainProperties: chainProperties,
379
347
  // bigRadius: radiusM(v, i, array),
@@ -384,53 +352,52 @@ var CircleLineChainPlugin = /** @class */ (function () {
384
352
  lat: v.lat,
385
353
  lineProperties: v.lineProperties,
386
354
  circleProperties: v.circleProperties,
387
- centerCoords2dflat: centerCoords2dflat,
355
+ centerCoords2dflat,
388
356
  key: v.__identity__
389
357
  };
390
358
  };
391
- var bulkData = [];
392
- chainKeys.forEach(function (k) {
393
- _this._chainListMap.calculateBufferPropertiesChain(k, callback, bulkData);
359
+ const bulkData = [];
360
+ chainKeys.forEach((k) => {
361
+ this._chainListMap.calculateBufferPropertiesChain(k, callback, bulkData);
394
362
  });
395
363
  this._insertBulk(bulkData);
396
- };
397
- CircleLineChainPlugin.prototype._insertBulk = function (bulkData) {
364
+ }
365
+ _insertBulk(bulkData) {
398
366
  this.bufferOrchestrator.insertBulk(bulkData, this.bufferManagersCompMap);
399
367
  this.globe.DrawRender();
400
- };
368
+ }
401
369
  // GLOBE API
402
- CircleLineChainPlugin.prototype.free = function () {
370
+ free() {
403
371
  if (this.isFreed)
404
372
  return;
405
- this.bufferManagersCompMap.forEach(function (_a) {
406
- var bufferManager = _a.bufferManager;
373
+ this.bufferManagersCompMap.forEach(({ bufferManager }) => {
407
374
  bufferManager.free();
408
375
  });
409
- naive_accurate_flexible_1.LineOnGlobeCache.release(this.globe);
410
- circle_accurate_flat_1.CircleCache.release(this.globe);
411
- circle_accurate_3d_1.CircleCache.release(this.globe);
376
+ LineOnGlobeCache.release(this.globe);
377
+ CircleCache.release(this.globe);
378
+ Circle3DCache.release(this.globe);
412
379
  // LineToTheOriginCache.release(this.globe);
413
- this._textWritersMap.forEach(function (writer) { return writer.free(); });
414
- var gl = this.gl;
380
+ this._textWritersMap.forEach((writer) => writer.free());
381
+ const { gl } = this;
415
382
  gl.deleteVertexArray(this.lineVao);
416
383
  gl.deleteVertexArray(this.circleVao2d);
417
384
  gl.deleteVertexArray(this.circle3DVao);
418
385
  this.lineProgram = null;
419
386
  this.circleProgram2d = null;
420
387
  this.isFreed = true;
421
- };
422
- CircleLineChainPlugin.prototype.draw3D = function () {
423
- var _a = this, gl = _a.gl, globe = _a.globe;
388
+ }
389
+ draw3D() {
390
+ const { gl, globe } = this;
424
391
  gl.disable(gl.DEPTH_TEST);
425
- var drawOptions = {
392
+ const drawOptions = {
426
393
  drawRange: {
427
394
  first: 0,
428
395
  count: this.bufferOrchestrator.length
429
396
  }
430
397
  };
431
398
  this.lineProgram.draw(this.lineVao, drawOptions, this._opacity);
432
- this._textWritersMap.forEach(function (writer) { return writer.draw(); });
433
- var is3D = globe.api_GetCurrentGeometry() === 0;
399
+ this._textWritersMap.forEach((writer) => writer.draw());
400
+ const is3D = globe.api_GetCurrentGeometry() === 0;
434
401
  if (this._drawCircleOn) {
435
402
  if (is3D) {
436
403
  this.circle3DProgram.draw(this.circle3DVao, this.bufferOrchestrator.length, this._opacity);
@@ -440,10 +407,8 @@ var CircleLineChainPlugin = /** @class */ (function () {
440
407
  }
441
408
  }
442
409
  gl.enable(gl.DEPTH_TEST);
443
- };
444
- return CircleLineChainPlugin;
445
- }());
446
- exports.CircleLineChainPlugin = CircleLineChainPlugin;
410
+ }
411
+ }
447
412
  // const radiusMethod = (globe) => (v, i, array) => {
448
413
  // return globe.Math.GetDist3D(v.long, v.lat, array[i + 1].long, array[i + 1].lat)
449
414
  // }
@@ -1,5 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.keyMethod = void 0;
4
- var keyMethod = function (chainKey, nodeKey) { return "".concat(chainKey, "_").concat(nodeKey); };
5
- exports.keyMethod = keyMethod;
1
+ export const keyMethod = (chainKey, nodeKey) => `${chainKey}_${nodeKey}`;