@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.
Files changed (40) hide show
  1. package/dist/components/ColorLegend.d.ts +2 -2
  2. package/dist/components/InfoCard.js +8 -0
  3. package/dist/components/InfoCard.js.map +1 -1
  4. package/dist/components/Map.js +9 -6
  5. package/dist/components/Map.js.map +1 -1
  6. package/dist/layers/axes2d/axes2DLayer.d.ts +17 -7
  7. package/dist/layers/axes2d/axes2DLayer.js +109 -66
  8. package/dist/layers/axes2d/axes2DLayer.js.map +1 -1
  9. package/dist/layers/colormap/colormapLayer.d.ts +2 -2
  10. package/dist/layers/grid3d/cellProperty.fs.glsl.d.ts +2 -0
  11. package/dist/layers/grid3d/{fragment.fs.glsl.js → cellProperty.fs.glsl.js} +41 -51
  12. package/dist/layers/grid3d/cellProperty.fs.glsl.js.map +1 -0
  13. package/dist/layers/grid3d/cellProperty.vs.glsl.d.ts +2 -0
  14. package/dist/layers/grid3d/cellProperty.vs.glsl.js +47 -0
  15. package/dist/layers/grid3d/cellProperty.vs.glsl.js.map +1 -0
  16. package/dist/layers/grid3d/grid3dLayer.d.ts +27 -7
  17. package/dist/layers/grid3d/grid3dLayer.js +39 -11
  18. package/dist/layers/grid3d/grid3dLayer.js.map +1 -1
  19. package/dist/layers/grid3d/nodeProperty.fs.glsl.d.ts +2 -0
  20. package/dist/layers/grid3d/nodeProperty.fs.glsl.js +66 -0
  21. package/dist/layers/grid3d/nodeProperty.fs.glsl.js.map +1 -0
  22. package/dist/layers/grid3d/nodeProperty.vs.glsl.d.ts +2 -0
  23. package/dist/layers/grid3d/{vertex.glsl.js → nodeProperty.vs.glsl.js} +17 -13
  24. package/dist/layers/grid3d/nodeProperty.vs.glsl.js.map +1 -0
  25. package/dist/layers/grid3d/privateGrid3dLayer.d.ts +4 -5
  26. package/dist/layers/grid3d/privateGrid3dLayer.js +76 -61
  27. package/dist/layers/grid3d/privateGrid3dLayer.js.map +1 -1
  28. package/dist/layers/grid3d/typeDefs.d.ts +1 -1
  29. package/dist/layers/grid3d/webworker.js +22 -13
  30. package/dist/layers/grid3d/webworker.js.map +1 -1
  31. package/dist/layers/map/mapLayer.d.ts +2 -2
  32. package/dist/layers/map/privateMapLayer.d.ts +2 -2
  33. package/dist/layers/utils/layerTools.d.ts +9 -4
  34. package/dist/layers/utils/layerTools.js +12 -7
  35. package/dist/layers/utils/layerTools.js.map +1 -1
  36. package/package.json +1 -1
  37. package/dist/layers/grid3d/fragment.fs.glsl.d.ts +0 -2
  38. package/dist/layers/grid3d/fragment.fs.glsl.js.map +0 -1
  39. package/dist/layers/grid3d/vertex.glsl.d.ts +0 -2
  40. 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
- marginH: 80, // Horizontal margin (in pixles)
39
- marginV: 30, // Vertical margin (in pixles)
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 { label_models, line_model, background_model } = this._getModels(fontTexture);
110
- this.setState(Object.assign(Object.assign({}, this.state), { models: [...label_models, line_model, background_model] }));
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 { label_models, line_model, background_model } = this._getModels(fontTexture);
181
+ const { labelModels, lineModel, backgroundModel } = this._getModels(fontTexture);
130
182
  this.setState({
131
183
  fontTexture,
132
- models: [...label_models, line_model, background_model],
184
+ models: [...labelModels, lineModel, backgroundModel],
133
185
  });
134
186
  });
135
187
  }
136
- GetTickLinesAndLabels(min, max, viewSide, pixel2worldHor, pixel2worldVer) {
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 mv = this.props.marginV * pixel2worldVer;
142
- const mh = this.props.marginH * pixel2worldHor;
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] - mv;
211
+ start = vpBounds[3] - worldMarginV;
149
212
  y_tick = start;
