@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,4 +1,55 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
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";
1
+ export const firework = `
2
+ float firework(vec2 point_coord, float phase) {
3
+ float t = phase + 5.0;
4
+ float z = 6.0;
5
+ const int n = 53; // particle count
6
+
7
+ vec3 startColor = vec3(0.0, 0.64, 0.2);
8
+ vec3 endColor = vec3(0.06, 0.35, 0.85);
9
+
10
+ float startRadius = 0.84;
11
+ float endRadius = 1.6;
12
+
13
+ float power = 0.51;
14
+ float duration = 4.0;
15
+
16
+ vec2 v = z * (2.0 * point_coord - vec2(1.0) );
17
+
18
+ vec3 col = vec3(0.0);
19
+ vec2 pm = v.yx * 2.8;
20
+
21
+ float dMax = duration;
22
+ float evo = (sin(phase * 0.01 + 400.0) * 0.5 + 0.5) * 99.0 + 1.0;
23
+
24
+ float mb = 0.0;
25
+ float mbRadius = 0.0;
26
+ float sum = 0.0;
27
+
28
+ for(int i = 0; i < n; i++) {
29
+ float d = fract(t * power + 48934.4238 * sin(float(i / int(evo)) * 692.7398));
30
+
31
+ float a = 6.28 * float(i) / float(n);
32
+ float x = d * cos(a) * duration;
33
+ float y = d * sin(a) * duration;
34
+
35
+ float distRatio = d / dMax;
36
+ mbRadius = mix(startRadius, endRadius, distRatio);
37
+
38
+ vec2 p = v - vec2(x, y);
39
+ mb = mbRadius / dot(p, p);
40
+
41
+ sum += mb;
42
+ col = mix(col, mix(startColor, endColor, distRatio), mb / sum);
43
+ }
44
+
45
+ sum /= float(n);
46
+ col = normalize(col) * sum;
47
+ sum = clamp(sum, 0.0, 0.4);
48
+
49
+ vec3 tex = vec3(1.0);
50
+ col *= smoothstep(tex, vec3(0.0), vec3(sum));
51
+
52
+ float alpha = sum * 2.5;
53
+ return clamp(alpha, 0.0, 1.0);
54
+ }
55
+ `;
@@ -1,5 +1,56 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
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}";
5
- exports.singularity = singularity;
1
+ const singularity = `
2
+
3
+ vec3 palette(float d){
4
+ return mix(vec3(0.2, 0.7, 0.9), vec3(1.0, 0.0, 1.0), d);
5
+ }
6
+
7
+ vec2 rotate(vec2 p, float a){
8
+ float c = cos(a);
9
+ float s = sin(a);
10
+ return p * mat2(c, s, -s, c);
11
+ }
12
+
13
+ float map(vec3 p){
14
+ for (int i = 0; i < 4; ++i){
15
+ float t = u_phase * 0.2;
16
+ p.xz = rotate(p.xz, t);
17
+ p.xy = rotate(p.xy, t * 1.89);
18
+ p.xz = abs(p.xz);
19
+ p.xz -= 0.85;
20
+ }
21
+ return dot(sign(p), p) / 5.0;
22
+ }
23
+
24
+ vec4 rm(vec3 ro, vec3 rd){
25
+ float t = 0.0;
26
+ vec3 col = vec3(0.0);
27
+ float d;
28
+ for (float i = 0.0; i < 56.0; i++){
29
+ vec3 p = ro + rd * t;
30
+ d = map(p) * 0.5;
31
+ if (d < 0.02){
32
+ break;
33
+ }
34
+ if (d > 100.0){
35
+ break;
36
+ }
37
+ col += palette(length(p) * 0.1) / (400.0 * d);
38
+ t += d;
39
+ }
40
+ return vec4(col, 1.0 / d * 2.0 );
41
+ }
42
+
43
+ vec4 singularity(vec2 pointCoord, float u_phase) {
44
+ vec2 uv = (pointCoord - 0.5); // Normalized coordinates from gl_PointCoord
45
+ vec3 ro = vec3(0.0, 0.0, -50.0);
46
+ ro.xz = rotate(ro.xz, u_phase);
47
+ vec3 cf = normalize(-ro);
48
+ vec3 cs = normalize(cross(cf, vec3(0.0, 1.0, 0.0)));
49
+ vec3 cu = normalize(cross(cf, cs));
50
+
51
+ vec3 uuv = ro + cf * 3.0 + uv.x * cs + uv.y * cu;
52
+ vec3 rd = normalize(uuv - ro);
53
+
54
+ return rm(ro, rd);
55
+ }`;
56
+ export { singularity };
@@ -1,20 +1,4 @@
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
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.latLongToPixelXY = void 0;
13
- exports.addCuttingPointLineStrip = addCuttingPointLineStrip;
14
- exports.featuresToLineStringData = featuresToLineStringData;
15
- exports.fillSliceOfFloat32ArrayLineStrip = fillSliceOfFloat32ArrayLineStrip;
16
- var util_1 = require("../util");
17
- Object.defineProperty(exports, "latLongToPixelXY", { enumerable: true, get: function () { return util_1.latLongToPixelXY; } });
1
+ import { latLongToPixelXY } from "../util";
18
2
  /**
19
3
  * @param {Array.<Array.<number>>} coordinates
20
4
  * @param {Array.<number>} timestamps
@@ -34,44 +18,42 @@ function featuresToLineStringData(data) {
34
18
  * feature[i].properties.messageTime are the timestamps of the points
35
19
  *
36
20
  */
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];
21
+ const features = data.features;
22
+ let size = data.features.length - 1;
23
+ let startTime = features[0].properties.messageTime[0];
24
+ let endTime = features[0].properties.messageTime[features[0].properties.messageTime.length - 1];
25
+ for (let feature of features) {
43
26
  size += feature.properties.messageTime.length;
44
27
  startTime = Math.min(startTime, feature.properties.messageTime[0]);
45
28
  endTime = Math.max(endTime, feature.properties.messageTime[feature.properties.messageTime.length - 1]);
46
29
  }
