@equinor/esv-intersection 3.1.9 → 4.1.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/axis.d.ts.map +1 -1
- package/dist/control/ExtendedCurveInterpolator.d.ts.map +1 -1
- package/dist/control/IntersectionReferenceSystem.d.ts.map +1 -1
- package/dist/control/LayerManager.d.ts.map +1 -1
- package/dist/control/MainController.d.ts.map +1 -1
- package/dist/control/ZoomPanHandler.d.ts.map +1 -1
- package/dist/control/overlay.d.ts.map +1 -1
- package/dist/datautils/colortable.d.ts.map +1 -1
- package/dist/datautils/findsample.d.ts.map +1 -1
- package/dist/datautils/picks.d.ts.map +1 -1
- package/dist/datautils/schematicShapeGenerator.d.ts +10 -10
- package/dist/datautils/schematicShapeGenerator.d.ts.map +1 -1
- package/dist/datautils/seismicimage.d.ts.map +1 -1
- package/dist/datautils/surfacedata.d.ts.map +1 -1
- package/dist/datautils/trajectory.d.ts.map +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +2533 -1570
- package/dist/index.mjs.map +1 -1
- package/dist/index.umd.js +2 -2
- package/dist/index.umd.js.map +1 -1
- package/dist/layers/CalloutCanvasLayer.d.ts.map +1 -1
- package/dist/layers/CustomDisplayObjects/ComplexRope.d.ts +2 -3
- package/dist/layers/CustomDisplayObjects/ComplexRope.d.ts.map +1 -1
- package/dist/layers/CustomDisplayObjects/ComplexRopeGeometry.d.ts.map +1 -1
- package/dist/layers/CustomDisplayObjects/FixedWidthSimpleRope.d.ts +3 -4
- package/dist/layers/CustomDisplayObjects/FixedWidthSimpleRope.d.ts.map +1 -1
- package/dist/layers/CustomDisplayObjects/FixedWidthSimpleRopeGeometry.d.ts +4 -4
- package/dist/layers/CustomDisplayObjects/FixedWidthSimpleRopeGeometry.d.ts.map +1 -1
- package/dist/layers/CustomDisplayObjects/UniformTextureStretchRope.d.ts +3 -4
- package/dist/layers/CustomDisplayObjects/UniformTextureStretchRope.d.ts.map +1 -1
- package/dist/layers/CustomDisplayObjects/UniformTextureStretchRopeGeometry.d.ts +4 -4
- package/dist/layers/CustomDisplayObjects/UniformTextureStretchRopeGeometry.d.ts.map +1 -1
- package/dist/layers/GeomodelCanvasLayer.d.ts.map +1 -1
- package/dist/layers/GeomodelLabelsLayer.d.ts.map +1 -1
- package/dist/layers/GeomodelLayerV2.d.ts.map +1 -1
- package/dist/layers/GridLayer.d.ts.map +1 -1
- package/dist/layers/ImageCanvasLayer.d.ts.map +1 -1
- package/dist/layers/ReferenceLineLayer.d.ts.map +1 -1
- package/dist/layers/SchematicLayer.d.ts +6 -6
- package/dist/layers/SchematicLayer.d.ts.map +1 -1
- package/dist/layers/WellborePathLayer.d.ts.map +1 -1
- package/dist/layers/base/CanvasLayer.d.ts.map +1 -1
- package/dist/layers/base/HTMLLayer.d.ts.map +1 -1
- package/dist/layers/base/Layer.d.ts.map +1 -1
- package/dist/layers/base/PixiLayer.d.ts +7 -8
- package/dist/layers/base/PixiLayer.d.ts.map +1 -1
- package/dist/layers/base/SVGLayer.d.ts.map +1 -1
- package/dist/layers/schematicInterfaces.d.ts.map +1 -1
- package/dist/utils/arc-length.d.ts.map +1 -1
- package/dist/utils/root-finder.d.ts.map +1 -1
- package/dist/utils/text.d.ts.map +1 -1
- package/dist/utils/vectorUtils.d.ts +6 -6
- package/dist/utils/vectorUtils.d.ts.map +1 -1
- package/dist/vendor/pixi-dashed-line/index.d.ts +13 -13
- package/dist/vendor/pixi-dashed-line/index.d.ts.map +1 -1
- package/package.json +4 -6
- package/src/components/axis.ts +40 -10
- package/src/control/ExtendedCurveInterpolator.ts +47 -9
- package/src/control/IntersectionReferenceSystem.ts +110 -30
- package/src/control/LayerManager.ts +76 -24
- package/src/control/MainController.ts +37 -8
- package/src/control/ZoomPanHandler.ts +76 -14
- package/src/control/overlay.ts +18 -6
- package/src/datautils/colortable.ts +7 -2
- package/src/datautils/findsample.ts +12 -2
- package/src/datautils/picks.ts +66 -18
- package/src/datautils/schematicShapeGenerator.ts +591 -165
- package/src/datautils/seismicimage.ts +36 -10
- package/src/datautils/surfacedata.ts +119 -40
- package/src/datautils/trajectory.ts +56 -17
- package/src/layers/CalloutCanvasLayer.ts +129 -26
- package/src/layers/CustomDisplayObjects/ComplexRope.ts +11 -13
- package/src/layers/CustomDisplayObjects/ComplexRopeGeometry.ts +14 -13
- package/src/layers/CustomDisplayObjects/FixedWidthSimpleRope.ts +11 -14
- package/src/layers/CustomDisplayObjects/FixedWidthSimpleRopeGeometry.ts +13 -12
- package/src/layers/CustomDisplayObjects/UniformTextureStretchRope.ts +16 -17
- package/src/layers/CustomDisplayObjects/UniformTextureStretchRopeGeometry.ts +11 -11
- package/src/layers/GeomodelCanvasLayer.ts +10 -3
- package/src/layers/GeomodelLabelsLayer.ts +212 -87
- package/src/layers/GeomodelLayerV2.ts +11 -7
- package/src/layers/GridLayer.ts +14 -3
- package/src/layers/ImageCanvasLayer.ts +17 -3
- package/src/layers/ReferenceLineLayer.ts +31 -9
- package/src/layers/SchematicLayer.ts +533 -173
- package/src/layers/WellborePathLayer.ts +22 -7
- package/src/layers/base/CanvasLayer.ts +18 -4
- package/src/layers/base/HTMLLayer.ts +11 -3
- package/src/layers/base/Layer.ts +10 -2
- package/src/layers/base/PixiLayer.ts +36 -43
- package/src/layers/base/SVGLayer.ts +13 -3
- package/src/layers/schematicInterfaces.ts +16 -6
- package/src/utils/arc-length.ts +31 -5
- package/src/utils/root-finder.ts +32 -4
- package/src/utils/text.ts +34 -7
- package/src/utils/vectorUtils.ts +27 -10
- package/src/vendor/pixi-dashed-line/index.ts +93 -39
package/src/datautils/picks.ts
CHANGED
|
@@ -87,24 +87,43 @@ function getEntryPicks(formationPicks: PairedPickAndUnit[]): Annotation[] {
|
|
|
87
87
|
.map((p: PairedPickAndUnit) => mapPick(p.entryPick, 'strat-picks'));
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
function getFilteredExitPicks(
|
|
90
|
+
function getFilteredExitPicks(
|
|
91
|
+
formationPicks: PairedPickAndUnit[],
|
|
92
|
+
): Annotation[] {
|
|
91
93
|
if (!formationPicks) {
|
|
92
94
|
return [];
|
|
93
95
|
}
|
|
94
96
|
|
|
95
97
|
return (
|
|
96
98
|
formationPicks
|
|
97
|
-
.filter(
|
|
99
|
+
.filter(
|
|
100
|
+
(d: PairedPickAndUnit) =>
|
|
101
|
+
formationPicks.findIndex(
|
|
102
|
+
(p: PairedPickAndUnit) =>
|
|
103
|
+
Math.abs(p.entryPick.md - d.exitPick.md) < 0.5,
|
|
104
|
+
) === -1,
|
|
105
|
+
)
|
|
98
106
|
.map((p: PairedPickAndUnit) => mapPick(p.exitPick, 'strat-picks'))
|
|
99
107
|
// Remove duplicates from unitpicks filling in gaps in formation
|
|
100
|
-
.filter(
|
|
108
|
+
.filter(
|
|
109
|
+
(obj: Annotation, i: number, array: Annotation[]) =>
|
|
110
|
+
i ===
|
|
111
|
+
array.findIndex(
|
|
112
|
+
(v: Annotation) => v.title === obj.title && v.md === obj.md,
|
|
113
|
+
),
|
|
114
|
+
)
|
|
101
115
|
);
|
|
102
116
|
}
|
|
103
117
|
|
|
104
|
-
export const getPicksData = (picksData: {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
118
|
+
export const getPicksData = (picksData: {
|
|
119
|
+
unitPicks: PairedPickAndUnit[];
|
|
120
|
+
nonUnitPicks: PickWithId[];
|
|
121
|
+
}): Annotation[] =>
|
|
122
|
+
[
|
|
123
|
+
...getReferencePicks(picksData.nonUnitPicks),
|
|
124
|
+
...getEntryPicks(picksData.unitPicks),
|
|
125
|
+
...getFilteredExitPicks(picksData.unitPicks),
|
|
126
|
+
].sort((a, b) => a.md! - b.md!);
|
|
108
127
|
|
|
109
128
|
/**
|
|
110
129
|
* @param {Unit} u
|
|
@@ -134,7 +153,11 @@ const unitDto = (u: Unit): UnitDto => ({
|
|
|
134
153
|
* @param {number} arr.from
|
|
135
154
|
* @returns {[number, number][]}
|
|
136
155
|
*/
|
|
137
|
-
function findGaps(
|
|
156
|
+
function findGaps(
|
|
157
|
+
from: number,
|
|
158
|
+
to: number,
|
|
159
|
+
arr: { from: number; to: number; itm: PairedPickAndUnit }[],
|
|
160
|
+
): [number, number][] {
|
|
138
161
|
if (arr.length === 0) {
|
|
139
162
|
return [[from, to]];
|
|
140
163
|
}
|
|
@@ -166,12 +189,20 @@ const transformStratColumn = (units: Unit[]): UnitDto[] => units.map(unitDto);
|
|
|
166
189
|
* @param {Pick[]} picks picks
|
|
167
190
|
* @param {Unit[]} stratColumn strat column
|
|
168
191
|
*/
|
|
169
|
-
function joinPicksAndStratColumn(
|
|
192
|
+
function joinPicksAndStratColumn(
|
|
193
|
+
picks: Pick[],
|
|
194
|
+
stratColumn: Unit[],
|
|
195
|
+
): { joined: PickAndUnit[]; nonUnitPicks: PickWithId[] } {
|
|
170
196
|
const transformed = transformStratColumn(stratColumn);
|
|
171
197
|
const nonUnitPicks: PickWithId[] = [];
|
|
172
198
|
const joined: PickAndUnit[] = [];
|
|
173
199
|
picks.forEach((p: Pick) => {
|
|
174
|
-
const matches = transformed.filter(
|
|
200
|
+
const matches = transformed.filter(
|
|
201
|
+
(u: UnitDto) =>
|
|
202
|
+
p.pickIdentifier?.search(
|
|
203
|
+
new RegExp(`(${u.topSurface}|${u.baseSurface})`, 'i'),
|
|
204
|
+
) !== -1,
|
|
205
|
+
);
|
|
175
206
|
if (matches.length > 0) {
|
|
176
207
|
matches.forEach((u: UnitDto) =>
|
|
177
208
|
joined.push({
|
|
@@ -203,7 +234,12 @@ function pairJoinedPicks(joined: PickAndUnit[]): PairedPickAndUnit[] {
|
|
|
203
234
|
|
|
204
235
|
const sorted = joined
|
|
205
236
|
.filter((d: PickAndUnit) => d.level)
|
|
206
|
-
.sort(
|
|
237
|
+
.sort(
|
|
238
|
+
(a: PickAndUnit, b: PickAndUnit) =>
|
|
239
|
+
a.unitName.localeCompare(b.unitName) ||
|
|
240
|
+
a.md - b.md ||
|
|
241
|
+
a.ageTop - b.ageTop,
|
|
242
|
+
);
|
|
207
243
|
|
|
208
244
|
while (sorted.length > 0) {
|
|
209
245
|
current = sorted.shift()!;
|
|
@@ -225,7 +261,9 @@ function pairJoinedPicks(joined: PickAndUnit[]): PairedPickAndUnit[] {
|
|
|
225
261
|
let top: PickAndUnit | undefined;
|
|
226
262
|
let base: PickAndUnit | undefined;
|
|
227
263
|
|
|
228
|
-
const pairWith = sorted.find(
|
|
264
|
+
const pairWith = sorted.find(
|
|
265
|
+
(p: PickAndUnit) => p.identifier === pairWithName,
|
|
266
|
+
);
|
|
229
267
|
if (!pairWith) {
|
|
230
268
|
console.warn(`Unable to find ${pairWithName} pick for ${name}`);
|
|
231
269
|
if (isTop) {
|
|
@@ -237,7 +275,9 @@ function pairJoinedPicks(joined: PickAndUnit[]): PairedPickAndUnit[] {
|
|
|
237
275
|
if (base) {
|
|
238
276
|
console.warn(`Using ${base.identifier} as base for ${name}`);
|
|
239
277
|
} else {
|
|
240
|
-
console.warn(
|
|
278
|
+
console.warn(
|
|
279
|
+
`Unable to find a base pick for ${name} pick at ${top.md}, ignored`,
|
|
280
|
+
);
|
|
241
281
|
continue;
|
|
242
282
|
}
|
|
243
283
|
} else if (isBase) {
|
|
@@ -249,7 +289,9 @@ function pairJoinedPicks(joined: PickAndUnit[]): PairedPickAndUnit[] {
|
|
|
249
289
|
if (top) {
|
|
250
290
|
console.warn(`Using ${top.identifier} as top for ${name}`);
|
|
251
291
|
} else {
|
|
252
|
-
console.warn(
|
|
292
|
+
console.warn(
|
|
293
|
+
`Unable to find a top pick for ${name} pick at ${base.md}, ignored`,
|
|
294
|
+
);
|
|
253
295
|
continue;
|
|
254
296
|
}
|
|
255
297
|
} else {
|
|
@@ -290,7 +332,10 @@ function pairJoinedPicks(joined: PickAndUnit[]): PairedPickAndUnit[] {
|
|
|
290
332
|
* @param {Pick[]} picks picks
|
|
291
333
|
* @param {Unit[]} stratColumn strat column
|
|
292
334
|
*/
|
|
293
|
-
export function transformFormationData(
|
|
335
|
+
export function transformFormationData(
|
|
336
|
+
picks: Pick[],
|
|
337
|
+
stratColumn: Unit[],
|
|
338
|
+
): { unitPicks: PairedPickAndUnit[]; nonUnitPicks: PickWithId[] } {
|
|
294
339
|
const { joined, nonUnitPicks } = joinPicksAndStratColumn(picks, stratColumn);
|
|
295
340
|
const pairs = pairJoinedPicks(joined);
|
|
296
341
|
|
|
@@ -305,7 +350,10 @@ export function transformFormationData(picks: Pick[], stratColumn: Unit[]): { un
|
|
|
305
350
|
while (itemstack.length > 0) {
|
|
306
351
|
const first = itemstack.pop()!;
|
|
307
352
|
const group: PairedPickAndUnit[] = [];
|
|
308
|
-
while (
|
|
353
|
+
while (
|
|
354
|
+
itemstack.length > 0 &&
|
|
355
|
+
itemstack[itemstack.length - 1]?.level! > first.level
|
|
356
|
+
) {
|
|
309
357
|
group.push(itemstack.pop()!);
|
|
310
358
|
}
|
|
311
359
|
group.reverse();
|
|
@@ -313,11 +361,11 @@ export function transformFormationData(picks: Pick[], stratColumn: Unit[]): { un
|
|
|
313
361
|
const arr: { from: number; to: number; itm: PairedPickAndUnit }[] = [];
|
|
314
362
|
group.forEach((itm: PairedPickAndUnit) => {
|
|
315
363
|
const gaps = findGaps(itm.mdEntry, itm.mdExit, arr);
|
|
316
|
-
arr.push(...gaps.map(
|
|
364
|
+
arr.push(...gaps.map(g => ({ from: g[0], to: g[1], itm })));
|
|
317
365
|
});
|
|
318
366
|
arr.sort((a, b) => a.from - b.from);
|
|
319
367
|
unitPicks.push(
|
|
320
|
-
...arr.map(
|
|
368
|
+
...arr.map(d => ({
|
|
321
369
|
from: d.from,
|
|
322
370
|
to: d.to,
|
|
323
371
|
...d.itm,
|