@flowmap.gl/layers 8.0.0-alpha.15 → 8.0.0-alpha.16
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/{dist → dist-es5}/AnimatedFlowLinesLayer/AnimatedFlowLinesLayer.d.ts +1 -0
- package/dist-es5/AnimatedFlowLinesLayer/AnimatedFlowLinesLayer.d.ts.map +1 -0
- package/dist-es5/AnimatedFlowLinesLayer/AnimatedFlowLinesLayer.js +178 -0
- package/{dist → dist-es5}/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerFragment.glsl.d.ts +0 -0
- package/{dist → dist-es5}/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerFragment.glsl.d.ts.map +0 -0
- package/dist-es5/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerFragment.glsl.js +21 -0
- package/{dist → dist-es5}/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerVertex.glsl.d.ts +0 -0
- package/{dist → dist-es5}/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerVertex.glsl.d.ts.map +0 -0
- package/dist-es5/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerVertex.glsl.js +21 -0
- package/{dist → dist-es5}/AnimatedFlowLinesLayer/index.d.ts +0 -0
- package/{dist → dist-es5}/AnimatedFlowLinesLayer/index.d.ts.map +0 -0
- package/dist-es5/AnimatedFlowLinesLayer/index.js +8 -0
- package/{dist → dist-es5}/FlowCirclesLayer/FlowCirclesLayer.d.ts +1 -0
- package/dist-es5/FlowCirclesLayer/FlowCirclesLayer.d.ts.map +1 -0
- package/dist-es5/FlowCirclesLayer/FlowCirclesLayer.js +149 -0
- package/{dist → dist-es5}/FlowCirclesLayer/FlowCirclesLayerFragment.glsl.d.ts +0 -0
- package/{dist → dist-es5}/FlowCirclesLayer/FlowCirclesLayerFragment.glsl.d.ts.map +0 -0
- package/dist-es5/FlowCirclesLayer/FlowCirclesLayerFragment.glsl.js +21 -0
- package/{dist → dist-es5}/FlowCirclesLayer/FlowCirclesLayerVertex.glsl.d.ts +0 -0
- package/{dist → dist-es5}/FlowCirclesLayer/FlowCirclesLayerVertex.glsl.d.ts.map +0 -0
- package/dist-es5/FlowCirclesLayer/FlowCirclesLayerVertex.glsl.js +21 -0
- package/{dist → dist-es5}/FlowCirclesLayer/index.d.ts +0 -0
- package/{dist → dist-es5}/FlowCirclesLayer/index.d.ts.map +0 -0
- package/dist-es5/FlowCirclesLayer/index.js +8 -0
- package/{dist → dist-es5}/FlowLinesLayer/FlowLinesLayer.d.ts +1 -0
- package/dist-es5/FlowLinesLayer/FlowLinesLayer.d.ts.map +1 -0
- package/dist-es5/FlowLinesLayer/FlowLinesLayer.js +217 -0
- package/{dist → dist-es5}/FlowLinesLayer/FlowLinesLayerFragment.glsl.d.ts +0 -0
- package/{dist → dist-es5}/FlowLinesLayer/FlowLinesLayerFragment.glsl.d.ts.map +0 -0
- package/dist-es5/FlowLinesLayer/FlowLinesLayerFragment.glsl.js +21 -0
- package/{dist → dist-es5}/FlowLinesLayer/FlowLinesLayerVertex.glsl.d.ts +0 -0
- package/{dist → dist-es5}/FlowLinesLayer/FlowLinesLayerVertex.glsl.d.ts.map +0 -0
- package/dist-es5/FlowLinesLayer/FlowLinesLayerVertex.glsl.js +21 -0
- package/{dist → dist-es5}/FlowLinesLayer/index.d.ts +0 -0
- package/{dist → dist-es5}/FlowLinesLayer/index.d.ts.map +0 -0
- package/dist-es5/FlowLinesLayer/index.js +8 -0
- package/{dist → dist-es5}/FlowmapLayer.d.ts +1 -0
- package/dist-es5/FlowmapLayer.d.ts.map +1 -0
- package/dist-es5/FlowmapLayer.js +476 -0
- package/{dist → dist-es5}/index.d.ts +0 -0
- package/{dist → dist-es5}/index.d.ts.map +0 -0
- package/dist-es5/index.js +26 -0
- package/{dist → dist-es5}/types.d.ts +1 -0
- package/dist-es5/types.d.ts.map +1 -0
- package/dist-es5/types.js +23 -0
- package/package.json +6 -4
- package/tsconfig.es5.json +11 -0
- package/dist/AnimatedFlowLinesLayer/AnimatedFlowLinesLayer.d.ts.map +0 -1
- package/dist/AnimatedFlowLinesLayer/AnimatedFlowLinesLayer.js +0 -139
- package/dist/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerFragment.glsl.js +0 -37
- package/dist/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerVertex.glsl.js +0 -91
- package/dist/AnimatedFlowLinesLayer/index.js +0 -3
- package/dist/FlowCirclesLayer/FlowCirclesLayer.d.ts.map +0 -1
- package/dist/FlowCirclesLayer/FlowCirclesLayer.js +0 -115
- package/dist/FlowCirclesLayer/FlowCirclesLayerFragment.glsl.js +0 -76
- package/dist/FlowCirclesLayer/FlowCirclesLayerVertex.glsl.js +0 -63
- package/dist/FlowCirclesLayer/index.js +0 -3
- package/dist/FlowLinesLayer/FlowLinesLayer.d.ts.map +0 -1
- package/dist/FlowLinesLayer/FlowLinesLayer.js +0 -182
- package/dist/FlowLinesLayer/FlowLinesLayerFragment.glsl.js +0 -36
- package/dist/FlowLinesLayer/FlowLinesLayerVertex.glsl.js +0 -102
- package/dist/FlowLinesLayer/index.js +0 -3
- package/dist/FlowmapLayer.d.ts.map +0 -1
- package/dist/FlowmapLayer.js +0 -351
- package/dist/index.js +0 -6
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -20
|
@@ -1,182 +0,0 @@
|
|
|
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 './FlowLinesLayerFragment.glsl';
|
|
22
|
-
import VertexShader from './FlowLinesLayerVertex.glsl';
|
|
23
|
-
const DEFAULT_COLOR = [0, 132, 193, 255];
|
|
24
|
-
const INNER_SIDE_OUTLINE_THICKNESS = 1;
|
|
25
|
-
class FlowLinesLayer extends Layer {
|
|
26
|
-
// props!: Props;
|
|
27
|
-
constructor(props) {
|
|
28
|
-
super(props);
|
|
29
|
-
}
|
|
30
|
-
getShaders() {
|
|
31
|
-
return super.getShaders({
|
|
32
|
-
vs: VertexShader,
|
|
33
|
-
fs: FragmentShader,
|
|
34
|
-
modules: [project32, picking],
|
|
35
|
-
shaderCache: this.context.shaderCache,
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
initializeState() {
|
|
39
|
-
const { attributeManager } = this.state;
|
|
40
|
-
attributeManager.addInstanced({
|
|
41
|
-
instanceSourcePositions: {
|
|
42
|
-
accessor: 'getSourcePosition',
|
|
43
|
-
size: 3,
|
|
44
|
-
transition: false,
|
|
45
|
-
type: GL.DOUBLE,
|
|
46
|
-
},
|
|
47
|
-
instanceTargetPositions: {
|
|
48
|
-
accessor: 'getTargetPosition',
|
|
49
|
-
size: 3,
|
|
50
|
-
transition: false,
|
|
51
|
-
type: GL.DOUBLE,
|
|
52
|
-
},
|
|
53
|
-
instanceThickness: {
|
|
54
|
-
accessor: 'getThickness',
|
|
55
|
-
size: 1,
|
|
56
|
-
transition: false,
|
|
57
|
-
},
|
|
58
|
-
instanceEndpointOffsets: {
|
|
59
|
-
accessor: 'getEndpointOffsets',
|
|
60
|
-
size: 2,
|
|
61
|
-
transition: false,
|
|
62
|
-
},
|
|
63
|
-
instanceColors: {
|
|
64
|
-
accessor: 'getColor',
|
|
65
|
-
size: 4,
|
|
66
|
-
type: GL.UNSIGNED_BYTE,
|
|
67
|
-
transition: false,
|
|
68
|
-
},
|
|
69
|
-
instancePickable: {
|
|
70
|
-
accessor: 'getPickable',
|
|
71
|
-
size: 1,
|
|
72
|
-
transition: false,
|
|
73
|
-
},
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
updateState({ props, oldProps, changeFlags }) {
|
|
77
|
-
super.updateState({ props, oldProps, changeFlags });
|
|
78
|
-
if (changeFlags.extensionsChanged) {
|
|
79
|
-
const { gl } = this.context;
|
|
80
|
-
if (this.state.model) {
|
|
81
|
-
this.state.model.delete();
|
|
82
|
-
}
|
|
83
|
-
this.setState({ model: this._getModel(gl) });
|
|
84
|
-
this.getAttributeManager().invalidateAll();
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
draw({ uniforms }) {
|
|
88
|
-
const { gl } = this.context;
|
|
89
|
-
const { outlineColor, thicknessUnit } = this.props;
|
|
90
|
-
gl.lineWidth(1);
|
|
91
|
-
this.state.model
|
|
92
|
-
.setUniforms(Object.assign(Object.assign({}, uniforms), { outlineColor: outlineColor.map((x) => x / 255), thicknessUnit: thicknessUnit * 2.0, gap: 0.5 }))
|
|
93
|
-
.draw();
|
|
94
|
-
}
|
|
95
|
-
_getModel(gl) {
|
|
96
|
-
let positions = [];
|
|
97
|
-
let pixelOffsets = [];
|
|
98
|
-
const { drawOutline, outlineThickness } = this.props;
|
|
99
|
-
if (drawOutline) {
|
|
100
|
-
// source_target_mix, perpendicular_offset_in_thickness_units, direction_of_travel_offset_in_thickness_units
|
|
101
|
-
// prettier-ignore
|
|
102
|
-
positions = positions.concat([
|
|
103
|
-
// Outline
|
|
104
|
-
0, 0, 0,
|
|
105
|
-
0, 1, 0,
|
|
106
|
-
1, 0, 0,
|
|
107
|
-
0, 1, 0,
|
|
108
|
-
1, 0, -3,
|
|
109
|
-
1, 1, -3,
|
|
110
|
-
1, 0, 0,
|
|
111
|
-
1, 2, -3,
|
|
112
|
-
1, 0, -3,
|
|
113
|
-
]);
|
|
114
|
-
const tout = outlineThickness;
|
|
115
|
-
const tin = INNER_SIDE_OUTLINE_THICKNESS; // the outline shouldn't cover the opposite arrow
|
|
116
|
-
// perpendicular_offset_in_pixels, direction_of_travel_offset_in_pixels, fill_outline_color_mix
|
|
117
|
-
// prettier-ignore
|
|
118
|
-
pixelOffsets = pixelOffsets.concat([
|
|
119
|
-
// Outline
|
|
120
|
-
-tin, -tout, 1,
|
|
121
|
-
tout, -tout, 1,
|
|
122
|
-
-tin, tout, 1,
|
|
123
|
-
tout, -tout, 1,
|
|
124
|
-
-tin, 0, 1,
|
|
125
|
-
tout, 0, 1,
|
|
126
|
-
-tin, 3 * tout, 1,
|
|
127
|
-
2 * tout, -tout, 1,
|
|
128
|
-
-tin, -tout, 1,
|
|
129
|
-
]);
|
|
130
|
-
}
|
|
131
|
-
// prettier-ignore
|
|
132
|
-
positions = positions.concat([
|
|
133
|
-
// Fill
|
|
134
|
-
0, 0, 0,
|
|
135
|
-
0, 1, 0,
|
|
136
|
-
1, 0, 0,
|
|
137
|
-
0, 1, 0,
|
|
138
|
-
1, 0, -3,
|
|
139
|
-
1, 1, -3,
|
|
140
|
-
1, 0, 0,
|
|
141
|
-
1, 2, -3,
|
|
142
|
-
1, 0, -3,
|
|
143
|
-
]);
|
|
144
|
-
// prettier-ignore
|
|
145
|
-
pixelOffsets = pixelOffsets.concat([
|
|
146
|
-
// Fill
|
|
147
|
-
0, 0, 0,
|
|
148
|
-
0, 0, 0,
|
|
149
|
-
0, 0, 0,
|
|
150
|
-
0, 0, 0,
|
|
151
|
-
0, 0, 0,
|
|
152
|
-
0, 0, 0,
|
|
153
|
-
0, 0, 0,
|
|
154
|
-
0, 0, 0,
|
|
155
|
-
0, 0, 0,
|
|
156
|
-
]);
|
|
157
|
-
return new Model(gl, Object.assign(Object.assign({ id: this.props.id }, this.getShaders()), { geometry: new Geometry({
|
|
158
|
-
drawType: GL.TRIANGLES,
|
|
159
|
-
attributes: {
|
|
160
|
-
positions: new Float32Array(positions),
|
|
161
|
-
normals: new Float32Array(pixelOffsets),
|
|
162
|
-
},
|
|
163
|
-
}), isInstanced: true, shaderCache: this.context.shaderCache }));
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
FlowLinesLayer.layerName = 'FlowLinesLayer';
|
|
167
|
-
FlowLinesLayer.defaultProps = {
|
|
168
|
-
getSourcePosition: { type: 'accessor', value: (d) => [0, 0] },
|
|
169
|
-
getTargetPosition: { type: 'accessor', value: (d) => [0, 0] },
|
|
170
|
-
getColor: { type: 'accessor', value: DEFAULT_COLOR },
|
|
171
|
-
getThickness: { type: 'accessor', value: (d) => d.count },
|
|
172
|
-
getPickable: { type: 'accessor', value: (d) => 1.0 },
|
|
173
|
-
drawOutline: true,
|
|
174
|
-
thicknessUnit: 12,
|
|
175
|
-
outlineThickness: 1,
|
|
176
|
-
outlineColor: [255, 255, 255, 255],
|
|
177
|
-
parameters: {
|
|
178
|
-
depthTest: false,
|
|
179
|
-
},
|
|
180
|
-
};
|
|
181
|
-
export default FlowLinesLayer;
|
|
182
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvd0xpbmVzTGF5ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvRmxvd0xpbmVzTGF5ZXIvRmxvd0xpbmVzTGF5ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFFSCxPQUFPLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEMsT0FBTyxFQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxjQUFjLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxZQUFZLE1BQU0sNkJBQTZCLENBQUM7QUFzQnZELE1BQU0sYUFBYSxHQUFTLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDL0MsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLENBQUM7QUFFdkMsTUFBTSxjQUFrQixTQUFRLEtBQUs7SUFnQm5DLGlCQUFpQjtJQUVqQixZQUFZLEtBQWU7UUFDekIsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2YsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLEtBQUssQ0FBQyxVQUFVLENBQUM7WUFDdEIsRUFBRSxFQUFFLFlBQVk7WUFDaEIsRUFBRSxFQUFFLGNBQWM7WUFDbEIsT0FBTyxFQUFFLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQztZQUM3QixXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXO1NBQ3RDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlO1FBQ2IsTUFBTSxFQUFDLGdCQUFnQixFQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUV0QyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUM7WUFDNUIsdUJBQXVCLEVBQUU7Z0JBQ3ZCLFFBQVEsRUFBRSxtQkFBbUI7Z0JB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Q0wsQ0FBQzs7QUExTE0sd0JBQVMsR0FBRyxnQkFBZ0IsQ0FBQztBQUM3QiwyQkFBWSxHQUFHO0lBQ3BCLGlCQUFpQixFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDO0lBQ2hFLGlCQUFpQixFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDO0lBQ2hFLFFBQVEsRUFBRSxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBQztJQUNsRCxZQUFZLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQztJQUM1RCxXQUFXLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFDO0lBQ3ZELFdBQVcsRUFBRSxJQUFJO0lBQ2pCLGFBQWEsRUFBRSxFQUFFO0lBQ2pCLGdCQUFnQixFQUFFLENBQUM7SUFDbkIsWUFBWSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0lBQ2xDLFVBQVUsRUFBRTtRQUNWLFNBQVMsRUFBRSxLQUFLO0tBQ2pCO0NBQ0YsQ0FBQztBQStLSixlQUFlLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAyMiBGbG93bWFwQmx1ZVxuICogQ29weXJpZ2h0IDIwMTgtMjAyMCBUZXJhbHl0aWNzLCBtb2RpZmllZCBieSBGbG93bWFwQmx1ZVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICpcbiAqL1xuXG5pbXBvcnQge0xheWVyLCBwaWNraW5nLCBwcm9qZWN0MzJ9IGZyb20gJ0BkZWNrLmdsL2NvcmUnO1xuaW1wb3J0IEdMIGZyb20gJ0BsdW1hLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0dlb21ldHJ5LCBNb2RlbH0gZnJvbSAnQGx1bWEuZ2wvY29yZSc7XG5pbXBvcnQgRnJhZ21lbnRTaGFkZXIgZnJvbSAnLi9GbG93TGluZXNMYXllckZyYWdtZW50Lmdsc2wnO1xuaW1wb3J0IFZlcnRleFNoYWRlciBmcm9tICcuL0Zsb3dMaW5lc0xheWVyVmVydGV4Lmdsc2wnO1xuaW1wb3J0IHtGbG93TGluZXNMYXllckF0dHJpYnV0ZXMsIFJHQkF9IGZyb20gJ0BmbG93bWFwLmdsL2RhdGEnO1xuaW1wb3J0IHtMYXllclByb3BzfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcHM8Rj4gZXh0ZW5kcyBMYXllclByb3BzIHtcbiAgaWQ6IHN0cmluZztcbiAgb3BhY2l0eT86IG51bWJlcjtcbiAgcGlja2FibGU/OiBib29sZWFuO1xuICB1cGRhdGVUcmlnZ2Vycz86IHtba2V5OiBzdHJpbmddOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn07XG4gIGRhdGE6IEZbXSB8IEZsb3dMaW5lc0xheWVyQXR0cmlidXRlcztcbiAgZHJhd091dGxpbmU6IGJvb2xlYW47XG4gIG91dGxpbmVDb2xvcj86IFJHQkE7XG4gIG91dGxpbmVUaGlja25lc3M/OiBudW1iZXI7XG4gIHRoaWNrbmVzc1VuaXQ/OiBudW1iZXI7XG4gIGdldFNvdXJjZVBvc2l0aW9uPzogKGQ6IEYpID0+IFtudW1iZXIsIG51bWJlcl07XG4gIGdldFRhcmdldFBvc2l0aW9uPzogKGQ6IEYpID0+IFtudW1iZXIsIG51bWJlcl07XG4gIGdldENvbG9yPzogKGQ6IEYpID0+IFJHQkE7XG4gIGdldFRoaWNrbmVzcz86IChkOiBGKSA9PiBudW1iZXI7XG4gIGdldFBpY2thYmxlPzogKGQ6IEYsIHtpbmRleH06IHtpbmRleDogbnVtYmVyfSkgPT4gbnVtYmVyOyAvLyA+PSAxLjAgLT4gdHJ1ZVxuICBnZXRFbmRwb2ludE9mZnNldHM/OiAoZDogRikgPT4gW251bWJlciwgbnVtYmVyXTtcbn1cblxuY29uc3QgREVGQVVMVF9DT0xPUjogUkdCQSA9IFswLCAxMzIsIDE5MywgMjU1XTtcbmNvbnN0IElOTkVSX1NJREVfT1VUTElORV9USElDS05FU1MgPSAxO1xuXG5jbGFzcyBGbG93TGluZXNMYXllcjxGPiBleHRlbmRzIExheWVyIHtcbiAgc3RhdGljIGxheWVyTmFtZSA9ICdGbG93TGluZXNMYXllcic7XG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgZ2V0U291cmNlUG9zaXRpb246IHt0eXBlOiAnYWNjZXNzb3InLCB2YWx1ZTogKGQ6IGFueSkgPT4gWzAsIDBdfSxcbiAgICBnZXRUYXJnZXRQb3NpdGlvbjoge3R5cGU6ICdhY2Nlc3NvcicsIHZhbHVlOiAoZDogYW55KSA9PiBbMCwgMF19LFxuICAgIGdldENvbG9yOiB7dHlwZTogJ2FjY2Vzc29yJywgdmFsdWU6IERFRkFVTFRfQ09MT1J9LFxuICAgIGdldFRoaWNrbmVzczoge3R5cGU6ICdhY2Nlc3NvcicsIHZhbHVlOiAoZDogYW55KSA9PiBkLmNvdW50fSwgLy8gMC4uMC41XG4gICAgZ2V0UGlja2FibGU6IHt0eXBlOiAnYWNjZXNzb3InLCB2YWx1ZTogKGQ6IGFueSkgPT4gMS4wfSxcbiAgICBkcmF3T3V0bGluZTogdHJ1ZSxcbiAgICB0aGlja25lc3NVbml0OiAxMixcbiAgICBvdXRsaW5lVGhpY2tuZXNzOiAxLFxuICAgIG91dGxpbmVDb2xvcjogWzI1NSwgMjU1LCAyNTUsIDI1NV0sXG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgZGVwdGhUZXN0OiBmYWxzZSxcbiAgICB9LFxuICB9O1xuICAvLyBwcm9wcyE6IFByb3BzO1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBQcm9wczxGPikge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgfVxuXG4gIGdldFNoYWRlcnMoKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAgIHJldHVybiBzdXBlci5nZXRTaGFkZXJzKHtcbiAgICAgIHZzOiBWZXJ0ZXhTaGFkZXIsXG4gICAgICBmczogRnJhZ21lbnRTaGFkZXIsXG4gICAgICBtb2R1bGVzOiBbcHJvamVjdDMyLCBwaWNraW5nXSxcbiAgICAgIHNoYWRlckNhY2hlOiB0aGlzLmNvbnRleHQuc2hhZGVyQ2FjaGUsXG4gICAgfSk7XG4gIH1cblxuICBpbml0aWFsaXplU3RhdGUoKTogdm9pZCB7XG4gICAgY29uc3Qge2F0dHJpYnV0ZU1hbmFnZXJ9ID0gdGhpcy5zdGF0ZTtcblxuICAgIGF0dHJpYnV0ZU1hbmFnZXIuYWRkSW5zdGFuY2VkKHtcbiAgICAgIGluc3RhbmNlU291cmNlUG9zaXRpb25zOiB7XG4gICAgICAgIGFjY2Vzc29yOiAnZ2V0U291cmNlUG9zaXRpb24nLFxuICAgICAgICBzaXplOiAzLFxuICAgICAgICB0cmFuc2l0aW9uOiBmYWxzZSxcbiAgICAgICAgdHlwZTogR0wuRE9VQkxFLFxuICAgICAgfSxcbiAgICAgIGluc3RhbmNlVGFyZ2V0UG9zaXRpb25zOiB7XG4gICAgICAgIGFjY2Vzc29yOiAnZ2V0VGFyZ2V0UG9zaXRpb24nLFxuICAgICAgICBzaXplOiAzLFxuICAgICAgICB0cmFuc2l0aW9uOiBmYWxzZSxcbiAgICAgICAgdHlwZTogR0wuRE9VQkxFLFxuICAgICAgfSxcbiAgICAgIGluc3RhbmNlVGhpY2tuZXNzOiB7XG4gICAgICAgIGFjY2Vzc29yOiAnZ2V0VGhpY2tuZXNzJyxcbiAgICAgICAgc2l6ZTogMSxcbiAgICAgICAgdHJhbnNpdGlvbjogZmFsc2UsXG4gICAgICB9LFxuICAgICAgaW5zdGFuY2VFbmRwb2ludE9mZnNldHM6IHtcbiAgICAgICAgYWNjZXNzb3I6ICdnZXRFbmRwb2ludE9mZnNldHMnLFxuICAgICAgICBzaXplOiAyLFxuICAgICAgICB0cmFuc2l0aW9uOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBpbnN0YW5jZUNvbG9yczoge1xuICAgICAgICBhY2Nlc3NvcjogJ2dldENvbG9yJyxcbiAgICAgICAgc2l6ZTogNCxcbiAgICAgICAgdHlwZTogR0wuVU5TSUdORURfQllURSxcbiAgICAgICAgdHJhbnNpdGlvbjogZmFsc2UsXG4gICAgICB9LFxuICAgICAgaW5zdGFuY2VQaWNrYWJsZToge1xuICAgICAgICBhY2Nlc3NvcjogJ2dldFBpY2thYmxlJyxcbiAgICAgICAgc2l6ZTogMSxcbiAgICAgICAgdHJhbnNpdGlvbjogZmFsc2UsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlU3RhdGUoe3Byb3BzLCBvbGRQcm9wcywgY2hhbmdlRmxhZ3N9OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogdm9pZCB7XG4gICAgc3VwZXIudXBkYXRlU3RhdGUoe3Byb3BzLCBvbGRQcm9wcywgY2hhbmdlRmxhZ3N9KTtcblxuICAgIGlmIChjaGFuZ2VGbGFncy5leHRlbnNpb25zQ2hhbmdlZCkge1xuICAgICAgY29uc3Qge2dsfSA9IHRoaXMuY29udGV4dDtcbiAgICAgIGlmICh0aGlzLnN0YXRlLm1vZGVsKSB7XG4gICAgICAgIHRoaXMuc3RhdGUubW9kZWwuZGVsZXRlKCk7XG4gICAgICB9XG4gICAgICB0aGlzLnNldFN0YXRlKHttb2RlbDogdGhpcy5fZ2V0TW9kZWwoZ2wpfSk7XG4gICAgICB0aGlzLmdldEF0dHJpYnV0ZU1hbmFnZXIoKS5pbnZhbGlkYXRlQWxsKCk7XG4gICAgfVxuICB9XG5cbiAgZHJhdyh7dW5pZm9ybXN9OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogdm9pZCB7XG4gICAgY29uc3Qge2dsfSA9IHRoaXMuY29udGV4dDtcbiAgICBjb25zdCB7b3V0bGluZUNvbG9yLCB0aGlja25lc3NVbml0fSA9IHRoaXMucHJvcHM7XG4gICAgZ2wubGluZVdpZHRoKDEpO1xuICAgIHRoaXMuc3RhdGUubW9kZWxcbiAgICAgIC5zZXRVbmlmb3Jtcyh7XG4gICAgICAgIC4uLnVuaWZvcm1zLFxuICAgICAgICBvdXRsaW5lQ29sb3I6IG91dGxpbmVDb2xvci5tYXAoKHg6IG51bWJlcikgPT4geCAvIDI1NSksXG4gICAgICAgIHRoaWNrbmVzc1VuaXQ6IHRoaWNrbmVzc1VuaXQgKiAyLjAsXG4gICAgICAgIGdhcDogMC41LFxuICAgICAgfSlcbiAgICAgIC5kcmF3KCk7XG4gIH1cblxuICBfZ2V0TW9kZWwoZ2w6IFdlYkdMUmVuZGVyaW5nQ29udGV4dCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIGxldCBwb3NpdGlvbnM6IG51bWJlcltdID0gW107XG4gICAgbGV0IHBpeGVsT2Zmc2V0czogbnVtYmVyW10gPSBbXTtcblxuICAgIGNvbnN0IHtkcmF3T3V0bGluZSwgb3V0bGluZVRoaWNrbmVzc30gPSB0aGlzLnByb3BzO1xuICAgIGlmIChkcmF3T3V0bGluZSkge1xuICAgICAgLy8gc291cmNlX3RhcmdldF9taXgsIHBlcnBlbmRpY3VsYXJfb2Zmc2V0X2luX3RoaWNrbmVzc191bml0cywgZGlyZWN0aW9uX29mX3RyYXZlbF9vZmZzZXRfaW5fdGhpY2tuZXNzX3VuaXRzXG4gICAgICAvLyBwcmV0dGllci1pZ25vcmVcbiAgICAgIHBvc2l0aW9ucyA9IHBvc2l0aW9ucy5jb25jYXQoW1xuICAgICAgICAgIC8vIE91dGxpbmVcbiAgICAgICAgICAwLCAwLCAwLFxuICAgICAgICAgIDAsIDEsIDAsXG4gICAgICAgICAgMSwgMCwgMCxcblxuICAgICAgICAgIDAsIDEsIDAsXG4gICAgICAgICAgMSwgMCwgLTMsXG4gICAgICAgICAgMSwgMSwgLTMsXG5cbiAgICAgICAgICAxLCAwLCAwLFxuICAgICAgICAgIDEsIDIsIC0zLFxuICAgICAgICAgIDEsIDAsIC0zLFxuICAgICAgICBdLFxuICAgICAgKTtcblxuICAgICAgY29uc3QgdG91dCA9IG91dGxpbmVUaGlja25lc3M7XG4gICAgICBjb25zdCB0aW4gPSBJTk5FUl9TSURFX09VVExJTkVfVEhJQ0tORVNTOyAvLyB0aGUgb3V0bGluZSBzaG91bGRuJ3QgY292ZXIgdGhlIG9wcG9zaXRlIGFycm93XG4gICAgICAvLyBwZXJwZW5kaWN1bGFyX29mZnNldF9pbl9waXhlbHMsIGRpcmVjdGlvbl9vZl90cmF2ZWxfb2Zmc2V0X2luX3BpeGVscywgZmlsbF9vdXRsaW5lX2NvbG9yX21peFxuICAgICAgLy8gcHJldHRpZXItaWdub3JlXG4gICAgICBwaXhlbE9mZnNldHMgPSBwaXhlbE9mZnNldHMuY29uY2F0KFtcbiAgICAgICAgLy8gT3V0bGluZVxuICAgICAgICAtdGluLCAtdG91dCwgMSxcbiAgICAgICAgdG91dCwgLXRvdXQsIDEsXG4gICAgICAgIC10aW4sIHRvdXQsIDEsXG5cbiAgICAgICAgdG91dCwgLXRvdXQsIDEsXG4gICAgICAgIC10aW4sIDAsIDEsXG4gICAgICAgIHRvdXQsIDAsIDEsXG5cbiAgICAgICAgLXRpbiwgMyAqIHRvdXQsIDEsXG4gICAgICAgIDIgKiB0b3V0LCAtdG91dCwgMSxcbiAgICAgICAgLXRpbiwgLXRvdXQsIDEsXG4gICAgICBdKTtcbiAgICB9XG5cbiAgICAvLyBwcmV0dGllci1pZ25vcmVcbiAgICBwb3NpdGlvbnMgPSBwb3NpdGlvbnMuY29uY2F0KFtcbiAgICAgIC8vIEZpbGxcbiAgICAgIDAsIDAsIDAsXG4gICAgICAwLCAxLCAwLFxuICAgICAgMSwgMCwgMCxcblxuICAgICAgMCwgMSwgMCxcbiAgICAgIDEsIDAsIC0zLFxuICAgICAgMSwgMSwgLTMsXG5cbiAgICAgIDEsIDAsIDAsXG4gICAgICAxLCAyLCAtMyxcbiAgICAgIDEsIDAsIC0zLFxuICAgIF0pO1xuXG4gICAgLy8gcHJldHRpZXItaWdub3JlXG4gICAgcGl4ZWxPZmZzZXRzID0gcGl4ZWxPZmZzZXRzLmNvbmNhdChbXG4gICAgICAvLyBGaWxsXG4gICAgICAwLCAwLCAwLFxuICAgICAgMCwgMCwgMCxcbiAgICAgIDAsIDAsIDAsXG5cbiAgICAgIDAsIDAsIDAsXG4gICAgICAwLCAwLCAwLFxuICAgICAgMCwgMCwgMCxcblxuICAgICAgMCwgMCwgMCxcbiAgICAgIDAsIDAsIDAsXG4gICAgICAwLCAwLCAwLFxuICAgIF0pO1xuXG4gICAgcmV0dXJuIG5ldyBNb2RlbChnbCwge1xuICAgICAgaWQ6IHRoaXMucHJvcHMuaWQsXG4gICAgICAuLi50aGlzLmdldFNoYWRlcnMoKSxcbiAgICAgIGdlb21ldHJ5OiBuZXcgR2VvbWV0cnkoe1xuICAgICAgICBkcmF3VHlwZTogR0wuVFJJQU5HTEVTLFxuICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgcG9zaXRpb25zOiBuZXcgRmxvYXQzMkFycmF5KHBvc2l0aW9ucyksXG4gICAgICAgICAgbm9ybWFsczogbmV3IEZsb2F0MzJBcnJheShwaXhlbE9mZnNldHMpLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICBpc0luc3RhbmNlZDogdHJ1ZSxcbiAgICAgIHNoYWRlckNhY2hlOiB0aGlzLmNvbnRleHQuc2hhZGVyQ2FjaGUsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgRmxvd0xpbmVzTGF5ZXI7XG4iXX0=
|
|
@@ -1,36 +0,0 @@
|
|
|
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-line-layer-fragment-shader
|
|
20
|
-
|
|
21
|
-
precision highp float;
|
|
22
|
-
|
|
23
|
-
varying vec4 vColor;
|
|
24
|
-
varying vec2 uv;
|
|
25
|
-
|
|
26
|
-
void main(void) {
|
|
27
|
-
if (vColor.a == 0.0) {
|
|
28
|
-
discard;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
geometry.uv = uv;
|
|
32
|
-
gl_FragColor = vColor;
|
|
33
|
-
DECKGL_FILTER_COLOR(gl_FragColor, geometry);
|
|
34
|
-
}
|
|
35
|
-
`;
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvd0xpbmVzTGF5ZXJGcmFnbWVudC5nbHNsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0Zsb3dMaW5lc0xheWVyL0Zsb3dMaW5lc0xheWVyRnJhZ21lbnQuZ2xzbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILGVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBaUJkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMjIgRmxvd21hcEJsdWVcbiAqIENvcHlyaWdodCAyMDE4LTIwMjAgVGVyYWx5dGljcywgbW9kaWZpZWQgYnkgRmxvd21hcEJsdWVcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGBcXFxuI2RlZmluZSBTSEFERVJfTkFNRSBmbG93LWxpbmUtbGF5ZXItZnJhZ21lbnQtc2hhZGVyXG5cbnByZWNpc2lvbiBoaWdocCBmbG9hdDtcblxudmFyeWluZyB2ZWM0IHZDb2xvcjtcbnZhcnlpbmcgdmVjMiB1djtcblxudm9pZCBtYWluKHZvaWQpIHtcbiAgaWYgKHZDb2xvci5hID09IDAuMCkge1xuICAgIGRpc2NhcmQ7XG4gIH1cblxuICBnZW9tZXRyeS51diA9IHV2O1xuICBnbF9GcmFnQ29sb3IgPSB2Q29sb3I7XG4gIERFQ0tHTF9GSUxURVJfQ09MT1IoZ2xfRnJhZ0NvbG9yLCBnZW9tZXRyeSk7XG59XG5gO1xuIl19
|
|
@@ -1,102 +0,0 @@
|
|
|
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-line-layer-vertex-shader
|
|
20
|
-
|
|
21
|
-
attribute vec3 positions;
|
|
22
|
-
attribute vec3 normals;
|
|
23
|
-
attribute vec4 instanceColors;
|
|
24
|
-
attribute float instanceThickness; // 0..0.5
|
|
25
|
-
attribute vec3 instanceSourcePositions;
|
|
26
|
-
attribute vec3 instanceTargetPositions;
|
|
27
|
-
attribute vec3 instanceSourcePositions64Low;
|
|
28
|
-
attribute vec3 instanceTargetPositions64Low;
|
|
29
|
-
attribute vec3 instancePickingColors;
|
|
30
|
-
attribute vec2 instanceEndpointOffsets;
|
|
31
|
-
attribute float instancePickable;
|
|
32
|
-
|
|
33
|
-
uniform vec4 outlineColor;
|
|
34
|
-
uniform float thicknessUnit;
|
|
35
|
-
uniform float gap;
|
|
36
|
-
uniform float opacity;
|
|
37
|
-
|
|
38
|
-
varying vec4 vColor;
|
|
39
|
-
varying vec2 uv;
|
|
40
|
-
|
|
41
|
-
void main(void) {
|
|
42
|
-
geometry.worldPosition = instanceSourcePositions;
|
|
43
|
-
geometry.worldPositionAlt = instanceTargetPositions;
|
|
44
|
-
|
|
45
|
-
// Position
|
|
46
|
-
vec4 source_commonspace;
|
|
47
|
-
vec4 target_commonspace;
|
|
48
|
-
vec4 source = project_position_to_clipspace(instanceSourcePositions, instanceSourcePositions64Low, vec3(0.), source_commonspace);
|
|
49
|
-
vec4 target = project_position_to_clipspace(instanceTargetPositions, instanceTargetPositions64Low, vec3(0.), target_commonspace);
|
|
50
|
-
|
|
51
|
-
// linear interpolation of source & target to pick right coord
|
|
52
|
-
float sourceOrTarget = positions.x;
|
|
53
|
-
geometry.position = mix(source_commonspace, target_commonspace, sourceOrTarget);
|
|
54
|
-
uv = positions.xy;
|
|
55
|
-
geometry.uv = uv;
|
|
56
|
-
if (instancePickable > 0.5) {
|
|
57
|
-
geometry.pickingColor = instancePickingColors;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
// set the clamp limits in pixel size
|
|
61
|
-
float lengthCommon = length(target_commonspace - source_commonspace);
|
|
62
|
-
vec2 offsetDistances = project_pixel_size(positions.yz) * thicknessUnit;
|
|
63
|
-
|
|
64
|
-
vec2 limitedOffsetDistances = clamp(
|
|
65
|
-
project_pixel_size(positions.yz) * thicknessUnit,
|
|
66
|
-
-lengthCommon*.8, lengthCommon*.8
|
|
67
|
-
);
|
|
68
|
-
float startOffsetCommon = project_pixel_size(instanceEndpointOffsets[0]);
|
|
69
|
-
float endOffsetCommon = project_pixel_size(instanceEndpointOffsets[1]);
|
|
70
|
-
float endpointOffset = mix(
|
|
71
|
-
clamp(startOffsetCommon, 0.0, lengthCommon*.2),
|
|
72
|
-
-clamp(endOffsetCommon, 0.0, lengthCommon*.2),
|
|
73
|
-
positions.x
|
|
74
|
-
);
|
|
75
|
-
|
|
76
|
-
vec2 flowlineDir = normalize(target_commonspace.xy - source_commonspace.xy);
|
|
77
|
-
vec2 perpendicularDir = vec2(-flowlineDir.y, flowlineDir.x);
|
|
78
|
-
vec2 normalsCommon = project_pixel_size(normals.xy);
|
|
79
|
-
float gapCommon = project_pixel_size(gap);
|
|
80
|
-
vec3 offsetCommon = vec3(
|
|
81
|
-
flowlineDir * (instanceThickness * limitedOffsetDistances[1] + normalsCommon.y + endpointOffset * 1.05) -
|
|
82
|
-
perpendicularDir * (instanceThickness * limitedOffsetDistances[0] + gapCommon + normalsCommon.x),
|
|
83
|
-
0.0
|
|
84
|
-
);
|
|
85
|
-
|
|
86
|
-
DECKGL_FILTER_SIZE(offsetCommon, geometry);
|
|
87
|
-
vec4 position_commonspace = mix(source_commonspace, target_commonspace, sourceOrTarget);
|
|
88
|
-
vec4 offset_commonspace = vec4(offsetCommon, 0.0);
|
|
89
|
-
gl_Position = project_common_position_to_clipspace(position_commonspace + offset_commonspace);
|
|
90
|
-
|
|
91
|
-
DECKGL_FILTER_GL_POSITION(gl_Position, geometry);
|
|
92
|
-
|
|
93
|
-
vec4 fillColor = vec4(instanceColors.rgb, instanceColors.a * opacity) / 255.;
|
|
94
|
-
if (instancePickable <= 0.5) {
|
|
95
|
-
vColor = mix(fillColor, vec4(outlineColor.xyz, instanceThickness), normals.z);
|
|
96
|
-
} else {
|
|
97
|
-
vColor = mix(fillColor, vec4(outlineColor.xyz, outlineColor.w * fillColor.w), normals.z);
|
|
98
|
-
}
|
|
99
|
-
DECKGL_FILTER_COLOR(vColor, geometry);
|
|
100
|
-
}
|
|
101
|
-
`;
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvd0xpbmVzTGF5ZXJWZXJ0ZXguZ2xzbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9GbG93TGluZXNMYXllci9GbG93TGluZXNMYXllclZlcnRleC5nbHNsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsZUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FtRmQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAyMiBGbG93bWFwQmx1ZVxuICogQ29weXJpZ2h0IDIwMTgtMjAyMCBUZXJhbHl0aWNzLCBtb2RpZmllZCBieSBGbG93bWFwQmx1ZVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICpcbiAqL1xuZXhwb3J0IGRlZmF1bHQgYFxcXG4jZGVmaW5lIFNIQURFUl9OQU1FIGZsb3ctbGluZS1sYXllci12ZXJ0ZXgtc2hhZGVyXG5cbmF0dHJpYnV0ZSB2ZWMzIHBvc2l0aW9ucztcbmF0dHJpYnV0ZSB2ZWMzIG5vcm1hbHM7XG5hdHRyaWJ1dGUgdmVjNCBpbnN0YW5jZUNvbG9ycztcbmF0dHJpYnV0ZSBmbG9hdCBpbnN0YW5jZVRoaWNrbmVzczsgICAgLy8gMC4uMC41XG5hdHRyaWJ1dGUgdmVjMyBpbnN0YW5jZVNvdXJjZVBvc2l0aW9ucztcbmF0dHJpYnV0ZSB2ZWMzIGluc3RhbmNlVGFyZ2V0UG9zaXRpb25zO1xuYXR0cmlidXRlIHZlYzMgaW5zdGFuY2VTb3VyY2VQb3NpdGlvbnM2NExvdztcbmF0dHJpYnV0ZSB2ZWMzIGluc3RhbmNlVGFyZ2V0UG9zaXRpb25zNjRMb3c7XG5hdHRyaWJ1dGUgdmVjMyBpbnN0YW5jZVBpY2tpbmdDb2xvcnM7XG5hdHRyaWJ1dGUgdmVjMiBpbnN0YW5jZUVuZHBvaW50T2Zmc2V0cztcbmF0dHJpYnV0ZSBmbG9hdCBpbnN0YW5jZVBpY2thYmxlO1xuXG51bmlmb3JtIHZlYzQgb3V0bGluZUNvbG9yO1xudW5pZm9ybSBmbG9hdCB0aGlja25lc3NVbml0O1xudW5pZm9ybSBmbG9hdCBnYXA7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG5cbnZhcnlpbmcgdmVjNCB2Q29sb3I7XG52YXJ5aW5nIHZlYzIgdXY7XG5cbnZvaWQgbWFpbih2b2lkKSB7XG4gIGdlb21ldHJ5LndvcmxkUG9zaXRpb24gPSBpbnN0YW5jZVNvdXJjZVBvc2l0aW9ucztcbiAgZ2VvbWV0cnkud29ybGRQb3NpdGlvbkFsdCA9IGluc3RhbmNlVGFyZ2V0UG9zaXRpb25zO1xuICBcbiAgLy8gUG9zaXRpb25cbiAgdmVjNCBzb3VyY2VfY29tbW9uc3BhY2U7ICAgIFxuICB2ZWM0IHRhcmdldF9jb21tb25zcGFjZTtcbiAgdmVjNCBzb3VyY2UgPSBwcm9qZWN0X3Bvc2l0aW9uX3RvX2NsaXBzcGFjZShpbnN0YW5jZVNvdXJjZVBvc2l0aW9ucywgaW5zdGFuY2VTb3VyY2VQb3NpdGlvbnM2NExvdywgdmVjMygwLiksIHNvdXJjZV9jb21tb25zcGFjZSk7XG4gIHZlYzQgdGFyZ2V0ID0gcHJvamVjdF9wb3NpdGlvbl90b19jbGlwc3BhY2UoaW5zdGFuY2VUYXJnZXRQb3NpdGlvbnMsIGluc3RhbmNlVGFyZ2V0UG9zaXRpb25zNjRMb3csIHZlYzMoMC4pLCB0YXJnZXRfY29tbW9uc3BhY2UpO1xuXG4gIC8vIGxpbmVhciBpbnRlcnBvbGF0aW9uIG9mIHNvdXJjZSAmIHRhcmdldCB0byBwaWNrIHJpZ2h0IGNvb3JkXG4gIGZsb2F0IHNvdXJjZU9yVGFyZ2V0ID0gcG9zaXRpb25zLng7XG4gIGdlb21ldHJ5LnBvc2l0aW9uID0gbWl4KHNvdXJjZV9jb21tb25zcGFjZSwgdGFyZ2V0X2NvbW1vbnNwYWNlLCBzb3VyY2VPclRhcmdldCk7XG4gIHV2ID0gcG9zaXRpb25zLnh5O1xuICBnZW9tZXRyeS51diA9IHV2O1xuICBpZiAoaW5zdGFuY2VQaWNrYWJsZSA+IDAuNSkge1xuICAgIGdlb21ldHJ5LnBpY2tpbmdDb2xvciA9IGluc3RhbmNlUGlja2luZ0NvbG9ycztcbiAgfVxuICBcbiAgLy8gc2V0IHRoZSBjbGFtcCBsaW1pdHMgaW4gcGl4ZWwgc2l6ZSBcbiAgZmxvYXQgbGVuZ3RoQ29tbW9uID0gbGVuZ3RoKHRhcmdldF9jb21tb25zcGFjZSAtIHNvdXJjZV9jb21tb25zcGFjZSk7ICAgIFxuICB2ZWMyIG9mZnNldERpc3RhbmNlcyA9IHByb2plY3RfcGl4ZWxfc2l6ZShwb3NpdGlvbnMueXopICogdGhpY2tuZXNzVW5pdDtcbiAgXG4gIHZlYzIgbGltaXRlZE9mZnNldERpc3RhbmNlcyA9IGNsYW1wKCAgIFxuICAgIHByb2plY3RfcGl4ZWxfc2l6ZShwb3NpdGlvbnMueXopICogdGhpY2tuZXNzVW5pdCxcbiAgICAtbGVuZ3RoQ29tbW9uKi44LCBsZW5ndGhDb21tb24qLjhcbiAgKTtcbiAgZmxvYXQgc3RhcnRPZmZzZXRDb21tb24gPSBwcm9qZWN0X3BpeGVsX3NpemUoaW5zdGFuY2VFbmRwb2ludE9mZnNldHNbMF0pO1xuICBmbG9hdCBlbmRPZmZzZXRDb21tb24gPSBwcm9qZWN0X3BpeGVsX3NpemUoaW5zdGFuY2VFbmRwb2ludE9mZnNldHNbMV0pO1xuICBmbG9hdCBlbmRwb2ludE9mZnNldCA9IG1peChcbiAgICBjbGFtcChzdGFydE9mZnNldENvbW1vbiwgMC4wLCBsZW5ndGhDb21tb24qLjIpLFxuICAgIC1jbGFtcChlbmRPZmZzZXRDb21tb24sIDAuMCwgbGVuZ3RoQ29tbW9uKi4yKSxcbiAgICBwb3NpdGlvbnMueFxuICApO1xuXG4gIHZlYzIgZmxvd2xpbmVEaXIgPSBub3JtYWxpemUodGFyZ2V0X2NvbW1vbnNwYWNlLnh5IC0gc291cmNlX2NvbW1vbnNwYWNlLnh5KTtcbiAgdmVjMiBwZXJwZW5kaWN1bGFyRGlyID0gdmVjMigtZmxvd2xpbmVEaXIueSwgZmxvd2xpbmVEaXIueCk7XG4gIHZlYzIgbm9ybWFsc0NvbW1vbiA9IHByb2plY3RfcGl4ZWxfc2l6ZShub3JtYWxzLnh5KTtcbiAgZmxvYXQgZ2FwQ29tbW9uID0gcHJvamVjdF9waXhlbF9zaXplKGdhcCk7XG4gIHZlYzMgb2Zmc2V0Q29tbW9uID0gdmVjMyhcbiAgICBmbG93bGluZURpciAqIChpbnN0YW5jZVRoaWNrbmVzcyAqIGxpbWl0ZWRPZmZzZXREaXN0YW5jZXNbMV0gKyBub3JtYWxzQ29tbW9uLnkgKyBlbmRwb2ludE9mZnNldCAqIDEuMDUpIC1cbiAgICBwZXJwZW5kaWN1bGFyRGlyICogKGluc3RhbmNlVGhpY2tuZXNzICogbGltaXRlZE9mZnNldERpc3RhbmNlc1swXSArIGdhcENvbW1vbiArIG5vcm1hbHNDb21tb24ueCksXG4gICAgMC4wXG4gICk7XG4gIFxuICBERUNLR0xfRklMVEVSX1NJWkUob2Zmc2V0Q29tbW9uLCBnZW9tZXRyeSk7XG4gIHZlYzQgcG9zaXRpb25fY29tbW9uc3BhY2UgPSBtaXgoc291cmNlX2NvbW1vbnNwYWNlLCB0YXJnZXRfY29tbW9uc3BhY2UsIHNvdXJjZU9yVGFyZ2V0KTtcbiAgdmVjNCBvZmZzZXRfY29tbW9uc3BhY2UgPSB2ZWM0KG9mZnNldENvbW1vbiwgMC4wKTtcbiAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0X2NvbW1vbl9wb3NpdGlvbl90b19jbGlwc3BhY2UocG9zaXRpb25fY29tbW9uc3BhY2UgKyBvZmZzZXRfY29tbW9uc3BhY2UpO1xuICAgICAgXG4gIERFQ0tHTF9GSUxURVJfR0xfUE9TSVRJT04oZ2xfUG9zaXRpb24sIGdlb21ldHJ5KTtcbiAgXG4gIHZlYzQgZmlsbENvbG9yID0gdmVjNChpbnN0YW5jZUNvbG9ycy5yZ2IsIGluc3RhbmNlQ29sb3JzLmEgKiBvcGFjaXR5KSAvIDI1NS47XG4gIGlmIChpbnN0YW5jZVBpY2thYmxlIDw9IDAuNSkge1xuICAgIHZDb2xvciA9IG1peChmaWxsQ29sb3IsIHZlYzQob3V0bGluZUNvbG9yLnh5eiwgaW5zdGFuY2VUaGlja25lc3MpLCBub3JtYWxzLnopO1xuICB9IGVsc2Uge1xuICAgIHZDb2xvciA9IG1peChmaWxsQ29sb3IsIHZlYzQob3V0bGluZUNvbG9yLnh5eiwgb3V0bGluZUNvbG9yLncgKiBmaWxsQ29sb3IudyksIG5vcm1hbHMueik7XG4gIH1cbiAgREVDS0dMX0ZJTFRFUl9DT0xPUih2Q29sb3IsIGdlb21ldHJ5KTtcbn1cbmA7XG4iXX0=
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import FlowLinesLayer from './FlowLinesLayer';
|
|
2
|
-
export default FlowLinesLayer;
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvRmxvd0xpbmVzTGF5ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxjQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFFOUMsZUFBZSxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRmxvd0xpbmVzTGF5ZXIgZnJvbSAnLi9GbG93TGluZXNMYXllcic7XG5cbmV4cG9ydCBkZWZhdWx0IEZsb3dMaW5lc0xheWVyO1xuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FlowmapLayer.d.ts","sourceRoot":"","sources":["../src/FlowmapLayer.ts"],"names":[],"mappings":"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"}
|