@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,11 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
1
  function getVectorField(u, v, width, height, vMin, vMax, uMin, uMax, flip) {
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
2
+ const data = new Uint8ClampedArray(width * height * 4);
3
+ for (let row = 0; row < height; row++) {
4
+ for (let col = 0; col < width; col++) {
5
+ let k = flip ? ((height - row - 1) * width + col) : row * width + col;
6
+ let idx = (width * row + col) << 2; // Multiply by 4 for RGBA
9
7
  if (u[k] === null || v[k] === null || isNaN(u[k]) || !isFinite(u[k]) || isNaN(v[k]) || !isFinite(v[k])) {
10
8
  data[idx] = 0; // R
11
9
  data[idx + 1] = 0; // G
@@ -22,4 +20,4 @@ function getVectorField(u, v, width, height, vMin, vMax, uMin, uMax, flip) {
22
20
  }
23
21
  return data;
24
22
  }
25
- exports.default = getVectorField;
23
+ export default getVectorField;
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AttachedTextWriter = void 0;
4
- var webglobe_1 = require("@pirireis/webglobe");
5
- var typecheck_1 = require("../util/check/typecheck");
1
+ import { CSZMode } from "@pirireis/webglobe";
2
+ import { isTextFont, opacityCheck } from "../util/check/typecheck";
6
3
  /**
7
4
  * Light wight version of context text writer.
8
5
  * The parameters by text are calculated on user side and inserted as items. (ContextTextWriter3 constructs text data from items)
@@ -14,26 +11,25 @@ var typecheck_1 = require("../util/check/typecheck");
14
11
  * With AttachedTextWriter the glue is created by user.
15
12
  * 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
13
  */
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;
14
+ export class AttachedTextWriter {
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: CSZMode.Z_GROUND_PERVERTEX,
27
+ }, doDraw = true, angleOnSphere = false, zoomLevelAdaptor = (zoomLevel) => (item) => {
28
+ return {
29
+ opacityMultiplier: 1,
30
+ sizeMultiplier: 1
31
+ };
32
+ }, } = {}) {
37
33
  this.globe = globe;
38
34
  this._itemMap = new Map();
39
35
  this.doDraw = doDraw;
@@ -41,53 +37,51 @@ var AttachedTextWriter = /** @class */ (function () {
41
37
  this.zoomLevelAdaptor = zoomLevelAdaptor;
42
38
  this.setStyle(style);
43
39
  }
44
- AttachedTextWriter.prototype.setOpacity = function (opacity) {
45
- (0, typecheck_1.opacityCheck)(opacity);
40
+ setOpacity(opacity) {
41
+ opacityCheck(opacity);
46
42
  this._style.opacity = opacity;
47
43
  this.globe.DrawRender();
48
- };
49
- AttachedTextWriter.prototype.setStyle = function (style) {
50
- (0, typecheck_1.isTextFont)(style.textFont);
44
+ }
45
+ setStyle(style) {
46
+ isTextFont(style.textFont);
51
47
  this._style = style;
52
48
  this.globe.DrawRender();
53
- };
49
+ }
54
50
  /**
55
51
  *
56
52
  * @param {{text, long, lat, z = 0, xOffset = 0, yOffset = 0, isAngleOn = false, Angle = 0 }} item
57
53
  * @returns
58
54
  */
59
- AttachedTextWriter.prototype.insertItem = function (item) {
60
- var key = this.keyAdaptor ? this.keyAdaptor(item) : item;
55
+ insertItem(item) {
56
+ const key = this.keyAdaptor ? this.keyAdaptor(item) : item;
61
57
  this._itemMap.set(key, item);
62
58
  this.globe.DrawRender();
63
- };
59
+ }
64
60
  // TODO: use item style
65
- AttachedTextWriter.prototype.draw = function () {
61
+ draw() {
66
62
  if (!this.doDraw) {
67
63
  return;
68
64
  }
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;
65
+ const { globe, _itemMap, _style } = this;
66
+ const { zMode, textFont, opacity } = _style;
67
+ const is3D = globe.api_GetCurrentGeometry() === 0;
68
+ const angleIsOn = is3D ? true : this.angleOnSphere;
69
+ const zoomLevel = globe.api_GetCurrentLODWithDecimal();
70
+ const zoomAdaptor = this.zoomLevelAdaptor(zoomLevel);
71
+ const theSize = textFont.size;
72
+ _itemMap.forEach((item, key) => {
73
+ const { text, long, lat, z = 0, xOffset = 0, yOffset = 0, isAngleOn = false, angle = 0 } = item;
74
+ const { x, y } = globe.api_GetScreenPointFromGeo({
75
+ long,
76
+ lat,
77
+ z
78
+ }, zMode);
79
+ const { opacityMultiplier, sizeMultiplier } = zoomAdaptor(item);
84
80
  textFont.size = sizeMultiplier * theSize;
85
81
  if (x !== null && y !== null) {
86
82
  globe.api_DrawContextText(text, textFont, opacityMultiplier * opacity, { x: x + xOffset, y: y - yOffset }, (isAngleOn && angleIsOn), angle);
87
83
  }
88
84
  });
89
85
  textFont.size = theSize;
90
- };
91
- return AttachedTextWriter;
92
- }());
93
- exports.AttachedTextWriter = AttachedTextWriter;
86
+ }
87
+ }
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ContextTextWriter = void 0;
4
- var webglobe_1 = require("@pirireis/webglobe");
5
- var defaultStyle = {
1
+ import { CSZMode } from "@pirireis/webglobe";
2
+ const defaultStyle = {
6
3
  textFont: {
7
4
  name: 'Arial',
8
5
  textColor: '#FFFFFF', // beyaz
@@ -13,93 +10,85 @@ var defaultStyle = {
13
10
  italic: false,
14
11
  },
15
12
  opacity: 1.0,
16
- zMode: webglobe_1.CSZMode.Z_GROUND_PERVERTEX,
13
+ zMode: CSZMode.Z_GROUND_PERVERTEX,
17
14
  };
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;
15
+ export class ContextTextWriter {
16
+ constructor(globe, { style = null, doDraw = true } = {}) {
21
17
  this.globe = globe;
22
18
  this.itemMap = new Map();
23
19
  this.style = style || defaultStyle;
24
20
  this.doDraw = doDraw;
25
21
  }
26
- ContextTextWriter.prototype.setDoDraw = function (bool) {
22
+ setDoDraw(bool) {
27
23
  this.doDraw = bool;
28
- };
29
- ContextTextWriter.prototype.setStyle = function (style) {
24
+ }
25
+ setStyle(style) {
30
26
  this.style = style;
31
- };
32
- ContextTextWriter.prototype.setOpacity = function (opacity) {
27
+ }
28
+ setOpacity(opacity) {
33
29
  this.style.opacity = opacity;
34
- };
30
+ }
35
31
  // Clean this ask Front dev
36
- ContextTextWriter.prototype.doDraw = function (boolean) {
32
+ doDraw(boolean) {
37
33
  this.doDraw = boolean;
38
- };
39
- ContextTextWriter.prototype.draw = function () {
34
+ }
35
+ draw() {
40
36
  if (!this.doDraw)
41
37
  return;
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({
38
+ const { globe, style, itemMap } = this;
39
+ const { textFont, opacity: opacity_ } = style;
40
+ for (const [key, { lat, long, text, opacity = null }] of itemMap) {
41
+ const { x, y } = globe.api_GetScreenPointFromGeo({
47
42
  long: long,
48
43
  lat: lat,
49
44
  z: 0,
50
- }, style.zMode === webglobe_1.CSZMode.Z_MSL), x = _e.x, y = _e.y;
51
- var o = opacity === null ? opacity_ : opacity * opacity_;
45
+ }, style.zMode === CSZMode.Z_MSL);
46
+ const o = opacity === null ? opacity_ : opacity * opacity_;
52
47
  if (x !== null && y !== null)
53
- globe.api_DrawContextTextMultiLine(text, textFont, o, { x: x, y: y });
48
+ globe.api_DrawContextTextMultiLine(text, textFont, o, { x, y });
54
49
  }
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) {
50
+ }
51
+ insertText(key, lat, long, text) {
52
+ this.itemMap.set(key, { lat, long, text });
53
+ }
54
+ updateOpacityOfItem(key, opacity) {
60
55
  this.itemMap.get(key).opacity = opacity;
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);
56
+ }
57
+ updateOpacityBulk(items, keyAdaptor, valueAdaptor) {
58
+ for (const item of items) {
59
+ const key = keyAdaptor(item);
60
+ const opacity = valueAdaptor(item);
61
+ const data = this.itemMap.get(key);
68
62
  data.opacity = opacity;
69
63
  }
70
- };
71
- ContextTextWriter.prototype.updateText = function (key, text) {
72
- var item = this.itemMap.get(key);
64
+ }
65
+ updateText(key, text) {
66
+ const item = this.itemMap.get(key);
73
67
  item.text = text;
74
- };
75
- ContextTextWriter.prototype.updateCoords = function (key, lat, long) {
76
- var item = this.itemMap.get(key);
68
+ }
69
+ updateCoords(key, lat, long) {
70
+ const item = this.itemMap.get(key);
77
71
  item.lat = lat;
78
72
  item.long = long;
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];
73
+ }
74
+ insertTextBulk(items) {
75
+ for (const item of items) {
83
76
  this.itemMap.set(item.key, item);
84
77
  }
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);
78
+ }
79
+ updateTextCoordsBulk(items) {
80
+ for (const { key, lat, long } of items) {
81
+ const item = this.itemMap.get(key);
90
82
  item.lat = lat;
91
83
  item.long = long;
92
84
  }
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];
85
+ }
86
+ deleteTextBulk(keys) {
87
+ for (const key of keys) {
97
88
  this.itemMap.delete(key);
98
89
  }
99
- };
100
- ContextTextWriter.prototype.clear = function () {
90
+ }
91
+ clear() {
101
92
  this.itemMap.clear();
102
- };
103
- return ContextTextWriter;
104
- }());
105
- exports.ContextTextWriter = ContextTextWriter;
93
+ }
94
+ }
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ContextTextWriter3 = void 0;
4
- var webglobe_1 = require("@pirireis/webglobe");
5
- var typecheck_1 = require("../util/check/typecheck");
1
+ import { CSZMode } from "@pirireis/webglobe";
2
+ import { isTextFont, opacityCheck } from "../util/check/typecheck";
6
3
  /**
7
4
  * TODOs:
8
5
  * 1) update all if initials change (propably need a context and a callback to iterate over zPayload)
@@ -11,26 +8,25 @@ var typecheck_1 = require("../util/check/typecheck");
11
8
  *
12
9
  * TODO: key check and raise error if doesnt exist
13
10
  */
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;
11
+ export class ContextTextWriter3 {
12
+ constructor(globe, { style = {
13
+ textFont: {
14
+ name: 'Arial',
15
+ textColor: '#FFFFFF', // beyaz
16
+ hollowColor: '#000000', // siyah
17
+ size: 12, // piksel
18
+ hollow: true,
19
+ bold: true,
20
+ italic: false,
21
+ },
22
+ opacity: 1.0,
23
+ zMode: CSZMode.Z_GROUND_PERVERTEX,
24
+ }, 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) => {
25
+ return {
26
+ opacityMultiplier: 1,
27
+ sizeMultiplier: 1
28
+ };
29
+ } } = {}) {
34
30
  this.globe = globe;
35
31
  this.itemMap = new Map();
36
32
  this.setStyle(style);
@@ -41,20 +37,20 @@ var ContextTextWriter3 = /** @class */ (function () {
41
37
  this.keyAdaptor = keyAdaptor;
42
38
  this.zoomLevelAdaptor = zoomLevelAdaptor;
43
39
  this.positionAdaptor = positionAdaptor;
44
- this.opacityAdaptor = opacityAdaptor ? opacityAdaptor : function () { return 1; };
40
+ this.opacityAdaptor = opacityAdaptor ? opacityAdaptor : () => 1;
45
41
  this.angleOnSphere = angleOnSphere;
46
42
  if (angleAdaptor) {
47
43
  this.angleAdaptor = angleAdaptor;
48
44
  this.angleAdaptorIsOn = true;
49
45
  }
50
46
  else {
51
- this.angleAdaptor = function () { return null; };
47
+ this.angleAdaptor = () => null;
52
48
  this.angleAdaptorIsOn = false;
53
49
  }
54
50
  this.xOffset = xOffset;
55
51
  this.yOffset = yOffset;
56
52
  }
57
- ContextTextWriter3.prototype._checkParameterTypes = function (textAdaptor, coordinatesAdaptor, keyAdaptor, opacityAdaptor, angleAdaptor, xOffset, yOffset) {
53
+ _checkParameterTypes(textAdaptor, coordinatesAdaptor, keyAdaptor, opacityAdaptor, angleAdaptor, xOffset, yOffset) {
58
54
  if (textAdaptor !== null)
59
55
  if (!(textAdaptor instanceof Function))
60
56
  throw new Error("textAdaptor is not an instance of a Function");
@@ -74,87 +70,82 @@ var ContextTextWriter3 = /** @class */ (function () {
74
70
  throw new Error("xOffset type is not a number");
75
71
  if (typeof yOffset !== "number")
76
72
  throw new Error("yOffset type is not a number");
77
- };
78
- ContextTextWriter3.prototype.setKeyAdaptor = function (adaptor) {
73
+ }
74
+ setKeyAdaptor(adaptor) {
79
75
  this.keyAdaptor = adaptor;
80
- };
81
- ContextTextWriter3.prototype.setDoDraw = function (bool) {
76
+ }
77
+ setDoDraw(bool) {
82
78
  this.doDraw = bool;
83
79
  this.globe.DrawRender();
84
- };
85
- ContextTextWriter3.prototype.setStyle = function (style) {
86
- (0, typecheck_1.isTextFont)(style.textFont);
87
- (0, typecheck_1.opacityCheck)(style.opacity); //TODO: use shallow copy
80
+ }
81
+ setStyle(style) {
82
+ isTextFont(style.textFont);
83
+ opacityCheck(style.opacity); //TODO: use shallow copy
88
84
  this.style = style;
89
85
  this.globe.DrawRender();
90
- };
91
- ContextTextWriter3.prototype.setOpacity = function (opacity) {
86
+ }
87
+ setOpacity(opacity) {
92
88
  this.style.opacity = opacity;
93
89
  this.globe.DrawRender();
94
- };
95
- ContextTextWriter3.prototype.draw = function () {
90
+ }
91
+ draw() {
96
92
  if (!this.doDraw)
97
93
  return;
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({
94
+ const { globe, style, itemMap, xOffset, yOffset } = this;
95
+ const { textFont, opacity: opacity_ } = style;
96
+ const textSize = textFont.size;
97
+ const is3D = globe.api_GetCurrentGeometry() === 0;
98
+ const angleIsOn = is3D ? (this.angleAdaptorIsOn && this.angleOnSphere) : (this.angleAdaptorIsOn);
99
+ const zoomLevel = globe.api_GetCurrentLODWithDecimal();
100
+ const zoomAdaptor = this.zoomLevelAdaptor(zoomLevel);
101
+ for (const item of itemMap.values()) {
102
+ const { lat, long, text, opacity = null, angle = null, zPayload, position } = item;
103
+ const { x, y } = globe.api_GetScreenPointFromGeo({
109
104
  long: long,
110
105
  lat: lat,
111
106
  z: 0,
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;
107
+ }, style.zMode === CSZMode.Z_MSL);
108
+ const { opacityMultiplier, sizeMultiplier } = zoomAdaptor(zPayload);
109
+ const o = (opacity === null ? opacity_ : opacity * opacity_) * opacityMultiplier;
115
110
  textFont.size = sizeMultiplier * textSize;
116
111
  textFont.position = position;
117
112
  if (x !== null && y !== null)
118
113
  globe.api_DrawContextTextMultiLine(text, textFont, o, { x: x + xOffset, y: y - yOffset }, angleIsOn, angle);
119
114
  }
120
115
  textFont.size = textSize;
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);
116
+ }
117
+ insertTextBulk(container, properties) {
118
+ container.forEach((v, i, c) => {
119
+ this.insertText(v, i, c, properties);
126
120
  });
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];
121
+ }
122
+ deleteTextBulk(keys) {
123
+ for (const key of keys) {
131
124
  this.itemMap.delete(key);
132
125
  }
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);
126
+ }
127
+ insertText(item, id, container, properties) {
128
+ const key = this.keyAdaptor(item, id, container, properties);
129
+ const coords = this.coordinatesAdaptor(item, id, container, properties);
137
130
  if (coords == null) {
138
131
  this.itemMap.delete(key);
139
132
  return;
140
133
  }
141
- var text = this.textAdaptor(item, id, container, properties);
134
+ const text = this.textAdaptor(item, id, container, properties);
142
135
  if (text == null) {
143
136
  this.itemMap.delete(key);
144
137
  return;
145
138
  }
146
139
  ;
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 () {
140
+ const opacity = this.opacityAdaptor(item, id, container, properties);
141
+ const angle = this.angleAdaptor(item, id, container, properties);
142
+ const position = this.positionAdaptor(item, id, container, properties);
143
+ this.itemMap.set(key, { long: coords.long, lat: coords.lat, text, opacity, angle, zPayload: item, position });
144
+ }
145
+ clear() {
153
146
  this.itemMap.clear();
154
- };
155
- ContextTextWriter3.prototype.free = function () {
147
+ }
148
+ free() {
156
149
  this.itemMap = null;
157
- };
158
- return ContextTextWriter3;
159
- }());
160
- exports.ContextTextWriter3 = ContextTextWriter3;
150
+ }
151
+ }
@@ -1,5 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ContextTextWriter = void 0;
4
- var context_text_1 = require("./context-text");
5
- Object.defineProperty(exports, "ContextTextWriter", { enumerable: true, get: function () { return context_text_1.ContextTextWriter; } });
1
+ export { ContextTextWriter } from "./context-text";