@equinor/esv-intersection 2.2.0 → 3.0.0-beta.1
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 +1 -1
- package/dist/constants.d.ts +6 -3
- package/dist/control/IntersectionReferenceSystem.d.ts +20 -5
- package/dist/control/LayerManager.d.ts +6 -6
- package/dist/control/MainController.d.ts +5 -5
- package/dist/control/ZoomPanHandler.d.ts +4 -2
- package/dist/control/index.d.ts +3 -3
- package/dist/control/interfaces.d.ts +10 -10
- package/dist/control/overlay.d.ts +6 -6
- package/dist/datautils/index.d.ts +3 -3
- package/dist/datautils/interfaces.d.ts +8 -2
- package/dist/datautils/picks.d.ts +70 -6
- package/dist/datautils/schematicShapeGenerator.d.ts +54 -0
- package/dist/datautils/seismicimage.d.ts +14 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1 -1
- package/dist/index.umd.js +343 -364
- package/dist/interfaces.d.ts +21 -121
- package/dist/layers/CalloutCanvasLayer.d.ts +14 -5
- package/dist/layers/CustomDisplayObjects/ComplexRope.d.ts +22 -0
- package/dist/layers/CustomDisplayObjects/ComplexRopeGeometry.d.ts +27 -0
- package/dist/layers/CustomDisplayObjects/FixedWidthSimpleRope.d.ts +20 -0
- package/dist/layers/CustomDisplayObjects/FixedWidthSimpleRopeGeometry.d.ts +26 -0
- package/dist/layers/CustomDisplayObjects/UniformTextureStretchRope.d.ts +17 -0
- package/dist/layers/CustomDisplayObjects/UniformTextureStretchRopeGeometry.d.ts +24 -0
- package/dist/layers/GeomodelCanvasLayer.d.ts +15 -14
- package/dist/layers/GeomodelLabelsLayer.d.ts +24 -12
- package/dist/layers/GeomodelLayerV2.d.ts +5 -6
- package/dist/layers/GridLayer.d.ts +17 -5
- package/dist/layers/ImageCanvasLayer.d.ts +15 -4
- package/dist/layers/SchematicLayer.d.ts +91 -0
- package/dist/layers/SeismicCanvasLayer.d.ts +13 -2
- package/dist/layers/WellborePathLayer.d.ts +11 -4
- package/dist/layers/base/CanvasLayer.d.ts +5 -5
- package/dist/layers/base/HTMLLayer.d.ts +2 -2
- package/dist/layers/base/Layer.d.ts +35 -15
- package/dist/layers/base/PixiLayer.d.ts +18 -13
- package/dist/layers/base/SVGLayer.d.ts +2 -2
- package/dist/layers/base/index.d.ts +2 -2
- package/dist/layers/index.d.ts +9 -12
- package/dist/layers/schematicInterfaces.d.ts +169 -0
- package/package.json +7 -5
- package/dist/datautils/wellboreItemShapeGenerator.d.ts +0 -22
- package/dist/layers/CasingLayer.d.ts +0 -21
- package/dist/layers/CementLayer.d.ts +0 -14
- package/dist/layers/CompletionLayer.d.ts +0 -20
- package/dist/layers/GeomodelLayer.d.ts +0 -7
- package/dist/layers/HoleSizeLayer.d.ts +0 -11
- package/dist/layers/WellboreBaseComponentLayer.d.ts +0 -26
package/dist/interfaces.d.ts
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { ZoomTransform } from 'd3-zoom';
|
|
2
|
-
import { Graphics
|
|
3
|
-
import { Layer } from './layers/base/Layer';
|
|
4
|
-
import { IntersectionReferenceSystem } from './control/IntersectionReferenceSystem';
|
|
2
|
+
import { Graphics } from 'pixi.js';
|
|
5
3
|
import Vector2 from '@equinor/videx-vector2';
|
|
4
|
+
import { ScaleLinear } from 'd3-scale';
|
|
5
|
+
import { ExtendedCurveInterpolator } from './control/ExtendedCurveInterpolator';
|
|
6
|
+
import { CurveInterpolator } from 'curve-interpolator';
|
|
6
7
|
interface LayerEvent {
|
|
7
|
-
[propType: string]: any;
|
|
8
8
|
elm?: HTMLElement;
|
|
9
9
|
}
|
|
10
10
|
export interface OnMountEvent extends LayerEvent {
|
|
11
11
|
elm: HTMLElement;
|
|
12
|
+
width?: number;
|
|
13
|
+
height?: number;
|
|
12
14
|
}
|
|
13
15
|
export interface OnUnmountEvent extends LayerEvent {
|
|
14
16
|
}
|
|
@@ -17,76 +19,20 @@ export interface OnResizeEvent extends LayerEvent {
|
|
|
17
19
|
height: number;
|
|
18
20
|
}
|
|
19
21
|
export interface OnRescaleEvent extends LayerEvent {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
xRatio
|
|
27
|
-
yRatio
|
|
28
|
-
transform?: ZoomTransform;
|
|
29
|
-
}
|
|
30
|
-
export interface OnUpdateEvent extends LayerEvent {
|
|
31
|
-
}
|
|
32
|
-
export interface LayerOptions {
|
|
33
|
-
order?: number;
|
|
34
|
-
layerOpacity?: number;
|
|
35
|
-
referenceSystem?: IntersectionReferenceSystem;
|
|
36
|
-
data?: any;
|
|
37
|
-
interactive?: boolean;
|
|
38
|
-
onMount?(event: OnMountEvent, layer: Layer): void;
|
|
39
|
-
onUnmount?(event: OnUnmountEvent, layer: Layer): void;
|
|
40
|
-
onUpdate?(event: OnUpdateEvent, layer: Layer): void;
|
|
41
|
-
onRescale?(event: OnRescaleEvent, layer: Layer): void;
|
|
42
|
-
onResize?(event: OnResizeEvent, layer: Layer): void;
|
|
43
|
-
}
|
|
44
|
-
export interface GridLayerOptions extends LayerOptions {
|
|
45
|
-
majorWidth?: number;
|
|
46
|
-
majorColor?: string;
|
|
47
|
-
minorWidth?: number;
|
|
48
|
-
minorColor?: string;
|
|
49
|
-
}
|
|
50
|
-
export interface WellborepathLayerOptions extends LayerOptions {
|
|
51
|
-
stroke: string;
|
|
52
|
-
strokeWidth: string;
|
|
53
|
-
curveType?: string;
|
|
54
|
-
tension?: number;
|
|
55
|
-
}
|
|
56
|
-
export interface GeomodelLayerOptions extends LayerOptions {
|
|
57
|
-
}
|
|
58
|
-
export interface CompletionLayerOptions extends PixiLayerOptions {
|
|
59
|
-
}
|
|
60
|
-
export interface GeomodelLayerLabelsOptions extends LayerOptions {
|
|
61
|
-
margins?: number;
|
|
62
|
-
minFontSize?: number;
|
|
63
|
-
maxFontSize?: number;
|
|
64
|
-
textColor?: string;
|
|
65
|
-
font?: string;
|
|
66
|
-
}
|
|
67
|
-
export interface HoleSizeLayerOptions extends WellComponentBaseOptions {
|
|
68
|
-
firstColor?: string;
|
|
69
|
-
secondColor?: string;
|
|
70
|
-
lineColor?: number;
|
|
71
|
-
}
|
|
72
|
-
export interface CasingShoeSize {
|
|
22
|
+
xScale: ScaleLinear<number, number, never>;
|
|
23
|
+
yScale: ScaleLinear<number, number, never>;
|
|
24
|
+
xBounds: [number, number];
|
|
25
|
+
yBounds: [number, number];
|
|
26
|
+
zFactor: number;
|
|
27
|
+
viewportRatio: number;
|
|
28
|
+
xRatio: number;
|
|
29
|
+
yRatio: number;
|
|
73
30
|
width: number;
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
export interface CasingLayerOptions extends WellComponentBaseOptions {
|
|
77
|
-
solidColor?: number;
|
|
78
|
-
lineColor?: number;
|
|
79
|
-
casingShoeSize?: CasingShoeSize;
|
|
80
|
-
}
|
|
81
|
-
export interface CementLayerOptions extends WellComponentBaseOptions {
|
|
82
|
-
firstColor?: string;
|
|
83
|
-
secondColor?: string;
|
|
84
|
-
}
|
|
85
|
-
export interface PixiLayerOptions extends LayerOptions {
|
|
86
|
-
pixiApplicationOptions?: IApplicationOptions;
|
|
31
|
+
height: number;
|
|
32
|
+
transform: ZoomTransform;
|
|
87
33
|
}
|
|
88
|
-
export interface
|
|
89
|
-
|
|
34
|
+
export interface OnUpdateEvent<T> extends LayerEvent {
|
|
35
|
+
data?: T;
|
|
90
36
|
}
|
|
91
37
|
export interface ZoomAndPanOptions {
|
|
92
38
|
maxZoomLevel: number;
|
|
@@ -104,29 +50,6 @@ export interface Annotation {
|
|
|
104
50
|
md?: number;
|
|
105
51
|
pos?: [number, number];
|
|
106
52
|
}
|
|
107
|
-
export interface HoleSize {
|
|
108
|
-
diameter: number;
|
|
109
|
-
start: number;
|
|
110
|
-
end: number;
|
|
111
|
-
innerDiameter?: number;
|
|
112
|
-
}
|
|
113
|
-
export interface Casing {
|
|
114
|
-
diameter: number;
|
|
115
|
-
start: number;
|
|
116
|
-
end: number;
|
|
117
|
-
hasShoe: boolean;
|
|
118
|
-
innerDiameter: number;
|
|
119
|
-
casingId: string;
|
|
120
|
-
}
|
|
121
|
-
export interface Cement {
|
|
122
|
-
toc: number;
|
|
123
|
-
casingIds?: string[];
|
|
124
|
-
/**
|
|
125
|
-
* Should remove optional on casingIds when casingId is removed in next major release
|
|
126
|
-
* @deprecated use casingIds
|
|
127
|
-
*/
|
|
128
|
-
casingId?: string;
|
|
129
|
-
}
|
|
130
53
|
export interface MDPoint {
|
|
131
54
|
point: number[];
|
|
132
55
|
normal?: Vector2;
|
|
@@ -144,29 +67,14 @@ export interface ScaleOptions {
|
|
|
144
67
|
yBounds?: [number, number];
|
|
145
68
|
}
|
|
146
69
|
export interface Interpolators {
|
|
147
|
-
trajectory:
|
|
148
|
-
curtain:
|
|
149
|
-
|
|
150
|
-
curve?: any;
|
|
151
|
-
}
|
|
152
|
-
export interface Interpolator {
|
|
70
|
+
trajectory: CurveInterpolator;
|
|
71
|
+
curtain: ExtendedCurveInterpolator;
|
|
72
|
+
curve?: ExtendedCurveInterpolator;
|
|
153
73
|
}
|
|
154
74
|
export interface Trajectory {
|
|
155
75
|
points: number[][];
|
|
156
76
|
offset: number;
|
|
157
77
|
}
|
|
158
|
-
export interface ReferenceSystemOptions {
|
|
159
|
-
normalizedLength?: number;
|
|
160
|
-
arcDivisions?: number;
|
|
161
|
-
tension?: number;
|
|
162
|
-
trajectoryAngle?: number;
|
|
163
|
-
calculateDisplacementFromBottom?: boolean;
|
|
164
|
-
curveInterpolator?: Interpolator;
|
|
165
|
-
trajectoryInterpolator?: Interpolator;
|
|
166
|
-
curtainInterpolator?: Interpolator;
|
|
167
|
-
approxT?: boolean;
|
|
168
|
-
quickT?: boolean;
|
|
169
|
-
}
|
|
170
78
|
export declare type BoundingBox = {
|
|
171
79
|
x: number;
|
|
172
80
|
y: number;
|
|
@@ -175,12 +83,4 @@ export declare type BoundingBox = {
|
|
|
175
83
|
offsetX?: number;
|
|
176
84
|
offsetY?: number;
|
|
177
85
|
};
|
|
178
|
-
export interface CalloutOptions extends LayerOptions {
|
|
179
|
-
minFontSize?: number;
|
|
180
|
-
maxFontSize?: number;
|
|
181
|
-
fontSizeFactor?: number;
|
|
182
|
-
offsetMin?: number;
|
|
183
|
-
offsetMax?: number;
|
|
184
|
-
offsetFactor?: number;
|
|
185
|
-
}
|
|
186
86
|
export {};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ScaleLinear } from 'd3-scale';
|
|
2
2
|
import { CanvasLayer } from './base/CanvasLayer';
|
|
3
|
-
import { OnUpdateEvent, Annotation, OnRescaleEvent, BoundingBox
|
|
3
|
+
import { OnUpdateEvent, Annotation, OnRescaleEvent, BoundingBox } from '../interfaces';
|
|
4
|
+
import { LayerOptions } from './base/Layer';
|
|
4
5
|
export declare type Point = {
|
|
5
6
|
x: number;
|
|
6
7
|
y: number;
|
|
@@ -16,7 +17,15 @@ export declare type Callout = {
|
|
|
16
17
|
dx: number;
|
|
17
18
|
dy: number;
|
|
18
19
|
};
|
|
19
|
-
export
|
|
20
|
+
export interface CalloutOptions<T extends Annotation[]> extends LayerOptions<T> {
|
|
21
|
+
minFontSize?: number;
|
|
22
|
+
maxFontSize?: number;
|
|
23
|
+
fontSizeFactor?: number;
|
|
24
|
+
offsetMin?: number;
|
|
25
|
+
offsetMax?: number;
|
|
26
|
+
offsetFactor?: number;
|
|
27
|
+
}
|
|
28
|
+
export declare class CalloutCanvasLayer<T extends Annotation[]> extends CanvasLayer<T> {
|
|
20
29
|
rescaleEvent: OnRescaleEvent;
|
|
21
30
|
xRatio: number;
|
|
22
31
|
callouts: Callout[];
|
|
@@ -27,9 +36,9 @@ export declare class CalloutCanvasLayer extends CanvasLayer {
|
|
|
27
36
|
offsetMin: number;
|
|
28
37
|
offsetMax: number;
|
|
29
38
|
offsetFactor: number;
|
|
30
|
-
constructor(id?: string, options?: CalloutOptions);
|
|
39
|
+
constructor(id?: string, options?: CalloutOptions<T>);
|
|
31
40
|
setGroupFilter(filter: string[]): void;
|
|
32
|
-
onUpdate(event: OnUpdateEvent): void;
|
|
41
|
+
onUpdate(event: OnUpdateEvent<T>): void;
|
|
33
42
|
onRescale(event: OnRescaleEvent): void;
|
|
34
43
|
render(isPanning?: boolean): void;
|
|
35
44
|
private renderAnnotation;
|
|
@@ -38,7 +47,7 @@ export declare class CalloutCanvasLayer extends CanvasLayer {
|
|
|
38
47
|
private renderCallout;
|
|
39
48
|
private renderLine;
|
|
40
49
|
private getPosition;
|
|
41
|
-
positionCallouts(annotations: Annotation[], isLeftToRight: boolean, xScale: ScaleLinear<number, number>, yScale: ScaleLinear<number, number>,
|
|
50
|
+
positionCallouts(annotations: Annotation[], isLeftToRight: boolean, xScale: ScaleLinear<number, number>, yScale: ScaleLinear<number, number>, _scale: number, fontSize: number, offset?: number): Callout[];
|
|
42
51
|
getAnnotationBoundingBox(title: string, label: string, pos: number[], xScale: ScaleLinear<number, number>, yScale: ScaleLinear<number, number>, height: number): {
|
|
43
52
|
x: number;
|
|
44
53
|
y: number;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { IPoint, Mesh, Renderer, Texture } from 'pixi.js';
|
|
2
|
+
export declare type ComplexRopeSegment = {
|
|
3
|
+
points: IPoint[];
|
|
4
|
+
diameter: number;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* The ComplexRope allows you to draw a texture across several segments of points and then manipulate these points
|
|
8
|
+
*/
|
|
9
|
+
export declare class ComplexRope extends Mesh {
|
|
10
|
+
/**
|
|
11
|
+
* re-calculate vertices by rope segment-points each frame
|
|
12
|
+
* @member {boolean}
|
|
13
|
+
*/
|
|
14
|
+
autoUpdate: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* @param texture - The texture to use on the rope.
|
|
17
|
+
* @param segments - An array of segments with points and diaeter to construct this rope.
|
|
18
|
+
* @param {number} textureScale - Optional. Adjust interval of repeated texture
|
|
19
|
+
*/
|
|
20
|
+
constructor(texture: Texture, segments: ComplexRopeSegment[], textureScale?: number);
|
|
21
|
+
_render(renderer: Renderer): void;
|
|
22
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { MeshGeometry } from 'pixi.js';
|
|
2
|
+
import { ComplexRopeSegment } from './ComplexRope';
|
|
3
|
+
/**
|
|
4
|
+
* RopeGeometry allows you to draw a geometry across several several segments of points and then manipulate these points.
|
|
5
|
+
*/
|
|
6
|
+
export declare class ComplexRopeGeometry extends MeshGeometry {
|
|
7
|
+
/** An array of segments with points and diameter that determine the rope. */
|
|
8
|
+
private segments;
|
|
9
|
+
/** Rope texture scale. */
|
|
10
|
+
private readonly textureScale;
|
|
11
|
+
/**
|
|
12
|
+
* @param segments - An array of segments with points and diameter to construct this rope.
|
|
13
|
+
* @param textureScale - scaling factor for repeated texture. To create a tiling rope
|
|
14
|
+
* set baseTexture.wrapMode to PIXI.WRAP_MODES.REPEAT and use a power of two texture.
|
|
15
|
+
*/
|
|
16
|
+
constructor(segments: ComplexRopeSegment[], textureScale?: number);
|
|
17
|
+
/**
|
|
18
|
+
* The max width (i.e., thickness) of the rope.
|
|
19
|
+
* @readonly
|
|
20
|
+
*/
|
|
21
|
+
get width(): number;
|
|
22
|
+
/** Refreshes Rope indices and uvs */
|
|
23
|
+
private build;
|
|
24
|
+
/** refreshes vertices of Rope mesh */
|
|
25
|
+
updateVertices(): void;
|
|
26
|
+
update(): void;
|
|
27
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { IPoint, Mesh, Renderer, Texture } from 'pixi.js';
|
|
2
|
+
/**
|
|
3
|
+
* The rope allows you to draw a texture across several points and then manipulate these points
|
|
4
|
+
* Width of rope is given in constructor
|
|
5
|
+
*/
|
|
6
|
+
export declare class FixedWidthSimpleRope extends Mesh {
|
|
7
|
+
/**
|
|
8
|
+
* re-calculate vertices by rope points each frame
|
|
9
|
+
* @member {boolean}
|
|
10
|
+
*/
|
|
11
|
+
autoUpdate: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Note: The wrap mode of the texture is set to REPEAT if `textureScale` is positive.
|
|
14
|
+
* @param texture - The texture to use on the rope. (attempt to set UV wrapping, will fail on non-power of two textures)
|
|
15
|
+
* @param points - An array of {@link PIXI.Point} objects to construct this rope.
|
|
16
|
+
* @param width - Width of rope
|
|
17
|
+
*/
|
|
18
|
+
constructor(texture: Texture, points: IPoint[], width: number);
|
|
19
|
+
_render(renderer: Renderer): void;
|
|
20
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { IPoint, MeshGeometry } from 'pixi.js';
|
|
2
|
+
export declare class FixedWidthSimpleRopeGeometry extends MeshGeometry {
|
|
3
|
+
points: IPoint[];
|
|
4
|
+
_width: number;
|
|
5
|
+
/**
|
|
6
|
+
* @param {number} [width=200] - The width (i.e., thickness) of the rope.
|
|
7
|
+
* @param {PIXI.Point[]} [points] - An array of PIXI.Point objects to construct this rope.
|
|
8
|
+
*/
|
|
9
|
+
constructor(points: IPoint[], width?: number);
|
|
10
|
+
/**
|
|
11
|
+
* The width (i.e., thickness) of the rope.
|
|
12
|
+
* @member {number}
|
|
13
|
+
* @readOnly
|
|
14
|
+
*/
|
|
15
|
+
get width(): number;
|
|
16
|
+
/**
|
|
17
|
+
* Refreshes Rope indices and uvs
|
|
18
|
+
* @private
|
|
19
|
+
*/
|
|
20
|
+
private build;
|
|
21
|
+
/**
|
|
22
|
+
* refreshes vertices of Rope mesh
|
|
23
|
+
*/
|
|
24
|
+
updateVertices(): void;
|
|
25
|
+
update(): void;
|
|
26
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { IPoint, Mesh, Renderer, Texture } from 'pixi.js';
|
|
2
|
+
/**
|
|
3
|
+
* The UniformTextureStretchRope allows you to draw a texture across several points and then manipulate these points
|
|
4
|
+
*/
|
|
5
|
+
export declare class UniformTextureStretchRope extends Mesh {
|
|
6
|
+
/**
|
|
7
|
+
* re-calculate vertices by rope points each frame
|
|
8
|
+
* @member {boolean}
|
|
9
|
+
*/
|
|
10
|
+
autoUpdate: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* @param texture - The texture to use on the rope.
|
|
13
|
+
* @param points - An array of {@link PIXI.Point} objects to construct this rope.
|
|
14
|
+
*/
|
|
15
|
+
constructor(texture: Texture, points: IPoint[]);
|
|
16
|
+
_render(renderer: Renderer): void;
|
|
17
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { MeshGeometry } from 'pixi.js';
|
|
2
|
+
import type { IPoint } from 'pixi.js';
|
|
3
|
+
/**
|
|
4
|
+
* UniformTextureStretchRopeGeometry allows you to draw a geometry across several points and then manipulate these points.
|
|
5
|
+
*/
|
|
6
|
+
export declare class UniformTextureStretchRopeGeometry extends MeshGeometry {
|
|
7
|
+
/** An array of points that determine the rope. */
|
|
8
|
+
points: IPoint[];
|
|
9
|
+
/**
|
|
10
|
+
* The width (i.e., thickness) of the rope.
|
|
11
|
+
* @readonly
|
|
12
|
+
*/
|
|
13
|
+
_width: number;
|
|
14
|
+
/**
|
|
15
|
+
* @param width - The width (i.e., thickness) of the rope.
|
|
16
|
+
* @param points - An array of PIXI.Point objects to construct this rope.
|
|
17
|
+
*/
|
|
18
|
+
constructor(points: IPoint[], width?: number);
|
|
19
|
+
/** Refreshes Rope indices and uvs */
|
|
20
|
+
private build;
|
|
21
|
+
/** refreshes vertices of Rope mesh */
|
|
22
|
+
updateVertices(): void;
|
|
23
|
+
update(): void;
|
|
24
|
+
}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { SurfaceData } from '../datautils';
|
|
2
|
-
import {
|
|
1
|
+
import { SurfaceData, SurfaceLine } from '../datautils';
|
|
2
|
+
import { OnUpdateEvent, OnRescaleEvent } from '../interfaces';
|
|
3
|
+
import { LayerOptions } from './base';
|
|
3
4
|
import { CanvasLayer } from './base/CanvasLayer';
|
|
4
|
-
|
|
5
|
+
declare type SurfacePaths = {
|
|
6
|
+
color: string;
|
|
7
|
+
path: Path2D;
|
|
8
|
+
};
|
|
9
|
+
export declare class GeomodelCanvasLayer<T extends SurfaceData> extends CanvasLayer<T> {
|
|
5
10
|
rescaleEvent: OnRescaleEvent;
|
|
6
|
-
surfaceAreasPaths:
|
|
7
|
-
surfaceLinesPaths:
|
|
11
|
+
surfaceAreasPaths: SurfacePaths[];
|
|
12
|
+
surfaceLinesPaths: SurfacePaths[];
|
|
8
13
|
maxDepth: number;
|
|
9
|
-
constructor(id?: string, options?:
|
|
10
|
-
|
|
11
|
-
set data(data: SurfaceData);
|
|
12
|
-
getData(): SurfaceData;
|
|
13
|
-
setData(data: SurfaceData): void;
|
|
14
|
-
onMount(event: OnMountEvent): void;
|
|
15
|
-
onUpdate(event: OnUpdateEvent): void;
|
|
14
|
+
constructor(id?: string, options?: LayerOptions<T>);
|
|
15
|
+
onUpdate(event: OnUpdateEvent<T>): void;
|
|
16
16
|
onRescale(event: OnRescaleEvent): void;
|
|
17
17
|
updatePaths(): void;
|
|
18
18
|
render(): void;
|
|
@@ -21,7 +21,8 @@ export declare class GeomodelCanvasLayer extends CanvasLayer {
|
|
|
21
21
|
generateSurfaceLinesPaths(): void;
|
|
22
22
|
drawPolygonPath: (color: string, path: Path2D) => void;
|
|
23
23
|
drawLinePath: (color: string, path: Path2D) => void;
|
|
24
|
-
createPolygons: (data:
|
|
24
|
+
createPolygons: (data: number[][]) => number[][];
|
|
25
25
|
generatePolygonPath: (polygon: number[]) => Path2D;
|
|
26
|
-
generateLinePaths: (s:
|
|
26
|
+
generateLinePaths: (s: SurfaceLine) => Path2D[];
|
|
27
27
|
}
|
|
28
|
+
export {};
|
|
@@ -1,8 +1,19 @@
|
|
|
1
1
|
import Vector2 from '@equinor/videx-vector2';
|
|
2
2
|
import { CanvasLayer } from './base/CanvasLayer';
|
|
3
|
-
import {
|
|
3
|
+
import { OnUpdateEvent, OnRescaleEvent, OnMountEvent } from '../interfaces';
|
|
4
4
|
import { SurfaceArea, SurfaceLine, SurfaceData } from '../datautils';
|
|
5
|
-
|
|
5
|
+
import { LayerOptions } from './base/Layer';
|
|
6
|
+
export interface GeomodelLayerLabelsOptions<T extends SurfaceData> extends LayerOptions<T> {
|
|
7
|
+
margins?: number;
|
|
8
|
+
minFontSize?: number;
|
|
9
|
+
maxFontSize?: number;
|
|
10
|
+
textColor?: string;
|
|
11
|
+
font?: string;
|
|
12
|
+
}
|
|
13
|
+
interface SurfaceAreaWithAvgTopDepth extends SurfaceArea {
|
|
14
|
+
avgTopDepth: number;
|
|
15
|
+
}
|
|
16
|
+
export declare class GeomodelLabelsLayer<T extends SurfaceData> extends CanvasLayer<T> {
|
|
6
17
|
defaultMargins: number;
|
|
7
18
|
defaultMinFontSize: number;
|
|
8
19
|
defaultMaxFontSize: number;
|
|
@@ -12,26 +23,27 @@ export declare class GeomodelLabelsLayer extends CanvasLayer {
|
|
|
12
23
|
isLabelsOnLeftSide: boolean;
|
|
13
24
|
maxFontSizeInWorldCoordinates: number;
|
|
14
25
|
isXFlipped: boolean;
|
|
15
|
-
areasWithAvgTopDepth:
|
|
16
|
-
constructor(id?: string, options?: GeomodelLayerLabelsOptions);
|
|
17
|
-
get options(): GeomodelLayerLabelsOptions
|
|
18
|
-
setData(data:
|
|
19
|
-
generateSurfacesWithAvgDepth():
|
|
26
|
+
areasWithAvgTopDepth: SurfaceAreaWithAvgTopDepth[];
|
|
27
|
+
constructor(id?: string, options?: GeomodelLayerLabelsOptions<T>);
|
|
28
|
+
get options(): GeomodelLayerLabelsOptions<T>;
|
|
29
|
+
setData(data: T): void;
|
|
30
|
+
generateSurfacesWithAvgDepth(): void;
|
|
20
31
|
onMount(event: OnMountEvent): void;
|
|
21
|
-
onUpdate(event: OnUpdateEvent): void;
|
|
32
|
+
onUpdate(event: OnUpdateEvent<T>): void;
|
|
22
33
|
onRescale(event: OnRescaleEvent): void;
|
|
23
34
|
render(): void;
|
|
24
35
|
drawAreaLabels(): void;
|
|
25
36
|
drawLineLabels(): void;
|
|
26
|
-
drawAreaLabel: (surfaceArea: SurfaceArea, nextSurfaceArea: SurfaceArea, surfaces:
|
|
37
|
+
drawAreaLabel: (surfaceArea: SurfaceArea, nextSurfaceArea: SurfaceArea, surfaces: SurfaceArea[], i: number) => void;
|
|
27
38
|
drawLineLabel: (s: SurfaceLine) => void;
|
|
28
39
|
colorToCSSColor(color: number | string): string;
|
|
29
|
-
calcPos(data: number[][], offset: number, count: number, step: number, topLimit?: number, bottomLimit?: number, alternativeSurfaceData?: number[][], surfaces?:
|
|
30
|
-
getAlternativeYValueIfAvailable(x: number, topLimit: number, bottomLimit: number, alternativeSurfaceData: number[][], surfaces:
|
|
40
|
+
calcPos(data: number[][], offset: number, count: number, step: number, topLimit?: number, bottomLimit?: number, alternativeSurfaceData?: number[][], surfaces?: SurfaceArea[] | null, currentSurfaceIndex?: number): Vector2;
|
|
41
|
+
getAlternativeYValueIfAvailable(x: number, topLimit: number, bottomLimit: number, alternativeSurfaceData: number[][], surfaces: SurfaceArea[] | null, currentSurfaceIndex: number): number;
|
|
31
42
|
calcLineDir(data: number[][], offset: number, count: number, step: number, zFactor: number, initalVector?: Vector2, topLimit?: number, bottomLimit?: number): Vector2;
|
|
32
|
-
calcAreaDir(top: number[][], bottom: number[][], offset: number, count: number, step: number, initalVector?: Vector2, topLimit?: number, bottomLimit?: number, minReductionAngle?: number, maxReductionAngle?: number, angleReductionExponent?: number, alternativeSurfaceBottomData?: number[][], surfaces?:
|
|
43
|
+
calcAreaDir(top: number[][], bottom: number[][], offset: number, count: number, step: number, initalVector?: Vector2, topLimit?: number, bottomLimit?: number, minReductionAngle?: number, maxReductionAngle?: number, angleReductionExponent?: number, alternativeSurfaceBottomData?: number[][], surfaces?: SurfaceArea[] | null, currentSurfaceIndex?: number): number;
|
|
33
44
|
updateXFlipped(): void;
|
|
34
45
|
getMarginsInWorldCoordinates(): number;
|
|
35
46
|
getSurfacesAreaEdges(): number[];
|
|
36
47
|
checkDrawLabelsOnLeftSide(): boolean;
|
|
37
48
|
}
|
|
49
|
+
export {};
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { PixiLayer } from './base/PixiLayer';
|
|
2
|
-
import {
|
|
3
|
-
import { SurfaceArea, SurfaceLine } from '../datautils';
|
|
4
|
-
export declare class GeomodelLayerV2 extends PixiLayer {
|
|
2
|
+
import { OnUpdateEvent, OnRescaleEvent } from '../interfaces';
|
|
3
|
+
import { SurfaceArea, SurfaceData, SurfaceLine } from '../datautils';
|
|
4
|
+
export declare class GeomodelLayerV2<T extends SurfaceData> extends PixiLayer<T> {
|
|
5
5
|
private isPreRendered;
|
|
6
6
|
onRescale(event: OnRescaleEvent): void;
|
|
7
|
-
onUpdate(event: OnUpdateEvent): void;
|
|
8
|
-
clearStage(): void;
|
|
7
|
+
onUpdate(event: OnUpdateEvent<T>): void;
|
|
9
8
|
preRender(): void;
|
|
10
|
-
createPolygons: (data:
|
|
9
|
+
createPolygons: (data: number[][]) => number[][];
|
|
11
10
|
generateAreaPolygon: (s: SurfaceArea) => void;
|
|
12
11
|
generateSurfaceLine: (s: SurfaceLine) => void;
|
|
13
12
|
}
|
|
@@ -1,12 +1,24 @@
|
|
|
1
1
|
import { CanvasLayer } from './base/CanvasLayer';
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import { OnUpdateEvent, OnRescaleEvent } from '../interfaces';
|
|
3
|
+
import { ScaleLinear } from 'd3-scale';
|
|
4
|
+
import { LayerOptions } from './base/Layer';
|
|
5
|
+
export interface GridLayerOptions<T> extends LayerOptions<T> {
|
|
6
|
+
majorWidth?: number;
|
|
7
|
+
majorColor?: string;
|
|
8
|
+
minorWidth?: number;
|
|
9
|
+
minorColor?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface OnGridLayerUpdateEvent<T> extends OnUpdateEvent<T> {
|
|
12
|
+
xScale?: ScaleLinear<number, number, never>;
|
|
13
|
+
yScale?: ScaleLinear<number, number, never>;
|
|
14
|
+
}
|
|
15
|
+
export declare class GridLayer<T> extends CanvasLayer<T> {
|
|
4
16
|
private _offsetX;
|
|
5
17
|
private _offsetY;
|
|
6
|
-
constructor(id?: string, options?: GridLayerOptions);
|
|
7
|
-
onUpdate(event:
|
|
18
|
+
constructor(id?: string, options?: GridLayerOptions<T>);
|
|
19
|
+
onUpdate(event: OnGridLayerUpdateEvent<T>): void;
|
|
8
20
|
onRescale(event: OnRescaleEvent): void;
|
|
9
|
-
render(event: OnRescaleEvent |
|
|
21
|
+
render(event: OnRescaleEvent | OnGridLayerUpdateEvent<T>): void;
|
|
10
22
|
private renderTicksX;
|
|
11
23
|
private renderTicksY;
|
|
12
24
|
private mapMinorTicks;
|
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
import { CanvasLayer } from './base/CanvasLayer';
|
|
2
2
|
import { OnUpdateEvent, OnMountEvent, OnRescaleEvent } from '../interfaces';
|
|
3
|
-
|
|
3
|
+
import { ScaleLinear } from 'd3-scale';
|
|
4
|
+
export interface OnImageLayerUpdateEvent<T> extends OnUpdateEvent<T> {
|
|
5
|
+
url: string;
|
|
6
|
+
xScale: ScaleLinear<number, number, never>;
|
|
7
|
+
yScale: ScaleLinear<number, number, never>;
|
|
8
|
+
xRatio?: number;
|
|
9
|
+
yRatio?: number;
|
|
10
|
+
x?: number;
|
|
11
|
+
y?: number;
|
|
12
|
+
}
|
|
13
|
+
export declare type OnImageLayerRescaleEvent<T> = OnImageLayerUpdateEvent<T> & OnRescaleEvent;
|
|
14
|
+
export declare class ImageLayer<T> extends CanvasLayer<T> {
|
|
4
15
|
img: HTMLImageElement;
|
|
5
16
|
onMount(event: OnMountEvent): void;
|
|
6
|
-
onUpdate(event:
|
|
7
|
-
onRescale(event:
|
|
8
|
-
render(event:
|
|
17
|
+
onUpdate(event: OnImageLayerUpdateEvent<T>): void;
|
|
18
|
+
onRescale(event: OnImageLayerRescaleEvent<T>): void;
|
|
19
|
+
render(event: OnImageLayerUpdateEvent<T>): void;
|
|
9
20
|
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { ScaleLinear } from 'd3-scale';
|
|
2
|
+
import { Graphics, Point, Texture } from 'pixi.js';
|
|
3
|
+
import { LayerOptions, PixiLayer, PixiRenderApplication } from '.';
|
|
4
|
+
import { CasingOptions, CementOptions, CementPlugOptions, CementSqueezeOptions, HoleOptions, SchematicData, ScreenOptions, TubingOptions, InternalLayerOptions } from './schematicInterfaces';
|
|
5
|
+
import { OnUpdateEvent, OnRescaleEvent, OnUnmountEvent } from '../interfaces';
|
|
6
|
+
interface ScalingFactors {
|
|
7
|
+
height: number;
|
|
8
|
+
zFactor: number;
|
|
9
|
+
yScale: ScaleLinear<number, number, never>;
|
|
10
|
+
}
|
|
11
|
+
export interface SchematicLayerOptions<T extends SchematicData> extends LayerOptions<T> {
|
|
12
|
+
exaggerationFactor?: number;
|
|
13
|
+
internalLayerOptions?: InternalLayerOptions;
|
|
14
|
+
holeOptions?: HoleOptions;
|
|
15
|
+
casingOptions?: CasingOptions;
|
|
16
|
+
cementOptions?: CementOptions;
|
|
17
|
+
cementSqueezeOptions?: CementSqueezeOptions;
|
|
18
|
+
screenOptions?: ScreenOptions;
|
|
19
|
+
tubingOptions?: TubingOptions;
|
|
20
|
+
cementPlugOptions?: CementPlugOptions;
|
|
21
|
+
}
|
|
22
|
+
export declare class SchematicLayer<T extends SchematicData> extends PixiLayer<T> {
|
|
23
|
+
private internalLayerVisibility;
|
|
24
|
+
private cementTextureCache;
|
|
25
|
+
private cementSqueezeTextureCache;
|
|
26
|
+
private cementPlugTextureCache;
|
|
27
|
+
private holeTextureCache;
|
|
28
|
+
private screenTextureCache;
|
|
29
|
+
private tubingTextureCache;
|
|
30
|
+
private textureSymbolCacheArray;
|
|
31
|
+
private maxHoleDiameter;
|
|
32
|
+
protected scalingFactors: ScalingFactors;
|
|
33
|
+
constructor(ctx: PixiRenderApplication, id?: string, options?: SchematicLayerOptions<T>);
|
|
34
|
+
onUnmount(event?: OnUnmountEvent): void;
|
|
35
|
+
onUpdate(event: OnUpdateEvent<T>): void;
|
|
36
|
+
onRescale(event: OnRescaleEvent): void;
|
|
37
|
+
setVisibility(isVisible: boolean, layerId: string): void;
|
|
38
|
+
getInternalLayerIds(): string[];
|
|
39
|
+
/**
|
|
40
|
+
* Calculate yRatio without zFactor
|
|
41
|
+
* TODO consider to move this into ZoomPanHandler
|
|
42
|
+
*/
|
|
43
|
+
protected yRatio(): number;
|
|
44
|
+
protected getZFactorScaledPathForPoints: (start: number, end: number) => [number, number][];
|
|
45
|
+
protected drawBigPolygon: (coords: Point[], color?: number) => void;
|
|
46
|
+
protected drawBigTexturedPolygon: (coords: Point[], t: Texture) => Graphics;
|
|
47
|
+
protected drawRope(path: Point[], texture: Texture, tint?: number): void;
|
|
48
|
+
/**
|
|
49
|
+
*
|
|
50
|
+
* @param leftPath Points for line on left side
|
|
51
|
+
* @param rightPath Points for line on right side
|
|
52
|
+
* @param lineColor Color of line
|
|
53
|
+
* @param lineWidth Width of line
|
|
54
|
+
* @param close If line should close in top and bottom to form a loop
|
|
55
|
+
* @param lineAlignment alignment of the line to draw, (0 = inner, 0.5 = middle, 1 = outer).
|
|
56
|
+
*/
|
|
57
|
+
protected drawOutline(leftPath: Point[], rightPath: Point[], lineColor: number, lineWidth?: number, close?: boolean, lineAlignment?: number): void;
|
|
58
|
+
preRender(): void;
|
|
59
|
+
private updateSymbolCache;
|
|
60
|
+
private drawCementPlug;
|
|
61
|
+
private getCementPlugTexture;
|
|
62
|
+
private prepareSymbolRenderObject;
|
|
63
|
+
private drawSymbolComponent;
|
|
64
|
+
private drawSVGRope;
|
|
65
|
+
private getSymbolTexture;
|
|
66
|
+
private drawHoleSize;
|
|
67
|
+
private drawHoleRope;
|
|
68
|
+
private getHoleTexture;
|
|
69
|
+
/**
|
|
70
|
+
* The rendering order of these components needs to be aligned
|
|
71
|
+
* @param casingRenderObjects
|
|
72
|
+
* @param cementRenderObject
|
|
73
|
+
* @param cementSqueezes
|
|
74
|
+
* @returns ordered rendering list
|
|
75
|
+
*/
|
|
76
|
+
private sortCementAndCasingRenderObjects;
|
|
77
|
+
private drawComplexRope;
|
|
78
|
+
private drawCasing;
|
|
79
|
+
private createCasingTexture;
|
|
80
|
+
private drawShoe;
|
|
81
|
+
private generateShoe;
|
|
82
|
+
private createCementSqueezeShape;
|
|
83
|
+
private getCementTexture;
|
|
84
|
+
private createCementSqueezeTexture;
|
|
85
|
+
private drawScreen;
|
|
86
|
+
private drawTubing;
|
|
87
|
+
private getTubingTexture;
|
|
88
|
+
private getScreenTexture;
|
|
89
|
+
private drawCompletionRope;
|
|
90
|
+
}
|
|
91
|
+
export {};
|
|
@@ -1,8 +1,19 @@
|
|
|
1
|
+
/// <reference types="offscreencanvas" />
|
|
1
2
|
import { CanvasLayer } from './base/CanvasLayer';
|
|
2
3
|
import { OnUpdateEvent, OnMountEvent, OnRescaleEvent } from '../interfaces';
|
|
3
|
-
export declare
|
|
4
|
+
export declare type SeismicCanvasDataOptions = {
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
width: number;
|
|
8
|
+
height: number;
|
|
9
|
+
};
|
|
10
|
+
export declare type SeismicCanvasData = {
|
|
11
|
+
image: CanvasImageSource | OffscreenCanvas;
|
|
12
|
+
options: SeismicCanvasDataOptions;
|
|
13
|
+
};
|
|
14
|
+
export declare class SeismicCanvasLayer extends CanvasLayer<SeismicCanvasData> {
|
|
4
15
|
onMount(event: OnMountEvent): void;
|
|
5
|
-
onUpdate(event: OnUpdateEvent): void;
|
|
16
|
+
onUpdate(event: OnUpdateEvent<SeismicCanvasData>): void;
|
|
6
17
|
onRescale(event: OnRescaleEvent): void;
|
|
7
18
|
render(): void;
|
|
8
19
|
}
|