@deck.gl/extensions 9.0.0-beta.1 → 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.map +1 -1
  11. package/dist/collision-filter/collision-filter-pass.js +25 -0
  12. package/{typed → dist}/collision-filter/shader-module.d.ts.map +1 -1
  13. package/dist/collision-filter/shader-module.js +87 -0
  14. package/dist/data-filter/aggregator.d.ts.map +1 -0
  15. package/dist/{esm/data-filter → data-filter}/aggregator.js +40 -41
  16. package/{typed → dist}/data-filter/data-filter-extension.d.ts +38 -6
  17. package/dist/data-filter/data-filter-extension.d.ts.map +1 -0
  18. package/dist/data-filter/data-filter-extension.js +249 -0
  19. package/{typed → dist}/data-filter/shader-module.d.ts +1 -1
  20. package/dist/data-filter/shader-module.d.ts.map +1 -0
  21. package/dist/data-filter/shader-module.js +179 -0
  22. package/dist/dist.dev.js +2203 -10630
  23. package/{typed → dist}/fill-style/fill-style-extension.d.ts +2 -30
  24. package/dist/fill-style/fill-style-extension.d.ts.map +1 -0
  25. package/dist/fill-style/fill-style-extension.js +116 -0
  26. package/{typed/fill-style/shaders.glsl.d.ts → dist/fill-style/shader-module.d.ts} +1 -1
  27. package/dist/fill-style/shader-module.d.ts.map +1 -0
  28. package/dist/fill-style/shader-module.js +96 -0
  29. package/dist/fp64/fp64-extension.js +35 -0
  30. package/dist/fp64/project64.glsl.js +81 -0
  31. package/dist/fp64/project64.js +50 -0
  32. package/dist/index.cjs +2756 -0
  33. package/dist/index.cjs.map +7 -0
  34. package/dist/index.d.ts +19 -0
  35. package/dist/index.d.ts.map +1 -0
  36. package/dist/index.js +11 -0
  37. package/{typed → dist}/mask/mask-effect.d.ts +1 -1
  38. package/dist/mask/mask-effect.d.ts.map +1 -0
  39. package/dist/mask/mask-effect.js +194 -0
  40. package/dist/mask/mask-extension.js +57 -0
  41. package/{typed → dist}/mask/mask-pass.d.ts.map +1 -1
  42. package/dist/mask/mask-pass.js +44 -0
  43. package/{typed → dist}/mask/shader-module.d.ts.map +1 -1
  44. package/dist/mask/shader-module.js +77 -0
  45. package/dist/path-style/path-style-extension.js +111 -0
  46. package/dist/path-style/shaders.glsl.js +86 -0
  47. package/{typed → dist}/terrain/height-map-builder.d.ts +1 -1
  48. package/dist/terrain/height-map-builder.d.ts.map +1 -0
  49. package/dist/terrain/height-map-builder.js +104 -0
  50. package/{typed → dist}/terrain/shader-module.d.ts +2 -2
  51. package/dist/terrain/shader-module.d.ts.map +1 -0
  52. package/dist/terrain/shader-module.js +137 -0
  53. package/{typed → dist}/terrain/terrain-cover.d.ts +1 -1
  54. package/dist/terrain/terrain-cover.d.ts.map +1 -0
  55. package/dist/terrain/terrain-cover.js +187 -0
  56. package/{typed → dist}/terrain/terrain-effect.d.ts +2 -2
  57. package/dist/terrain/terrain-effect.d.ts.map +1 -0
  58. package/dist/terrain/terrain-effect.js +184 -0
  59. package/dist/terrain/terrain-extension.js +44 -0
  60. package/{typed → dist}/terrain/terrain-pass.d.ts +2 -2
  61. package/dist/terrain/terrain-pass.d.ts.map +1 -0
  62. package/dist/terrain/terrain-pass.js +61 -0
  63. package/{typed → dist}/terrain/terrain-picking-pass.d.ts +1 -1
  64. package/dist/terrain/terrain-picking-pass.d.ts.map +1 -0
  65. package/dist/terrain/terrain-picking-pass.js +66 -0
  66. package/dist/terrain/utils.js +21 -0
  67. package/{typed → dist}/utils/debug.d.ts.map +1 -1
  68. package/dist/utils/debug.js +50 -0
  69. package/dist/utils/projection-utils.js +153 -0
  70. package/dist/utils/syntax-tags.d.ts +6 -0
  71. package/dist/utils/syntax-tags.d.ts.map +1 -0
  72. package/dist/utils/syntax-tags.js +5 -0
  73. package/dist.min.js +898 -1257
  74. package/package.json +19 -16
  75. package/src/brushing/shader-module.ts +4 -3
  76. package/src/clip/clip-extension.ts +10 -9
  77. package/src/collision-filter/collision-filter-effect.ts +12 -8
  78. package/src/collision-filter/collision-filter-pass.ts +1 -3
  79. package/src/collision-filter/shader-module.ts +6 -4
  80. package/src/data-filter/aggregator.ts +8 -13
  81. package/src/data-filter/data-filter-extension.ts +147 -30
  82. package/src/data-filter/shader-module.ts +38 -9
  83. package/src/fill-style/fill-style-extension.ts +4 -5
  84. package/src/fill-style/{shaders.glsl.ts → shader-module.ts} +6 -5
  85. package/src/mask/mask-effect.ts +0 -1
  86. package/src/mask/mask-pass.ts +1 -3
  87. package/src/mask/shader-module.ts +7 -6
  88. package/src/terrain/shader-module.ts +14 -13
  89. package/src/terrain/terrain-effect.ts +12 -5
  90. package/src/terrain/terrain-pass.ts +2 -5
  91. package/src/terrain/terrain-picking-pass.ts +1 -3
  92. package/src/terrain/utils.ts +1 -1
  93. package/src/utils/debug.ts +1 -2
  94. package/src/utils/syntax-tags.ts +5 -0
  95. package/dist/es5/brushing/brushing-extension.js +0 -108
  96. package/dist/es5/brushing/brushing-extension.js.map +0 -1
  97. package/dist/es5/brushing/shader-module.js +0 -50
  98. package/dist/es5/brushing/shader-module.js.map +0 -1
  99. package/dist/es5/clip/clip-extension.js +0 -98
  100. package/dist/es5/clip/clip-extension.js.map +0 -1
  101. package/dist/es5/collision-filter/collision-filter-effect.js +0 -294
  102. package/dist/es5/collision-filter/collision-filter-effect.js.map +0 -1
  103. package/dist/es5/collision-filter/collision-filter-extension.js +0 -109
  104. package/dist/es5/collision-filter/collision-filter-extension.js.map +0 -1
  105. package/dist/es5/collision-filter/collision-filter-pass.js +0 -79
  106. package/dist/es5/collision-filter/collision-filter-pass.js.map +0 -1
  107. package/dist/es5/collision-filter/shader-module.js +0 -39
  108. package/dist/es5/collision-filter/shader-module.js.map +0 -1
  109. package/dist/es5/data-filter/aggregator.js +0 -79
  110. package/dist/es5/data-filter/aggregator.js.map +0 -1
  111. package/dist/es5/data-filter/data-filter-extension.js +0 -236
  112. package/dist/es5/data-filter/data-filter-extension.js.map +0 -1
  113. package/dist/es5/data-filter/shader-module.js +0 -122
  114. package/dist/es5/data-filter/shader-module.js.map +0 -1
  115. package/dist/es5/fill-style/fill-style-extension.js +0 -190
  116. package/dist/es5/fill-style/fill-style-extension.js.map +0 -1
  117. package/dist/es5/fill-style/shaders.glsl.js +0 -59
  118. package/dist/es5/fill-style/shaders.glsl.js.map +0 -1
  119. package/dist/es5/fp64/fp64-extension.js +0 -55
  120. package/dist/es5/fp64/fp64-extension.js.map +0 -1
  121. package/dist/es5/fp64/project64.glsl.js +0 -9
  122. package/dist/es5/fp64/project64.glsl.js.map +0 -1
  123. package/dist/es5/fp64/project64.js +0 -52
  124. package/dist/es5/fp64/project64.js.map +0 -1
  125. package/dist/es5/index.js +0 -88
  126. package/dist/es5/index.js.map +0 -1
  127. package/dist/es5/mask/mask-effect.js +0 -279
  128. package/dist/es5/mask/mask-effect.js.map +0 -1
  129. package/dist/es5/mask/mask-extension.js +0 -113
  130. package/dist/es5/mask/mask-extension.js.map +0 -1
  131. package/dist/es5/mask/mask-pass.js +0 -106
  132. package/dist/es5/mask/mask-pass.js.map +0 -1
  133. package/dist/es5/mask/shader-module.js +0 -38
  134. package/dist/es5/mask/shader-module.js.map +0 -1
  135. package/dist/es5/path-style/path-style-extension.js +0 -169
  136. package/dist/es5/path-style/path-style-extension.js.map +0 -1
  137. package/dist/es5/path-style/shaders.glsl.js +0 -25
  138. package/dist/es5/path-style/shaders.glsl.js.map +0 -1
  139. package/dist/es5/terrain/height-map-builder.js +0 -111
  140. package/dist/es5/terrain/height-map-builder.js.map +0 -1
  141. package/dist/es5/terrain/shader-module.js +0 -86
  142. package/dist/es5/terrain/shader-module.js.map +0 -1
  143. package/dist/es5/terrain/terrain-cover.js +0 -256
  144. package/dist/es5/terrain/terrain-cover.js.map +0 -1
  145. package/dist/es5/terrain/terrain-effect.js +0 -326
  146. package/dist/es5/terrain/terrain-effect.js.map +0 -1
  147. package/dist/es5/terrain/terrain-extension.js +0 -94
  148. package/dist/es5/terrain/terrain-extension.js.map +0 -1
  149. package/dist/es5/terrain/terrain-pass.js +0 -121
  150. package/dist/es5/terrain/terrain-pass.js.map +0 -1
  151. package/dist/es5/terrain/terrain-picking-pass.js +0 -124
  152. package/dist/es5/terrain/terrain-picking-pass.js.map +0 -1
  153. package/dist/es5/terrain/utils.js +0 -35
  154. package/dist/es5/terrain/utils.js.map +0 -1
  155. package/dist/es5/utils/debug.js +0 -71
  156. package/dist/es5/utils/debug.js.map +0 -1
  157. package/dist/es5/utils/projection-utils.js +0 -168
  158. package/dist/es5/utils/projection-utils.js.map +0 -1
  159. package/dist/esm/brushing/brushing-extension.js +0 -68
  160. package/dist/esm/brushing/brushing-extension.js.map +0 -1
  161. package/dist/esm/brushing/shader-module.js +0 -103
  162. package/dist/esm/brushing/shader-module.js.map +0 -1
  163. package/dist/esm/clip/clip-extension.js +0 -86
  164. package/dist/esm/clip/clip-extension.js.map +0 -1
  165. package/dist/esm/collision-filter/collision-filter-effect.js +0 -246
  166. package/dist/esm/collision-filter/collision-filter-effect.js.map +0 -1
  167. package/dist/esm/collision-filter/collision-filter-extension.js +0 -75
  168. package/dist/esm/collision-filter/collision-filter-extension.js.map +0 -1
  169. package/dist/esm/collision-filter/collision-filter-pass.js +0 -32
  170. package/dist/esm/collision-filter/collision-filter-pass.js.map +0 -1
  171. package/dist/esm/collision-filter/shader-module.js +0 -104
  172. package/dist/esm/collision-filter/shader-module.js.map +0 -1
  173. package/dist/esm/data-filter/aggregator.js.map +0 -1
  174. package/dist/esm/data-filter/data-filter-extension.js +0 -189
  175. package/dist/esm/data-filter/data-filter-extension.js.map +0 -1
  176. package/dist/esm/data-filter/shader-module.js +0 -164
  177. package/dist/esm/data-filter/shader-module.js.map +0 -1
  178. package/dist/esm/fill-style/fill-style-extension.js +0 -156
  179. package/dist/esm/fill-style/fill-style-extension.js.map +0 -1
  180. package/dist/esm/fill-style/shaders.glsl.js +0 -108
  181. package/dist/esm/fill-style/shaders.glsl.js.map +0 -1
  182. package/dist/esm/fp64/fp64-extension.js +0 -20
  183. package/dist/esm/fp64/fp64-extension.js.map +0 -1
  184. package/dist/esm/fp64/project64.glsl.js +0 -82
  185. package/dist/esm/fp64/project64.glsl.js.map +0 -1
  186. package/dist/esm/fp64/project64.js +0 -43
  187. package/dist/esm/fp64/project64.js.map +0 -1
  188. package/dist/esm/index.js +0 -11
  189. package/dist/esm/index.js.map +0 -1
  190. package/dist/esm/mask/mask-effect.js +0 -228
  191. package/dist/esm/mask/mask-effect.js.map +0 -1
  192. package/dist/esm/mask/mask-extension.js +0 -83
  193. package/dist/esm/mask/mask-extension.js.map +0 -1
  194. package/dist/esm/mask/mask-pass.js +0 -58
  195. package/dist/esm/mask/mask-pass.js.map +0 -1
  196. package/dist/esm/mask/shader-module.js +0 -84
  197. package/dist/esm/mask/shader-module.js.map +0 -1
  198. package/dist/esm/path-style/path-style-extension.js +0 -130
  199. package/dist/esm/path-style/path-style-extension.js.map +0 -1
  200. package/dist/esm/path-style/shaders.glsl.js +0 -84
  201. package/dist/esm/path-style/shaders.glsl.js.map +0 -1
  202. package/dist/esm/terrain/height-map-builder.js +0 -86
  203. package/dist/esm/terrain/height-map-builder.js.map +0 -1
  204. package/dist/esm/terrain/shader-module.js +0 -127
  205. package/dist/esm/terrain/shader-module.js.map +0 -1
  206. package/dist/esm/terrain/terrain-cover.js +0 -212
  207. package/dist/esm/terrain/terrain-cover.js.map +0 -1
  208. package/dist/esm/terrain/terrain-effect.js +0 -219
  209. package/dist/esm/terrain/terrain-effect.js.map +0 -1
  210. package/dist/esm/terrain/terrain-extension.js +0 -59
  211. package/dist/esm/terrain/terrain-extension.js.map +0 -1
  212. package/dist/esm/terrain/terrain-pass.js +0 -71
  213. package/dist/esm/terrain/terrain-pass.js.map +0 -1
  214. package/dist/esm/terrain/terrain-picking-pass.js +0 -73
  215. package/dist/esm/terrain/terrain-picking-pass.js.map +0 -1
  216. package/dist/esm/terrain/utils.js +0 -19
  217. package/dist/esm/terrain/utils.js.map +0 -1
  218. package/dist/esm/utils/debug.js +0 -61
  219. package/dist/esm/utils/debug.js.map +0 -1
  220. package/dist/esm/utils/projection-utils.js +0 -134
  221. package/dist/esm/utils/projection-utils.js.map +0 -1
  222. package/typed/data-filter/aggregator.d.ts.map +0 -1
  223. package/typed/data-filter/data-filter-extension.d.ts.map +0 -1
  224. package/typed/data-filter/shader-module.d.ts.map +0 -1
  225. package/typed/fill-style/fill-style-extension.d.ts.map +0 -1
  226. package/typed/fill-style/shaders.glsl.d.ts.map +0 -1
  227. package/typed/index.d.ts +0 -19
  228. package/typed/index.d.ts.map +0 -1
  229. package/typed/mask/mask-effect.d.ts.map +0 -1
  230. package/typed/terrain/height-map-builder.d.ts.map +0 -1
  231. package/typed/terrain/shader-module.d.ts.map +0 -1
  232. package/typed/terrain/terrain-cover.d.ts.map +0 -1
  233. package/typed/terrain/terrain-effect.d.ts.map +0 -1
  234. package/typed/terrain/terrain-pass.d.ts.map +0 -1
  235. package/typed/terrain/terrain-picking-pass.d.ts.map +0 -1
  236. /package/{typed → dist}/brushing/brushing-extension.d.ts +0 -0
  237. /package/{typed → dist}/brushing/brushing-extension.d.ts.map +0 -0
  238. /package/{typed → dist}/clip/clip-extension.d.ts +0 -0
  239. /package/{typed → dist}/collision-filter/collision-filter-effect.d.ts +0 -0
  240. /package/{typed → dist}/collision-filter/collision-filter-extension.d.ts +0 -0
  241. /package/{typed → dist}/collision-filter/collision-filter-extension.d.ts.map +0 -0
  242. /package/{typed → dist}/collision-filter/collision-filter-pass.d.ts +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
+ };