@pirireis/webglobeplugins 0.9.11 → 0.9.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/Math/angle-calculation.js +8 -8
  2. package/Math/arc.js +18 -18
  3. package/Math/bounds/line-bbox.js +78 -80
  4. package/Math/constants.js +3 -3
  5. package/Math/juction/arc-plane.js +23 -23
  6. package/Math/juction/line-sphere.js +11 -11
  7. package/Math/juction/plane-plane.js +11 -11
  8. package/Math/line.js +14 -16
  9. package/Math/methods.js +65 -70
  10. package/Math/plane.js +16 -18
  11. package/Math/quaternion.js +45 -49
  12. package/Math/utils.js +2 -2
  13. package/Math/vec3.js +42 -45
  14. package/algorithms/search-binary.js +4 -4
  15. package/altitude-locator/draw-subset-obj.js +7 -8
  16. package/altitude-locator/plugin.js +98 -114
  17. package/arrowfield/adaptor.js +3 -4
  18. package/arrowfield/index.js +2 -2
  19. package/arrowfield/plugin.js +62 -65
  20. package/bearing-line/index.js +1 -1
  21. package/bearing-line/plugin.js +200 -226
  22. package/circle-line-chain/chain-list-map.js +82 -88
  23. package/circle-line-chain/plugin.js +134 -165
  24. package/circle-line-chain/util.js +1 -1
  25. package/compass-rose/compass-rose-padding-flat.js +108 -133
  26. package/compass-rose/compass-text-writer.js +62 -70
  27. package/compass-rose/index.js +2 -2
  28. package/compassrose/compassrose.js +46 -50
  29. package/compassrose/index.js +1 -1
  30. package/heatwave/index.js +2 -2
  31. package/heatwave/isobar/objectarraylabels.js +44 -48
  32. package/heatwave/isobar/plugin.js +104 -123
  33. package/heatwave/isobar/quadtreecontours.js +76 -92
  34. package/heatwave/plugins/heatwaveglobeshell.js +69 -87
  35. package/index.js +11 -11
  36. package/package.json +1 -1
  37. package/partialrings/buffer-manager.js +32 -64
  38. package/partialrings/index.js +1 -1
  39. package/partialrings/plugin.js +48 -84
  40. package/partialrings/program.js +136 -47
  41. package/pin/pin-object-array.js +83 -86
  42. package/pin/pin-point-totem.js +21 -22
  43. package/point-heat-map/adaptors/timetracksplugin-format-to-this.js +10 -10
  44. package/point-heat-map/plugin-webworker.js +40 -45
  45. package/point-heat-map/point-to-heat-map-flow.js +40 -42
  46. package/point-tracks/key-methods.js +1 -1
  47. package/point-tracks/plugin.js +137 -162
  48. package/programs/arrowfield/index.js +1 -1
  49. package/programs/arrowfield/logic.js +170 -62
  50. package/programs/arrowfield/object.js +33 -35
  51. package/programs/data2legend/density-to-legend.js +45 -21
  52. package/programs/data2legend/point-to-density-texture.js +52 -27
  53. package/programs/float2legendwithratio/index.js +1 -1
  54. package/programs/float2legendwithratio/logic.js +88 -42
  55. package/programs/float2legendwithratio/object.js +43 -46
  56. package/programs/globe-util/is-globe-moved.js +10 -11
  57. package/programs/globeshell/index.js +1 -1
  58. package/programs/globeshell/wiggle/index.js +1 -1
  59. package/programs/globeshell/wiggle/logic.js +191 -98
  60. package/programs/globeshell/wiggle/object.js +33 -35
  61. package/programs/helpers/blender/program.js +36 -19
  62. package/programs/helpers/fadeaway/index.js +1 -1
  63. package/programs/helpers/fadeaway/logic.js +35 -13
  64. package/programs/helpers/fadeaway/object.js +9 -10
  65. package/programs/helpers/index.js +1 -1
  66. package/programs/index.js +8 -8
  67. package/programs/line-on-globe/angled-line.js +91 -32
  68. package/programs/line-on-globe/circle-accurate-3d.js +82 -32
  69. package/programs/line-on-globe/circle-accurate-flat.js +108 -50
  70. package/programs/line-on-globe/circle-accurate.js +103 -33
  71. package/programs/line-on-globe/circle.js +97 -32
  72. package/programs/line-on-globe/degree-padding-around-circle-3d.js +83 -33
  73. package/programs/line-on-globe/lines-color-instanced-flat.js +79 -34
  74. package/programs/line-on-globe/linestrip.js +111 -45
  75. package/programs/line-on-globe/naive-accurate-flexible.js +120 -50
  76. package/programs/line-on-globe/to-the-surface.js +58 -29
  77. package/programs/line-on-globe/util.js +1 -1
  78. package/programs/picking/pickable-renderer.js +117 -33
  79. package/programs/point-on-globe/element-globe-surface-glow.js +78 -38
  80. package/programs/point-on-globe/element-point-glow.js +103 -35
  81. package/programs/point-on-globe/square-pixel-point.js +76 -27
  82. package/programs/programcache.js +13 -13
  83. package/programs/rings/distancering/circleflatprogram.js +63 -21
  84. package/programs/rings/distancering/circlepaddingfreeangleprogram.js +156 -145
  85. package/programs/rings/distancering/circlepaddysharedbuffer.js +121 -197
  86. package/programs/rings/distancering/index.js +4 -4
  87. package/programs/rings/distancering/paddyflatprogram.js +73 -20
  88. package/programs/rings/distancering/paddyflatprogram2d.js +75 -22
  89. package/programs/rings/distancering/paddyflatprogram3d.js +73 -20
  90. package/programs/rings/partial-ring/piece-of-pie.js +137 -35
  91. package/programs/totems/camerauniformblock.js +64 -51
  92. package/programs/totems/canvas-webglobe-info.js +48 -40
  93. package/programs/totems/gpu-selection-uniform-block.js +44 -40
  94. package/programs/totems/index.js +1 -1
  95. package/programs/two-d/pixel-padding-for-compass.js +90 -29
  96. package/programs/util.js +6 -7
  97. package/programs/vectorfields/index.js +1 -1
  98. package/programs/vectorfields/logics/drawrectangleparticles.js +70 -29
  99. package/programs/vectorfields/logics/index.js +3 -3
  100. package/programs/vectorfields/logics/pixelbased.js +91 -35
  101. package/programs/vectorfields/logics/ubo.js +31 -25
  102. package/programs/vectorfields/pingpongbuffermanager.js +30 -34
  103. package/rangerings/index.js +4 -4
  104. package/rangerings/plugin.js +202 -258
  105. package/rangerings/rangeringangletext.js +108 -120
  106. package/rangerings/ring-account.js +52 -69
  107. package/shaders/fragment-toy/firework.js +55 -1
  108. package/shaders/fragment-toy/singularity.js +55 -1
  109. package/timetracks/adaptors-line-strip.js +26 -37
  110. package/timetracks/adaptors.js +47 -61
  111. package/timetracks/index.js +4 -4
  112. package/timetracks/plugin-line-strip.js +63 -71
  113. package/timetracks/plugin.js +69 -77
  114. package/timetracks/program-line-strip.js +296 -103
  115. package/timetracks/program.js +419 -113
  116. package/timetracks/programpoint-line-strip.js +97 -44
  117. package/timetracks/programpoint.js +90 -44
  118. package/util/account/bufferoffsetmanager.js +72 -95
  119. package/util/account/index.js +1 -1
  120. package/util/account/single-attribute-buffer-management/buffer-manager.js +44 -44
  121. package/util/account/single-attribute-buffer-management/buffer-orchestrator.js +68 -94
  122. package/util/account/single-attribute-buffer-management/index.js +3 -3
  123. package/util/account/single-attribute-buffer-management/object-store.js +29 -30
  124. package/util/account/util.js +2 -4
  125. package/util/algorithms/search-binary.js +4 -4
  126. package/util/check/get.js +5 -5
  127. package/util/check/typecheck.js +13 -15
  128. package/util/geometry/index.js +9 -11
  129. package/util/gl-util/buffer/attribute-loader.js +8 -20
  130. package/util/gl-util/buffer/index.js +1 -1
  131. package/util/gl-util/draw-options/methods.js +8 -9
  132. package/util/gl-util/uniform-block/manager.js +67 -67
  133. package/util/heatwavedatamanager/datamanager.js +56 -116
  134. package/util/heatwavedatamanager/index.js +2 -2
  135. package/util/heatwavedatamanager/pointcoordinatesdatacalculator.js +37 -40
  136. package/util/heatwavedatamanager/pointcoordsmeta.js +9 -10
  137. package/util/index.js +6 -6
  138. package/util/interpolation/timetrack/index.js +1 -1
  139. package/util/interpolation/timetrack/timetrack-interpolator.js +27 -29
  140. package/util/interpolation/timetrack/web-worker-str.js +179 -1
  141. package/util/interpolation/timetrack/web-worker.js +4 -4
  142. package/util/jshelpers/data-filler.js +7 -7
  143. package/util/jshelpers/timefilters.js +7 -7
  144. package/util/picking/fence.js +7 -7
  145. package/util/picking/picker-displayer.js +46 -52
  146. package/util/programs/draw-texture-on-canvas.js +39 -21
  147. package/util/programs/shapesonglobe.js +104 -64
  148. package/util/programs/supersampletotextures.js +45 -39
  149. package/util/programs/texturetoglobe.js +98 -48
  150. package/util/shaderfunctions/geometrytransformations.js +322 -27
  151. package/util/shaderfunctions/nodata.js +7 -1
  152. package/util/shaderfunctions/noisefunctions.js +39 -9
  153. package/util/surface-line-data/arcs-to-cuts.js +20 -23
  154. package/util/webglobe/rasteroverlay.js +35 -37
  155. package/util/webglobjectbuilders.js +55 -60
  156. package/util/webglobjectbuilders1.js +48 -49
  157. package/waveparticles/adaptor.js +6 -7
  158. package/waveparticles/index.js +2 -2
  159. package/waveparticles/plugin.js +79 -84
  160. package/wind/imagetovectorfieldandmagnitude.js +15 -15
  161. package/wind/index.js +4 -4
  162. package/wind/plugin.js +453 -251
  163. package/wind/vectorfieldimage.js +5 -5
  164. package/write-text/attached-text-writer.js +46 -48
  165. package/write-text/context-text.js +51 -58
  166. package/write-text/context-text3.js +69 -74
