@webviz/subsurface-viewer 1.1.4 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ColorLegend.d.ts +2 -2
- package/dist/components/InfoCard.js +8 -0
- package/dist/components/InfoCard.js.map +1 -1
- package/dist/components/Map.js +9 -6
- package/dist/components/Map.js.map +1 -1
- package/dist/layers/axes2d/axes2DLayer.d.ts +17 -7
- package/dist/layers/axes2d/axes2DLayer.js +109 -66
- package/dist/layers/axes2d/axes2DLayer.js.map +1 -1
- package/dist/layers/colormap/colormapLayer.d.ts +2 -2
- package/dist/layers/grid3d/cellProperty.fs.glsl.d.ts +2 -0
- package/dist/layers/grid3d/{fragment.fs.glsl.js → cellProperty.fs.glsl.js} +41 -51
- package/dist/layers/grid3d/cellProperty.fs.glsl.js.map +1 -0
- package/dist/layers/grid3d/cellProperty.vs.glsl.d.ts +2 -0
- package/dist/layers/grid3d/cellProperty.vs.glsl.js +47 -0
- package/dist/layers/grid3d/cellProperty.vs.glsl.js.map +1 -0
- package/dist/layers/grid3d/grid3dLayer.d.ts +27 -7
- package/dist/layers/grid3d/grid3dLayer.js +39 -11
- package/dist/layers/grid3d/grid3dLayer.js.map +1 -1
- package/dist/layers/grid3d/nodeProperty.fs.glsl.d.ts +2 -0
- package/dist/layers/grid3d/nodeProperty.fs.glsl.js +66 -0
- package/dist/layers/grid3d/nodeProperty.fs.glsl.js.map +1 -0
- package/dist/layers/grid3d/nodeProperty.vs.glsl.d.ts +2 -0
- package/dist/layers/grid3d/{vertex.glsl.js → nodeProperty.vs.glsl.js} +17 -13
- package/dist/layers/grid3d/nodeProperty.vs.glsl.js.map +1 -0
- package/dist/layers/grid3d/privateGrid3dLayer.d.ts +4 -5
- package/dist/layers/grid3d/privateGrid3dLayer.js +76 -61
- package/dist/layers/grid3d/privateGrid3dLayer.js.map +1 -1
- package/dist/layers/grid3d/typeDefs.d.ts +1 -1
- package/dist/layers/grid3d/webworker.js +22 -13
- package/dist/layers/grid3d/webworker.js.map +1 -1
- package/dist/layers/map/mapLayer.d.ts +2 -2
- package/dist/layers/map/privateMapLayer.d.ts +2 -2
- package/dist/layers/utils/layerTools.d.ts +9 -4
- package/dist/layers/utils/layerTools.js +12 -7
- package/dist/layers/utils/layerTools.js.map +1 -1
- package/package.json +1 -1
- package/dist/layers/grid3d/fragment.fs.glsl.d.ts +0 -2
- package/dist/layers/grid3d/fragment.fs.glsl.js.map +0 -1
- package/dist/layers/grid3d/vertex.glsl.d.ts +0 -2
- package/dist/layers/grid3d/vertex.glsl.js.map +0 -1
@@ -35,8 +35,10 @@ const defaultProps = {
|
|
35
35
|
id: "axes2d-layer",
|
36
36
|
visible: true,
|
37
37
|
coordinateSystem: COORDINATE_SYSTEM.CARTESIAN,
|
38
|
-
|
39
|
-
|
38
|
+
minimalMarginH: 80,
|
39
|
+
minimalMarginV: 30,
|
40
|
+
marginH: 80,
|
41
|
+
marginV: 30,
|
40
42
|
isLeftRuler: true,
|
41
43
|
isRightRuler: false,
|
42
44
|
isBottomRuler: true,
|
@@ -105,9 +107,59 @@ export default class Axes2DLayer extends Layer {
|
|
105
107
|
}) || changeFlags.viewportChanged);
|
106
108
|
}
|
107
109
|
updateState() {
|
110
|
+
// Calculating margins.
|
111
|
+
var _a, _b, _c;
|
112
|
+
// Note due to vertical scaling pixel2world mapping may differ in X and Y direction.
|
113
|
+
const m = 100; // Length in pixels
|
114
|
+
let worldFrom = this.context.viewport.unproject([0, 0, 0]);
|
115
|
+
let worldTo = this.context.viewport.unproject([m, 0, 0]);
|
116
|
+
let v = [
|
117
|
+
worldFrom[0] - worldTo[0],
|
118
|
+
worldFrom[1] - worldTo[1],
|
119
|
+
worldFrom[2] - worldTo[2],
|
120
|
+
];
|
121
|
+
const pixel2worldHor = Math.sqrt(v[0] * v[0] + v[1] * v[1]) / m;
|
122
|
+
worldFrom = this.context.viewport.unproject([0, 0, 0]);
|
123
|
+
worldTo = this.context.viewport.unproject([0, m, 0]);
|
124
|
+
v = [
|
125
|
+
worldFrom[0] - worldTo[0],
|
126
|
+
worldFrom[1] - worldTo[1],
|
127
|
+
worldFrom[2] - worldTo[2],
|
128
|
+
];
|
129
|
+
const pixel2worldVer = Math.sqrt(v[0] * v[0] + v[1] * v[1]) / m;
|
130
|
+
const marginV = (_a = this.props.minimalMarginV) !== null && _a !== void 0 ? _a : this.props.marginV;
|
131
|
+
const marginH = (_b = this.props.minimalMarginH) !== null && _b !== void 0 ? _b : this.props.marginH;
|
132
|
+
let worldMarginV = marginV * pixel2worldVer;
|
133
|
+
let worldMarginH = marginH * pixel2worldHor;
|
134
|
+
// If specified horisontal margin (mh) is to small for the label, increase it.
|
135
|
+
const fontSizePixels = GetPixelsScale((_c = this.props.labelFontSizePt) !== null && _c !== void 0 ? _c : defaultProps.labelFontSizePt);
|
136
|
+
const viewportBoundsW = this.context.viewport.getBounds(); //bounds in world coordinates.
|
137
|
+
const yBoundsMin = viewportBoundsW[1];
|
138
|
+
const yBoundsMax = viewportBoundsW[3];
|
139
|
+
const isB = this.props.isBottomRuler;
|
140
|
+
const isT = this.props.isTopRuler;
|
141
|
+
const ymin = isB ? yBoundsMin + worldMarginV : yBoundsMin;
|
142
|
+
const ymax = isT ? yBoundsMax - worldMarginV : yBoundsMax;
|
143
|
+
const numLettersV = 1;
|
144
|
+
const numPixelsV = fontSizePixels * numLettersV;
|
145
|
+
const minimalPixelMarginV = numPixelsV + 2 * tickLineLength;
|
146
|
+
if (marginV < minimalPixelMarginV) {
|
147
|
+
worldMarginV = minimalPixelMarginV * pixel2worldVer;
|
148
|
+
}
|
149
|
+
const numLettersH = Math.max(this.makeLabel(ymin, 0).length, this.makeLabel(ymax, 0).length);
|
150
|
+
const numPixelsH = fontSizePixels * numLettersH;
|
151
|
+
const minimalPixelMarginH = numPixelsH + 2 * tickLineLength;
|
152
|
+
if (marginH < minimalPixelMarginH) {
|
153
|
+
worldMarginH = minimalPixelMarginH * pixel2worldHor;
|
154
|
+
}
|
155
|
+
this.setState(Object.assign(Object.assign({}, this.state), { worldMarginV,
|
156
|
+
worldMarginH,
|
157
|
+
pixel2worldVer,
|
158
|
+
pixel2worldHor }));
|
108
159
|
const fontTexture = this.state["fontTexture"];
|
109
|
-
const {
|
110
|
-
this.setState(Object.assign(Object.assign({}, this.state), {
|
160
|
+
const { labelModels, lineModel: lineModel, backgroundModel: backgroundModel, } = this._getModels(fontTexture);
|
161
|
+
this.setState(Object.assign(Object.assign({}, this.state), { mv: worldMarginV, mh: worldMarginH }));
|
162
|
+
this.setState(Object.assign(Object.assign({}, this.state), { models: [...labelModels, lineModel, backgroundModel] }));
|
111
163
|
}
|
112
164
|
initializeState() {
|
113
165
|
const promise = load(fontAtlasPng, ImageLoader, {
|
@@ -126,38 +178,49 @@ export default class Axes2DLayer extends Layer {
|
|
126
178
|
magFilter: "linear",
|
127
179
|
},
|
128
180
|
});
|
129
|
-
const {
|
181
|
+
const { labelModels, lineModel, backgroundModel } = this._getModels(fontTexture);
|
130
182
|
this.setState({
|
131
183
|
fontTexture,
|
132
|
-
models: [...
|
184
|
+
models: [...labelModels, lineModel, backgroundModel],
|
133
185
|
});
|
134
186
|
});
|
135
187
|
}
|
136
|
-
|
188
|
+
makeLabel(n, ndecimals) {
|
189
|
+
let label = n.toFixed(ndecimals);
|
190
|
+
if (this.props.formatLabelFunc) {
|
191
|
+
label = this.props.formatLabelFunc(n);
|
192
|
+
label = label.replace("e", "E"); // this font atlas does not have "e"
|
193
|
+
label = label.replace("\u2212", "-"); // use standard minus sign
|
194
|
+
}
|
195
|
+
return label;
|
196
|
+
}
|
197
|
+
GetTickLinesAndLabels(min, max, viewSide) {
|
137
198
|
const ndecimals = 0;
|
138
199
|
const n_minor_ticks = 3;
|
139
200
|
const lines = [];
|
140
201
|
const tick_labels = [];
|
141
|
-
const
|
142
|
-
const
|
202
|
+
const worldMarginV = this.state["worldMarginV"];
|
203
|
+
const worldMarginH = this.state["worldMarginH"];
|
204
|
+
const pixel2worldVer = this.state["pixel2worldVer"];
|
205
|
+
const pixel2worldHor = this.state["pixel2worldHor"];
|
143
206
|
const vpBounds = this.context.viewport.getBounds();
|
144
207
|
let start;
|
145
208
|
let y_tick = 0;
|
146
209
|
let x_tick = 0;
|
147
210
|
if (viewSide === ViewSide.Top) {
|
148
|
-
start = vpBounds[3] -
|
211
|
+
start = vpBounds[3] - worldMarginV;
|
149
212
|
y_tick = start;
|
150
213
|
}
|
151
214
|
else if (viewSide === ViewSide.Bottom) {
|
152
|
-
start = vpBounds[1] +
|
215
|
+
start = vpBounds[1] + worldMarginV;
|
153
216
|
y_tick = start;
|
154
217
|
}
|
155
218
|
else if (viewSide === ViewSide.Left) {
|
156
|
-
start = vpBounds[0] +
|
219
|
+
start = vpBounds[0] + worldMarginH;
|
157
220
|
x_tick = start;
|
158
221
|
}
|
159
222
|
else if (viewSide === ViewSide.Right) {
|
160
|
-
start = vpBounds[2] -
|
223
|
+
start = vpBounds[2] - worldMarginH;
|
161
224
|
x_tick = start;
|
162
225
|
}
|
163
226
|
const isTopOrBottomRuler = viewSide === ViewSide.Top || viewSide === ViewSide.Bottom;
|
@@ -174,12 +237,7 @@ export default class Axes2DLayer extends Layer {
|
|
174
237
|
: delta;
|
175
238
|
for (let i = 0; i < ticks.length; i++) {
|
176
239
|
const tick = ticks[i];
|
177
|
-
|
178
|
-
if (this.props.formatLabelFunc) {
|
179
|
-
label = this.props.formatLabelFunc(tick);
|
180
|
-
label = label.replace("e", "E"); // this font atlas does not have "e"
|
181
|
-
label = label.replace("\u2212", "-"); // use standard minus sign
|
182
|
-
}
|
240
|
+
const label = this.makeLabel(tick, ndecimals);
|
183
241
|
tick_labels.push(label);
|
184
242
|
// tick line start
|
185
243
|
if (isTopOrBottomRuler) {
|
@@ -231,11 +289,11 @@ export default class Axes2DLayer extends Layer {
|
|
231
289
|
const labels = this.makeLabelsData(lines, tick_labels);
|
232
290
|
return [lines, labels];
|
233
291
|
}
|
234
|
-
GetBackgroundTriangleLinesHorizontal(x_min_w, x_max_w, isTop
|
235
|
-
const
|
292
|
+
GetBackgroundTriangleLinesHorizontal(x_min_w, x_max_w, isTop) {
|
293
|
+
const worldMarginV = this.state["worldMarginV"];
|
236
294
|
const vp_bounds = this.context.viewport.getBounds(); // [xmin, ymin, xmax, ymax]
|
237
|
-
const y_max = isTop ? vp_bounds[3] : vp_bounds[1] +
|
238
|
-
const y_min = isTop ? vp_bounds[3] -
|
295
|
+
const y_max = isTop ? vp_bounds[3] : vp_bounds[1] + worldMarginV;
|
296
|
+
const y_min = isTop ? vp_bounds[3] - worldMarginV : vp_bounds[1];
|
239
297
|
const p1 = [x_min_w, y_max, zDepthAxes];
|
240
298
|
const p2 = [x_max_w, y_max, zDepthAxes];
|
241
299
|
const p3 = [x_max_w, y_min, zDepthAxes];
|
@@ -248,12 +306,12 @@ export default class Axes2DLayer extends Layer {
|
|
248
306
|
/*eslint-enable */
|
249
307
|
return background_lines;
|
250
308
|
}
|
251
|
-
GetBackgroundTriangleLinesVertical(y_min_w, y_max_w, isLeft
|
252
|
-
|
253
|
-
const
|
309
|
+
GetBackgroundTriangleLinesVertical(y_min_w, y_max_w, isLeft // left or right ruler.
|
310
|
+
) {
|
311
|
+
const worldMarginH = this.state["worldMarginH"];
|
254
312
|
const vp_bounds = this.context.viewport.getBounds(); // [xmin, ymin, xmax, ymax]
|
255
|
-
const x_max = isLeft ? vp_bounds[0] +
|
256
|
-
const x_min = isLeft ? vp_bounds[0] : vp_bounds[2] -
|
313
|
+
const x_max = isLeft ? vp_bounds[0] + worldMarginH : vp_bounds[2];
|
314
|
+
const x_min = isLeft ? vp_bounds[0] : vp_bounds[2] - worldMarginH;
|
257
315
|
const p1 = [x_max, y_min_w, zDepthAxes];
|
258
316
|
const p2 = [x_max, y_max_w, zDepthAxes];
|
259
317
|
const p3 = [x_min, y_max_w, zDepthAxes];
|
@@ -331,30 +389,15 @@ export default class Axes2DLayer extends Layer {
|
|
331
389
|
}
|
332
390
|
return;
|
333
391
|
}
|
392
|
+
// Make models for background, lines (tick marks and axis) and labels.
|
334
393
|
_getModels(fontTexture) {
|
335
|
-
// Make models for background, lines (tick marks and axis) and labels.
|
336
394
|
var _a, _b, _c;
|
337
395
|
const device = this.context.device;
|
338
396
|
// Margins.
|
339
|
-
const
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
world_from[0] - world_to[0],
|
344
|
-
world_from[1] - world_to[1],
|
345
|
-
world_from[2] - world_to[2],
|
346
|
-
];
|
347
|
-
const pixel2worldHor = Math.sqrt(v[0] * v[0] + v[1] * v[1]) / m;
|
348
|
-
world_from = this.context.viewport.unproject([0, 0, 0]);
|
349
|
-
world_to = this.context.viewport.unproject([0, m, 0]);
|
350
|
-
v = [
|
351
|
-
world_from[0] - world_to[0],
|
352
|
-
world_from[1] - world_to[1],
|
353
|
-
world_from[2] - world_to[2],
|
354
|
-
];
|
355
|
-
const pixel2worldVer = Math.sqrt(v[0] * v[0] + v[1] * v[1]) / m;
|
356
|
-
const mh = this.props.marginH * pixel2worldHor;
|
357
|
-
const mv = this.props.marginV * pixel2worldVer;
|
397
|
+
const worldMarginV = this.state["worldMarginV"];
|
398
|
+
const worldMarginH = this.state["worldMarginH"];
|
399
|
+
const pixel2worldVer = this.state["pixel2worldVer"];
|
400
|
+
const pixel2worldHor = this.state["pixel2worldHor"];
|
358
401
|
const viewport_bounds_w = this.context.viewport.getBounds(); //bounds in world coordinates.
|
359
402
|
const xBoundsMin = viewport_bounds_w[0];
|
360
403
|
const xBoundsMax = viewport_bounds_w[2];
|
@@ -367,15 +410,15 @@ export default class Axes2DLayer extends Layer {
|
|
367
410
|
const isT = this.props.isTopRuler;
|
368
411
|
const isL = this.props.isLeftRuler;
|
369
412
|
const isR = this.props.isRightRuler;
|
370
|
-
const xmin = xBoundsMin + (isL ?
|
371
|
-
const xmax = xBoundsMax - (isR ?
|
372
|
-
const ymin = isB ? yBoundsMin +
|
373
|
-
const ymax = isT ? yBoundsMax -
|
413
|
+
const xmin = xBoundsMin + (isL ? worldMarginH : 0);
|
414
|
+
const xmax = xBoundsMax - (isR ? worldMarginH : 0);
|
415
|
+
const ymin = isB ? yBoundsMin + worldMarginV : yBoundsMin;
|
416
|
+
const ymax = isT ? yBoundsMax - worldMarginV : yBoundsMax;
|
374
417
|
//- BOTTOM RULER ----------------------------------------
|
375
418
|
if (isB) {
|
376
419
|
const axes = [xmin, ymin, zDepthAxes, xmax, ymin, zDepthAxes];
|
377
|
-
const [ticks, labels] = this.GetTickLinesAndLabels(xmin, xmax, ViewSide.Bottom
|
378
|
-
const back_lines = this.GetBackgroundTriangleLinesHorizontal(xBoundsMin, xBoundsMax, false
|
420
|
+
const [ticks, labels] = this.GetTickLinesAndLabels(xmin, xmax, ViewSide.Bottom);
|
421
|
+
const back_lines = this.GetBackgroundTriangleLinesHorizontal(xBoundsMin, xBoundsMax, false);
|
379
422
|
tick_and_axes_lines = [...tick_and_axes_lines, ...axes, ...ticks];
|
380
423
|
background_lines = [...background_lines, ...back_lines];
|
381
424
|
labelData = [...labelData, ...labels];
|
@@ -383,9 +426,9 @@ export default class Axes2DLayer extends Layer {
|
|
383
426
|
//- TOP RULER ----------------------------------------
|
384
427
|
if (isT) {
|
385
428
|
const axes = [xmin, ymax, zDepthAxes, xmax, ymax, zDepthAxes];
|
386
|
-
const [ticks, labels] = this.GetTickLinesAndLabels(xmin, xmax, ViewSide.Top
|
387
|
-
const back_lines = this.GetBackgroundTriangleLinesHorizontal(xBoundsMin, xBoundsMax, true
|
388
|
-
|
429
|
+
const [ticks, labels] = this.GetTickLinesAndLabels(xmin, xmax, ViewSide.Top);
|
430
|
+
const back_lines = this.GetBackgroundTriangleLinesHorizontal(xBoundsMin, xBoundsMax, true // isTop
|
431
|
+
);
|
389
432
|
tick_and_axes_lines = [...tick_and_axes_lines, ...axes, ...ticks];
|
390
433
|
background_lines = [...background_lines, ...back_lines];
|
391
434
|
labelData = [...labelData, ...labels];
|
@@ -393,8 +436,8 @@ export default class Axes2DLayer extends Layer {
|
|
393
436
|
//- LEFT RULER ----------------------------------------
|
394
437
|
if (isL) {
|
395
438
|
const axes = [xmin, ymin, zDepthAxes, xmin, ymax, zDepthAxes];
|
396
|
-
const [ticks, labels] = this.GetTickLinesAndLabels(ymin, ymax, ViewSide.Left
|
397
|
-
const back_lines = this.GetBackgroundTriangleLinesVertical(ymin, ymax, true
|
439
|
+
const [ticks, labels] = this.GetTickLinesAndLabels(ymin, ymax, ViewSide.Left);
|
440
|
+
const back_lines = this.GetBackgroundTriangleLinesVertical(ymin, ymax, true);
|
398
441
|
tick_and_axes_lines = [...tick_and_axes_lines, ...axes, ...ticks];
|
399
442
|
background_lines = [...background_lines, ...back_lines];
|
400
443
|
labelData = [...labelData, ...labels];
|
@@ -402,8 +445,8 @@ export default class Axes2DLayer extends Layer {
|
|
402
445
|
//- RIGHT RULER ----------------------------------------
|
403
446
|
if (isR) {
|
404
447
|
const axes = [xmax, ymin, zDepthAxes, xmax, ymax, zDepthAxes];
|
405
|
-
const [ticks, labels] = this.GetTickLinesAndLabels(ymin, ymax, ViewSide.Right
|
406
|
-
const back_lines = this.GetBackgroundTriangleLinesVertical(ymin, ymax, false
|
448
|
+
const [ticks, labels] = this.GetTickLinesAndLabels(ymin, ymax, ViewSide.Right);
|
449
|
+
const back_lines = this.GetBackgroundTriangleLinesVertical(ymin, ymax, false);
|
407
450
|
tick_and_axes_lines = [...tick_and_axes_lines, ...axes, ...ticks];
|
408
451
|
background_lines = [...background_lines, ...back_lines];
|
409
452
|
labelData = [...labelData, ...labels];
|
@@ -418,7 +461,7 @@ export default class Axes2DLayer extends Layer {
|
|
418
461
|
}
|
419
462
|
lineColor = lineColor.map((x) => (x !== null && x !== void 0 ? x : 0) / 255);
|
420
463
|
}
|
421
|
-
const
|
464
|
+
const lineModel = new Model(device, {
|
422
465
|
id: `${this.props.id}-lines`,
|
423
466
|
vs: lineVertexShader,
|
424
467
|
fs: lineFragmentShader,
|
@@ -443,7 +486,7 @@ export default class Axes2DLayer extends Layer {
|
|
443
486
|
}
|
444
487
|
bColor = bColor.map((x) => (x !== null && x !== void 0 ? x : 0) / 255);
|
445
488
|
}
|
446
|
-
const
|
489
|
+
const backgroundModel = new Model(device, {
|
447
490
|
id: `${this.props.id}-background`,
|
448
491
|
vs: lineVertexShader,
|
449
492
|
fs: lineFragmentShader,
|
@@ -459,7 +502,7 @@ export default class Axes2DLayer extends Layer {
|
|
459
502
|
isInstanced: false,
|
460
503
|
});
|
461
504
|
//-- Labels model--
|
462
|
-
const
|
505
|
+
const labelModels = [];
|
463
506
|
const pixelScale = GetPixelsScale((_a = this.props.labelFontSizePt) !== null && _a !== void 0 ? _a : defaultProps.labelFontSizePt);
|
464
507
|
for (const item of labelData) {
|
465
508
|
const x = item.pos[0];
|
@@ -578,9 +621,9 @@ export default class Axes2DLayer extends Layer {
|
|
578
621
|
modules: [project32],
|
579
622
|
isInstanced: false,
|
580
623
|
});
|
581
|
-
|
624
|
+
labelModels.push(model);
|
582
625
|
}
|
583
|
-
return {
|
626
|
+
return { labelModels: labelModels, lineModel: lineModel, backgroundModel: backgroundModel };
|
584
627
|
}
|
585
628
|
}
|
586
629
|
Axes2DLayer.layerName = "Axes2DLayer";
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"axes2DLayer.js","sourceRoot":"","sources":["../../../src/layers/axes2d/axes2DLayer.ts"],"names":[],"mappings":"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E,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;QAClD,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;QAClD,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;QAClD,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;QAClD,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;QAClD,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;QAClD,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;QAClD,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;QAClD,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;QAElD,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QACrC,CAAC,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QAC9C,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QAClD,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QAClD,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QAClD,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QAClD,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QAClD,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QAClD,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QAClD,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QAClD,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QACnD,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QACnD,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QACnD,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QACnD,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QACnD,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QACnD,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QACrD,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UA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"}
|
1
|
+
{"version":3,"file":"axes2DLayer.js","sourceRoot":"","sources":["../../../src/layers/axes2d/axes2DLayer.ts"],"names":[],"mappings":"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AE,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;QAClD,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;QAClD,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;QAClD,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;QAClD,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;QAClD,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;QAClD,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;QAClD,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;QAClD,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;QAElD,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QACrC,CAAC,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QAC9C,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QAClD,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QAClD,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QAClD,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QAClD,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QAClD,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QAClD,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QAClD,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QAClD,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QACnD,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QACnD,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QACnD,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QACnD,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QACnD,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QACnD,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QACrD,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,E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"}
|
@@ -4,12 +4,12 @@ import { BitmapLayer } from "@deck.gl/layers";
|
|
4
4
|
import type { PickingInfo } from "@deck.gl/core";
|
5
5
|
import type { LayerPickInfo, TypeAndNameLayerProps } from "../../layers/utils/layerTools";
|
6
6
|
import type { ValueDecoder } from "../utils/propertyMapTools";
|
7
|
-
import type {
|
7
|
+
import type { ColorMapFunctionType } from "../utils/layerTools";
|
8
8
|
import type { ReportBoundingBoxAction } from "../../components/Map";
|
9
9
|
import type { ContinuousLegendDataType } from "../../components/ColorLegend";
|
10
10
|
export interface ColormapLayerProps extends BitmapLayerProps, TypeAndNameLayerProps {
|
11
11
|
colorMapName: string;
|
12
|
-
colorMapFunction?:
|
12
|
+
colorMapFunction?: ColorMapFunctionType;
|
13
13
|
valueRange: [number, number];
|
14
14
|
colorMapRange: [number, number];
|
15
15
|
valueDecoder: ValueDecoder;
|
@@ -0,0 +1,2 @@
|
|
1
|
+
declare const fsShader = "#version 300 es\n#define SHADER_NAME grid3d-cell-fragment-shader\n\nin vec3 cameraPosition;\nin vec4 position_commonspace;\n\nflat in vec3 normal;\nflat in int vertexIndex;\nflat in float property;\n\nout vec4 fragColor;\n\nuniform sampler2D colormap;\n\nuniform float valueRangeMin;\nuniform float valueRangeMax;\nuniform float colorMapRangeMin;\nuniform float colorMapRangeMax;\n\nuniform bool isColoringDiscrete;\nuniform float colorMapSize;\n\nuniform vec4 colorMapClampColor;\nuniform bool isClampColor;\nuniform vec3 undefinedPropertyColor;\n\n\n// Calculate color from propertyValue using discrete colormap.\nvec4 getDiscretePropertyColor (float propertyValue) {\n vec4 color = vec4(1.0, 1.0, 1.0, 1.0);\n // On some machines (like in docker container), float comparison and texture lookup may fail due to precision.\n // Use this tolerance for comparison and to shift the lookup position.\n float tolerance = (1.0 / colorMapSize) * 0.5;\n\n if (propertyValue < colorMapRangeMin - tolerance || propertyValue > colorMapRangeMax + tolerance) {\n // Out of range. Use clampcolor.\n if (isClampColor) {\n color = colorMapClampColor;\n if( color[3] == 0.0 ) {\n discard;\n }\n }\n else {\n // Use min/max color to clamp.\n float p = clamp (propertyValue, colorMapRangeMin, colorMapRangeMax);\n float x = p / colorMapSize;\n color = texture(colormap, vec2(x + tolerance, 0.5));\n }\n }\n else {\n float x = propertyValue / colorMapSize;\n color = texture(colormap, vec2(x + tolerance, 0.5));\n }\n \n return color;\n}\n\nvec4 getContinuousPropertyColor (float propertyValue) {\n vec4 color = vec4(1.0, 1.0, 1.0, 1.0);\n float normalizedValue = (propertyValue - colorMapRangeMin) / (colorMapRangeMax - colorMapRangeMin);\n if (normalizedValue < 0.0 || normalizedValue > 1.0) {\n // Out of range. Use clampcolor.\n if (isClampColor) {\n color = colorMapClampColor;\n if( color[3] == 0.0 ) {\n discard;\n }\n }\n else {\n // Use min/max color to clamp.\n normalizedValue = clamp (normalizedValue, 0.0, 1.0); \n color = texture(colormap, vec2(normalizedValue, 0.5));\n }\n }\n else {\n color = texture(colormap, vec2(normalizedValue, 0.5));\n }\n return color;\n}\n\n\n\nvoid main(void) {\n\n if (picking.isActive > 0.5 && !(picking.isAttribute > 0.5)) {\n fragColor = encodeVertexIndexToRGB(vertexIndex); \n return;\n }\n\n if (isnan(property)) {\n vec3 lightColor = getPhongLightColor(undefinedPropertyColor.rgb, cameraPosition, position_commonspace.xyz, normal);\n fragColor = vec4(lightColor, 1.0); \n return;\n } \n\n // This may happen due to GPU interpolation precision causing color artifacts.\n float propertyValue = clamp(property, valueRangeMin, valueRangeMax);\n\n vec4 color = isColoringDiscrete ? getDiscretePropertyColor(round(propertyValue)) : getContinuousPropertyColor(propertyValue);\n\n // Use two sided phong lighting. This has no effect if \"material\" property is not set.\n vec3 lightColor = getPhongLightColor(color.rgb, cameraPosition, position_commonspace.xyz, normal);\n fragColor = vec4(lightColor, 1.0);\n DECKGL_FILTER_COLOR(fragColor, geometry);\n}\n";
|
2
|
+
export default fsShader;
|
@@ -1,15 +1,13 @@
|
|
1
|
-
const fsShader =
|
2
|
-
#
|
3
|
-
|
4
|
-
precision highp float;
|
1
|
+
const fsShader = `\
|
2
|
+
#version 300 es
|
3
|
+
#define SHADER_NAME grid3d-cell-fragment-shader
|
5
4
|
|
6
5
|
in vec3 cameraPosition;
|
7
6
|
in vec4 position_commonspace;
|
8
|
-
flat in float property;
|
9
|
-
in float property_interpolated;
|
10
7
|
|
11
8
|
flat in vec3 normal;
|
12
9
|
flat in int vertexIndex;
|
10
|
+
flat in float property;
|
13
11
|
|
14
12
|
out vec4 fragColor;
|
15
13
|
|
@@ -22,73 +20,66 @@ uniform float colorMapRangeMax;
|
|
22
20
|
|
23
21
|
uniform bool isColoringDiscrete;
|
24
22
|
uniform float colorMapSize;
|
25
|
-
uniform lowp int coloringMode;
|
26
23
|
|
27
|
-
uniform
|
28
|
-
uniform vec3 undefinedPropertyColor;
|
24
|
+
uniform vec4 colorMapClampColor;
|
29
25
|
uniform bool isClampColor;
|
30
|
-
uniform
|
26
|
+
uniform vec3 undefinedPropertyColor;
|
31
27
|
|
32
|
-
|
33
|
-
|
28
|
+
|
29
|
+
// Calculate color from propertyValue using discrete colormap.
|
30
|
+
vec4 getDiscretePropertyColor (float propertyValue) {
|
34
31
|
vec4 color = vec4(1.0, 1.0, 1.0, 1.0);
|
35
|
-
|
36
|
-
|
32
|
+
// On some machines (like in docker container), float comparison and texture lookup may fail due to precision.
|
33
|
+
// Use this tolerance for comparison and to shift the lookup position.
|
34
|
+
float tolerance = (1.0 / colorMapSize) * 0.5;
|
35
|
+
|
36
|
+
if (propertyValue < colorMapRangeMin - tolerance || propertyValue > colorMapRangeMax + tolerance) {
|
37
37
|
// Out of range. Use clampcolor.
|
38
38
|
if (isClampColor) {
|
39
|
-
color =
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
discard;
|
39
|
+
color = colorMapClampColor;
|
40
|
+
if( color[3] == 0.0 ) {
|
41
|
+
discard;
|
42
|
+
}
|
44
43
|
}
|
45
44
|
else {
|
46
45
|
// Use min/max color to clamp.
|
47
|
-
|
48
|
-
|
46
|
+
float p = clamp (propertyValue, colorMapRangeMin, colorMapRangeMax);
|
47
|
+
float x = p / colorMapSize;
|
48
|
+
color = texture(colormap, vec2(x + tolerance, 0.5));
|
49
49
|
}
|
50
50
|
}
|
51
51
|
else {
|
52
|
-
|
52
|
+
float x = propertyValue / colorMapSize;
|
53
|
+
color = texture(colormap, vec2(x + tolerance, 0.5));
|
53
54
|
}
|
55
|
+
|
54
56
|
return color;
|
55
57
|
}
|
56
58
|
|
57
|
-
|
58
|
-
vec4 getDiscretePropertyColor (float propertyValue) {
|
59
|
-
|
59
|
+
vec4 getContinuousPropertyColor (float propertyValue) {
|
60
60
|
vec4 color = vec4(1.0, 1.0, 1.0, 1.0);
|
61
|
-
float
|
62
|
-
|
63
|
-
if (propertyValue < colorMapRangeMin - tolerance || propertyValue > colorMapRangeMax + tolerance) {
|
61
|
+
float normalizedValue = (propertyValue - colorMapRangeMin) / (colorMapRangeMax - colorMapRangeMin);
|
62
|
+
if (normalizedValue < 0.0 || normalizedValue > 1.0) {
|
64
63
|
// Out of range. Use clampcolor.
|
65
64
|
if (isClampColor) {
|
66
|
-
color =
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
discard;
|
65
|
+
color = colorMapClampColor;
|
66
|
+
if( color[3] == 0.0 ) {
|
67
|
+
discard;
|
68
|
+
}
|
71
69
|
}
|
72
70
|
else {
|
73
71
|
// Use min/max color to clamp.
|
74
|
-
|
75
|
-
|
76
|
-
color = texture(colormap, vec2(x, 0.5));
|
72
|
+
normalizedValue = clamp (normalizedValue, 0.0, 1.0);
|
73
|
+
color = texture(colormap, vec2(normalizedValue, 0.5));
|
77
74
|
}
|
78
75
|
}
|
79
76
|
else {
|
80
|
-
|
81
|
-
color = texture(colormap, vec2(x + tolerance, 0.5));
|
77
|
+
color = texture(colormap, vec2(normalizedValue, 0.5));
|
82
78
|
}
|
83
79
|
return color;
|
84
80
|
}
|
85
81
|
|
86
|
-
|
87
|
-
if(isColoringDiscrete) {
|
88
|
-
return getDiscretePropertyColor (propertyValue);
|
89
|
-
}
|
90
|
-
return getContinuousPropertyColor (propertyValue);
|
91
|
-
}
|
82
|
+
|
92
83
|
|
93
84
|
void main(void) {
|
94
85
|
|
@@ -97,17 +88,16 @@ void main(void) {
|
|
97
88
|
return;
|
98
89
|
}
|
99
90
|
|
100
|
-
if (
|
91
|
+
if (isnan(property)) {
|
101
92
|
vec3 lightColor = getPhongLightColor(undefinedPropertyColor.rgb, cameraPosition, position_commonspace.xyz, normal);
|
102
93
|
fragColor = vec4(lightColor, 1.0);
|
103
94
|
return;
|
104
95
|
}
|
105
|
-
|
106
|
-
// Property values other than X,Y or Z are passed as "flat" i.e. constant over faces.
|
107
|
-
float propertyValue = coloringMode == 0 ? property : property_interpolated;
|
108
|
-
propertyValue = clamp(propertyValue, valueRangeMin, valueRangeMax);
|
109
96
|
|
110
|
-
|
97
|
+
// This may happen due to GPU interpolation precision causing color artifacts.
|
98
|
+
float propertyValue = clamp(property, valueRangeMin, valueRangeMax);
|
99
|
+
|
100
|
+
vec4 color = isColoringDiscrete ? getDiscretePropertyColor(round(propertyValue)) : getContinuousPropertyColor(propertyValue);
|
111
101
|
|
112
102
|
// Use two sided phong lighting. This has no effect if "material" property is not set.
|
113
103
|
vec3 lightColor = getPhongLightColor(color.rgb, cameraPosition, position_commonspace.xyz, normal);
|
@@ -116,4 +106,4 @@ void main(void) {
|
|
116
106
|
}
|
117
107
|
`;
|
118
108
|
export default fsShader;
|
119
|
-
//# sourceMappingURL=
|
109
|
+
//# sourceMappingURL=cellProperty.fs.glsl.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"cellProperty.fs.glsl.js","sourceRoot":"","sources":["../../../src/layers/grid3d/cellProperty.fs.glsl.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0GhB,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
declare const vsShader = "#version 300 es\n#define SHADER_NAME grid3d-cell-vertex-shader\n\nin vec3 positions;\nin vec3 normals;\nin float properties;\n\n// Outputs to fragment shader\nout vec3 cameraPosition;\nout vec4 position_commonspace;\n\nflat out vec3 normal;\nflat out int vertexIndex;\nflat out float property;\n\nuniform bool ZIncreasingDownwards;\n\nconst vec3 pickingColor = vec3(1.0, 1.0, 0.0);\n\nvoid main(void) { \n \n vertexIndex = gl_VertexID;\n cameraPosition = project_uCameraPosition; \n geometry.pickingColor = pickingColor;\n\n normal = normals;\n vec3 position = positions;\n\n float zSign = ZIncreasingDownwards ? -1.0 : 1.0;\n\n position.z *= zSign;\n normal.z *= zSign;\n\n property = properties;\n\n position_commonspace = vec4(project_position(position), 0.0);\n gl_Position = project_common_position_to_clipspace(position_commonspace);\n\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n\n vec4 color = vec4(0.0);\n DECKGL_FILTER_COLOR(color, geometry);\n}\n";
|
2
|
+
export default vsShader;
|