@equinor/esv-intersection 3.0.0-beta.3 → 3.0.0-beta.5

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 (77) hide show
  1. package/README.md +0 -1
  2. package/dist/components/axis.d.ts +1 -1
  3. package/dist/control/ZoomPanHandler.d.ts +1 -1
  4. package/dist/datautils/picks.d.ts +6 -6
  5. package/dist/datautils/schematicShapeGenerator.d.ts +25 -13
  6. package/dist/datautils/seismicimage.d.ts +1 -1
  7. package/dist/index.esm.js +1 -1
  8. package/dist/index.js +1 -1
  9. package/dist/index.umd.js +1 -412
  10. package/dist/interfaces.d.ts +1 -1
  11. package/dist/layers/CalloutCanvasLayer.d.ts +2 -2
  12. package/dist/layers/CustomDisplayObjects/ComplexRope.d.ts +2 -2
  13. package/dist/layers/GeomodelCanvasLayer.d.ts +1 -1
  14. package/dist/layers/ImageCanvasLayer.d.ts +1 -1
  15. package/dist/layers/ReferenceLineLayer.d.ts +29 -0
  16. package/dist/layers/SchematicLayer.d.ts +18 -7
  17. package/dist/layers/SeismicCanvasLayer.d.ts +2 -3
  18. package/dist/layers/index.d.ts +1 -0
  19. package/dist/layers/schematicInterfaces.d.ts +20 -4
  20. package/dist/utils/arc-length.d.ts +1 -1
  21. package/dist/utils/root-finder.d.ts +1 -1
  22. package/dist/utils/vectorUtils.d.ts +6 -6
  23. package/package.json +37 -30
  24. package/src/components/axis.ts +247 -0
  25. package/src/components/index.ts +1 -0
  26. package/src/constants.ts +17 -0
  27. package/src/control/ExtendedCurveInterpolator.ts +155 -0
  28. package/src/control/IntersectionReferenceSystem.ts +391 -0
  29. package/src/control/LayerManager.ts +294 -0
  30. package/src/control/MainController.ts +296 -0
  31. package/src/control/ZoomPanHandler.ts +436 -0
  32. package/src/control/index.ts +5 -0
  33. package/src/control/interfaces.ts +42 -0
  34. package/src/control/overlay.ts +118 -0
  35. package/src/datautils/camelcase.ts +28 -0
  36. package/src/datautils/colortable.ts +14 -0
  37. package/src/datautils/findsample.ts +64 -0
  38. package/src/datautils/index.ts +6 -0
  39. package/src/datautils/interfaces.ts +68 -0
  40. package/src/datautils/picks.ts +328 -0
  41. package/src/datautils/schematicShapeGenerator.ts +919 -0
  42. package/src/datautils/seismicimage.ts +180 -0
  43. package/src/datautils/surfacedata.ts +318 -0
  44. package/src/datautils/trajectory.ts +206 -0
  45. package/src/index.ts +6 -0
  46. package/src/interfaces.ts +99 -0
  47. package/src/layers/CalloutCanvasLayer.ts +338 -0
  48. package/src/layers/CustomDisplayObjects/ComplexRope.ts +45 -0
  49. package/src/layers/CustomDisplayObjects/ComplexRopeGeometry.ts +190 -0
  50. package/src/layers/CustomDisplayObjects/FixedWidthSimpleRope.ts +41 -0
  51. package/src/layers/CustomDisplayObjects/FixedWidthSimpleRopeGeometry.ts +149 -0
  52. package/src/layers/CustomDisplayObjects/UniformTextureStretchRope.ts +39 -0
  53. package/src/layers/CustomDisplayObjects/UniformTextureStretchRopeGeometry.ts +174 -0
  54. package/src/layers/GeomodelCanvasLayer.ts +176 -0
  55. package/src/layers/GeomodelLabelsLayer.ts +619 -0
  56. package/src/layers/GeomodelLayerV2.ts +110 -0
  57. package/src/layers/GridLayer.ts +145 -0
  58. package/src/layers/ImageCanvasLayer.ts +55 -0
  59. package/src/layers/ReferenceLineLayer.ts +185 -0
  60. package/src/layers/SchematicLayer.ts +829 -0
  61. package/src/layers/SeismicCanvasLayer.ts +46 -0
  62. package/src/layers/WellborePathLayer.ts +129 -0
  63. package/src/layers/base/CanvasLayer.ts +102 -0
  64. package/src/layers/base/HTMLLayer.ts +70 -0
  65. package/src/layers/base/Layer.ts +217 -0
  66. package/src/layers/base/PixiLayer.ts +190 -0
  67. package/src/layers/base/SVGLayer.ts +63 -0
  68. package/src/layers/base/index.ts +5 -0
  69. package/src/layers/index.ts +16 -0
  70. package/src/layers/schematicInterfaces.ts +433 -0
  71. package/src/utils/arc-length.ts +66 -0
  72. package/src/utils/binary-search.ts +26 -0
  73. package/src/utils/color.ts +22 -0
  74. package/src/utils/index.ts +1 -0
  75. package/src/utils/root-finder.ts +78 -0
  76. package/src/utils/text.ts +88 -0
  77. package/src/utils/vectorUtils.ts +67 -0
