@deck.gl/extensions 9.0.0-alpha.7 → 9.0.0-beta.10

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.
Files changed (265) hide show
  1. package/dist/brushing/brushing-extension.js +80 -0
  2. package/{typed → dist}/brushing/shader-module.d.ts +1 -1
  3. package/{typed → dist}/brushing/shader-module.d.ts.map +1 -1
  4. package/dist/brushing/shader-module.js +92 -0
  5. package/{typed → dist}/clip/clip-extension.d.ts.map +1 -1
  6. package/dist/clip/clip-extension.js +117 -0
  7. package/{typed → dist}/collision-filter/collision-filter-effect.d.ts.map +1 -1
  8. package/dist/collision-filter/collision-filter-effect.js +193 -0
  9. package/dist/collision-filter/collision-filter-extension.js +49 -0
  10. package/{typed → dist}/collision-filter/collision-filter-pass.d.ts +4 -2
  11. package/{typed → dist}/collision-filter/collision-filter-pass.d.ts.map +1 -1
  12. package/dist/collision-filter/collision-filter-pass.js +25 -0
  13. package/{typed → dist}/collision-filter/shader-module.d.ts.map +1 -1
  14. package/dist/collision-filter/shader-module.js +87 -0
  15. package/dist/data-filter/aggregator.d.ts.map +1 -0
  16. package/dist/{esm/data-filter → data-filter}/aggregator.js +40 -41
  17. package/{typed → dist}/data-filter/data-filter-extension.d.ts +38 -6
  18. package/dist/data-filter/data-filter-extension.d.ts.map +1 -0
  19. package/dist/data-filter/data-filter-extension.js +249 -0
  20. package/{typed → dist}/data-filter/shader-module.d.ts +1 -1
  21. package/dist/data-filter/shader-module.d.ts.map +1 -0
  22. package/dist/data-filter/shader-module.js +179 -0
  23. package/dist/dist.dev.js +2079 -10477
  24. package/{typed → dist}/fill-style/fill-style-extension.d.ts +2 -30
  25. package/dist/fill-style/fill-style-extension.d.ts.map +1 -0
  26. package/dist/fill-style/fill-style-extension.js +116 -0
  27. package/{typed/fill-style/shaders.glsl.d.ts → dist/fill-style/shader-module.d.ts} +1 -1
  28. package/dist/fill-style/shader-module.d.ts.map +1 -0
  29. package/dist/fill-style/shader-module.js +96 -0
  30. package/dist/fp64/fp64-extension.js +35 -0
  31. package/dist/fp64/project64.glsl.js +81 -0
  32. package/dist/fp64/project64.js +50 -0
  33. package/dist/index.cjs +2756 -0
  34. package/dist/index.cjs.map +7 -0
  35. package/dist/index.d.ts +19 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +11 -0
  38. package/{typed → dist}/mask/mask-effect.d.ts +1 -1
  39. package/dist/mask/mask-effect.d.ts.map +1 -0
  40. package/dist/mask/mask-effect.js +194 -0
  41. package/dist/mask/mask-extension.js +57 -0
  42. package/{typed → dist}/mask/mask-pass.d.ts.map +1 -1
  43. package/dist/mask/mask-pass.js +44 -0
  44. package/{typed → dist}/mask/shader-module.d.ts.map +1 -1
  45. package/dist/mask/shader-module.js +77 -0
  46. package/dist/path-style/path-style-extension.js +111 -0
  47. package/dist/path-style/shaders.glsl.js +86 -0
  48. package/{typed → dist}/terrain/height-map-builder.d.ts +1 -1
  49. package/dist/terrain/height-map-builder.d.ts.map +1 -0
  50. package/dist/terrain/height-map-builder.js +104 -0
  51. package/{typed → dist}/terrain/shader-module.d.ts +5 -3
  52. package/dist/terrain/shader-module.d.ts.map +1 -0
  53. package/dist/terrain/shader-module.js +137 -0
  54. package/{typed → dist}/terrain/terrain-cover.d.ts +1 -1
  55. package/dist/terrain/terrain-cover.d.ts.map +1 -0
  56. package/dist/terrain/terrain-cover.js +187 -0
  57. package/{typed → dist}/terrain/terrain-effect.d.ts +2 -2
  58. package/dist/terrain/terrain-effect.d.ts.map +1 -0
  59. package/dist/terrain/terrain-effect.js +184 -0
  60. package/dist/terrain/terrain-extension.js +44 -0
  61. package/{typed → dist}/terrain/terrain-pass.d.ts +2 -2
  62. package/dist/terrain/terrain-pass.d.ts.map +1 -0
  63. package/dist/terrain/terrain-pass.js +61 -0
  64. package/{typed → dist}/terrain/terrain-picking-pass.d.ts +1 -1
  65. package/dist/terrain/terrain-picking-pass.d.ts.map +1 -0
  66. package/dist/terrain/terrain-picking-pass.js +66 -0
  67. package/dist/terrain/utils.js +21 -0
  68. package/{typed → dist}/utils/debug.d.ts.map +1 -1
  69. package/dist/utils/debug.js +50 -0
  70. package/dist/utils/projection-utils.js +153 -0
  71. package/dist/utils/syntax-tags.d.ts +6 -0
  72. package/dist/utils/syntax-tags.d.ts.map +1 -0
  73. package/dist/utils/syntax-tags.js +5 -0
  74. package/dist.min.js +898 -1257
  75. package/package.json +19 -16
  76. package/src/brushing/shader-module.ts +4 -3
  77. package/src/clip/clip-extension.ts +10 -9
  78. package/src/collision-filter/collision-filter-effect.ts +12 -8
  79. package/src/collision-filter/collision-filter-pass.ts +5 -5
  80. package/src/collision-filter/shader-module.ts +6 -4
  81. package/src/data-filter/aggregator.ts +8 -13
  82. package/src/data-filter/data-filter-extension.ts +147 -30
  83. package/src/data-filter/shader-module.ts +38 -9
  84. package/src/fill-style/fill-style-extension.ts +4 -5
  85. package/src/fill-style/{shaders.glsl.ts → shader-module.ts} +6 -5
  86. package/src/mask/mask-effect.ts +0 -1
  87. package/src/mask/mask-pass.ts +1 -3
  88. package/src/mask/shader-module.ts +7 -6
  89. package/src/terrain/shader-module.ts +16 -15
  90. package/src/terrain/terrain-effect.ts +12 -5
  91. package/src/terrain/terrain-pass.ts +2 -5
  92. package/src/terrain/terrain-picking-pass.ts +1 -3
  93. package/src/terrain/utils.ts +1 -1
  94. package/src/utils/debug.ts +1 -2
  95. package/src/utils/syntax-tags.ts +5 -0
  96. package/dist/es5/brushing/brushing-extension.js +0 -108
  97. package/dist/es5/brushing/brushing-extension.js.map +0 -1
  98. package/dist/es5/brushing/shader-module.js +0 -50
  99. package/dist/es5/brushing/shader-module.js.map +0 -1
  100. package/dist/es5/clip/clip-extension.js +0 -98
  101. package/dist/es5/clip/clip-extension.js.map +0 -1
  102. package/dist/es5/collision-filter/collision-filter-effect.js +0 -294
  103. package/dist/es5/collision-filter/collision-filter-effect.js.map +0 -1
  104. package/dist/es5/collision-filter/collision-filter-extension.js +0 -109
  105. package/dist/es5/collision-filter/collision-filter-extension.js.map +0 -1
  106. package/dist/es5/collision-filter/collision-filter-pass.js +0 -77
  107. package/dist/es5/collision-filter/collision-filter-pass.js.map +0 -1
  108. package/dist/es5/collision-filter/shader-module.js +0 -39
  109. package/dist/es5/collision-filter/shader-module.js.map +0 -1
  110. package/dist/es5/data-filter/aggregator.js +0 -79
  111. package/dist/es5/data-filter/aggregator.js.map +0 -1
  112. package/dist/es5/data-filter/data-filter-extension.js +0 -236
  113. package/dist/es5/data-filter/data-filter-extension.js.map +0 -1
  114. package/dist/es5/data-filter/shader-module.js +0 -122
  115. package/dist/es5/data-filter/shader-module.js.map +0 -1
  116. package/dist/es5/fill-style/fill-style-extension.js +0 -190
  117. package/dist/es5/fill-style/fill-style-extension.js.map +0 -1
  118. package/dist/es5/fill-style/shaders.glsl.js +0 -59
  119. package/dist/es5/fill-style/shaders.glsl.js.map +0 -1
  120. package/dist/es5/fp64/fp64-extension.js +0 -55
  121. package/dist/es5/fp64/fp64-extension.js.map +0 -1
  122. package/dist/es5/fp64/project64.glsl.js +0 -9
  123. package/dist/es5/fp64/project64.glsl.js.map +0 -1
  124. package/dist/es5/fp64/project64.js +0 -52
  125. package/dist/es5/fp64/project64.js.map +0 -1
  126. package/dist/es5/index.js +0 -88
  127. package/dist/es5/index.js.map +0 -1
  128. package/dist/es5/mask/mask-effect.js +0 -279
  129. package/dist/es5/mask/mask-effect.js.map +0 -1
  130. package/dist/es5/mask/mask-extension.js +0 -113
  131. package/dist/es5/mask/mask-extension.js.map +0 -1
  132. package/dist/es5/mask/mask-pass.js +0 -106
  133. package/dist/es5/mask/mask-pass.js.map +0 -1
  134. package/dist/es5/mask/shader-module.js +0 -38
  135. package/dist/es5/mask/shader-module.js.map +0 -1
  136. package/dist/es5/path-style/path-style-extension.js +0 -169
  137. package/dist/es5/path-style/path-style-extension.js.map +0 -1
  138. package/dist/es5/path-style/shaders.glsl.js +0 -25
  139. package/dist/es5/path-style/shaders.glsl.js.map +0 -1
  140. package/dist/es5/terrain/height-map-builder.js +0 -111
  141. package/dist/es5/terrain/height-map-builder.js.map +0 -1
  142. package/dist/es5/terrain/shader-module.js +0 -84
  143. package/dist/es5/terrain/shader-module.js.map +0 -1
  144. package/dist/es5/terrain/terrain-cover.js +0 -256
  145. package/dist/es5/terrain/terrain-cover.js.map +0 -1
  146. package/dist/es5/terrain/terrain-effect.js +0 -326
  147. package/dist/es5/terrain/terrain-effect.js.map +0 -1
  148. package/dist/es5/terrain/terrain-extension.js +0 -94
  149. package/dist/es5/terrain/terrain-extension.js.map +0 -1
  150. package/dist/es5/terrain/terrain-pass.js +0 -121
  151. package/dist/es5/terrain/terrain-pass.js.map +0 -1
  152. package/dist/es5/terrain/terrain-picking-pass.js +0 -124
  153. package/dist/es5/terrain/terrain-picking-pass.js.map +0 -1
  154. package/dist/es5/terrain/utils.js +0 -35
  155. package/dist/es5/terrain/utils.js.map +0 -1
  156. package/dist/es5/utils/debug.js +0 -71
  157. package/dist/es5/utils/debug.js.map +0 -1
  158. package/dist/es5/utils/projection-utils.js +0 -168
  159. package/dist/es5/utils/projection-utils.js.map +0 -1
  160. package/dist/esm/brushing/brushing-extension.js +0 -68
  161. package/dist/esm/brushing/brushing-extension.js.map +0 -1
  162. package/dist/esm/brushing/shader-module.js +0 -103
  163. package/dist/esm/brushing/shader-module.js.map +0 -1
  164. package/dist/esm/clip/clip-extension.js +0 -86
  165. package/dist/esm/clip/clip-extension.js.map +0 -1
  166. package/dist/esm/collision-filter/collision-filter-effect.js +0 -246
  167. package/dist/esm/collision-filter/collision-filter-effect.js.map +0 -1
  168. package/dist/esm/collision-filter/collision-filter-extension.js +0 -75
  169. package/dist/esm/collision-filter/collision-filter-extension.js.map +0 -1
  170. package/dist/esm/collision-filter/collision-filter-pass.js +0 -30
  171. package/dist/esm/collision-filter/collision-filter-pass.js.map +0 -1
  172. package/dist/esm/collision-filter/shader-module.js +0 -104
  173. package/dist/esm/collision-filter/shader-module.js.map +0 -1
  174. package/dist/esm/data-filter/aggregator.js.map +0 -1
  175. package/dist/esm/data-filter/data-filter-extension.js +0 -189
  176. package/dist/esm/data-filter/data-filter-extension.js.map +0 -1
  177. package/dist/esm/data-filter/shader-module.js +0 -164
  178. package/dist/esm/data-filter/shader-module.js.map +0 -1
  179. package/dist/esm/fill-style/fill-style-extension.js +0 -156
  180. package/dist/esm/fill-style/fill-style-extension.js.map +0 -1
  181. package/dist/esm/fill-style/shaders.glsl.js +0 -108
  182. package/dist/esm/fill-style/shaders.glsl.js.map +0 -1
  183. package/dist/esm/fp64/fp64-extension.js +0 -20
  184. package/dist/esm/fp64/fp64-extension.js.map +0 -1
  185. package/dist/esm/fp64/project64.glsl.js +0 -82
  186. package/dist/esm/fp64/project64.glsl.js.map +0 -1
  187. package/dist/esm/fp64/project64.js +0 -43
  188. package/dist/esm/fp64/project64.js.map +0 -1
  189. package/dist/esm/index.js +0 -11
  190. package/dist/esm/index.js.map +0 -1
  191. package/dist/esm/mask/mask-effect.js +0 -228
  192. package/dist/esm/mask/mask-effect.js.map +0 -1
  193. package/dist/esm/mask/mask-extension.js +0 -83
  194. package/dist/esm/mask/mask-extension.js.map +0 -1
  195. package/dist/esm/mask/mask-pass.js +0 -58
  196. package/dist/esm/mask/mask-pass.js.map +0 -1
  197. package/dist/esm/mask/shader-module.js +0 -84
  198. package/dist/esm/mask/shader-module.js.map +0 -1
  199. package/dist/esm/path-style/path-style-extension.js +0 -130
  200. package/dist/esm/path-style/path-style-extension.js.map +0 -1
  201. package/dist/esm/path-style/shaders.glsl.js +0 -84
  202. package/dist/esm/path-style/shaders.glsl.js.map +0 -1
  203. package/dist/esm/terrain/height-map-builder.js +0 -86
  204. package/dist/esm/terrain/height-map-builder.js.map +0 -1
  205. package/dist/esm/terrain/shader-module.js +0 -125
  206. package/dist/esm/terrain/shader-module.js.map +0 -1
  207. package/dist/esm/terrain/terrain-cover.js +0 -212
  208. package/dist/esm/terrain/terrain-cover.js.map +0 -1
  209. package/dist/esm/terrain/terrain-effect.js +0 -219
  210. package/dist/esm/terrain/terrain-effect.js.map +0 -1
  211. package/dist/esm/terrain/terrain-extension.js +0 -59
  212. package/dist/esm/terrain/terrain-extension.js.map +0 -1
  213. package/dist/esm/terrain/terrain-pass.js +0 -71
  214. package/dist/esm/terrain/terrain-pass.js.map +0 -1
  215. package/dist/esm/terrain/terrain-picking-pass.js +0 -73
  216. package/dist/esm/terrain/terrain-picking-pass.js.map +0 -1
  217. package/dist/esm/terrain/utils.js +0 -19
  218. package/dist/esm/terrain/utils.js.map +0 -1
  219. package/dist/esm/utils/debug.js +0 -61
  220. package/dist/esm/utils/debug.js.map +0 -1
  221. package/dist/esm/utils/projection-utils.js +0 -134
  222. package/dist/esm/utils/projection-utils.js.map +0 -1
  223. package/typed/data-filter/aggregator.d.ts.map +0 -1
  224. package/typed/data-filter/data-filter-extension.d.ts.map +0 -1
  225. package/typed/data-filter/shader-module.d.ts.map +0 -1
  226. package/typed/fill-style/fill-style-extension.d.ts.map +0 -1
  227. package/typed/fill-style/shaders.glsl.d.ts.map +0 -1
  228. package/typed/index.d.ts +0 -19
  229. package/typed/index.d.ts.map +0 -1
  230. package/typed/mask/mask-effect.d.ts.map +0 -1
  231. package/typed/terrain/height-map-builder.d.ts.map +0 -1
  232. package/typed/terrain/shader-module.d.ts.map +0 -1
  233. package/typed/terrain/terrain-cover.d.ts.map +0 -1
  234. package/typed/terrain/terrain-effect.d.ts.map +0 -1
  235. package/typed/terrain/terrain-pass.d.ts.map +0 -1
  236. package/typed/terrain/terrain-picking-pass.d.ts.map +0 -1
  237. /package/{typed → dist}/brushing/brushing-extension.d.ts +0 -0
  238. /package/{typed → dist}/brushing/brushing-extension.d.ts.map +0 -0
  239. /package/{typed → dist}/clip/clip-extension.d.ts +0 -0
  240. /package/{typed → dist}/collision-filter/collision-filter-effect.d.ts +0 -0
  241. /package/{typed → dist}/collision-filter/collision-filter-extension.d.ts +0 -0
  242. /package/{typed → dist}/collision-filter/collision-filter-extension.d.ts.map +0 -0
  243. /package/{typed → dist}/collision-filter/shader-module.d.ts +0 -0
  244. /package/{typed → dist}/data-filter/aggregator.d.ts +0 -0
  245. /package/{typed → dist}/fp64/fp64-extension.d.ts +0 -0
  246. /package/{typed → dist}/fp64/fp64-extension.d.ts.map +0 -0
  247. /package/{typed → dist}/fp64/project64.d.ts +0 -0
  248. /package/{typed → dist}/fp64/project64.d.ts.map +0 -0
  249. /package/{typed → dist}/fp64/project64.glsl.d.ts +0 -0
  250. /package/{typed → dist}/fp64/project64.glsl.d.ts.map +0 -0
  251. /package/{typed → dist}/mask/mask-extension.d.ts +0 -0
  252. /package/{typed → dist}/mask/mask-extension.d.ts.map +0 -0
  253. /package/{typed → dist}/mask/mask-pass.d.ts +0 -0
  254. /package/{typed → dist}/mask/shader-module.d.ts +0 -0
  255. /package/{typed → dist}/path-style/path-style-extension.d.ts +0 -0
  256. /package/{typed → dist}/path-style/path-style-extension.d.ts.map +0 -0
  257. /package/{typed → dist}/path-style/shaders.glsl.d.ts +0 -0
  258. /package/{typed → dist}/path-style/shaders.glsl.d.ts.map +0 -0
  259. /package/{typed → dist}/terrain/terrain-extension.d.ts +0 -0
  260. /package/{typed → dist}/terrain/terrain-extension.d.ts.map +0 -0
  261. /package/{typed → dist}/terrain/utils.d.ts +0 -0
  262. /package/{typed → dist}/terrain/utils.d.ts.map +0 -0
  263. /package/{typed → dist}/utils/debug.d.ts +0 -0
  264. /package/{typed → dist}/utils/projection-utils.d.ts +0 -0
  265. /package/{typed → dist}/utils/projection-utils.d.ts.map +0 -0