150
213
  }
151
214
  else if (viewSide === ViewSide.Bottom) {
152
- start = vpBounds[1] + mv;
215
+ start = vpBounds[1] + worldMarginV;
153
216
  y_tick = start;
154
217
  }
155
218
  else if (viewSide === ViewSide.Left) {
156
- start = vpBounds[0] + mh;
219
+ start = vpBounds[0] + worldMarginH;
157
220
  x_tick = start;
158
221
  }
159
222
  else if (viewSide === ViewSide.Right) {
160
- start = vpBounds[2] - mh;
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
- let label = tick.toFixed(ndecimals);
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, pixel2world) {
235
- const mv = this.props.marginV * pixel2world;
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] + mv;
238
- const y_min = isTop ? vp_bounds[3] - mv : vp_bounds[1];
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, // left or right ruler.
252
- pixel2world) {
253
- const mh = this.props.marginH * pixel2world;
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] + mh : vp_bounds[2];
256
- const x_min = isLeft ? vp_bounds[0] : vp_bounds[2] - mh;
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 m = 100; // Length in pixels
340
- let world_from = this.context.viewport.unproject([0, 0, 0]);
341
- let world_to = this.context.viewport.unproject([m, 0, 0]);
342
- let v = [
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 ? mh : 0);
371
- const xmax = xBoundsMax - (isR ? mh : 0);
372
- const ymin = isB ? yBoundsMin + mv : yBoundsMin;
373
- const ymax = isT ? yBoundsMax - mv : 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, pixel2worldHor, pixel2worldVer);
378
- const back_lines = this.GetBackgroundTriangleLinesHorizontal(xBoundsMin, xBoundsMax, false, pixel2worldVer);
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, pixel2worldHor, pixel2worldVer);
387
- const back_lines = this.GetBackgroundTriangleLinesHorizontal(xBoundsMin, xBoundsMax, true, // isTop
388
- pixel2worldVer);
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, pixel2worldHor, pixel2worldVer);
397
- const back_lines = this.GetBackgroundTriangleLinesVertical(ymin, ymax, true, pixel2worldHor);
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, pixel2worldHor, pixel2worldVer);
406
- const back_lines = this.GetBackgroundTriangleLinesVertical(ymin, ymax, false, pixel2worldHor);
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 line_model = new Model(device, {
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 background_model = new Model(device, {
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 label_models = [];
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
- label_models.push(model);
624
+ labelModels.push(model);
582
625
  }
583
- return { label_models, line_model, background_model };
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 { colorMapFunctionType } from "../utils/layerTools";
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?: colorMapFunctionType;
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 = `#version 300 es
2
- #define SHADER_NAME grid3d-fragment-shader
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 vec3 colorMapClampColor;
28
- uniform vec3 undefinedPropertyColor;
24
+ uniform vec4 colorMapClampColor;
29
25
  uniform bool isClampColor;
30
- uniform bool isColorMapClampColorTransparent;
26
+ uniform vec3 undefinedPropertyColor;
31
27
 
32
- vec4 getContinuousPropertyColor (float propertyValue) {
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
- float x = (propertyValue - colorMapRangeMin) / (colorMapRangeMax - colorMapRangeMin);
36
- if (x < 0.0 || x > 1.0) {
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 = vec4(colorMapClampColor.rgb, 1.0);
40
-
41
- }
42
- else if (isColorMapClampColorTransparent) {
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
- x = clamp (x, 0.0, 1.0);
48
- color = texture(colormap, vec2(x, 0.5));
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
- color = texture(colormap, vec2(x, 0.5));
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
- // Calculate color from propertyValue using discrete colormap.
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 tolerance = (1.0 / colorMapSize) * 0.5;
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 = vec4(colorMapClampColor.rgb, 1.0);
67
-
68
- }
69
- else if (isColorMapClampColorTransparent) {
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
- float p = clamp (propertyValue, colorMapRangeMin, colorMapRangeMax);
75
- float x = p / colorMapSize;
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
- float x = propertyValue / colorMapSize;
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
- vec4 getPropertyColor (float propertyValue) {
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 (coloringMode == 0 && isnan(property)) {
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
- vec4 color = getPropertyColor(propertyValue);
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=fragment.fs.glsl.js.map
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;