@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
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
1
2
|
// @ts-nocheck
|
|
2
3
|
// https://github.com/davidfig/pixi-dashed-line
|
|
3
4
|
//
|
|
@@ -18,7 +19,7 @@
|
|
|
18
19
|
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
19
20
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
20
21
|
|
|
21
|
-
import
|
|
22
|
+
import { Graphics, Matrix, Point, Texture, SCALE_MODES } from 'pixi.js';
|
|
22
23
|
|
|
23
24
|
/** Define the dash: [dash length, gap size, dash size, gap size, ...] */
|
|
24
25
|
export type Dashes = number[];
|
|
@@ -31,8 +32,8 @@ export interface DashLineOptions {
|
|
|
31
32
|
scale?: number;
|
|
32
33
|
useTexture?: boolean;
|
|
33
34
|
useDots?: boolean;
|
|
34
|
-
cap?:
|
|
35
|
-
join?:
|
|
35
|
+
cap?: LINE_CAP;
|
|
36
|
+
join?: LINE_JOIN;
|
|
36
37
|
alignment?: number;
|
|
37
38
|
}
|
|
38
39
|
|
|
@@ -47,18 +48,18 @@ const dashLineOptionsDefault: Partial<DashLineOptions> = {
|
|
|
47
48
|
};
|
|
48
49
|
|
|
49
50
|
export class DashLine {
|
|
50
|
-
graphics:
|
|
51
|
+
graphics: Graphics;
|
|
51
52
|
|
|
52
53
|
/** current length of the line */
|
|
53
54
|
lineLength: number;
|
|
54
55
|
|
|
55
56
|
/** cursor location */
|
|
56
|
-
cursor = new
|
|
57
|
+
cursor = new Point();
|
|
57
58
|
|
|
58
59
|
/** desired scale of line */
|
|
59
60
|
scale = 1;
|
|
60
61
|
|
|
61
|
-
private start:
|
|
62
|
+
private start: Point;
|
|
62
63
|
|
|
63
64
|
private dashSize: number;
|
|
64
65
|
private dash: number[];
|
|
@@ -66,8 +67,8 @@ export class DashLine {
|
|
|
66
67
|
private useTexture: boolean;
|
|
67
68
|
private options: DashLineOptions;
|
|
68
69
|
|
|
69
|
-
// cache of
|
|
70
|
-
static dashTextureCache: Record<string,
|
|
70
|
+
// cache of Textures for dashed lines
|
|
71
|
+
static dashTextureCache: Record<string, Texture> = {};
|
|
71
72
|
|
|
72
73
|
/**
|
|
73
74
|
* Create a DashLine
|
|
@@ -78,11 +79,11 @@ export class DashLine {
|
|
|
78
79
|
* @param [options.width=1] - width of the dashed line
|
|
79
80
|
* @param [options.alpha=1] - alpha of the dashed line
|
|
80
81
|
* @param [options.color=0xffffff] - color of the dashed line
|
|
81
|
-
* @param [options.cap] - add a
|
|
82
|
-
* @param [options.join] - add a
|
|
82
|
+
* @param [options.cap] - add a LINE_CAP style to dashed lines (only works for useTexture: false)
|
|
83
|
+
* @param [options.join] - add a LINE_JOIN style to the dashed lines (only works for useTexture: false)
|
|
83
84
|
* @param [options.alignment] - The alignment of any lines drawn (0.5 = middle, 1 = outer, 0 = inner)
|
|
84
85
|
*/
|
|
85
|
-
constructor(graphics:
|
|
86
|
+
constructor(graphics: Graphics, options: DashLineOptions = {}) {
|
|
86
87
|
this.graphics = graphics;
|
|
87
88
|
options = { ...dashLineOptionsDefault, ...options };
|
|
88
89
|
this.dash = options.dash;
|
|
@@ -105,7 +106,7 @@ export class DashLine {
|
|
|
105
106
|
alignment: options.alignment,
|
|
106
107
|
});
|
|
107
108
|
} else {
|
|
108
|
-
this.graphics.
|
|
109
|
+
this.graphics.setStrokeStyle({
|
|
109
110
|
width: options.width * options.scale,
|
|
110
111
|
color: options.color,
|
|
111
112
|
alpha: options.alpha,
|
|
@@ -117,14 +118,19 @@ export class DashLine {
|
|
|
117
118
|
this.scale = options.scale;
|
|
118
119
|
}
|
|
119
120
|
|
|
120
|
-
private static distance(
|
|
121
|
+
private static distance(
|
|
122
|
+
x1: number,
|
|
123
|
+
y1: number,
|
|
124
|
+
x2: number,
|
|
125
|
+
y2: number,
|
|
126
|
+
): number {
|
|
121
127
|
return Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));
|
|
122
128
|
}
|
|
123
129
|
|
|
124
130
|
moveTo(x: number, y: number): this {
|
|
125
131
|
this.lineLength = 0;
|
|
126
132
|
this.cursor.set(x, y);
|
|
127
|
-
this.start = new
|
|
133
|
+
this.start = new Point(x, y);
|
|
128
134
|
this.graphics.moveTo(this.cursor.x, this.cursor.y);
|
|
129
135
|
return this;
|
|
130
136
|
}
|
|
@@ -142,7 +148,10 @@ export class DashLine {
|
|
|
142
148
|
this.adjustLineStyle(angle);
|
|
143
149
|
if (closed && this.dash.length % 2 === 0) {
|
|
144
150
|
const gap = Math.min(this.dash[this.dash.length - 1], length);
|
|
145
|
-
this.graphics.lineTo(
|
|
151
|
+
this.graphics.lineTo(
|
|
152
|
+
x - Math.cos(angle) * gap,
|
|
153
|
+
y - Math.sin(angle) * gap,
|
|
154
|
+
);
|
|
146
155
|
this.graphics.closePath();
|
|
147
156
|
} else {
|
|
148
157
|
this.graphics.lineTo(x, y);
|
|
@@ -176,10 +185,17 @@ export class DashLine {
|
|
|
176
185
|
const dashSize = this.dash[dashIndex] * this.scale - dashStart;
|
|
177
186
|
const dist = remaining > dashSize ? dashSize : remaining;
|
|
178
187
|
if (closed) {
|
|
179
|
-
const remainingDistance = DashLine.distance(
|
|
188
|
+
const remainingDistance = DashLine.distance(
|
|
189
|
+
x0 + cos * dist,
|
|
190
|
+
y0 + sin * dist,
|
|
191
|
+
this.start.x,
|
|
192
|
+
this.start.y,
|
|
193
|
+
);
|
|
180
194
|
if (remainingDistance <= dist) {
|
|
181
195
|
if (dashIndex % 2 === 0) {
|
|
182
|
-
const lastDash =
|
|
196
|
+
const lastDash =
|
|
197
|
+
DashLine.distance(x0, y0, this.start.x, this.start.y) -
|
|
198
|
+
this.dash[this.dash.length - 1] * this.scale;
|
|
183
199
|
x0 += cos * lastDash;
|
|
184
200
|
y0 += sin * lastDash;
|
|
185
201
|
this.graphics.lineTo(x0, y0);
|
|
@@ -212,23 +228,38 @@ export class DashLine {
|
|
|
212
228
|
this.lineTo(this.start.x, this.start.y, true);
|
|
213
229
|
}
|
|
214
230
|
|
|
215
|
-
drawCircle(
|
|
231
|
+
drawCircle(
|
|
232
|
+
x: number,
|
|
233
|
+
y: number,
|
|
234
|
+
radius: number,
|
|
235
|
+
points = 80,
|
|
236
|
+
matrix?: Matrix,
|
|
237
|
+
): this {
|
|
216
238
|
const interval = (Math.PI * 2) / points;
|
|
217
239
|
let angle = 0,
|
|
218
|
-
first:
|
|
240
|
+
first: Point;
|
|
219
241
|
if (matrix) {
|
|
220
|
-
first = new
|
|
242
|
+
first = new Point(
|
|
243
|
+
x + Math.cos(angle) * radius,
|
|
244
|
+
y + Math.sin(angle) * radius,
|
|
245
|
+
);
|
|
221
246
|
matrix.apply(first, first);
|
|
222
247
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
223
248
|
// @ts-ignore
|
|
224
249
|
this.moveTo(first[0], first[1]);
|
|
225
250
|
} else {
|
|
226
|
-
first = new
|
|
251
|
+
first = new Point(
|
|
252
|
+
x + Math.cos(angle) * radius,
|
|
253
|
+
y + Math.sin(angle) * radius,
|
|
254
|
+
);
|
|
227
255
|
this.moveTo(first.x, first.y);
|
|
228
256
|
}
|
|
229
257
|
angle += interval;
|
|
230
258
|
for (let i = 1; i < points + 1; i++) {
|
|
231
|
-
const next =
|
|
259
|
+
const next =
|
|
260
|
+
i === points
|
|
261
|
+
? first
|
|
262
|
+
: [x + Math.cos(angle) * radius, y + Math.sin(angle) * radius];
|
|
232
263
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
233
264
|
// @ts-ignore
|
|
234
265
|
this.lineTo(next[0], next[1]);
|
|
@@ -237,10 +268,17 @@ export class DashLine {
|
|
|
237
268
|
return this;
|
|
238
269
|
}
|
|
239
270
|
|
|
240
|
-
drawEllipse(
|
|
271
|
+
drawEllipse(
|
|
272
|
+
x: number,
|
|
273
|
+
y: number,
|
|
274
|
+
radiusX: number,
|
|
275
|
+
radiusY: number,
|
|
276
|
+
points = 80,
|
|
277
|
+
matrix?: Matrix,
|
|
278
|
+
): this {
|
|
241
279
|
const interval = (Math.PI * 2) / points;
|
|
242
280
|
let first: { x: number; y: number };
|
|
243
|
-
const point = new
|
|
281
|
+
const point = new Point();
|
|
244
282
|
for (let i = 0; i < Math.PI * 2; i += interval) {
|
|
245
283
|
let x0 = x - radiusX * Math.sin(i);
|
|
246
284
|
let y0 = y - radiusY * Math.cos(i);
|
|
@@ -261,8 +299,8 @@ export class DashLine {
|
|
|
261
299
|
return this;
|
|
262
300
|
}
|
|
263
301
|
|
|
264
|
-
drawPolygon(points:
|
|
265
|
-
const p = new
|
|
302
|
+
drawPolygon(points: Point[] | number[], matrix?: Matrix): this {
|
|
303
|
+
const p = new Point();
|
|
266
304
|
if (typeof points[0] === 'number') {
|
|
267
305
|
if (matrix) {
|
|
268
306
|
p.set(points[0] as number, points[1] as number);
|
|
@@ -276,26 +314,30 @@ export class DashLine {
|
|
|
276
314
|
} else {
|
|
277
315
|
this.moveTo(points[0] as number, points[1] as number);
|
|
278
316
|
for (let i = 2; i < points.length; i += 2) {
|
|
279
|
-
this.lineTo(
|
|
317
|
+
this.lineTo(
|
|
318
|
+
points[i] as number,
|
|
319
|
+
points[i + 1] as number,
|
|
320
|
+
i === points.length - 2,
|
|
321
|
+
);
|
|
280
322
|
}
|
|
281
323
|
}
|
|
282
324
|
} else {
|
|
283
325
|
if (matrix) {
|
|
284
|
-
const point = points[0] as
|
|
326
|
+
const point = points[0] as Point;
|
|
285
327
|
p.copyFrom(point);
|
|
286
328
|
matrix.apply(p, p);
|
|
287
329
|
this.moveTo(p.x, p.y);
|
|
288
330
|
for (let i = 1; i < points.length; i++) {
|
|
289
|
-
const point = points[i] as
|
|
331
|
+
const point = points[i] as Point;
|
|
290
332
|
p.copyFrom(point);
|
|
291
333
|
matrix.apply(p, p);
|
|
292
334
|
this.lineTo(p.x, p.y, i === points.length - 1);
|
|
293
335
|
}
|
|
294
336
|
} else {
|
|
295
|
-
const point = points[0] as
|
|
337
|
+
const point = points[0] as Point;
|
|
296
338
|
this.moveTo(point.x, point.y);
|
|
297
339
|
for (let i = 1; i < points.length; i++) {
|
|
298
|
-
const point = points[i] as
|
|
340
|
+
const point = points[i] as Point;
|
|
299
341
|
this.lineTo(point.x, point.y, i === points.length - 1);
|
|
300
342
|
}
|
|
301
343
|
}
|
|
@@ -303,9 +345,15 @@ export class DashLine {
|
|
|
303
345
|
return this;
|
|
304
346
|
}
|
|
305
347
|
|
|
306
|
-
drawRect(
|
|
348
|
+
drawRect(
|
|
349
|
+
x: number,
|
|
350
|
+
y: number,
|
|
351
|
+
width: number,
|
|
352
|
+
height: number,
|
|
353
|
+
matrix?: Matrix,
|
|
354
|
+
): this {
|
|
307
355
|
if (matrix) {
|
|
308
|
-
const p = new
|
|
356
|
+
const p = new Point();
|
|
309
357
|
|
|
310
358
|
// moveTo(x, y)
|
|
311
359
|
p.set(x, y);
|
|
@@ -344,7 +392,7 @@ export class DashLine {
|
|
|
344
392
|
// adjust the matrix for the dashed texture
|
|
345
393
|
private adjustLineStyle(angle: number) {
|
|
346
394
|
const lineStyle = this.graphics.line;
|
|
347
|
-
lineStyle.matrix = new
|
|
395
|
+
lineStyle.matrix = new Matrix();
|
|
348
396
|
if (angle) {
|
|
349
397
|
lineStyle.matrix.rotate(angle);
|
|
350
398
|
}
|
|
@@ -352,12 +400,18 @@ export class DashLine {
|
|
|
352
400
|
lineStyle.matrix.scale(this.scale, this.scale);
|
|
353
401
|
}
|
|
354
402
|
const textureStart = -this.lineLength;
|
|
355
|
-
lineStyle.matrix.translate(
|
|
403
|
+
lineStyle.matrix.translate(
|
|
404
|
+
this.cursor.x + textureStart * Math.cos(angle),
|
|
405
|
+
this.cursor.y + textureStart * Math.sin(angle),
|
|
406
|
+
);
|
|
356
407
|
this.graphics.lineStyle(lineStyle);
|
|
357
408
|
}
|
|
358
409
|
|
|
359
410
|
// creates or uses cached texture
|
|
360
|
-
private static getTexture(
|
|
411
|
+
private static getTexture(
|
|
412
|
+
options: DashLineOptions,
|
|
413
|
+
dashSize: number,
|
|
414
|
+
): Texture | undefined {
|
|
361
415
|
const key = options.dash.toString();
|
|
362
416
|
if (DashLine.dashTextureCache[key]) {
|
|
363
417
|
return DashLine.dashTextureCache[key];
|
|
@@ -370,7 +424,6 @@ export class DashLine {
|
|
|
370
424
|
console.warn('Did not get context from canvas');
|
|
371
425
|
return undefined;
|
|
372
426
|
}
|
|
373
|
-
context.strokeStyle = 'white';
|
|
374
427
|
context.globalAlpha = options.alpha;
|
|
375
428
|
context.lineWidth = options.width;
|
|
376
429
|
let x = 0;
|
|
@@ -384,9 +437,10 @@ export class DashLine {
|
|
|
384
437
|
context.moveTo(x, y);
|
|
385
438
|
}
|
|
386
439
|
}
|
|
440
|
+
context.strokeStyle = 'white';
|
|
387
441
|
context.stroke();
|
|
388
|
-
const texture = (DashLine.dashTextureCache[key] =
|
|
389
|
-
texture.baseTexture.scaleMode =
|
|
442
|
+
const texture = (DashLine.dashTextureCache[key] = Texture.from(canvas));
|
|
443
|
+
texture.baseTexture.scaleMode = SCALE_MODES.NEAREST;
|
|
390
444
|
return texture;
|
|
391
445
|
}
|
|
392
446
|
}
|