@deck.gl-community/timeline-layers 9.2.5 → 9.3.1-alpha.0
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/README.md +2 -0
- package/package.json +9 -9
- package/src/index.ts +42 -0
- package/src/layers/timeline-layer/timeline-collision.ts +51 -0
- package/src/layers/timeline-layer/timeline-layer.ts +868 -0
- package/src/layers/timeline-layer/timeline-layout.ts +80 -0
- package/src/layers/timeline-layer/timeline-types.ts +146 -0
- package/src/layers/timeline-layer/timeline-utils.ts +85 -0
- package/dist/index.cjs +0 -538
- package/dist/index.cjs.map +0 -7
- package/dist/index.d.ts +0 -10
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -9
- package/dist/index.js.map +0 -1
- package/dist/layers/horizon-graph-layer/horizon-graph-layer-uniforms.d.ts +0 -23
- package/dist/layers/horizon-graph-layer/horizon-graph-layer-uniforms.d.ts.map +0 -1
- package/dist/layers/horizon-graph-layer/horizon-graph-layer-uniforms.js +0 -33
- package/dist/layers/horizon-graph-layer/horizon-graph-layer-uniforms.js.map +0 -1
- package/dist/layers/horizon-graph-layer/horizon-graph-layer.d.ts +0 -38
- package/dist/layers/horizon-graph-layer/horizon-graph-layer.d.ts.map +0 -1
- package/dist/layers/horizon-graph-layer/horizon-graph-layer.fs.d.ts +0 -3
- package/dist/layers/horizon-graph-layer/horizon-graph-layer.fs.d.ts.map +0 -1
- package/dist/layers/horizon-graph-layer/horizon-graph-layer.fs.js +0 -53
- package/dist/layers/horizon-graph-layer/horizon-graph-layer.fs.js.map +0 -1
- package/dist/layers/horizon-graph-layer/horizon-graph-layer.js +0 -138
- package/dist/layers/horizon-graph-layer/horizon-graph-layer.js.map +0 -1
- package/dist/layers/horizon-graph-layer/horizon-graph-layer.vs.d.ts +0 -3
- package/dist/layers/horizon-graph-layer/horizon-graph-layer.vs.d.ts.map +0 -1
- package/dist/layers/horizon-graph-layer/horizon-graph-layer.vs.js +0 -24
- package/dist/layers/horizon-graph-layer/horizon-graph-layer.vs.js.map +0 -1
- package/dist/layers/horizon-graph-layer/multi-horizon-graph-layer.d.ts +0 -23
- package/dist/layers/horizon-graph-layer/multi-horizon-graph-layer.d.ts.map +0 -1
- package/dist/layers/horizon-graph-layer/multi-horizon-graph-layer.js +0 -100
- package/dist/layers/horizon-graph-layer/multi-horizon-graph-layer.js.map +0 -1
- package/dist/layers/time-axis-layer.d.ts +0 -56
- package/dist/layers/time-axis-layer.d.ts.map +0 -1
- package/dist/layers/time-axis-layer.js +0 -78
- package/dist/layers/time-axis-layer.js.map +0 -1
- package/dist/layers/vertical-grid-layer.d.ts +0 -41
- package/dist/layers/vertical-grid-layer.d.ts.map +0 -1
- package/dist/layers/vertical-grid-layer.js +0 -43
- package/dist/layers/vertical-grid-layer.js.map +0 -1
- package/dist/utils/format-utils.d.ts +0 -7
- package/dist/utils/format-utils.d.ts.map +0 -1
- package/dist/utils/format-utils.js +0 -75
- package/dist/utils/format-utils.js.map +0 -1
- package/dist/utils/tick-utils.d.ts +0 -10
- package/dist/utils/tick-utils.d.ts.map +0 -1
- package/dist/utils/tick-utils.js +0 -32
- package/dist/utils/tick-utils.js.map +0 -1
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
// deck.gl
|
|
2
|
-
// SPDX-License-Identifier: MIT
|
|
3
|
-
// Copyright (c) vis.gl contributors
|
|
4
|
-
const uniformBlock = `\
|
|
5
|
-
layout(std140) uniform horizonLayerUniforms {
|
|
6
|
-
float dataTextureSize; // width = height of the POT texture
|
|
7
|
-
float dataTextureSizeInv;
|
|
8
|
-
float dataTextureCount; // actual number of data points
|
|
9
|
-
|
|
10
|
-
float bands;
|
|
11
|
-
float bandsInv;
|
|
12
|
-
float yAxisScaleInv;
|
|
13
|
-
|
|
14
|
-
vec3 positiveColor;
|
|
15
|
-
vec3 negativeColor;
|
|
16
|
-
} horizonLayer;
|
|
17
|
-
`;
|
|
18
|
-
export const horizonLayerUniforms = {
|
|
19
|
-
name: 'horizonLayer',
|
|
20
|
-
vs: uniformBlock,
|
|
21
|
-
fs: uniformBlock,
|
|
22
|
-
uniformTypes: {
|
|
23
|
-
dataTextureSize: 'f32',
|
|
24
|
-
dataTextureSizeInv: 'f32',
|
|
25
|
-
dataTextureCount: 'f32',
|
|
26
|
-
bands: 'f32',
|
|
27
|
-
bandsInv: 'f32',
|
|
28
|
-
yAxisScaleInv: 'f32',
|
|
29
|
-
positiveColor: 'vec3<f32>',
|
|
30
|
-
negativeColor: 'vec3<f32>'
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
//# sourceMappingURL=horizon-graph-layer-uniforms.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"horizon-graph-layer-uniforms.js","sourceRoot":"","sources":["../../../src/layers/horizon-graph-layer/horizon-graph-layer-uniforms.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAKpC,MAAM,YAAY,GAAG;;;;;;;;;;;;;CAapB,CAAC;AAUF,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,IAAI,EAAE,cAAc;IACpB,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,YAAY;IAChB,YAAY,EAAE;QACZ,eAAe,EAAE,KAAK;QACtB,kBAAkB,EAAE,KAAK;QACzB,gBAAgB,EAAE,KAAK;QAEvB,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,KAAK;QACf,aAAa,EAAE,KAAK;QAEpB,aAAa,EAAE,WAAW;QAC1B,aAAa,EAAE,WAAW;KAC3B;CACiD,CAAC"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import type { DefaultProps, LayerProps, Color, LayerContext, UpdateParameters } from '@deck.gl/core';
|
|
2
|
-
import { Layer } from '@deck.gl/core';
|
|
3
|
-
import { Model } from '@luma.gl/engine';
|
|
4
|
-
import { Texture } from '@luma.gl/core';
|
|
5
|
-
export type _HorizonGraphLayerProps = {
|
|
6
|
-
data: number[] | Float32Array;
|
|
7
|
-
yAxisScale?: number;
|
|
8
|
-
bands?: number;
|
|
9
|
-
positiveColor?: Color;
|
|
10
|
-
negativeColor?: Color;
|
|
11
|
-
x?: number;
|
|
12
|
-
y?: number;
|
|
13
|
-
width?: number;
|
|
14
|
-
height?: number;
|
|
15
|
-
};
|
|
16
|
-
export type HorizonGraphLayerProps = _HorizonGraphLayerProps & LayerProps;
|
|
17
|
-
export declare class HorizonGraphLayer<ExtraProps extends {} = {}> extends Layer<ExtraProps & Required<_HorizonGraphLayerProps>> {
|
|
18
|
-
static layerName: string;
|
|
19
|
-
static defaultProps: DefaultProps<HorizonGraphLayerProps>;
|
|
20
|
-
state: {
|
|
21
|
-
model?: Model;
|
|
22
|
-
dataTexture?: Texture;
|
|
23
|
-
dataTextureSize?: number;
|
|
24
|
-
dataTextureCount?: number;
|
|
25
|
-
};
|
|
26
|
-
initializeState(): void;
|
|
27
|
-
getShaders(): any;
|
|
28
|
-
_createDataTexture(seriesData: Float32Array | number[]): {
|
|
29
|
-
dataTexture: Texture;
|
|
30
|
-
dataTextureSize: number;
|
|
31
|
-
dataTextureCount: number;
|
|
32
|
-
};
|
|
33
|
-
_createModel(): Model;
|
|
34
|
-
updateState(params: UpdateParameters<Layer<ExtraProps & Required<_HorizonGraphLayerProps>>>): void;
|
|
35
|
-
draw(): void;
|
|
36
|
-
finalizeState(context: LayerContext): void;
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=horizon-graph-layer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"horizon-graph-layer.d.ts","sourceRoot":"","sources":["../../../src/layers/horizon-graph-layer/horizon-graph-layer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAC,MAAM,eAAe,CAAC;AACnG,OAAO,EAAC,KAAK,EAAY,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAC,KAAK,EAAW,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAGtC,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;IAE9B,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,aAAa,CAAC,EAAE,KAAK,CAAC;IACtB,aAAa,CAAC,EAAE,KAAK,CAAC;IAEtB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,uBAAuB,GAAG,UAAU,CAAC;AAgB1E,qBAAa,iBAAiB,CAAC,UAAU,SAAS,EAAE,GAAG,EAAE,CAAE,SAAQ,KAAK,CACtE,UAAU,GAAG,QAAQ,CAAC,uBAAuB,CAAC,CAC/C;IACC,MAAM,CAAC,SAAS,SAAuB;IACvC,MAAM,CAAC,YAAY,uCAAgB;IAEnC,KAAK,EAAE;QACL,KAAK,CAAC,EAAE,KAAK,CAAC;QACd,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAM;IAEP,eAAe;IAIf,UAAU;IAQV,kBAAkB,CAAC,UAAU,EAAE,YAAY,GAAG,MAAM,EAAE,GAAG;QACvD,WAAW,EAAE,OAAO,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC;KAC1B;IAkCD,YAAY;IAwCZ,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAgB3F,IAAI;IAiCJ,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;CAK3C"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
declare const _default: "#version 300 es\n#define SHADER_NAME horizon-graph-layer-fragment-shader\n\nprecision highp float;\nprecision highp int;\n\n/******* UNIFORM *******/\n\nuniform sampler2D dataTexture;\n\n/******* IN *******/\n\nin vec2 v_uv;\n\n/******* OUT *******/\n\nout vec4 fragColor;\n\n\n/******* MAIN *******/\n\nvoid main(void) {\n // horizontal position to sample index\n float idx = v_uv.x * horizonLayer.dataTextureCount;\n // idx = clamp(idx, 0.0, horizonLayer.dataTextureCount - 1.0); // NEEDED???\n\n // fetch single data point & normalize (-1,+1)\n float fy = floor(idx * horizonLayer.dataTextureSizeInv);\n float fx = idx - fy * horizonLayer.dataTextureSize;\n float val = texelFetch(dataTexture, ivec2(int(fx), int(fy)), 0).r;\n val *= horizonLayer.yAxisScaleInv;\n\n // band layering\n float fband = abs(val) * horizonLayer.bands;\n float bandIdx = clamp(floor(fband), 0.0, horizonLayer.bands - 1.0);\n float bandFrac = fract(fband);\n\n // calc our position value and find out color (using mix+step instead of if...else)\n float positive = step(0.0, val); // 1 if pos, else 0\n vec3 baseCol = mix(horizonLayer.negativeColor, horizonLayer.positiveColor, positive);\n float curPos = mix(v_uv.y, 1.0 - v_uv.y, positive);\n float addOne = step(curPos, bandFrac);\n\n float band = bandIdx + addOne;\n float whiten = 1.0 - band * horizonLayer.bandsInv;\n\n fragColor = vec4(mix(baseCol, vec3(1.0), whiten), 1.0);\n}\n";
|
|
2
|
-
export default _default;
|
|
3
|
-
//# sourceMappingURL=horizon-graph-layer.fs.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"horizon-graph-layer.fs.d.ts","sourceRoot":"","sources":["../../../src/layers/horizon-graph-layer/horizon-graph-layer.fs.ts"],"names":[],"mappings":";AAIA,wBAgDE"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
// deck.gl-community
|
|
2
|
-
// SPDX-License-Identifier: MIT
|
|
3
|
-
// Copyright (c) vis.gl contributors
|
|
4
|
-
export default `#version 300 es
|
|
5
|
-
#define SHADER_NAME horizon-graph-layer-fragment-shader
|
|
6
|
-
|
|
7
|
-
precision highp float;
|
|
8
|
-
precision highp int;
|
|
9
|
-
|
|
10
|
-
/******* UNIFORM *******/
|
|
11
|
-
|
|
12
|
-
uniform sampler2D dataTexture;
|
|
13
|
-
|
|
14
|
-
/******* IN *******/
|
|
15
|
-
|
|
16
|
-
in vec2 v_uv;
|
|
17
|
-
|
|
18
|
-
/******* OUT *******/
|
|
19
|
-
|
|
20
|
-
out vec4 fragColor;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
/******* MAIN *******/
|
|
24
|
-
|
|
25
|
-
void main(void) {
|
|
26
|
-
// horizontal position to sample index
|
|
27
|
-
float idx = v_uv.x * horizonLayer.dataTextureCount;
|
|
28
|
-
// idx = clamp(idx, 0.0, horizonLayer.dataTextureCount - 1.0); // NEEDED???
|
|
29
|
-
|
|
30
|
-
// fetch single data point & normalize (-1,+1)
|
|
31
|
-
float fy = floor(idx * horizonLayer.dataTextureSizeInv);
|
|
32
|
-
float fx = idx - fy * horizonLayer.dataTextureSize;
|
|
33
|
-
float val = texelFetch(dataTexture, ivec2(int(fx), int(fy)), 0).r;
|
|
34
|
-
val *= horizonLayer.yAxisScaleInv;
|
|
35
|
-
|
|
36
|
-
// band layering
|
|
37
|
-
float fband = abs(val) * horizonLayer.bands;
|
|
38
|
-
float bandIdx = clamp(floor(fband), 0.0, horizonLayer.bands - 1.0);
|
|
39
|
-
float bandFrac = fract(fband);
|
|
40
|
-
|
|
41
|
-
// calc our position value and find out color (using mix+step instead of if...else)
|
|
42
|
-
float positive = step(0.0, val); // 1 if pos, else 0
|
|
43
|
-
vec3 baseCol = mix(horizonLayer.negativeColor, horizonLayer.positiveColor, positive);
|
|
44
|
-
float curPos = mix(v_uv.y, 1.0 - v_uv.y, positive);
|
|
45
|
-
float addOne = step(curPos, bandFrac);
|
|
46
|
-
|
|
47
|
-
float band = bandIdx + addOne;
|
|
48
|
-
float whiten = 1.0 - band * horizonLayer.bandsInv;
|
|
49
|
-
|
|
50
|
-
fragColor = vec4(mix(baseCol, vec3(1.0), whiten), 1.0);
|
|
51
|
-
}
|
|
52
|
-
`;
|
|
53
|
-
//# sourceMappingURL=horizon-graph-layer.fs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"horizon-graph-layer.fs.js","sourceRoot":"","sources":["../../../src/layers/horizon-graph-layer/horizon-graph-layer.fs.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,+BAA+B;AAC/B,oCAAoC;AAEpC,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDd,CAAC"}
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
// deck.gl-community
|
|
2
|
-
// SPDX-License-Identifier: MIT
|
|
3
|
-
// Copyright (c) vis.gl contributors
|
|
4
|
-
import { Layer, project32 } from '@deck.gl/core';
|
|
5
|
-
import { Model, Geometry } from '@luma.gl/engine';
|
|
6
|
-
import vs from './horizon-graph-layer.vs';
|
|
7
|
-
import fs from './horizon-graph-layer.fs';
|
|
8
|
-
import { horizonLayerUniforms } from "./horizon-graph-layer-uniforms.js";
|
|
9
|
-
const defaultProps = {
|
|
10
|
-
yAxisScale: { type: 'number', value: 1000 },
|
|
11
|
-
bands: { type: 'number', value: 2 },
|
|
12
|
-
positiveColor: { type: 'color', value: [0, 128, 0] },
|
|
13
|
-
negativeColor: { type: 'color', value: [0, 0, 255] },
|
|
14
|
-
x: { type: 'number', value: 0 },
|
|
15
|
-
y: { type: 'number', value: 0 },
|
|
16
|
-
width: { type: 'number', value: 800 },
|
|
17
|
-
height: { type: 'number', value: 300 }
|
|
18
|
-
};
|
|
19
|
-
export class HorizonGraphLayer extends Layer {
|
|
20
|
-
static layerName = 'HorizonGraphLayer';
|
|
21
|
-
static defaultProps = defaultProps;
|
|
22
|
-
state = {};
|
|
23
|
-
initializeState() {
|
|
24
|
-
this.state = {};
|
|
25
|
-
}
|
|
26
|
-
getShaders() {
|
|
27
|
-
return super.getShaders({
|
|
28
|
-
vs,
|
|
29
|
-
fs,
|
|
30
|
-
modules: [project32, horizonLayerUniforms]
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
_createDataTexture(seriesData) {
|
|
34
|
-
const _data = seriesData instanceof Float32Array ? seriesData : new Float32Array(seriesData);
|
|
35
|
-
const { device } = this.context;
|
|
36
|
-
const count = _data.length;
|
|
37
|
-
let dataTextureSize = 32;
|
|
38
|
-
while (count > dataTextureSize * dataTextureSize) {
|
|
39
|
-
dataTextureSize *= 2;
|
|
40
|
-
}
|
|
41
|
-
// TODO: use the right way to only submit the minimum amount of data
|
|
42
|
-
const data = new Float32Array(dataTextureSize * dataTextureSize);
|
|
43
|
-
data.set(_data, 0);
|
|
44
|
-
return {
|
|
45
|
-
dataTexture: device.createTexture({
|
|
46
|
-
data,
|
|
47
|
-
format: 'r32float',
|
|
48
|
-
dimension: '2d',
|
|
49
|
-
width: dataTextureSize,
|
|
50
|
-
height: dataTextureSize,
|
|
51
|
-
sampler: {
|
|
52
|
-
minFilter: 'nearest',
|
|
53
|
-
magFilter: 'nearest',
|
|
54
|
-
addressModeU: 'clamp-to-edge',
|
|
55
|
-
addressModeV: 'clamp-to-edge'
|
|
56
|
-
}
|
|
57
|
-
}),
|
|
58
|
-
dataTextureSize,
|
|
59
|
-
dataTextureCount: count
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
_createModel() {
|
|
63
|
-
const { x, y, width, height } = this.props;
|
|
64
|
-
// Create a rectangle using triangle strip (4 vertices)
|
|
65
|
-
// Order: bottom-left, bottom-right, top-left, top-right
|
|
66
|
-
const positions = [
|
|
67
|
-
x,
|
|
68
|
-
y,
|
|
69
|
-
0.0,
|
|
70
|
-
x + width,
|
|
71
|
-
y,
|
|
72
|
-
0.0,
|
|
73
|
-
x,
|
|
74
|
-
y + height,
|
|
75
|
-
0.0,
|
|
76
|
-
x + width,
|
|
77
|
-
y + height,
|
|
78
|
-
0.0
|
|
79
|
-
];
|
|
80
|
-
const uv = [0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0];
|
|
81
|
-
const geometry = new Geometry({
|
|
82
|
-
topology: 'triangle-strip',
|
|
83
|
-
attributes: {
|
|
84
|
-
positions: { value: new Float32Array(positions), size: 3 },
|
|
85
|
-
uv: { value: new Float32Array(uv), size: 2 }
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
return new Model(this.context.device, {
|
|
89
|
-
...this.getShaders(),
|
|
90
|
-
geometry,
|
|
91
|
-
bufferLayout: this.getAttributeManager().getBufferLayouts()
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
updateState(params) {
|
|
95
|
-
super.updateState(params);
|
|
96
|
-
const { changeFlags } = params;
|
|
97
|
-
if (changeFlags.dataChanged) {
|
|
98
|
-
this.state.dataTexture?.destroy();
|
|
99
|
-
this.setState(this._createDataTexture(this.props.data));
|
|
100
|
-
}
|
|
101
|
-
if (changeFlags.extensionsChanged || changeFlags.propsChanged) {
|
|
102
|
-
this.state.model?.destroy();
|
|
103
|
-
this.setState({ model: this._createModel() });
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
draw() {
|
|
107
|
-
const { model, dataTexture } = this.state;
|
|
108
|
-
if (!model) {
|
|
109
|
-
this.setState({ model: this._createModel() });
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
if (!dataTexture) {
|
|
113
|
-
this.setState(this._createDataTexture(this.props.data));
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
const { bands, yAxisScale, positiveColor, negativeColor } = this.props;
|
|
117
|
-
model.shaderInputs.setProps({
|
|
118
|
-
horizonLayer: {
|
|
119
|
-
dataTexture: this.state.dataTexture,
|
|
120
|
-
dataTextureSize: this.state.dataTextureSize,
|
|
121
|
-
dataTextureSizeInv: 1.0 / this.state.dataTextureSize,
|
|
122
|
-
dataTextureCount: this.state.dataTextureCount,
|
|
123
|
-
bands,
|
|
124
|
-
bandsInv: 1.0 / bands,
|
|
125
|
-
yAxisScaleInv: 1.0 / yAxisScale,
|
|
126
|
-
positiveColor: positiveColor.map((c) => c / 255),
|
|
127
|
-
negativeColor: negativeColor.map((c) => c / 255)
|
|
128
|
-
}
|
|
129
|
-
});
|
|
130
|
-
model.draw(this.context.renderPass);
|
|
131
|
-
}
|
|
132
|
-
finalizeState(context) {
|
|
133
|
-
this.state.model?.destroy();
|
|
134
|
-
this.state.dataTexture?.destroy();
|
|
135
|
-
super.finalizeState(context);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
//# sourceMappingURL=horizon-graph-layer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"horizon-graph-layer.js","sourceRoot":"","sources":["../../../src/layers/horizon-graph-layer/horizon-graph-layer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
declare const _default: "#version 300 es\n#define SHADER_NAME horizon-graph-layer-vertex-shader\n\nin vec3 positions;\nin vec2 uv;\n\nout vec2 v_uv;\n\nvoid main(void) {\n geometry.worldPosition = positions;\n \n vec4 position_commonspace = project_position(vec4(positions.xy, 0.0, 1.0));\n gl_Position = project_common_position_to_clipspace(position_commonspace);\n geometry.position = position_commonspace;\n \n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n \n v_uv = uv;\n}\n";
|
|
2
|
-
export default _default;
|
|
3
|
-
//# sourceMappingURL=horizon-graph-layer.vs.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"horizon-graph-layer.vs.d.ts","sourceRoot":"","sources":["../../../src/layers/horizon-graph-layer/horizon-graph-layer.vs.ts"],"names":[],"mappings":";AAIA,wBAmBE"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
// deck.gl-community
|
|
2
|
-
// SPDX-License-Identifier: MIT
|
|
3
|
-
// Copyright (c) vis.gl contributors
|
|
4
|
-
export default `#version 300 es
|
|
5
|
-
#define SHADER_NAME horizon-graph-layer-vertex-shader
|
|
6
|
-
|
|
7
|
-
in vec3 positions;
|
|
8
|
-
in vec2 uv;
|
|
9
|
-
|
|
10
|
-
out vec2 v_uv;
|
|
11
|
-
|
|
12
|
-
void main(void) {
|
|
13
|
-
geometry.worldPosition = positions;
|
|
14
|
-
|
|
15
|
-
vec4 position_commonspace = project_position(vec4(positions.xy, 0.0, 1.0));
|
|
16
|
-
gl_Position = project_common_position_to_clipspace(position_commonspace);
|
|
17
|
-
geometry.position = position_commonspace;
|
|
18
|
-
|
|
19
|
-
DECKGL_FILTER_GL_POSITION(gl_Position, geometry);
|
|
20
|
-
|
|
21
|
-
v_uv = uv;
|
|
22
|
-
}
|
|
23
|
-
`;
|
|
24
|
-
//# sourceMappingURL=horizon-graph-layer.vs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"horizon-graph-layer.vs.js","sourceRoot":"","sources":["../../../src/layers/horizon-graph-layer/horizon-graph-layer.vs.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,+BAA+B;AAC/B,oCAAoC;AAEpC,eAAe;;;;;;;;;;;;;;;;;;;CAmBd,CAAC"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import type { DefaultProps, LayerProps, Color, LayerDataSource, Accessor } from '@deck.gl/core';
|
|
2
|
-
import { CompositeLayer } from '@deck.gl/core';
|
|
3
|
-
export type _MultiHorizonGraphLayerProps<DataT> = {
|
|
4
|
-
data: LayerDataSource<DataT>;
|
|
5
|
-
getSeries: Accessor<DataT, number[] | Float32Array>;
|
|
6
|
-
getScale: Accessor<DataT, number>;
|
|
7
|
-
bands?: number;
|
|
8
|
-
positiveColor?: Color;
|
|
9
|
-
negativeColor?: Color;
|
|
10
|
-
dividerColor?: Color;
|
|
11
|
-
dividerWidth?: number;
|
|
12
|
-
x?: number;
|
|
13
|
-
y?: number;
|
|
14
|
-
width?: number;
|
|
15
|
-
height?: number;
|
|
16
|
-
};
|
|
17
|
-
export type MultiHorizonGraphLayerProps<DataT = unknown> = _MultiHorizonGraphLayerProps<DataT> & LayerProps;
|
|
18
|
-
export declare class MultiHorizonGraphLayer<DataT = any, ExtraProps extends {} = {}> extends CompositeLayer<ExtraProps & Required<_MultiHorizonGraphLayerProps<DataT>>> {
|
|
19
|
-
static layerName: string;
|
|
20
|
-
static defaultProps: DefaultProps<MultiHorizonGraphLayerProps<unknown>>;
|
|
21
|
-
renderLayers(): any[];
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=multi-horizon-graph-layer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"multi-horizon-graph-layer.d.ts","sourceRoot":"","sources":["../../../src/layers/horizon-graph-layer/multi-horizon-graph-layer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAC,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAI7C,MAAM,MAAM,4BAA4B,CAAC,KAAK,IAAI;IAChD,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;IAC7B,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC;IACpD,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAElC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,aAAa,CAAC,EAAE,KAAK,CAAC;IACtB,aAAa,CAAC,EAAE,KAAK,CAAC;IAEtB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,2BAA2B,CAAC,KAAK,GAAG,OAAO,IAAI,4BAA4B,CAAC,KAAK,CAAC,GAC5F,UAAU,CAAC;AAoBb,qBAAa,sBAAsB,CAAC,KAAK,GAAG,GAAG,EAAE,UAAU,SAAS,EAAE,GAAG,EAAE,CAAE,SAAQ,cAAc,CACjG,UAAU,GAAG,QAAQ,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAC3D;IACC,MAAM,CAAC,SAAS,SAA4B;IAC5C,MAAM,CAAC,YAAY,qDAAgB;IAEnC,YAAY;CA4Gb"}
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
// deck.gl-community
|
|
2
|
-
// SPDX-License-Identifier: MIT
|
|
3
|
-
// Copyright (c) vis.gl contributors
|
|
4
|
-
import { CompositeLayer } from '@deck.gl/core';
|
|
5
|
-
import { SolidPolygonLayer } from '@deck.gl/layers';
|
|
6
|
-
import { HorizonGraphLayer } from "./horizon-graph-layer.js";
|
|
7
|
-
const defaultProps = {
|
|
8
|
-
getSeries: { type: 'accessor', value: (series) => series.values },
|
|
9
|
-
getScale: { type: 'accessor', value: (series) => series.scale },
|
|
10
|
-
bands: { type: 'number', value: 2 },
|
|
11
|
-
positiveColor: { type: 'color', value: [0, 128, 0] },
|
|
12
|
-
negativeColor: { type: 'color', value: [0, 0, 255] },
|
|
13
|
-
dividerColor: { type: 'color', value: [0, 0, 0] },
|
|
14
|
-
dividerWidth: { type: 'number', value: 2 },
|
|
15
|
-
x: { type: 'number', value: 0 },
|
|
16
|
-
y: { type: 'number', value: 0 },
|
|
17
|
-
width: { type: 'number', value: 800 },
|
|
18
|
-
height: { type: 'number', value: 300 }
|
|
19
|
-
};
|
|
20
|
-
export class MultiHorizonGraphLayer extends CompositeLayer {
|
|
21
|
-
static layerName = 'MultiHorizonGraphLayer';
|
|
22
|
-
static defaultProps = defaultProps;
|
|
23
|
-
renderLayers() {
|
|
24
|
-
const { data, getSeries, getScale, bands, positiveColor, negativeColor, dividerColor, dividerWidth, x, y, width, height } = this.props;
|
|
25
|
-
const seriesCount = data.length;
|
|
26
|
-
if (!seriesCount) {
|
|
27
|
-
return [];
|
|
28
|
-
}
|
|
29
|
-
// Calculate layout dimensions
|
|
30
|
-
const totalDividerSpace = dividerWidth * (seriesCount + 1);
|
|
31
|
-
const availableHeight = height - totalDividerSpace;
|
|
32
|
-
const seriesHeight = availableHeight / seriesCount;
|
|
33
|
-
const layers = [];
|
|
34
|
-
// Create divider rectangles
|
|
35
|
-
if (dividerWidth > 0) {
|
|
36
|
-
const dividerData = [];
|
|
37
|
-
// Top divider
|
|
38
|
-
dividerData.push({
|
|
39
|
-
polygon: [
|
|
40
|
-
[x, y],
|
|
41
|
-
[x + width, y],
|
|
42
|
-
[x + width, y + dividerWidth],
|
|
43
|
-
[x, y + dividerWidth]
|
|
44
|
-
]
|
|
45
|
-
});
|
|
46
|
-
// Dividers between series
|
|
47
|
-
for (let i = 0; i < seriesCount - 1; i++) {
|
|
48
|
-
const dividerY = y + dividerWidth + (i + 1) * seriesHeight + i * dividerWidth;
|
|
49
|
-
dividerData.push({
|
|
50
|
-
polygon: [
|
|
51
|
-
[x, dividerY],
|
|
52
|
-
[x + width, dividerY],
|
|
53
|
-
[x + width, dividerY + dividerWidth],
|
|
54
|
-
[x, dividerY + dividerWidth]
|
|
55
|
-
]
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
// Bottom divider
|
|
59
|
-
const bottomDividerY = y + height - dividerWidth;
|
|
60
|
-
dividerData.push({
|
|
61
|
-
polygon: [
|
|
62
|
-
[x, bottomDividerY],
|
|
63
|
-
[x + width, bottomDividerY],
|
|
64
|
-
[x + width, y + height],
|
|
65
|
-
[x, y + height]
|
|
66
|
-
]
|
|
67
|
-
});
|
|
68
|
-
layers.push(new SolidPolygonLayer({
|
|
69
|
-
id: `${this.props.id}-dividers`,
|
|
70
|
-
data: dividerData,
|
|
71
|
-
getPolygon: (d) => d.polygon,
|
|
72
|
-
getFillColor: dividerColor,
|
|
73
|
-
pickable: false
|
|
74
|
-
}));
|
|
75
|
-
}
|
|
76
|
-
// Create horizon graph layers for each series
|
|
77
|
-
data.forEach((series, index) => {
|
|
78
|
-
const seriesData = getSeries(series);
|
|
79
|
-
if (!seriesData || seriesData.length === 0) {
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
const seriesY = y + dividerWidth + index * (seriesHeight + dividerWidth);
|
|
83
|
-
const yAxisScale = getScale(series);
|
|
84
|
-
layers.push(new HorizonGraphLayer({
|
|
85
|
-
id: `${this.props.id}-series-${index}`,
|
|
86
|
-
data: seriesData,
|
|
87
|
-
yAxisScale,
|
|
88
|
-
bands,
|
|
89
|
-
positiveColor,
|
|
90
|
-
negativeColor,
|
|
91
|
-
x,
|
|
92
|
-
y: seriesY,
|
|
93
|
-
width,
|
|
94
|
-
height: seriesHeight
|
|
95
|
-
}));
|
|
96
|
-
});
|
|
97
|
-
return layers;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
//# sourceMappingURL=multi-horizon-graph-layer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"multi-horizon-graph-layer.js","sourceRoot":"","sources":["../../../src/layers/horizon-graph-layer/multi-horizon-graph-layer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { CompositeLayer, type CompositeLayerProps, type UpdateParameters } from '@deck.gl/core';
|
|
2
|
-
import { LineLayer, TextLayer } from '@deck.gl/layers';
|
|
3
|
-
export type TimeAxisLayerProps = CompositeLayerProps & {
|
|
4
|
-
unit: 'timestamp' | 'milliseconds';
|
|
5
|
-
/** Start time in milliseconds since epoch */
|
|
6
|
-
startTimeMs: number;
|
|
7
|
-
/** End time in milliseconds since epoch */
|
|
8
|
-
endTimeMs: number;
|
|
9
|
-
/** Optional: Number of tick marks (default: 5) */
|
|
10
|
-
tickCount?: number;
|
|
11
|
-
/** Optional: Y-coordinate for the axis line (default: 0) */
|
|
12
|
-
y?: number;
|
|
13
|
-
/** Optional: RGBA color for axis and ticks (default: [0, 0, 0, 255]) */
|
|
14
|
-
color?: [number, number, number, number];
|
|
15
|
-
/** Optional: Bounds for the axis line (default: viewport bounds) */
|
|
16
|
-
bounds?: [number, number, number, number];
|
|
17
|
-
};
|
|
18
|
-
export declare class TimeAxisLayer extends CompositeLayer<TimeAxisLayerProps> {
|
|
19
|
-
static layerName: string;
|
|
20
|
-
static defaultProps: Required<Omit<TimeAxisLayerProps, keyof CompositeLayerProps>>;
|
|
21
|
-
shouldUpdateState(params: UpdateParameters<TimeAxisLayer>): boolean;
|
|
22
|
-
renderLayers(): (LineLayer<any, {
|
|
23
|
-
id: "axis-line";
|
|
24
|
-
data: {
|
|
25
|
-
sourcePosition: number[];
|
|
26
|
-
targetPosition: number[];
|
|
27
|
-
}[];
|
|
28
|
-
getSourcePosition: (d: any) => any;
|
|
29
|
-
getTargetPosition: (d: any) => any;
|
|
30
|
-
getColor: [number, number, number, number];
|
|
31
|
-
getWidth: 2;
|
|
32
|
-
}> | LineLayer<any, {
|
|
33
|
-
id: "tick-marks";
|
|
34
|
-
data: {
|
|
35
|
-
sourcePosition: any[];
|
|
36
|
-
targetPosition: any[];
|
|
37
|
-
}[];
|
|
38
|
-
getSourcePosition: (d: any) => any;
|
|
39
|
-
getTargetPosition: (d: any) => any;
|
|
40
|
-
getColor: [number, number, number, number];
|
|
41
|
-
getWidth: 1;
|
|
42
|
-
}> | TextLayer<any, {
|
|
43
|
-
id: "tick-labels";
|
|
44
|
-
data: {
|
|
45
|
-
position: any[];
|
|
46
|
-
text: string;
|
|
47
|
-
}[];
|
|
48
|
-
getPosition: (d: any) => any;
|
|
49
|
-
getText: (d: any) => any;
|
|
50
|
-
getSize: 12;
|
|
51
|
-
getColor: [number, number, number, number];
|
|
52
|
-
getTextAnchor: "middle";
|
|
53
|
-
getAlignmentBaseline: "top";
|
|
54
|
-
}>)[];
|
|
55
|
-
}
|
|
56
|
-
//# sourceMappingURL=time-axis-layer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"time-axis-layer.d.ts","sourceRoot":"","sources":["../../src/layers/time-axis-layer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,cAAc,EAAE,KAAK,mBAAmB,EAAE,KAAK,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAC,SAAS,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAKrD,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,GAAG;IACrD,IAAI,EAAE,WAAW,GAAG,cAAc,CAAC;IACnC,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,wEAAwE;IACxE,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,oEAAoE;IACpE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C,CAAC;AAEF,qBAAa,aAAc,SAAQ,cAAc,CAAC,kBAAkB,CAAC;IACnE,OAAgB,SAAS,SAAmB;IAC5C,OAAgB,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,mBAAmB,CAAC,CAAC,CAQzF;IAGO,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,CAAC,aAAa,CAAC,GAAG,OAAO;IAInE,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0DtB"}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
// deck.gl-community
|
|
2
|
-
// SPDX-License-Identifier: MIT
|
|
3
|
-
// Copyright (c) vis.gl contributors
|
|
4
|
-
import { CompositeLayer } from '@deck.gl/core';
|
|
5
|
-
import { LineLayer, TextLayer } from '@deck.gl/layers';
|
|
6
|
-
import { formatTimeMs } from "../utils/format-utils.js";
|
|
7
|
-
import { getPrettyTicks, getZoomedRange } from "../utils/tick-utils.js";
|
|
8
|
-
export class TimeAxisLayer extends CompositeLayer {
|
|
9
|
-
static layerName = 'TimeAxisLayer';
|
|
10
|
-
static defaultProps = {
|
|
11
|
-
startTimeMs: 0,
|
|
12
|
-
endTimeMs: 100,
|
|
13
|
-
tickCount: 5,
|
|
14
|
-
y: 0,
|
|
15
|
-
color: [0, 0, 0, 255],
|
|
16
|
-
unit: 'timestamp',
|
|
17
|
-
bounds: undefined
|
|
18
|
-
};
|
|
19
|
-
// Called whenever props/data/viewports change
|
|
20
|
-
shouldUpdateState(params) {
|
|
21
|
-
return params.changeFlags.viewportChanged || super.shouldUpdateState(params);
|
|
22
|
-
}
|
|
23
|
-
renderLayers() {
|
|
24
|
-
const { startTimeMs, endTimeMs, tickCount = 10, y = 0, color = [0, 0, 0, 255] } = this.props;
|
|
25
|
-
let bounds;
|
|
26
|
-
try {
|
|
27
|
-
bounds = this.context.viewport.getBounds();
|
|
28
|
-
}
|
|
29
|
-
catch (error) {
|
|
30
|
-
// eslint-disable-next-line no-console
|
|
31
|
-
console.log('Error getting bounds from viewport:', error);
|
|
32
|
-
throw error;
|
|
33
|
-
}
|
|
34
|
-
const [startTimeZoomed, endTimeZoomed] = getZoomedRange(startTimeMs, endTimeMs, bounds);
|
|
35
|
-
// Generate tick positions and labels
|
|
36
|
-
const ticks = getPrettyTicks(startTimeZoomed, endTimeZoomed, tickCount);
|
|
37
|
-
const tickLines = ticks.map((x) => ({
|
|
38
|
-
sourcePosition: [x, y - 5],
|
|
39
|
-
targetPosition: [x, y + 5]
|
|
40
|
-
}));
|
|
41
|
-
const tickLabels = ticks.map((x) => ({
|
|
42
|
-
position: [x, y - 10],
|
|
43
|
-
text: this.props.unit === 'timestamp' ? new Date(x).toLocaleTimeString() : formatTimeMs(x, false)
|
|
44
|
-
}));
|
|
45
|
-
return [
|
|
46
|
-
// Axis line
|
|
47
|
-
new LineLayer({
|
|
48
|
-
id: 'axis-line',
|
|
49
|
-
data: [{ sourcePosition: [startTimeZoomed, y], targetPosition: [endTimeZoomed, y] }],
|
|
50
|
-
getSourcePosition: (d) => d.sourcePosition,
|
|
51
|
-
getTargetPosition: (d) => d.targetPosition,
|
|
52
|
-
getColor: color,
|
|
53
|
-
getWidth: 2
|
|
54
|
-
}),
|
|
55
|
-
// Tick marks
|
|
56
|
-
new LineLayer({
|
|
57
|
-
id: 'tick-marks',
|
|
58
|
-
data: tickLines,
|
|
59
|
-
getSourcePosition: (d) => d.sourcePosition,
|
|
60
|
-
getTargetPosition: (d) => d.targetPosition,
|
|
61
|
-
getColor: color,
|
|
62
|
-
getWidth: 1
|
|
63
|
-
}),
|
|
64
|
-
// Tick labels
|
|
65
|
-
new TextLayer({
|
|
66
|
-
id: 'tick-labels',
|
|
67
|
-
data: tickLabels,
|
|
68
|
-
getPosition: (d) => d.position,
|
|
69
|
-
getText: (d) => d.text,
|
|
70
|
-
getSize: 12,
|
|
71
|
-
getColor: color,
|
|
72
|
-
getTextAnchor: 'middle',
|
|
73
|
-
getAlignmentBaseline: 'top'
|
|
74
|
-
})
|
|
75
|
-
];
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
//# sourceMappingURL=time-axis-layer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"time-axis-layer.js","sourceRoot":"","sources":["../../src/layers/time-axis-layer.ts"],"names":[],"mappings":"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"}
|