@@ -0,0 +1,179 @@
1
+ import { glsl } from "../utils/syntax-tags.js";
2
+ /*
3
+ * data filter shader module
4
+ */
5
+ const vs = `
6
+ uniform DATAFILTER_TYPE filter_min;
7
+ uniform DATAFILTER_TYPE filter_softMin;
8
+ uniform DATAFILTER_TYPE filter_softMax;
9
+ uniform DATAFILTER_TYPE filter_max;
10
+ uniform bool filter_useSoftMargin;
11
+ uniform bool filter_enabled;
12
+ uniform bool filter_transformSize;
13
+ uniform ivec4 filter_categoryBitMask;
14
+ #ifdef NON_INSTANCED_MODEL
15
+ #define DATAFILTER_ATTRIB filterValues
16
+ #define DATAFILTER_ATTRIB_64LOW filterValues64Low
17
+ #define DATACATEGORY_ATTRIB filterCategoryValues
18
+ #else
19
+ #define DATAFILTER_ATTRIB instanceFilterValues
20
+ #define DATAFILTER_ATTRIB_64LOW instanceFilterValues64Low
21
+ #define DATACATEGORY_ATTRIB instanceFilterCategoryValues
22
+ #endif
23
+ in DATAFILTER_TYPE DATAFILTER_ATTRIB;
24
+ #ifdef DATAFILTER_DOUBLE
25
+ in DATAFILTER_TYPE DATAFILTER_ATTRIB_64LOW;
26
+ uniform DATAFILTER_TYPE filter_min64High;
27
+ uniform DATAFILTER_TYPE filter_max64High;
28
+ #endif
29
+ in DATACATEGORY_TYPE DATACATEGORY_ATTRIB;
30
+ out float dataFilter_value;
31
+ float dataFilter_reduceValue(float value) {
32
+ return value;
33
+ }
34
+ float dataFilter_reduceValue(vec2 value) {
35
+ return min(value.x, value.y);
36
+ }
37
+ float dataFilter_reduceValue(vec3 value) {
38
+ return min(min(value.x, value.y), value.z);
39
+ }
40
+ float dataFilter_reduceValue(vec4 value) {
41
+ return min(min(value.x, value.y), min(value.z, value.w));
42
+ }
43
+ void dataFilter_setValue(DATAFILTER_TYPE valueFromMin, DATAFILTER_TYPE valueFromMax, DATACATEGORY_TYPE category) {
44
+ if (filter_enabled) {
45
+ if (filter_useSoftMargin) {
46
+ dataFilter_value = dataFilter_reduceValue(
47
+ smoothstep(filter_min, filter_softMin, valueFromMin) *
48
+ (1.0 - smoothstep(filter_softMax, filter_max, valueFromMax))
49
+ );
50
+ } else {
51
+ dataFilter_value = dataFilter_reduceValue(
52
+ step(filter_min, valueFromMin) * step(valueFromMax, filter_max)
53
+ );
54
+ }
55
+ #if DATACATEGORY_CHANNELS == 1
56
+ int dataFilter_masks = filter_categoryBitMask[int(category / 32.0)];
57
+ #elif DATACATEGORY_CHANNELS == 2
58
+ ivec2 dataFilter_masks = ivec2(
59
+ filter_categoryBitMask[int(category.x / 32.0)],
60
+ filter_categoryBitMask[int(category.y / 32.0) + 2]
61
+ );
62
+ #elif DATACATEGORY_CHANNELS == 3
63
+ ivec3 dataFilter_masks = filter_categoryBitMask.xyz;
64
+ #else
65
+ ivec4 dataFilter_masks = filter_categoryBitMask;
66
+ #endif
67
+ DATACATEGORY_TYPE dataFilter_bits = DATACATEGORY_TYPE(dataFilter_masks) / pow(DATACATEGORY_TYPE(2.0), mod(category, 32.0));
68
+ dataFilter_bits = mod(floor(dataFilter_bits), 2.0);
69
+ #if DATACATEGORY_CHANNELS == 1
70
+ if(dataFilter_bits == 0.0) dataFilter_value = 0.0;
71
+ #else
72
+ if(any(equal(dataFilter_bits, DATACATEGORY_TYPE(0.0)))) dataFilter_value = 0.0;
73
+ #endif
74
+ } else {
75
+ dataFilter_value = 1.0;
76
+ }
77
+ }
78
+ `;
79
+ const fs = `
80
+ uniform bool filter_transformColor;
81
+ in float dataFilter_value;
82
+ `;
83
+ /* eslint-disable camelcase */
84
+ function getUniforms(opts) {
85
+ if (!opts || !('extensions' in opts)) {
86
+ return {};
87
+ }
88
+ const { filterRange = [-1, 1], filterEnabled = true, filterTransformSize = true, filterTransformColor = true } = opts;
89
+ const filterSoftRange = opts.filterSoftRange || filterRange;
90
+ return {
91
+ ...(Number.isFinite(filterRange[0])
92
+ ? {
93
+ filter_min: filterRange[0],
94
+ filter_softMin: filterSoftRange[0],
95
+ filter_softMax: filterSoftRange[1],
96
+ filter_max: filterRange[1]
97
+ }
98
+ : {
99
+ filter_min: filterRange.map(r => r[0]),
100
+ filter_softMin: filterSoftRange.map(r => r[0]),
101
+ filter_softMax: filterSoftRange.map(r => r[1]),
102
+ filter_max: filterRange.map(r => r[1])
103
+ }),
104
+ filter_enabled: filterEnabled,
105
+ filter_useSoftMargin: Boolean(opts.filterSoftRange),
106
+ filter_transformSize: filterEnabled && filterTransformSize,
107
+ filter_transformColor: filterEnabled && filterTransformColor
108
+ };
109
+ }
110
+ function getUniforms64(opts) {
111
+ if (!opts || !('extensions' in opts)) {
112
+ return {};
113
+ }
114
+ const uniforms = getUniforms(opts);
115
+ if (Number.isFinite(uniforms.filter_min)) {
116
+ const min64High = Math.fround(uniforms.filter_min);
117
+ uniforms.filter_min -= min64High;
118
+ uniforms.filter_softMin -= min64High;
119
+ uniforms.filter_min64High = min64High;
120
+ const max64High = Math.fround(uniforms.filter_max);
121
+ uniforms.filter_max -= max64High;
122
+ uniforms.filter_softMax -= max64High;
123
+ uniforms.filter_max64High = max64High;
124
+ }
125
+ else {
126
+ const min64High = uniforms.filter_min.map(Math.fround);
127
+ uniforms.filter_min = uniforms.filter_min.map((x, i) => x - min64High[i]);
128
+ uniforms.filter_softMin = uniforms.filter_softMin.map((x, i) => x - min64High[i]);
129
+ uniforms.filter_min64High = min64High;
130
+ const max64High = uniforms.filter_max.map(Math.fround);
131
+ uniforms.filter_max = uniforms.filter_max.map((x, i) => x - max64High[i]);
132
+ uniforms.filter_softMax = uniforms.filter_softMax.map((x, i) => x - max64High[i]);
133
+ uniforms.filter_max64High = max64High;
134
+ }
135
+ return uniforms;
136
+ }
137
+ const inject = {
138
+ 'vs:#main-start': `
139
+ #ifdef DATAFILTER_DOUBLE
140
+ dataFilter_setValue(
141
+ DATAFILTER_ATTRIB - filter_min64High + DATAFILTER_ATTRIB_64LOW,
142
+ DATAFILTER_ATTRIB - filter_max64High + DATAFILTER_ATTRIB_64LOW,
143
+ DATACATEGORY_ATTRIB
144
+ );
145
+ #else
146
+ dataFilter_setValue(DATAFILTER_ATTRIB, DATAFILTER_ATTRIB, DATACATEGORY_ATTRIB);
147
+ #endif
148
+ `,
149
+ 'vs:#main-end': `
150
+ if (dataFilter_value == 0.0) {
151
+ gl_Position = vec4(0.);
152
+ }
153
+ `,
154
+ 'vs:DECKGL_FILTER_SIZE': `
155
+ if (filter_transformSize) {
156
+ size = size * dataFilter_value;
157
+ }
158
+ `,
159
+ 'fs:DECKGL_FILTER_COLOR': `
160
+ if (dataFilter_value == 0.0) discard;
161
+ if (filter_transformColor) {
162
+ color.a *= dataFilter_value;
163
+ }
164
+ `
165
+ };
166
+ export const shaderModule = {
167
+ name: 'data-filter',
168
+ vs,
169
+ fs,
170
+ inject,
171
+ getUniforms
172
+ };
173
+ export const shaderModule64 = {
174
+ name: 'data-filter-fp64',
175
+ vs,
176
+ fs,
177
+ inject,
178
+ getUniforms: getUniforms64
179
+ };