@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.
Files changed (97) hide show
  1. package/dist/components/axis.d.ts.map +1 -1
  2. package/dist/control/ExtendedCurveInterpolator.d.ts.map +1 -1
  3. package/dist/control/IntersectionReferenceSystem.d.ts.map +1 -1
  4. package/dist/control/LayerManager.d.ts.map +1 -1
  5. package/dist/control/MainController.d.ts.map +1 -1
  6. package/dist/control/ZoomPanHandler.d.ts.map +1 -1
  7. package/dist/control/overlay.d.ts.map +1 -1
  8. package/dist/datautils/colortable.d.ts.map +1 -1
  9. package/dist/datautils/findsample.d.ts.map +1 -1
  10. package/dist/datautils/picks.d.ts.map +1 -1
  11. package/dist/datautils/schematicShapeGenerator.d.ts +10 -10
  12. package/dist/datautils/schematicShapeGenerator.d.ts.map +1 -1
  13. package/dist/datautils/seismicimage.d.ts.map +1 -1
  14. package/dist/datautils/surfacedata.d.ts.map +1 -1
  15. package/dist/datautils/trajectory.d.ts.map +1 -1
  16. package/dist/index.cjs +2 -2
  17. package/dist/index.cjs.map +1 -1
  18. package/dist/index.mjs +2533 -1570
  19. package/dist/index.mjs.map +1 -1
  20. package/dist/index.umd.js +2 -2
  21. package/dist/index.umd.js.map +1 -1
  22. package/dist/layers/CalloutCanvasLayer.d.ts.map +1 -1
  23. package/dist/layers/CustomDisplayObjects/ComplexRope.d.ts +2 -3
  24. package/dist/layers/CustomDisplayObjects/ComplexRope.d.ts.map +1 -1
  25. package/dist/layers/CustomDisplayObjects/ComplexRopeGeometry.d.ts.map +1 -1
  26. package/dist/layers/CustomDisplayObjects/FixedWidthSimpleRope.d.ts +3 -4
  27. package/dist/layers/CustomDisplayObjects/FixedWidthSimpleRope.d.ts.map +1 -1
  28. package/dist/layers/CustomDisplayObjects/FixedWidthSimpleRopeGeometry.d.ts +4 -4
  29. package/dist/layers/CustomDisplayObjects/FixedWidthSimpleRopeGeometry.d.ts.map +1 -1
  30. package/dist/layers/CustomDisplayObjects/UniformTextureStretchRope.d.ts +3 -4
  31. package/dist/layers/CustomDisplayObjects/UniformTextureStretchRope.d.ts.map +1 -1
  32. package/dist/layers/CustomDisplayObjects/UniformTextureStretchRopeGeometry.d.ts +4 -4
  33. package/dist/layers/CustomDisplayObjects/UniformTextureStretchRopeGeometry.d.ts.map +1 -1
  34. package/dist/layers/GeomodelCanvasLayer.d.ts.map +1 -1
  35. package/dist/layers/GeomodelLabelsLayer.d.ts.map +1 -1
  36. package/dist/layers/GeomodelLayerV2.d.ts.map +1 -1
  37. package/dist/layers/GridLayer.d.ts.map +1 -1
  38. package/dist/layers/ImageCanvasLayer.d.ts.map +1 -1
  39. package/dist/layers/ReferenceLineLayer.d.ts.map +1 -1
  40. package/dist/layers/SchematicLayer.d.ts +6 -6
  41. package/dist/layers/SchematicLayer.d.ts.map +1 -1
  42. package/dist/layers/WellborePathLayer.d.ts.map +1 -1
  43. package/dist/layers/base/CanvasLayer.d.ts.map +1 -1
  44. package/dist/layers/base/HTMLLayer.d.ts.map +1 -1
  45. package/dist/layers/base/Layer.d.ts.map +1 -1
  46. package/dist/layers/base/PixiLayer.d.ts +7 -8
  47. package/dist/layers/base/PixiLayer.d.ts.map +1 -1
  48. package/dist/layers/base/SVGLayer.d.ts.map +1 -1
  49. package/dist/layers/schematicInterfaces.d.ts.map +1 -1
  50. package/dist/utils/arc-length.d.ts.map +1 -1
  51. package/dist/utils/root-finder.d.ts.map +1 -1
  52. package/dist/utils/text.d.ts.map +1 -1
  53. package/dist/utils/vectorUtils.d.ts +6 -6
  54. package/dist/utils/vectorUtils.d.ts.map +1 -1
  55. package/dist/vendor/pixi-dashed-line/index.d.ts +13 -13
  56. package/dist/vendor/pixi-dashed-line/index.d.ts.map +1 -1
  57. package/package.json +4 -6
  58. package/src/components/axis.ts +40 -10
  59. package/src/control/ExtendedCurveInterpolator.ts +47 -9
  60. package/src/control/IntersectionReferenceSystem.ts +110 -30
  61. package/src/control/LayerManager.ts +76 -24
  62. package/src/control/MainController.ts +37 -8
  63. package/src/control/ZoomPanHandler.ts +76 -14
  64. package/src/control/overlay.ts +18 -6
  65. package/src/datautils/colortable.ts +7 -2
  66. package/src/datautils/findsample.ts +12 -2
  67. package/src/datautils/picks.ts +66 -18
  68. package/src/datautils/schematicShapeGenerator.ts +591 -165
  69. package/src/datautils/seismicimage.ts +36 -10
  70. package/src/datautils/surfacedata.ts +119 -40
  71. package/src/datautils/trajectory.ts +56 -17
  72. package/src/layers/CalloutCanvasLayer.ts +129 -26
  73. package/src/layers/CustomDisplayObjects/ComplexRope.ts +11 -13
  74. package/src/layers/CustomDisplayObjects/ComplexRopeGeometry.ts +14 -13
  75. package/src/layers/CustomDisplayObjects/FixedWidthSimpleRope.ts +11 -14
  76. package/src/layers/CustomDisplayObjects/FixedWidthSimpleRopeGeometry.ts +13 -12
  77. package/src/layers/CustomDisplayObjects/UniformTextureStretchRope.ts +16 -17
  78. package/src/layers/CustomDisplayObjects/UniformTextureStretchRopeGeometry.ts +11 -11
  79. package/src/layers/GeomodelCanvasLayer.ts +10 -3
  80. package/src/layers/GeomodelLabelsLayer.ts +212 -87
  81. package/src/layers/GeomodelLayerV2.ts +11 -7
  82. package/src/layers/GridLayer.ts +14 -3
  83. package/src/layers/ImageCanvasLayer.ts +17 -3
  84. package/src/layers/ReferenceLineLayer.ts +31 -9
  85. package/src/layers/SchematicLayer.ts +533 -173
  86. package/src/layers/WellborePathLayer.ts +22 -7
  87. package/src/layers/base/CanvasLayer.ts +18 -4
  88. package/src/layers/base/HTMLLayer.ts +11 -3
  89. package/src/layers/base/Layer.ts +10 -2
  90. package/src/layers/base/PixiLayer.ts +36 -43
  91. package/src/layers/base/SVGLayer.ts +13 -3
  92. package/src/layers/schematicInterfaces.ts +16 -6
  93. package/src/utils/arc-length.ts +31 -5
  94. package/src/utils/root-finder.ts +32 -4
  95. package/src/utils/text.ts +34 -7
  96. package/src/utils/vectorUtils.ts +27 -10
  97. 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 * as PIXI from 'pixi.js';
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?: PIXI.LINE_CAP;
35
- join?: PIXI.LINE_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: PIXI.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 PIXI.Point();
57
+ cursor = new Point();
57
58
 
