@wcardinal/wcardinal-ui 0.314.0 → 0.316.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/types/wcardinal/ui/shape/e-shape-acceptor-impl.d.ts +1 -0
- package/dist/types/wcardinal/ui/shape/e-shape-acceptor.d.ts +5 -0
- package/dist/types/wcardinal/ui/shape/variant/e-shape-line-points.d.ts +1 -1
- package/dist/wcardinal/ui/d-chart-series-linear.js +1 -1
- package/dist/wcardinal/ui/d-chart-series-linear.js.map +1 -1
- package/dist/wcardinal/ui/shape/e-shape-acceptor-impl.js +6 -2
- package/dist/wcardinal/ui/shape/e-shape-acceptor-impl.js.map +1 -1
- package/dist/wcardinal/ui/shape/e-shape-acceptor.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/e-shape-bar-points.js +1 -5
- package/dist/wcardinal/ui/shape/variant/e-shape-bar-points.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/e-shape-connector-line.js +1 -1
- package/dist/wcardinal/ui/shape/variant/e-shape-connector-line.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/e-shape-line-points.js +5 -8
- package/dist/wcardinal/ui/shape/variant/e-shape-line-points.js.map +1 -1
- package/dist/wcardinal-ui-theme-dark.js +1 -1
- package/dist/wcardinal-ui-theme-dark.min.js +1 -1
- package/dist/wcardinal-ui-theme-white.js +1 -1
- package/dist/wcardinal-ui-theme-white.min.js +1 -1
- package/dist/wcardinal-ui.cjs.js +15 -18
- package/dist/wcardinal-ui.js +15 -18
- package/dist/wcardinal-ui.min.js +2 -2
- package/dist/wcardinal-ui.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -6,6 +6,7 @@ export declare class EShapeAcceptorImpl implements EShapeAcceptor {
|
|
|
6
6
|
constructor();
|
|
7
7
|
add(id: string, type: EShapeAcceptorType, x: number, y: number): boolean;
|
|
8
8
|
add(id: string, type: EShapeAcceptorType, x: number, y: number, nx: number, ny: number): boolean;
|
|
9
|
+
add(id: string, type: EShapeAcceptorType, x: number, y: number, nx: number, ny: number, sx: number, sy: number): boolean;
|
|
9
10
|
protected toNormal(x: number, y: number, nx?: number, ny?: number): EShapeAcceptorEdgeNormal;
|
|
10
11
|
remove(id: string): EShapeAcceptorEdge | null;
|
|
11
12
|
size(): number;
|
|
@@ -4,11 +4,16 @@ export interface EShapeAcceptorEdgeNormal {
|
|
|
4
4
|
x: number;
|
|
5
5
|
y: number;
|
|
6
6
|
}
|
|
7
|
+
export interface EShapeAcceptorEdgeSize {
|
|
8
|
+
x: number;
|
|
9
|
+
y: number;
|
|
10
|
+
}
|
|
7
11
|
export interface EShapeAcceptorEdge {
|
|
8
12
|
type: EShapeAcceptorType;
|
|
9
13
|
x: number;
|
|
10
14
|
y: number;
|
|
11
15
|
normal: EShapeAcceptorEdgeNormal;
|
|
16
|
+
size: EShapeAcceptorEdgeSize;
|
|
12
17
|
}
|
|
13
18
|
export interface EShapeAcceptor {
|
|
14
19
|
get(shape: EShape, id: string): EShapeAcceptorEdge | null;
|
|
@@ -27,7 +27,7 @@ export declare class EShapeLinePoints implements EShapePoints {
|
|
|
27
27
|
protected _marker?: EShapePointsMarkerContainer;
|
|
28
28
|
constructor(parent: EShape);
|
|
29
29
|
get length(): number;
|
|
30
|
-
toFitted(): void;
|
|
30
|
+
toFitted(x: number, y: number): void;
|
|
31
31
|
onSizeChange(): void;
|
|
32
32
|
protected fit(): void;
|
|
33
33
|
get id(): number;
|
|
@@ -181,8 +181,8 @@ var DChartSeriesLinear = /** @class */ (function (_super) {
|
|
|
181
181
|
}
|
|
182
182
|
line.disallowUploadedUpdate();
|
|
183
183
|
line.points.set(values, segments);
|
|
184
|
+
line.points.toFitted(sx, sy);
|
|
184
185
|
line.size.set(sx, sy);
|
|
185
|
-
line.points.toFitted();
|
|
186
186
|
line.transform.position.set(cx, cy);
|
|
187
187
|
line.allowUploadedUpdate();
|
|
188
188
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d-chart-series-linear.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-chart-series-linear.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Point } from \"pixi.js\";\nimport { DApplications } from \"./d-applications\";\nimport { DBase } from \"./d-base\";\nimport { DChartCoordinate } from \"./d-chart-coordinate\";\nimport { DChartSeriesHitResult } from \"./d-chart-series\";\nimport { DChartSeriesBase, DChartSeriesBaseOptions } from \"./d-chart-series-base\";\nimport { DChartSeriesContainer } from \"./d-chart-series-container\";\nimport {\n\tDChartSeriesLinearParameters,\n\tDChartSeriesLinearParametersOptions\n} from \"./d-chart-series-linear-parameters\";\nimport { DChartSeriesExpressionParametersImpl } from \"./d-chart-series-linear-parameters-impl\";\nimport {\n\tDChartSeriesStrokeComputed,\n\tDChartSeriesStrokeComputedOptions\n} from \"./d-chart-series-stroke-computed\";\nimport { EShapeLine } from \"./shape/variant/e-shape-line\";\n\n/**\n * {@link DChartSeriesLinear} options.\n */\nexport interface DChartSeriesLinearOptions\n\textends DChartSeriesLinearParametersOptions,\n\t\tDChartSeriesBaseOptions {\n\tstroke?: DChartSeriesStrokeComputedOptions;\n}\n\n/**\n * A series represents a linear equation `a (x - x0) === b (y - y0)`.\n */\nexport class DChartSeriesLinear<CHART extends DBase = DBase> extends DChartSeriesBase<CHART> {\n\tprotected static WORK: Point = new Point();\n\tprotected _line: EShapeLine | null;\n\tprotected _options?: DChartSeriesLinearOptions;\n\tprotected _parameters: DChartSeriesExpressionParametersImpl;\n\tprotected _stroke?: DChartSeriesStrokeComputed;\n\n\tconstructor(options?: DChartSeriesLinearOptions) {\n\t\tsuper(options);\n\t\tthis._line = null;\n\t\tthis._options = options;\n\t\tthis._parameters = DChartSeriesExpressionParametersImpl.from(options);\n\t}\n\n\tbind(container: DChartSeriesContainer<CHART>, index: number): this {\n\t\tlet line = this._line;\n\t\tif (!line) {\n\t\t\tconst stroke = container.newStroke(index, this._options?.stroke);\n\t\t\tthis._stroke = stroke;\n\t\t\tline = new EShapeLine();\n\t\t\tline.stroke.copy(stroke);\n\t\t\tline.visible = this._isShown;\n\t\t\tthis._line = line;\n\t\t}\n\t\tline.attach(container.plotArea.container, index);\n\t\tsuper.bind(container, index);\n\t\treturn this;\n\t}\n\n\tunbind(): this {\n\t\tconst line = this._line;\n\t\tif (line) {\n\t\t\tline.detach();\n\t\t}\n\t\tsuper.unbind();\n\t\treturn this;\n\t}\n\n\tget shape(): EShapeLine | null {\n\t\treturn this._line;\n\t}\n\n\tget parameters(): DChartSeriesLinearParameters {\n\t\treturn this._parameters;\n\t}\n\n\ttoDirty(): this {\n\t\tthis._parameters.toDirty();\n\t\treturn this;\n\t}\n\n\tupdate(): this {\n\t\tthis.doUpdate(true);\n\t\treturn this;\n\t}\n\n\tonRender(): this {\n\t\tthis.doUpdate(false);\n\t\treturn this;\n\t}\n\n\tprotected doUpdate(render: boolean): boolean {\n\t\tconst line = this._line;\n\t\tconst container = this._container;\n\t\tif (line && container) {\n\t\t\tconst coordinate = this._coordinate;\n\t\t\tconst coordinateX = coordinate.x;\n\t\t\tconst coordinateY = coordinate.y;\n\t\t\tif (coordinateX && coordinateY) {\n\t\t\t\tthis.doUpdateLine(line, container, coordinateX, coordinateY);\n\t\t\t\tif (render) {\n\t\t\t\t\tDApplications.update(line);\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tprotected doUpdateLine(\n\t\tline: EShapeLine,\n\t\tcontainer: DChartSeriesContainer<CHART>,\n\t\txcoordinate: DChartCoordinate<CHART>,\n\t\tycoordinate: DChartCoordinate<CHART>\n\t): void {\n\t\tconst values = line.points.values;\n\t\tconst segments = line.points.segments;\n\n\t\tconst parameters = this._parameters;\n\t\tconst a = parameters.a;\n\t\tconst b = parameters.b;\n\t\tconst x0 = parameters.x0;\n\t\tconst y0 = parameters.y0;\n\t\tconst aabs = Math.abs(a);\n\t\tconst babs = Math.abs(b);\n\n\t\tlet p0x = NaN;\n\t\tlet p0y = NaN;\n\t\tlet p1x = NaN;\n\t\tlet p1y = NaN;\n\n\t\tconst threshold = 0.00001;\n\t\tconst bounds = container.plotArea.getBoundsInContainer();\n\t\tif (babs <= aabs) {\n\t\t\tconst xfrom = xcoordinate.unmap(xcoordinate.transform.unmap(bounds.x));\n\t\t\tconst xto = xcoordinate.unmap(xcoordinate.transform.unmap(bounds.x + bounds.width));\n\t\t\tp0x = Math.min(xfrom, xto);\n\t\t\tp1x = Math.max(xfrom, xto);\n\n\t\t\tconst yfrom = ycoordinate.unmap(ycoordinate.transform.unmap(bounds.y));\n\t\t\tconst yto = ycoordinate.unmap(ycoordinate.transform.unmap(bounds.y + bounds.height));\n\t\t\tp0y = Math.min(yfrom, yto);\n\t\t\tp1y = Math.max(yfrom, yto);\n\n\t\t\tif (threshold < babs) {\n\t\t\t\tconst f = b / a;\n\t\t\t\tconst xfrom1 = f * (yfrom - y0) + x0;\n\t\t\t\tconst xto1 = f * (yto - y0) + x0;\n\t\t\t\tconst p2x = Math.min(xfrom1, xto1);\n\t\t\t\tconst p3x = Math.max(xfrom1, xto1);\n\t\t\t\tp0x = Math.max(p0x, p2x);\n\t\t\t\tp1x = Math.min(p1x, p3x);\n\t\t\t\tconst g = 1 / f;\n\t\t\t\tp0y = g * (p0x - x0) + b * y0;\n\t\t\t\tp1y = g * (p1x - x0) + b * y0;\n\t\t\t} else {\n\t\t\t\tp0x = x0;\n\t\t\t\tp1x = x0;\n\t\t\t}\n\t\t} else {\n\t\t\tconst yfrom = ycoordinate.unmap(ycoordinate.transform.unmap(bounds.y));\n\t\t\tconst yto = ycoordinate.unmap(ycoordinate.transform.unmap(bounds.y + bounds.height));\n\t\t\tp0y = Math.min(yfrom, yto);\n\t\t\tp1y = Math.max(yfrom, yto);\n\n\t\t\tconst xfrom = xcoordinate.unmap(xcoordinate.transform.unmap(bounds.x));\n\t\t\tconst xto = xcoordinate.unmap(xcoordinate.transform.unmap(bounds.x + bounds.width));\n\t\t\tp0x = Math.min(xfrom, xto);\n\t\t\tp1x = Math.max(xfrom, xto);\n\n\t\t\tif (threshold < aabs) {\n\t\t\t\tconst f = a / b;\n\t\t\t\tconst yfrom1 = f * (xfrom - x0) + y0;\n\t\t\t\tconst yto1 = f * (xto - x0) + y0;\n\t\t\t\tconst p2y = Math.min(yfrom1, yto1);\n\t\t\t\tconst p3y = Math.max(yfrom1, yto1);\n\t\t\t\tp0y = Math.max(p0y, p2y);\n\t\t\t\tp1y = Math.min(p1y, p3y);\n\t\t\t\tconst g = 1 / f;\n\t\t\t\tp0x = g * (p0y - y0) + a * x0;\n\t\t\t\tp1x = g * (p1y - y0) + a * x0;\n\t\t\t} else {\n\t\t\t\tp0y = y0;\n\t\t\t\tp1y = y0;\n\t\t\t}\n\t\t}\n\n\t\tp0x = xcoordinate.transform.map(xcoordinate.map(p0x));\n\t\tp0y = ycoordinate.transform.map(ycoordinate.map(p0y));\n\t\tp1x = xcoordinate.transform.map(xcoordinate.map(p1x));\n\t\tp1y = ycoordinate.transform.map(ycoordinate.map(p1y));\n\n\t\tconst cx = (p0x + p1x) * 0.5;\n\t\tconst cy = (p0y + p1y) * 0.5;\n\t\tconst sx = Math.abs(p1x - p0x);\n\t\tconst sy = Math.abs(p1y - p0y);\n\n\t\tp0x -= cx;\n\t\tp0y -= cy;\n\t\tp1x -= cx;\n\t\tp1y -= cy;\n\n\t\tif (values.length !== 4) {\n\t\t\tvalues.length = 0;\n\t\t\tvalues.push(p0x, p0y, p1x, p1y);\n\t\t} else {\n\t\t\tvalues[0] = p0x;\n\t\t\tvalues[1] = p0y;\n\t\t\tvalues[2] = p1x;\n\t\t\tvalues[3] = p1y;\n\t\t}\n\t\tif (0 < segments.length) {\n\t\t\tsegments.length = 0;\n\t\t}\n\t\tline.disallowUploadedUpdate();\n\t\tline.points.set(values, segments);\n\t\tline.size.set(sx, sy);\n\t\tline.points.toFitted();\n\t\tline.transform.position.set(cx, cy);\n\t\tline.allowUploadedUpdate();\n\t}\n\n\tprotected updateRegion(): void {\n\t\t// DO NOTHING\n\t}\n\n\tdestroy(): this {\n\t\tconst line = this._line;\n\t\tif (line) {\n\t\t\tthis._line = null;\n\t\t\tline.detach();\n\t\t\tline.destroy();\n\t\t}\n\t\tsuper.destroy();\n\t\treturn this;\n\t}\n\n\thitTest(x: number, y: number): boolean {\n\t\tconst line = this._line;\n\t\tif (line) {\n\t\t\tconst local = DChartSeriesLinear.WORK;\n\t\t\tlocal.set(x, y);\n\t\t\tline.toLocal(local, undefined, local);\n\t\t\treturn line.contains(local.x, local.y) != null;\n\t\t}\n\t\treturn false;\n\t}\n\n\tcalcHitPoint(x: number, y: number, result: DChartSeriesHitResult): boolean {\n\t\tconst line = this._line;\n\t\tif (line) {\n\t\t\tconst local = DChartSeriesLinear.WORK;\n\t\t\tlocal.set(x, y);\n\t\t\tline.toLocal(local, undefined, local);\n\t\t\tresult.shape = line;\n\t\t\treturn line.calcHitPoint(\n\t\t\t\tlocal.x,\n\t\t\t\tlocal.y,\n\t\t\t\tthis.toThreshold,\n\t\t\t\tnull,\n\t\t\t\tthis.calcHitPointHitTester,\n\t\t\t\tresult\n\t\t\t);\n\t\t}\n\t\treturn false;\n\t}\n\n\tprotected toThreshold(this: unknown, strokeWidth: number, strokeScale: number): number {\n\t\treturn +Infinity;\n\t}\n\n\tcalcHitPointHitTester(\n\t\tthis: unknown,\n\t\tx: number,\n\t\ty: number,\n\t\tp0x: number,\n\t\tp0y: number,\n\t\tp1x: number,\n\t\tp1y: number,\n\t\tindex: number,\n\t\tthreshold: number,\n\t\tresult: DChartSeriesHitResult\n\t): boolean {\n\t\tif (p0x <= x && x < p1x) {\n\t\t\tconst l = p1x - p0x;\n\t\t\tif (0.0001 < Math.abs(l)) {\n\t\t\t\tconst t = (x - p0x) / l;\n\t\t\t\tconst p2x = x;\n\t\t\t\tconst p2y = p0y + t * (p1y - p0y);\n\t\t\t\tconst distance = Math.abs(p2y - y);\n\t\t\t\tif (distance < threshold) {\n\t\t\t\t\tconst transform = result.shape!.transform;\n\t\t\t\t\tconst position = transform.position;\n\t\t\t\t\tconst px = position.x;\n\t\t\t\t\tconst py = position.y;\n\t\t\t\t\tconst scale = transform.scale;\n\t\t\t\t\tconst sx = scale.x;\n\t\t\t\t\tconst sy = scale.y;\n\t\t\t\t\tresult.x = result.p0x = result.p1x = px + sx * p2x;\n\t\t\t\t\tresult.y = result.p0y = result.p1y = py + sy * p2y;\n\t\t\t\t\tresult.t = t;\n\t\t\t\t\tresult.index = index;\n\t\t\t\t\tresult.distance = distance;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"d-chart-series-linear.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-chart-series-linear.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Point } from \"pixi.js\";\nimport { DApplications } from \"./d-applications\";\nimport { DBase } from \"./d-base\";\nimport { DChartCoordinate } from \"./d-chart-coordinate\";\nimport { DChartSeriesHitResult } from \"./d-chart-series\";\nimport { DChartSeriesBase, DChartSeriesBaseOptions } from \"./d-chart-series-base\";\nimport { DChartSeriesContainer } from \"./d-chart-series-container\";\nimport {\n\tDChartSeriesLinearParameters,\n\tDChartSeriesLinearParametersOptions\n} from \"./d-chart-series-linear-parameters\";\nimport { DChartSeriesExpressionParametersImpl } from \"./d-chart-series-linear-parameters-impl\";\nimport {\n\tDChartSeriesStrokeComputed,\n\tDChartSeriesStrokeComputedOptions\n} from \"./d-chart-series-stroke-computed\";\nimport { EShapeLine } from \"./shape/variant/e-shape-line\";\n\n/**\n * {@link DChartSeriesLinear} options.\n */\nexport interface DChartSeriesLinearOptions\n\textends DChartSeriesLinearParametersOptions,\n\t\tDChartSeriesBaseOptions {\n\tstroke?: DChartSeriesStrokeComputedOptions;\n}\n\n/**\n * A series represents a linear equation `a (x - x0) === b (y - y0)`.\n */\nexport class DChartSeriesLinear<CHART extends DBase = DBase> extends DChartSeriesBase<CHART> {\n\tprotected static WORK: Point = new Point();\n\tprotected _line: EShapeLine | null;\n\tprotected _options?: DChartSeriesLinearOptions;\n\tprotected _parameters: DChartSeriesExpressionParametersImpl;\n\tprotected _stroke?: DChartSeriesStrokeComputed;\n\n\tconstructor(options?: DChartSeriesLinearOptions) {\n\t\tsuper(options);\n\t\tthis._line = null;\n\t\tthis._options = options;\n\t\tthis._parameters = DChartSeriesExpressionParametersImpl.from(options);\n\t}\n\n\tbind(container: DChartSeriesContainer<CHART>, index: number): this {\n\t\tlet line = this._line;\n\t\tif (!line) {\n\t\t\tconst stroke = container.newStroke(index, this._options?.stroke);\n\t\t\tthis._stroke = stroke;\n\t\t\tline = new EShapeLine();\n\t\t\tline.stroke.copy(stroke);\n\t\t\tline.visible = this._isShown;\n\t\t\tthis._line = line;\n\t\t}\n\t\tline.attach(container.plotArea.container, index);\n\t\tsuper.bind(container, index);\n\t\treturn this;\n\t}\n\n\tunbind(): this {\n\t\tconst line = this._line;\n\t\tif (line) {\n\t\t\tline.detach();\n\t\t}\n\t\tsuper.unbind();\n\t\treturn this;\n\t}\n\n\tget shape(): EShapeLine | null {\n\t\treturn this._line;\n\t}\n\n\tget parameters(): DChartSeriesLinearParameters {\n\t\treturn this._parameters;\n\t}\n\n\ttoDirty(): this {\n\t\tthis._parameters.toDirty();\n\t\treturn this;\n\t}\n\n\tupdate(): this {\n\t\tthis.doUpdate(true);\n\t\treturn this;\n\t}\n\n\tonRender(): this {\n\t\tthis.doUpdate(false);\n\t\treturn this;\n\t}\n\n\tprotected doUpdate(render: boolean): boolean {\n\t\tconst line = this._line;\n\t\tconst container = this._container;\n\t\tif (line && container) {\n\t\t\tconst coordinate = this._coordinate;\n\t\t\tconst coordinateX = coordinate.x;\n\t\t\tconst coordinateY = coordinate.y;\n\t\t\tif (coordinateX && coordinateY) {\n\t\t\t\tthis.doUpdateLine(line, container, coordinateX, coordinateY);\n\t\t\t\tif (render) {\n\t\t\t\t\tDApplications.update(line);\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tprotected doUpdateLine(\n\t\tline: EShapeLine,\n\t\tcontainer: DChartSeriesContainer<CHART>,\n\t\txcoordinate: DChartCoordinate<CHART>,\n\t\tycoordinate: DChartCoordinate<CHART>\n\t): void {\n\t\tconst values = line.points.values;\n\t\tconst segments = line.points.segments;\n\n\t\tconst parameters = this._parameters;\n\t\tconst a = parameters.a;\n\t\tconst b = parameters.b;\n\t\tconst x0 = parameters.x0;\n\t\tconst y0 = parameters.y0;\n\t\tconst aabs = Math.abs(a);\n\t\tconst babs = Math.abs(b);\n\n\t\tlet p0x = NaN;\n\t\tlet p0y = NaN;\n\t\tlet p1x = NaN;\n\t\tlet p1y = NaN;\n\n\t\tconst threshold = 0.00001;\n\t\tconst bounds = container.plotArea.getBoundsInContainer();\n\t\tif (babs <= aabs) {\n\t\t\tconst xfrom = xcoordinate.unmap(xcoordinate.transform.unmap(bounds.x));\n\t\t\tconst xto = xcoordinate.unmap(xcoordinate.transform.unmap(bounds.x + bounds.width));\n\t\t\tp0x = Math.min(xfrom, xto);\n\t\t\tp1x = Math.max(xfrom, xto);\n\n\t\t\tconst yfrom = ycoordinate.unmap(ycoordinate.transform.unmap(bounds.y));\n\t\t\tconst yto = ycoordinate.unmap(ycoordinate.transform.unmap(bounds.y + bounds.height));\n\t\t\tp0y = Math.min(yfrom, yto);\n\t\t\tp1y = Math.max(yfrom, yto);\n\n\t\t\tif (threshold < babs) {\n\t\t\t\tconst f = b / a;\n\t\t\t\tconst xfrom1 = f * (yfrom - y0) + x0;\n\t\t\t\tconst xto1 = f * (yto - y0) + x0;\n\t\t\t\tconst p2x = Math.min(xfrom1, xto1);\n\t\t\t\tconst p3x = Math.max(xfrom1, xto1);\n\t\t\t\tp0x = Math.max(p0x, p2x);\n\t\t\t\tp1x = Math.min(p1x, p3x);\n\t\t\t\tconst g = 1 / f;\n\t\t\t\tp0y = g * (p0x - x0) + b * y0;\n\t\t\t\tp1y = g * (p1x - x0) + b * y0;\n\t\t\t} else {\n\t\t\t\tp0x = x0;\n\t\t\t\tp1x = x0;\n\t\t\t}\n\t\t} else {\n\t\t\tconst yfrom = ycoordinate.unmap(ycoordinate.transform.unmap(bounds.y));\n\t\t\tconst yto = ycoordinate.unmap(ycoordinate.transform.unmap(bounds.y + bounds.height));\n\t\t\tp0y = Math.min(yfrom, yto);\n\t\t\tp1y = Math.max(yfrom, yto);\n\n\t\t\tconst xfrom = xcoordinate.unmap(xcoordinate.transform.unmap(bounds.x));\n\t\t\tconst xto = xcoordinate.unmap(xcoordinate.transform.unmap(bounds.x + bounds.width));\n\t\t\tp0x = Math.min(xfrom, xto);\n\t\t\tp1x = Math.max(xfrom, xto);\n\n\t\t\tif (threshold < aabs) {\n\t\t\t\tconst f = a / b;\n\t\t\t\tconst yfrom1 = f * (xfrom - x0) + y0;\n\t\t\t\tconst yto1 = f * (xto - x0) + y0;\n\t\t\t\tconst p2y = Math.min(yfrom1, yto1);\n\t\t\t\tconst p3y = Math.max(yfrom1, yto1);\n\t\t\t\tp0y = Math.max(p0y, p2y);\n\t\t\t\tp1y = Math.min(p1y, p3y);\n\t\t\t\tconst g = 1 / f;\n\t\t\t\tp0x = g * (p0y - y0) + a * x0;\n\t\t\t\tp1x = g * (p1y - y0) + a * x0;\n\t\t\t} else {\n\t\t\t\tp0y = y0;\n\t\t\t\tp1y = y0;\n\t\t\t}\n\t\t}\n\n\t\tp0x = xcoordinate.transform.map(xcoordinate.map(p0x));\n\t\tp0y = ycoordinate.transform.map(ycoordinate.map(p0y));\n\t\tp1x = xcoordinate.transform.map(xcoordinate.map(p1x));\n\t\tp1y = ycoordinate.transform.map(ycoordinate.map(p1y));\n\n\t\tconst cx = (p0x + p1x) * 0.5;\n\t\tconst cy = (p0y + p1y) * 0.5;\n\t\tconst sx = Math.abs(p1x - p0x);\n\t\tconst sy = Math.abs(p1y - p0y);\n\n\t\tp0x -= cx;\n\t\tp0y -= cy;\n\t\tp1x -= cx;\n\t\tp1y -= cy;\n\n\t\tif (values.length !== 4) {\n\t\t\tvalues.length = 0;\n\t\t\tvalues.push(p0x, p0y, p1x, p1y);\n\t\t} else {\n\t\t\tvalues[0] = p0x;\n\t\t\tvalues[1] = p0y;\n\t\t\tvalues[2] = p1x;\n\t\t\tvalues[3] = p1y;\n\t\t}\n\t\tif (0 < segments.length) {\n\t\t\tsegments.length = 0;\n\t\t}\n\t\tline.disallowUploadedUpdate();\n\t\tline.points.set(values, segments);\n\t\tline.points.toFitted(sx, sy);\n\t\tline.size.set(sx, sy);\n\t\tline.transform.position.set(cx, cy);\n\t\tline.allowUploadedUpdate();\n\t}\n\n\tprotected updateRegion(): void {\n\t\t// DO NOTHING\n\t}\n\n\tdestroy(): this {\n\t\tconst line = this._line;\n\t\tif (line) {\n\t\t\tthis._line = null;\n\t\t\tline.detach();\n\t\t\tline.destroy();\n\t\t}\n\t\tsuper.destroy();\n\t\treturn this;\n\t}\n\n\thitTest(x: number, y: number): boolean {\n\t\tconst line = this._line;\n\t\tif (line) {\n\t\t\tconst local = DChartSeriesLinear.WORK;\n\t\t\tlocal.set(x, y);\n\t\t\tline.toLocal(local, undefined, local);\n\t\t\treturn line.contains(local.x, local.y) != null;\n\t\t}\n\t\treturn false;\n\t}\n\n\tcalcHitPoint(x: number, y: number, result: DChartSeriesHitResult): boolean {\n\t\tconst line = this._line;\n\t\tif (line) {\n\t\t\tconst local = DChartSeriesLinear.WORK;\n\t\t\tlocal.set(x, y);\n\t\t\tline.toLocal(local, undefined, local);\n\t\t\tresult.shape = line;\n\t\t\treturn line.calcHitPoint(\n\t\t\t\tlocal.x,\n\t\t\t\tlocal.y,\n\t\t\t\tthis.toThreshold,\n\t\t\t\tnull,\n\t\t\t\tthis.calcHitPointHitTester,\n\t\t\t\tresult\n\t\t\t);\n\t\t}\n\t\treturn false;\n\t}\n\n\tprotected toThreshold(this: unknown, strokeWidth: number, strokeScale: number): number {\n\t\treturn +Infinity;\n\t}\n\n\tcalcHitPointHitTester(\n\t\tthis: unknown,\n\t\tx: number,\n\t\ty: number,\n\t\tp0x: number,\n\t\tp0y: number,\n\t\tp1x: number,\n\t\tp1y: number,\n\t\tindex: number,\n\t\tthreshold: number,\n\t\tresult: DChartSeriesHitResult\n\t): boolean {\n\t\tif (p0x <= x && x < p1x) {\n\t\t\tconst l = p1x - p0x;\n\t\t\tif (0.0001 < Math.abs(l)) {\n\t\t\t\tconst t = (x - p0x) / l;\n\t\t\t\tconst p2x = x;\n\t\t\t\tconst p2y = p0y + t * (p1y - p0y);\n\t\t\t\tconst distance = Math.abs(p2y - y);\n\t\t\t\tif (distance < threshold) {\n\t\t\t\t\tconst transform = result.shape!.transform;\n\t\t\t\t\tconst position = transform.position;\n\t\t\t\t\tconst px = position.x;\n\t\t\t\t\tconst py = position.y;\n\t\t\t\t\tconst scale = transform.scale;\n\t\t\t\t\tconst sx = scale.x;\n\t\t\t\t\tconst sy = scale.y;\n\t\t\t\t\tresult.x = result.p0x = result.p1x = px + sx * p2x;\n\t\t\t\t\tresult.y = result.p0y = result.p1y = py + sy * p2y;\n\t\t\t\t\tresult.t = t;\n\t\t\t\t\tresult.index = index;\n\t\t\t\t\tresult.distance = distance;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n}\n"]}
|
|
@@ -6,12 +6,16 @@ var EShapeAcceptorImpl = /** @class */ (function () {
|
|
|
6
6
|
function EShapeAcceptorImpl() {
|
|
7
7
|
this._edges = new Map();
|
|
8
8
|
}
|
|
9
|
-
EShapeAcceptorImpl.prototype.add = function (id, type, x, y, nx, ny) {
|
|
9
|
+
EShapeAcceptorImpl.prototype.add = function (id, type, x, y, nx, ny, sx, sy) {
|
|
10
10
|
this._edges.set(id, {
|
|
11
11
|
type: type,
|
|
12
12
|
x: x,
|
|
13
13
|
y: y,
|
|
14
|
-
normal: this.toNormal(x, y, nx, ny)
|
|
14
|
+
normal: this.toNormal(x, y, nx, ny),
|
|
15
|
+
size: {
|
|
16
|
+
x: sx !== null && sx !== void 0 ? sx : 0,
|
|
17
|
+
y: sy !== null && sy !== void 0 ? sy : 0
|
|
18
|
+
}
|
|
15
19
|
});
|
|
16
20
|
return true;
|
|
17
21
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e-shape-acceptor-impl.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-acceptor-impl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH;IAGC;QACC,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAA8B,CAAC;IACrD,CAAC;
|
|
1
|
+
{"version":3,"file":"e-shape-acceptor-impl.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-acceptor-impl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH;IAGC;QACC,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAA8B,CAAC;IACrD,CAAC;IAqBD,gCAAG,GAAH,UACC,EAAU,EACV,IAAwB,EACxB,CAAS,EACT,CAAS,EACT,EAAW,EACX,EAAW,EACX,EAAW,EACX,EAAW;QAEX,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE;YACnB,IAAI,MAAA;YACJ,CAAC,GAAA;YACD,CAAC,GAAA;YACD,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YACnC,IAAI,EAAE;gBACL,CAAC,EAAE,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,CAAC;gBACV,CAAC,EAAE,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,CAAC;aACV;SACD,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACb,CAAC;IAES,qCAAQ,GAAlB,UAAmB,CAAS,EAAE,CAAS,EAAE,EAAW,EAAE,EAAW;QAChE,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE;YAC7B,OAAO;gBACN,CAAC,EAAE,EAAE;gBACL,CAAC,EAAE,EAAE;aACL,CAAC;SACF;aAAM;YACN,IAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACxB,IAAI,OAAO,GAAG,CAAC,EAAE;gBAChB,IAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC3B,OAAO;oBACN,CAAC,EAAE,CAAC,GAAG,CAAC;oBACR,CAAC,EAAE,CAAC,GAAG,CAAC;iBACR,CAAC;aACF;iBAAM;gBACN,OAAO;oBACN,CAAC,EAAE,CAAC;oBACJ,CAAC,EAAE,CAAC;iBACJ,CAAC;aACF;SACD;IACF,CAAC;IAED,mCAAM,GAAN,UAAO,EAAU;QAChB,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,MAAM,IAAI,IAAI,EAAE;YACnB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACjB,OAAO,MAAM,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,iCAAI,GAAJ;QACC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IACzB,CAAC;IAED,gCAAG,GAAH,UAAI,KAAa,EAAE,EAAU;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;IACpC,CAAC;IAED,iCAAI,GAAJ,UAAK,KAAa,EAAE,QAAwD;QAC3E,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,qCAAQ,GAAR,UAAS,EAAU;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,kCAAK,GAAL;QACC,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE;YACnB,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,OAAO,IAAI,CAAC;SACZ;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IACF,yBAAC;AAAD,CAAC,AA3GD,IA2GC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { EShape } from \"./e-shape\";\nimport { EShapeAcceptor, EShapeAcceptorEdge, EShapeAcceptorEdgeNormal } from \"./e-shape-acceptor\";\nimport { EShapeAcceptorType } from \"./e-shape-acceptor-type\";\n\nexport class EShapeAcceptorImpl implements EShapeAcceptor {\n\tprotected _edges: Map<string, EShapeAcceptorEdge>;\n\n\tconstructor() {\n\t\tthis._edges = new Map<string, EShapeAcceptorEdge>();\n\t}\n\n\tadd(id: string, type: EShapeAcceptorType, x: number, y: number): boolean;\n\tadd(\n\t\tid: string,\n\t\ttype: EShapeAcceptorType,\n\t\tx: number,\n\t\ty: number,\n\t\tnx: number,\n\t\tny: number\n\t): boolean;\n\tadd(\n\t\tid: string,\n\t\ttype: EShapeAcceptorType,\n\t\tx: number,\n\t\ty: number,\n\t\tnx: number,\n\t\tny: number,\n\t\tsx: number,\n\t\tsy: number\n\t): boolean;\n\tadd(\n\t\tid: string,\n\t\ttype: EShapeAcceptorType,\n\t\tx: number,\n\t\ty: number,\n\t\tnx?: number,\n\t\tny?: number,\n\t\tsx?: number,\n\t\tsy?: number\n\t): boolean {\n\t\tthis._edges.set(id, {\n\t\t\ttype,\n\t\t\tx,\n\t\t\ty,\n\t\t\tnormal: this.toNormal(x, y, nx, ny),\n\t\t\tsize: {\n\t\t\t\tx: sx ?? 0,\n\t\t\t\ty: sy ?? 0\n\t\t\t}\n\t\t});\n\t\treturn true;\n\t}\n\n\tprotected toNormal(x: number, y: number, nx?: number, ny?: number): EShapeAcceptorEdgeNormal {\n\t\tif (nx != null && ny != null) {\n\t\t\treturn {\n\t\t\t\tx: nx,\n\t\t\t\ty: ny\n\t\t\t};\n\t\t} else {\n\t\t\tconst d = x * x + y * y;\n\t\t\tif (0.00001 < d) {\n\t\t\t\tconst m = 1 / Math.sqrt(d);\n\t\t\t\treturn {\n\t\t\t\t\tx: x * m,\n\t\t\t\t\ty: y * m\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\treturn {\n\t\t\t\t\tx: 0,\n\t\t\t\t\ty: 0\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n\n\tremove(id: string): EShapeAcceptorEdge | null {\n\t\tconst edges = this._edges;\n\t\tconst result = edges.get(id);\n\t\tif (result != null) {\n\t\t\tedges.delete(id);\n\t\t\treturn result;\n\t\t}\n\t\treturn null;\n\t}\n\n\tsize(): number {\n\t\treturn this._edges.size;\n\t}\n\n\tget(shape: EShape, id: string): EShapeAcceptorEdge | null {\n\t\treturn this._edges.get(id) || null;\n\t}\n\n\teach(shape: EShape, iteratee: (edge: EShapeAcceptorEdge, id: string) => void): this {\n\t\tthis._edges.forEach(iteratee);\n\t\treturn this;\n\t}\n\n\tcontains(id: string): boolean {\n\t\treturn this._edges.has(id);\n\t}\n\n\tclear(): boolean {\n\t\tconst edges = this._edges;\n\t\tif (0 < edges.size) {\n\t\t\tedges.clear();\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e-shape-acceptor.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-acceptor.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { EShape } from \"./e-shape\";\nimport { EShapeAcceptorType } from \"./e-shape-acceptor-type\";\n\nexport interface EShapeAcceptorEdgeNormal {\n\tx: number;\n\ty: number;\n}\n\nexport interface EShapeAcceptorEdge {\n\ttype: EShapeAcceptorType;\n\tx: number;\n\ty: number;\n\tnormal: EShapeAcceptorEdgeNormal;\n}\n\nexport interface EShapeAcceptor {\n\tget(shape: EShape, id: string): EShapeAcceptorEdge | null;\n\teach(shape: EShape, iteratee: (edge: EShapeAcceptorEdge, id: string) => void): this;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"e-shape-acceptor.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-acceptor.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { EShape } from \"./e-shape\";\nimport { EShapeAcceptorType } from \"./e-shape-acceptor-type\";\n\nexport interface EShapeAcceptorEdgeNormal {\n\tx: number;\n\ty: number;\n}\n\nexport interface EShapeAcceptorEdgeSize {\n\tx: number;\n\ty: number;\n}\n\nexport interface EShapeAcceptorEdge {\n\ttype: EShapeAcceptorType;\n\tx: number;\n\ty: number;\n\tnormal: EShapeAcceptorEdgeNormal;\n\tsize: EShapeAcceptorEdgeSize;\n}\n\nexport interface EShapeAcceptor {\n\tget(shape: EShape, id: string): EShapeAcceptorEdge | null;\n\teach(shape: EShape, iteratee: (edge: EShapeAcceptorEdge, id: string) => void): this;\n}\n"]}
|
|
@@ -40,11 +40,7 @@ var EShapeBarPoints = /** @class */ (function () {
|
|
|
40
40
|
this.update();
|
|
41
41
|
};
|
|
42
42
|
EShapeBarPoints.prototype.update = function () {
|
|
43
|
-
var
|
|
44
|
-
if (parent == null) {
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
var parentSize = parent.size;
|
|
43
|
+
var parentSize = this._parent.size;
|
|
48
44
|
var parentSizeX = parentSize.x;
|
|
49
45
|
var parentSizeY = parentSize.y;
|
|
50
46
|
var position = this._position;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e-shape-bar-points.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/e-shape-bar-points.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Matrix, Point } from \"pixi.js\";\nimport { EShape } from \"../e-shape\";\nimport { EShapePoints } from \"../e-shape-points\";\nimport { EShapePointsFormatter } from \"../e-shape-points-formatter\";\nimport { EShapePointsMarkerContainer } from \"../e-shape-points-marker-container\";\nimport { EShapePointsMarkerContainerImplNoop } from \"../e-shape-points-marker-container-impl-noop\";\nimport { EShapePointsStyle } from \"../e-shape-points-style\";\nimport { EShapeResourceManagerDeserialization } from \"../e-shape-resource-manager-deserialization\";\nimport { EShapeResourceManagerSerialization } from \"../e-shape-resource-manager-serialization\";\nimport { EShapeBarPosition } from \"./e-shape-bar-position\";\nimport { EShapeLineBasePoints } from \"./e-shape-line-base-points\";\nimport { EShapeLineBasePointsHitTester } from \"./e-shape-line-base-points-hit-tester\";\nimport { EShapeLineBasePointsHitTesterToRange } from \"./e-shape-line-base-points-hit-tester-to-range\";\n\nexport class EShapeBarPoints implements EShapeLineBasePoints {\n\tprotected _parent: EShape;\n\tprotected _id: number;\n\tprotected _style: EShapePointsStyle;\n\tprotected _values: [number, number, number, number];\n\tprotected _segments: number[];\n\tprotected _size: number;\n\tprotected _position: EShapeBarPosition;\n\tprotected _marker?: EShapePointsMarkerContainer;\n\n\tprotected _updatedSize: number;\n\tprotected _updatedParentSizeX: number;\n\tprotected _updatedParentSizeY: number;\n\tprotected _updatedPosition: number;\n\n\tconstructor(parent: EShape) {\n\t\tthis._parent = parent;\n\t\tthis._id = 0;\n\t\tthis._values = [0, 0, 0, 0];\n\t\tthis._segments = [];\n\t\tthis._style = EShapePointsStyle.NONE;\n\t\tthis._size = -1;\n\t\tthis._position = EShapeBarPosition.TOP;\n\n\t\tthis._updatedSize = NaN;\n\t\tthis._updatedParentSizeX = NaN;\n\t\tthis._updatedParentSizeY = NaN;\n\t\tthis._updatedPosition = NaN;\n\t}\n\n\tprotected getComputedSize(\n\t\tsize: number,\n\t\tposition: EShapeBarPosition,\n\t\tsizeX: number,\n\t\tsizeY: number\n\t): number {\n\t\tif (0 <= size) {\n\t\t\treturn size;\n\t\t} else {\n\t\t\tswitch (position) {\n\t\t\t\tcase EShapeBarPosition.TOP:\n\t\t\t\tcase EShapeBarPosition.BOTTOM:\n\t\t\t\t\treturn Math.abs(sizeY);\n\t\t\t\tcase EShapeBarPosition.RIGHT:\n\t\t\t\tcase EShapeBarPosition.LEFT:\n\t\t\t\t\treturn Math.abs(sizeX);\n\t\t\t}\n\t\t\treturn 0;\n\t\t}\n\t}\n\n\tonSizeChange(): void {\n\t\tthis.update();\n\t}\n\n\tprotected update(): void {\n\t\tconst parent = this._parent;\n\t\tif (parent == null) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst parentSize = parent.size;\n\t\tconst parentSizeX = parentSize.x;\n\t\tconst parentSizeY = parentSize.y;\n\t\tconst position = this._position;\n\t\tconst size = this._size;\n\t\tif (\n\t\t\tthis._updatedSize !== size ||\n\t\t\tthis._updatedParentSizeX !== parentSizeX ||\n\t\t\tthis._updatedParentSizeY !== parentSizeY ||\n\t\t\tthis._updatedPosition !== position\n\t\t) {\n\t\t\tthis._id += 1;\n\t\t\tthis._updatedSize = size;\n\t\t\tthis._updatedParentSizeX = parentSizeX;\n\t\t\tthis._updatedParentSizeY = parentSizeY;\n\t\t\tthis._updatedPosition = position;\n\t\t\tconst psxh = parentSizeX * 0.5;\n\t\t\tconst psyh = parentSizeY * 0.5;\n\t\t\tconst computedSize = this.getComputedSize(size, position, parentSizeX, parentSizeY);\n\t\t\tconst values = this._values;\n\t\t\tswitch (position) {\n\t\t\t\tcase EShapeBarPosition.TOP:\n\t\t\t\t\tvalues[0] = 0;\n\t\t\t\t\tvalues[1] = -psyh;\n\t\t\t\t\tvalues[2] = 0;\n\t\t\t\t\tvalues[3] = -psyh + computedSize;\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeBarPosition.RIGHT:\n\t\t\t\t\tvalues[0] = psxh;\n\t\t\t\t\tvalues[1] = 0;\n\t\t\t\t\tvalues[2] = psxh - computedSize;\n\t\t\t\t\tvalues[3] = 0;\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeBarPosition.BOTTOM:\n\t\t\t\t\tvalues[0] = 0;\n\t\t\t\t\tvalues[1] = psyh;\n\t\t\t\t\tvalues[2] = 0;\n\t\t\t\t\tvalues[3] = psyh - computedSize;\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeBarPosition.LEFT:\n\t\t\t\t\tvalues[0] = -psxh;\n\t\t\t\t\tvalues[1] = 0;\n\t\t\t\t\tvalues[2] = -psxh + computedSize;\n\t\t\t\t\tvalues[3] = 0;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tget length(): number {\n\t\treturn 2;\n\t}\n\n\tget id(): number {\n\t\tthis.update();\n\t\treturn this._id;\n\t}\n\n\tget values(): number[] {\n\t\tthis.update();\n\t\treturn this._values;\n\t}\n\n\tset values(values: number[]) {\n\t\t// SUPPOSED NOT TO BE CALLED\n\t}\n\n\tget segments(): number[] {\n\t\treturn this._segments;\n\t}\n\n\tset segments(segments: number[]) {\n\t\t// SUPPOSED NOT TO BE CALLED\n\t}\n\n\tget size(): number {\n\t\treturn this._size;\n\t}\n\n\tset size(size: number) {\n\t\tthis.moveTo(undefined, size, undefined);\n\t}\n\n\tget position(): EShapeBarPosition {\n\t\treturn this._position;\n\t}\n\n\tset position(position: EShapeBarPosition) {\n\t\tthis.moveTo(position, undefined, undefined);\n\t}\n\n\tget style(): EShapePointsStyle {\n\t\treturn this._style;\n\t}\n\n\tset style(style: EShapePointsStyle) {\n\t\tthis.moveTo(undefined, undefined, style);\n\t}\n\n\tget marker(): EShapePointsMarkerContainer {\n\t\tlet result = this._marker;\n\t\tif (result == null) {\n\t\t\tresult = EShapePointsMarkerContainerImplNoop.getInstance();\n\t\t\tthis._marker = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tgetMarker(): EShapePointsMarkerContainer | undefined {\n\t\treturn undefined;\n\t}\n\n\tget formatter(): EShapePointsFormatter | null {\n\t\treturn null;\n\t}\n\n\tset formatter(formatter: EShapePointsFormatter | null) {\n\t\t// DO NOTHING\n\t}\n\n\tget formatted(): this {\n\t\treturn this;\n\t}\n\n\tcopy(source: EShapePoints): this {\n\t\tif (source instanceof EShapeBarPoints) {\n\t\t\treturn this.moveTo(source.position, source.size, source.style);\n\t\t} else {\n\t\t\treturn this.moveTo(undefined, undefined, source.style);\n\t\t}\n\t}\n\n\tset(newValues?: number[], newSegments?: number[], newStyle?: EShapePointsStyle): this {\n\t\tlet newPosition: EShapeBarPosition | undefined;\n\t\tlet newSize: number | undefined;\n\t\tif (newValues != null) {\n\t\t\tconst x0 = newValues[0];\n\t\t\tif (x0 === 0) {\n\t\t\t\tconst y0 = newValues[1];\n\t\t\t\tnewPosition = y0 <= 0 ? EShapeBarPosition.TOP : EShapeBarPosition.BOTTOM;\n\t\t\t\tnewSize = Math.abs(newValues[3] - y0);\n\t\t\t} else {\n\t\t\t\tnewPosition = x0 <= 0 ? EShapeBarPosition.LEFT : EShapeBarPosition.RIGHT;\n\t\t\t\tnewSize = Math.abs(newValues[2] - x0);\n\t\t\t}\n\t\t}\n\t\treturn this.moveTo(newPosition, newSize, newStyle);\n\t}\n\n\tprotected moveTo(position?: EShapeBarPosition, size?: number, style?: EShapePointsStyle): this {\n\t\tlet isChanged = false;\n\n\t\tif (style != null && this._style !== style) {\n\t\t\tthis._style = style;\n\t\t\tisChanged = true;\n\t\t}\n\n\t\tif (position != null && this._position !== position) {\n\t\t\tthis._position = position;\n\t\t\tisChanged = true;\n\t\t}\n\n\t\tif (size != null && this._size !== size) {\n\t\t\tthis._size = size;\n\t\t\tisChanged = true;\n\t\t}\n\n\t\tif (isChanged) {\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tclone(parent: EShape): EShapeBarPoints {\n\t\treturn new EShapeBarPoints(parent).copy(this);\n\t}\n\n\ttoPoints(transform: Matrix): Point[] {\n\t\tconst result: Point[] = [];\n\t\tconst values = this.values;\n\t\tfor (let i = 0, imax = values.length; i < imax; i += 2) {\n\t\t\tconst point = new Point(values[i + 0], values[i + 1]);\n\t\t\tresult.push(transform.apply(point, point));\n\t\t}\n\t\treturn result;\n\t}\n\n\tserialize(manager: EShapeResourceManagerSerialization): number {\n\t\treturn manager.addResource(`[${this._position},${this._size},${this._style}]`);\n\t}\n\n\tdeserialize(resourceId: number, manager: EShapeResourceManagerDeserialization): void {\n\t\tif (0 <= resourceId && resourceId < manager.resources.length) {\n\t\t\tconst resource = manager.resources[resourceId];\n\t\t\tconst parsed = JSON.parse(resource) as [EShapeBarPosition, number, number];\n\t\t\tthis.moveTo(parsed[0], parsed[1], parsed[2]);\n\t\t}\n\t}\n\n\tcalcHitPointAbs<RESULT>(\n\t\tx: number,\n\t\ty: number,\n\t\tax: number,\n\t\tay: number,\n\t\tthreshold: number,\n\t\ttoRange: EShapeLineBasePointsHitTesterToRange | null,\n\t\ttester: EShapeLineBasePointsHitTester<RESULT>,\n\t\tresult: RESULT\n\t): boolean {\n\t\tconst length = this.length;\n\t\tif (2 <= length) {\n\t\t\tconst values = this._values;\n\t\t\tconst v0x = values[0];\n\t\t\tconst v0y = values[1];\n\t\t\tconst v1x = values[2];\n\t\t\tconst v1y = values[3];\n\t\t\tif (tester(x, y, v0x, v0y, v1x, v1y, 0, threshold, result)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"e-shape-bar-points.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/e-shape-bar-points.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Matrix, Point } from \"pixi.js\";\nimport { EShape } from \"../e-shape\";\nimport { EShapePoints } from \"../e-shape-points\";\nimport { EShapePointsFormatter } from \"../e-shape-points-formatter\";\nimport { EShapePointsMarkerContainer } from \"../e-shape-points-marker-container\";\nimport { EShapePointsMarkerContainerImplNoop } from \"../e-shape-points-marker-container-impl-noop\";\nimport { EShapePointsStyle } from \"../e-shape-points-style\";\nimport { EShapeResourceManagerDeserialization } from \"../e-shape-resource-manager-deserialization\";\nimport { EShapeResourceManagerSerialization } from \"../e-shape-resource-manager-serialization\";\nimport { EShapeBarPosition } from \"./e-shape-bar-position\";\nimport { EShapeLineBasePoints } from \"./e-shape-line-base-points\";\nimport { EShapeLineBasePointsHitTester } from \"./e-shape-line-base-points-hit-tester\";\nimport { EShapeLineBasePointsHitTesterToRange } from \"./e-shape-line-base-points-hit-tester-to-range\";\n\nexport class EShapeBarPoints implements EShapeLineBasePoints {\n\tprotected _parent: EShape;\n\tprotected _id: number;\n\tprotected _style: EShapePointsStyle;\n\tprotected _values: [number, number, number, number];\n\tprotected _segments: number[];\n\tprotected _size: number;\n\tprotected _position: EShapeBarPosition;\n\tprotected _marker?: EShapePointsMarkerContainer;\n\n\tprotected _updatedSize: number;\n\tprotected _updatedParentSizeX: number;\n\tprotected _updatedParentSizeY: number;\n\tprotected _updatedPosition: number;\n\n\tconstructor(parent: EShape) {\n\t\tthis._parent = parent;\n\t\tthis._id = 0;\n\t\tthis._values = [0, 0, 0, 0];\n\t\tthis._segments = [];\n\t\tthis._style = EShapePointsStyle.NONE;\n\t\tthis._size = -1;\n\t\tthis._position = EShapeBarPosition.TOP;\n\n\t\tthis._updatedSize = NaN;\n\t\tthis._updatedParentSizeX = NaN;\n\t\tthis._updatedParentSizeY = NaN;\n\t\tthis._updatedPosition = NaN;\n\t}\n\n\tprotected getComputedSize(\n\t\tsize: number,\n\t\tposition: EShapeBarPosition,\n\t\tsizeX: number,\n\t\tsizeY: number\n\t): number {\n\t\tif (0 <= size) {\n\t\t\treturn size;\n\t\t} else {\n\t\t\tswitch (position) {\n\t\t\t\tcase EShapeBarPosition.TOP:\n\t\t\t\tcase EShapeBarPosition.BOTTOM:\n\t\t\t\t\treturn Math.abs(sizeY);\n\t\t\t\tcase EShapeBarPosition.RIGHT:\n\t\t\t\tcase EShapeBarPosition.LEFT:\n\t\t\t\t\treturn Math.abs(sizeX);\n\t\t\t}\n\t\t\treturn 0;\n\t\t}\n\t}\n\n\tonSizeChange(): void {\n\t\tthis.update();\n\t}\n\n\tprotected update(): void {\n\t\tconst parentSize = this._parent.size;\n\t\tconst parentSizeX = parentSize.x;\n\t\tconst parentSizeY = parentSize.y;\n\t\tconst position = this._position;\n\t\tconst size = this._size;\n\t\tif (\n\t\t\tthis._updatedSize !== size ||\n\t\t\tthis._updatedParentSizeX !== parentSizeX ||\n\t\t\tthis._updatedParentSizeY !== parentSizeY ||\n\t\t\tthis._updatedPosition !== position\n\t\t) {\n\t\t\tthis._id += 1;\n\t\t\tthis._updatedSize = size;\n\t\t\tthis._updatedParentSizeX = parentSizeX;\n\t\t\tthis._updatedParentSizeY = parentSizeY;\n\t\t\tthis._updatedPosition = position;\n\t\t\tconst psxh = parentSizeX * 0.5;\n\t\t\tconst psyh = parentSizeY * 0.5;\n\t\t\tconst computedSize = this.getComputedSize(size, position, parentSizeX, parentSizeY);\n\t\t\tconst values = this._values;\n\t\t\tswitch (position) {\n\t\t\t\tcase EShapeBarPosition.TOP:\n\t\t\t\t\tvalues[0] = 0;\n\t\t\t\t\tvalues[1] = -psyh;\n\t\t\t\t\tvalues[2] = 0;\n\t\t\t\t\tvalues[3] = -psyh + computedSize;\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeBarPosition.RIGHT:\n\t\t\t\t\tvalues[0] = psxh;\n\t\t\t\t\tvalues[1] = 0;\n\t\t\t\t\tvalues[2] = psxh - computedSize;\n\t\t\t\t\tvalues[3] = 0;\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeBarPosition.BOTTOM:\n\t\t\t\t\tvalues[0] = 0;\n\t\t\t\t\tvalues[1] = psyh;\n\t\t\t\t\tvalues[2] = 0;\n\t\t\t\t\tvalues[3] = psyh - computedSize;\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeBarPosition.LEFT:\n\t\t\t\t\tvalues[0] = -psxh;\n\t\t\t\t\tvalues[1] = 0;\n\t\t\t\t\tvalues[2] = -psxh + computedSize;\n\t\t\t\t\tvalues[3] = 0;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tget length(): number {\n\t\treturn 2;\n\t}\n\n\tget id(): number {\n\t\tthis.update();\n\t\treturn this._id;\n\t}\n\n\tget values(): number[] {\n\t\tthis.update();\n\t\treturn this._values;\n\t}\n\n\tset values(values: number[]) {\n\t\t// SUPPOSED NOT TO BE CALLED\n\t}\n\n\tget segments(): number[] {\n\t\treturn this._segments;\n\t}\n\n\tset segments(segments: number[]) {\n\t\t// SUPPOSED NOT TO BE CALLED\n\t}\n\n\tget size(): number {\n\t\treturn this._size;\n\t}\n\n\tset size(size: number) {\n\t\tthis.moveTo(undefined, size, undefined);\n\t}\n\n\tget position(): EShapeBarPosition {\n\t\treturn this._position;\n\t}\n\n\tset position(position: EShapeBarPosition) {\n\t\tthis.moveTo(position, undefined, undefined);\n\t}\n\n\tget style(): EShapePointsStyle {\n\t\treturn this._style;\n\t}\n\n\tset style(style: EShapePointsStyle) {\n\t\tthis.moveTo(undefined, undefined, style);\n\t}\n\n\tget marker(): EShapePointsMarkerContainer {\n\t\tlet result = this._marker;\n\t\tif (result == null) {\n\t\t\tresult = EShapePointsMarkerContainerImplNoop.getInstance();\n\t\t\tthis._marker = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tgetMarker(): EShapePointsMarkerContainer | undefined {\n\t\treturn undefined;\n\t}\n\n\tget formatter(): EShapePointsFormatter | null {\n\t\treturn null;\n\t}\n\n\tset formatter(formatter: EShapePointsFormatter | null) {\n\t\t// DO NOTHING\n\t}\n\n\tget formatted(): this {\n\t\treturn this;\n\t}\n\n\tcopy(source: EShapePoints): this {\n\t\tif (source instanceof EShapeBarPoints) {\n\t\t\treturn this.moveTo(source.position, source.size, source.style);\n\t\t} else {\n\t\t\treturn this.moveTo(undefined, undefined, source.style);\n\t\t}\n\t}\n\n\tset(newValues?: number[], newSegments?: number[], newStyle?: EShapePointsStyle): this {\n\t\tlet newPosition: EShapeBarPosition | undefined;\n\t\tlet newSize: number | undefined;\n\t\tif (newValues != null) {\n\t\t\tconst x0 = newValues[0];\n\t\t\tif (x0 === 0) {\n\t\t\t\tconst y0 = newValues[1];\n\t\t\t\tnewPosition = y0 <= 0 ? EShapeBarPosition.TOP : EShapeBarPosition.BOTTOM;\n\t\t\t\tnewSize = Math.abs(newValues[3] - y0);\n\t\t\t} else {\n\t\t\t\tnewPosition = x0 <= 0 ? EShapeBarPosition.LEFT : EShapeBarPosition.RIGHT;\n\t\t\t\tnewSize = Math.abs(newValues[2] - x0);\n\t\t\t}\n\t\t}\n\t\treturn this.moveTo(newPosition, newSize, newStyle);\n\t}\n\n\tprotected moveTo(position?: EShapeBarPosition, size?: number, style?: EShapePointsStyle): this {\n\t\tlet isChanged = false;\n\n\t\tif (style != null && this._style !== style) {\n\t\t\tthis._style = style;\n\t\t\tisChanged = true;\n\t\t}\n\n\t\tif (position != null && this._position !== position) {\n\t\t\tthis._position = position;\n\t\t\tisChanged = true;\n\t\t}\n\n\t\tif (size != null && this._size !== size) {\n\t\t\tthis._size = size;\n\t\t\tisChanged = true;\n\t\t}\n\n\t\tif (isChanged) {\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tclone(parent: EShape): EShapeBarPoints {\n\t\treturn new EShapeBarPoints(parent).copy(this);\n\t}\n\n\ttoPoints(transform: Matrix): Point[] {\n\t\tconst result: Point[] = [];\n\t\tconst values = this.values;\n\t\tfor (let i = 0, imax = values.length; i < imax; i += 2) {\n\t\t\tconst point = new Point(values[i + 0], values[i + 1]);\n\t\t\tresult.push(transform.apply(point, point));\n\t\t}\n\t\treturn result;\n\t}\n\n\tserialize(manager: EShapeResourceManagerSerialization): number {\n\t\treturn manager.addResource(`[${this._position},${this._size},${this._style}]`);\n\t}\n\n\tdeserialize(resourceId: number, manager: EShapeResourceManagerDeserialization): void {\n\t\tif (0 <= resourceId && resourceId < manager.resources.length) {\n\t\t\tconst resource = manager.resources[resourceId];\n\t\t\tconst parsed = JSON.parse(resource) as [EShapeBarPosition, number, number];\n\t\t\tthis.moveTo(parsed[0], parsed[1], parsed[2]);\n\t\t}\n\t}\n\n\tcalcHitPointAbs<RESULT>(\n\t\tx: number,\n\t\ty: number,\n\t\tax: number,\n\t\tay: number,\n\t\tthreshold: number,\n\t\ttoRange: EShapeLineBasePointsHitTesterToRange | null,\n\t\ttester: EShapeLineBasePointsHitTester<RESULT>,\n\t\tresult: RESULT\n\t): boolean {\n\t\tconst length = this.length;\n\t\tif (2 <= length) {\n\t\t\tconst values = this._values;\n\t\t\tconst v0x = values[0];\n\t\t\tconst v0y = values[1];\n\t\t\tconst v1x = values[2];\n\t\t\tconst v1y = values[3];\n\t\t\tif (tester(x, y, v0x, v0y, v1x, v1y, 0, threshold, result)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n}\n"]}
|
|
@@ -137,8 +137,8 @@ var EShapeConnectorLine = /** @class */ (function (_super) {
|
|
|
137
137
|
transform.scale.set(1, 1);
|
|
138
138
|
transform.rotation = 0;
|
|
139
139
|
transform.skew.set(0, 0);
|
|
140
|
+
points.toFitted(sx, sy);
|
|
140
141
|
this.size.set(sx, sy);
|
|
141
|
-
points.toFitted();
|
|
142
142
|
points.set(values);
|
|
143
143
|
this.allowUploadedUpdate();
|
|
144
144
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e-shape-connector-line.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/e-shape-connector-line.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { EShapeType } from \"../e-shape-type\";\nimport { EShapeConnector } from \"../e-shape-connector\";\nimport { EShapeConnectorEdgeContainer } from \"../e-shape-connector-edge-container\";\nimport { EShapeConnectorEdgeContainerImpl } from \"../e-shape-connector-edge-container-impl\";\nimport { EShapeLineBase } from \"./e-shape-line-base\";\nimport { EShapeLinePoints } from \"./e-shape-line-points\";\nimport { EShapeDefaults } from \"../e-shape-defaults\";\nimport { EShapeCopyPart } from \"../e-shape-copy-part\";\nimport { DDiagramSerializedItem } from \"../../d-diagram-serialized\";\nimport { EShapeResourceManagerSerialization } from \"../e-shape-resource-manager-serialization\";\nimport { EShape } from \"../e-shape\";\nimport { toPointsBoundary } from \"../e-shape-points-formatted\";\nimport { EShapeConnectorBody } from \"../e-shape-connector-body\";\nimport { EShapeConnectorBodyImpl } from \"../e-shape-connector-body-impl\";\nimport { EShapeConnectorEdge } from \"../e-shape-connector-edge\";\n\nexport class EShapeConnectorLine extends EShapeLineBase implements EShapeConnector {\n\tprotected static WORK_BOUNDARY: [number, number, number, number];\n\tprotected _edge: EShapeConnectorEdgeContainer;\n\tprotected _body: EShapeConnectorBody;\n\tprotected declare _points: EShapeLinePoints;\n\tprotected _tailLocalId: number;\n\tprotected _tailNormalId: number;\n\tprotected _tailMargin: number;\n\tprotected _headLocalId: number;\n\tprotected _headNormalId: number;\n\tprotected _headMargin: number;\n\tprotected _bodyId: number;\n\tprotected _lockCount: number;\n\tprotected _isChanged: boolean;\n\n\tconstructor(type: EShapeType = EShapeType.CONNECTOR_LINE) {\n\t\tsuper(type);\n\t\tthis._tailLocalId = 0;\n\t\tthis._tailNormalId = 0;\n\t\tthis._tailMargin = 0;\n\t\tthis._headLocalId = 0;\n\t\tthis._headNormalId = 0;\n\t\tthis._headMargin = 0;\n\t\tthis._bodyId = 0;\n\t\tthis._lockCount = 0;\n\t\tthis._isChanged = false;\n\t\tconst sx = EShapeDefaults.SIZE_X;\n\t\tconst sy = EShapeDefaults.SIZE_Y;\n\t\tconst hx = sx * 0.5;\n\t\tconst hy = sy * 0.5;\n\t\tthis._points = new EShapeLinePoints(this).set([-hx, -hy, +hx, +hy]);\n\t\tconst onChangeBound = (): void => {\n\t\t\tthis.onChange();\n\t\t};\n\t\tthis._edge = new EShapeConnectorEdgeContainerImpl(this, onChangeBound);\n\t\tthis._body = new EShapeConnectorBodyImpl(this, onChangeBound);\n\t}\n\n\tlock(): void {\n\t\tthis._lockCount += 1;\n\t\tif (this._lockCount === 1) {\n\t\t\tthis._isChanged = false;\n\t\t}\n\t}\n\n\tunlock(): void {\n\t\tthis._lockCount -= 1;\n\t\tif (this._lockCount === 0) {\n\t\t\tif (this._isChanged) {\n\t\t\t\tthis.onChange();\n\t\t\t}\n\t\t\tthis._isChanged = false;\n\t\t}\n\t}\n\n\tget points(): EShapeLinePoints {\n\t\treturn this._points;\n\t}\n\n\tget edge(): EShapeConnectorEdgeContainer {\n\t\treturn this._edge;\n\t}\n\n\tget body(): EShapeConnectorBody {\n\t\treturn this._body;\n\t}\n\n\tonAttach(): void {\n\t\tsuper.onAttach();\n\t\tthis._edge.attach();\n\t}\n\n\tonDetach(): void {\n\t\tthis._edge.detach();\n\t\tsuper.onDetach();\n\t}\n\n\tprotected onChange(): void {\n\t\tif (0 < this._lockCount) {\n\t\t\tthis._isChanged = true;\n\t\t\treturn;\n\t\t}\n\n\t\tconst edge = this._edge;\n\t\tconst tail = edge.tail;\n\t\tconst tailLocalId = tail.localId;\n\t\tconst tailNormalId = tail.normalId;\n\t\tconst tailMargin = tail.margin;\n\t\tconst head = edge.head;\n\t\tconst headLocalId = head.localId;\n\t\tconst headNormalId = head.normalId;\n\t\tconst headMargin = head.margin;\n\t\tconst body = this._body;\n\t\tconst bodyId = body.id;\n\t\tif (\n\t\t\tthis._tailLocalId !== tailLocalId ||\n\t\t\tthis._tailNormalId !== tailNormalId ||\n\t\t\tthis._tailMargin !== tailMargin ||\n\t\t\tthis._headLocalId !== headLocalId ||\n\t\t\tthis._headNormalId !== headNormalId ||\n\t\t\tthis._headMargin !== headMargin ||\n\t\t\tthis._bodyId !== bodyId\n\t\t) {\n\t\t\tthis._tailLocalId = tailLocalId;\n\t\t\tthis._tailNormalId = tailNormalId;\n\t\t\tthis._tailMargin = tailMargin;\n\t\t\tthis._headLocalId = headLocalId;\n\t\t\tthis._headNormalId = headNormalId;\n\t\t\tthis._headMargin = headMargin;\n\t\t\tthis._bodyId !== bodyId;\n\n\t\t\tconst transform = this.transform;\n\t\t\tconst transformPosition = transform.position;\n\t\t\tconst px = transformPosition.x;\n\t\t\tconst py = transformPosition.y;\n\t\t\tconst points = this._points;\n\t\t\tconst values = points.values;\n\n\t\t\t// Fill points\n\t\t\tthis.fillPoints(tail, tailMargin, head, headMargin, body, px, py, values);\n\n\t\t\t// Center & size\n\t\t\tconst boundary = (EShapeConnectorLine.WORK_BOUNDARY ??= [0, 0, 0, 0]);\n\t\t\ttoPointsBoundary(values, boundary);\n\t\t\tconst cx = (boundary[2] + boundary[0]) * 0.5;\n\t\t\tconst cy = (boundary[3] + boundary[1]) * 0.5;\n\t\t\tconst sx = boundary[2] - boundary[0];\n\t\t\tconst sy = boundary[3] - boundary[1];\n\n\t\t\t// Adjust values\n\t\t\tfor (let i = 0, imax = values.length; i < imax; i += 2) {\n\t\t\t\tvalues[i + 0] -= cx;\n\t\t\t\tvalues[i + 1] -= cy;\n\t\t\t}\n\n\t\t\tthis.disallowUploadedUpdate();\n\t\t\ttransformPosition.set(px + cx, py + cy);\n\t\t\ttransform.scale.set(1, 1);\n\t\t\ttransform.rotation = 0;\n\t\t\ttransform.skew.set(0, 0);\n\t\t\tthis.size.set(sx, sy);\n\t\t\tpoints.toFitted();\n\t\t\tpoints.set(values);\n\t\t\tthis.allowUploadedUpdate();\n\t\t}\n\t}\n\n\tprotected fillPoints(\n\t\ttail: EShapeConnectorEdge,\n\t\ttailMargin: number,\n\t\thead: EShapeConnectorEdge,\n\t\theadMargin: number,\n\t\tbody: EShapeConnectorBody,\n\t\tpx: number,\n\t\tpy: number,\n\t\tvalues: number[]\n\t): void {\n\t\t// Tail\n\t\tconst threshold = 0.000001;\n\t\tconst tailLocal = tail.local;\n\t\tconst tailLocalX = tailLocal.x;\n\t\tconst tailLocalY = tailLocal.y;\n\t\tconst x0 = tailLocalX - px;\n\t\tconst y0 = tailLocalY - py;\n\n\t\t// Head\n\t\tconst headLocal = head.local;\n\t\tconst headLocalX = headLocal.x;\n\t\tconst headLocalY = headLocal.y;\n\t\tconst x1 = headLocalX - px;\n\t\tconst y1 = headLocalY - py;\n\n\t\t// Body\n\t\tconst bodyValues = body.values;\n\t\tconst bodyValuesLength = bodyValues.length;\n\n\t\t// Tail points\n\t\tvalues[0] = x0;\n\t\tvalues[1] = y0;\n\n\t\t// Body points\n\t\tif (0 < bodyValuesLength) {\n\t\t\tconst cx = (x1 + x0) * 0.5;\n\t\t\tconst cy = (y1 + y0) * 0.5;\n\t\t\tconst dx = x1 - x0;\n\t\t\tconst dy = y1 - y0;\n\t\t\tconst a = Math.atan2(dy, dx);\n\t\t\tconst c = Math.cos(a);\n\t\t\tconst s = Math.sin(a);\n\t\t\tconst l = Math.sqrt(dx * dx + dy * dy);\n\t\t\tfor (let i = 0; i < bodyValuesLength; i += 2) {\n\t\t\t\tconst x = bodyValues[i + 0];\n\t\t\t\tconst y = bodyValues[i + 1];\n\t\t\t\tvalues[i + 2] = cx + (c * x - s * y) * l;\n\t\t\t\tvalues[i + 3] = cy + (c * y + s * x) * l;\n\t\t\t}\n\t\t}\n\n\t\t// Head points\n\t\tvalues[2 + bodyValuesLength] = x1;\n\t\tvalues[3 + bodyValuesLength] = y1;\n\n\t\t// Tail margin\n\t\tif (tailMargin !== 0) {\n\t\t\tconst dx = values[2] - x0;\n\t\t\tconst dy = values[3] - y0;\n\t\t\tconst d = dx * dx + dy * dy;\n\t\t\tif (threshold < d) {\n\t\t\t\tconst f = tailMargin / Math.sqrt(dx * dx + dy * dy);\n\t\t\t\tvalues[0] = x0 + dx * f;\n\t\t\t\tvalues[1] = y0 + dy * f;\n\t\t\t}\n\t\t}\n\n\t\t// Head margin\n\t\tif (headMargin !== 0) {\n\t\t\tconst dx = values[0 + bodyValuesLength] - x1;\n\t\t\tconst dy = values[1 + bodyValuesLength] - y1;\n\t\t\tconst d = dx * dx + dy * dy;\n\t\t\tif (threshold < d) {\n\t\t\t\tconst f = headMargin / Math.sqrt(dx * dx + dy * dy);\n\t\t\t\tvalues[2 + bodyValuesLength] = x1 + dx * f;\n\t\t\t\tvalues[3 + bodyValuesLength] = y1 + dy * f;\n\t\t\t}\n\t\t}\n\n\t\t// Remove the rest\n\t\tvalues.length = bodyValuesLength + 4;\n\t}\n\n\tcopy(source: EShape, part: EShapeCopyPart = EShapeCopyPart.ALL): this {\n\t\tsuper.copy(source, part);\n\t\tif (source instanceof EShapeConnectorLine) {\n\t\t\tthis._edge.copy(source.edge);\n\t\t\tthis._body.copy(source.body);\n\t\t}\n\t\treturn this;\n\t}\n\n\tclone(): EShapeConnectorLine {\n\t\tconst constructor = this.constructor as typeof EShapeConnectorLine;\n\t\treturn new constructor(this.type).copy(this);\n\t}\n\n\tserialize(manager: EShapeResourceManagerSerialization): DDiagramSerializedItem {\n\t\tconst result = super.serialize(manager);\n\t\tconst edgeId = this._edge.serialize(manager);\n\t\tconst bodyId = this._body.serialize(manager);\n\t\tconst pointsId = this._points.serialize(manager);\n\t\tresult[15] = manager.addResource(`[${edgeId},${pointsId},${bodyId}]`);\n\t\treturn result;\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"e-shape-connector-line.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/e-shape-connector-line.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { EShapeType } from \"../e-shape-type\";\nimport { EShapeConnector } from \"../e-shape-connector\";\nimport { EShapeConnectorEdgeContainer } from \"../e-shape-connector-edge-container\";\nimport { EShapeConnectorEdgeContainerImpl } from \"../e-shape-connector-edge-container-impl\";\nimport { EShapeLineBase } from \"./e-shape-line-base\";\nimport { EShapeLinePoints } from \"./e-shape-line-points\";\nimport { EShapeDefaults } from \"../e-shape-defaults\";\nimport { EShapeCopyPart } from \"../e-shape-copy-part\";\nimport { DDiagramSerializedItem } from \"../../d-diagram-serialized\";\nimport { EShapeResourceManagerSerialization } from \"../e-shape-resource-manager-serialization\";\nimport { EShape } from \"../e-shape\";\nimport { toPointsBoundary } from \"../e-shape-points-formatted\";\nimport { EShapeConnectorBody } from \"../e-shape-connector-body\";\nimport { EShapeConnectorBodyImpl } from \"../e-shape-connector-body-impl\";\nimport { EShapeConnectorEdge } from \"../e-shape-connector-edge\";\n\nexport class EShapeConnectorLine extends EShapeLineBase implements EShapeConnector {\n\tprotected static WORK_BOUNDARY: [number, number, number, number];\n\tprotected _edge: EShapeConnectorEdgeContainer;\n\tprotected _body: EShapeConnectorBody;\n\tprotected declare _points: EShapeLinePoints;\n\tprotected _tailLocalId: number;\n\tprotected _tailNormalId: number;\n\tprotected _tailMargin: number;\n\tprotected _headLocalId: number;\n\tprotected _headNormalId: number;\n\tprotected _headMargin: number;\n\tprotected _bodyId: number;\n\tprotected _lockCount: number;\n\tprotected _isChanged: boolean;\n\n\tconstructor(type: EShapeType = EShapeType.CONNECTOR_LINE) {\n\t\tsuper(type);\n\t\tthis._tailLocalId = 0;\n\t\tthis._tailNormalId = 0;\n\t\tthis._tailMargin = 0;\n\t\tthis._headLocalId = 0;\n\t\tthis._headNormalId = 0;\n\t\tthis._headMargin = 0;\n\t\tthis._bodyId = 0;\n\t\tthis._lockCount = 0;\n\t\tthis._isChanged = false;\n\t\tconst sx = EShapeDefaults.SIZE_X;\n\t\tconst sy = EShapeDefaults.SIZE_Y;\n\t\tconst hx = sx * 0.5;\n\t\tconst hy = sy * 0.5;\n\t\tthis._points = new EShapeLinePoints(this).set([-hx, -hy, +hx, +hy]);\n\t\tconst onChangeBound = (): void => {\n\t\t\tthis.onChange();\n\t\t};\n\t\tthis._edge = new EShapeConnectorEdgeContainerImpl(this, onChangeBound);\n\t\tthis._body = new EShapeConnectorBodyImpl(this, onChangeBound);\n\t}\n\n\tlock(): void {\n\t\tthis._lockCount += 1;\n\t\tif (this._lockCount === 1) {\n\t\t\tthis._isChanged = false;\n\t\t}\n\t}\n\n\tunlock(): void {\n\t\tthis._lockCount -= 1;\n\t\tif (this._lockCount === 0) {\n\t\t\tif (this._isChanged) {\n\t\t\t\tthis.onChange();\n\t\t\t}\n\t\t\tthis._isChanged = false;\n\t\t}\n\t}\n\n\tget points(): EShapeLinePoints {\n\t\treturn this._points;\n\t}\n\n\tget edge(): EShapeConnectorEdgeContainer {\n\t\treturn this._edge;\n\t}\n\n\tget body(): EShapeConnectorBody {\n\t\treturn this._body;\n\t}\n\n\tonAttach(): void {\n\t\tsuper.onAttach();\n\t\tthis._edge.attach();\n\t}\n\n\tonDetach(): void {\n\t\tthis._edge.detach();\n\t\tsuper.onDetach();\n\t}\n\n\tprotected onChange(): void {\n\t\tif (0 < this._lockCount) {\n\t\t\tthis._isChanged = true;\n\t\t\treturn;\n\t\t}\n\n\t\tconst edge = this._edge;\n\t\tconst tail = edge.tail;\n\t\tconst tailLocalId = tail.localId;\n\t\tconst tailNormalId = tail.normalId;\n\t\tconst tailMargin = tail.margin;\n\t\tconst head = edge.head;\n\t\tconst headLocalId = head.localId;\n\t\tconst headNormalId = head.normalId;\n\t\tconst headMargin = head.margin;\n\t\tconst body = this._body;\n\t\tconst bodyId = body.id;\n\t\tif (\n\t\t\tthis._tailLocalId !== tailLocalId ||\n\t\t\tthis._tailNormalId !== tailNormalId ||\n\t\t\tthis._tailMargin !== tailMargin ||\n\t\t\tthis._headLocalId !== headLocalId ||\n\t\t\tthis._headNormalId !== headNormalId ||\n\t\t\tthis._headMargin !== headMargin ||\n\t\t\tthis._bodyId !== bodyId\n\t\t) {\n\t\t\tthis._tailLocalId = tailLocalId;\n\t\t\tthis._tailNormalId = tailNormalId;\n\t\t\tthis._tailMargin = tailMargin;\n\t\t\tthis._headLocalId = headLocalId;\n\t\t\tthis._headNormalId = headNormalId;\n\t\t\tthis._headMargin = headMargin;\n\t\t\tthis._bodyId !== bodyId;\n\n\t\t\tconst transform = this.transform;\n\t\t\tconst transformPosition = transform.position;\n\t\t\tconst px = transformPosition.x;\n\t\t\tconst py = transformPosition.y;\n\t\t\tconst points = this._points;\n\t\t\tconst values = points.values;\n\n\t\t\t// Fill points\n\t\t\tthis.fillPoints(tail, tailMargin, head, headMargin, body, px, py, values);\n\n\t\t\t// Center & size\n\t\t\tconst boundary = (EShapeConnectorLine.WORK_BOUNDARY ??= [0, 0, 0, 0]);\n\t\t\ttoPointsBoundary(values, boundary);\n\t\t\tconst cx = (boundary[2] + boundary[0]) * 0.5;\n\t\t\tconst cy = (boundary[3] + boundary[1]) * 0.5;\n\t\t\tconst sx = boundary[2] - boundary[0];\n\t\t\tconst sy = boundary[3] - boundary[1];\n\n\t\t\t// Adjust values\n\t\t\tfor (let i = 0, imax = values.length; i < imax; i += 2) {\n\t\t\t\tvalues[i + 0] -= cx;\n\t\t\t\tvalues[i + 1] -= cy;\n\t\t\t}\n\n\t\t\tthis.disallowUploadedUpdate();\n\t\t\ttransformPosition.set(px + cx, py + cy);\n\t\t\ttransform.scale.set(1, 1);\n\t\t\ttransform.rotation = 0;\n\t\t\ttransform.skew.set(0, 0);\n\t\t\tpoints.toFitted(sx, sy);\n\t\t\tthis.size.set(sx, sy);\n\t\t\tpoints.set(values);\n\t\t\tthis.allowUploadedUpdate();\n\t\t}\n\t}\n\n\tprotected fillPoints(\n\t\ttail: EShapeConnectorEdge,\n\t\ttailMargin: number,\n\t\thead: EShapeConnectorEdge,\n\t\theadMargin: number,\n\t\tbody: EShapeConnectorBody,\n\t\tpx: number,\n\t\tpy: number,\n\t\tvalues: number[]\n\t): void {\n\t\t// Tail\n\t\tconst threshold = 0.000001;\n\t\tconst tailLocal = tail.local;\n\t\tconst tailLocalX = tailLocal.x;\n\t\tconst tailLocalY = tailLocal.y;\n\t\tconst x0 = tailLocalX - px;\n\t\tconst y0 = tailLocalY - py;\n\n\t\t// Head\n\t\tconst headLocal = head.local;\n\t\tconst headLocalX = headLocal.x;\n\t\tconst headLocalY = headLocal.y;\n\t\tconst x1 = headLocalX - px;\n\t\tconst y1 = headLocalY - py;\n\n\t\t// Body\n\t\tconst bodyValues = body.values;\n\t\tconst bodyValuesLength = bodyValues.length;\n\n\t\t// Tail points\n\t\tvalues[0] = x0;\n\t\tvalues[1] = y0;\n\n\t\t// Body points\n\t\tif (0 < bodyValuesLength) {\n\t\t\tconst cx = (x1 + x0) * 0.5;\n\t\t\tconst cy = (y1 + y0) * 0.5;\n\t\t\tconst dx = x1 - x0;\n\t\t\tconst dy = y1 - y0;\n\t\t\tconst a = Math.atan2(dy, dx);\n\t\t\tconst c = Math.cos(a);\n\t\t\tconst s = Math.sin(a);\n\t\t\tconst l = Math.sqrt(dx * dx + dy * dy);\n\t\t\tfor (let i = 0; i < bodyValuesLength; i += 2) {\n\t\t\t\tconst x = bodyValues[i + 0];\n\t\t\t\tconst y = bodyValues[i + 1];\n\t\t\t\tvalues[i + 2] = cx + (c * x - s * y) * l;\n\t\t\t\tvalues[i + 3] = cy + (c * y + s * x) * l;\n\t\t\t}\n\t\t}\n\n\t\t// Head points\n\t\tvalues[2 + bodyValuesLength] = x1;\n\t\tvalues[3 + bodyValuesLength] = y1;\n\n\t\t// Tail margin\n\t\tif (tailMargin !== 0) {\n\t\t\tconst dx = values[2] - x0;\n\t\t\tconst dy = values[3] - y0;\n\t\t\tconst d = dx * dx + dy * dy;\n\t\t\tif (threshold < d) {\n\t\t\t\tconst f = tailMargin / Math.sqrt(dx * dx + dy * dy);\n\t\t\t\tvalues[0] = x0 + dx * f;\n\t\t\t\tvalues[1] = y0 + dy * f;\n\t\t\t}\n\t\t}\n\n\t\t// Head margin\n\t\tif (headMargin !== 0) {\n\t\t\tconst dx = values[0 + bodyValuesLength] - x1;\n\t\t\tconst dy = values[1 + bodyValuesLength] - y1;\n\t\t\tconst d = dx * dx + dy * dy;\n\t\t\tif (threshold < d) {\n\t\t\t\tconst f = headMargin / Math.sqrt(dx * dx + dy * dy);\n\t\t\t\tvalues[2 + bodyValuesLength] = x1 + dx * f;\n\t\t\t\tvalues[3 + bodyValuesLength] = y1 + dy * f;\n\t\t\t}\n\t\t}\n\n\t\t// Remove the rest\n\t\tvalues.length = bodyValuesLength + 4;\n\t}\n\n\tcopy(source: EShape, part: EShapeCopyPart = EShapeCopyPart.ALL): this {\n\t\tsuper.copy(source, part);\n\t\tif (source instanceof EShapeConnectorLine) {\n\t\t\tthis._edge.copy(source.edge);\n\t\t\tthis._body.copy(source.body);\n\t\t}\n\t\treturn this;\n\t}\n\n\tclone(): EShapeConnectorLine {\n\t\tconst constructor = this.constructor as typeof EShapeConnectorLine;\n\t\treturn new constructor(this.type).copy(this);\n\t}\n\n\tserialize(manager: EShapeResourceManagerSerialization): DDiagramSerializedItem {\n\t\tconst result = super.serialize(manager);\n\t\tconst edgeId = this._edge.serialize(manager);\n\t\tconst bodyId = this._body.serialize(manager);\n\t\tconst pointsId = this._points.serialize(manager);\n\t\tresult[15] = manager.addResource(`[${edgeId},${pointsId},${bodyId}]`);\n\t\treturn result;\n\t}\n}\n"]}
|
|
@@ -30,20 +30,16 @@ var EShapeLinePoints = /** @class */ (function () {
|
|
|
30
30
|
enumerable: false,
|
|
31
31
|
configurable: true
|
|
32
32
|
});
|
|
33
|
-
EShapeLinePoints.prototype.toFitted = function () {
|
|
33
|
+
EShapeLinePoints.prototype.toFitted = function (x, y) {
|
|
34
34
|
this._valuesBase = undefined;
|
|
35
|
-
|
|
36
|
-
this.
|
|
37
|
-
this._parentSizeBase.copyFrom(parentSize);
|
|
35
|
+
this._parentSizeFitted.set(x, y);
|
|
36
|
+
this._parentSizeBase.set(x, y);
|
|
38
37
|
};
|
|
39
38
|
EShapeLinePoints.prototype.onSizeChange = function () {
|
|
40
39
|
this.fit();
|
|
41
40
|
};
|
|
42
41
|
EShapeLinePoints.prototype.fit = function () {
|
|
43
42
|
var parent = this._parent;
|
|
44
|
-
if (parent == null) {
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
43
|
var psizef = this._parentSizeFitted;
|
|
48
44
|
var psize = parent.size;
|
|
49
45
|
var psizeX = psize.x;
|
|
@@ -252,7 +248,8 @@ var EShapeLinePoints = /** @class */ (function () {
|
|
|
252
248
|
var valuesBaseLength = this._valuesBaseLength;
|
|
253
249
|
var newValuesLength = newValues.length;
|
|
254
250
|
var iupdate = Math.min(newValuesLength, valuesBaseLength);
|
|
255
|
-
this.
|
|
251
|
+
var parentSize = this._parent.size;
|
|
252
|
+
this.toFitted(parentSize.x, parentSize.y);
|
|
256
253
|
if (values !== newValues) {
|
|
257
254
|
for (var i = 0; i < iupdate; ++i) {
|
|
258
255
|
values[i] = newValues[i];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e-shape-line-points.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/e-shape-line-points.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Matrix, Point } from \"pixi.js\";\nimport { toIndexOf } from \"../../util/to-index-of\";\nimport { EShape } from \"../e-shape\";\nimport { EShapePoints } from \"../e-shape-points\";\nimport { EShapePointsStyle } from \"../e-shape-points-style\";\nimport { EShapeResourceManagerSerialization } from \"../e-shape-resource-manager-serialization\";\nimport { EShapePointsFormatter } from \"../e-shape-points-formatter\";\nimport {\n\tEShapePointsFormatted,\n\tEShapePointsFormattedBoundary,\n\tEShapePointsFormattedWithBoundary,\n\ttoPointsBoundary\n} from \"../e-shape-points-formatted\";\nimport { EShapeLineBasePointsHitTester } from \"./e-shape-line-base-points-hit-tester\";\nimport { EShapeLineBasePointsHitTesterToRange } from \"./e-shape-line-base-points-hit-tester-to-range\";\nimport { EShapeResourceManagerDeserialization } from \"../e-shape-resource-manager-deserialization\";\nimport { EShapePointsMarkerContainer } from \"../e-shape-points-marker-container\";\nimport { EShapePointsMarkerContainerImpl } from \"../e-shape-points-marker-container-impl\";\nimport { EShapePointsFormatters } from \"../e-shape-points-formatters\";\n\nexport type EShapeLinePointsSerialized = [number[], number[], number, number?];\n\nexport class EShapeLinePoints implements EShapePoints {\n\tprotected static WORK_RANGE: [number, number] = [0, 0];\n\n\tprotected _parent: EShape;\n\tprotected _valuesBase?: number[];\n\tprotected _valuesBaseLength: number;\n\tprotected _values: number[];\n\tprotected _segments: number[];\n\tprotected _parentSizeBase: Point;\n\tprotected _parentSizeFitted: Point;\n\tprotected _id: number;\n\tprotected _style: EShapePointsStyle;\n\tprotected _formattedId: number;\n\tprotected _formatter?: EShapePointsFormatter | null;\n\tprotected _formatted?: EShapePointsFormattedWithBoundary;\n\n\tprotected _marker?: EShapePointsMarkerContainer;\n\n\tconstructor(parent: EShape) {\n\t\tthis._parent = parent;\n\t\tthis._valuesBaseLength = 0;\n\t\tthis._values = [];\n\t\tthis._segments = [];\n\t\tconst parentSize = parent.size;\n\t\tconst parentSizeX = parentSize.x;\n\t\tconst parentSizeY = parentSize.y;\n\t\tthis._parentSizeBase = new Point(parentSizeX, parentSizeY);\n\t\tthis._parentSizeFitted = new Point(parentSizeX, parentSizeY);\n\t\tthis._id = 0;\n\t\tthis._style = EShapePointsStyle.NONE;\n\t\tthis._formattedId = -1;\n\t}\n\n\tget length(): number {\n\t\treturn this._values.length >> 1;\n\t}\n\n\ttoFitted(): void {\n\t\tthis._valuesBase = undefined;\n\t\tconst parentSize = this._parent.size;\n\t\tthis._parentSizeFitted.copyFrom(parentSize);\n\t\tthis._parentSizeBase.copyFrom(parentSize);\n\t}\n\n\tonSizeChange(): void {\n\t\tthis.fit();\n\t}\n\n\tprotected fit(): void {\n\t\tconst parent = this._parent;\n\t\tif (parent == null) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst psizef = this._parentSizeFitted;\n\t\tconst psize = parent.size;\n\t\tconst psizeX = psize.x;\n\t\tconst psizeY = psize.y;\n\t\tconst threshold = 0.00001;\n\t\tif (Math.abs(psizeX - psizef.x) <= threshold && Math.abs(psizeY - psizef.y) <= threshold) {\n\t\t\treturn;\n\t\t}\n\n\t\tpsizef.set(psizeX, psizeY);\n\t\tconst psizeBase = this._parentSizeBase;\n\t\tconst isValidX = threshold < Math.abs(psizeBase.x);\n\t\tconst isValidY = threshold < Math.abs(psizeBase.y);\n\t\tif (!isValidX && !isValidY) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst scaleX = isValidX ? psizeX / psizeBase.x : 1;\n\t\tconst scaleY = isValidY ? psizeY / psizeBase.y : 1;\n\n\t\t// Values\n\t\tconst values = this._values;\n\t\tlet valuesBase = this._valuesBase;\n\t\tif (valuesBase == null) {\n\t\t\tvaluesBase = [];\n\t\t\tthis._valuesBase = valuesBase;\n\n\t\t\tfor (let i = 0, imax = values.length; i < imax; i += 2) {\n\t\t\t\tconst x = values[i];\n\t\t\t\tconst y = values[i + 1];\n\t\t\t\tvalues[i] = x * scaleX;\n\t\t\t\tvalues[i + 1] = y * scaleY;\n\t\t\t\tvaluesBase.push(x, y);\n\t\t\t}\n\t\t} else {\n\t\t\tfor (let i = 0, imax = values.length; i < imax; i += 2) {\n\t\t\t\tvalues[i] = valuesBase[i] * scaleX;\n\t\t\t\tvalues[i + 1] = valuesBase[i + 1] * scaleY;\n\t\t\t}\n\t\t}\n\n\t\t// Invalidate\n\t\tthis._id += 1;\n\t\tif (this._formatter || this._style & EShapePointsStyle.FORMATTER_MASK) {\n\t\t\tconst uploaded = parent.uploaded;\n\t\t\tif (uploaded && !uploaded.isCompatible(parent)) {\n\t\t\t\tparent.uploaded = undefined;\n\t\t\t\tparent.toDirty();\n\t\t\t}\n\t\t}\n\t}\n\n\tget id(): number {\n\t\tthis.fit();\n\t\treturn this._id;\n\t}\n\n\tget values(): number[] {\n\t\tthis.fit();\n\t\treturn this._values;\n\t}\n\n\tset values(values: number[]) {\n\t\tthis.set(values, undefined, undefined);\n\t}\n\n\tget segments(): number[] {\n\t\treturn this._segments;\n\t}\n\n\t/**\n\t * Must be sorted in ascending order.\n\t */\n\tset segments(segments: number[]) {\n\t\tthis.set(undefined, segments, undefined);\n\t}\n\n\tget style(): EShapePointsStyle {\n\t\treturn this._style;\n\t}\n\n\tset style(style: EShapePointsStyle) {\n\t\tthis.set(undefined, undefined, style);\n\t}\n\n\tget marker(): EShapePointsMarkerContainer {\n\t\tlet result = this._marker;\n\t\tif (result == null) {\n\t\t\tresult = this.newMarker();\n\t\t\tthis._marker = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tgetMarker(): EShapePointsMarkerContainer | undefined {\n\t\treturn this._marker;\n\t}\n\n\tprotected newMarker(): EShapePointsMarkerContainer {\n\t\treturn new EShapePointsMarkerContainerImpl(this);\n\t}\n\n\tonMarkerTypeChange(): void {\n\t\tconst parent = this._parent;\n\t\tparent.uploaded = undefined;\n\t\tparent.toDirty();\n\t}\n\n\tonMarkerSizeChange(): void {\n\t\tthis._parent.updateUploaded();\n\t}\n\n\tonMarkerFillChange(): void {\n\t\tthis._parent.updateUploaded();\n\t}\n\n\tget formatter(): EShapePointsFormatter | null {\n\t\treturn this._formatter || null;\n\t}\n\n\tset formatter(formatter: EShapePointsFormatter | null) {\n\t\tif (this._formatter !== formatter) {\n\t\t\tthis._formattedId = -1;\n\t\t\tthis._formatter = formatter;\n\t\t\tthis.toDirty(true);\n\t\t}\n\t}\n\n\tget formatted(): EShapePointsFormatted {\n\t\tthis.fit();\n\t\tconst id = this._id;\n\t\tlet result = this._formatted;\n\t\tif (this._formattedId !== id) {\n\t\t\tthis._formattedId = id;\n\n\t\t\tconst style = this._style;\n\t\t\tconst formatter = this._formatter ?? EShapePointsFormatters.find(style)?.formatter;\n\t\t\tif (formatter != null) {\n\t\t\t\tif (result == null) {\n\t\t\t\t\tresult = {\n\t\t\t\t\t\tlength: 0,\n\t\t\t\t\t\tvalues: [],\n\t\t\t\t\t\tsegments: [],\n\t\t\t\t\t\tboundary: [0, 0, 0, 0],\n\t\t\t\t\t\tstyle: EShapePointsStyle.NONE\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tconst values = this._values;\n\t\t\t\tconst segments = this._segments;\n\t\t\t\tconst length = values.length >> 1;\n\t\t\t\tformatter(length, values, segments, style, result);\n\t\t\t\ttoPointsBoundary(result.values, result.boundary);\n\t\t\t} else {\n\t\t\t\tresult = undefined;\n\t\t\t}\n\t\t\tthis._formatted = result;\n\t\t}\n\t\treturn result || this;\n\t}\n\n\tprotected toScaled(\n\t\tvalues: number[],\n\t\tvaluesBase: number[],\n\t\tboundary: EShapePointsFormattedBoundary,\n\t\tboundaryBase: EShapePointsFormattedBoundary\n\t): void {\n\t\tconst size = this._parentSizeFitted;\n\t\tconst sizeBase = this._parentSizeBase;\n\t\tconst threshold = 0.00001;\n\t\tconst hasSizeBaseX = threshold < Math.abs(sizeBase.x);\n\t\tconst hasSizeBaseY = threshold < Math.abs(sizeBase.y);\n\t\tif (hasSizeBaseX || hasSizeBaseY) {\n\t\t\tconst scaleX = hasSizeBaseX ? size.x / sizeBase.x : 1;\n\t\t\tconst scaleY = hasSizeBaseY ? size.y / sizeBase.y : 1;\n\n\t\t\tfor (let i = 0, imax = valuesBase.length; i < imax; i += 2) {\n\t\t\t\tvalues[i] = valuesBase[i] * scaleX;\n\t\t\t\tvalues[i + 1] = valuesBase[i + 1] * scaleY;\n\t\t\t}\n\n\t\t\tfor (let i = 0, imax = boundaryBase.length; i < imax; i += 2) {\n\t\t\t\tboundary[i] = boundaryBase[i] * scaleX;\n\t\t\t\tboundary[i + 1] = boundaryBase[i + 1] * scaleY;\n\t\t\t}\n\t\t}\n\t}\n\n\tcopy(source: EShapePoints): this {\n\t\tthis.set(source.values, source.segments, source.style);\n\t\tconst marker = source.getMarker();\n\t\tif (marker) {\n\t\t\tthis.marker.copy(marker);\n\t\t}\n\t\treturn this;\n\t}\n\n\tset(newValues?: number[], newSegments?: number[], newStyle?: EShapePointsStyle): this {\n\t\tlet isDirty = false;\n\t\tlet isUpdated = false;\n\n\t\t// Formatter\n\t\tconst style = this._style;\n\t\tconst styleFormatter = style & EShapePointsStyle.FORMATTER_MASK;\n\t\tconst formatter = this._formatter;\n\n\t\t// Values\n\t\tif (newValues != null) {\n\t\t\tconst values = this._values;\n\t\t\tconst valuesBaseLength = this._valuesBaseLength;\n\t\t\tconst newValuesLength = newValues.length;\n\t\t\tconst iupdate = Math.min(newValuesLength, valuesBaseLength);\n\t\t\tthis.toFitted();\n\t\t\tif (values !== newValues) {\n\t\t\t\tfor (let i = 0; i < iupdate; ++i) {\n\t\t\t\t\tvalues[i] = newValues[i];\n\t\t\t\t}\n\n\t\t\t\tfor (let i = iupdate; i < newValuesLength; ++i) {\n\t\t\t\t\tvalues.push(newValues[i]);\n\t\t\t\t}\n\n\t\t\t\tif (valuesBaseLength !== newValuesLength) {\n\t\t\t\t\tvalues.length = newValuesLength;\n\t\t\t\t\tthis._valuesBaseLength = newValuesLength;\n\t\t\t\t\tisDirty = true;\n\t\t\t\t} else {\n\t\t\t\t\tif (formatter != null || styleFormatter) {\n\t\t\t\t\t\tisDirty = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tisUpdated = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (valuesBaseLength !== newValuesLength) {\n\t\t\t\t\tthis._valuesBaseLength = newValuesLength;\n\t\t\t\t\tisDirty = true;\n\t\t\t\t} else {\n\t\t\t\t\tif (formatter != null || styleFormatter) {\n\t\t\t\t\t\tisDirty = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tisUpdated = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Segments\n\t\tif (newSegments != null) {\n\t\t\tconst segments = this._segments;\n\t\t\tif (segments !== newSegments) {\n\t\t\t\tconst newSegmentsLength = newSegments.length;\n\t\t\t\tconst iupdate = Math.min(segments.length, newSegmentsLength);\n\t\t\t\tfor (let i = 0; i < iupdate; ++i) {\n\t\t\t\t\tsegments[i] = newSegments[i];\n\t\t\t\t}\n\n\t\t\t\tfor (let i = iupdate; i < newSegmentsLength; ++i) {\n\t\t\t\t\tsegments.push(newSegments[i]);\n\t\t\t\t}\n\n\t\t\t\tif (segments.length !== newSegmentsLength) {\n\t\t\t\t\tsegments.length = newSegmentsLength;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (formatter != null || styleFormatter) {\n\t\t\t\tisDirty = true;\n\t\t\t} else {\n\t\t\t\tisUpdated = true;\n\t\t\t}\n\t\t}\n\n\t\t// Style\n\t\tif (newStyle != null) {\n\t\t\tif (style !== newStyle) {\n\t\t\t\tconst newStyleFormatter = newStyle & EShapePointsStyle.FORMATTER_MASK;\n\t\t\t\tif (styleFormatter !== newStyleFormatter) {\n\t\t\t\t\tisDirty = true;\n\t\t\t\t} else {\n\t\t\t\t\tif (formatter != null || styleFormatter) {\n\t\t\t\t\t\tconst styleClosed = style & EShapePointsStyle.CLOSED;\n\t\t\t\t\t\tconst newStyleClosed = newStyle & EShapePointsStyle.CLOSED;\n\t\t\t\t\t\tif (styleClosed !== newStyleClosed) {\n\t\t\t\t\t\t\tisDirty = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tisUpdated = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tisUpdated = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis._style = newStyle;\n\t\t\t}\n\t\t}\n\n\t\t//\n\t\tif (isUpdated || isDirty) {\n\t\t\tthis.toDirty(isDirty);\n\t\t}\n\t\treturn this;\n\t}\n\n\tprotected toDirty(revalidate: boolean): void {\n\t\tif (revalidate) {\n\t\t\tthis._id += 1;\n\t\t\tconst parent = this._parent;\n\t\t\tconst uploaded = parent.uploaded;\n\t\t\tif (uploaded) {\n\t\t\t\tif (uploaded.isCompatible(parent)) {\n\t\t\t\t\tparent.updateUploaded();\n\t\t\t\t} else {\n\t\t\t\t\tparent.uploaded = undefined;\n\t\t\t\t\tparent.toDirty();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tparent.updateUploaded();\n\t\t\t}\n\t\t} else {\n\t\t\tthis._id += 1;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tclone(parent: EShape): EShapeLinePoints {\n\t\treturn new EShapeLinePoints(parent).copy(this);\n\t}\n\n\ttoPoints(transform: Matrix): Point[] {\n\t\tconst result: Point[] = [];\n\t\tconst values = this.values;\n\t\tfor (let i = 0, imax = values.length; i < imax; i += 2) {\n\t\t\tconst point = new Point(values[i + 0], values[i + 1]);\n\t\t\tresult.push(transform.apply(point, point));\n\t\t}\n\t\treturn result;\n\t}\n\n\tserialize(manager: EShapeResourceManagerSerialization): number {\n\t\tconst values = JSON.stringify(this._values);\n\t\tconst segments = JSON.stringify(this._segments);\n\t\tconst style = this._style;\n\t\tlet markerId = -1;\n\t\tconst marker = this._marker;\n\t\tif (marker) {\n\t\t\tmarkerId = marker.serialize(manager);\n\t\t}\n\t\treturn manager.addResource(`[${values},${segments},${style},${markerId}]`);\n\t}\n\n\tdeserialize(resourceId: number, manager: EShapeResourceManagerDeserialization): void {\n\t\tconst resources = manager.resources;\n\t\tif (0 <= resourceId && resourceId < resources.length) {\n\t\t\tlet parsed = manager.getExtension<EShapeLinePointsSerialized>(resourceId);\n\t\t\tif (parsed == null) {\n\t\t\t\tparsed = JSON.parse(resources[resourceId]) as EShapeLinePointsSerialized;\n\t\t\t\tmanager.setExtension(resourceId, parsed);\n\t\t\t}\n\t\t\tthis.set(parsed[0], parsed[1], parsed[2]);\n\t\t\tconst markerId = parsed[3];\n\t\t\tif (markerId != null && 0 <= markerId) {\n\t\t\t\tthis.marker.deserialize(markerId, manager);\n\t\t\t}\n\t\t}\n\t}\n\n\tcalcHitPointAbs<RESULT>(\n\t\tx: number,\n\t\ty: number,\n\t\tax: number,\n\t\tay: number,\n\t\tthreshold: number,\n\t\ttoRange: EShapeLineBasePointsHitTesterToRange | null,\n\t\ttester: EShapeLineBasePointsHitTester<RESULT>,\n\t\tresult: RESULT\n\t): boolean {\n\t\tconst formatted = this.formatted;\n\t\tconst length = formatted.length;\n\t\tif (2 <= length) {\n\t\t\tconst values = formatted.values;\n\t\t\tconst segments = formatted.segments;\n\t\t\tconst style = formatted.style;\n\t\t\tlet istart = 0;\n\t\t\tlet iend = length;\n\t\t\tif (toRange) {\n\t\t\t\tconst work = EShapeLinePoints.WORK_RANGE;\n\t\t\t\ttoRange(x, y, threshold, values, work);\n\t\t\t\tistart = work[0];\n\t\t\t\tiend = work[1];\n\t\t\t}\n\t\t\tfor (let i = istart, imax = Math.min(iend, length - 1); i < imax; ++i) {\n\t\t\t\tif (toIndexOf(segments, i + 1) < 0) {\n\t\t\t\t\tconst iv = i << 1;\n\t\t\t\t\tconst p0x = values[iv + 0];\n\t\t\t\t\tconst p0y = values[iv + 1];\n\t\t\t\t\tconst p1x = values[iv + 2];\n\t\t\t\t\tconst p1y = values[iv + 3];\n\t\t\t\t\tif (tester(x, y, p0x, p0y, p1x, p1y, i, threshold, result)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (2 < length && length <= iend && style & EShapePointsStyle.CLOSED) {\n\t\t\t\tif (toIndexOf(segments, 0) < 0) {\n\t\t\t\t\tconst i = length - 1;\n\t\t\t\t\tconst iv = i << 1;\n\t\t\t\t\tconst p0x = values[iv + 0];\n\t\t\t\t\tconst p0y = values[iv + 1];\n\t\t\t\t\tconst p1x = values[0];\n\t\t\t\t\tconst p1y = values[1];\n\t\t\t\t\tif (tester(x, y, p0x, p0y, p1x, p1y, i, threshold, result)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"e-shape-line-points.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/e-shape-line-points.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Matrix, Point } from \"pixi.js\";\nimport { toIndexOf } from \"../../util/to-index-of\";\nimport { EShape } from \"../e-shape\";\nimport { EShapePoints } from \"../e-shape-points\";\nimport { EShapePointsStyle } from \"../e-shape-points-style\";\nimport { EShapeResourceManagerSerialization } from \"../e-shape-resource-manager-serialization\";\nimport { EShapePointsFormatter } from \"../e-shape-points-formatter\";\nimport {\n\tEShapePointsFormatted,\n\tEShapePointsFormattedBoundary,\n\tEShapePointsFormattedWithBoundary,\n\ttoPointsBoundary\n} from \"../e-shape-points-formatted\";\nimport { EShapeLineBasePointsHitTester } from \"./e-shape-line-base-points-hit-tester\";\nimport { EShapeLineBasePointsHitTesterToRange } from \"./e-shape-line-base-points-hit-tester-to-range\";\nimport { EShapeResourceManagerDeserialization } from \"../e-shape-resource-manager-deserialization\";\nimport { EShapePointsMarkerContainer } from \"../e-shape-points-marker-container\";\nimport { EShapePointsMarkerContainerImpl } from \"../e-shape-points-marker-container-impl\";\nimport { EShapePointsFormatters } from \"../e-shape-points-formatters\";\n\nexport type EShapeLinePointsSerialized = [number[], number[], number, number?];\n\nexport class EShapeLinePoints implements EShapePoints {\n\tprotected static WORK_RANGE: [number, number] = [0, 0];\n\n\tprotected _parent: EShape;\n\tprotected _valuesBase?: number[];\n\tprotected _valuesBaseLength: number;\n\tprotected _values: number[];\n\tprotected _segments: number[];\n\tprotected _parentSizeBase: Point;\n\tprotected _parentSizeFitted: Point;\n\tprotected _id: number;\n\tprotected _style: EShapePointsStyle;\n\tprotected _formattedId: number;\n\tprotected _formatter?: EShapePointsFormatter | null;\n\tprotected _formatted?: EShapePointsFormattedWithBoundary;\n\n\tprotected _marker?: EShapePointsMarkerContainer;\n\n\tconstructor(parent: EShape) {\n\t\tthis._parent = parent;\n\t\tthis._valuesBaseLength = 0;\n\t\tthis._values = [];\n\t\tthis._segments = [];\n\t\tconst parentSize = parent.size;\n\t\tconst parentSizeX = parentSize.x;\n\t\tconst parentSizeY = parentSize.y;\n\t\tthis._parentSizeBase = new Point(parentSizeX, parentSizeY);\n\t\tthis._parentSizeFitted = new Point(parentSizeX, parentSizeY);\n\t\tthis._id = 0;\n\t\tthis._style = EShapePointsStyle.NONE;\n\t\tthis._formattedId = -1;\n\t}\n\n\tget length(): number {\n\t\treturn this._values.length >> 1;\n\t}\n\n\ttoFitted(x: number, y: number): void {\n\t\tthis._valuesBase = undefined;\n\t\tthis._parentSizeFitted.set(x, y);\n\t\tthis._parentSizeBase.set(x, y);\n\t}\n\n\tonSizeChange(): void {\n\t\tthis.fit();\n\t}\n\n\tprotected fit(): void {\n\t\tconst parent = this._parent;\n\t\tconst psizef = this._parentSizeFitted;\n\t\tconst psize = parent.size;\n\t\tconst psizeX = psize.x;\n\t\tconst psizeY = psize.y;\n\t\tconst threshold = 0.00001;\n\t\tif (Math.abs(psizeX - psizef.x) <= threshold && Math.abs(psizeY - psizef.y) <= threshold) {\n\t\t\treturn;\n\t\t}\n\n\t\tpsizef.set(psizeX, psizeY);\n\t\tconst psizeBase = this._parentSizeBase;\n\t\tconst isValidX = threshold < Math.abs(psizeBase.x);\n\t\tconst isValidY = threshold < Math.abs(psizeBase.y);\n\t\tif (!isValidX && !isValidY) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst scaleX = isValidX ? psizeX / psizeBase.x : 1;\n\t\tconst scaleY = isValidY ? psizeY / psizeBase.y : 1;\n\n\t\t// Values\n\t\tconst values = this._values;\n\t\tlet valuesBase = this._valuesBase;\n\t\tif (valuesBase == null) {\n\t\t\tvaluesBase = [];\n\t\t\tthis._valuesBase = valuesBase;\n\n\t\t\tfor (let i = 0, imax = values.length; i < imax; i += 2) {\n\t\t\t\tconst x = values[i];\n\t\t\t\tconst y = values[i + 1];\n\t\t\t\tvalues[i] = x * scaleX;\n\t\t\t\tvalues[i + 1] = y * scaleY;\n\t\t\t\tvaluesBase.push(x, y);\n\t\t\t}\n\t\t} else {\n\t\t\tfor (let i = 0, imax = values.length; i < imax; i += 2) {\n\t\t\t\tvalues[i] = valuesBase[i] * scaleX;\n\t\t\t\tvalues[i + 1] = valuesBase[i + 1] * scaleY;\n\t\t\t}\n\t\t}\n\n\t\t// Invalidate\n\t\tthis._id += 1;\n\t\tif (this._formatter || this._style & EShapePointsStyle.FORMATTER_MASK) {\n\t\t\tconst uploaded = parent.uploaded;\n\t\t\tif (uploaded && !uploaded.isCompatible(parent)) {\n\t\t\t\tparent.uploaded = undefined;\n\t\t\t\tparent.toDirty();\n\t\t\t}\n\t\t}\n\t}\n\n\tget id(): number {\n\t\tthis.fit();\n\t\treturn this._id;\n\t}\n\n\tget values(): number[] {\n\t\tthis.fit();\n\t\treturn this._values;\n\t}\n\n\tset values(values: number[]) {\n\t\tthis.set(values, undefined, undefined);\n\t}\n\n\tget segments(): number[] {\n\t\treturn this._segments;\n\t}\n\n\t/**\n\t * Must be sorted in ascending order.\n\t */\n\tset segments(segments: number[]) {\n\t\tthis.set(undefined, segments, undefined);\n\t}\n\n\tget style(): EShapePointsStyle {\n\t\treturn this._style;\n\t}\n\n\tset style(style: EShapePointsStyle) {\n\t\tthis.set(undefined, undefined, style);\n\t}\n\n\tget marker(): EShapePointsMarkerContainer {\n\t\tlet result = this._marker;\n\t\tif (result == null) {\n\t\t\tresult = this.newMarker();\n\t\t\tthis._marker = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tgetMarker(): EShapePointsMarkerContainer | undefined {\n\t\treturn this._marker;\n\t}\n\n\tprotected newMarker(): EShapePointsMarkerContainer {\n\t\treturn new EShapePointsMarkerContainerImpl(this);\n\t}\n\n\tonMarkerTypeChange(): void {\n\t\tconst parent = this._parent;\n\t\tparent.uploaded = undefined;\n\t\tparent.toDirty();\n\t}\n\n\tonMarkerSizeChange(): void {\n\t\tthis._parent.updateUploaded();\n\t}\n\n\tonMarkerFillChange(): void {\n\t\tthis._parent.updateUploaded();\n\t}\n\n\tget formatter(): EShapePointsFormatter | null {\n\t\treturn this._formatter || null;\n\t}\n\n\tset formatter(formatter: EShapePointsFormatter | null) {\n\t\tif (this._formatter !== formatter) {\n\t\t\tthis._formattedId = -1;\n\t\t\tthis._formatter = formatter;\n\t\t\tthis.toDirty(true);\n\t\t}\n\t}\n\n\tget formatted(): EShapePointsFormatted {\n\t\tthis.fit();\n\t\tconst id = this._id;\n\t\tlet result = this._formatted;\n\t\tif (this._formattedId !== id) {\n\t\t\tthis._formattedId = id;\n\n\t\t\tconst style = this._style;\n\t\t\tconst formatter = this._formatter ?? EShapePointsFormatters.find(style)?.formatter;\n\t\t\tif (formatter != null) {\n\t\t\t\tif (result == null) {\n\t\t\t\t\tresult = {\n\t\t\t\t\t\tlength: 0,\n\t\t\t\t\t\tvalues: [],\n\t\t\t\t\t\tsegments: [],\n\t\t\t\t\t\tboundary: [0, 0, 0, 0],\n\t\t\t\t\t\tstyle: EShapePointsStyle.NONE\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tconst values = this._values;\n\t\t\t\tconst segments = this._segments;\n\t\t\t\tconst length = values.length >> 1;\n\t\t\t\tformatter(length, values, segments, style, result);\n\t\t\t\ttoPointsBoundary(result.values, result.boundary);\n\t\t\t} else {\n\t\t\t\tresult = undefined;\n\t\t\t}\n\t\t\tthis._formatted = result;\n\t\t}\n\t\treturn result || this;\n\t}\n\n\tprotected toScaled(\n\t\tvalues: number[],\n\t\tvaluesBase: number[],\n\t\tboundary: EShapePointsFormattedBoundary,\n\t\tboundaryBase: EShapePointsFormattedBoundary\n\t): void {\n\t\tconst size = this._parentSizeFitted;\n\t\tconst sizeBase = this._parentSizeBase;\n\t\tconst threshold = 0.00001;\n\t\tconst hasSizeBaseX = threshold < Math.abs(sizeBase.x);\n\t\tconst hasSizeBaseY = threshold < Math.abs(sizeBase.y);\n\t\tif (hasSizeBaseX || hasSizeBaseY) {\n\t\t\tconst scaleX = hasSizeBaseX ? size.x / sizeBase.x : 1;\n\t\t\tconst scaleY = hasSizeBaseY ? size.y / sizeBase.y : 1;\n\n\t\t\tfor (let i = 0, imax = valuesBase.length; i < imax; i += 2) {\n\t\t\t\tvalues[i] = valuesBase[i] * scaleX;\n\t\t\t\tvalues[i + 1] = valuesBase[i + 1] * scaleY;\n\t\t\t}\n\n\t\t\tfor (let i = 0, imax = boundaryBase.length; i < imax; i += 2) {\n\t\t\t\tboundary[i] = boundaryBase[i] * scaleX;\n\t\t\t\tboundary[i + 1] = boundaryBase[i + 1] * scaleY;\n\t\t\t}\n\t\t}\n\t}\n\n\tcopy(source: EShapePoints): this {\n\t\tthis.set(source.values, source.segments, source.style);\n\t\tconst marker = source.getMarker();\n\t\tif (marker) {\n\t\t\tthis.marker.copy(marker);\n\t\t}\n\t\treturn this;\n\t}\n\n\tset(newValues?: number[], newSegments?: number[], newStyle?: EShapePointsStyle): this {\n\t\tlet isDirty = false;\n\t\tlet isUpdated = false;\n\n\t\t// Formatter\n\t\tconst style = this._style;\n\t\tconst styleFormatter = style & EShapePointsStyle.FORMATTER_MASK;\n\t\tconst formatter = this._formatter;\n\n\t\t// Values\n\t\tif (newValues != null) {\n\t\t\tconst values = this._values;\n\t\t\tconst valuesBaseLength = this._valuesBaseLength;\n\t\t\tconst newValuesLength = newValues.length;\n\t\t\tconst iupdate = Math.min(newValuesLength, valuesBaseLength);\n\t\t\tconst parentSize = this._parent.size;\n\t\t\tthis.toFitted(parentSize.x, parentSize.y);\n\t\t\tif (values !== newValues) {\n\t\t\t\tfor (let i = 0; i < iupdate; ++i) {\n\t\t\t\t\tvalues[i] = newValues[i];\n\t\t\t\t}\n\n\t\t\t\tfor (let i = iupdate; i < newValuesLength; ++i) {\n\t\t\t\t\tvalues.push(newValues[i]);\n\t\t\t\t}\n\n\t\t\t\tif (valuesBaseLength !== newValuesLength) {\n\t\t\t\t\tvalues.length = newValuesLength;\n\t\t\t\t\tthis._valuesBaseLength = newValuesLength;\n\t\t\t\t\tisDirty = true;\n\t\t\t\t} else {\n\t\t\t\t\tif (formatter != null || styleFormatter) {\n\t\t\t\t\t\tisDirty = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tisUpdated = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (valuesBaseLength !== newValuesLength) {\n\t\t\t\t\tthis._valuesBaseLength = newValuesLength;\n\t\t\t\t\tisDirty = true;\n\t\t\t\t} else {\n\t\t\t\t\tif (formatter != null || styleFormatter) {\n\t\t\t\t\t\tisDirty = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tisUpdated = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Segments\n\t\tif (newSegments != null) {\n\t\t\tconst segments = this._segments;\n\t\t\tif (segments !== newSegments) {\n\t\t\t\tconst newSegmentsLength = newSegments.length;\n\t\t\t\tconst iupdate = Math.min(segments.length, newSegmentsLength);\n\t\t\t\tfor (let i = 0; i < iupdate; ++i) {\n\t\t\t\t\tsegments[i] = newSegments[i];\n\t\t\t\t}\n\n\t\t\t\tfor (let i = iupdate; i < newSegmentsLength; ++i) {\n\t\t\t\t\tsegments.push(newSegments[i]);\n\t\t\t\t}\n\n\t\t\t\tif (segments.length !== newSegmentsLength) {\n\t\t\t\t\tsegments.length = newSegmentsLength;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (formatter != null || styleFormatter) {\n\t\t\t\tisDirty = true;\n\t\t\t} else {\n\t\t\t\tisUpdated = true;\n\t\t\t}\n\t\t}\n\n\t\t// Style\n\t\tif (newStyle != null) {\n\t\t\tif (style !== newStyle) {\n\t\t\t\tconst newStyleFormatter = newStyle & EShapePointsStyle.FORMATTER_MASK;\n\t\t\t\tif (styleFormatter !== newStyleFormatter) {\n\t\t\t\t\tisDirty = true;\n\t\t\t\t} else {\n\t\t\t\t\tif (formatter != null || styleFormatter) {\n\t\t\t\t\t\tconst styleClosed = style & EShapePointsStyle.CLOSED;\n\t\t\t\t\t\tconst newStyleClosed = newStyle & EShapePointsStyle.CLOSED;\n\t\t\t\t\t\tif (styleClosed !== newStyleClosed) {\n\t\t\t\t\t\t\tisDirty = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tisUpdated = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tisUpdated = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis._style = newStyle;\n\t\t\t}\n\t\t}\n\n\t\t//\n\t\tif (isUpdated || isDirty) {\n\t\t\tthis.toDirty(isDirty);\n\t\t}\n\t\treturn this;\n\t}\n\n\tprotected toDirty(revalidate: boolean): void {\n\t\tif (revalidate) {\n\t\t\tthis._id += 1;\n\t\t\tconst parent = this._parent;\n\t\t\tconst uploaded = parent.uploaded;\n\t\t\tif (uploaded) {\n\t\t\t\tif (uploaded.isCompatible(parent)) {\n\t\t\t\t\tparent.updateUploaded();\n\t\t\t\t} else {\n\t\t\t\t\tparent.uploaded = undefined;\n\t\t\t\t\tparent.toDirty();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tparent.updateUploaded();\n\t\t\t}\n\t\t} else {\n\t\t\tthis._id += 1;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tclone(parent: EShape): EShapeLinePoints {\n\t\treturn new EShapeLinePoints(parent).copy(this);\n\t}\n\n\ttoPoints(transform: Matrix): Point[] {\n\t\tconst result: Point[] = [];\n\t\tconst values = this.values;\n\t\tfor (let i = 0, imax = values.length; i < imax; i += 2) {\n\t\t\tconst point = new Point(values[i + 0], values[i + 1]);\n\t\t\tresult.push(transform.apply(point, point));\n\t\t}\n\t\treturn result;\n\t}\n\n\tserialize(manager: EShapeResourceManagerSerialization): number {\n\t\tconst values = JSON.stringify(this._values);\n\t\tconst segments = JSON.stringify(this._segments);\n\t\tconst style = this._style;\n\t\tlet markerId = -1;\n\t\tconst marker = this._marker;\n\t\tif (marker) {\n\t\t\tmarkerId = marker.serialize(manager);\n\t\t}\n\t\treturn manager.addResource(`[${values},${segments},${style},${markerId}]`);\n\t}\n\n\tdeserialize(resourceId: number, manager: EShapeResourceManagerDeserialization): void {\n\t\tconst resources = manager.resources;\n\t\tif (0 <= resourceId && resourceId < resources.length) {\n\t\t\tlet parsed = manager.getExtension<EShapeLinePointsSerialized>(resourceId);\n\t\t\tif (parsed == null) {\n\t\t\t\tparsed = JSON.parse(resources[resourceId]) as EShapeLinePointsSerialized;\n\t\t\t\tmanager.setExtension(resourceId, parsed);\n\t\t\t}\n\t\t\tthis.set(parsed[0], parsed[1], parsed[2]);\n\t\t\tconst markerId = parsed[3];\n\t\t\tif (markerId != null && 0 <= markerId) {\n\t\t\t\tthis.marker.deserialize(markerId, manager);\n\t\t\t}\n\t\t}\n\t}\n\n\tcalcHitPointAbs<RESULT>(\n\t\tx: number,\n\t\ty: number,\n\t\tax: number,\n\t\tay: number,\n\t\tthreshold: number,\n\t\ttoRange: EShapeLineBasePointsHitTesterToRange | null,\n\t\ttester: EShapeLineBasePointsHitTester<RESULT>,\n\t\tresult: RESULT\n\t): boolean {\n\t\tconst formatted = this.formatted;\n\t\tconst length = formatted.length;\n\t\tif (2 <= length) {\n\t\t\tconst values = formatted.values;\n\t\t\tconst segments = formatted.segments;\n\t\t\tconst style = formatted.style;\n\t\t\tlet istart = 0;\n\t\t\tlet iend = length;\n\t\t\tif (toRange) {\n\t\t\t\tconst work = EShapeLinePoints.WORK_RANGE;\n\t\t\t\ttoRange(x, y, threshold, values, work);\n\t\t\t\tistart = work[0];\n\t\t\t\tiend = work[1];\n\t\t\t}\n\t\t\tfor (let i = istart, imax = Math.min(iend, length - 1); i < imax; ++i) {\n\t\t\t\tif (toIndexOf(segments, i + 1) < 0) {\n\t\t\t\t\tconst iv = i << 1;\n\t\t\t\t\tconst p0x = values[iv + 0];\n\t\t\t\t\tconst p0y = values[iv + 1];\n\t\t\t\t\tconst p1x = values[iv + 2];\n\t\t\t\t\tconst p1y = values[iv + 3];\n\t\t\t\t\tif (tester(x, y, p0x, p0y, p1x, p1y, i, threshold, result)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (2 < length && length <= iend && style & EShapePointsStyle.CLOSED) {\n\t\t\t\tif (toIndexOf(segments, 0) < 0) {\n\t\t\t\t\tconst i = length - 1;\n\t\t\t\t\tconst iv = i << 1;\n\t\t\t\t\tconst p0x = values[iv + 0];\n\t\t\t\t\tconst p0y = values[iv + 1];\n\t\t\t\t\tconst p1x = values[0];\n\t\t\t\t\tconst p1y = values[1];\n\t\t\t\t\tif (tester(x, y, p0x, p0y, p1x, p1y, i, threshold, result)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n}\n"]}
|