47
- var array = new Float32Array(size * 9);
48
- var offset = 0;
30
+ const array = new Float32Array(size * 9);
31
+ let offset = 0;
49
32
  {
50
- var feature = features[0];
51
- var coordinates = feature.geometry.coordinates;
52
- var timestamps = feature.properties.messageTime.map(function (time) { return (time - startTime) / 1000; });
33
+ const feature = features[0];
34
+ const coordinates = feature.geometry.coordinates;
35
+ const timestamps = feature.properties.messageTime.map((time) => (time - startTime) / 1000);
53
36
  offset = fillSliceOfFloat32ArrayLineStrip(array, offset, coordinates, timestamps);
54
37
  }
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; });
38
+ for (let i = 1; i < features.length; i++) {
39
+ const feature = features[i];
40
+ const coordinates = feature.geometry.coordinates;
41
+ const timestamps = feature.properties.messageTime.map((time) => (time - startTime) / 1000);
59
42
  offset = addCuttingPointLineStrip(array, offset);
60
43
  offset = fillSliceOfFloat32ArrayLineStrip(array, offset, coordinates, timestamps);
61
44
  }
62
- return { data: array, startTime: startTime, endTime: endTime };
45
+ return { data: array, startTime, endTime };
63
46
  }
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);
47
+ function fillSliceOfFloat32ArrayLineStrip(floatArray, offset, coordinates, timestamps, { styleGroupNameArray = null, groupColorFunction = () => [Math.random(), Math.random(), Math.random()] } = {}) {
48
+ const startTime = timestamps[0];
49
+ const endTime = timestamps[timestamps.length - 1];
50
+ for (let i = 0; i < coordinates.length; i++) {
51
+ const time = timestamps[i];
52
+ const coord = coordinates[i];
53
+ const styleGroupName = styleGroupNameArray ? styleGroupNameArray[i] : "default";
54
+ const { x, y } = latLongToPixelXY(coord[1], coord[0]);
55
+ const z = coord[2] ? coord[2] / 1000.0 : 0;
56
+ floatArray.set([x, y, z, time, ...groupColorFunction(styleGroupName), startTime, endTime], offset);
75
57
  offset += 9;
76
58
  }
77
59
  return offset;
@@ -80,3 +62,4 @@ function addCuttingPointLineStrip(floatArray, offset) {
80
62
  floatArray.set(new Float32Array(9).fill(NaN), offset);
81
63
  return offset + 9;
82
64
  }
65
+ export { addCuttingPointLineStrip, featuresToLineStringData, fillSliceOfFloat32ArrayLineStrip, latLongToPixelXY };
@@ -1,25 +1,11 @@
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
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.Adaptor = void 0;
13
- exports.fillSliceOfFloat32Array = fillSliceOfFloat32Array;
14
- exports.createFloat32Array = createFloat32Array;
15
- var util_1 = require("../util");
16
- var _latLongToPixelXY = util_1.latLongToPixelXY;
17
- var Adaptor = /** @class */ (function () {
1
+ import { latLongToPixelXY } from "../util";
2
+ const _latLongToPixelXY = latLongToPixelXY;
3
+ class Adaptor {
18
4
  /**
19
5
  * @param {Object.<string, Color>} groupColorMap
20
6
  * @typedef {Array} Color | [r, g, b] | between 0-1
21
7
  */
22
- function Adaptor(groupColorMap) {
8
+ constructor(groupColorMap) {
23
9
  this._groupColorMap = groupColorMap;
24
10
  }
25
11
  /**
@@ -29,21 +15,18 @@ var Adaptor = /** @class */ (function () {
29
15
  * @param {string} styleGroupPropertyName
30
16
  * @returns {lineData} lineData for Plugin
31
17
  */
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];
18
+ fromGeoJson(geojsonObject, startTime, timePropertyName = "messageTime", styleGroupPropertyName = "styleGroup") {
19
+ const features = geojsonObject.features.filter(feature => feature.geometry.coordinates.length > 1);
20
+ const buffer = createFloat32Array(features.map(feature => feature.geometry.coordinates));
21
+ let offset = 0;
22
+ for (let feature of features) {
23
+ const coordinates = feature.geometry.coordinates;
24
+ const timestamps = feature.properties[timePropertyName].map((time) => (time - startTime) / 1000);
25
+ const styleGroupNameArray = feature.properties[styleGroupPropertyName];
43
26
  offset = fillSliceOfFloat32Array(coordinates, timestamps, styleGroupNameArray, this._groupColorMap, buffer, offset);
44
27
  }
45
28
  return buffer;
46
- };
29
+ }
47
30
  /**
48
31
  * Inputs are lists of tracks. Each track is a list of coordinates, timestamps and styleGroupNames.
49
32
  * @param {Array.<Array.<Array.<number>>>} coordinatesList | [ [ [lon, lat, z], [lon, lat, z], ...], ...
@@ -52,20 +35,18 @@ var Adaptor = /** @class */ (function () {
52
35
  * @param {number} startTime | epoch time
53
36
  * @returns {lineData} lineData for Plugin
54
37
  */
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];
38
+ fromLists(coordinatesList, timestampsList, colorGroupList, startTime) {
39
+ const buffer = createFloat32Array(coordinatesList);
40
+ let offset = 0;
41
+ for (let i = 0; i < coordinatesList.length; i++) {
42
+ const coordinates = coordinatesList[i];
43
+ const timestamps = timestampsList[i].map((time) => (time - startTime) / 1000);
44
+ const styleGroupNameArray = colorGroupList[i];
62
45
  offset = fillSliceOfFloat32Array(coordinates, timestamps, styleGroupNameArray, this._groupColorMap, buffer, offset);
63
46
  }
64
47
  return buffer;
65
- };
66
- return Adaptor;
67
- }());
68
- exports.Adaptor = Adaptor;
48
+ }
49
+ }
69
50
  /**
70
51
  * @param {Array.<Array.<number>>} coordinates
71
52
  * @param {Array.<number>} timestamps
@@ -80,39 +61,39 @@ exports.Adaptor = Adaptor;
80
61
  */
81
62
  function fillSliceOfFloat32Array(coordinates, timestamps, styleGroupNameArray, _groupColorMap, floatArray, offset) {
82
63
  if (coordinates[0].length === 2) {
83
- var startTime = timestamps[0];
84
- var endTime = timestamps[timestamps.length - 1];
85
- var prevPointData = null;
64
+ const startTime = timestamps[0];
65
+ const endTime = timestamps[timestamps.length - 1];
66
+ let prevPointData = null;
86
67
  { // 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);
68
+ const { x, y } = _latLongToPixelXY(coordinates[0][1], coordinates[0][0]);
69
+ prevPointData = [x, y, 0, timestamps[0], ..._groupColorMap[styleGroupNameArray[0]]];
89
70
  }
90
71
  { // 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);
72
+ for (let i = 1; i < coordinates.length; i++) {
73
+ const time = timestamps[i];
74
+ const coord = coordinates[i];
75
+ const { x, y } = _latLongToPixelXY(coord[1], coord[0]);
76
+ floatArray.set([...prevPointData, startTime, endTime, x, y, 0, time, ..._groupColorMap[styleGroupNameArray[i]], startTime, endTime], offset);
77
+ prevPointData = [x, y, 0, time, ..._groupColorMap[styleGroupNameArray[i]]];
97
78
  offset += 18;
98
79
  }
99
80
  }
100
81
  }
101
82
  else {
102
- var startTime = timestamps[0];
103
- var endTime = timestamps[timestamps.length - 1];
104
- var prevPointData = null;
83
+ const startTime = timestamps[0];
84
+ const endTime = timestamps[timestamps.length - 1];
85
+ let prevPointData = null;
105
86
  { // 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);
87
+ const { x, y } = _latLongToPixelXY(coordinates[0][1], coordinates[0][0]);
88
+ prevPointData = [x, y, coordinates[0][2] / 1000.0, timestamps[0], ..._groupColorMap[styleGroupNameArray[0]]];
108
89
  }
109
90
  { // 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);
91
+ for (let i = 1; i < coordinates.length; i++) {
92
+ const time = timestamps[i];
93
+ const coord = coordinates[i];
94
+ const { x, y } = _latLongToPixelXY(coord[1], coord[0]);
95
+ floatArray.set([...prevPointData, startTime, endTime, x, y, coord[2] / 1000.0, time, ..._groupColorMap[styleGroupNameArray[i]], startTime, endTime], offset);
96
+ prevPointData = [x, y, coord[2] / 1000.0, time, ..._groupColorMap[styleGroupNameArray[i]]];
116
97
  offset += 18;
117
98
  }
118
99
  }
@@ -126,11 +107,11 @@ function fillSliceOfFloat32Array(coordinates, timestamps, styleGroupNameArray, _
126
107
  * Coordinates array is needed to calculate the size of the buffer.
127
108
  */
128
109
  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];
110
+ let filteredSize = 0;
111
+ for (let coordinates of coordinatesArray) {
132
112
  filteredSize += coordinates.length * 2 - 2;
133
113
  }
134
- var array = new Float32Array(filteredSize * 9);
114
+ const array = new Float32Array(filteredSize * 9);
135
115
  return array;
136
116
  }
117
+ export { Adaptor, fillSliceOfFloat32Array, createFloat32Array };
@@ -1,19 +1,5 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
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"));
8
- exports.TimeTracks = plugin_1.default;
9
- var adaptors_1 = require("./adaptors");
10
- Object.defineProperty(exports, "Adaptor", { enumerable: true, get: function () { return adaptors_1.Adaptor; } });
11
- Object.defineProperty(exports, "fillSliceOfFloat32Array", { enumerable: true, get: function () { return adaptors_1.fillSliceOfFloat32Array; } });
12
- Object.defineProperty(exports, "createFloat32Array", { enumerable: true, get: function () { return adaptors_1.createFloat32Array; } });
13
- var plugin_line_strip_1 = __importDefault(require("./plugin-line-strip"));
14
- exports.TimeTracksLineStrip = plugin_line_strip_1.default;
15
- var adaptors_line_strip_1 = require("./adaptors-line-strip");
16
- Object.defineProperty(exports, "addCuttingPointLineStrip", { enumerable: true, get: function () { return adaptors_line_strip_1.addCuttingPointLineStrip; } });
17
- Object.defineProperty(exports, "featuresToLineStringData", { enumerable: true, get: function () { return adaptors_line_strip_1.featuresToLineStringData; } });
18
- Object.defineProperty(exports, "fillSliceOfFloat32ArrayLineStrip", { enumerable: true, get: function () { return adaptors_line_strip_1.fillSliceOfFloat32ArrayLineStrip; } });
19
- Object.defineProperty(exports, "latLongToPixelXY", { enumerable: true, get: function () { return adaptors_line_strip_1.latLongToPixelXY; } });
1
+ import TimeTracks from './plugin';
2
+ import { Adaptor, fillSliceOfFloat32Array, createFloat32Array } from './adaptors';
3
+ import TimeTracksLineStrip from './plugin-line-strip';
4
+ import { addCuttingPointLineStrip, featuresToLineStringData, fillSliceOfFloat32ArrayLineStrip, latLongToPixelXY } from './adaptors-line-strip';
5
+ export { Adaptor, fillSliceOfFloat32Array, createFloat32Array, TimeTracks, TimeTracksLineStrip, addCuttingPointLineStrip, featuresToLineStringData, fillSliceOfFloat32ArrayLineStrip, latLongToPixelXY };