package/README.md CHANGED
@@ -11,7 +11,6 @@ Part of the [Equinor Subsurface Visualization project](https://github.com/equino
11
11
  - **Documentation (latest)**: https://equinor.github.io/esv-intersection/
12
12
  - **Storybook (latest)**: https://equinor.github.io/esv-intersection/storybook/latest
13
13
  - **Storybook (nightly)**: https://equinor.github.io/esv-intersection/storybook/master
14
- - **React/typescript example**: https://github.com/equinor/react-intersection-example
15
14
 
16
15
  ## Getting started
17
16
 
@@ -1,7 +1,7 @@
1
1
  import { Selection } from 'd3-selection';
2
2
  import { ScaleLinear } from 'd3-scale';
3
3
  import { OnResizeEvent, OnRescaleEvent } from '../interfaces';
4
- export declare type Options = {
4
+ export type Options = {
5
5
  offsetX: number;
6
6
  offsetY: number;
7
7
  visible: boolean;
@@ -2,7 +2,7 @@ import { Selection } from 'd3-selection';
2
2
  import { ScaleLinear } from 'd3-scale';
3
3
  import { ZoomBehavior, ZoomTransform } from 'd3-zoom';
4
4
  import { ZoomAndPanOptions, OnRescaleEvent } from '../interfaces';
5
- export declare type RescaleFunction = (event: OnRescaleEvent) => void;
5
+ export type RescaleFunction = (event: OnRescaleEvent) => void;
6
6
  /**
7
7
  * Handle zoom and pan for intersection layers
8
8
  */
@@ -1,5 +1,5 @@
1
1
  import { Annotation } from '../interfaces';
2
- declare type Pick = {
2
+ type Pick = {
3
3
  pickIdentifier?: string;
4
4
  confidence: string | null;
5
5
  depthReferencePoint: string;
@@ -7,10 +7,10 @@ declare type Pick = {
7
7
  mdUnit: string;
8
8
  tvd: number;
9
9
  };
10
- declare type PickWithId = {
10
+ type PickWithId = {
11
11
  identifier: string;
12
12
  } & Pick;
13
- declare type Unit = {
13
+ type Unit = {
14
14
  identifier: string;
15
15
  top: string;
16
16
  base: string;
@@ -23,7 +23,7 @@ declare type Unit = {
23
23
  lithologyType: number;
24
24
  stratUnitParent: number;
25
25
  };
26
- declare type UnitDto = {
26
+ type UnitDto = {
27
27
  unitName: string;
28
28
  topSurface: string;
29
29
  baseSurface: string;
@@ -38,8 +38,8 @@ declare type UnitDto = {
38
38
  lithType: number;
39
39
  parent: number;
40
40
  };
41
- declare type PickAndUnit = PickWithId & UnitDto;
42
- declare type PairedPickAndUnit = {
41
+ type PickAndUnit = PickWithId & UnitDto;
42
+ type PairedPickAndUnit = {
43
43
  name: string;
44
44
  mdEntry: number;
45
45
  tvdEntry: number;
@@ -1,22 +1,27 @@
1
1
  import { IPoint, Point, Texture } from 'pixi.js';
2
2
  import { Casing, Cement, CementOptions, CementPlug, CementPlugOptions, CementSqueeze, CementSqueezeOptions, Completion, HoleOptions, HoleSize, ScreenOptions, TubingOptions, Perforation, PerforationOptions } from '../layers/schematicInterfaces';
3
3
  import { ComplexRopeSegment } from '../layers/CustomDisplayObjects/ComplexRope';
4
- export declare type PerforationShape = ComplexRopeSegment;
4
+ export type PerforationShape = ComplexRopeSegment;
5
5
  export interface TubularRenderingObject {
6
- id: string;
7
6
  leftPath: Point[];
8
7
  rightPath: Point[];
9
- referenceDiameter: number;
10
- referenceRadius: number;
11
8
  }
12
- export interface CasingRenderObject extends TubularRenderingObject {
9
+ export interface CasingRenderObject {
10
+ id: string;
13
11
  kind: 'casing';
14
- pathPoints: number[][];
15
- polygon: Point[];
12
+ referenceDiameter: number;
13
+ referenceRadius: number;
16
14
  casingWallWidth: number;
17
15
  hasShoe: boolean;
18
16
  bottom: number;
19
17
  zIndex?: number;
18
+ sections: {
19
+ kind: 'casing' | 'casing-window';
20
+ leftPath: Point[];
21
+ rightPath: Point[];
22
+ pathPoints: Point[];
23
+ polygon: IPoint[];
24
+ }[];
20
25
  }
21
26
  export declare const getEndLines: (rightPath: IPoint[], leftPath: IPoint[]) => {
22
27
  top: IPoint[];
@@ -24,6 +29,7 @@ export declare const getEndLines: (rightPath: IPoint[], leftPath: IPoint[]) => {
24
29
  };
25
30
  export declare const makeTubularPolygon: (rightPath: Point[], leftPath: Point[]) => Point[];
26
31
  export declare const overlaps: (top1: number, bottom1: number, top2: number, bottom2: number) => boolean;
32
+ export declare const strictlyOverlaps: (top1: number, bottom1: number, top2: number, bottom2: number) => boolean;
27
33
  export declare const uniq: <T>(arr: T[]) => T[];
28
34
  export declare const getUniqueDiameterChangeDepths: ([intervalStart, intervalEnd]: [number, number], diameterIntervals: {
29
35
  start: number;
@@ -31,20 +37,26 @@ export declare const getUniqueDiameterChangeDepths: ([intervalStart, intervalEnd
31
37
  }[]) => number[];
32
38
  export declare const findCementOuterDiameterAtDepth: (attachedStrings: (Casing | Completion)[], nonAttachedStrings: (Casing | Completion)[], holes: HoleSize[], depth: number) => number;
33
39
  export declare const findCementPlugInnerDiameterAtDepth: (attachedStrings: (Casing | Completion)[], nonAttachedStrings: (Casing | Completion)[], holes: HoleSize[], depth: number) => number;
34
- export declare const createComplexRopeSegmentsForCement: (cement: Cement, casings: Casing[], completion: Completion[], holes: HoleSize[], exaggerationFactor: number, getPoints: (start: number, end: number) => [number, number][]) => ComplexRopeSegment[];
40
+ export declare const createComplexRopeSegmentsForCement: (cement: Cement, casings: Casing[], completion: Completion[], holes: HoleSize[], exaggerationFactor: number, getPoints: (start: number, end: number) => Point[]) => ComplexRopeSegment[];
35
41
  export declare const perforationDiameterChangeDepths: (perforation: Perforation, diameterIntervals: {
36
42
  start: number;
37
43
  end: number;
38
44
  }[]) => number[];
39
- export declare const createComplexRopeSegmentsForCementSqueeze: (squeeze: CementSqueeze, casings: Casing[], completion: Completion[], holes: HoleSize[], exaggerationFactor: number, getPoints: (start: number, end: number) => [number, number][]) => ComplexRopeSegment[];
40
- export declare const createComplexRopeSegmentsForCementPlug: (plug: CementPlug, casings: Casing[], completion: Completion[], holes: HoleSize[], exaggerationFactor: number, getPoints: (start: number, end: number) => [number, number][]) => ComplexRopeSegment[];
45
+ export declare const createComplexRopeSegmentsForCementSqueeze: (squeeze: CementSqueeze, casings: Casing[], completion: Completion[], holes: HoleSize[], exaggerationFactor: number, getPoints: (start: number, end: number) => Point[]) => ComplexRopeSegment[];
46
+ export declare const createComplexRopeSegmentsForCementPlug: (plug: CementPlug, casings: Casing[], completion: Completion[], holes: HoleSize[], exaggerationFactor: number, getPoints: (start: number, end: number) => Point[]) => ComplexRopeSegment[];
41
47
  export declare const createHoleBaseTexture: ({ firstColor, secondColor }: HoleOptions, width: number, height: number) => Texture;
42
48
  export declare const createScreenTexture: ({ scalingFactor }: ScreenOptions) => Texture;
43
49
  export declare const createTubingTexture: ({ innerColor, outerColor, scalingFactor }: TubingOptions) => Texture;
44
50
  export declare const createCementTexture: ({ firstColor, secondColor, scalingFactor }: CementOptions) => Texture;
45
51
  export declare const createCementPlugTexture: ({ firstColor, secondColor, scalingFactor }: CementPlugOptions) => Texture;
46
52
  export declare const createCementSqueezeTexture: ({ firstColor, secondColor, scalingFactor }: CementSqueezeOptions) => Texture;
47
- export declare const createTubularRenderingObject: (id: string, diameter: number, pathPoints: [number, number][]) => TubularRenderingObject;
48
- export declare const prepareCasingRenderObject: (exaggerationFactor: number, casing: Casing, pathPoints: [number, number][]) => CasingRenderObject;
49
- export declare const createComplexRopeSegmentsForPerforation: (perforation: Perforation, casings: Casing[], holes: HoleSize[], exaggerationFactor: number, getPoints: (start: number, end: number) => [number, number][]) => ComplexRopeSegment[];
53
+ export declare const createTubularRenderingObject: (radius: number, pathPoints: IPoint[]) => TubularRenderingObject;
54
+ export type CasingInterval = {
55
+ kind: 'casing' | 'casing-window';
56
+ start: number;
57
+ end: number;
58
+ };
59
+ export declare const getCasingIntervalsWithWindows: (casing: Casing) => CasingInterval[];
60
+ export declare const prepareCasingRenderObject: (exaggerationFactor: number, casing: Casing, getPathPoints: (start: number, end: number) => Point[]) => CasingRenderObject;
61
+ export declare const createComplexRopeSegmentsForPerforation: (perforation: Perforation, casings: Casing[], holes: HoleSize[], exaggerationFactor: number, getPoints: (start: number, end: number) => Point[]) => ComplexRopeSegment[];
50
62
  export declare const createPerforationTexture: (perforation: Perforation, widestPerfShapeDiameter: number, otherPerforations: Perforation[], perforationOptions: PerforationOptions) => Texture;
@@ -1,5 +1,5 @@
1
1
  import { SeismicCanvasDataOptions } from '../layers/SeismicCanvasLayer';
2
- export declare type SeismicInfo = {
2
+ export type SeismicInfo = {
3
3
  minX: number;
4
4
  maxX: number;
5
5
  minTvdMsl: number;