@@ -1,4 +1,58 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.firework = void 0;
4
- exports.firework = "\nfloat firework(vec2 point_coord, float phase) {\n float t = phase + 5.0;\n float z = 6.0;\n const int n = 53; // particle count\n\n vec3 startColor = vec3(0.0, 0.64, 0.2);\n vec3 endColor = vec3(0.06, 0.35, 0.85);\n\n float startRadius = 0.84;\n float endRadius = 1.6;\n\n float power = 0.51;\n float duration = 4.0;\n\n vec2 v = z * (2.0 * point_coord - vec2(1.0) );\n\n vec3 col = vec3(0.0);\n vec2 pm = v.yx * 2.8;\n\n float dMax = duration;\n float evo = (sin(phase * 0.01 + 400.0) * 0.5 + 0.5) * 99.0 + 1.0;\n\n float mb = 0.0;\n float mbRadius = 0.0;\n float sum = 0.0;\n\n for(int i = 0; i < n; i++) {\n float d = fract(t * power + 48934.4238 * sin(float(i / int(evo)) * 692.7398));\n\n float a = 6.28 * float(i) / float(n);\n float x = d * cos(a) * duration;\n float y = d * sin(a) * duration;\n\n float distRatio = d / dMax;\n mbRadius = mix(startRadius, endRadius, distRatio);\n\n vec2 p = v - vec2(x, y);\n mb = mbRadius / dot(p, p);\n\n sum += mb;\n col = mix(col, mix(startColor, endColor, distRatio), mb / sum);\n }\n\n sum /= float(n);\n col = normalize(col) * sum;\n sum = clamp(sum, 0.0, 0.4);\n\n vec3 tex = vec3(1.0);\n col *= smoothstep(tex, vec3(0.0), vec3(sum));\n\n float alpha = sum * 2.5;\n return clamp(alpha, 0.0, 1.0);\n}\n";
4
+ exports.firework = `
5
+ float firework(vec2 point_coord, float phase) {
6
+ float t = phase + 5.0;
7
+ float z = 6.0;
8
+ const int n = 53; // particle count
9
+
10
+ vec3 startColor = vec3(0.0, 0.64, 0.2);
11
+ vec3 endColor = vec3(0.06, 0.35, 0.85);
12
+
13
+ float startRadius = 0.84;
14
+ float endRadius = 1.6;
15
+
16
+ float power = 0.51;
17
+ float duration = 4.0;
18
+
19
+ vec2 v = z * (2.0 * point_coord - vec2(1.0) );
20
+
21
+ vec3 col = vec3(0.0);
22
+ vec2 pm = v.yx * 2.8;
23
+
24
+ float dMax = duration;
25
+ float evo = (sin(phase * 0.01 + 400.0) * 0.5 + 0.5) * 99.0 + 1.0;
26
+
27
+ float mb = 0.0;
28
+ float mbRadius = 0.0;
29
+ float sum = 0.0;
30
+
31
+ for(int i = 0; i < n; i++) {
32
+ float d = fract(t * power + 48934.4238 * sin(float(i / int(evo)) * 692.7398));
33
+
34
+ float a = 6.28 * float(i) / float(n);
35
+ float x = d * cos(a) * duration;
36
+ float y = d * sin(a) * duration;
37
+
38
+ float distRatio = d / dMax;
39
+ mbRadius = mix(startRadius, endRadius, distRatio);
40
+
41
+ vec2 p = v - vec2(x, y);
42
+ mb = mbRadius / dot(p, p);
43
+
44
+ sum += mb;
45
+ col = mix(col, mix(startColor, endColor, distRatio), mb / sum);
46
+ }
47
+
48
+ sum /= float(n);
49
+ col = normalize(col) * sum;
50
+ sum = clamp(sum, 0.0, 0.4);
51
+
52
+ vec3 tex = vec3(1.0);
53
+ col *= smoothstep(tex, vec3(0.0), vec3(sum));
54
+
55
+ float alpha = sum * 2.5;
56
+ return clamp(alpha, 0.0, 1.0);
57
+ }
58
+ `;
@@ -1,5 +1,59 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.singularity = void 0;
4
- var singularity = "\n\nvec3 palette(float d){\n return mix(vec3(0.2, 0.7, 0.9), vec3(1.0, 0.0, 1.0), d);\n}\n\nvec2 rotate(vec2 p, float a){\n float c = cos(a);\n float s = sin(a);\n return p * mat2(c, s, -s, c);\n}\n\nfloat map(vec3 p){\n for (int i = 0; i < 4; ++i){\n float t = u_phase * 0.2;\n p.xz = rotate(p.xz, t);\n p.xy = rotate(p.xy, t * 1.89);\n p.xz = abs(p.xz);\n p.xz -= 0.85;\n }\n return dot(sign(p), p) / 5.0;\n}\n\nvec4 rm(vec3 ro, vec3 rd){\n float t = 0.0;\n vec3 col = vec3(0.0);\n float d;\n for (float i = 0.0; i < 56.0; i++){\n vec3 p = ro + rd * t;\n d = map(p) * 0.5;\n if (d < 0.02){\n break;\n }\n if (d > 100.0){\n break;\n }\n col += palette(length(p) * 0.1) / (400.0 * d);\n t += d;\n }\n return vec4(col, 1.0 / d * 2.0 );\n}\n\nvec4 singularity(vec2 pointCoord, float u_phase) {\n vec2 uv = (pointCoord - 0.5); // Normalized coordinates from gl_PointCoord\n vec3 ro = vec3(0.0, 0.0, -50.0);\n ro.xz = rotate(ro.xz, u_phase);\n vec3 cf = normalize(-ro);\n vec3 cs = normalize(cross(cf, vec3(0.0, 1.0, 0.0)));\n vec3 cu = normalize(cross(cf, cs));\n\n vec3 uuv = ro + cf * 3.0 + uv.x * cs + uv.y * cu;\n vec3 rd = normalize(uuv - ro);\n\n return rm(ro, rd);\n}";
4
+ const singularity = `
5
+
6
+ vec3 palette(float d){
7
+ return mix(vec3(0.2, 0.7, 0.9), vec3(1.0, 0.0, 1.0), d);
8
+ }
9
+
10
+ vec2 rotate(vec2 p, float a){
11
+ float c = cos(a);
12
+ float s = sin(a);
13
+ return p * mat2(c, s, -s, c);
14
+ }
15
+
16
+ float map(vec3 p){
17
+ for (int i = 0; i < 4; ++i){
18
+ float t = u_phase * 0.2;
19
+ p.xz = rotate(p.xz, t);
20
+ p.xy = rotate(p.xy, t * 1.89);
21
+ p.xz = abs(p.xz);
22
+ p.xz -= 0.85;
23
+ }
24
+ return dot(sign(p), p) / 5.0;
25
+ }
26
+
27
+ vec4 rm(vec3 ro, vec3 rd){
28
+ float t = 0.0;
29
+ vec3 col = vec3(0.0);
30
+ float d;
31
+ for (float i = 0.0; i < 56.0; i++){
32
+ vec3 p = ro + rd * t;
33
+ d = map(p) * 0.5;
34
+ if (d < 0.02){
35
+ break;
36
+ }
37
+ if (d > 100.0){
38
+ break;
39
+ }
40
+ col += palette(length(p) * 0.1) / (400.0 * d);
41
+ t += d;
42
+ }
43
+ return vec4(col, 1.0 / d * 2.0 );
44
+ }
45
+
46
+ vec4 singularity(vec2 pointCoord, float u_phase) {
47
+ vec2 uv = (pointCoord - 0.5); // Normalized coordinates from gl_PointCoord
48
+ vec3 ro = vec3(0.0, 0.0, -50.0);
49
+ ro.xz = rotate(ro.xz, u_phase);
50
+ vec3 cf = normalize(-ro);
51
+ vec3 cs = normalize(cross(cf, vec3(0.0, 1.0, 0.0)));
52
+ vec3 cu = normalize(cross(cf, cs));
53
+
54
+ vec3 uuv = ro + cf * 3.0 + uv.x * cs + uv.y * cu;
55
+ vec3 rd = normalize(uuv - ro);
56
+
57
+ return rm(ro, rd);
58
+ }`;
5
59
  exports.singularity = singularity;
