@equinor/esv-intersection 3.0.0-beta.6 → 3.0.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/README.md +11 -16
- package/dist/components/axis.d.ts +47 -47
- package/dist/components/index.d.ts +1 -1
- package/dist/constants.d.ts +11 -11
- package/dist/control/ExtendedCurveInterpolator.d.ts +58 -58
- package/dist/control/IntersectionReferenceSystem.d.ts +96 -96
- package/dist/control/LayerManager.d.ts +76 -76
- package/dist/control/MainController.d.ts +154 -154
- package/dist/control/ZoomPanHandler.d.ts +158 -158
- package/dist/control/index.d.ts +5 -5
- package/dist/control/interfaces.d.ts +37 -37
- package/dist/control/overlay.d.ts +20 -20
- package/dist/datautils/colortable.d.ts +1 -1
- package/dist/datautils/findsample.d.ts +2 -2
- package/dist/datautils/index.d.ts +6 -6
- package/dist/datautils/interfaces.d.ts +63 -63
- package/dist/datautils/picks.d.ts +74 -74
- package/dist/datautils/schematicShapeGenerator.d.ts +59 -61
- package/dist/datautils/seismicimage.d.ts +45 -45
- package/dist/datautils/surfacedata.d.ts +10 -10
- package/dist/datautils/trajectory.d.ts +14 -14
- package/dist/index.cjs +15 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +6 -6
- package/dist/index.mjs +7944 -0
- package/dist/index.mjs.map +1 -0
- package/dist/index.umd.js +15 -1
- package/dist/index.umd.js.map +1 -0
- package/dist/interfaces.d.ts +86 -86
- package/dist/layers/CalloutCanvasLayer.d.ts +60 -60
- package/dist/layers/CustomDisplayObjects/ComplexRope.d.ts +22 -22
- package/dist/layers/CustomDisplayObjects/ComplexRopeGeometry.d.ts +27 -27
- package/dist/layers/CustomDisplayObjects/FixedWidthSimpleRope.d.ts +20 -20
- package/dist/layers/CustomDisplayObjects/FixedWidthSimpleRopeGeometry.d.ts +26 -26
- package/dist/layers/CustomDisplayObjects/UniformTextureStretchRope.d.ts +17 -17
- package/dist/layers/CustomDisplayObjects/UniformTextureStretchRopeGeometry.d.ts +24 -24
- package/dist/layers/GeomodelCanvasLayer.d.ts +28 -28
- package/dist/layers/GeomodelLabelsLayer.d.ts +49 -49
- package/dist/layers/GeomodelLayerV2.d.ts +12 -12
- package/dist/layers/GridLayer.d.ts +29 -29
- package/dist/layers/ImageCanvasLayer.d.ts +20 -20
- package/dist/layers/ReferenceLineLayer.d.ts +29 -29
- package/dist/layers/SchematicLayer.d.ts +113 -114
- package/dist/layers/SeismicCanvasLayer.d.ts +18 -18
- package/dist/layers/WellborePathLayer.d.ts +17 -17
- package/dist/layers/base/CanvasLayer.d.ts +19 -19
- package/dist/layers/base/HTMLLayer.d.ts +13 -13
- package/dist/layers/base/Layer.d.ts +69 -69
- package/dist/layers/base/PixiLayer.d.ts +32 -32
- package/dist/layers/base/SVGLayer.d.ts +13 -13
- package/dist/layers/base/index.d.ts +5 -5
- package/dist/layers/index.d.ts +16 -16
- package/dist/layers/schematicInterfaces.d.ts +208 -208
- package/dist/tubing1.svg +3 -0
- package/dist/tubing2.svg +6 -0
- package/dist/tubing3.svg +12 -0
- package/dist/utils/arc-length.d.ts +23 -23
- package/dist/utils/binary-search.d.ts +8 -8
- package/dist/utils/color.d.ts +5 -5
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/root-finder.d.ts +34 -34
- package/dist/utils/text.d.ts +14 -14
- package/dist/utils/vectorUtils.d.ts +15 -15
- package/dist/vendor/pixi-dashed-line/index.d.ts +57 -0
- package/package.json +30 -55
- package/src/datautils/schematicShapeGenerator.ts +2 -8
- package/src/layers/SchematicLayer.ts +12 -37
- package/src/layers/base/PixiLayer.ts +4 -4
- package/src/vendor/pixi-dashed-line/index.ts +394 -0
- package/dist/datautils/camelcase.d.ts +0 -5
- package/dist/index.esm.js +0 -1
- package/dist/index.js +0 -1
- package/src/datautils/camelcase.ts +0 -28
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import * as PIXI from 'pixi.js';
|
|
2
|
+
/** Define the dash: [dash length, gap size, dash size, gap size, ...] */
|
|
3
|
+
export declare type Dashes = number[];
|
|
4
|
+
export interface DashLineOptions {
|
|
5
|
+
dash?: Dashes;
|
|
6
|
+
width?: number;
|
|
7
|
+
color?: number;
|
|
8
|
+
alpha?: number;
|
|
9
|
+
scale?: number;
|
|
10
|
+
useTexture?: boolean;
|
|
11
|
+
useDots?: boolean;
|
|
12
|
+
cap?: PIXI.LINE_CAP;
|
|
13
|
+
join?: PIXI.LINE_JOIN;
|
|
14
|
+
alignment?: number;
|
|
15
|
+
}
|
|
16
|
+
export declare class DashLine {
|
|
17
|
+
graphics: PIXI.Graphics;
|
|
18
|
+
/** current length of the line */
|
|
19
|
+
lineLength: number;
|
|
20
|
+
/** cursor location */
|
|
21
|
+
cursor: PIXI.Point;
|
|
22
|
+
/** desired scale of line */
|
|
23
|
+
scale: number;
|
|
24
|
+
private activeTexture;
|
|
25
|
+
private start;
|
|
26
|
+
private dashSize;
|
|
27
|
+
private dash;
|
|
28
|
+
private useTexture;
|
|
29
|
+
private options;
|
|
30
|
+
static dashTextureCache: Record<string, PIXI.Texture>;
|
|
31
|
+
/**
|
|
32
|
+
* Create a DashLine
|
|
33
|
+
* @param graphics
|
|
34
|
+
* @param [options]
|
|
35
|
+
* @param [options.useTexture=false] - use the texture based render (useful for very large or very small dashed lines)
|
|
36
|
+
* @param [options.dashes=[10,5] - an array holding the dash and gap (eg, [10, 5, 20, 5, ...])
|
|
37
|
+
* @param [options.width=1] - width of the dashed line
|
|
38
|
+
* @param [options.alpha=1] - alpha of the dashed line
|
|
39
|
+
* @param [options.color=0xffffff] - color of the dashed line
|
|
40
|
+
* @param [options.cap] - add a PIXI.LINE_CAP style to dashed lines (only works for useTexture: false)
|
|
41
|
+
* @param [options.join] - add a PIXI.LINE_JOIN style to the dashed lines (only works for useTexture: false)
|
|
42
|
+
* @param [options.alignment] - The alignment of any lines drawn (0.5 = middle, 1 = outer, 0 = inner)
|
|
43
|
+
*/
|
|
44
|
+
constructor(graphics: PIXI.Graphics, options?: DashLineOptions);
|
|
45
|
+
/** resets line style to enable dashed line (useful if lineStyle was changed on graphics element) */
|
|
46
|
+
setLineStyle(): void;
|
|
47
|
+
private static distance;
|
|
48
|
+
moveTo(x: number, y: number): this;
|
|
49
|
+
lineTo(x: number, y: number, closePath?: boolean): this;
|
|
50
|
+
closePath(): void;
|
|
51
|
+
drawCircle(x: number, y: number, radius: number, points?: number, matrix?: PIXI.Matrix): this;
|
|
52
|
+
drawEllipse(x: number, y: number, radiusX: number, radiusY: number, points?: number, matrix?: PIXI.Matrix): this;
|
|
53
|
+
drawPolygon(points: PIXI.Point[] | number[], matrix?: PIXI.Matrix): this;
|
|
54
|
+
drawRect(x: number, y: number, width: number, height: number, matrix?: PIXI.Matrix): this;
|
|
55
|
+
private adjustLineStyle;
|
|
56
|
+
private static getTexture;
|
|
57
|
+
}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@equinor/esv-intersection",
|
|
3
|
-
"version": "3.0.0
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "Intersection component package with testing and automatic documentation.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
7
|
-
"import": "./dist/index.
|
|
8
|
-
"require": "./dist/index.
|
|
7
|
+
"import": "./dist/index.mjs",
|
|
8
|
+
"require": "./dist/index.cjs",
|
|
9
9
|
"browser": "./dist/index.umd.js"
|
|
10
10
|
},
|
|
11
11
|
"files": [
|
|
@@ -16,19 +16,19 @@
|
|
|
16
16
|
"types": "dist/index.d.ts",
|
|
17
17
|
"scripts": {
|
|
18
18
|
"prebuild": "rimraf dist",
|
|
19
|
-
"build": "
|
|
19
|
+
"build": "vite build",
|
|
20
20
|
"prepub": "npm run build",
|
|
21
21
|
"pub": "npm publish --access=public",
|
|
22
22
|
"prepub-beta": "npm run build",
|
|
23
23
|
"pub-beta": "npm publish --tag=beta --access=public",
|
|
24
24
|
"lint": "eslint --ext .js,.jsx,.ts,.tsx src test",
|
|
25
|
-
"test": "tsc --project tsconfig.test.json &&
|
|
26
|
-
"test:watch": "
|
|
25
|
+
"test": "tsc --project tsconfig.test.json && vitest",
|
|
26
|
+
"test:watch": "vitest --watch",
|
|
27
27
|
"predocs": "rimraf docs_out",
|
|
28
28
|
"docs": "typedoc --out docs_out src",
|
|
29
29
|
"postdocs": "copyfiles images/* docs_out && copyfiles .nojekyll docs_out",
|
|
30
|
-
"storybook": "
|
|
31
|
-
"build-storybook": "build
|
|
30
|
+
"storybook": "storybook dev -p 6006",
|
|
31
|
+
"build-storybook": "storybook build",
|
|
32
32
|
"prettier": "prettier --write --config .prettierrc \"**/*.ts\" "
|
|
33
33
|
},
|
|
34
34
|
"repository": {
|
|
@@ -47,69 +47,44 @@
|
|
|
47
47
|
},
|
|
48
48
|
"homepage": "https://github.com/equinor/esv-intersection#readme",
|
|
49
49
|
"devDependencies": {
|
|
50
|
-
"@
|
|
51
|
-
"@
|
|
52
|
-
"@babel/preset-typescript": "^7.18.6",
|
|
53
|
-
"@rollup/plugin-commonjs": "^23.0.5",
|
|
54
|
-
"@rollup/plugin-node-resolve": "^15.0.1",
|
|
55
|
-
"@rollup/plugin-terser": "^0.2.0",
|
|
56
|
-
"@storybook/addon-docs": "^6.5.14",
|
|
57
|
-
"@storybook/addon-storysource": "^6.5.14",
|
|
58
|
-
"@storybook/html": "^6.5.14",
|
|
50
|
+
"@storybook/addon-storysource": "^7.0.0-beta.25",
|
|
51
|
+
"@storybook/html-vite": "^7.0.0-beta.25",
|
|
59
52
|
"@types/d3": "^7.4.0",
|
|
60
|
-
"@types/jest": "^29.2.4",
|
|
61
53
|
"@types/mock-raf": "^1.0.3",
|
|
62
|
-
"@typescript-eslint/eslint-plugin": "^5.
|
|
63
|
-
"@typescript-eslint/parser": "^5.
|
|
64
|
-
"babel-jest": "^29.3.1",
|
|
54
|
+
"@typescript-eslint/eslint-plugin": "^5.48.1",
|
|
55
|
+
"@typescript-eslint/parser": "^5.48.1",
|
|
65
56
|
"copyfiles": "^2.4.1",
|
|
66
|
-
"eslint": "^8.
|
|
67
|
-
"eslint-config-prettier": "^8.
|
|
57
|
+
"eslint": "^8.31.0",
|
|
58
|
+
"eslint-config-prettier": "^8.6.0",
|
|
68
59
|
"eslint-plugin-prettier": "^4.2.1",
|
|
69
|
-
"eslint-plugin-storybook": "^0.6.
|
|
70
|
-
"jest": "^29.3.1",
|
|
71
|
-
"jest-canvas-mock": "^2.4.0",
|
|
72
|
-
"jest-environment-jsdom": "^29.3.1",
|
|
60
|
+
"eslint-plugin-storybook": "^0.6.10",
|
|
73
61
|
"mock-raf": "^1.0.1",
|
|
74
|
-
"pixi
|
|
75
|
-
"
|
|
76
|
-
"prettier": "^2.8.1",
|
|
62
|
+
"pixi.js": "^7.1.0",
|
|
63
|
+
"prettier": "^2.8.2",
|
|
77
64
|
"rimraf": "^3.0.2",
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"storybook-dark-mode": "^2.0.4",
|
|
65
|
+
"storybook": "^7.0.0-beta.25",
|
|
66
|
+
"storybook-dark-mode": "^2.0.5",
|
|
81
67
|
"tslib": "^2.4.1",
|
|
82
|
-
"typedoc": "^0.23.
|
|
83
|
-
"typescript": "^4.9.4"
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
"
|
|
87
|
-
|
|
88
|
-
],
|
|
89
|
-
"testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.[jt]sx?$",
|
|
90
|
-
"moduleFileExtensions": [
|
|
91
|
-
"ts",
|
|
92
|
-
"tsx",
|
|
93
|
-
"js"
|
|
94
|
-
],
|
|
95
|
-
"testEnvironment": "jsdom",
|
|
96
|
-
"transformIgnorePatterns": [
|
|
97
|
-
"/node_modules/(?!d3)"
|
|
98
|
-
]
|
|
68
|
+
"typedoc": "^0.23.24",
|
|
69
|
+
"typescript": "^4.9.4",
|
|
70
|
+
"vite": "^4.0.4",
|
|
71
|
+
"vite-plugin-dts": "^1.7.1",
|
|
72
|
+
"vitest": "^0.27.1",
|
|
73
|
+
"vitest-canvas-mock": "^0.2.2"
|
|
99
74
|
},
|
|
100
75
|
"peerDependencies": {
|
|
101
|
-
"pixi
|
|
102
|
-
"pixi.js": "^6.5.8"
|
|
76
|
+
"pixi.js": "^7.1.0"
|
|
103
77
|
},
|
|
104
78
|
"dependencies": {
|
|
105
79
|
"@equinor/videx-math": "^1.1.0",
|
|
106
80
|
"@equinor/videx-vector2": "^1.0.44",
|
|
107
|
-
"curve-interpolator": "
|
|
81
|
+
"curve-interpolator": "3.0.1",
|
|
108
82
|
"d3-array": "^3.2.1",
|
|
109
83
|
"d3-axis": "^3.0.0",
|
|
110
84
|
"d3-scale": "^4.0.2",
|
|
111
85
|
"d3-selection": "^3.0.0",
|
|
112
|
-
"d3-shape": "^3.
|
|
113
|
-
"d3-zoom": "^3.0.0"
|
|
86
|
+
"d3-shape": "^3.2.0",
|
|
87
|
+
"d3-zoom": "^3.0.0",
|
|
88
|
+
"jest-canvas-mock": "^2.4.0"
|
|
114
89
|
}
|
|
115
90
|
}
|
|
@@ -46,7 +46,6 @@ export interface CasingRenderObject {
|
|
|
46
46
|
leftPath: Point[];
|
|
47
47
|
rightPath: Point[];
|
|
48
48
|
pathPoints: Point[];
|
|
49
|
-
polygon: IPoint[];
|
|
50
49
|
}[];
|
|
51
50
|
}
|
|
52
51
|
|
|
@@ -63,10 +62,6 @@ export const getEndLines = (
|
|
|
63
62
|
};
|
|
64
63
|
};
|
|
65
64
|
|
|
66
|
-
export const makeTubularPolygon = (rightPath: Point[], leftPath: Point[]): Point[] => {
|
|
67
|
-
return [...leftPath, ...rightPath.map<Point>((d) => d.clone()).reverse()];
|
|
68
|
-
};
|
|
69
|
-
|
|
70
65
|
export const overlaps = (top1: number, bottom1: number, top2: number, bottom2: number): boolean => top1 <= bottom2 && top2 <= bottom1;
|
|
71
66
|
|
|
72
67
|
export const strictlyOverlaps = (top1: number, bottom1: number, top2: number, bottom2: number): boolean => top1 < bottom2 && top2 < bottom1;
|
|
@@ -567,7 +562,7 @@ export const prepareCasingRenderObject = (
|
|
|
567
562
|
const sections = getCasingIntervalsWithWindows(casing).map((casingInterval: CasingInterval) => {
|
|
568
563
|
const pathPoints = getPathPoints(casingInterval.start, casingInterval.end);
|
|
569
564
|
const { leftPath, rightPath } = createTubularRenderingObject(exaggeratedRadius, pathPoints);
|
|
570
|
-
return { kind: casingInterval.kind, leftPath, rightPath, pathPoints
|
|
565
|
+
return { kind: casingInterval.kind, leftPath, rightPath, pathPoints };
|
|
571
566
|
});
|
|
572
567
|
|
|
573
568
|
return {
|
|
@@ -943,8 +938,7 @@ const createSubkindOpenHoleGravelPackTexture = {
|
|
|
943
938
|
* Yellow gravel. Yellow frac lines from hole OD into formation
|
|
944
939
|
*/
|
|
945
940
|
const createSubkindOpenHoleFracPackTexture = {
|
|
946
|
-
packing: (
|
|
947
|
-
console.log({ perforation });
|
|
941
|
+
packing: (_perforation: Perforation, perfShape: ComplexRopeSegment, perforationOptions: PerforationOptions) => {
|
|
948
942
|
const { canvas, ctx } = createPerforationCanvas(perfShape, perforationOptions);
|
|
949
943
|
drawPacking(canvas, ctx, perforationOptions);
|
|
950
944
|
return createPerforationTexture(canvas);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { max } from 'd3-array';
|
|
2
2
|
import { scaleLinear, ScaleLinear } from 'd3-scale';
|
|
3
|
-
import { Graphics, groupD8, IPoint, Point, Rectangle,
|
|
4
|
-
import { DashLine } from 'pixi-dashed-line';
|
|
3
|
+
import { Graphics, groupD8, IPoint, Point, Rectangle, SimpleRope, Texture } from 'pixi.js';
|
|
4
|
+
import { DashLine } from '../vendor/pixi-dashed-line';
|
|
5
5
|
import { LayerOptions, PixiLayer, PixiRenderApplication } from '.';
|
|
6
6
|
import { DEFAULT_TEXTURE_SIZE, EXAGGERATED_DIAMETER, HOLE_OUTLINE, SCREEN_OUTLINE } from '../constants';
|
|
7
7
|
import {
|
|
@@ -56,7 +56,6 @@ import {
|
|
|
56
56
|
createScreenTexture,
|
|
57
57
|
createTubingTexture,
|
|
58
58
|
createTubularRenderingObject,
|
|
59
|
-
makeTubularPolygon,
|
|
60
59
|
prepareCasingRenderObject,
|
|
61
60
|
createCementPlugTexture,
|
|
62
61
|
createComplexRopeSegmentsForPerforation,
|
|
@@ -264,12 +263,6 @@ export class SchematicLayer<T extends SchematicData> extends PixiLayer<T> {
|
|
|
264
263
|
this.addChild(polygon);
|
|
265
264
|
};
|
|
266
265
|
|
|
267
|
-
protected drawBigTexturedPolygon = (coords: Point[], t: Texture): Graphics => {
|
|
268
|
-
const polygon = new Graphics().beginTextureFill({ texture: t }).drawPolygon(coords).endFill();
|
|
269
|
-
this.addChild(polygon);
|
|
270
|
-
return polygon;
|
|
271
|
-
};
|
|
272
|
-
|
|
273
266
|
protected drawRope(path: Point[], texture: Texture, tint?: number): void {
|
|
274
267
|
if (path.length === 0) {
|
|
275
268
|
return null;
|
|
@@ -632,14 +625,9 @@ export class SchematicLayer<T extends SchematicData> extends PixiLayer<T> {
|
|
|
632
625
|
const { exaggerationFactor, holeOptions } = this.options as SchematicLayerOptions<T>;
|
|
633
626
|
const exaggeratedDiameter = holeObject.diameter * exaggerationFactor;
|
|
634
627
|
const { rightPath, leftPath } = createTubularRenderingObject(exaggeratedDiameter / 2, pathPoints);
|
|
628
|
+
const texture = this.getHoleTexture(holeOptions, exaggeratedDiameter, maxHoleDiameter);
|
|
635
629
|
|
|
636
|
-
|
|
637
|
-
const polygonCoords = makeTubularPolygon(leftPath, rightPath);
|
|
638
|
-
this.drawBigPolygon(polygonCoords, convertColor(holeOptions.firstColor));
|
|
639
|
-
} else {
|
|
640
|
-
const texture = this.getHoleTexture(holeOptions, exaggeratedDiameter, maxHoleDiameter);
|
|
641
|
-
this.drawHoleRope(pathPoints, texture, maxHoleDiameter);
|
|
642
|
-
}
|
|
630
|
+
this.drawHoleRope(pathPoints, texture, maxHoleDiameter);
|
|
643
631
|
|
|
644
632
|
this.drawOutline(leftPath, rightPath, convertColor(holeOptions.lineColor), HOLE_OUTLINE * exaggerationFactor, 'TopAndBottom', 0);
|
|
645
633
|
};
|
|
@@ -759,13 +747,10 @@ export class SchematicLayer<T extends SchematicData> extends PixiLayer<T> {
|
|
|
759
747
|
|
|
760
748
|
casingRenderObject.sections.forEach((section, index, list) => {
|
|
761
749
|
const outlineClosureType = SchematicLayer.getOutlineClosureType(index, list.length - 1);
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
const texture = this.createCasingTexture(casingRenderObject.referenceDiameter);
|
|
767
|
-
this.drawRope(section.pathPoints, texture, casingSolidColorNumber);
|
|
768
|
-
}
|
|
750
|
+
|
|
751
|
+
const texture = this.createCasingTexture(casingRenderObject.referenceDiameter);
|
|
752
|
+
this.drawRope(section.pathPoints, texture, casingSolidColorNumber);
|
|
753
|
+
|
|
769
754
|
if (section.kind === 'casing-window') {
|
|
770
755
|
this.drawCasingWindowOutline(section.leftPath, section.rightPath, casingOptions, casingRenderObject.casingWallWidth);
|
|
771
756
|
} else {
|
|
@@ -843,14 +828,10 @@ export class SchematicLayer<T extends SchematicData> extends PixiLayer<T> {
|
|
|
843
828
|
|
|
844
829
|
const pathPoints = this.getZFactorScaledPathForPoints(start, end);
|
|
845
830
|
const { leftPath, rightPath } = createTubularRenderingObject(exaggeratedDiameter / 2, pathPoints);
|
|
846
|
-
const polygon = makeTubularPolygon(leftPath, rightPath);
|
|
847
831
|
|
|
848
832
|
const texture = this.getScreenTexture();
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
} else {
|
|
852
|
-
this.drawCompletionRope(pathPoints, texture, exaggeratedDiameter);
|
|
853
|
-
}
|
|
833
|
+
|
|
834
|
+
this.drawCompletionRope(pathPoints, texture, exaggeratedDiameter);
|
|
854
835
|
this.drawOutline(leftPath, rightPath, convertColor(screenOptions.lineColor), SCREEN_OUTLINE * exaggerationFactor, 'TopAndBottom');
|
|
855
836
|
}
|
|
856
837
|
|
|
@@ -859,15 +840,9 @@ export class SchematicLayer<T extends SchematicData> extends PixiLayer<T> {
|
|
|
859
840
|
const exaggeratedDiameter = exaggerationFactor * diameter;
|
|
860
841
|
|
|
861
842
|
const pathPoints = this.getZFactorScaledPathForPoints(start, end);
|
|
862
|
-
const { leftPath, rightPath } = createTubularRenderingObject(exaggeratedDiameter / 2, pathPoints);
|
|
863
|
-
const polygon = makeTubularPolygon(leftPath, rightPath);
|
|
864
|
-
|
|
865
843
|
const texture = this.getTubingTexture(tubingOptions);
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
} else {
|
|
869
|
-
this.drawCompletionRope(pathPoints, texture, exaggeratedDiameter);
|
|
870
|
-
}
|
|
844
|
+
|
|
845
|
+
this.drawCompletionRope(pathPoints, texture, exaggeratedDiameter);
|
|
871
846
|
}
|
|
872
847
|
|
|
873
848
|
private getTubingTexture(tubingOptions: TubingOptions): Texture {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IRenderer, Application, autoDetectRenderer, Container, DisplayObject, IRendererOptionsAuto, Renderer, RENDERER_TYPE } from 'pixi.js';
|
|
2
2
|
import { Layer, LayerOptions } from './Layer';
|
|
3
3
|
import { OnMountEvent, OnRescaleEvent, OnResizeEvent, OnUnmountEvent } from '../../interfaces';
|
|
4
4
|
import { DEFAULT_LAYER_HEIGHT, DEFAULT_LAYER_WIDTH } from '../../constants';
|
|
@@ -11,7 +11,7 @@ import { DEFAULT_LAYER_HEIGHT, DEFAULT_LAYER_WIDTH } from '../../constants';
|
|
|
11
11
|
export class PixiRenderApplication {
|
|
12
12
|
stage: Container;
|
|
13
13
|
|
|
14
|
-
renderer:
|
|
14
|
+
renderer: IRenderer<HTMLCanvasElement>;
|
|
15
15
|
|
|
16
16
|
constructor(pixiRenderOptions?: IRendererOptionsAuto) {
|
|
17
17
|
const options = {
|
|
@@ -24,7 +24,7 @@ export class PixiRenderApplication {
|
|
|
24
24
|
preserveDrawingBuffer: true,
|
|
25
25
|
...pixiRenderOptions,
|
|
26
26
|
};
|
|
27
|
-
this.renderer = autoDetectRenderer(options);
|
|
27
|
+
this.renderer = autoDetectRenderer<HTMLCanvasElement>(options);
|
|
28
28
|
this.stage = new Container();
|
|
29
29
|
}
|
|
30
30
|
|
|
@@ -68,7 +68,7 @@ export abstract class PixiLayer<T> extends Layer<T> {
|
|
|
68
68
|
private ctx: PixiRenderApplication;
|
|
69
69
|
private container: Container;
|
|
70
70
|
|
|
71
|
-
constructor(ctx: Application | PixiRenderApplication, id?: string, options?: LayerOptions<T>) {
|
|
71
|
+
constructor(ctx: Application<HTMLCanvasElement> | PixiRenderApplication, id?: string, options?: LayerOptions<T>) {
|
|
72
72
|
super(id, options);
|
|
73
73
|
|
|
74
74
|
this.ctx = ctx;
|