@webviz/subsurface-viewer 0.12.1 → 0.13.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.
@@ -0,0 +1,419 @@
1
+ /** Given the input data will build and return the attributes (vertices and indices for triangles and lines)
2
+ * that is used by WebGl. Using indice, lines and triangles share common vertices to save memory.
3
+ */
4
+ export function makeFullMesh(e) {
5
+ const [meshData, propertiesData, isMesh, frame, smoothShading, gridLines] = e.data;
6
+ function getFloat32ArrayMinMax(data) {
7
+ let max = -99999999;
8
+ let min = 99999999;
9
+ for (let i = 0; i < data.length; i++) {
10
+ max = data[i] > max ? data[i] : max;
11
+ min = data[i] < min ? data[i] : min;
12
+ }
13
+ return [min, max];
14
+ }
15
+ function crossProduct(a, b) {
16
+ const c = [
17
+ a[1] * b[2] - a[2] * b[1],
18
+ a[2] * b[0] - a[0] * b[2],
19
+ a[0] * b[1] - a[1] * b[0],
20
+ ];
21
+ return c;
22
+ }
23
+ function isDefined(x) {
24
+ return typeof x === "number" && !isNaN(x);
25
+ }
26
+ function normalize(a) {
27
+ const L = Math.sqrt(a[0] * a[0] + a[1] * a[1] + a[2] * a[2]);
28
+ a[0] /= L;
29
+ a[1] /= L;
30
+ a[2] /= L;
31
+ }
32
+ function calcNormal(w, h, nx, ny, isMesh, smoothShading, meshData, ox, oy, dx, dy) {
33
+ if (!smoothShading) {
34
+ return [1, 1, 1];
35
+ }
36
+ if (!isMesh) {
37
+ return [0, 0, 1];
38
+ }
39
+ const i0 = h * nx + w;
40
+ const i1 = h * nx + (w - 1);
41
+ const i2 = (h + 1) * nx + w;
42
+ const i3 = h * nx + (w + 1);
43
+ const i4 = (h - 1) * nx + w;
44
+ const i0_act = isDefined(meshData[i0]); // eslint-disable-line
45
+ const i1_act = (w - 1) >= 0 && isDefined(meshData[i1]); // eslint-disable-line
46
+ const i2_act = (h + 1) < ny && isDefined(meshData[i2]); // eslint-disable-line
47
+ const i3_act = (w + 1) < nx && isDefined(meshData[i3]); // eslint-disable-line
48
+ const i4_act = (h - 1) >= 0 && isDefined(meshData[i4]); // eslint-disable-line
49
+ const noNormal = [0, 0, 0]; // signals a normal could not be calculated.
50
+ if (!i0_act) {
51
+ return noNormal;
52
+ }
53
+ const hh = ny - 1 - h; // Note use hh for h for getting y values.
54
+ const p0 = [ox + w * dx, oy + hh * dy, i0_act ? meshData[i0] : 0]; // eslint-disable-line
55
+ const p1 = [ox + (w - 1) * dx, oy + hh * dy, i1_act ? meshData[i1] : 0]; // eslint-disable-line
56
+ const p2 = [ox + w * dx, oy + (hh + 1) * dy, i2_act ? meshData[i2] : 0]; // eslint-disable-line
57
+ const p3 = [ox + (w + 1) * dx, oy + hh * dy, i3_act ? meshData[i3] : 0]; // eslint-disable-line
58
+ const p4 = [ox + w * dx, oy + (hh - 1) * dy, i4_act ? meshData[i4] : 0]; // eslint-disable-line
59
+ const v1 = [p1[0] - p0[0], p1[1] - p0[1], p1[2] - p0[2]];
60
+ const v2 = [p2[0] - p0[0], p2[1] - p0[1], p2[2] - p0[2]];
61
+ const v3 = [p3[0] - p0[0], p3[1] - p0[1], p3[2] - p0[2]];
62
+ const v4 = [p4[0] - p0[0], p4[1] - p0[1], p4[2] - p0[2]];
63
+ // Estimating a normal vector at p0:
64
+ // Take cross product of vectors v1, v2,
65
+ // Do this for all 4 quadrants.
66
+ // The resulting normal will be the mean of these four normals.
67
+ // p2
68
+ // |
69
+ // p1 - p0 - p3
70
+ // |
71
+ // p4
72
+ const normals = [];
73
+ if (i1_act && i2_act) {
74
+ const normal = crossProduct(v2, v1);
75
+ normals.push(normal);
76
+ }
77
+ if (i2_act && i3_act) {
78
+ const normal = crossProduct(v3, v2);
79
+ normals.push(normal);
80
+ }
81
+ if (i3_act && i4_act) {
82
+ const normal = crossProduct(v4, v3);
83
+ normals.push(normal);
84
+ }
85
+ if (i4_act && i1_act) {
86
+ const normal = crossProduct(v1, v4);
87
+ normals.push(normal);
88
+ }
89
+ if (normals.length === 0) {
90
+ return noNormal;
91
+ }
92
+ const mean = normals[0];
93
+ for (let i = 1; i < normals.length; i++) {
94
+ mean[0] += normals[i][0];
95
+ mean[1] += normals[i][1];
96
+ mean[2] += normals[i][2];
97
+ }
98
+ normalize(mean);
99
+ return mean;
100
+ }
101
+ const meshZValueRange = getFloat32ArrayMinMax(meshData);
102
+ const propertyValueRange = getFloat32ArrayMinMax(propertiesData);
103
+ // Dimensions.
104
+ const ox = frame.origin[0];
105
+ const oy = frame.origin[1];
106
+ const dx = frame.increment[0];
107
+ const dy = frame.increment[1];
108
+ const nx = frame.count[0]; // number of nodes in x direction
109
+ const ny = frame.count[1];
110
+ const propLength = propertiesData.length;
111
+ const isCellCenteredProperties = propLength === (nx - 1) * (ny - 1);
112
+ if (propLength !== (nx - 1) * (ny - 1) && propLength !== nx * ny) {
113
+ console.error("There should be as many property values as nodes (nx*ny) OR as many as cells (nx - 1) * (ny - 1).");
114
+ }
115
+ const nNodes = nx * ny;
116
+ const nCells = (nx - 1) * (ny - 1);
117
+ const nTriangles = nCells * 2;
118
+ const positions = new Float32Array(isCellCenteredProperties ? nCells * 6 * 3 : nNodes * 3);
119
+ const normals = new Int8Array(isCellCenteredProperties || !smoothShading ? 0 : nNodes * 3);
120
+ const triangleIndices = new Uint32Array(nTriangles * 3);
121
+ const vertexProperties = new Float32Array(isCellCenteredProperties ? nCells * 6 : nNodes);
122
+ let nLineIndices = 0;
123
+ if (gridLines) {
124
+ nLineIndices = isCellCenteredProperties
125
+ ? nTriangles * 2 * 2
126
+ : nCells * 4 + (nx - 1) * 2 + (ny - 1) * 2;
127
+ }
128
+ const lineIndices = new Uint32Array(nLineIndices);
129
+ // Note: Assumed layout of the incomming 2D array of data:
130
+ // First coloumn corresponds to lowest x value. Last column highest x value.
131
+ // First row corresponds to max y value. Last row corresponds to lowest y value.
132
+ // This must be taken into account when calculating vertex x,y values and texture coordinates.
133
+ if (!isCellCenteredProperties) {
134
+ // PROPERTIES IS SET INTERPOLATED OVER A CELL.
135
+ // Loop vertices.
136
+ let i = 0;
137
+ for (let h = 0; h < ny; h++) {
138
+ for (let w = 0; w < nx; w++) {
139
+ const i0 = h * nx + w;
140
+ const x0 = ox + w * dx;
141
+ const y0 = oy + (ny - 1 - h) * dy; // See note above.
142
+ const z = isMesh ? meshData[i0] : 0;
143
+ const propertyValue = propertiesData[i0];
144
+ positions[3 * i + 0] = x0;
145
+ positions[3 * i + 1] = y0;
146
+ positions[3 * i + 2] = z;
147
+ if (smoothShading) {
148
+ const normal = calcNormal(w, h, nx, ny, isMesh, smoothShading, meshData, ox, oy, dx, dy); // eslint-disable-line
149
+ normals[3 * i + 0] = normal[0] * 127; // Normalize to signed 8 bit.
150
+ normals[3 * i + 1] = normal[1] * 127;
151
+ normals[3 * i + 2] = normal[2] * 127;
152
+ }
153
+ vertexProperties[i] = propertyValue;
154
+ i++;
155
+ }
156
+ }
157
+ // Loop cells.
158
+ i = 0;
159
+ let j = 0;
160
+ for (let h = 0; h < ny - 1; h++) {
161
+ for (let w = 0; w < nx - 1; w++) {
162
+ const i0 = h * nx + w;
163
+ const i1 = h * nx + (w + 1);
164
+ const i2 = (h + 1) * nx + (w + 1);
165
+ const i3 = (h + 1) * nx + w;
166
+ const i0_act = !isMesh || (isDefined(meshData[i0]) && isDefined(propertiesData[i0])); // eslint-disable-line
167
+ const i1_act = !isMesh || (isDefined(meshData[i1]) && isDefined(propertiesData[i1])); // eslint-disable-line
168
+ const i2_act = !isMesh || (isDefined(meshData[i2]) && isDefined(propertiesData[i2])); // eslint-disable-line
169
+ const i3_act = !isMesh || (isDefined(meshData[i3]) && isDefined(propertiesData[i3])); // eslint-disable-line
170
+ // Triangles.
171
+ if (i1_act && i3_act) {
172
+ // diagonal i1, i3
173
+ if (i0_act) {
174
+ // t1 - i0 provoking index.
175
+ triangleIndices[i++] = i1;
176
+ triangleIndices[i++] = i3;
177
+ triangleIndices[i++] = i0;
178
+ }
179
+ if (i2_act) {
180
+ // t2 - i2 provoking index.
181
+ triangleIndices[i++] = i1;
182
+ triangleIndices[i++] = i3;
183
+ triangleIndices[i++] = i2;
184
+ }
185
+ }
186
+ else if (i0_act && i2_act) {
187
+ // diagonal i0, i2
188
+ if (i1_act) {
189
+ // t1 - i0 provoking index.
190
+ triangleIndices[i++] = i1;
191
+ triangleIndices[i++] = i2;
192
+ triangleIndices[i++] = i0;
193
+ }
194
+ if (i3_act) {
195
+ // t2 - i2 provoking index.
196
+ triangleIndices[i++] = i3;
197
+ triangleIndices[i++] = i0;
198
+ triangleIndices[i++] = i2;
199
+ }
200
+ }
201
+ // Lines.
202
+ if (gridLines) {
203
+ if (i0_act && i1_act) {
204
+ lineIndices[j++] = i0;
205
+ lineIndices[j++] = i1;
206
+ }
207
+ if (i0_act && i3_act) {
208
+ lineIndices[j++] = i0;
209
+ lineIndices[j++] = i3;
210
+ }
211
+ if (h == ny - 2 && i2_act && i3_act) {
212
+ lineIndices[j++] = i3;
213
+ lineIndices[j++] = i2;
214
+ }
215
+ if (w == nx - 2 && i1_act && i2_act) {
216
+ lineIndices[j++] = i1;
217
+ lineIndices[j++] = i2;
218
+ }
219
+ // diagonal
220
+ if ((i0_act && !i2_act) || (!i0_act && i2_act)) {
221
+ lineIndices[j++] = i1;
222
+ lineIndices[j++] = i3;
223
+ }
224
+ // diagonal
225
+ if ((i3_act && !i1_act) || (!i3_act && i1_act)) {
226
+ lineIndices[j++] = i0;
227
+ lineIndices[j++] = i2;
228
+ }
229
+ }
230
+ }
231
+ }
232
+ }
233
+ else {
234
+ // PROPERTIES IS SET CONSTANT OVER A CELL.
235
+ // Loop cells.
236
+ let i = 0;
237
+ let j = 0;
238
+ let k = 0;
239
+ let l = 0;
240
+ for (let h = 0; h < ny - 1; h++) {
241
+ for (let w = 0; w < nx - 1; w++) {
242
+ const hh = ny - 1 - h; // See note above.
243
+ const i0 = h * nx + w;
244
+ const i1 = h * nx + (w + 1);
245
+ const i2 = (h + 1) * nx + (w + 1);
246
+ const i3 = (h + 1) * nx + w;
247
+ const i0_act = !isMesh || isDefined(meshData[i0]); // eslint-disable-line
248
+ const i1_act = !isMesh || isDefined(meshData[i1]); // eslint-disable-line
249
+ const i2_act = !isMesh || isDefined(meshData[i2]); // eslint-disable-line
250
+ const i3_act = !isMesh || isDefined(meshData[i3]); // eslint-disable-line
251
+ const x0 = ox + w * dx;
252
+ const y0 = oy + hh * dy;
253
+ const z0 = isMesh ? meshData[i0] : 0;
254
+ const x1 = ox + (w + 1) * dx;
255
+ const y1 = oy + hh * dy;
256
+ const z1 = isMesh ? meshData[i1] : 0;
257
+ const x2 = ox + (w + 1) * dx;
258
+ const y2 = oy + (hh - 1) * dy; // Note hh - 1 here.
259
+ const z2 = isMesh ? meshData[i2] : 0;
260
+ const x3 = ox + w * dx;
261
+ const y3 = oy + (hh - 1) * dy; // Note hh - 1 here.
262
+ const z3 = isMesh ? meshData[i3] : 0;
263
+ const propertyIndex = h * (nx - 1) + w; // (nx - 1) -> the width of the property 2D array is one less than for the nodes in this case.
264
+ const propertyValue = propertiesData[propertyIndex];
265
+ if (!isDefined(propertyValue)) {
266
+ // Inactive cell, dont draw.
267
+ continue;
268
+ }
269
+ // Triangles.
270
+ if (i1_act && i3_act) {
271
+ // diagonal i1, i3
272
+ if (i0_act) {
273
+ // t1 - i0 provoking index.
274
+ triangleIndices[i] = i;
275
+ const L1 = i;
276
+ i++;
277
+ positions[j++] = x1;
278
+ positions[j++] = y1;
279
+ positions[j++] = z1;
280
+ triangleIndices[i] = i;
281
+ const L2 = i;
282
+ i++;
283
+ positions[j++] = x3;
284
+ positions[j++] = y3;
285
+ positions[j++] = z3;
286
+ triangleIndices[i] = i;
287
+ const L3 = i;
288
+ i++;
289
+ positions[j++] = x0;
290
+ positions[j++] = y0;
291
+ positions[j++] = z0;
292
+ if (gridLines) {
293
+ lineIndices[l++] = L3;
294
+ lineIndices[l++] = L1;
295
+ lineIndices[l++] = L3;
296
+ lineIndices[l++] = L2;
297
+ }
298
+ vertexProperties[k++] = propertyValue;
299
+ vertexProperties[k++] = propertyValue;
300
+ vertexProperties[k++] = propertyValue;
301
+ }
302
+ if (i2_act) {
303
+ // t2 - i2 provoking index.
304
+ triangleIndices[i] = i;
305
+ const L1 = i;
306
+ i++;
307
+ positions[j++] = x1;
308
+ positions[j++] = y1;
309
+ positions[j++] = z1;
310
+ triangleIndices[i] = i;
311
+ const L2 = i;
312
+ i++;
313
+ positions[j++] = x3;
314
+ positions[j++] = y3;
315
+ positions[j++] = z3;
316
+ triangleIndices[i] = i;
317
+ const L3 = i;
318
+ i++;
319
+ positions[j++] = x2;
320
+ positions[j++] = y2;
321
+ positions[j++] = z2;
322
+ if (gridLines) {
323
+ lineIndices[l++] = L1;
324
+ lineIndices[l++] = L3;
325
+ lineIndices[l++] = L2;
326
+ lineIndices[l++] = L3;
327
+ }
328
+ vertexProperties[k++] = propertyValue;
329
+ vertexProperties[k++] = propertyValue;
330
+ vertexProperties[k++] = propertyValue;
331
+ }
332
+ }
333
+ else if (i0_act && i2_act) {
334
+ // diagonal i0, i2
335
+ if (i1_act) {
336
+ //t1 - i0 provoking index.
337
+ triangleIndices[i] = i;
338
+ const L1 = i;
339
+ i++;
340
+ positions[j++] = x1;
341
+ positions[j++] = y1;
342
+ positions[j++] = z1;
343
+ triangleIndices[i] = i;
344
+ const L2 = i;
345
+ i++;
346
+ positions[j++] = x2;
347
+ positions[j++] = y2;
348
+ positions[j++] = z2;
349
+ triangleIndices[i] = i;
350
+ const L3 = i;
351
+ i++;
352
+ positions[j++] = x0;
353
+ positions[j++] = y0;
354
+ positions[j++] = z0;
355
+ if (gridLines) {
356
+ lineIndices[l++] = L1;
357
+ lineIndices[l++] = L3;
358
+ lineIndices[l++] = L1;
359
+ lineIndices[l++] = L2;
360
+ }
361
+ vertexProperties[k++] = propertyValue;
362
+ vertexProperties[k++] = propertyValue;
363
+ vertexProperties[k++] = propertyValue;
364
+ }
365
+ if (i3_act) {
366
+ // t2 - i2 provoking index.
367
+ triangleIndices[i] = i;
368
+ const L1 = i;
369
+ i++;
370
+ positions[j++] = x3;
371
+ positions[j++] = y3;
372
+ positions[j++] = z3;
373
+ triangleIndices[i] = i;
374
+ const L2 = i;
375
+ i++;
376
+ positions[j++] = x0;
377
+ positions[j++] = y0;
378
+ positions[j++] = z0;
379
+ triangleIndices[i] = i;
380
+ const L3 = i;
381
+ i++;
382
+ positions[j++] = x2;
383
+ positions[j++] = y2;
384
+ positions[j++] = z2;
385
+ if (gridLines) {
386
+ lineIndices[l++] = L1;
387
+ lineIndices[l++] = L2;
388
+ lineIndices[l++] = L1;
389
+ lineIndices[l++] = L3;
390
+ }
391
+ vertexProperties[k++] = propertyValue;
392
+ vertexProperties[k++] = propertyValue;
393
+ vertexProperties[k++] = propertyValue;
394
+ }
395
+ }
396
+ }
397
+ }
398
+ }
399
+ const webworkerParams = [
400
+ positions,
401
+ normals,
402
+ triangleIndices,
403
+ vertexProperties,
404
+ lineIndices,
405
+ meshZValueRange,
406
+ propertyValueRange,
407
+ ];
408
+ postMessage(webworkerParams,
409
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
410
+ // @ts-ignore
411
+ [
412
+ positions.buffer,
413
+ normals.buffer,
414
+ triangleIndices.buffer,
415
+ vertexProperties.buffer,
416
+ lineIndices.buffer,
417
+ ]); // tranferable objects. No copy.
418
+ }
419
+ //# sourceMappingURL=webworker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webworker.js","sourceRoot":"","sources":["../../../src/layers/map/webworker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webviz/subsurface-viewer",
3
- "version": "0.12.1",
3
+ "version": "0.13.0",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",