58
59
  /** desired scale of line */
59
60
  scale = 1;
60
61
 
61
- private start: PIXI.Point;
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 PIXI.Textures for dashed lines
70
- static dashTextureCache: Record<string, PIXI.Texture> = {};
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 PIXI.LINE_CAP style to dashed lines (only works for useTexture: false)
82
- * @param [options.join] - add a PIXI.LINE_JOIN style to the dashed lines (only works for useTexture: false)
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: PIXI.Graphics, options: DashLineOptions = {}) {
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.lineStyle({
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(x1: number, y1: number, x2: number, y2: number): number {
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 PIXI.Point(x, y);
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(x - Math.cos(angle) * gap, y - Math.sin(angle) * gap);
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(x0 + cos * dist, y0 + sin * dist, this.start.x, this.start.y);
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 = DashLine.distance(x0, y0, this.start.x, this.start.y) - this.dash[this.dash.length - 1] * this.scale;
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(x: number, y: number, radius: number, points = 80, matrix?: PIXI.Matrix): this {
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: PIXI.Point;
240
+ first: Point;
219
241
  if (matrix) {
220
- first = new PIXI.Point(x + Math.cos(angle) * radius, y + Math.sin(angle) * radius);
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 PIXI.Point(x + Math.cos(angle) * radius, y + Math.sin(angle) * radius);
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 = i === points ? first : [x + Math.cos(angle) * radius, y + Math.sin(angle) * radius];
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(x: number, y: number, radiusX: number, radiusY: number, points = 80, matrix?: PIXI.Matrix): this {
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 PIXI.Point();
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: PIXI.Point[] | number[], matrix?: PIXI.Matrix): this {
265
- const p = new PIXI.Point();
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(points[i] as number, points[i + 1] as number, i === points.length - 2);
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 PIXI.Point;
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 PIXI.Point;
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 PIXI.Point;
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 PIXI.Point;
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(x: number, y: number, width: number, height: number, matrix?: PIXI.Matrix): this {
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 PIXI.Point();
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 PIXI.Matrix();
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(this.cursor.x + textureStart * Math.cos(angle), this.cursor.y + textureStart * Math.sin(angle));
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(options: DashLineOptions, dashSize: number): PIXI.Texture | undefined {
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] = PIXI.Texture.from(canvas));
389
- texture.baseTexture.scaleMode = PIXI.SCALE_MODES.NEAREST;
442
+ const texture = (DashLine.dashTextureCache[key] = Texture.from(canvas));
443
+ texture.baseTexture.scaleMode = SCALE_MODES.NEAREST;
390
444
  return texture;
391
445
  }
392
446
  }