@@ -1,19 +1,10 @@
1
1
  "use strict";
2
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
- if (ar || !(i in from)) {
5
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
- ar[i] = from[i];
7
- }
8
- }
9
- return to.concat(ar || Array.prototype.slice.call(from));
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.latLongToPixelXY = void 0;
13
4
  exports.addCuttingPointLineStrip = addCuttingPointLineStrip;
14
5
  exports.featuresToLineStringData = featuresToLineStringData;
15
6
  exports.fillSliceOfFloat32ArrayLineStrip = fillSliceOfFloat32ArrayLineStrip;
16
- var util_1 = require("../util");
7
+ const util_1 = require("../util");
17
8
  Object.defineProperty(exports, "latLongToPixelXY", { enumerable: true, get: function () { return util_1.latLongToPixelXY; } });
18
9
  /**
19
10
  * @param {Array.<Array.<number>>} coordinates
@@ -34,44 +25,42 @@ function featuresToLineStringData(data) {
34
25
  * feature[i].properties.messageTime are the timestamps of the points
35
26
  *
36
27
  */
37
- var features = data.features;
38
- var size = data.features.length - 1;
39
- var startTime = features[0].properties.messageTime[0];
40
- var endTime = features[0].properties.messageTime[features[0].properties.messageTime.length - 1];
41
- for (var _i = 0, features_1 = features; _i < features_1.length; _i++) {
42
- var feature = features_1[_i];
28
+ const features = data.features;
29
+ let size = data.features.length - 1;
30
+ let startTime = features[0].properties.messageTime[0];
31
+ let endTime = features[0].properties.messageTime[features[0].properties.messageTime.length - 1];
32
+ for (let feature of features) {
43
33
  size += feature.properties.messageTime.length;
44
34
  startTime = Math.min(startTime, feature.properties.messageTime[0]);
45
35
  endTime = Math.max(endTime, feature.properties.messageTime[feature.properties.messageTime.length - 1]);
46
36
  }
47
- var array = new Float32Array(size * 9);
48
- var offset = 0;
37
+ const array = new Float32Array(size * 9);
38
+ let offset = 0;
49
39
  {
50
- var feature = features[0];
51
- var coordinates = feature.geometry.coordinates;
52
- var timestamps = feature.properties.messageTime.map(function (time) { return (time - startTime) / 1000; });
40
+ const feature = features[0];
41
+ const coordinates = feature.geometry.coordinates;
42
+ const timestamps = feature.properties.messageTime.map((time) => (time - startTime) / 1000);
53
43
  offset = fillSliceOfFloat32ArrayLineStrip(array, offset, coordinates, timestamps);
54
44
  }
55
- for (var i = 1; i < features.length; i++) {
56
- var feature = features[i];
57
- var coordinates = feature.geometry.coordinates;
58
- var timestamps = feature.properties.messageTime.map(function (time) { return (time - startTime) / 1000; });
45
+ for (let i = 1; i < features.length; i++) {
46
+ const feature = features[i];
47
+ const coordinates = feature.geometry.coordinates;
48
+ const timestamps = feature.properties.messageTime.map((time) => (time - startTime) / 1000);
59
49
  offset = addCuttingPointLineStrip(array, offset);
60
50
  offset = fillSliceOfFloat32ArrayLineStrip(array, offset, coordinates, timestamps);
61
51
  }
62
- return { data: array, startTime: startTime, endTime: endTime };
52
+ return { data: array, startTime, endTime };
63
53
  }
64
- function fillSliceOfFloat32ArrayLineStrip(floatArray, offset, coordinates, timestamps, _a) {
65
- var _b = _a === void 0 ? {} : _a, _c = _b.styleGroupNameArray, styleGroupNameArray = _c === void 0 ? null : _c, _d = _b.groupColorFunction, groupColorFunction = _d === void 0 ? function () { return [Math.random(), Math.random(), Math.random()]; } : _d;
66
- var startTime = timestamps[0];
67
- var endTime = timestamps[timestamps.length - 1];
68
- for (var i = 0; i < coordinates.length; i++) {
69
- var time = timestamps[i];
70
- var coord = coordinates[i];
71
- var styleGroupName = styleGroupNameArray ? styleGroupNameArray[i] : "default";
72
- var _e = (0, util_1.latLongToPixelXY)(coord[1], coord[0]), x = _e.x, y = _e.y;
73
- var z = coord[2] ? coord[2] / 1000.0 : 0;
74
- floatArray.set(__spreadArray(__spreadArray([x, y, z, time], groupColorFunction(styleGroupName), true), [startTime, endTime], false), offset);
54
+ function fillSliceOfFloat32ArrayLineStrip(floatArray, offset, coordinates, timestamps, { styleGroupNameArray = null, groupColorFunction = () => [Math.random(), Math.random(), Math.random()] } = {}) {
55
+ const startTime = timestamps[0];
56
+ const endTime = timestamps[timestamps.length - 1];
57
+ for (let i = 0; i < coordinates.length; i++) {
58
+ const time = timestamps[i];
59
+ const coord = coordinates[i];
60
+ const styleGroupName = styleGroupNameArray ? styleGroupNameArray[i] : "default";
61
+ const { x, y } = (0, util_1.latLongToPixelXY)(coord[1], coord[0]);
62
+ const z = coord[2] ? coord[2] / 1000.0 : 0;
63
+ floatArray.set([x, y, z, time, ...groupColorFunction(styleGroupName), startTime, endTime], offset);
75
64
  offset += 9;
76
65
  }
77
66
  return offset;
@@ -1,25 +1,16 @@
1
1
  "use strict";
2
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
- if (ar || !(i in from)) {
5
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
- ar[i] = from[i];
7
- }
8
- }
9
- return to.concat(ar || Array.prototype.slice.call(from));
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.Adaptor = void 0;
13
4
  exports.fillSliceOfFloat32Array = fillSliceOfFloat32Array;
14
5
  exports.createFloat32Array = createFloat32Array;
15
- var util_1 = require("../util");
16
- var _latLongToPixelXY = util_1.latLongToPixelXY;
17
- var Adaptor = /** @class */ (function () {
6
+ const util_1 = require("../util");
7
+ const _latLongToPixelXY = util_1.latLongToPixelXY;
8
+ class Adaptor {
18
9
  /**
19
10
  * @param {Object.<string, Color>} groupColorMap
20
11
  * @typedef {Array} Color | [r, g, b] | between 0-1
21
12
  */
22
- function Adaptor(groupColorMap) {
13
+ constructor(groupColorMap) {
23
14
  this._groupColorMap = groupColorMap;
24
15
  }
25
16
  /**
@@ -29,21 +20,18 @@ var Adaptor = /** @class */ (function () {
29
20
  * @param {string} styleGroupPropertyName
30
21
  * @returns {lineData} lineData for Plugin
31
22
  */
32
- Adaptor.prototype.fromGeoJson = function (geojsonObject, startTime, timePropertyName, styleGroupPropertyName) {
33
- if (timePropertyName === void 0) { timePropertyName = "messageTime"; }
34
- if (styleGroupPropertyName === void 0) { styleGroupPropertyName = "styleGroup"; }
35
- var features = geojsonObject.features.filter(function (feature) { return feature.geometry.coordinates.length > 1; });
36
- var buffer = createFloat32Array(features.map(function (feature) { return feature.geometry.coordinates; }));
37
- var offset = 0;
38
- for (var _i = 0, features_1 = features; _i < features_1.length; _i++) {
39
- var feature = features_1[_i];
40
- var coordinates = feature.geometry.coordinates;
41
- var timestamps = feature.properties[timePropertyName].map(function (time) { return (time - startTime) / 1000; });
42
- var styleGroupNameArray = feature.properties[styleGroupPropertyName];
23
+ fromGeoJson(geojsonObject, startTime, timePropertyName = "messageTime", styleGroupPropertyName = "styleGroup") {
24
+ const features = geojsonObject.features.filter(feature => feature.geometry.coordinates.length > 1);
25
+ const buffer = createFloat32Array(features.map(feature => feature.geometry.coordinates));
26
+ let offset = 0;
27
+ for (let feature of features) {
28
+ const coordinates = feature.geometry.coordinates;
29
+ const timestamps = feature.properties[timePropertyName].map((time) => (time - startTime) / 1000);
30
+ const styleGroupNameArray = feature.properties[styleGroupPropertyName];
43
31
  offset = fillSliceOfFloat32Array(coordinates, timestamps, styleGroupNameArray, this._groupColorMap, buffer, offset);
44
32
  }
45
33
  return buffer;
46
- };
34
+ }
47
35
  /**
48
36
  * Inputs are lists of tracks. Each track is a list of coordinates, timestamps and styleGroupNames.
49
37
  * @param {Array.<Array.<Array.<number>>>} coordinatesList | [ [ [lon, lat, z], [lon, lat, z], ...], ...
@@ -52,19 +40,18 @@ var Adaptor = /** @class */ (function () {
52
40
  * @param {number} startTime | epoch time
53
41
  * @returns {lineData} lineData for Plugin
54
42
  */
55
- Adaptor.prototype.fromLists = function (coordinatesList, timestampsList, colorGroupList, startTime) {
56
- var buffer = createFloat32Array(coordinatesList);
57
- var offset = 0;
58
- for (var i = 0; i < coordinatesList.length; i++) {
59
- var coordinates = coordinatesList[i];
60
- var timestamps = timestampsList[i].map(function (time) { return (time - startTime) / 1000; });
61
- var styleGroupNameArray = colorGroupList[i];
43
+ fromLists(coordinatesList, timestampsList, colorGroupList, startTime) {
44
+ const buffer = createFloat32Array(coordinatesList);
45
+ let offset = 0;
46
+ for (let i = 0; i < coordinatesList.length; i++) {
47
+ const coordinates = coordinatesList[i];
48
+ const timestamps = timestampsList[i].map((time) => (time - startTime) / 1000);
49
+ const styleGroupNameArray = colorGroupList[i];
62
50
  offset = fillSliceOfFloat32Array(coordinates, timestamps, styleGroupNameArray, this._groupColorMap, buffer, offset);
63
51
  }
64
52
  return buffer;
65
- };
66
- return Adaptor;
67
- }());
53
+ }
54
+ }
68
55
  exports.Adaptor = Adaptor;
69
56
  /**
70
57
  * @param {Array.<Array.<number>>} coordinates
@@ -80,39 +67,39 @@ exports.Adaptor = Adaptor;
80
67
  */
81
68
  function fillSliceOfFloat32Array(coordinates, timestamps, styleGroupNameArray, _groupColorMap, floatArray, offset) {
82
69
  if (coordinates[0].length === 2) {
83
- var startTime = timestamps[0];
84
- var endTime = timestamps[timestamps.length - 1];
85
- var prevPointData = null;
70
+ const startTime = timestamps[0];
71
+ const endTime = timestamps[timestamps.length - 1];
72
+ let prevPointData = null;
86
73
  { // first point
87
- var _a = _latLongToPixelXY(coordinates[0][1], coordinates[0][0]), x = _a.x, y = _a.y;
88
- prevPointData = __spreadArray([x, y, 0, timestamps[0]], _groupColorMap[styleGroupNameArray[0]], true);
74
+ const { x, y } = _latLongToPixelXY(coordinates[0][1], coordinates[0][0]);
75
+ prevPointData = [x, y, 0, timestamps[0], ..._groupColorMap[styleGroupNameArray[0]]];
89
76
  }
90
77
  { // middle points until end
91
- for (var i = 1; i < coordinates.length; i++) {
92
- var time = timestamps[i];
93
- var coord = coordinates[i];
94
- var _b = _latLongToPixelXY(coord[1], coord[0]), x = _b.x, y = _b.y;
95
- floatArray.set(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], prevPointData, true), [startTime, endTime, x, y, 0, time], false), _groupColorMap[styleGroupNameArray[i]], true), [startTime, endTime], false), offset);
96
- prevPointData = __spreadArray([x, y, 0, time], _groupColorMap[styleGroupNameArray[i]], true);
78
+ for (let i = 1; i < coordinates.length; i++) {
79
+ const time = timestamps[i];
80
+ const coord = coordinates[i];
81
+ const { x, y } = _latLongToPixelXY(coord[1], coord[0]);
82
+ floatArray.set([...prevPointData, startTime, endTime, x, y, 0, time, ..._groupColorMap[styleGroupNameArray[i]], startTime, endTime], offset);
83
+ prevPointData = [x, y, 0, time, ..._groupColorMap[styleGroupNameArray[i]]];
97
84
  offset += 18;
98
85
  }
99
86
  }
100
87
  }
101
88
  else {
102
- var startTime = timestamps[0];
103
- var endTime = timestamps[timestamps.length - 1];
104
- var prevPointData = null;
89
+ const startTime = timestamps[0];
90
+ const endTime = timestamps[timestamps.length - 1];
91
+ let prevPointData = null;
105
92
  { // first point
106
- var _c = _latLongToPixelXY(coordinates[0][1], coordinates[0][0]), x = _c.x, y = _c.y;
107
- prevPointData = __spreadArray([x, y, coordinates[0][2] / 1000.0, timestamps[0]], _groupColorMap[styleGroupNameArray[0]], true);
93
+ const { x, y } = _latLongToPixelXY(coordinates[0][1], coordinates[0][0]);
94
+ prevPointData = [x, y, coordinates[0][2] / 1000.0, timestamps[0], ..._groupColorMap[styleGroupNameArray[0]]];
108
95
  }
109
96
  { // middle points until end
110
- for (var i = 1; i < coordinates.length; i++) {
111
- var time = timestamps[i];
112
- var coord = coordinates[i];
113
- var _d = _latLongToPixelXY(coord[1], coord[0]), x = _d.x, y = _d.y;
114
- floatArray.set(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], prevPointData, true), [startTime, endTime, x, y, coord[2] / 1000.0, time], false), _groupColorMap[styleGroupNameArray[i]], true), [startTime, endTime], false), offset);
115
- prevPointData = __spreadArray([x, y, coord[2] / 1000.0, time], _groupColorMap[styleGroupNameArray[i]], true);
97
+ for (let i = 1; i < coordinates.length; i++) {
98
+ const time = timestamps[i];
99
+ const coord = coordinates[i];
100
+ const { x, y } = _latLongToPixelXY(coord[1], coord[0]);
101
+ floatArray.set([...prevPointData, startTime, endTime, x, y, coord[2] / 1000.0, time, ..._groupColorMap[styleGroupNameArray[i]], startTime, endTime], offset);
102
+ prevPointData = [x, y, coord[2] / 1000.0, time, ..._groupColorMap[styleGroupNameArray[i]]];
116
103
  offset += 18;
117
104
  }
118
105
  }
@@ -126,11 +113,10 @@ function fillSliceOfFloat32Array(coordinates, timestamps, styleGroupNameArray, _
126
113
  * Coordinates array is needed to calculate the size of the buffer.
127
114
  */
128
115
  function createFloat32Array(coordinatesArray) {
129
- var filteredSize = 0;
130
- for (var _i = 0, coordinatesArray_1 = coordinatesArray; _i < coordinatesArray_1.length; _i++) {
131
- var coordinates = coordinatesArray_1[_i];
116
+ let filteredSize = 0;
117
+ for (let coordinates of coordinatesArray) {
132
118
  filteredSize += coordinates.length * 2 - 2;
133
119
  }
134
- var array = new Float32Array(filteredSize * 9);
120
+ const array = new Float32Array(filteredSize * 9);
135
121
  return array;
136
122
  }
@@ -4,15 +4,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.latLongToPixelXY = exports.fillSliceOfFloat32ArrayLineStrip = exports.featuresToLineStringData = exports.addCuttingPointLineStrip = exports.TimeTracksLineStrip = exports.TimeTracks = exports.createFloat32Array = exports.fillSliceOfFloat32Array = exports.Adaptor = void 0;
7
- var plugin_1 = __importDefault(require("./plugin"));
7
+ const plugin_1 = __importDefault(require("./plugin"));
8
8
  exports.TimeTracks = plugin_1.default;
9
- var adaptors_1 = require("./adaptors");
9
+ const adaptors_1 = require("./adaptors");
10
10
  Object.defineProperty(exports, "Adaptor", { enumerable: true, get: function () { return adaptors_1.Adaptor; } });
11
11
  Object.defineProperty(exports, "fillSliceOfFloat32Array", { enumerable: true, get: function () { return adaptors_1.fillSliceOfFloat32Array; } });
12
12
  Object.defineProperty(exports, "createFloat32Array", { enumerable: true, get: function () { return adaptors_1.createFloat32Array; } });
13
- var plugin_line_strip_1 = __importDefault(require("./plugin-line-strip"));
13
+ const plugin_line_strip_1 = __importDefault(require("./plugin-line-strip"));
14
14
  exports.TimeTracksLineStrip = plugin_line_strip_1.default;
15
- var adaptors_line_strip_1 = require("./adaptors-line-strip");
15
+ const adaptors_line_strip_1 = require("./adaptors-line-strip");
16
16
  Object.defineProperty(exports, "addCuttingPointLineStrip", { enumerable: true, get: function () { return adaptors_line_strip_1.addCuttingPointLineStrip; } });
17
17
  Object.defineProperty(exports, "featuresToLineStringData", { enumerable: true, get: function () { return adaptors_line_strip_1.featuresToLineStringData; } });
18
18
  Object.defineProperty(exports, "fillSliceOfFloat32ArrayLineStrip", { enumerable: true, get: function () { return adaptors_line_strip_1.fillSliceOfFloat32ArrayLineStrip; } });