@deck.gl/extensions 9.0.40 → 9.1.0-beta.3
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/brushing/brushing-extension.d.ts +1 -0
- package/dist/brushing/brushing-extension.d.ts.map +1 -1
- package/dist/brushing/brushing-extension.js +16 -19
- package/dist/brushing/brushing-extension.js.map +1 -0
- package/dist/brushing/shader-module.d.ts +8 -2
- package/dist/brushing/shader-module.d.ts.map +1 -1
- package/dist/brushing/shader-module.js +75 -50
- package/dist/brushing/shader-module.js.map +1 -0
- package/dist/clip/clip-extension.d.ts +5 -2
- package/dist/clip/clip-extension.d.ts.map +1 -1
- package/dist/clip/clip-extension.js +37 -42
- package/dist/clip/clip-extension.js.map +1 -0
- package/dist/collision-filter/collision-filter-effect.d.ts +4 -4
- package/dist/collision-filter/collision-filter-effect.d.ts.map +1 -1
- package/dist/collision-filter/collision-filter-effect.js +28 -13
- package/dist/collision-filter/collision-filter-effect.js.map +1 -0
- package/dist/collision-filter/collision-filter-extension.d.ts +1 -1
- package/dist/collision-filter/collision-filter-extension.d.ts.map +1 -1
- package/dist/collision-filter/collision-filter-extension.js +6 -6
- package/dist/collision-filter/collision-filter-extension.js.map +1 -0
- package/dist/collision-filter/collision-filter-pass.d.ts +9 -5
- package/dist/collision-filter/collision-filter-pass.d.ts.map +1 -1
- package/dist/collision-filter/collision-filter-pass.js +15 -4
- package/dist/collision-filter/collision-filter-pass.js.map +1 -0
- package/dist/collision-filter/shader-module.d.ts +3 -2
- package/dist/collision-filter/shader-module.d.ts.map +1 -1
- package/dist/collision-filter/shader-module.js +75 -52
- package/dist/collision-filter/shader-module.js.map +1 -0
- package/dist/data-filter/aggregator.d.ts +4 -10
- package/dist/data-filter/aggregator.d.ts.map +1 -1
- package/dist/data-filter/aggregator.js +15 -8
- package/dist/data-filter/aggregator.js.map +1 -0
- package/dist/data-filter/data-filter-extension.d.ts.map +1 -1
- package/dist/data-filter/data-filter-extension.js +49 -39
- package/dist/data-filter/data-filter-extension.js.map +1 -0
- package/dist/data-filter/shader-module.d.ts +12 -5
- package/dist/data-filter/shader-module.d.ts.map +1 -1
- package/dist/data-filter/shader-module.js +190 -131
- package/dist/data-filter/shader-module.js.map +1 -0
- package/dist/dist.dev.js +2720 -2037
- package/dist/fill-style/fill-style-extension.d.ts.map +1 -1
- package/dist/fill-style/fill-style-extension.js +12 -4
- package/dist/fill-style/fill-style-extension.js.map +1 -0
- package/dist/fill-style/shader-module.d.ts +64 -6
- package/dist/fill-style/shader-module.d.ts.map +1 -1
- package/dist/fill-style/shader-module.js +74 -51
- package/dist/fill-style/shader-module.js.map +1 -0
- package/dist/fp64/fp64-extension.d.ts +1 -0
- package/dist/fp64/fp64-extension.d.ts.map +1 -1
- package/dist/fp64/fp64-extension.js +8 -19
- package/dist/fp64/fp64-extension.js.map +1 -0
- package/dist/fp64/project64.d.ts +2 -2
- package/dist/fp64/project64.d.ts.map +1 -1
- package/dist/fp64/project64.glsl.d.ts +1 -1
- package/dist/fp64/project64.glsl.d.ts.map +1 -1
- package/dist/fp64/project64.glsl.js +19 -21
- package/dist/fp64/project64.glsl.js.map +1 -0
- package/dist/fp64/project64.js +25 -24
- package/dist/fp64/project64.js.map +1 -0
- package/dist/index.cjs +1034 -528
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/mask/mask-effect.d.ts +5 -3
- package/dist/mask/mask-effect.d.ts.map +1 -1
- package/dist/mask/mask-effect.js +13 -5
- package/dist/mask/mask-effect.js.map +1 -0
- package/dist/mask/mask-extension.d.ts +1 -1
- package/dist/mask/mask-extension.d.ts.map +1 -1
- package/dist/mask/mask-extension.js +14 -8
- package/dist/mask/mask-extension.js.map +1 -0
- package/dist/mask/mask-pass.d.ts +2 -43
- package/dist/mask/mask-pass.d.ts.map +1 -1
- package/dist/mask/mask-pass.js +5 -1
- package/dist/mask/mask-pass.js.map +1 -0
- package/dist/mask/shader-module.d.ts +60 -3
- package/dist/mask/shader-module.d.ts.map +1 -1
- package/dist/mask/shader-module.js +74 -46
- package/dist/mask/shader-module.js.map +1 -0
- package/dist/path-style/path-style-extension.d.ts.map +1 -1
- package/dist/path-style/path-style-extension.js +21 -24
- package/dist/path-style/path-style-extension.js.map +1 -0
- package/dist/path-style/shaders.glsl.d.ts.map +1 -1
- package/dist/path-style/shaders.glsl.js +12 -7
- package/dist/path-style/shaders.glsl.js.map +1 -0
- package/dist/terrain/height-map-builder.d.ts.map +1 -1
- package/dist/terrain/height-map-builder.js +4 -0
- package/dist/terrain/height-map-builder.js.map +1 -0
- package/dist/terrain/shader-module.d.ts +60 -6
- package/dist/terrain/shader-module.d.ts.map +1 -1
- package/dist/terrain/shader-module.js +70 -61
- package/dist/terrain/shader-module.js.map +1 -0
- package/dist/terrain/terrain-cover.d.ts.map +1 -1
- package/dist/terrain/terrain-cover.js +4 -0
- package/dist/terrain/terrain-cover.js.map +1 -0
- package/dist/terrain/terrain-effect.d.ts +4 -2
- package/dist/terrain/terrain-effect.d.ts.map +1 -1
- package/dist/terrain/terrain-effect.js +32 -18
- package/dist/terrain/terrain-effect.js.map +1 -0
- package/dist/terrain/terrain-extension.d.ts.map +1 -1
- package/dist/terrain/terrain-extension.js +4 -0
- package/dist/terrain/terrain-extension.js.map +1 -0
- package/dist/terrain/terrain-pass.d.ts +6 -41
- package/dist/terrain/terrain-pass.d.ts.map +1 -1
- package/dist/terrain/terrain-pass.js +12 -1
- package/dist/terrain/terrain-pass.js.map +1 -0
- package/dist/terrain/terrain-picking-pass.d.ts +7 -1
- package/dist/terrain/terrain-picking-pass.d.ts.map +1 -1
- package/dist/terrain/terrain-picking-pass.js +12 -1
- package/dist/terrain/terrain-picking-pass.js.map +1 -0
- package/dist/terrain/utils.d.ts.map +1 -1
- package/dist/terrain/utils.js +4 -0
- package/dist/terrain/utils.js.map +1 -0
- package/dist/utils/debug.d.ts +2 -2
- package/dist/utils/debug.d.ts.map +1 -1
- package/dist/utils/debug.js +4 -1
- package/dist/utils/debug.js.map +1 -0
- package/dist/utils/projection-utils.d.ts.map +1 -1
- package/dist/utils/projection-utils.js +4 -0
- package/dist/utils/projection-utils.js.map +1 -0
- package/dist.min.js +1102 -817
- package/package.json +8 -8
- package/src/brushing/brushing-extension.ts +17 -20
- package/src/brushing/shader-module.ts +58 -47
- package/src/clip/clip-extension.ts +38 -40
- package/src/collision-filter/collision-filter-effect.ts +31 -20
- package/src/collision-filter/collision-filter-extension.ts +6 -7
- package/src/collision-filter/collision-filter-pass.ts +17 -6
- package/src/collision-filter/shader-module.ts +40 -22
- package/src/data-filter/aggregator.ts +23 -11
- package/src/data-filter/data-filter-extension.ts +76 -49
- package/src/data-filter/shader-module.ts +150 -90
- package/src/fill-style/fill-style-extension.ts +13 -5
- package/src/fill-style/shader-module.ts +84 -52
- package/src/fp64/fp64-extension.ts +8 -19
- package/src/fp64/project64.glsl.ts +18 -21
- package/src/fp64/project64.ts +27 -28
- package/src/index.ts +5 -0
- package/src/mask/mask-effect.ts +17 -7
- package/src/mask/mask-extension.ts +16 -9
- package/src/mask/mask-pass.ts +17 -3
- package/src/mask/shader-module.ts +63 -27
- package/src/path-style/path-style-extension.ts +27 -28
- package/src/path-style/shaders.glsl.ts +13 -7
- package/src/terrain/height-map-builder.ts +4 -0
- package/src/terrain/shader-module.ts +62 -44
- package/src/terrain/terrain-cover.ts +4 -0
- package/src/terrain/terrain-effect.ts +36 -19
- package/src/terrain/terrain-extension.ts +4 -0
- package/src/terrain/terrain-pass.ts +19 -3
- package/src/terrain/terrain-picking-pass.ts +15 -2
- package/src/terrain/utils.ts +4 -0
- package/src/utils/debug.ts +4 -0
- package/src/utils/projection-utils.ts +4 -0
- package/dist/utils/syntax-tags.d.ts +0 -6
- package/dist/utils/syntax-tags.d.ts.map +0 -1
- package/dist/utils/syntax-tags.js +0 -5
- package/src/utils/syntax-tags.ts +0 -5
|
@@ -1,111 +1,142 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
uniform
|
|
6
|
-
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
const uniformBlock = /* glsl */ `\
|
|
5
|
+
uniform dataFilterUniforms {
|
|
6
|
+
bool useSoftMargin;
|
|
7
|
+
bool enabled;
|
|
8
|
+
bool transformSize;
|
|
9
|
+
bool transformColor;
|
|
10
|
+
#ifdef DATAFILTER_TYPE
|
|
11
|
+
DATAFILTER_TYPE min;
|
|
12
|
+
DATAFILTER_TYPE softMin;
|
|
13
|
+
DATAFILTER_TYPE softMax;
|
|
14
|
+
DATAFILTER_TYPE max;
|
|
15
|
+
#ifdef DATAFILTER_DOUBLE
|
|
16
|
+
DATAFILTER_TYPE min64High;
|
|
17
|
+
DATAFILTER_TYPE max64High;
|
|
18
|
+
#endif
|
|
19
|
+
#endif
|
|
20
|
+
#ifdef DATACATEGORY_TYPE
|
|
21
|
+
highp uvec4 categoryBitMask;
|
|
22
|
+
#endif
|
|
23
|
+
} dataFilter;
|
|
24
|
+
`;
|
|
25
|
+
const vertex = /* glsl */ `
|
|
7
26
|
#ifdef DATAFILTER_TYPE
|
|
8
|
-
|
|
9
|
-
uniform DATAFILTER_TYPE filter_softMin;
|
|
10
|
-
uniform DATAFILTER_TYPE filter_softMax;
|
|
11
|
-
uniform DATAFILTER_TYPE filter_max;
|
|
12
|
-
in DATAFILTER_TYPE filterValues;
|
|
27
|
+
in DATAFILTER_TYPE filterValues;
|
|
13
28
|
#ifdef DATAFILTER_DOUBLE
|
|
14
|
-
in DATAFILTER_TYPE filterValues64Low;
|
|
15
|
-
uniform DATAFILTER_TYPE filter_min64High;
|
|
16
|
-
uniform DATAFILTER_TYPE filter_max64High;
|
|
29
|
+
in DATAFILTER_TYPE filterValues64Low;
|
|
17
30
|
#endif
|
|
18
31
|
#endif
|
|
32
|
+
|
|
19
33
|
#ifdef DATACATEGORY_TYPE
|
|
20
|
-
in DATACATEGORY_TYPE filterCategoryValues;
|
|
34
|
+
in DATACATEGORY_TYPE filterCategoryValues;
|
|
21
35
|
#endif
|
|
36
|
+
|
|
22
37
|
out float dataFilter_value;
|
|
38
|
+
|
|
23
39
|
float dataFilter_reduceValue(float value) {
|
|
24
|
-
return value;
|
|
40
|
+
return value;
|
|
25
41
|
}
|
|
26
42
|
float dataFilter_reduceValue(vec2 value) {
|
|
27
|
-
return min(value.x, value.y);
|
|
43
|
+
return min(value.x, value.y);
|
|
28
44
|
}
|
|
29
45
|
float dataFilter_reduceValue(vec3 value) {
|
|
30
|
-
return min(min(value.x, value.y), value.z);
|
|
46
|
+
return min(min(value.x, value.y), value.z);
|
|
31
47
|
}
|
|
32
48
|
float dataFilter_reduceValue(vec4 value) {
|
|
33
|
-
return min(min(value.x, value.y), min(value.z, value.w));
|
|
49
|
+
return min(min(value.x, value.y), min(value.z, value.w));
|
|
34
50
|
}
|
|
51
|
+
|
|
35
52
|
#ifdef DATAFILTER_TYPE
|
|
36
|
-
void dataFilter_setValue(DATAFILTER_TYPE valueFromMin, DATAFILTER_TYPE valueFromMax) {
|
|
37
|
-
if (
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
)
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
)
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
dataFilter_value = dataFilter_reduceValue(
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
void dataFilter_setValue(DATAFILTER_TYPE valueFromMin, DATAFILTER_TYPE valueFromMax) {
|
|
54
|
+
if (dataFilter.useSoftMargin) {
|
|
55
|
+
// smoothstep results are undefined if edge0 ≥ edge1
|
|
56
|
+
// Fallback to ignore filterSoftRange if it is truncated by filterRange
|
|
57
|
+
DATAFILTER_TYPE leftInRange = mix(
|
|
58
|
+
smoothstep(dataFilter.min, dataFilter.softMin, valueFromMin),
|
|
59
|
+
step(dataFilter.min, valueFromMin),
|
|
60
|
+
step(dataFilter.softMin, dataFilter.min)
|
|
61
|
+
);
|
|
62
|
+
DATAFILTER_TYPE rightInRange = mix(
|
|
63
|
+
1.0 - smoothstep(dataFilter.softMax, dataFilter.max, valueFromMax),
|
|
64
|
+
step(valueFromMax, dataFilter.max),
|
|
65
|
+
step(dataFilter.max, dataFilter.softMax)
|
|
66
|
+
);
|
|
67
|
+
dataFilter_value = dataFilter_reduceValue(leftInRange * rightInRange);
|
|
68
|
+
} else {
|
|
69
|
+
dataFilter_value = dataFilter_reduceValue(
|
|
70
|
+
step(dataFilter.min, valueFromMin) * step(valueFromMax, dataFilter.max)
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
55
74
|
#endif
|
|
75
|
+
|
|
56
76
|
#ifdef DATACATEGORY_TYPE
|
|
57
|
-
void dataFilter_setCategoryValue(DATACATEGORY_TYPE category) {
|
|
58
|
-
#if DATACATEGORY_CHANNELS == 1
|
|
59
|
-
|
|
60
|
-
#elif DATACATEGORY_CHANNELS == 2
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
);
|
|
65
|
-
#elif DATACATEGORY_CHANNELS == 3
|
|
66
|
-
|
|
67
|
-
#else
|
|
68
|
-
|
|
69
|
-
#endif
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
if
|
|
76
|
-
|
|
77
|
-
|
|
77
|
+
void dataFilter_setCategoryValue(DATACATEGORY_TYPE category) {
|
|
78
|
+
#if DATACATEGORY_CHANNELS == 1 // One 128-bit mask
|
|
79
|
+
uint dataFilter_masks = dataFilter.categoryBitMask[category / 32u];
|
|
80
|
+
#elif DATACATEGORY_CHANNELS == 2 // Two 64-bit masks
|
|
81
|
+
uvec2 dataFilter_masks = uvec2(
|
|
82
|
+
dataFilter.categoryBitMask[category.x / 32u],
|
|
83
|
+
dataFilter.categoryBitMask[category.y / 32u + 2u]
|
|
84
|
+
);
|
|
85
|
+
#elif DATACATEGORY_CHANNELS == 3 // Three 32-bit masks
|
|
86
|
+
uvec3 dataFilter_masks = dataFilter.categoryBitMask.xyz;
|
|
87
|
+
#else // Four 32-bit masks
|
|
88
|
+
uvec4 dataFilter_masks = dataFilter.categoryBitMask;
|
|
89
|
+
#endif
|
|
90
|
+
|
|
91
|
+
// Shift mask and extract relevant bits
|
|
92
|
+
DATACATEGORY_TYPE dataFilter_bits = DATACATEGORY_TYPE(dataFilter_masks) >> (category & 31u);
|
|
93
|
+
dataFilter_bits &= 1u;
|
|
94
|
+
|
|
95
|
+
#if DATACATEGORY_CHANNELS == 1
|
|
96
|
+
if(dataFilter_bits == 0u) dataFilter_value = 0.0;
|
|
97
|
+
#else
|
|
98
|
+
if(any(equal(dataFilter_bits, DATACATEGORY_TYPE(0u)))) dataFilter_value = 0.0;
|
|
99
|
+
#endif
|
|
100
|
+
}
|
|
78
101
|
#endif
|
|
79
102
|
`;
|
|
80
|
-
const
|
|
81
|
-
|
|
103
|
+
const vs = `
|
|
104
|
+
${uniformBlock}
|
|
105
|
+
${vertex}
|
|
106
|
+
`;
|
|
107
|
+
const fragment = /* glsl */ `
|
|
82
108
|
in float dataFilter_value;
|
|
83
109
|
`;
|
|
110
|
+
const fs = `
|
|
111
|
+
${uniformBlock}
|
|
112
|
+
${fragment}
|
|
113
|
+
`;
|
|
84
114
|
/* eslint-disable camelcase */
|
|
85
115
|
function getUniforms(opts) {
|
|
86
116
|
if (!opts || !('extensions' in opts)) {
|
|
87
117
|
return {};
|
|
88
118
|
}
|
|
89
|
-
const { filterRange = [-1, 1], filterEnabled = true, filterTransformSize = true, filterTransformColor = true } = opts;
|
|
119
|
+
const { filterRange = [-1, 1], filterEnabled = true, filterTransformSize = true, filterTransformColor = true, categoryBitMask = [0, 0, 0, 0] } = opts;
|
|
90
120
|
const filterSoftRange = opts.filterSoftRange || filterRange;
|
|
91
121
|
return {
|
|
92
122
|
...(Number.isFinite(filterRange[0])
|
|
93
123
|
? {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
124
|
+
min: filterRange[0],
|
|
125
|
+
softMin: filterSoftRange[0],
|
|
126
|
+
softMax: filterSoftRange[1],
|
|
127
|
+
max: filterRange[1]
|
|
98
128
|
}
|
|
99
129
|
: {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
130
|
+
min: filterRange.map(r => r[0]),
|
|
131
|
+
softMin: filterSoftRange.map(r => r[0]),
|
|
132
|
+
softMax: filterSoftRange.map(r => r[1]),
|
|
133
|
+
max: filterRange.map(r => r[1])
|
|
104
134
|
}),
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
135
|
+
enabled: filterEnabled,
|
|
136
|
+
useSoftMargin: Boolean(opts.filterSoftRange),
|
|
137
|
+
transformSize: filterEnabled && filterTransformSize,
|
|
138
|
+
transformColor: filterEnabled && filterTransformColor,
|
|
139
|
+
categoryBitMask
|
|
109
140
|
};
|
|
110
141
|
}
|
|
111
142
|
function getUniforms64(opts) {
|
|
@@ -113,75 +144,103 @@ function getUniforms64(opts) {
|
|
|
113
144
|
return {};
|
|
114
145
|
}
|
|
115
146
|
const uniforms = getUniforms(opts);
|
|
116
|
-
if (Number.isFinite(uniforms.
|
|
117
|
-
const min64High = Math.fround(uniforms.
|
|
118
|
-
uniforms.
|
|
119
|
-
uniforms.
|
|
120
|
-
uniforms.
|
|
121
|
-
const max64High = Math.fround(uniforms.
|
|
122
|
-
uniforms.
|
|
123
|
-
uniforms.
|
|
124
|
-
uniforms.
|
|
147
|
+
if (Number.isFinite(uniforms.min)) {
|
|
148
|
+
const min64High = Math.fround(uniforms.min);
|
|
149
|
+
uniforms.min -= min64High;
|
|
150
|
+
uniforms.softMin -= min64High;
|
|
151
|
+
uniforms.min64High = min64High;
|
|
152
|
+
const max64High = Math.fround(uniforms.max);
|
|
153
|
+
uniforms.max -= max64High;
|
|
154
|
+
uniforms.softMax -= max64High;
|
|
155
|
+
uniforms.max64High = max64High;
|
|
125
156
|
}
|
|
126
157
|
else {
|
|
127
|
-
const min64High = uniforms.
|
|
128
|
-
uniforms.
|
|
129
|
-
uniforms.
|
|
130
|
-
uniforms.
|
|
131
|
-
const max64High = uniforms.
|
|
132
|
-
uniforms.
|
|
133
|
-
uniforms.
|
|
134
|
-
uniforms.
|
|
158
|
+
const min64High = uniforms.min.map(Math.fround);
|
|
159
|
+
uniforms.min = uniforms.min.map((x, i) => x - min64High[i]);
|
|
160
|
+
uniforms.softMin = uniforms.softMin.map((x, i) => x - min64High[i]);
|
|
161
|
+
uniforms.min64High = min64High;
|
|
162
|
+
const max64High = uniforms.max.map(Math.fround);
|
|
163
|
+
uniforms.max = uniforms.max.map((x, i) => x - max64High[i]);
|
|
164
|
+
uniforms.softMax = uniforms.softMax.map((x, i) => x - max64High[i]);
|
|
165
|
+
uniforms.max64High = max64High;
|
|
135
166
|
}
|
|
136
167
|
return uniforms;
|
|
137
168
|
}
|
|
138
169
|
const inject = {
|
|
139
|
-
'vs:#main-start': `
|
|
140
|
-
dataFilter_value = 1.0;
|
|
141
|
-
if (
|
|
142
|
-
#ifdef DATAFILTER_TYPE
|
|
143
|
-
#ifdef DATAFILTER_DOUBLE
|
|
144
|
-
dataFilter_setValue(
|
|
145
|
-
filterValues -
|
|
146
|
-
filterValues -
|
|
147
|
-
);
|
|
148
|
-
#else
|
|
149
|
-
dataFilter_setValue(filterValues, filterValues);
|
|
150
|
-
#endif
|
|
151
|
-
#endif
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
if (
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
170
|
+
'vs:#main-start': /* glsl */ `
|
|
171
|
+
dataFilter_value = 1.0;
|
|
172
|
+
if (dataFilter.enabled) {
|
|
173
|
+
#ifdef DATAFILTER_TYPE
|
|
174
|
+
#ifdef DATAFILTER_DOUBLE
|
|
175
|
+
dataFilter_setValue(
|
|
176
|
+
filterValues - dataFilter.min64High + filterValues64Low,
|
|
177
|
+
filterValues - dataFilter.max64High + filterValues64Low
|
|
178
|
+
);
|
|
179
|
+
#else
|
|
180
|
+
dataFilter_setValue(filterValues, filterValues);
|
|
181
|
+
#endif
|
|
182
|
+
#endif
|
|
183
|
+
|
|
184
|
+
#ifdef DATACATEGORY_TYPE
|
|
185
|
+
dataFilter_setCategoryValue(filterCategoryValues);
|
|
186
|
+
#endif
|
|
187
|
+
}
|
|
188
|
+
`,
|
|
189
|
+
'vs:#main-end': /* glsl */ `
|
|
190
|
+
if (dataFilter_value == 0.0) {
|
|
191
|
+
gl_Position = vec4(0.);
|
|
192
|
+
}
|
|
193
|
+
`,
|
|
194
|
+
'vs:DECKGL_FILTER_SIZE': /* glsl */ `
|
|
195
|
+
if (dataFilter.transformSize) {
|
|
196
|
+
size = size * dataFilter_value;
|
|
197
|
+
}
|
|
198
|
+
`,
|
|
199
|
+
'fs:DECKGL_FILTER_COLOR': /* glsl */ `
|
|
200
|
+
if (dataFilter_value == 0.0) discard;
|
|
201
|
+
if (dataFilter.transformColor) {
|
|
202
|
+
color.a *= dataFilter_value;
|
|
203
|
+
}
|
|
204
|
+
`
|
|
173
205
|
};
|
|
174
|
-
|
|
175
|
-
|
|
206
|
+
function uniformTypesFromOptions(opts) {
|
|
207
|
+
const { categorySize, filterSize, fp64 } = opts;
|
|
208
|
+
const uniformTypes = {
|
|
209
|
+
useSoftMargin: 'i32',
|
|
210
|
+
enabled: 'i32',
|
|
211
|
+
transformSize: 'i32',
|
|
212
|
+
transformColor: 'i32'
|
|
213
|
+
};
|
|
214
|
+
if (filterSize) {
|
|
215
|
+
const uniformFormat = filterSize === 1 ? 'f32' : `vec${filterSize}<f32>`;
|
|
216
|
+
uniformTypes.min = uniformFormat;
|
|
217
|
+
uniformTypes.softMin = uniformFormat;
|
|
218
|
+
uniformTypes.softMax = uniformFormat;
|
|
219
|
+
uniformTypes.max = uniformFormat;
|
|
220
|
+
if (fp64) {
|
|
221
|
+
uniformTypes.min64High = uniformFormat;
|
|
222
|
+
uniformTypes.max64High = uniformFormat;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
if (categorySize) {
|
|
226
|
+
uniformTypes.categoryBitMask = 'vec4<i32>';
|
|
227
|
+
}
|
|
228
|
+
return uniformTypes;
|
|
229
|
+
}
|
|
230
|
+
export const dataFilter = {
|
|
231
|
+
name: 'dataFilter',
|
|
176
232
|
vs,
|
|
177
233
|
fs,
|
|
178
234
|
inject,
|
|
179
|
-
getUniforms
|
|
235
|
+
getUniforms,
|
|
236
|
+
uniformTypesFromOptions
|
|
180
237
|
};
|
|
181
|
-
export const
|
|
182
|
-
name: '
|
|
238
|
+
export const dataFilter64 = {
|
|
239
|
+
name: 'dataFilter',
|
|
183
240
|
vs,
|
|
184
241
|
fs,
|
|
185
242
|
inject,
|
|
186
|
-
getUniforms: getUniforms64
|
|
243
|
+
getUniforms: getUniforms64,
|
|
244
|
+
uniformTypesFromOptions
|
|
187
245
|
};
|
|
246
|
+
//# sourceMappingURL=shader-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shader-module.js","sourceRoot":"","sources":["../../src/data-filter/shader-module.ts"],"names":[],"mappings":"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"}
|