@flowmap.gl/layers 8.0.0-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/LICENSE +199 -0
- package/dist/AnimatedFlowLinesLayer/AnimatedFlowLinesLayer.d.ts +76 -0
- package/dist/AnimatedFlowLinesLayer/AnimatedFlowLinesLayer.d.ts.map +1 -0
- package/dist/AnimatedFlowLinesLayer/AnimatedFlowLinesLayer.js +139 -0
- package/dist/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerFragment.glsl.d.ts +3 -0
- package/dist/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerFragment.glsl.d.ts.map +1 -0
- package/dist/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerFragment.glsl.js +37 -0
- package/dist/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerVertex.glsl.d.ts +3 -0
- package/dist/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerVertex.glsl.d.ts.map +1 -0
- package/dist/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerVertex.glsl.js +91 -0
- package/dist/AnimatedFlowLinesLayer/index.d.ts +3 -0
- package/dist/AnimatedFlowLinesLayer/index.d.ts.map +1 -0
- package/dist/AnimatedFlowLinesLayer/index.js +3 -0
- package/dist/FlowCirclesLayer/FlowCirclesLayer.d.ts +59 -0
- package/dist/FlowCirclesLayer/FlowCirclesLayer.d.ts.map +1 -0
- package/dist/FlowCirclesLayer/FlowCirclesLayer.js +115 -0
- package/dist/FlowCirclesLayer/FlowCirclesLayerFragment.glsl.d.ts +3 -0
- package/dist/FlowCirclesLayer/FlowCirclesLayerFragment.glsl.d.ts.map +1 -0
- package/dist/FlowCirclesLayer/FlowCirclesLayerFragment.glsl.js +73 -0
- package/dist/FlowCirclesLayer/FlowCirclesLayerVertex.glsl.d.ts +3 -0
- package/dist/FlowCirclesLayer/FlowCirclesLayerVertex.glsl.d.ts.map +1 -0
- package/dist/FlowCirclesLayer/FlowCirclesLayerVertex.glsl.js +63 -0
- package/dist/FlowCirclesLayer/index.d.ts +3 -0
- package/dist/FlowCirclesLayer/index.d.ts.map +1 -0
- package/dist/FlowCirclesLayer/index.js +3 -0
- package/dist/FlowLinesLayer/FlowLinesLayer.d.ts +64 -0
- package/dist/FlowLinesLayer/FlowLinesLayer.d.ts.map +1 -0
- package/dist/FlowLinesLayer/FlowLinesLayer.js +182 -0
- package/dist/FlowLinesLayer/FlowLinesLayerFragment.glsl.d.ts +3 -0
- package/dist/FlowLinesLayer/FlowLinesLayerFragment.glsl.d.ts.map +1 -0
- package/dist/FlowLinesLayer/FlowLinesLayerFragment.glsl.js +36 -0
- package/dist/FlowLinesLayer/FlowLinesLayerVertex.glsl.d.ts +3 -0
- package/dist/FlowLinesLayer/FlowLinesLayerVertex.glsl.d.ts.map +1 -0
- package/dist/FlowLinesLayer/FlowLinesLayerVertex.glsl.js +102 -0
- package/dist/FlowLinesLayer/index.d.ts +3 -0
- package/dist/FlowLinesLayer/index.d.ts.map +1 -0
- package/dist/FlowLinesLayer/index.js +3 -0
- package/dist/FlowMapLayer.d.ts +70 -0
- package/dist/FlowMapLayer.d.ts.map +1 -0
- package/dist/FlowMapLayer.js +304 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/types.d.ts +31 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +20 -0
- package/package.json +24 -0
- package/src/AnimatedFlowLinesLayer/AnimatedFlowLinesLayer.ts +189 -0
- package/src/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerFragment.glsl.ts +37 -0
- package/src/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerVertex.glsl.ts +90 -0
- package/src/AnimatedFlowLinesLayer/index.ts +3 -0
- package/src/FlowCirclesLayer/FlowCirclesLayer.ts +150 -0
- package/src/FlowCirclesLayer/FlowCirclesLayerFragment.glsl.ts +72 -0
- package/src/FlowCirclesLayer/FlowCirclesLayerVertex.glsl.ts +62 -0
- package/src/FlowCirclesLayer/index.ts +3 -0
- package/src/FlowLinesLayer/FlowLinesLayer.ts +238 -0
- package/src/FlowLinesLayer/FlowLinesLayerFragment.glsl.ts +35 -0
- package/src/FlowLinesLayer/FlowLinesLayerVertex.glsl.ts +101 -0
- package/src/FlowLinesLayer/index.ts +3 -0
- package/src/FlowMapLayer.ts +448 -0
- package/src/index.ts +7 -0
- package/src/types.ts +67 -0
- package/tsconfig.json +11 -0
- package/typings.d.ts +4 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { Layer } from '@deck.gl/core';
|
|
2
|
+
import { FlowCirclesLayerAttributes, RGBA } from '@flowmap.gl/data';
|
|
3
|
+
import { LayerProps } from '../types';
|
|
4
|
+
export declare type FlowCirclesDatum = Record<string, unknown>;
|
|
5
|
+
export interface Props extends LayerProps {
|
|
6
|
+
id: string;
|
|
7
|
+
opacity?: number;
|
|
8
|
+
pickable?: boolean;
|
|
9
|
+
emptyColor?: RGBA;
|
|
10
|
+
emptyOutlineColor?: RGBA;
|
|
11
|
+
getColor?: (d: FlowCirclesDatum) => RGBA;
|
|
12
|
+
getPosition?: (d: FlowCirclesDatum) => [number, number];
|
|
13
|
+
getInRadius?: (d: FlowCirclesDatum) => number;
|
|
14
|
+
getOutRadius?: (d: FlowCirclesDatum) => number;
|
|
15
|
+
data: FlowCirclesDatum[] | FlowCirclesLayerAttributes;
|
|
16
|
+
updateTriggers?: {
|
|
17
|
+
[key: string]: Record<string, unknown>;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
declare class FlowCirclesLayer extends Layer {
|
|
21
|
+
static layerName: string;
|
|
22
|
+
static defaultProps: {
|
|
23
|
+
getColor: {
|
|
24
|
+
type: string;
|
|
25
|
+
value: number[];
|
|
26
|
+
};
|
|
27
|
+
emptyColor: {
|
|
28
|
+
type: string;
|
|
29
|
+
value: number[];
|
|
30
|
+
};
|
|
31
|
+
emptyOutlineColor: {
|
|
32
|
+
type: string;
|
|
33
|
+
value: number[];
|
|
34
|
+
};
|
|
35
|
+
getPosition: {
|
|
36
|
+
type: string;
|
|
37
|
+
value: (d: FlowCirclesDatum) => unknown;
|
|
38
|
+
};
|
|
39
|
+
getInRadius: {
|
|
40
|
+
type: string;
|
|
41
|
+
value: number;
|
|
42
|
+
};
|
|
43
|
+
getOutRadius: {
|
|
44
|
+
type: string;
|
|
45
|
+
value: number;
|
|
46
|
+
};
|
|
47
|
+
parameters: {
|
|
48
|
+
depthTest: boolean;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
constructor(props: Props);
|
|
52
|
+
getShaders(): any;
|
|
53
|
+
initializeState(): void;
|
|
54
|
+
updateState({ props, oldProps, changeFlags }: any): void;
|
|
55
|
+
draw({ uniforms }: any): void;
|
|
56
|
+
_getModel(gl: WebGLRenderingContext): any;
|
|
57
|
+
}
|
|
58
|
+
export default FlowCirclesLayer;
|
|
59
|
+
//# sourceMappingURL=FlowCirclesLayer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlowCirclesLayer.d.ts","sourceRoot":"","sources":["../../src/FlowCirclesLayer/FlowCirclesLayer.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAC,KAAK,EAAqB,MAAM,eAAe,CAAC;AAKxD,OAAO,EAAC,0BAA0B,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AAEpC,oBAAY,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEvD,MAAM,WAAW,KAAM,SAAQ,UAAU;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,iBAAiB,CAAC,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxD,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,MAAM,CAAC;IAC9C,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,MAAM,CAAC;IAC/C,IAAI,EAAE,gBAAgB,EAAE,GAAG,0BAA0B,CAAC;IACtD,cAAc,CAAC,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAC,CAAC;CAC3D;AAMD,cAAM,gBAAiB,SAAQ,KAAK;IAClC,MAAM,CAAC,SAAS,SAAsB;IAEtC,MAAM,CAAC,YAAY;;;;;;;;;;;;;;;uBAI0B,gBAAgB;;;;;;;;;;;;;MAM3D;gBAGU,KAAK,EAAE,KAAK;IAIxB,UAAU;IAQV,eAAe;IA+Bf,WAAW,CAAC,EAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAC,EAAE,GAAG;IAY/C,IAAI,CAAC,EAAC,QAAQ,EAAC,EAAE,GAAG;IAWpB,SAAS,CAAC,EAAE,EAAE,qBAAqB;CAmBpC;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 FlowmapBlue
|
|
3
|
+
* Copyright 2018-2020 Teralytics, modified by FlowmapBlue
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*
|
|
17
|
+
*/
|
|
18
|
+
import { Layer, picking, project32 } from '@deck.gl/core';
|
|
19
|
+
import GL from '@luma.gl/constants';
|
|
20
|
+
import { Geometry, Model } from '@luma.gl/core';
|
|
21
|
+
import FragmentShader from './FlowCirclesLayerFragment.glsl';
|
|
22
|
+
import VertexShader from './FlowCirclesLayerVertex.glsl';
|
|
23
|
+
const DEFAULT_COLOR = [0, 0, 0, 255];
|
|
24
|
+
const DEFAULT_EMPTY_COLOR = [255, 255, 255, 255];
|
|
25
|
+
const DEFAULT_EMPTY_OUTLINE_COLOR = [180, 180, 180, 255];
|
|
26
|
+
class FlowCirclesLayer extends Layer {
|
|
27
|
+
// props!: Props;
|
|
28
|
+
constructor(props) {
|
|
29
|
+
super(props);
|
|
30
|
+
}
|
|
31
|
+
getShaders() {
|
|
32
|
+
return super.getShaders({
|
|
33
|
+
vs: VertexShader,
|
|
34
|
+
fs: FragmentShader,
|
|
35
|
+
modules: [project32, picking],
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
initializeState() {
|
|
39
|
+
this.getAttributeManager().addInstanced({
|
|
40
|
+
instancePositions: {
|
|
41
|
+
size: 3,
|
|
42
|
+
type: GL.DOUBLE,
|
|
43
|
+
fp64: this.use64bitPositions(),
|
|
44
|
+
transition: true,
|
|
45
|
+
accessor: 'getPosition',
|
|
46
|
+
},
|
|
47
|
+
instanceInRadius: {
|
|
48
|
+
size: 1,
|
|
49
|
+
transition: true,
|
|
50
|
+
accessor: 'getInRadius',
|
|
51
|
+
defaultValue: 1,
|
|
52
|
+
},
|
|
53
|
+
instanceOutRadius: {
|
|
54
|
+
size: 1,
|
|
55
|
+
transition: true,
|
|
56
|
+
accessor: 'getOutRadius',
|
|
57
|
+
defaultValue: 1,
|
|
58
|
+
},
|
|
59
|
+
instanceColors: {
|
|
60
|
+
size: 4,
|
|
61
|
+
transition: true,
|
|
62
|
+
type: GL.UNSIGNED_BYTE,
|
|
63
|
+
accessor: 'getColor',
|
|
64
|
+
defaultValue: DEFAULT_COLOR,
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
updateState({ props, oldProps, changeFlags }) {
|
|
69
|
+
super.updateState({ props, oldProps, changeFlags });
|
|
70
|
+
if (changeFlags.extensionsChanged) {
|
|
71
|
+
const { gl } = this.context;
|
|
72
|
+
if (this.state.model) {
|
|
73
|
+
this.state.model.delete();
|
|
74
|
+
}
|
|
75
|
+
this.setState({ model: this._getModel(gl) });
|
|
76
|
+
this.getAttributeManager().invalidateAll();
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
draw({ uniforms }) {
|
|
80
|
+
const { emptyColor, emptyOutlineColor } = this.props;
|
|
81
|
+
this.state.model
|
|
82
|
+
.setUniforms(Object.assign(Object.assign({}, uniforms), { emptyColor,
|
|
83
|
+
emptyOutlineColor }))
|
|
84
|
+
.draw();
|
|
85
|
+
}
|
|
86
|
+
_getModel(gl) {
|
|
87
|
+
// a square that minimally cover the unit circle
|
|
88
|
+
const positions = [-1, -1, 0, 1, -1, 0, 1, 1, 0, -1, 1, 0];
|
|
89
|
+
return new Model(gl, Object.assign(this.getShaders(), {
|
|
90
|
+
id: this.props.id,
|
|
91
|
+
geometry: new Geometry({
|
|
92
|
+
drawMode: GL.TRIANGLE_FAN,
|
|
93
|
+
vertexCount: 4,
|
|
94
|
+
attributes: {
|
|
95
|
+
positions: { size: 3, value: new Float32Array(positions) },
|
|
96
|
+
},
|
|
97
|
+
}),
|
|
98
|
+
isInstanced: true,
|
|
99
|
+
}));
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
FlowCirclesLayer.layerName = 'FlowCirclesLayer';
|
|
103
|
+
FlowCirclesLayer.defaultProps = {
|
|
104
|
+
getColor: { type: 'accessor', value: DEFAULT_COLOR },
|
|
105
|
+
emptyColor: { type: 'accessor', value: DEFAULT_EMPTY_COLOR },
|
|
106
|
+
emptyOutlineColor: { type: 'accessor', value: DEFAULT_EMPTY_OUTLINE_COLOR },
|
|
107
|
+
getPosition: { type: 'accessor', value: (d) => d.position },
|
|
108
|
+
getInRadius: { type: 'accessor', value: 1 },
|
|
109
|
+
getOutRadius: { type: 'accessor', value: 1 },
|
|
110
|
+
parameters: {
|
|
111
|
+
depthTest: false,
|
|
112
|
+
},
|
|
113
|
+
};
|
|
114
|
+
export default FlowCirclesLayer;
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvd0NpcmNsZXNMYXllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9GbG93Q2lyY2xlc0xheWVyL0Zsb3dDaXJjbGVzTGF5ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFFSCxPQUFPLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEMsT0FBTyxFQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxjQUFjLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxZQUFZLE1BQU0sK0JBQStCLENBQUM7QUFvQnpELE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDckMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ2pELE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUV6RCxNQUFNLGdCQUFpQixTQUFRLEtBQUs7SUFjbEMsaUJBQWlCO0lBRWpCLFlBQVksS0FBWTtRQUN0QixLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDZixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQztZQUN0QixFQUFFLEVBQUUsWUFBWTtZQUNoQixFQUFFLEVBQUUsY0FBYztZQUNsQixPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDO1NBQzlCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsWUFBWSxDQUFDO1lBQ3RD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O0FBRS9CLDZCQUFZLEdBQUc7SUFDcEIsUUFBUSxFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFDO0lBQ2xELFVBQVUsRUFBRSxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFDO0lBQzFELGlCQUFpQixFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsMkJBQTJCLEVBQUM7SUFDekUsV0FBVyxFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFDO0lBQzNFLFdBQVcsRUFBRSxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBQztJQUN6QyxZQUFZLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUM7SUFDMUMsVUFBVSxFQUFFO1FBQ1YsU0FBUyxFQUFFLEtBQUs7S0FDakI7Q0FDRixDQUFDO0FBMEZKLGVBQWUsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMjIgRmxvd21hcEJsdWVcbiAqIENvcHlyaWdodCAyMDE4LTIwMjAgVGVyYWx5dGljcywgbW9kaWZpZWQgYnkgRmxvd21hcEJsdWVcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqXG4gKi9cblxuaW1wb3J0IHtMYXllciwgcGlja2luZywgcHJvamVjdDMyfSBmcm9tICdAZGVjay5nbC9jb3JlJztcbmltcG9ydCBHTCBmcm9tICdAbHVtYS5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtHZW9tZXRyeSwgTW9kZWx9IGZyb20gJ0BsdW1hLmdsL2NvcmUnO1xuaW1wb3J0IEZyYWdtZW50U2hhZGVyIGZyb20gJy4vRmxvd0NpcmNsZXNMYXllckZyYWdtZW50Lmdsc2wnO1xuaW1wb3J0IFZlcnRleFNoYWRlciBmcm9tICcuL0Zsb3dDaXJjbGVzTGF5ZXJWZXJ0ZXguZ2xzbCc7XG5pbXBvcnQge0Zsb3dDaXJjbGVzTGF5ZXJBdHRyaWJ1dGVzLCBSR0JBfSBmcm9tICdAZmxvd21hcC5nbC9kYXRhJztcbmltcG9ydCB7TGF5ZXJQcm9wc30gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBGbG93Q2lyY2xlc0RhdHVtID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcHMgZXh0ZW5kcyBMYXllclByb3BzIHtcbiAgaWQ6IHN0cmluZztcbiAgb3BhY2l0eT86IG51bWJlcjtcbiAgcGlja2FibGU/OiBib29sZWFuO1xuICBlbXB0eUNvbG9yPzogUkdCQTtcbiAgZW1wdHlPdXRsaW5lQ29sb3I/OiBSR0JBO1xuICBnZXRDb2xvcj86IChkOiBGbG93Q2lyY2xlc0RhdHVtKSA9PiBSR0JBO1xuICBnZXRQb3NpdGlvbj86IChkOiBGbG93Q2lyY2xlc0RhdHVtKSA9PiBbbnVtYmVyLCBudW1iZXJdO1xuICBnZXRJblJhZGl1cz86IChkOiBGbG93Q2lyY2xlc0RhdHVtKSA9PiBudW1iZXI7XG4gIGdldE91dFJhZGl1cz86IChkOiBGbG93Q2lyY2xlc0RhdHVtKSA9PiBudW1iZXI7XG4gIGRhdGE6IEZsb3dDaXJjbGVzRGF0dW1bXSB8IEZsb3dDaXJjbGVzTGF5ZXJBdHRyaWJ1dGVzO1xuICB1cGRhdGVUcmlnZ2Vycz86IHtba2V5OiBzdHJpbmddOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn07XG59XG5cbmNvbnN0IERFRkFVTFRfQ09MT1IgPSBbMCwgMCwgMCwgMjU1XTtcbmNvbnN0IERFRkFVTFRfRU1QVFlfQ09MT1IgPSBbMjU1LCAyNTUsIDI1NSwgMjU1XTtcbmNvbnN0IERFRkFVTFRfRU1QVFlfT1VUTElORV9DT0xPUiA9IFsxODAsIDE4MCwgMTgwLCAyNTVdO1xuXG5jbGFzcyBGbG93Q2lyY2xlc0xheWVyIGV4dGVuZHMgTGF5ZXIge1xuICBzdGF0aWMgbGF5ZXJOYW1lID0gJ0Zsb3dDaXJjbGVzTGF5ZXInO1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgZ2V0Q29sb3I6IHt0eXBlOiAnYWNjZXNzb3InLCB2YWx1ZTogREVGQVVMVF9DT0xPUn0sXG4gICAgZW1wdHlDb2xvcjoge3R5cGU6ICdhY2Nlc3NvcicsIHZhbHVlOiBERUZBVUxUX0VNUFRZX0NPTE9SfSxcbiAgICBlbXB0eU91dGxpbmVDb2xvcjoge3R5cGU6ICdhY2Nlc3NvcicsIHZhbHVlOiBERUZBVUxUX0VNUFRZX09VVExJTkVfQ09MT1J9LFxuICAgIGdldFBvc2l0aW9uOiB7dHlwZTogJ2FjY2Vzc29yJywgdmFsdWU6IChkOiBGbG93Q2lyY2xlc0RhdHVtKSA9PiBkLnBvc2l0aW9ufSxcbiAgICBnZXRJblJhZGl1czoge3R5cGU6ICdhY2Nlc3NvcicsIHZhbHVlOiAxfSxcbiAgICBnZXRPdXRSYWRpdXM6IHt0eXBlOiAnYWNjZXNzb3InLCB2YWx1ZTogMX0sXG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgZGVwdGhUZXN0OiBmYWxzZSxcbiAgICB9LFxuICB9O1xuICAvLyBwcm9wcyE6IFByb3BzO1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBQcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgfVxuXG4gIGdldFNoYWRlcnMoKSB7XG4gICAgcmV0dXJuIHN1cGVyLmdldFNoYWRlcnMoe1xuICAgICAgdnM6IFZlcnRleFNoYWRlcixcbiAgICAgIGZzOiBGcmFnbWVudFNoYWRlcixcbiAgICAgIG1vZHVsZXM6IFtwcm9qZWN0MzIsIHBpY2tpbmddLFxuICAgIH0pO1xuICB9XG5cbiAgaW5pdGlhbGl6ZVN0YXRlKCkge1xuICAgIHRoaXMuZ2V0QXR0cmlidXRlTWFuYWdlcigpLmFkZEluc3RhbmNlZCh7XG4gICAgICBpbnN0YW5jZVBvc2l0aW9uczoge1xuICAgICAgICBzaXplOiAzLFxuICAgICAgICB0eXBlOiBHTC5ET1VCTEUsXG4gICAgICAgIGZwNjQ6IHRoaXMudXNlNjRiaXRQb3NpdGlvbnMoKSxcbiAgICAgICAgdHJhbnNpdGlvbjogdHJ1ZSxcbiAgICAgICAgYWNjZXNzb3I6ICdnZXRQb3NpdGlvbicsXG4gICAgICB9LFxuICAgICAgaW5zdGFuY2VJblJhZGl1czoge1xuICAgICAgICBzaXplOiAxLFxuICAgICAgICB0cmFuc2l0aW9uOiB0cnVlLFxuICAgICAgICBhY2Nlc3NvcjogJ2dldEluUmFkaXVzJyxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiAxLFxuICAgICAgfSxcbiAgICAgIGluc3RhbmNlT3V0UmFkaXVzOiB7XG4gICAgICAgIHNpemU6IDEsXG4gICAgICAgIHRyYW5zaXRpb246IHRydWUsXG4gICAgICAgIGFjY2Vzc29yOiAnZ2V0T3V0UmFkaXVzJyxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiAxLFxuICAgICAgfSxcbiAgICAgIGluc3RhbmNlQ29sb3JzOiB7XG4gICAgICAgIHNpemU6IDQsXG4gICAgICAgIHRyYW5zaXRpb246IHRydWUsXG4gICAgICAgIHR5cGU6IEdMLlVOU0lHTkVEX0JZVEUsXG4gICAgICAgIGFjY2Vzc29yOiAnZ2V0Q29sb3InLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IERFRkFVTFRfQ09MT1IsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlU3RhdGUoe3Byb3BzLCBvbGRQcm9wcywgY2hhbmdlRmxhZ3N9OiBhbnkpIHtcbiAgICBzdXBlci51cGRhdGVTdGF0ZSh7cHJvcHMsIG9sZFByb3BzLCBjaGFuZ2VGbGFnc30pO1xuICAgIGlmIChjaGFuZ2VGbGFncy5leHRlbnNpb25zQ2hhbmdlZCkge1xuICAgICAgY29uc3Qge2dsfSA9IHRoaXMuY29udGV4dDtcbiAgICAgIGlmICh0aGlzLnN0YXRlLm1vZGVsKSB7XG4gICAgICAgIHRoaXMuc3RhdGUubW9kZWwuZGVsZXRlKCk7XG4gICAgICB9XG4gICAgICB0aGlzLnNldFN0YXRlKHttb2RlbDogdGhpcy5fZ2V0TW9kZWwoZ2wpfSk7XG4gICAgICB0aGlzLmdldEF0dHJpYnV0ZU1hbmFnZXIoKS5pbnZhbGlkYXRlQWxsKCk7XG4gICAgfVxuICB9XG5cbiAgZHJhdyh7dW5pZm9ybXN9OiBhbnkpIHtcbiAgICBjb25zdCB7ZW1wdHlDb2xvciwgZW1wdHlPdXRsaW5lQ29sb3J9ID0gdGhpcy5wcm9wcztcbiAgICB0aGlzLnN0YXRlLm1vZGVsXG4gICAgICAuc2V0VW5pZm9ybXMoe1xuICAgICAgICAuLi51bmlmb3JtcyxcbiAgICAgICAgZW1wdHlDb2xvcixcbiAgICAgICAgZW1wdHlPdXRsaW5lQ29sb3IsXG4gICAgICB9KVxuICAgICAgLmRyYXcoKTtcbiAgfVxuXG4gIF9nZXRNb2RlbChnbDogV2ViR0xSZW5kZXJpbmdDb250ZXh0KSB7XG4gICAgLy8gYSBzcXVhcmUgdGhhdCBtaW5pbWFsbHkgY292ZXIgdGhlIHVuaXQgY2lyY2xlXG4gICAgY29uc3QgcG9zaXRpb25zID0gWy0xLCAtMSwgMCwgMSwgLTEsIDAsIDEsIDEsIDAsIC0xLCAxLCAwXTtcblxuICAgIHJldHVybiBuZXcgTW9kZWwoXG4gICAgICBnbCxcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5nZXRTaGFkZXJzKCksIHtcbiAgICAgICAgaWQ6IHRoaXMucHJvcHMuaWQsXG4gICAgICAgIGdlb21ldHJ5OiBuZXcgR2VvbWV0cnkoe1xuICAgICAgICAgIGRyYXdNb2RlOiBHTC5UUklBTkdMRV9GQU4sXG4gICAgICAgICAgdmVydGV4Q291bnQ6IDQsXG4gICAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgICAgcG9zaXRpb25zOiB7c2l6ZTogMywgdmFsdWU6IG5ldyBGbG9hdDMyQXJyYXkocG9zaXRpb25zKX0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICAgIGlzSW5zdGFuY2VkOiB0cnVlLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBGbG93Q2lyY2xlc0xheWVyO1xuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const _default: "#define SHADER_NAME flow-circles-layer-fragment-shader\n#define SOFT_OUTLINE 0.1\n#define EPS 0.05\nprecision highp float;\n\nuniform vec4 emptyColor;\nuniform vec4 emptyOutlineColor;\n\nvarying vec4 vColor;\nvarying vec2 unitPosition;\nvarying float unitInRadius;\nvarying float unitOutRadius;\n\nfloat when_gt(float x, float y) {\n return max(sign(x - y), 0.0);\n}\n\nvoid main(void) {\n geometry.uv = unitPosition;\n float distToCenter = length(unitPosition);\n if (distToCenter > 1.0) {\n discard;\n }\n\n // See https://stackoverflow.com/questions/47285778\n vec4 ringColor = mix(\n emptyColor / 255., vColor,\n when_gt(unitInRadius, unitOutRadius)\n );\n vec4 outlineColor = mix(\n emptyOutlineColor / 255., vColor,\n when_gt(unitInRadius, unitOutRadius)\n );\n \n float innerR = min(unitInRadius, unitOutRadius) * (1.0 - SOFT_OUTLINE);\n \n // Inner circle\n float step2 = innerR - EPS; \n float step3 = innerR;\n \n // Ring\n float step4 = innerR + EPS;\n float step5 = 1.0 - SOFT_OUTLINE - EPS*2.0;\n float step6 = 1.0 - SOFT_OUTLINE;\n \n gl_FragColor = vColor;\n gl_FragColor = mix(gl_FragColor, emptyColor / 255., smoothstep(step2, step3, distToCenter));\n gl_FragColor = mix(gl_FragColor, ringColor, smoothstep(step3, step4, distToCenter));\n gl_FragColor = mix(gl_FragColor, outlineColor, smoothstep(step5, step6, distToCenter));\n gl_FragColor = mix(gl_FragColor, emptyColor / 255., smoothstep(step6, 1.0, distToCenter));\n gl_FragColor.a *= smoothstep(0.0, SOFT_OUTLINE, 1.0 - distToCenter);\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n";
|
|
2
|
+
export default _default;
|
|
3
|
+
//# sourceMappingURL=FlowCirclesLayerFragment.glsl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlowCirclesLayerFragment.glsl.d.ts","sourceRoot":"","sources":["../../src/FlowCirclesLayer/FlowCirclesLayerFragment.glsl.ts"],"names":[],"mappings":";AAiBA,wBAsDE"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 FlowmapBlue
|
|
3
|
+
* Copyright 2018-2020 Teralytics, modified by FlowmapBlue
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*
|
|
17
|
+
*/
|
|
18
|
+
export default `\
|
|
19
|
+
#define SHADER_NAME flow-circles-layer-fragment-shader
|
|
20
|
+
#define SOFT_OUTLINE 0.1
|
|
21
|
+
#define EPS 0.05
|
|
22
|
+
precision highp float;
|
|
23
|
+
|
|
24
|
+
uniform vec4 emptyColor;
|
|
25
|
+
uniform vec4 emptyOutlineColor;
|
|
26
|
+
|
|
27
|
+
varying vec4 vColor;
|
|
28
|
+
varying vec2 unitPosition;
|
|
29
|
+
varying float unitInRadius;
|
|
30
|
+
varying float unitOutRadius;
|
|
31
|
+
|
|
32
|
+
float when_gt(float x, float y) {
|
|
33
|
+
return max(sign(x - y), 0.0);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
void main(void) {
|
|
37
|
+
geometry.uv = unitPosition;
|
|
38
|
+
float distToCenter = length(unitPosition);
|
|
39
|
+
if (distToCenter > 1.0) {
|
|
40
|
+
discard;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// See https://stackoverflow.com/questions/47285778
|
|
44
|
+
vec4 ringColor = mix(
|
|
45
|
+
emptyColor / 255., vColor,
|
|
46
|
+
when_gt(unitInRadius, unitOutRadius)
|
|
47
|
+
);
|
|
48
|
+
vec4 outlineColor = mix(
|
|
49
|
+
emptyOutlineColor / 255., vColor,
|
|
50
|
+
when_gt(unitInRadius, unitOutRadius)
|
|
51
|
+
);
|
|
52
|
+
|
|
53
|
+
float innerR = min(unitInRadius, unitOutRadius) * (1.0 - SOFT_OUTLINE);
|
|
54
|
+
|
|
55
|
+
// Inner circle
|
|
56
|
+
float step2 = innerR - EPS;
|
|
57
|
+
float step3 = innerR;
|
|
58
|
+
|
|
59
|
+
// Ring
|
|
60
|
+
float step4 = innerR + EPS;
|
|
61
|
+
float step5 = 1.0 - SOFT_OUTLINE - EPS*2.0;
|
|
62
|
+
float step6 = 1.0 - SOFT_OUTLINE;
|
|
63
|
+
|
|
64
|
+
gl_FragColor = vColor;
|
|
65
|
+
gl_FragColor = mix(gl_FragColor, emptyColor / 255., smoothstep(step2, step3, distToCenter));
|
|
66
|
+
gl_FragColor = mix(gl_FragColor, ringColor, smoothstep(step3, step4, distToCenter));
|
|
67
|
+
gl_FragColor = mix(gl_FragColor, outlineColor, smoothstep(step5, step6, distToCenter));
|
|
68
|
+
gl_FragColor = mix(gl_FragColor, emptyColor / 255., smoothstep(step6, 1.0, distToCenter));
|
|
69
|
+
gl_FragColor.a *= smoothstep(0.0, SOFT_OUTLINE, 1.0 - distToCenter);
|
|
70
|
+
DECKGL_FILTER_COLOR(gl_FragColor, geometry);
|
|
71
|
+
}
|
|
72
|
+
`;
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvd0NpcmNsZXNMYXllckZyYWdtZW50Lmdsc2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvRmxvd0NpcmNsZXNMYXllci9GbG93Q2lyY2xlc0xheWVyRnJhZ21lbnQuZ2xzbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILGVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXNEZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIyIEZsb3dtYXBCbHVlXG4gKiBDb3B5cmlnaHQgMjAxOC0yMDIwIFRlcmFseXRpY3MsIG1vZGlmaWVkIGJ5IEZsb3dtYXBCbHVlXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKlxuICovXG5leHBvcnQgZGVmYXVsdCBgXFxcbiNkZWZpbmUgU0hBREVSX05BTUUgZmxvdy1jaXJjbGVzLWxheWVyLWZyYWdtZW50LXNoYWRlclxuI2RlZmluZSBTT0ZUX09VVExJTkUgMC4xXG4jZGVmaW5lIEVQUyAwLjA1XG5wcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG5cbnVuaWZvcm0gdmVjNCBlbXB0eUNvbG9yO1xudW5pZm9ybSB2ZWM0IGVtcHR5T3V0bGluZUNvbG9yO1xuXG52YXJ5aW5nIHZlYzQgdkNvbG9yO1xudmFyeWluZyB2ZWMyIHVuaXRQb3NpdGlvbjtcbnZhcnlpbmcgZmxvYXQgdW5pdEluUmFkaXVzO1xudmFyeWluZyBmbG9hdCB1bml0T3V0UmFkaXVzO1xuXG5mbG9hdCB3aGVuX2d0KGZsb2F0IHgsIGZsb2F0IHkpIHtcbiAgcmV0dXJuIG1heChzaWduKHggLSB5KSwgMC4wKTtcbn1cblxudm9pZCBtYWluKHZvaWQpIHtcbiAgZ2VvbWV0cnkudXYgPSB1bml0UG9zaXRpb247XG4gIGZsb2F0IGRpc3RUb0NlbnRlciA9IGxlbmd0aCh1bml0UG9zaXRpb24pO1xuICBpZiAoZGlzdFRvQ2VudGVyID4gMS4wKSB7XG4gICAgZGlzY2FyZDtcbiAgfVxuXG4gIC8vIFNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80NzI4NTc3OFxuICB2ZWM0IHJpbmdDb2xvciA9IG1peChcbiAgICBlbXB0eUNvbG9yIC8gMjU1LiwgdkNvbG9yLFxuICAgIHdoZW5fZ3QodW5pdEluUmFkaXVzLCB1bml0T3V0UmFkaXVzKVxuICApO1xuICB2ZWM0IG91dGxpbmVDb2xvciA9IG1peChcbiAgICBlbXB0eU91dGxpbmVDb2xvciAvIDI1NS4sIHZDb2xvcixcbiAgICB3aGVuX2d0KHVuaXRJblJhZGl1cywgdW5pdE91dFJhZGl1cylcbiAgKTtcbiAgXG4gIGZsb2F0IGlubmVyUiA9IG1pbih1bml0SW5SYWRpdXMsIHVuaXRPdXRSYWRpdXMpICogKDEuMCAtIFNPRlRfT1VUTElORSk7XG4gIFxuICAvLyBJbm5lciBjaXJjbGVcbiAgZmxvYXQgc3RlcDIgPSBpbm5lclIgLSBFUFM7IFxuICBmbG9hdCBzdGVwMyA9IGlubmVyUjtcbiAgXG4gIC8vIFJpbmdcbiAgZmxvYXQgc3RlcDQgPSBpbm5lclIgKyBFUFM7XG4gIGZsb2F0IHN0ZXA1ID0gMS4wIC0gU09GVF9PVVRMSU5FIC0gRVBTKjIuMDtcbiAgZmxvYXQgc3RlcDYgPSAxLjAgLSBTT0ZUX09VVExJTkU7XG4gIFxuICBnbF9GcmFnQ29sb3IgPSB2Q29sb3I7XG4gIGdsX0ZyYWdDb2xvciA9IG1peChnbF9GcmFnQ29sb3IsIGVtcHR5Q29sb3IgLyAyNTUuLCBzbW9vdGhzdGVwKHN0ZXAyLCBzdGVwMywgZGlzdFRvQ2VudGVyKSk7XG4gIGdsX0ZyYWdDb2xvciA9IG1peChnbF9GcmFnQ29sb3IsIHJpbmdDb2xvciwgc21vb3Roc3RlcChzdGVwMywgc3RlcDQsIGRpc3RUb0NlbnRlcikpO1xuICBnbF9GcmFnQ29sb3IgPSBtaXgoZ2xfRnJhZ0NvbG9yLCBvdXRsaW5lQ29sb3IsIHNtb290aHN0ZXAoc3RlcDUsIHN0ZXA2LCBkaXN0VG9DZW50ZXIpKTtcbiAgZ2xfRnJhZ0NvbG9yID0gbWl4KGdsX0ZyYWdDb2xvciwgZW1wdHlDb2xvciAvIDI1NS4sIHNtb290aHN0ZXAoc3RlcDYsIDEuMCwgZGlzdFRvQ2VudGVyKSk7XG4gIGdsX0ZyYWdDb2xvci5hICo9IHNtb290aHN0ZXAoMC4wLCBTT0ZUX09VVExJTkUsIDEuMCAtIGRpc3RUb0NlbnRlcik7XG4gIERFQ0tHTF9GSUxURVJfQ09MT1IoZ2xfRnJhZ0NvbG9yLCBnZW9tZXRyeSk7XG59XG5gO1xuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const _default: "#define SHADER_NAME flow-circles-layer-vertex-shader\n#define radiusScale 100\n\nattribute vec3 positions;\n\nattribute vec3 instancePositions;\nattribute vec3 instancePositions64Low;\nattribute float instanceInRadius;\nattribute float instanceOutRadius;\nattribute vec4 instanceColors;\nattribute vec3 instancePickingColors;\n\nuniform float opacity;\nuniform vec4 emptyColor;\nuniform vec4 emptyOutlineColor;\n\nvarying vec4 vColor;\nvarying vec2 unitPosition;\nvarying float unitInRadius;\nvarying float unitOutRadius;\n\nvoid main(void) {\n geometry.worldPosition = instancePositions;\n\n float outerRadiusPixels = max(instanceInRadius, instanceOutRadius);\n unitInRadius = instanceInRadius / outerRadiusPixels; \n unitOutRadius = instanceOutRadius / outerRadiusPixels; \n\n // position on the containing square in [-1, 1] space\n unitPosition = positions.xy;\n geometry.uv = unitPosition;\n geometry.pickingColor = instancePickingColors;\n \n // Find the center of the point and add the current vertex\n vec3 offset = positions * project_pixel_size(outerRadiusPixels);\n DECKGL_FILTER_SIZE(offset, geometry);\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, offset, geometry.position);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n \n // Apply opacity to instance color, or return instance picking color\n vColor = vec4(instanceColors.rgb / 255., instanceColors.a / 255. * opacity);\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n";
|
|
2
|
+
export default _default;
|
|
3
|
+
//# sourceMappingURL=FlowCirclesLayerVertex.glsl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlowCirclesLayerVertex.glsl.d.ts","sourceRoot":"","sources":["../../src/FlowCirclesLayer/FlowCirclesLayerVertex.glsl.ts"],"names":[],"mappings":";AAiBA,wBA4CE"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 FlowmapBlue
|
|
3
|
+
* Copyright 2018-2020 Teralytics, modified by FlowmapBlue
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*
|
|
17
|
+
*/
|
|
18
|
+
export default `\
|
|
19
|
+
#define SHADER_NAME flow-circles-layer-vertex-shader
|
|
20
|
+
#define radiusScale 100
|
|
21
|
+
|
|
22
|
+
attribute vec3 positions;
|
|
23
|
+
|
|
24
|
+
attribute vec3 instancePositions;
|
|
25
|
+
attribute vec3 instancePositions64Low;
|
|
26
|
+
attribute float instanceInRadius;
|
|
27
|
+
attribute float instanceOutRadius;
|
|
28
|
+
attribute vec4 instanceColors;
|
|
29
|
+
attribute vec3 instancePickingColors;
|
|
30
|
+
|
|
31
|
+
uniform float opacity;
|
|
32
|
+
uniform vec4 emptyColor;
|
|
33
|
+
uniform vec4 emptyOutlineColor;
|
|
34
|
+
|
|
35
|
+
varying vec4 vColor;
|
|
36
|
+
varying vec2 unitPosition;
|
|
37
|
+
varying float unitInRadius;
|
|
38
|
+
varying float unitOutRadius;
|
|
39
|
+
|
|
40
|
+
void main(void) {
|
|
41
|
+
geometry.worldPosition = instancePositions;
|
|
42
|
+
|
|
43
|
+
float outerRadiusPixels = max(instanceInRadius, instanceOutRadius);
|
|
44
|
+
unitInRadius = instanceInRadius / outerRadiusPixels;
|
|
45
|
+
unitOutRadius = instanceOutRadius / outerRadiusPixels;
|
|
46
|
+
|
|
47
|
+
// position on the containing square in [-1, 1] space
|
|
48
|
+
unitPosition = positions.xy;
|
|
49
|
+
geometry.uv = unitPosition;
|
|
50
|
+
geometry.pickingColor = instancePickingColors;
|
|
51
|
+
|
|
52
|
+
// Find the center of the point and add the current vertex
|
|
53
|
+
vec3 offset = positions * project_pixel_size(outerRadiusPixels);
|
|
54
|
+
DECKGL_FILTER_SIZE(offset, geometry);
|
|
55
|
+
gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, offset, geometry.position);
|
|
56
|
+
DECKGL_FILTER_GL_POSITION(gl_Position, geometry);
|
|
57
|
+
|
|
58
|
+
// Apply opacity to instance color, or return instance picking color
|
|
59
|
+
vColor = vec4(instanceColors.rgb / 255., instanceColors.a / 255. * opacity);
|
|
60
|
+
DECKGL_FILTER_COLOR(vColor, geometry);
|
|
61
|
+
}
|
|
62
|
+
`;
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvd0NpcmNsZXNMYXllclZlcnRleC5nbHNsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0Zsb3dDaXJjbGVzTGF5ZXIvRmxvd0NpcmNsZXNMYXllclZlcnRleC5nbHNsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsZUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0E0Q2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAyMiBGbG93bWFwQmx1ZVxuICogQ29weXJpZ2h0IDIwMTgtMjAyMCBUZXJhbHl0aWNzLCBtb2RpZmllZCBieSBGbG93bWFwQmx1ZVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICpcbiAqL1xuZXhwb3J0IGRlZmF1bHQgYFxcXG4jZGVmaW5lIFNIQURFUl9OQU1FIGZsb3ctY2lyY2xlcy1sYXllci12ZXJ0ZXgtc2hhZGVyXG4jZGVmaW5lIHJhZGl1c1NjYWxlIDEwMFxuXG5hdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbnM7XG5cbmF0dHJpYnV0ZSB2ZWMzIGluc3RhbmNlUG9zaXRpb25zO1xuYXR0cmlidXRlIHZlYzMgaW5zdGFuY2VQb3NpdGlvbnM2NExvdztcbmF0dHJpYnV0ZSBmbG9hdCBpbnN0YW5jZUluUmFkaXVzO1xuYXR0cmlidXRlIGZsb2F0IGluc3RhbmNlT3V0UmFkaXVzO1xuYXR0cmlidXRlIHZlYzQgaW5zdGFuY2VDb2xvcnM7XG5hdHRyaWJ1dGUgdmVjMyBpbnN0YW5jZVBpY2tpbmdDb2xvcnM7XG5cbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbnVuaWZvcm0gdmVjNCBlbXB0eUNvbG9yO1xudW5pZm9ybSB2ZWM0IGVtcHR5T3V0bGluZUNvbG9yO1xuXG52YXJ5aW5nIHZlYzQgdkNvbG9yO1xudmFyeWluZyB2ZWMyIHVuaXRQb3NpdGlvbjtcbnZhcnlpbmcgZmxvYXQgdW5pdEluUmFkaXVzO1xudmFyeWluZyBmbG9hdCB1bml0T3V0UmFkaXVzO1xuXG52b2lkIG1haW4odm9pZCkge1xuICBnZW9tZXRyeS53b3JsZFBvc2l0aW9uID0gaW5zdGFuY2VQb3NpdGlvbnM7XG5cbiAgZmxvYXQgb3V0ZXJSYWRpdXNQaXhlbHMgPSBtYXgoaW5zdGFuY2VJblJhZGl1cywgaW5zdGFuY2VPdXRSYWRpdXMpO1xuICB1bml0SW5SYWRpdXMgPSBpbnN0YW5jZUluUmFkaXVzIC8gb3V0ZXJSYWRpdXNQaXhlbHM7IFxuICB1bml0T3V0UmFkaXVzID0gaW5zdGFuY2VPdXRSYWRpdXMgLyBvdXRlclJhZGl1c1BpeGVsczsgXG5cbiAgLy8gcG9zaXRpb24gb24gdGhlIGNvbnRhaW5pbmcgc3F1YXJlIGluIFstMSwgMV0gc3BhY2VcbiAgdW5pdFBvc2l0aW9uID0gcG9zaXRpb25zLnh5O1xuICBnZW9tZXRyeS51diA9IHVuaXRQb3NpdGlvbjtcbiAgZ2VvbWV0cnkucGlja2luZ0NvbG9yID0gaW5zdGFuY2VQaWNraW5nQ29sb3JzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAvLyBGaW5kIHRoZSBjZW50ZXIgb2YgdGhlIHBvaW50IGFuZCBhZGQgdGhlIGN1cnJlbnQgdmVydGV4XG4gIHZlYzMgb2Zmc2V0ID0gcG9zaXRpb25zICogcHJvamVjdF9waXhlbF9zaXplKG91dGVyUmFkaXVzUGl4ZWxzKTtcbiAgREVDS0dMX0ZJTFRFUl9TSVpFKG9mZnNldCwgZ2VvbWV0cnkpO1xuICBnbF9Qb3NpdGlvbiA9IHByb2plY3RfcG9zaXRpb25fdG9fY2xpcHNwYWNlKGluc3RhbmNlUG9zaXRpb25zLCBpbnN0YW5jZVBvc2l0aW9uczY0TG93LCBvZmZzZXQsIGdlb21ldHJ5LnBvc2l0aW9uKTtcbiAgREVDS0dMX0ZJTFRFUl9HTF9QT1NJVElPTihnbF9Qb3NpdGlvbiwgZ2VvbWV0cnkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAvLyBBcHBseSBvcGFjaXR5IHRvIGluc3RhbmNlIGNvbG9yLCBvciByZXR1cm4gaW5zdGFuY2UgcGlja2luZyBjb2xvclxuICB2Q29sb3IgPSB2ZWM0KGluc3RhbmNlQ29sb3JzLnJnYiAvIDI1NS4sIGluc3RhbmNlQ29sb3JzLmEgLyAyNTUuICogb3BhY2l0eSk7XG4gIERFQ0tHTF9GSUxURVJfQ09MT1IodkNvbG9yLCBnZW9tZXRyeSk7XG59XG5gO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/FlowCirclesLayer/index.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAElD,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import FlowCirclesLayer from './FlowCirclesLayer';
|
|
2
|
+
export default FlowCirclesLayer;
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvRmxvd0NpcmNsZXNMYXllci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLGdCQUFnQixNQUFNLG9CQUFvQixDQUFDO0FBRWxELGVBQWUsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRmxvd0NpcmNsZXNMYXllciBmcm9tICcuL0Zsb3dDaXJjbGVzTGF5ZXInO1xuXG5leHBvcnQgZGVmYXVsdCBGbG93Q2lyY2xlc0xheWVyO1xuIl19
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { Layer } from '@deck.gl/core';
|
|
2
|
+
import { FlowLinesLayerAttributes, RGBA } from '@flowmap.gl/data';
|
|
3
|
+
import { LayerProps } from '../types';
|
|
4
|
+
export interface Props<F> extends LayerProps {
|
|
5
|
+
id: string;
|
|
6
|
+
opacity?: number;
|
|
7
|
+
pickable?: boolean;
|
|
8
|
+
updateTriggers?: {
|
|
9
|
+
[key: string]: Record<string, unknown>;
|
|
10
|
+
};
|
|
11
|
+
data: F[] | FlowLinesLayerAttributes;
|
|
12
|
+
drawOutline: boolean;
|
|
13
|
+
outlineColor?: RGBA;
|
|
14
|
+
outlineThickness?: number;
|
|
15
|
+
thicknessUnit?: number;
|
|
16
|
+
getSourcePosition?: (d: F) => [number, number];
|
|
17
|
+
getTargetPosition?: (d: F) => [number, number];
|
|
18
|
+
getColor?: (d: F) => RGBA;
|
|
19
|
+
getThickness?: (d: F) => number;
|
|
20
|
+
getPickable?: (d: F, { index }: {
|
|
21
|
+
index: number;
|
|
22
|
+
}) => number;
|
|
23
|
+
getEndpointOffsets?: (d: F) => [number, number];
|
|
24
|
+
}
|
|
25
|
+
declare class FlowLinesLayer<F> extends Layer {
|
|
26
|
+
static layerName: string;
|
|
27
|
+
static defaultProps: {
|
|
28
|
+
getSourcePosition: {
|
|
29
|
+
type: string;
|
|
30
|
+
value: (d: any) => number[];
|
|
31
|
+
};
|
|
32
|
+
getTargetPosition: {
|
|
33
|
+
type: string;
|
|
34
|
+
value: (d: any) => number[];
|
|
35
|
+
};
|
|
36
|
+
getColor: {
|
|
37
|
+
type: string;
|
|
38
|
+
value: RGBA;
|
|
39
|
+
};
|
|
40
|
+
getThickness: {
|
|
41
|
+
type: string;
|
|
42
|
+
value: (d: any) => any;
|
|
43
|
+
};
|
|
44
|
+
getPickable: {
|
|
45
|
+
type: string;
|
|
46
|
+
value: (d: any) => number;
|
|
47
|
+
};
|
|
48
|
+
drawOutline: boolean;
|
|
49
|
+
thicknessUnit: number;
|
|
50
|
+
outlineThickness: number;
|
|
51
|
+
outlineColor: number[];
|
|
52
|
+
parameters: {
|
|
53
|
+
depthTest: boolean;
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
constructor(props: Props<F>);
|
|
57
|
+
getShaders(): Record<string, unknown>;
|
|
58
|
+
initializeState(): void;
|
|
59
|
+
updateState({ props, oldProps, changeFlags }: Record<string, any>): void;
|
|
60
|
+
draw({ uniforms }: Record<string, any>): void;
|
|
61
|
+
_getModel(gl: WebGLRenderingContext): Record<string, any>;
|
|
62
|
+
}
|
|
63
|
+
export default FlowLinesLayer;
|
|
64
|
+
//# sourceMappingURL=FlowLinesLayer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlowLinesLayer.d.ts","sourceRoot":"","sources":["../../src/FlowLinesLayer/FlowLinesLayer.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAC,KAAK,EAAqB,MAAM,eAAe,CAAC;AAKxD,OAAO,EAAC,wBAAwB,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AAEpC,MAAM,WAAW,KAAK,CAAC,CAAC,CAAE,SAAQ,UAAU;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAC,CAAC;IAC1D,IAAI,EAAE,CAAC,EAAE,GAAG,wBAAwB,CAAC;IACrC,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,iBAAiB,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC;IAChC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAC,KAAK,EAAC,EAAE;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,KAAK,MAAM,CAAC;IACzD,kBAAkB,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjD;AAKD,cAAM,cAAc,CAAC,CAAC,CAAE,SAAQ,KAAK;IACnC,MAAM,CAAC,SAAS,SAAoB;IACpC,MAAM,CAAC,YAAY;;;uBACgC,GAAG;;;;uBACH,GAAG;;;;;;;;uBAER,GAAG;;;;uBACJ,GAAG;;;;;;;;;MAQ9C;gBAGU,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAI3B,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IASrC,eAAe,IAAI,IAAI;IAwCvB,WAAW,CAAC,EAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAatE,IAAI,CAAC,EAAC,QAAQ,EAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAc3C,SAAS,CAAC,EAAE,EAAE,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CA0F1D;AAED,eAAe,cAAc,CAAC"}
|