@pirireis/webglobeplugins 0.9.10 → 0.9.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +80 -78
  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 +16 -14
  9. package/Math/methods.js +72 -67
  10. package/Math/plane.js +18 -16
  11. package/Math/quaternion.js +49 -45
  12. package/Math/utils.js +2 -2
  13. package/Math/vec3.js +45 -42
  14. package/algorithms/search-binary.js +4 -4
  15. package/altitude-locator/draw-subset-obj.js +8 -7
  16. package/altitude-locator/plugin.js +113 -97
  17. package/arrowfield/adaptor.js +4 -3
  18. package/arrowfield/index.js +2 -2
  19. package/arrowfield/plugin.js +65 -62
  20. package/bearing-line/index.js +1 -1
  21. package/bearing-line/plugin.js +225 -200
  22. package/circle-line-chain/chain-list-map.js +88 -82
  23. package/circle-line-chain/plugin.js +154 -129
  24. package/circle-line-chain/util.js +1 -1
  25. package/compass-rose/compass-rose-padding-flat.js +126 -104
  26. package/compass-rose/compass-text-writer.js +70 -62
  27. package/compass-rose/index.js +2 -2
  28. package/compassrose/compassrose.js +50 -46
  29. package/compassrose/index.js +1 -1
  30. package/heatwave/index.js +2 -2
  31. package/heatwave/isobar/objectarraylabels.js +48 -44
  32. package/heatwave/isobar/plugin.js +123 -104
  33. package/heatwave/isobar/quadtreecontours.js +92 -76
  34. package/heatwave/plugins/heatwaveglobeshell.js +87 -69
  35. package/index.js +11 -11
  36. package/package.json +1 -1
  37. package/partialrings/buffer-manager.js +64 -32
  38. package/partialrings/index.js +1 -1
  39. package/partialrings/plugin.js +84 -48
  40. package/partialrings/program.js +47 -136
  41. package/pin/pin-object-array.js +86 -83
  42. package/pin/pin-point-totem.js +22 -21
  43. package/point-heat-map/adaptors/timetracksplugin-format-to-this.js +10 -10
  44. package/point-heat-map/plugin-webworker.js +45 -40
  45. package/point-heat-map/point-to-heat-map-flow.js +42 -40
  46. package/point-tracks/key-methods.js +1 -1
  47. package/point-tracks/plugin.js +142 -127
  48. package/programs/arrowfield/index.js +1 -1
  49. package/programs/arrowfield/logic.js +62 -170
  50. package/programs/arrowfield/object.js +35 -33
  51. package/programs/data2legend/density-to-legend.js +21 -45
  52. package/programs/data2legend/point-to-density-texture.js +27 -52
  53. package/programs/float2legendwithratio/index.js +1 -1
  54. package/programs/float2legendwithratio/logic.js +42 -88
  55. package/programs/float2legendwithratio/object.js +46 -43
  56. package/programs/globe-util/is-globe-moved.js +11 -10
  57. package/programs/globeshell/index.js +1 -1
  58. package/programs/globeshell/wiggle/index.js +1 -1
  59. package/programs/globeshell/wiggle/logic.js +98 -191
  60. package/programs/globeshell/wiggle/object.js +35 -33
  61. package/programs/helpers/blender/program.js +19 -36
  62. package/programs/helpers/fadeaway/index.js +1 -1
  63. package/programs/helpers/fadeaway/logic.js +13 -35
  64. package/programs/helpers/fadeaway/object.js +10 -9
  65. package/programs/helpers/index.js +1 -1
  66. package/programs/index.js +8 -8
  67. package/programs/line-on-globe/angled-line.js +32 -91
  68. package/programs/line-on-globe/circle-accurate-3d.js +32 -82
  69. package/programs/line-on-globe/circle-accurate-flat.js +50 -108
  70. package/programs/line-on-globe/circle-accurate.js +33 -103
  71. package/programs/line-on-globe/circle.js +32 -97
  72. package/programs/line-on-globe/degree-padding-around-circle-3d.js +33 -83
  73. package/programs/line-on-globe/lines-color-instanced-flat.js +34 -79
  74. package/programs/line-on-globe/linestrip.js +39 -100
  75. package/programs/line-on-globe/naive-accurate-flexible.js +48 -118
  76. package/programs/line-on-globe/to-the-surface.js +29 -58
  77. package/programs/line-on-globe/util.js +1 -1
  78. package/programs/picking/pickable-renderer.js +33 -117
  79. package/programs/point-on-globe/element-globe-surface-glow.js +38 -78
  80. package/programs/point-on-globe/element-point-glow.js +35 -103
  81. package/programs/point-on-globe/square-pixel-point.js +27 -76
  82. package/programs/programcache.js +13 -13
  83. package/programs/rings/distancering/circleflatprogram.js +21 -63
  84. package/programs/rings/distancering/circlepaddingfreeangleprogram.js +145 -156
  85. package/programs/rings/distancering/circlepaddysharedbuffer.js +197 -121
  86. package/programs/rings/distancering/index.js +4 -4
  87. package/programs/rings/distancering/paddyflatprogram.js +20 -73
  88. package/programs/rings/distancering/paddyflatprogram2d.js +22 -75
  89. package/programs/rings/distancering/paddyflatprogram3d.js +20 -73
  90. package/programs/rings/partial-ring/piece-of-pie.js +35 -137
  91. package/programs/totems/camerauniformblock.js +51 -64
  92. package/programs/totems/canvas-webglobe-info.js +40 -48
  93. package/programs/totems/gpu-selection-uniform-block.js +40 -44
  94. package/programs/totems/index.js +1 -1
  95. package/programs/two-d/pixel-padding-for-compass.js +29 -90
  96. package/programs/util.js +7 -6
  97. package/programs/vectorfields/index.js +1 -1
  98. package/programs/vectorfields/logics/drawrectangleparticles.js +29 -70
  99. package/programs/vectorfields/logics/index.js +3 -3
  100. package/programs/vectorfields/logics/pixelbased.js +35 -91
  101. package/programs/vectorfields/logics/ubo.js +25 -31
  102. package/programs/vectorfields/pingpongbuffermanager.js +34 -30
  103. package/rangerings/index.js +4 -4
  104. package/rangerings/plugin.js +252 -202
  105. package/rangerings/rangeringangletext.js +120 -108
  106. package/rangerings/ring-account.js +69 -52
  107. package/shaders/fragment-toy/firework.js +1 -55
  108. package/shaders/fragment-toy/singularity.js +1 -55
  109. package/timetracks/adaptors-line-strip.js +37 -26
  110. package/timetracks/adaptors.js +61 -47
  111. package/timetracks/index.js +4 -4
  112. package/timetracks/plugin-line-strip.js +63 -59
  113. package/timetracks/plugin.js +69 -65
  114. package/timetracks/program-line-strip.js +103 -296
  115. package/timetracks/program.js +113 -419
  116. package/timetracks/programpoint-line-strip.js +44 -97
  117. package/timetracks/programpoint.js +44 -90
  118. package/util/account/bufferoffsetmanager.js +95 -72
  119. package/util/account/index.js +1 -1
  120. package/util/account/single-attribute-buffer-management/buffer-manager.js +43 -39
  121. package/util/account/single-attribute-buffer-management/buffer-orchestrator.js +94 -64
  122. package/util/account/single-attribute-buffer-management/index.js +3 -3
  123. package/util/account/single-attribute-buffer-management/object-store.js +30 -28
  124. package/util/account/util.js +4 -2
  125. package/util/algorithms/search-binary.js +4 -4
  126. package/util/check/get.js +5 -5
  127. package/util/check/typecheck.js +15 -13
  128. package/util/geometry/index.js +11 -9
  129. package/util/gl-util/buffer/attribute-loader.js +20 -8
  130. package/util/gl-util/buffer/index.js +1 -1
  131. package/util/gl-util/draw-options/methods.js +7 -7
  132. package/util/gl-util/uniform-block/manager.js +67 -55
  133. package/util/heatwavedatamanager/datamanager.js +116 -56
  134. package/util/heatwavedatamanager/index.js +2 -2
  135. package/util/heatwavedatamanager/pointcoordinatesdatacalculator.js +40 -37
  136. package/util/heatwavedatamanager/pointcoordsmeta.js +10 -9
  137. package/util/index.js +6 -6
  138. package/util/interpolation/timetrack/index.js +1 -1
  139. package/util/interpolation/timetrack/timetrack-interpolator.js +29 -27
  140. package/util/interpolation/timetrack/web-worker-str.js +1 -179
  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 +52 -46
  146. package/util/programs/draw-texture-on-canvas.js +21 -39
  147. package/util/programs/shapesonglobe.js +64 -104
  148. package/util/programs/supersampletotextures.js +39 -45
  149. package/util/programs/texturetoglobe.js +48 -98
  150. package/util/shaderfunctions/geometrytransformations.js +27 -322
  151. package/util/shaderfunctions/nodata.js +1 -7
  152. package/util/shaderfunctions/noisefunctions.js +9 -39
  153. package/util/surface-line-data/arcs-to-cuts.js +23 -20
  154. package/util/webglobe/rasteroverlay.js +37 -35
  155. package/util/webglobjectbuilders.js +60 -55
  156. package/util/webglobjectbuilders1.js +49 -48
  157. package/waveparticles/adaptor.js +7 -6
  158. package/waveparticles/index.js +2 -2
  159. package/waveparticles/plugin.js +84 -79
  160. package/wind/imagetovectorfieldandmagnitude.js +15 -15
  161. package/wind/index.js +4 -4
  162. package/wind/plugin.js +251 -453
  163. package/wind/vectorfieldimage.js +5 -5
  164. package/write-text/attached-text-writer.js +48 -46
  165. package/write-text/context-text.js +58 -51
  166. package/write-text/context-text3.js +74 -69
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  function getVectorField(u, v, width, height, vMin, vMax, uMin, uMax, flip) {
4
- const data = new Uint8ClampedArray(width * height * 4);
5
- for (let row = 0; row < height; row++) {
6
- for (let col = 0; col < width; col++) {
7
- let k = flip ? ((height - row - 1) * width + col) : row * width + col;
8
- let idx = (width * row + col) << 2; // Multiply by 4 for RGBA
4
+ var data = new Uint8ClampedArray(width * height * 4);
5
+ for (var row = 0; row < height; row++) {
6
+ for (var col = 0; col < width; col++) {
7
+ var k = flip ? ((height - row - 1) * width + col) : row * width + col;
8
+ var idx = (width * row + col) << 2; // Multiply by 4 for RGBA
9
9
  if (u[k] === null || v[k] === null || isNaN(u[k]) || !isFinite(u[k]) || isNaN(v[k]) || !isFinite(v[k])) {
10
10
  data[idx] = 0; // R
11
11
  data[idx + 1] = 0; // G
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AttachedTextWriter = void 0;
4
- const webglobe_1 = require("@pirireis/webglobe");
5
- const typecheck_1 = require("../util/check/typecheck");
4
+ var webglobe_1 = require("@pirireis/webglobe");
5
+ var typecheck_1 = require("../util/check/typecheck");
6
6
  /**
7
7
  * Light wight version of context text writer.
8
8
  * The parameters by text are calculated on user side and inserted as items. (ContextTextWriter3 constructs text data from items)
@@ -14,25 +14,26 @@ const typecheck_1 = require("../util/check/typecheck");
14
14
  * With AttachedTextWriter the glue is created by user.
15
15
  * I observed that the users generally uses a wrapper around the plugin logic anyway. This wrapper can be used as the glue for plugin and attacked writer.
16
16
  */
17
- class AttachedTextWriter {
18
- constructor(globe, { style = {
19
- textFont: {
20
- name: 'Arial',
21
- textColor: '#FFFFFF', // beyaz
22
- hollowColor: '#000000', // siyah
23
- size: 12, // piksel
24
- hollow: true,
25
- bold: true,
26
- italic: false,
27
- },
28
- opacity: 1.0,
29
- zMode: webglobe_1.CSZMode.Z_GROUND_PERVERTEX,
30
- }, doDraw = true, angleOnSphere = false, zoomLevelAdaptor = (zoomLevel) => (item) => {
31
- return {
32
- opacityMultiplier: 1,
33
- sizeMultiplier: 1
34
- };
35
- }, } = {}) {
17
+ var AttachedTextWriter = /** @class */ (function () {
18
+ function AttachedTextWriter(globe, _a) {
19
+ var _b = _a === void 0 ? {} : _a, _c = _b.style, style = _c === void 0 ? {
20
+ textFont: {
21
+ name: 'Arial',
22
+ textColor: '#FFFFFF', // beyaz
23
+ hollowColor: '#000000', // siyah
24
+ size: 12, // piksel
25
+ hollow: true,
26
+ bold: true,
27
+ italic: false,
28
+ },
29
+ opacity: 1.0,
30
+ zMode: webglobe_1.CSZMode.Z_GROUND_PERVERTEX,
31
+ } : _c, _d = _b.doDraw, doDraw = _d === void 0 ? true : _d, _e = _b.angleOnSphere, angleOnSphere = _e === void 0 ? false : _e, _f = _b.zoomLevelAdaptor, zoomLevelAdaptor = _f === void 0 ? function (zoomLevel) { return function (item) {
32
+ return {
33
+ opacityMultiplier: 1,
34
+ sizeMultiplier: 1
35
+ };
36
+ }; } : _f;
36
37
  this.globe = globe;
37
38
  this._itemMap = new Map();
38
39
  this.doDraw = doDraw;
@@ -40,52 +41,53 @@ class AttachedTextWriter {
40
41
  this.zoomLevelAdaptor = zoomLevelAdaptor;
41
42
  this.setStyle(style);
42
43
  }
43
- setOpacity(opacity) {
44
+ AttachedTextWriter.prototype.setOpacity = function (opacity) {
44
45
  (0, typecheck_1.opacityCheck)(opacity);
45
46
  this._style.opacity = opacity;
46
47
  this.globe.DrawRender();
47
- }
48
- setStyle(style) {
48
+ };
49
+ AttachedTextWriter.prototype.setStyle = function (style) {
49
50
  (0, typecheck_1.isTextFont)(style.textFont);
50
51
  this._style = style;
51
52
  this.globe.DrawRender();
52
- }
53
+ };
53
54
  /**
54
55
  *
55
56
  * @param {{text, long, lat, z = 0, xOffset = 0, yOffset = 0, isAngleOn = false, Angle = 0 }} item
56
57
  * @returns
57
58
  */
58
- insertItem(item) {
59
- const key = this.keyAdaptor ? this.keyAdaptor(item) : item;
59
+ AttachedTextWriter.prototype.insertItem = function (item) {
60
+ var key = this.keyAdaptor ? this.keyAdaptor(item) : item;
60
61
  this._itemMap.set(key, item);
61
62
  this.globe.DrawRender();
62
- }
63
+ };
63
64
  // TODO: use item style
64
- draw() {
65
+ AttachedTextWriter.prototype.draw = function () {
65
66
  if (!this.doDraw) {
66
67
  return;
67
68
  }
68
- const { globe, _itemMap, _style } = this;
69
- const { zMode, textFont, opacity } = _style;
70
- const is3D = globe.api_GetCurrentGeometry() === 0;
71
- const angleIsOn = is3D ? true : this.angleOnSphere;
72
- const zoomLevel = globe.api_GetCurrentLODWithDecimal();
73
- const zoomAdaptor = this.zoomLevelAdaptor(zoomLevel);
74
- const theSize = textFont.size;
75
- _itemMap.forEach((item, key) => {
76
- const { text, long, lat, z = 0, xOffset = 0, yOffset = 0, isAngleOn = false, angle = 0 } = item;
77
- const { x, y } = globe.api_GetScreenPointFromGeo({
78
- long,
79
- lat,
80
- z
81
- }, zMode);
82
- const { opacityMultiplier, sizeMultiplier } = zoomAdaptor(item);
69
+ var _a = this, globe = _a.globe, _itemMap = _a._itemMap, _style = _a._style;
70
+ var zMode = _style.zMode, textFont = _style.textFont, opacity = _style.opacity;
71
+ var is3D = globe.api_GetCurrentGeometry() === 0;
72
+ var angleIsOn = is3D ? true : this.angleOnSphere;
73
+ var zoomLevel = globe.api_GetCurrentLODWithDecimal();
74
+ var zoomAdaptor = this.zoomLevelAdaptor(zoomLevel);
75
+ var theSize = textFont.size;
76
+ _itemMap.forEach(function (item, key) {
77
+ var text = item.text, long = item.long, lat = item.lat, _a = item.z, z = _a === void 0 ? 0 : _a, _b = item.xOffset, xOffset = _b === void 0 ? 0 : _b, _c = item.yOffset, yOffset = _c === void 0 ? 0 : _c, _d = item.isAngleOn, isAngleOn = _d === void 0 ? false : _d, _e = item.angle, angle = _e === void 0 ? 0 : _e;
78
+ var _f = globe.api_GetScreenPointFromGeo({
79
+ long: long,
80
+ lat: lat,
81
+ z: z
82
+ }, zMode), x = _f.x, y = _f.y;
83
+ var _g = zoomAdaptor(item), opacityMultiplier = _g.opacityMultiplier, sizeMultiplier = _g.sizeMultiplier;
83
84
  textFont.size = sizeMultiplier * theSize;
84
85
  if (x !== null && y !== null) {
85
86
  globe.api_DrawContextText(text, textFont, opacityMultiplier * opacity, { x: x + xOffset, y: y - yOffset }, (isAngleOn && angleIsOn), angle);
86
87
  }
87
88
  });
88
89
  textFont.size = theSize;
89
- }
90
- }
90
+ };
91
+ return AttachedTextWriter;
92
+ }());
91
93
  exports.AttachedTextWriter = AttachedTextWriter;
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ContextTextWriter = void 0;
4
- const webglobe_1 = require("@pirireis/webglobe");
5
- const defaultStyle = {
4
+ var webglobe_1 = require("@pirireis/webglobe");
5
+ var defaultStyle = {
6
6
  textFont: {
7
7
  name: 'Arial',
8
8
  textColor: '#FFFFFF', // beyaz
@@ -15,84 +15,91 @@ const defaultStyle = {
15
15
  opacity: 1.0,
16
16
  zMode: webglobe_1.CSZMode.Z_GROUND_PERVERTEX,
17
17
  };
18
- class ContextTextWriter {
19
- constructor(globe, { style = null, doDraw = true } = {}) {
18
+ var ContextTextWriter = /** @class */ (function () {
19
+ function ContextTextWriter(globe, _a) {
20
+ var _b = _a === void 0 ? {} : _a, _c = _b.style, style = _c === void 0 ? null : _c, _d = _b.doDraw, doDraw = _d === void 0 ? true : _d;
20
21
  this.globe = globe;
21
22
  this.itemMap = new Map();
22
23
  this.style = style || defaultStyle;
23
24
  this.doDraw = doDraw;
24
25
  }
25
- setDoDraw(bool) {
26
+ ContextTextWriter.prototype.setDoDraw = function (bool) {
26
27
  this.doDraw = bool;
27
- }
28
- setStyle(style) {
28
+ };
29
+ ContextTextWriter.prototype.setStyle = function (style) {
29
30
  this.style = style;
30
- }
31
- setOpacity(opacity) {
31
+ };
32
+ ContextTextWriter.prototype.setOpacity = function (opacity) {
32
33
  this.style.opacity = opacity;
33
- }
34
+ };
34
35
  // Clean this ask Front dev
35
- doDraw(boolean) {
36
+ ContextTextWriter.prototype.doDraw = function (boolean) {
36
37
  this.doDraw = boolean;
37
- }
38
- draw() {
38
+ };
39
+ ContextTextWriter.prototype.draw = function () {
39
40
  if (!this.doDraw)
40
41
  return;
41
- const { globe, style, itemMap } = this;
42
- const { textFont, opacity: opacity_ } = style;
43
- for (const [key, { lat, long, text, opacity = null }] of itemMap) {
44
- const { x, y } = globe.api_GetScreenPointFromGeo({
42
+ var _a = this, globe = _a.globe, style = _a.style, itemMap = _a.itemMap;
43
+ var textFont = style.textFont, opacity_ = style.opacity;
44
+ for (var _i = 0, itemMap_1 = itemMap; _i < itemMap_1.length; _i++) {
45
+ var _b = itemMap_1[_i], key = _b[0], _c = _b[1], lat = _c.lat, long = _c.long, text = _c.text, _d = _c.opacity, opacity = _d === void 0 ? null : _d;
46
+ var _e = globe.api_GetScreenPointFromGeo({
45
47
  long: long,
46
48
  lat: lat,
47
49
  z: 0,
48
- }, style.zMode === webglobe_1.CSZMode.Z_MSL);
49
- const o = opacity === null ? opacity_ : opacity * opacity_;
50
+ }, style.zMode === webglobe_1.CSZMode.Z_MSL), x = _e.x, y = _e.y;
51
+ var o = opacity === null ? opacity_ : opacity * opacity_;
50
52
  if (x !== null && y !== null)
51
- globe.api_DrawContextTextMultiLine(text, textFont, o, { x, y });
53
+ globe.api_DrawContextTextMultiLine(text, textFont, o, { x: x, y: y });
52
54
  }
53
- }
54
- insertText(key, lat, long, text) {
55
- this.itemMap.set(key, { lat, long, text });
56
- }
57
- updateOpacityOfItem(key, opacity) {
55
+ };
56
+ ContextTextWriter.prototype.insertText = function (key, lat, long, text) {
57
+ this.itemMap.set(key, { lat: lat, long: long, text: text });
58
+ };
59
+ ContextTextWriter.prototype.updateOpacityOfItem = function (key, opacity) {
58
60
  this.itemMap.get(key).opacity = opacity;
59
- }
60
- updateOpacityBulk(items, keyAdaptor, valueAdaptor) {
61
- for (const item of items) {
62
- const key = keyAdaptor(item);
63
- const opacity = valueAdaptor(item);
64
- const data = this.itemMap.get(key);
61
+ };
62
+ ContextTextWriter.prototype.updateOpacityBulk = function (items, keyAdaptor, valueAdaptor) {
63
+ for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {
64
+ var item = items_1[_i];
65
+ var key = keyAdaptor(item);
66
+ var opacity = valueAdaptor(item);
67
+ var data = this.itemMap.get(key);
65
68
  data.opacity = opacity;
66
69
  }
67
- }
68
- updateText(key, text) {
69
- const item = this.itemMap.get(key);
70
+ };
71
+ ContextTextWriter.prototype.updateText = function (key, text) {
72
+ var item = this.itemMap.get(key);
70
73
  item.text = text;
71
- }
72
- updateCoords(key, lat, long) {
73
- const item = this.itemMap.get(key);
74
+ };
75
+ ContextTextWriter.prototype.updateCoords = function (key, lat, long) {
76
+ var item = this.itemMap.get(key);
74
77
  item.lat = lat;
75
78
  item.long = long;
76
- }
77
- insertTextBulk(items) {
78
- for (const item of items) {
79
+ };
80
+ ContextTextWriter.prototype.insertTextBulk = function (items) {
81
+ for (var _i = 0, items_2 = items; _i < items_2.length; _i++) {
82
+ var item = items_2[_i];
79
83
  this.itemMap.set(item.key, item);
80
84
  }
81
- }
82
- updateTextCoordsBulk(items) {
83
- for (const { key, lat, long } of items) {
84
- const item = this.itemMap.get(key);
85
+ };
86
+ ContextTextWriter.prototype.updateTextCoordsBulk = function (items) {
87
+ for (var _i = 0, items_3 = items; _i < items_3.length; _i++) {
88
+ var _a = items_3[_i], key = _a.key, lat = _a.lat, long = _a.long;
89
+ var item = this.itemMap.get(key);
85
90
  item.lat = lat;
86
91
  item.long = long;
87
92
  }
88
- }
89
- deleteTextBulk(keys) {
90
- for (const key of keys) {
93
+ };
94
+ ContextTextWriter.prototype.deleteTextBulk = function (keys) {
95
+ for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
96
+ var key = keys_1[_i];
91
97
  this.itemMap.delete(key);
92
98
  }
93
- }
94
- clear() {
99
+ };
100
+ ContextTextWriter.prototype.clear = function () {
95
101
  this.itemMap.clear();
96
- }
97
- }
102
+ };
103
+ return ContextTextWriter;
104
+ }());
98
105
  exports.ContextTextWriter = ContextTextWriter;
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ContextTextWriter3 = void 0;
4
- const webglobe_1 = require("@pirireis/webglobe");
5
- const typecheck_1 = require("../util/check/typecheck");
4
+ var webglobe_1 = require("@pirireis/webglobe");
5
+ var typecheck_1 = require("../util/check/typecheck");
6
6
  /**
7
7
  * TODOs:
8
8
  * 1) update all if initials change (propably need a context and a callback to iterate over zPayload)
@@ -11,25 +11,26 @@ const typecheck_1 = require("../util/check/typecheck");
11
11
  *
12
12
  * TODO: key check and raise error if doesnt exist
13
13
  */
14
- class ContextTextWriter3 {
15
- constructor(globe, { style = {
16
- textFont: {
17
- name: 'Arial',
18
- textColor: '#FFFFFF', // beyaz
19
- hollowColor: '#000000', // siyah
20
- size: 12, // piksel
21
- hollow: true,
22
- bold: true,
23
- italic: false,
24
- },
25
- opacity: 1.0,
26
- zMode: webglobe_1.CSZMode.Z_GROUND_PERVERTEX,
27
- }, xOffset = 0, yOffset = 0, doDraw = true, textAdaptor = null, coordinatesAdaptor = null, keyAdaptor = null, opacityAdaptor = null, angleAdaptor = null, angleOnSphere = false, positionAdaptor = (item, i, container, properties) => "left", zoomLevelAdaptor = (zoomLevel) => (item) => {
28
- return {
29
- opacityMultiplier: 1,
30
- sizeMultiplier: 1
31
- };
32
- } } = {}) {
14
+ var ContextTextWriter3 = /** @class */ (function () {
15
+ function ContextTextWriter3(globe, _a) {
16
+ var _b = _a === void 0 ? {} : _a, _c = _b.style, style = _c === void 0 ? {
17
+ textFont: {
18
+ name: 'Arial',
19
+ textColor: '#FFFFFF', // beyaz
20
+ hollowColor: '#000000', // siyah
21
+ size: 12, // piksel
22
+ hollow: true,
23
+ bold: true,
24
+ italic: false,
25
+ },
26
+ opacity: 1.0,
27
+ zMode: webglobe_1.CSZMode.Z_GROUND_PERVERTEX,
28
+ } : _c, _d = _b.xOffset, xOffset = _d === void 0 ? 0 : _d, _e = _b.yOffset, yOffset = _e === void 0 ? 0 : _e, _f = _b.doDraw, doDraw = _f === void 0 ? true : _f, _g = _b.textAdaptor, textAdaptor = _g === void 0 ? null : _g, _h = _b.coordinatesAdaptor, coordinatesAdaptor = _h === void 0 ? null : _h, _j = _b.keyAdaptor, keyAdaptor = _j === void 0 ? null : _j, _k = _b.opacityAdaptor, opacityAdaptor = _k === void 0 ? null : _k, _l = _b.angleAdaptor, angleAdaptor = _l === void 0 ? null : _l, _m = _b.angleOnSphere, angleOnSphere = _m === void 0 ? false : _m, _o = _b.positionAdaptor, positionAdaptor = _o === void 0 ? function (item, i, container, properties) { return "left"; } : _o, _p = _b.zoomLevelAdaptor, zoomLevelAdaptor = _p === void 0 ? function (zoomLevel) { return function (item) {
29
+ return {
30
+ opacityMultiplier: 1,
31
+ sizeMultiplier: 1
32
+ };
33
+ }; } : _p;
33
34
  this.globe = globe;
34
35
  this.itemMap = new Map();
35
36
  this.setStyle(style);
@@ -40,20 +41,20 @@ class ContextTextWriter3 {
40
41
  this.keyAdaptor = keyAdaptor;
41
42
  this.zoomLevelAdaptor = zoomLevelAdaptor;
42
43
  this.positionAdaptor = positionAdaptor;
43
- this.opacityAdaptor = opacityAdaptor ? opacityAdaptor : () => 1;
44
+ this.opacityAdaptor = opacityAdaptor ? opacityAdaptor : function () { return 1; };
44
45
  this.angleOnSphere = angleOnSphere;
45
46
  if (angleAdaptor) {
46
47
  this.angleAdaptor = angleAdaptor;
47
48
  this.angleAdaptorIsOn = true;
48
49
  }
49
50
  else {
50
- this.angleAdaptor = () => null;
51
+ this.angleAdaptor = function () { return null; };
51
52
  this.angleAdaptorIsOn = false;
52
53
  }
53
54
  this.xOffset = xOffset;
54
55
  this.yOffset = yOffset;
55
56
  }
56
- _checkParameterTypes(textAdaptor, coordinatesAdaptor, keyAdaptor, opacityAdaptor, angleAdaptor, xOffset, yOffset) {
57
+ ContextTextWriter3.prototype._checkParameterTypes = function (textAdaptor, coordinatesAdaptor, keyAdaptor, opacityAdaptor, angleAdaptor, xOffset, yOffset) {
57
58
  if (textAdaptor !== null)
58
59
  if (!(textAdaptor instanceof Function))
59
60
  throw new Error("textAdaptor is not an instance of a Function");
@@ -73,83 +74,87 @@ class ContextTextWriter3 {
73
74
  throw new Error("xOffset type is not a number");
74
75
  if (typeof yOffset !== "number")
75
76
  throw new Error("yOffset type is not a number");
76
- }
77
- setKeyAdaptor(adaptor) {
77
+ };
78
+ ContextTextWriter3.prototype.setKeyAdaptor = function (adaptor) {
78
79
  this.keyAdaptor = adaptor;
79
- }
80
- setDoDraw(bool) {
80
+ };
81
+ ContextTextWriter3.prototype.setDoDraw = function (bool) {
81
82
  this.doDraw = bool;
82
83
  this.globe.DrawRender();
83
- }
84
- setStyle(style) {
84
+ };
85
+ ContextTextWriter3.prototype.setStyle = function (style) {
85
86
  (0, typecheck_1.isTextFont)(style.textFont);
86
87
  (0, typecheck_1.opacityCheck)(style.opacity); //TODO: use shallow copy
87
88
  this.style = style;
88
89
  this.globe.DrawRender();
89
- }
90
- setOpacity(opacity) {
90
+ };
91
+ ContextTextWriter3.prototype.setOpacity = function (opacity) {
91
92
  this.style.opacity = opacity;
92
93
  this.globe.DrawRender();
93
- }
94
- draw() {
94
+ };
95
+ ContextTextWriter3.prototype.draw = function () {
95
96
  if (!this.doDraw)
96
97
  return;
97
- const { globe, style, itemMap, xOffset, yOffset } = this;
98
- const { textFont, opacity: opacity_ } = style;
99
- const textSize = textFont.size;
100
- const is3D = globe.api_GetCurrentGeometry() === 0;
101
- const angleIsOn = is3D ? (this.angleAdaptorIsOn && this.angleOnSphere) : (this.angleAdaptorIsOn);
102
- const zoomLevel = globe.api_GetCurrentLODWithDecimal();
103
- const zoomAdaptor = this.zoomLevelAdaptor(zoomLevel);
104
- for (const item of itemMap.values()) {
105
- const { lat, long, text, opacity = null, angle = null, zPayload, position } = item;
106
- const { x, y } = globe.api_GetScreenPointFromGeo({
98
+ var _a = this, globe = _a.globe, style = _a.style, itemMap = _a.itemMap, xOffset = _a.xOffset, yOffset = _a.yOffset;
99
+ var textFont = style.textFont, opacity_ = style.opacity;
100
+ var textSize = textFont.size;
101
+ var is3D = globe.api_GetCurrentGeometry() === 0;
102
+ var angleIsOn = is3D ? (this.angleAdaptorIsOn && this.angleOnSphere) : (this.angleAdaptorIsOn);
103
+ var zoomLevel = globe.api_GetCurrentLODWithDecimal();
104
+ var zoomAdaptor = this.zoomLevelAdaptor(zoomLevel);
105
+ for (var _i = 0, _b = itemMap.values(); _i < _b.length; _i++) {
106
+ var item = _b[_i];
107
+ var lat = item.lat, long = item.long, text = item.text, _c = item.opacity, opacity = _c === void 0 ? null : _c, _d = item.angle, angle = _d === void 0 ? null : _d, zPayload = item.zPayload, position = item.position;
108
+ var _e = globe.api_GetScreenPointFromGeo({
107
109
  long: long,
108
110
  lat: lat,
109
111
  z: 0,
110
- }, style.zMode === webglobe_1.CSZMode.Z_MSL);
111
- const { opacityMultiplier, sizeMultiplier } = zoomAdaptor(zPayload);
112
- const o = (opacity === null ? opacity_ : opacity * opacity_) * opacityMultiplier;
112
+ }, style.zMode === webglobe_1.CSZMode.Z_MSL), x = _e.x, y = _e.y;
113
+ var _f = zoomAdaptor(zPayload), opacityMultiplier = _f.opacityMultiplier, sizeMultiplier = _f.sizeMultiplier;
114
+ var o = (opacity === null ? opacity_ : opacity * opacity_) * opacityMultiplier;
113
115
  textFont.size = sizeMultiplier * textSize;
114
116
  textFont.position = position;
115
117
  if (x !== null && y !== null)
116
118
  globe.api_DrawContextTextMultiLine(text, textFont, o, { x: x + xOffset, y: y - yOffset }, angleIsOn, angle);
117
119
  }
118
120
  textFont.size = textSize;
119
- }
120
- insertTextBulk(container, properties) {
121
- container.forEach((v, i, c) => {
122
- this.insertText(v, i, c, properties);
121
+ };
122
+ ContextTextWriter3.prototype.insertTextBulk = function (container, properties) {
123
+ var _this = this;
124
+ container.forEach(function (v, i, c) {
125
+ _this.insertText(v, i, c, properties);
123
126
  });
124
- }
125
- deleteTextBulk(keys) {
126
- for (const key of keys) {
127
+ };
128
+ ContextTextWriter3.prototype.deleteTextBulk = function (keys) {
129
+ for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
130
+ var key = keys_1[_i];
127
131
  this.itemMap.delete(key);
128
132
  }
129
- }
130
- insertText(item, id, container, properties) {
131
- const key = this.keyAdaptor(item, id, container, properties);
132
- const coords = this.coordinatesAdaptor(item, id, container, properties);
133
+ };
134
+ ContextTextWriter3.prototype.insertText = function (item, id, container, properties) {
135
+ var key = this.keyAdaptor(item, id, container, properties);
136
+ var coords = this.coordinatesAdaptor(item, id, container, properties);
133
137
  if (coords == null) {
134
138
  this.itemMap.delete(key);
135
139
  return;
136
140
  }
137
- const text = this.textAdaptor(item, id, container, properties);
141
+ var text = this.textAdaptor(item, id, container, properties);
138
142
  if (text == null) {
139
143
  this.itemMap.delete(key);
140
144
  return;
141
145
  }
142
146
  ;
143
- const opacity = this.opacityAdaptor(item, id, container, properties);
144
- const angle = this.angleAdaptor(item, id, container, properties);
145
- const position = this.positionAdaptor(item, id, container, properties);
146
- this.itemMap.set(key, { long: coords.long, lat: coords.lat, text, opacity, angle, zPayload: item, position });
147
- }
148
- clear() {
147
+ var opacity = this.opacityAdaptor(item, id, container, properties);
148
+ var angle = this.angleAdaptor(item, id, container, properties);
149
+ var position = this.positionAdaptor(item, id, container, properties);
150
+ this.itemMap.set(key, { long: coords.long, lat: coords.lat, text: text, opacity: opacity, angle: angle, zPayload: item, position: position });
151
+ };
152
+ ContextTextWriter3.prototype.clear = function () {
149
153
  this.itemMap.clear();
150
- }
151
- free() {
154
+ };
155
+ ContextTextWriter3.prototype.free = function () {
152
156
  this.itemMap = null;
153
- }
154
- }
157
+ };
158
+ return ContextTextWriter3;
159
+ }());
155
160
  exports.ContextTextWriter3 = ContextTextWriter3;