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