@pirireis/webglobeplugins 0.9.10 → 0.9.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Math/angle-calculation.js +8 -8
- package/Math/arc.js +18 -18
- package/Math/bounds/line-bbox.js +80 -78
- package/Math/constants.js +3 -3
- package/Math/juction/arc-plane.js +23 -23
- package/Math/juction/line-sphere.js +11 -11
- package/Math/juction/plane-plane.js +11 -11
- package/Math/line.js +16 -14
- package/Math/methods.js +72 -67
- package/Math/plane.js +18 -16
- package/Math/quaternion.js +49 -45
- package/Math/utils.js +2 -2
- package/Math/vec3.js +45 -42
- package/algorithms/search-binary.js +4 -4
- package/altitude-locator/draw-subset-obj.js +8 -7
- package/altitude-locator/plugin.js +113 -97
- package/arrowfield/adaptor.js +4 -3
- package/arrowfield/index.js +2 -2
- package/arrowfield/plugin.js +65 -62
- package/bearing-line/index.js +1 -1
- package/bearing-line/plugin.js +225 -200
- package/circle-line-chain/chain-list-map.js +88 -82
- package/circle-line-chain/plugin.js +154 -129
- package/circle-line-chain/util.js +1 -1
- package/compass-rose/compass-rose-padding-flat.js +126 -104
- package/compass-rose/compass-text-writer.js +70 -62
- package/compass-rose/index.js +2 -2
- package/compassrose/compassrose.js +50 -46
- package/compassrose/index.js +1 -1
- package/heatwave/index.js +2 -2
- package/heatwave/isobar/objectarraylabels.js +48 -44
- package/heatwave/isobar/plugin.js +123 -104
- package/heatwave/isobar/quadtreecontours.js +92 -76
- package/heatwave/plugins/heatwaveglobeshell.js +87 -69
- package/index.js +11 -11
- package/package.json +1 -1
- package/partialrings/buffer-manager.js +64 -32
- package/partialrings/index.js +1 -1
- package/partialrings/plugin.js +84 -48
- package/partialrings/program.js +47 -136
- package/pin/pin-object-array.js +86 -83
- package/pin/pin-point-totem.js +22 -21
- package/point-heat-map/adaptors/timetracksplugin-format-to-this.js +10 -10
- package/point-heat-map/plugin-webworker.js +45 -40
- package/point-heat-map/point-to-heat-map-flow.js +42 -40
- package/point-tracks/key-methods.js +1 -1
- package/point-tracks/plugin.js +142 -127
- package/programs/arrowfield/index.js +1 -1
- package/programs/arrowfield/logic.js +62 -170
- package/programs/arrowfield/object.js +35 -33
- package/programs/data2legend/density-to-legend.js +21 -45
- package/programs/data2legend/point-to-density-texture.js +27 -52
- package/programs/float2legendwithratio/index.js +1 -1
- package/programs/float2legendwithratio/logic.js +42 -88
- package/programs/float2legendwithratio/object.js +46 -43
- package/programs/globe-util/is-globe-moved.js +11 -10
- package/programs/globeshell/index.js +1 -1
- package/programs/globeshell/wiggle/index.js +1 -1
- package/programs/globeshell/wiggle/logic.js +98 -191
- package/programs/globeshell/wiggle/object.js +35 -33
- package/programs/helpers/blender/program.js +19 -36
- package/programs/helpers/fadeaway/index.js +1 -1
- package/programs/helpers/fadeaway/logic.js +13 -35
- package/programs/helpers/fadeaway/object.js +10 -9
- package/programs/helpers/index.js +1 -1
- package/programs/index.js +8 -8
- package/programs/line-on-globe/angled-line.js +32 -91
- package/programs/line-on-globe/circle-accurate-3d.js +32 -82
- package/programs/line-on-globe/circle-accurate-flat.js +50 -108
- package/programs/line-on-globe/circle-accurate.js +33 -103
- package/programs/line-on-globe/circle.js +32 -97
- package/programs/line-on-globe/degree-padding-around-circle-3d.js +33 -83
- package/programs/line-on-globe/lines-color-instanced-flat.js +34 -79
- package/programs/line-on-globe/linestrip.js +39 -100
- package/programs/line-on-globe/naive-accurate-flexible.js +48 -118
- package/programs/line-on-globe/to-the-surface.js +29 -58
- package/programs/line-on-globe/util.js +1 -1
- package/programs/picking/pickable-renderer.js +33 -117
- package/programs/point-on-globe/element-globe-surface-glow.js +38 -78
- package/programs/point-on-globe/element-point-glow.js +35 -103
- package/programs/point-on-globe/square-pixel-point.js +27 -76
- package/programs/programcache.js +13 -13
- package/programs/rings/distancering/circleflatprogram.js +21 -63
- package/programs/rings/distancering/circlepaddingfreeangleprogram.js +145 -156
- package/programs/rings/distancering/circlepaddysharedbuffer.js +197 -121
- package/programs/rings/distancering/index.js +4 -4
- package/programs/rings/distancering/paddyflatprogram.js +20 -73
- package/programs/rings/distancering/paddyflatprogram2d.js +22 -75
- package/programs/rings/distancering/paddyflatprogram3d.js +20 -73
- package/programs/rings/partial-ring/piece-of-pie.js +35 -137
- package/programs/totems/camerauniformblock.js +51 -64
- package/programs/totems/canvas-webglobe-info.js +40 -48
- package/programs/totems/gpu-selection-uniform-block.js +40 -44
- package/programs/totems/index.js +1 -1
- package/programs/two-d/pixel-padding-for-compass.js +29 -90
- package/programs/util.js +7 -6
- package/programs/vectorfields/index.js +1 -1
- package/programs/vectorfields/logics/drawrectangleparticles.js +29 -70
- package/programs/vectorfields/logics/index.js +3 -3
- package/programs/vectorfields/logics/pixelbased.js +35 -91
- package/programs/vectorfields/logics/ubo.js +25 -31
- package/programs/vectorfields/pingpongbuffermanager.js +34 -30
- package/rangerings/index.js +4 -4
- package/rangerings/plugin.js +252 -202
- package/rangerings/rangeringangletext.js +120 -108
- package/rangerings/ring-account.js +69 -52
- package/shaders/fragment-toy/firework.js +1 -55
- package/shaders/fragment-toy/singularity.js +1 -55
- package/timetracks/adaptors-line-strip.js +37 -26
- package/timetracks/adaptors.js +61 -47
- package/timetracks/index.js +4 -4
- package/timetracks/plugin-line-strip.js +63 -59
- package/timetracks/plugin.js +69 -65
- package/timetracks/program-line-strip.js +103 -296
- package/timetracks/program.js +113 -419
- package/timetracks/programpoint-line-strip.js +44 -97
- package/timetracks/programpoint.js +44 -90
- package/util/account/bufferoffsetmanager.js +95 -72
- package/util/account/index.js +1 -1
- package/util/account/single-attribute-buffer-management/buffer-manager.js +43 -39
- package/util/account/single-attribute-buffer-management/buffer-orchestrator.js +94 -64
- package/util/account/single-attribute-buffer-management/index.js +3 -3
- package/util/account/single-attribute-buffer-management/object-store.js +30 -28
- package/util/account/util.js +4 -2
- package/util/algorithms/search-binary.js +4 -4
- package/util/check/get.js +5 -5
- package/util/check/typecheck.js +15 -13
- package/util/geometry/index.js +11 -9
- package/util/gl-util/buffer/attribute-loader.js +20 -8
- package/util/gl-util/buffer/index.js +1 -1
- package/util/gl-util/draw-options/methods.js +7 -7
- package/util/gl-util/uniform-block/manager.js +67 -55
- package/util/heatwavedatamanager/datamanager.js +116 -56
- package/util/heatwavedatamanager/index.js +2 -2
- package/util/heatwavedatamanager/pointcoordinatesdatacalculator.js +40 -37
- package/util/heatwavedatamanager/pointcoordsmeta.js +10 -9
- package/util/index.js +6 -6
- package/util/interpolation/timetrack/index.js +1 -1
- package/util/interpolation/timetrack/timetrack-interpolator.js +29 -27
- package/util/interpolation/timetrack/web-worker-str.js +1 -179
- package/util/interpolation/timetrack/web-worker.js +4 -4
- package/util/jshelpers/data-filler.js +7 -7
- package/util/jshelpers/timefilters.js +7 -7
- package/util/picking/fence.js +7 -7
- package/util/picking/picker-displayer.js +52 -46
- package/util/programs/draw-texture-on-canvas.js +21 -39
- package/util/programs/shapesonglobe.js +64 -104
- package/util/programs/supersampletotextures.js +39 -45
- package/util/programs/texturetoglobe.js +48 -98
- package/util/shaderfunctions/geometrytransformations.js +27 -322
- package/util/shaderfunctions/nodata.js +1 -7
- package/util/shaderfunctions/noisefunctions.js +9 -39
- package/util/surface-line-data/arcs-to-cuts.js +23 -20
- package/util/webglobe/rasteroverlay.js +37 -35
- package/util/webglobjectbuilders.js +60 -55
- package/util/webglobjectbuilders1.js +49 -48
- package/waveparticles/adaptor.js +7 -6
- package/waveparticles/index.js +2 -2
- package/waveparticles/plugin.js +84 -79
- package/wind/imagetovectorfieldandmagnitude.js +15 -15
- package/wind/index.js +4 -4
- package/wind/plugin.js +251 -453
- package/wind/vectorfieldimage.js +5 -5
- package/write-text/attached-text-writer.js +48 -46
- package/write-text/context-text.js +58 -51
- package/write-text/context-text3.js +74 -69
|
@@ -1,58 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.firework = void 0;
|
|
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
|
-
`;
|
|
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,59 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.singularity = void 0;
|
|
4
|
-
|
|
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
|
-
}`;
|
|
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}";
|
|
59
5
|
exports.singularity = singularity;
|
|
@@ -1,10 +1,19 @@
|
|
|
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
|
+
};
|
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
12
|
exports.latLongToPixelXY = void 0;
|
|
4
13
|
exports.addCuttingPointLineStrip = addCuttingPointLineStrip;
|
|
5
14
|
exports.featuresToLineStringData = featuresToLineStringData;
|
|
6
15
|
exports.fillSliceOfFloat32ArrayLineStrip = fillSliceOfFloat32ArrayLineStrip;
|
|
7
|
-
|
|
16
|
+
var util_1 = require("../util");
|
|
8
17
|
Object.defineProperty(exports, "latLongToPixelXY", { enumerable: true, get: function () { return util_1.latLongToPixelXY; } });
|
|
9
18
|
/**
|
|
10
19
|
* @param {Array.<Array.<number>>} coordinates
|
|
@@ -25,42 +34,44 @@ function featuresToLineStringData(data) {
|
|
|
25
34
|
* feature[i].properties.messageTime are the timestamps of the points
|
|
26
35
|
*
|
|
27
36
|
*/
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
for (
|
|
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];
|
|
33
43
|
size += feature.properties.messageTime.length;
|
|
34
44
|
startTime = Math.min(startTime, feature.properties.messageTime[0]);
|
|
35
45
|
endTime = Math.max(endTime, feature.properties.messageTime[feature.properties.messageTime.length - 1]);
|
|
36
46
|
}
|
|
37
|
-
|
|
38
|
-
|
|
47
|
+
var array = new Float32Array(size * 9);
|
|
48
|
+
var offset = 0;
|
|
39
49
|
{
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
50
|
+
var feature = features[0];
|
|
51
|
+
var coordinates = feature.geometry.coordinates;
|
|
52
|
+
var timestamps = feature.properties.messageTime.map(function (time) { return (time - startTime) / 1000; });
|
|
43
53
|
offset = fillSliceOfFloat32ArrayLineStrip(array, offset, coordinates, timestamps);
|
|
44
54
|
}
|
|
45
|
-
for (
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
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; });
|
|
49
59
|
offset = addCuttingPointLineStrip(array, offset);
|
|
50
60
|
offset = fillSliceOfFloat32ArrayLineStrip(array, offset, coordinates, timestamps);
|
|
51
61
|
}
|
|
52
|
-
return { data: array, startTime, endTime };
|
|
62
|
+
return { data: array, startTime: startTime, endTime: endTime };
|
|
53
63
|
}
|
|
54
|
-
function fillSliceOfFloat32ArrayLineStrip(floatArray, offset, coordinates, timestamps,
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
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);
|
|
64
75
|
offset += 9;
|
|
65
76
|
}
|
|
66
77
|
return offset;
|
package/timetracks/adaptors.js
CHANGED
|
@@ -1,16 +1,25 @@
|
|
|
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
|
+
};
|
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
12
|
exports.Adaptor = void 0;
|
|
4
13
|
exports.fillSliceOfFloat32Array = fillSliceOfFloat32Array;
|
|
5
14
|
exports.createFloat32Array = createFloat32Array;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
15
|
+
var util_1 = require("../util");
|
|
16
|
+
var _latLongToPixelXY = util_1.latLongToPixelXY;
|
|
17
|
+
var Adaptor = /** @class */ (function () {
|
|
9
18
|
/**
|
|
10
19
|
* @param {Object.<string, Color>} groupColorMap
|
|
11
20
|
* @typedef {Array} Color | [r, g, b] | between 0-1
|
|
12
21
|
*/
|
|
13
|
-
|
|
22
|
+
function Adaptor(groupColorMap) {
|
|
14
23
|
this._groupColorMap = groupColorMap;
|
|
15
24
|
}
|
|
16
25
|
/**
|
|
@@ -20,18 +29,21 @@ class Adaptor {
|
|
|
20
29
|
* @param {string} styleGroupPropertyName
|
|
21
30
|
* @returns {lineData} lineData for Plugin
|
|
22
31
|
*/
|
|
23
|
-
fromGeoJson(geojsonObject, startTime, timePropertyName
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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];
|
|
31
43
|
offset = fillSliceOfFloat32Array(coordinates, timestamps, styleGroupNameArray, this._groupColorMap, buffer, offset);
|
|
32
44
|
}
|
|
33
45
|
return buffer;
|
|
34
|
-
}
|
|
46
|
+
};
|
|
35
47
|
/**
|
|
36
48
|
* Inputs are lists of tracks. Each track is a list of coordinates, timestamps and styleGroupNames.
|
|
37
49
|
* @param {Array.<Array.<Array.<number>>>} coordinatesList | [ [ [lon, lat, z], [lon, lat, z], ...], ...
|
|
@@ -40,18 +52,19 @@ class Adaptor {
|
|
|
40
52
|
* @param {number} startTime | epoch time
|
|
41
53
|
* @returns {lineData} lineData for Plugin
|
|
42
54
|
*/
|
|
43
|
-
fromLists(coordinatesList, timestampsList, colorGroupList, startTime) {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
for (
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
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];
|
|
50
62
|
offset = fillSliceOfFloat32Array(coordinates, timestamps, styleGroupNameArray, this._groupColorMap, buffer, offset);
|
|
51
63
|
}
|
|
52
64
|
return buffer;
|
|
53
|
-
}
|
|
54
|
-
|
|
65
|
+
};
|
|
66
|
+
return Adaptor;
|
|
67
|
+
}());
|
|
55
68
|
exports.Adaptor = Adaptor;
|
|
56
69
|
/**
|
|
57
70
|
* @param {Array.<Array.<number>>} coordinates
|
|
@@ -67,39 +80,39 @@ exports.Adaptor = Adaptor;
|
|
|
67
80
|
*/
|
|
68
81
|
function fillSliceOfFloat32Array(coordinates, timestamps, styleGroupNameArray, _groupColorMap, floatArray, offset) {
|
|
69
82
|
if (coordinates[0].length === 2) {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
83
|
+
var startTime = timestamps[0];
|
|
84
|
+
var endTime = timestamps[timestamps.length - 1];
|
|
85
|
+
var prevPointData = null;
|
|
73
86
|
{ // first point
|
|
74
|
-
|
|
75
|
-
prevPointData = [x, y, 0, timestamps[0],
|
|
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);
|
|
76
89
|
}
|
|
77
90
|
{ // middle points until end
|
|
78
|
-
for (
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
floatArray.set([
|
|
83
|
-
prevPointData = [x, y, 0, time,
|
|
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);
|
|
84
97
|
offset += 18;
|
|
85
98
|
}
|
|
86
99
|
}
|
|
87
100
|
}
|
|
88
101
|
else {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
102
|
+
var startTime = timestamps[0];
|
|
103
|
+
var endTime = timestamps[timestamps.length - 1];
|
|
104
|
+
var prevPointData = null;
|
|
92
105
|
{ // first point
|
|
93
|
-
|
|
94
|
-
prevPointData = [x, y, coordinates[0][2] / 1000.0, timestamps[0],
|
|
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);
|
|
95
108
|
}
|
|
96
109
|
{ // middle points until end
|
|
97
|
-
for (
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
floatArray.set([
|
|
102
|
-
prevPointData = [x, y, coord[2] / 1000.0, time,
|
|
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);
|
|
103
116
|
offset += 18;
|
|
104
117
|
}
|
|
105
118
|
}
|
|
@@ -113,10 +126,11 @@ function fillSliceOfFloat32Array(coordinates, timestamps, styleGroupNameArray, _
|
|
|
113
126
|
* Coordinates array is needed to calculate the size of the buffer.
|
|
114
127
|
*/
|
|
115
128
|
function createFloat32Array(coordinatesArray) {
|
|
116
|
-
|
|
117
|
-
for (
|
|
129
|
+
var filteredSize = 0;
|
|
130
|
+
for (var _i = 0, coordinatesArray_1 = coordinatesArray; _i < coordinatesArray_1.length; _i++) {
|
|
131
|
+
var coordinates = coordinatesArray_1[_i];
|
|
118
132
|
filteredSize += coordinates.length * 2 - 2;
|
|
119
133
|
}
|
|
120
|
-
|
|
134
|
+
var array = new Float32Array(filteredSize * 9);
|
|
121
135
|
return array;
|
|
122
136
|
}
|
package/timetracks/index.js
CHANGED
|
@@ -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
|
-
|
|
7
|
+
var plugin_1 = __importDefault(require("./plugin"));
|
|
8
8
|
exports.TimeTracks = plugin_1.default;
|
|
9
|
-
|
|
9
|
+
var 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
|
-
|
|
13
|
+
var plugin_line_strip_1 = __importDefault(require("./plugin-line-strip"));
|
|
14
14
|
exports.TimeTracksLineStrip = plugin_line_strip_1.default;
|
|
15
|
-
|
|
15
|
+
var 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; } });
|