@wcardinal/wcardinal-ui 0.458.0-beta.0 → 0.458.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/types/wcardinal/ui/shape/variant/build-polygon.d.ts +3 -4
- package/dist/types/wcardinal/ui/shape/variant/create-polygon.d.ts +1 -1
- package/dist/types/wcardinal/ui/shape/variant/e-shape-polygon-triangulated-impl.d.ts +6 -5
- package/dist/types/wcardinal/ui/shape/variant/e-shape-polygon-triangulated.d.ts +2 -1
- package/dist/types/wcardinal/ui/shape/variant/e-shape-polygon.d.ts +7 -31
- package/dist/types/wcardinal/ui/shape/variant/hit-test-polygon.d.ts +1 -1
- package/dist/types/wcardinal/ui/util/util-polygon.d.ts +1 -3
- package/dist/types/wcardinal/ui/util/util-straight-skeleton.d.ts +1 -1
- package/dist/wcardinal/ui/shape/variant/build-polygon.js +12 -14
- package/dist/wcardinal/ui/shape/variant/build-polygon.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-polygon.js +8 -15
- package/dist/wcardinal/ui/shape/variant/builder-polygon.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/create-polygon.js +32 -42
- package/dist/wcardinal/ui/shape/variant/create-polygon.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/e-shape-line-points.js +2 -6
- package/dist/wcardinal/ui/shape/variant/e-shape-line-points.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/e-shape-polygon-triangulated-impl.js +66 -59
- package/dist/wcardinal/ui/shape/variant/e-shape-polygon-triangulated-impl.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/e-shape-polygon-triangulated.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/e-shape-polygon.js +22 -127
- package/dist/wcardinal/ui/shape/variant/e-shape-polygon.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/hit-test-polygon.js +21 -27
- package/dist/wcardinal/ui/shape/variant/hit-test-polygon.js.map +1 -1
- package/dist/wcardinal/ui/util/util-polygon.js +5 -9
- package/dist/wcardinal/ui/util/util-polygon.js.map +1 -1
- package/dist/wcardinal/ui/util/util-straight-skeleton-buffer.js +5 -7
- package/dist/wcardinal/ui/util/util-straight-skeleton-buffer.js.map +1 -1
- package/dist/wcardinal/ui/util/util-straight-skeleton.js +2 -4
- package/dist/wcardinal/ui/util/util-straight-skeleton.js.map +1 -1
- package/dist/wcardinal-ui-theme-dark-en-us.js +1 -1
- package/dist/wcardinal-ui-theme-dark-en-us.min.js +1 -1
- package/dist/wcardinal-ui-theme-dark-ja-jp.js +1 -1
- package/dist/wcardinal-ui-theme-dark-ja-jp.min.js +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-en-us.js +1 -1
- package/dist/wcardinal-ui-theme-white-en-us.min.js +1 -1
- package/dist/wcardinal-ui-theme-white-ja-jp.js +1 -1
- package/dist/wcardinal-ui-theme-white-ja-jp.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 +174 -311
- package/dist/wcardinal-ui.js +174 -311
- package/dist/wcardinal-ui.min.js +2 -2
- package/dist/wcardinal-ui.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -10,14 +10,13 @@ export declare const buildPolygonIndex: (indices: Uint16Array | Uint32Array, pol
|
|
|
10
10
|
* Build vertex buffer for polygons.
|
|
11
11
|
* Transforms vertices from relative coordinates [-0.5, +0.5] to world coordinates.
|
|
12
12
|
*/
|
|
13
|
-
export declare const buildPolygonVertex: (vertices: Float32Array, polygonVertices: number[], voffset: number,
|
|
13
|
+
export declare const buildPolygonVertex: (vertices: Float32Array, polygonVertices: number[], voffset: number, internalTransform: Matrix) => void;
|
|
14
14
|
/**
|
|
15
15
|
* Build step buffer for polygons.
|
|
16
16
|
* Since this is fill-only, step information is minimal.
|
|
17
17
|
*/
|
|
18
|
-
export declare const buildPolygonStep: (steps: Float32Array, polygonDistances: number[], polygonClippings: number[], voffset: number, vertexCount: number,
|
|
18
|
+
export declare const buildPolygonStep: (steps: Float32Array, polygonDistances: number[], polygonClippings: number[], voffset: number, vertexCount: number, strokeWidth: number, strokeSide: EShapeStrokeSide, strokeStyle: EShapeStrokeStyle) => void;
|
|
19
19
|
/**
|
|
20
20
|
* Build UV buffer for polygons.
|
|
21
|
-
* Transforms vertices from relative coordinates [-0.5, +0.5] to UV coordinates.
|
|
22
21
|
*/
|
|
23
|
-
export declare const buildPolygonUv: (uvs: Float32Array,
|
|
22
|
+
export declare const buildPolygonUv: (uvs: Float32Array, polygonUvs: number[], voffset: number, textureUvs: TextureUvs) => void;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { EShapePolygon } from "./e-shape-polygon";
|
|
2
|
-
export declare const createPolygon: (points: number[]) => EShapePolygon;
|
|
2
|
+
export declare const createPolygon: (points: number[], result?: EShapePolygon) => EShapePolygon;
|
|
@@ -2,17 +2,16 @@ import { EShapeResourceManagerDeserialization } from "../e-shape-resource-manage
|
|
|
2
2
|
import { EShapeResourceManagerSerialization } from "../e-shape-resource-manager-serialization";
|
|
3
3
|
import type { EShapePolygon } from "./e-shape-polygon";
|
|
4
4
|
import { EShapePolygonTriangulated } from "./e-shape-polygon-triangulated";
|
|
5
|
-
export type EShapePolygonTriangulatedExtensionSerialized = [number, number, number, number];
|
|
5
|
+
export type EShapePolygonTriangulatedExtensionSerialized = [number, number, number, number, number];
|
|
6
6
|
export declare class EShapePolygonTriangulatedImpl implements EShapePolygonTriangulated {
|
|
7
7
|
protected _id: number;
|
|
8
8
|
protected _parent: EShapePolygon;
|
|
9
|
-
protected
|
|
10
|
-
protected _parentWidth: number;
|
|
11
|
-
protected _parentHeight: number;
|
|
9
|
+
protected _parentPointsId: number;
|
|
12
10
|
protected _vertices: number[];
|
|
13
11
|
protected _nvertices: number;
|
|
14
12
|
protected _distances: number[];
|
|
15
13
|
protected _clippings: number[];
|
|
14
|
+
protected _uvs: number[];
|
|
16
15
|
protected _indices: number[];
|
|
17
16
|
protected _nindices: number;
|
|
18
17
|
constructor(parent: EShapePolygon);
|
|
@@ -21,10 +20,12 @@ export declare class EShapePolygonTriangulatedImpl implements EShapePolygonTrian
|
|
|
21
20
|
get nvertices(): number;
|
|
22
21
|
get distances(): number[];
|
|
23
22
|
get clippings(): number[];
|
|
23
|
+
get uvs(): number[];
|
|
24
24
|
get indices(): number[];
|
|
25
25
|
get nindices(): number;
|
|
26
|
-
set(
|
|
26
|
+
set(parentPointsId?: number, vertices?: number[], distances?: number[], clippings?: number[], uvs?: number[], indices?: number[]): this;
|
|
27
27
|
protected triangulate(): void;
|
|
28
|
+
protected toUvs(vertices: number[]): number[];
|
|
28
29
|
copy(source: EShapePolygonTriangulated): this;
|
|
29
30
|
serialize(manager: EShapeResourceManagerSerialization): number;
|
|
30
31
|
deserialize(resourceId: number, manager: EShapeResourceManagerDeserialization): void;
|
|
@@ -6,9 +6,10 @@ export interface EShapePolygonTriangulated {
|
|
|
6
6
|
get nvertices(): number;
|
|
7
7
|
get distances(): number[];
|
|
8
8
|
get clippings(): number[];
|
|
9
|
+
get uvs(): number[];
|
|
9
10
|
get indices(): number[];
|
|
10
11
|
get nindices(): number;
|
|
11
|
-
set(
|
|
12
|
+
set(parentId?: number, vertices?: number[], distances?: number[], clippings?: number[], uvs?: number[], indices?: number[]): this;
|
|
12
13
|
copy(source: EShapePolygonTriangulated): this;
|
|
13
14
|
serialize(manager: EShapeResourceManagerSerialization): number;
|
|
14
15
|
deserialize(resourceId: number, manager: EShapeResourceManagerDeserialization): void;
|
|
@@ -1,49 +1,25 @@
|
|
|
1
1
|
import { DDiagramSerializedItem } from "../../d-diagram-serialized";
|
|
2
2
|
import { EShape } from "../e-shape";
|
|
3
|
+
import { EShapeCopyPart } from "../e-shape-copy-part";
|
|
3
4
|
import { EShapeResourceManagerDeserialization } from "../e-shape-resource-manager-deserialization";
|
|
4
5
|
import { EShapeResourceManagerSerialization } from "../e-shape-resource-manager-serialization";
|
|
5
6
|
import { EShapeStroke } from "../e-shape-stroke";
|
|
6
7
|
import { EShapeType } from "../e-shape-type";
|
|
8
|
+
import { EShapeLinePoints } from "./e-shape-line-points";
|
|
7
9
|
import { EShapePolygonTriangulated } from "./e-shape-polygon-triangulated";
|
|
8
10
|
import { EShapePrimitive } from "./e-shape-primitive";
|
|
9
11
|
export type EShapePolygonExtensionSerialized = [number, number];
|
|
10
12
|
export declare class EShapePolygon extends EShapePrimitive {
|
|
11
|
-
protected
|
|
12
|
-
protected
|
|
13
|
-
protected _nvertices: number;
|
|
14
|
-
protected _triangulated: EShapePolygonTriangulated;
|
|
15
|
-
/**
|
|
16
|
-
* Please note that the given arrays `vertices`, `distances`, `clippings` and `indices` are used internally.
|
|
17
|
-
* Because of this, these arrays must not be modified outside of this class after calling this constructor.
|
|
18
|
-
*/
|
|
13
|
+
protected readonly _points: EShapeLinePoints;
|
|
14
|
+
protected readonly _triangulated: EShapePolygonTriangulated;
|
|
19
15
|
constructor(type?: EShapeType);
|
|
16
|
+
get points(): EShapeLinePoints;
|
|
17
|
+
protected newPoints(): EShapeLinePoints;
|
|
20
18
|
protected newTriangulated(): EShapePolygonTriangulated;
|
|
21
19
|
protected newStroke(): EShapeStroke;
|
|
22
|
-
/**
|
|
23
|
-
* Vertex positions are in [-0.5, +0.5] and relative to the shape position and size.
|
|
24
|
-
* Therefore, transformed actual vertex positions are calculated as follows:
|
|
25
|
-
*
|
|
26
|
-
* ```
|
|
27
|
-
* const imx = this.transform.internalTransform;
|
|
28
|
-
* const size = this.size;
|
|
29
|
-
* const vertices = this._vertices;
|
|
30
|
-
* const transformedVertices = [];
|
|
31
|
-
* for (let i = 0; i < vertices.length; i += 2) {
|
|
32
|
-
* const transformedVertex = imx.apply(
|
|
33
|
-
* new Point(size.x * vertices[i + 0], size.y * vertices[i + 1])
|
|
34
|
-
* );
|
|
35
|
-
* transformedVertices.push(transformedVertex.x, transformedVertex.y);
|
|
36
|
-
* }
|
|
37
|
-
* ```
|
|
38
|
-
*/
|
|
39
|
-
get vertices(): number[];
|
|
40
|
-
set vertices(vertices: number[]);
|
|
41
|
-
get nvertices(): number;
|
|
42
|
-
get vertexId(): number;
|
|
43
20
|
get triangulated(): EShapePolygonTriangulated;
|
|
44
|
-
set(vertices?: number[]): this;
|
|
45
21
|
clone(): EShapePolygon;
|
|
46
|
-
copy(source: EShape): this;
|
|
22
|
+
copy(source: EShape, part?: EShapeCopyPart): this;
|
|
47
23
|
serialize(manager: EShapeResourceManagerSerialization): DDiagramSerializedItem;
|
|
48
24
|
deserialize(resourceId: number, manager: EShapeResourceManagerDeserialization): void;
|
|
49
25
|
containsAbs(x: number, y: number, ax: number, ay: number, sw: number, ss: number, sa: number): boolean;
|
|
@@ -9,5 +9,5 @@ import { EShapePolygon } from "./e-shape-polygon";
|
|
|
9
9
|
* @param ay a polygon height
|
|
10
10
|
* @returns the minimum squared distance between the given point (x, y) and the polygon edges
|
|
11
11
|
*/
|
|
12
|
-
export declare const calcPolygonSquaredDistance: (
|
|
12
|
+
export declare const calcPolygonSquaredDistance: (values: number[], valuesLength: number, x: number, y: number) => number;
|
|
13
13
|
export declare const hitTestPolygon: (shape: EShapePolygon, x: number, y: number, ax: number, ay: number, sw: number, ss: number) => boolean;
|
|
@@ -17,10 +17,8 @@ export declare class UtilPolygon {
|
|
|
17
17
|
* Creates an UtilPolygon instance.
|
|
18
18
|
*
|
|
19
19
|
* @param points points
|
|
20
|
-
* @param sx the scale along X axis
|
|
21
|
-
* @param sy the scale along Y axis
|
|
22
20
|
* @param epsilon threshold
|
|
23
21
|
* @returns a created UtilPolygon instance
|
|
24
22
|
*/
|
|
25
|
-
static from(points: number[],
|
|
23
|
+
static from(points: number[], epsilon?: number): UtilPolygon[];
|
|
26
24
|
}
|
|
@@ -26,7 +26,7 @@ export declare class UtilStraightSkeletonWavefront {
|
|
|
26
26
|
static from(polygon: UtilPolygon, epsilon: number): UtilStraightSkeletonWavefront;
|
|
27
27
|
}
|
|
28
28
|
export declare class UtilStraightSkeleton {
|
|
29
|
-
static from(points: number[],
|
|
29
|
+
static from(points: number[], level?: number, epsilon?: number): UtilStraightSkeletonWavefront[];
|
|
30
30
|
protected static next(wavefront: UtilStraightSkeletonWavefront, level: number): void;
|
|
31
31
|
protected static map(wavefront: UtilStraightSkeletonWavefront): void;
|
|
32
32
|
}
|
|
@@ -19,7 +19,7 @@ export var buildPolygonIndex = function (indices, polygonIndices, voffset, ioffs
|
|
|
19
19
|
* Build vertex buffer for polygons.
|
|
20
20
|
* Transforms vertices from relative coordinates [-0.5, +0.5] to world coordinates.
|
|
21
21
|
*/
|
|
22
|
-
export var buildPolygonVertex = function (vertices, polygonVertices, voffset,
|
|
22
|
+
export var buildPolygonVertex = function (vertices, polygonVertices, voffset, internalTransform) {
|
|
23
23
|
var a = internalTransform.a;
|
|
24
24
|
var b = internalTransform.b;
|
|
25
25
|
var c = internalTransform.c;
|
|
@@ -28,8 +28,8 @@ export var buildPolygonVertex = function (vertices, polygonVertices, voffset, si
|
|
|
28
28
|
var ty = internalTransform.ty;
|
|
29
29
|
var iv = (voffset << 1) - 1;
|
|
30
30
|
for (var i = 0, n = polygonVertices.length; i < n; i += 2) {
|
|
31
|
-
var x =
|
|
32
|
-
var y =
|
|
31
|
+
var x = polygonVertices[i];
|
|
32
|
+
var y = polygonVertices[i + 1];
|
|
33
33
|
vertices[++iv] = a * x + c * y + tx;
|
|
34
34
|
vertices[++iv] = b * x + d * y + ty;
|
|
35
35
|
}
|
|
@@ -38,28 +38,26 @@ export var buildPolygonVertex = function (vertices, polygonVertices, voffset, si
|
|
|
38
38
|
* Build step buffer for polygons.
|
|
39
39
|
* Since this is fill-only, step information is minimal.
|
|
40
40
|
*/
|
|
41
|
-
export var buildPolygonStep = function (steps, polygonDistances, polygonClippings, voffset, vertexCount,
|
|
41
|
+
export var buildPolygonStep = function (steps, polygonDistances, polygonClippings, voffset, vertexCount, strokeWidth, strokeSide, strokeStyle) {
|
|
42
42
|
var scaleInvariant = toScaleInvariant(strokeStyle);
|
|
43
43
|
var w = (strokeSide & EShapeStrokeSide.ALL) === EShapeStrokeSide.ALL ? 1 : 0;
|
|
44
44
|
var e = toPackedI4x64(0, scaleInvariant, w, w);
|
|
45
45
|
var is = voffset * 6 - 1;
|
|
46
|
-
for (var i = 0
|
|
47
|
-
var
|
|
48
|
-
var dy = sizeY * polygonDistances[j + 1];
|
|
46
|
+
for (var i = 0; i < vertexCount; i += 1) {
|
|
47
|
+
var d = polygonDistances[i];
|
|
49
48
|
var c = polygonClippings[i];
|
|
50
49
|
steps[++is] = strokeWidth;
|
|
51
50
|
steps[++is] = e;
|
|
52
|
-
steps[++is] =
|
|
53
|
-
steps[++is] =
|
|
51
|
+
steps[++is] = d;
|
|
52
|
+
steps[++is] = d;
|
|
54
53
|
steps[++is] = toPackedF2x1024(c, c);
|
|
55
54
|
steps[++is] = 0;
|
|
56
55
|
}
|
|
57
56
|
};
|
|
58
57
|
/**
|
|
59
58
|
* Build UV buffer for polygons.
|
|
60
|
-
* Transforms vertices from relative coordinates [-0.5, +0.5] to UV coordinates.
|
|
61
59
|
*/
|
|
62
|
-
export var buildPolygonUv = function (uvs,
|
|
60
|
+
export var buildPolygonUv = function (uvs, polygonUvs, voffset, textureUvs) {
|
|
63
61
|
var x0 = textureUvs.x0;
|
|
64
62
|
var x1 = textureUvs.x1;
|
|
65
63
|
var y0 = textureUvs.y0;
|
|
@@ -67,9 +65,9 @@ export var buildPolygonUv = function (uvs, polygonVertices, voffset, textureUvs)
|
|
|
67
65
|
var dx = x1 - x0;
|
|
68
66
|
var dy = y3 - y0;
|
|
69
67
|
var iuv = (voffset << 1) - 1;
|
|
70
|
-
for (var i = 0, n =
|
|
71
|
-
uvs[++iuv] = x0 +
|
|
72
|
-
uvs[++iuv] = y0 +
|
|
68
|
+
for (var i = 0, n = polygonUvs.length; i < n; i += 2) {
|
|
69
|
+
uvs[++iuv] = x0 + polygonUvs[i] * dx;
|
|
70
|
+
uvs[++iuv] = y0 + polygonUvs[i + 1] * dy;
|
|
73
71
|
}
|
|
74
72
|
};
|
|
75
73
|
//# sourceMappingURL=build-polygon.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-polygon.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/build-polygon.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D;;;GAGG;AACH,MAAM,CAAC,IAAM,iBAAiB,GAAG,UAChC,OAAkC,EAClC,cAAwB,EACxB,OAAe,EACf,OAAe;IAEf,IAAI,EAAE,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QACvD,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;AACF,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,IAAM,kBAAkB,GAAG,UACjC,QAAsB,EACtB,eAAyB,EACzB,OAAe,EACf,
|
|
1
|
+
{"version":3,"file":"build-polygon.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/build-polygon.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, TextureUvs } from \"pixi.js\";\nimport { EShapeStrokeStyle } from \"../e-shape-stroke-style\";\nimport { toPackedF2x1024, toPackedI4x64 } from \"./to-packed\";\nimport { toScaleInvariant } from \"./to-scale-invariant\";\nimport { EShapeStrokeSide } from \"../e-shape-stroke-side\";\n\n/**\n * Build index buffer for polygons.\n * Copies indices directly from the polygon's index array.\n */\nexport const buildPolygonIndex = (\n\tindices: Uint16Array | Uint32Array,\n\tpolygonIndices: number[],\n\tvoffset: number,\n\tioffset: number\n): void => {\n\tlet ii = ioffset * 3 - 1;\n\tfor (let i = 0, n = polygonIndices.length; i < n; ++i) {\n\t\tindices[++ii] = voffset + polygonIndices[i];\n\t}\n};\n\n/**\n * Build vertex buffer for polygons.\n * Transforms vertices from relative coordinates [-0.5, +0.5] to world coordinates.\n */\nexport const buildPolygonVertex = (\n\tvertices: Float32Array,\n\tpolygonVertices: number[],\n\tvoffset: number,\n\tinternalTransform: Matrix\n): void => {\n\tconst a = internalTransform.a;\n\tconst b = internalTransform.b;\n\tconst c = internalTransform.c;\n\tconst d = internalTransform.d;\n\tconst tx = internalTransform.tx;\n\tconst ty = internalTransform.ty;\n\tlet iv = (voffset << 1) - 1;\n\tfor (let i = 0, n = polygonVertices.length; i < n; i += 2) {\n\t\tconst x = polygonVertices[i];\n\t\tconst y = polygonVertices[i + 1];\n\t\tvertices[++iv] = a * x + c * y + tx;\n\t\tvertices[++iv] = b * x + d * y + ty;\n\t}\n};\n\n/**\n * Build step buffer for polygons.\n * Since this is fill-only, step information is minimal.\n */\nexport const buildPolygonStep = (\n\tsteps: Float32Array,\n\tpolygonDistances: number[],\n\tpolygonClippings: number[],\n\tvoffset: number,\n\tvertexCount: number,\n\tstrokeWidth: number,\n\tstrokeSide: EShapeStrokeSide,\n\tstrokeStyle: EShapeStrokeStyle\n): void => {\n\tconst scaleInvariant = toScaleInvariant(strokeStyle);\n\tconst w = (strokeSide & EShapeStrokeSide.ALL) === EShapeStrokeSide.ALL ? 1 : 0;\n\tconst e = toPackedI4x64(0, scaleInvariant, w, w);\n\tlet is = voffset * 6 - 1;\n\tfor (let i = 0; i < vertexCount; i += 1) {\n\t\tconst d = polygonDistances[i];\n\t\tconst c = polygonClippings[i];\n\t\tsteps[++is] = strokeWidth;\n\t\tsteps[++is] = e;\n\t\tsteps[++is] = d;\n\t\tsteps[++is] = d;\n\t\tsteps[++is] = toPackedF2x1024(c, c);\n\t\tsteps[++is] = 0;\n\t}\n};\n\n/**\n * Build UV buffer for polygons.\n */\nexport const buildPolygonUv = (\n\tuvs: Float32Array,\n\tpolygonUvs: number[],\n\tvoffset: number,\n\ttextureUvs: TextureUvs\n): void => {\n\tconst x0 = textureUvs.x0;\n\tconst x1 = textureUvs.x1;\n\tconst y0 = textureUvs.y0;\n\tconst y3 = textureUvs.y3;\n\tconst dx = x1 - x0;\n\tconst dy = y3 - y0;\n\tlet iuv = (voffset << 1) - 1;\n\tfor (let i = 0, n = polygonUvs.length; i < n; i += 2) {\n\t\tuvs[++iuv] = x0 + polygonUvs[i] * dx;\n\t\tuvs[++iuv] = y0 + polygonUvs[i + 1] * dy;\n\t}\n};\n"]}
|
|
@@ -67,10 +67,6 @@ var BuilderPolygon = /** @class */ (function (_super) {
|
|
|
67
67
|
this.updateColor(buffer, shape);
|
|
68
68
|
};
|
|
69
69
|
BuilderPolygon.prototype.updateVertexStepUvAndIndex = function (buffer, shape) {
|
|
70
|
-
var size = shape.size;
|
|
71
|
-
var sizeX = size.x;
|
|
72
|
-
var sizeY = size.y;
|
|
73
|
-
var isSizeChanged = sizeX !== this.sizeX || sizeY !== this.sizeY;
|
|
74
70
|
var transformLocalId = toTransformLocalId(shape);
|
|
75
71
|
var isTransformChanged = this.transformLocalId !== transformLocalId;
|
|
76
72
|
// Check if vertices/distances/clippings/indices changed
|
|
@@ -87,16 +83,13 @@ var BuilderPolygon = /** @class */ (function (_super) {
|
|
|
87
83
|
var texture = toTexture(shape);
|
|
88
84
|
var textureTransformId = toTextureTransformId(texture);
|
|
89
85
|
var isTextureChanged = texture !== this.texture || textureTransformId !== this.textureTransformId;
|
|
90
|
-
var isVertexChanged = isSizeChanged || isTriangulatedIdChanged;
|
|
91
86
|
var isNotInited = !(this.inited & BuilderFlag.VERTEX_STEP_UV_AND_INDEX);
|
|
92
87
|
if (isNotInited ||
|
|
93
|
-
|
|
88
|
+
isTriangulatedIdChanged ||
|
|
94
89
|
isTransformChanged ||
|
|
95
90
|
isStrokeChanged ||
|
|
96
91
|
isTextureChanged) {
|
|
97
92
|
this.inited |= BuilderFlag.VERTEX_STEP_UV_AND_INDEX;
|
|
98
|
-
this.sizeX = sizeX;
|
|
99
|
-
this.sizeY = sizeY;
|
|
100
93
|
this.transformLocalId = transformLocalId;
|
|
101
94
|
this.strokeWidth = strokeWidth;
|
|
102
95
|
this.strokeSide = strokeSide;
|
|
@@ -105,25 +98,25 @@ var BuilderPolygon = /** @class */ (function (_super) {
|
|
|
105
98
|
this.textureTransformId = textureTransformId;
|
|
106
99
|
this.triangulatedId = triangulatedId;
|
|
107
100
|
// Indices
|
|
108
|
-
if (isNotInited ||
|
|
101
|
+
if (isNotInited || isTriangulatedIdChanged) {
|
|
109
102
|
buffer.updateIndices();
|
|
110
103
|
buildPolygonIndex(buffer.indices, triangulated.indices, this.vertexOffset, this.indexOffset);
|
|
111
104
|
}
|
|
112
105
|
// Vertices
|
|
113
106
|
var voffset = this.vertexOffset;
|
|
114
|
-
if (isNotInited ||
|
|
107
|
+
if (isNotInited || isTriangulatedIdChanged || isTransformChanged) {
|
|
115
108
|
buffer.updateVertices();
|
|
116
|
-
buildPolygonVertex(buffer.vertices, triangulated.vertices, voffset,
|
|
109
|
+
buildPolygonVertex(buffer.vertices, triangulated.vertices, voffset, shape.transform.internalTransform);
|
|
117
110
|
}
|
|
118
111
|
// Steps
|
|
119
|
-
if (isNotInited ||
|
|
112
|
+
if (isNotInited || isTriangulatedIdChanged || isStrokeChanged) {
|
|
120
113
|
buffer.updateSteps();
|
|
121
|
-
buildPolygonStep(buffer.steps, triangulated.distances, triangulated.clippings, voffset, this.vertexCount,
|
|
114
|
+
buildPolygonStep(buffer.steps, triangulated.distances, triangulated.clippings, voffset, this.vertexCount, strokeWidth, strokeSide, strokeStyle);
|
|
122
115
|
}
|
|
123
116
|
// UVs
|
|
124
|
-
if (isNotInited ||
|
|
117
|
+
if (isNotInited || isTriangulatedIdChanged || isTextureChanged) {
|
|
125
118
|
buffer.updateUvs();
|
|
126
|
-
buildPolygonUv(buffer.uvs, triangulated.
|
|
119
|
+
buildPolygonUv(buffer.uvs, triangulated.uvs, voffset, toTextureUvs(texture));
|
|
127
120
|
}
|
|
128
121
|
}
|
|
129
122
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder-polygon.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/builder-polygon.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { EShape } from \"../e-shape\";\nimport {\n\tbuildPolygonIndex,\n\tbuildPolygonStep,\n\tbuildPolygonUv,\n\tbuildPolygonVertex\n} from \"./build-polygon\";\nimport { BuilderBuffer, BuilderFlag } from \"./builder\";\nimport { BuilderBase } from \"./builder-base\";\nimport { EShapePolygon } from \"./e-shape-polygon\";\nimport { toTexture, toTextureTransformId, toTextureUvs, toTransformLocalId } from \"./builders\";\n\nexport class BuilderPolygon extends BuilderBase {\n\tprotected triangulatedId: number;\n\n\tconstructor(\n\t\tbuffer: BuilderBuffer,\n\t\tvertexOffset: number,\n\t\tindexOffset: number,\n\t\tvertexCount: number,\n\t\tindexCount: number\n\t) {\n\t\tsuper(buffer, vertexOffset, indexOffset, vertexCount, indexCount);\n\t\tthis.triangulatedId = -1;\n\t}\n\n\toverride init(): void {\n\t\t// DO NOTHING\n\t}\n\n\toverride reinit(\n\t\tbuffer: BuilderBuffer,\n\t\tshape: EShape,\n\t\tvertexOffset: number,\n\t\tindexOffset: number\n\t): boolean {\n\t\tif (!(shape instanceof EShapePolygon)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst triangulated = shape.triangulated;\n\t\tconst vertexCount = triangulated.nvertices;\n\t\tconst indexCount = triangulated.nindices;\n\t\tif (\n\t\t\tthis.buffer !== buffer ||\n\t\t\tthis.vertexOffset !== vertexOffset ||\n\t\t\tthis.indexOffset !== indexOffset ||\n\t\t\tthis.vertexCount !== vertexCount ||\n\t\t\tthis.indexCount !== indexCount\n\t\t) {\n\t\t\tif (buffer.check(vertexOffset, indexOffset, vertexCount, indexCount)) {\n\t\t\t\tthis.inited = BuilderFlag.NONE;\n\t\t\t\tthis.buffer = buffer;\n\t\t\t\tthis.vertexOffset = vertexOffset;\n\t\t\t\tthis.indexOffset = indexOffset;\n\t\t\t\tthis.vertexCount = vertexCount;\n\t\t\t\tthis.indexCount = indexCount;\n\t\t\t\tthis.triangulatedId = -1;\n\t\t\t\tthis.init();\n\t\t\t\treturn true;\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\toverride isCompatible(shape: EShape): boolean {\n\t\tif (!(shape instanceof EShapePolygon)) {\n\t\t\treturn false;\n\t\t}\n\t\tconst triangulated = shape.triangulated;\n\t\tconst vertexCount = triangulated.nvertices;\n\t\tconst indexCount = triangulated.nindices;\n\t\treturn vertexCount === this.vertexCount && indexCount === this.indexCount;\n\t}\n\n\toverride update(shape: EShape): void {\n\t\tif (!(shape instanceof EShapePolygon)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst buffer = this.buffer;\n\t\tthis.updateVertexStepUvAndIndex(buffer, shape);\n\t\tthis.updateColor(buffer, shape);\n\t}\n\n\tprotected updateVertexStepUvAndIndex(buffer: BuilderBuffer, shape: EShapePolygon): void {\n\t\tconst size = shape.size;\n\t\tconst sizeX = size.x;\n\t\tconst sizeY = size.y;\n\t\tconst isSizeChanged = sizeX !== this.sizeX || sizeY !== this.sizeY;\n\n\t\tconst transformLocalId = toTransformLocalId(shape);\n\t\tconst isTransformChanged = this.transformLocalId !== transformLocalId;\n\n\t\t// Check if vertices/distances/clippings/indices changed\n\t\tconst triangulated = shape.triangulated;\n\t\tconst triangulatedId = triangulated.id;\n\t\tconst isTriangulatedIdChanged = this.triangulatedId !== triangulatedId;\n\n\t\tconst stroke = shape.stroke;\n\t\tconst strokeWidth = stroke.enable ? stroke.width : 0;\n\t\tconst strokeSide = stroke.side;\n\t\tconst strokeStyle = stroke.style;\n\t\tconst isStrokeChanged =\n\t\t\tthis.strokeWidth !== strokeWidth ||\n\t\t\tthis.strokeSide !== strokeSide ||\n\t\t\tthis.strokeStyle !== strokeStyle;\n\n\t\tconst texture = toTexture(shape);\n\t\tconst textureTransformId = toTextureTransformId(texture);\n\t\tconst isTextureChanged =\n\t\t\ttexture !== this.texture || textureTransformId !== this.textureTransformId;\n\n\t\tconst isVertexChanged = isSizeChanged || isTriangulatedIdChanged;\n\n\t\tconst isNotInited = !(this.inited & BuilderFlag.VERTEX_STEP_UV_AND_INDEX);\n\n\t\tif (\n\t\t\tisNotInited ||\n\t\t\tisVertexChanged ||\n\t\t\tisTransformChanged ||\n\t\t\tisStrokeChanged ||\n\t\t\tisTextureChanged\n\t\t) {\n\t\t\tthis.inited |= BuilderFlag.VERTEX_STEP_UV_AND_INDEX;\n\t\t\tthis.sizeX = sizeX;\n\t\t\tthis.sizeY = sizeY;\n\t\t\tthis.transformLocalId = transformLocalId;\n\t\t\tthis.strokeWidth = strokeWidth;\n\t\t\tthis.strokeSide = strokeSide;\n\t\t\tthis.strokeStyle = strokeStyle;\n\t\t\tthis.texture = texture;\n\t\t\tthis.textureTransformId = textureTransformId;\n\t\t\tthis.triangulatedId = triangulatedId;\n\n\t\t\t// Indices\n\t\t\tif (isNotInited || isVertexChanged) {\n\t\t\t\tbuffer.updateIndices();\n\t\t\t\tbuildPolygonIndex(\n\t\t\t\t\tbuffer.indices,\n\t\t\t\t\ttriangulated.indices,\n\t\t\t\t\tthis.vertexOffset,\n\t\t\t\t\tthis.indexOffset\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Vertices\n\t\t\tconst voffset = this.vertexOffset;\n\t\t\tif (isNotInited || isVertexChanged || isTransformChanged) {\n\t\t\t\tbuffer.updateVertices();\n\t\t\t\tbuildPolygonVertex(\n\t\t\t\t\tbuffer.vertices,\n\t\t\t\t\ttriangulated.vertices,\n\t\t\t\t\tvoffset,\n\t\t\t\t\tsizeX,\n\t\t\t\t\tsizeY,\n\t\t\t\t\tshape.transform.internalTransform\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Steps\n\t\t\tif (isNotInited || isVertexChanged || isStrokeChanged) {\n\t\t\t\tbuffer.updateSteps();\n\t\t\t\tbuildPolygonStep(\n\t\t\t\t\tbuffer.steps,\n\t\t\t\t\ttriangulated.distances,\n\t\t\t\t\ttriangulated.clippings,\n\t\t\t\t\tvoffset,\n\t\t\t\t\tthis.vertexCount,\n\t\t\t\t\tsizeX,\n\t\t\t\t\tsizeY,\n\t\t\t\t\tstrokeWidth,\n\t\t\t\t\tstrokeSide,\n\t\t\t\t\tstrokeStyle\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// UVs\n\t\t\tif (isNotInited || isVertexChanged || isTextureChanged) {\n\t\t\t\tbuffer.updateUvs();\n\t\t\t\tbuildPolygonUv(buffer.uvs, triangulated.vertices, voffset, toTextureUvs(texture));\n\t\t\t}\n\t\t}\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"builder-polygon.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/builder-polygon.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { EShape } from \"../e-shape\";\nimport {\n\tbuildPolygonIndex,\n\tbuildPolygonStep,\n\tbuildPolygonUv,\n\tbuildPolygonVertex\n} from \"./build-polygon\";\nimport { BuilderBuffer, BuilderFlag } from \"./builder\";\nimport { BuilderBase } from \"./builder-base\";\nimport { EShapePolygon } from \"./e-shape-polygon\";\nimport { toTexture, toTextureTransformId, toTextureUvs, toTransformLocalId } from \"./builders\";\n\nexport class BuilderPolygon extends BuilderBase {\n\tprotected triangulatedId: number;\n\n\tconstructor(\n\t\tbuffer: BuilderBuffer,\n\t\tvertexOffset: number,\n\t\tindexOffset: number,\n\t\tvertexCount: number,\n\t\tindexCount: number\n\t) {\n\t\tsuper(buffer, vertexOffset, indexOffset, vertexCount, indexCount);\n\t\tthis.triangulatedId = -1;\n\t}\n\n\toverride init(): void {\n\t\t// DO NOTHING\n\t}\n\n\toverride reinit(\n\t\tbuffer: BuilderBuffer,\n\t\tshape: EShape,\n\t\tvertexOffset: number,\n\t\tindexOffset: number\n\t): boolean {\n\t\tif (!(shape instanceof EShapePolygon)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst triangulated = shape.triangulated;\n\t\tconst vertexCount = triangulated.nvertices;\n\t\tconst indexCount = triangulated.nindices;\n\t\tif (\n\t\t\tthis.buffer !== buffer ||\n\t\t\tthis.vertexOffset !== vertexOffset ||\n\t\t\tthis.indexOffset !== indexOffset ||\n\t\t\tthis.vertexCount !== vertexCount ||\n\t\t\tthis.indexCount !== indexCount\n\t\t) {\n\t\t\tif (buffer.check(vertexOffset, indexOffset, vertexCount, indexCount)) {\n\t\t\t\tthis.inited = BuilderFlag.NONE;\n\t\t\t\tthis.buffer = buffer;\n\t\t\t\tthis.vertexOffset = vertexOffset;\n\t\t\t\tthis.indexOffset = indexOffset;\n\t\t\t\tthis.vertexCount = vertexCount;\n\t\t\t\tthis.indexCount = indexCount;\n\t\t\t\tthis.triangulatedId = -1;\n\t\t\t\tthis.init();\n\t\t\t\treturn true;\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\toverride isCompatible(shape: EShape): boolean {\n\t\tif (!(shape instanceof EShapePolygon)) {\n\t\t\treturn false;\n\t\t}\n\t\tconst triangulated = shape.triangulated;\n\t\tconst vertexCount = triangulated.nvertices;\n\t\tconst indexCount = triangulated.nindices;\n\t\treturn vertexCount === this.vertexCount && indexCount === this.indexCount;\n\t}\n\n\toverride update(shape: EShape): void {\n\t\tif (!(shape instanceof EShapePolygon)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst buffer = this.buffer;\n\t\tthis.updateVertexStepUvAndIndex(buffer, shape);\n\t\tthis.updateColor(buffer, shape);\n\t}\n\n\tprotected updateVertexStepUvAndIndex(buffer: BuilderBuffer, shape: EShapePolygon): void {\n\t\tconst transformLocalId = toTransformLocalId(shape);\n\t\tconst isTransformChanged = this.transformLocalId !== transformLocalId;\n\n\t\t// Check if vertices/distances/clippings/indices changed\n\t\tconst triangulated = shape.triangulated;\n\t\tconst triangulatedId = triangulated.id;\n\t\tconst isTriangulatedIdChanged = this.triangulatedId !== triangulatedId;\n\n\t\tconst stroke = shape.stroke;\n\t\tconst strokeWidth = stroke.enable ? stroke.width : 0;\n\t\tconst strokeSide = stroke.side;\n\t\tconst strokeStyle = stroke.style;\n\t\tconst isStrokeChanged =\n\t\t\tthis.strokeWidth !== strokeWidth ||\n\t\t\tthis.strokeSide !== strokeSide ||\n\t\t\tthis.strokeStyle !== strokeStyle;\n\n\t\tconst texture = toTexture(shape);\n\t\tconst textureTransformId = toTextureTransformId(texture);\n\t\tconst isTextureChanged =\n\t\t\ttexture !== this.texture || textureTransformId !== this.textureTransformId;\n\n\t\tconst isNotInited = !(this.inited & BuilderFlag.VERTEX_STEP_UV_AND_INDEX);\n\n\t\tif (\n\t\t\tisNotInited ||\n\t\t\tisTriangulatedIdChanged ||\n\t\t\tisTransformChanged ||\n\t\t\tisStrokeChanged ||\n\t\t\tisTextureChanged\n\t\t) {\n\t\t\tthis.inited |= BuilderFlag.VERTEX_STEP_UV_AND_INDEX;\n\t\t\tthis.transformLocalId = transformLocalId;\n\t\t\tthis.strokeWidth = strokeWidth;\n\t\t\tthis.strokeSide = strokeSide;\n\t\t\tthis.strokeStyle = strokeStyle;\n\t\t\tthis.texture = texture;\n\t\t\tthis.textureTransformId = textureTransformId;\n\t\t\tthis.triangulatedId = triangulatedId;\n\n\t\t\t// Indices\n\t\t\tif (isNotInited || isTriangulatedIdChanged) {\n\t\t\t\tbuffer.updateIndices();\n\t\t\t\tbuildPolygonIndex(\n\t\t\t\t\tbuffer.indices,\n\t\t\t\t\ttriangulated.indices,\n\t\t\t\t\tthis.vertexOffset,\n\t\t\t\t\tthis.indexOffset\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Vertices\n\t\t\tconst voffset = this.vertexOffset;\n\t\t\tif (isNotInited || isTriangulatedIdChanged || isTransformChanged) {\n\t\t\t\tbuffer.updateVertices();\n\t\t\t\tbuildPolygonVertex(\n\t\t\t\t\tbuffer.vertices,\n\t\t\t\t\ttriangulated.vertices,\n\t\t\t\t\tvoffset,\n\t\t\t\t\tshape.transform.internalTransform\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Steps\n\t\t\tif (isNotInited || isTriangulatedIdChanged || isStrokeChanged) {\n\t\t\t\tbuffer.updateSteps();\n\t\t\t\tbuildPolygonStep(\n\t\t\t\t\tbuffer.steps,\n\t\t\t\t\ttriangulated.distances,\n\t\t\t\t\ttriangulated.clippings,\n\t\t\t\t\tvoffset,\n\t\t\t\t\tthis.vertexCount,\n\t\t\t\t\tstrokeWidth,\n\t\t\t\t\tstrokeSide,\n\t\t\t\t\tstrokeStyle\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// UVs\n\t\t\tif (isNotInited || isTriangulatedIdChanged || isTextureChanged) {\n\t\t\t\tbuffer.updateUvs();\n\t\t\t\tbuildPolygonUv(buffer.uvs, triangulated.uvs, voffset, toTextureUvs(texture));\n\t\t\t}\n\t\t}\n\t}\n}\n"]}
|
|
@@ -1,49 +1,39 @@
|
|
|
1
1
|
import { EShapeLockPart } from "./e-shape-lock-part";
|
|
2
2
|
import { EShapePolygon } from "./e-shape-polygon";
|
|
3
|
-
export var createPolygon = function (points) {
|
|
3
|
+
export var createPolygon = function (points, result) {
|
|
4
|
+
result !== null && result !== void 0 ? result : (result = new EShapePolygon());
|
|
4
5
|
var pointsLength = points.length;
|
|
5
|
-
if (
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var ymin = 0;
|
|
9
|
-
var ymax = 0;
|
|
10
|
-
xmin = xmax = points[0];
|
|
11
|
-
ymin = ymax = points[1];
|
|
12
|
-
for (var i = 2; i < pointsLength; i += 2) {
|
|
13
|
-
var x = points[i];
|
|
14
|
-
var y = points[i + 1];
|
|
15
|
-
xmin = Math.min(xmin, x);
|
|
16
|
-
xmax = Math.max(xmax, x);
|
|
17
|
-
ymin = Math.min(ymin, y);
|
|
18
|
-
ymax = Math.max(ymax, y);
|
|
19
|
-
}
|
|
20
|
-
var sx = xmax - xmin;
|
|
21
|
-
var sy = ymax - ymin;
|
|
22
|
-
var px = xmin + 0.5 * sx;
|
|
23
|
-
var py = ymin + 0.5 * sy;
|
|
24
|
-
if (0 < Math.abs(sx) && 0 < Math.abs(sy)) {
|
|
25
|
-
var fx = 1 / sx;
|
|
26
|
-
var fy = 1 / sy;
|
|
27
|
-
var vertices = [];
|
|
28
|
-
for (var i = 0; i < pointsLength; i += 2) {
|
|
29
|
-
vertices.push((points[i] - xmin) * fx - 0.5, (points[i + 1] - ymin) * fy - 0.5);
|
|
30
|
-
}
|
|
31
|
-
var result = new EShapePolygon();
|
|
32
|
-
result.lock(EShapeLockPart.ALL);
|
|
33
|
-
result.transform.position.set(px, py);
|
|
34
|
-
result.size.set(sx, sy);
|
|
35
|
-
result.vertices = vertices;
|
|
36
|
-
result.unlock(EShapeLockPart.ALL, true);
|
|
37
|
-
return result;
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
var result = new EShapePolygon();
|
|
41
|
-
result.transform.position.set(px, py);
|
|
42
|
-
return result;
|
|
43
|
-
}
|
|
6
|
+
if (pointsLength < 2) {
|
|
7
|
+
result.points.values = [];
|
|
8
|
+
return result;
|
|
44
9
|
}
|
|
45
|
-
|
|
46
|
-
|
|
10
|
+
var xmin = 0;
|
|
11
|
+
var xmax = 0;
|
|
12
|
+
var ymin = 0;
|
|
13
|
+
var ymax = 0;
|
|
14
|
+
xmin = xmax = points[0];
|
|
15
|
+
ymin = ymax = points[1];
|
|
16
|
+
for (var i = 2; i < pointsLength; i += 2) {
|
|
17
|
+
var x = points[i];
|
|
18
|
+
var y = points[i + 1];
|
|
19
|
+
xmin = Math.min(xmin, x);
|
|
20
|
+
xmax = Math.max(xmax, x);
|
|
21
|
+
ymin = Math.min(ymin, y);
|
|
22
|
+
ymax = Math.max(ymax, y);
|
|
47
23
|
}
|
|
24
|
+
var sx = xmax - xmin;
|
|
25
|
+
var sy = ymax - ymin;
|
|
26
|
+
var px = xmin + 0.5 * sx;
|
|
27
|
+
var py = ymin + 0.5 * sy;
|
|
28
|
+
var values = [];
|
|
29
|
+
for (var i = 0; i < pointsLength; i += 2) {
|
|
30
|
+
values.push(points[i] - px, points[i + 1] - py);
|
|
31
|
+
}
|
|
32
|
+
result.lock(EShapeLockPart.ALL);
|
|
33
|
+
result.transform.position.set(px, py);
|
|
34
|
+
result.size.set(sx, sy);
|
|
35
|
+
result.points.values = values;
|
|
36
|
+
result.unlock(EShapeLockPart.ALL, true);
|
|
37
|
+
return result;
|
|
48
38
|
};
|
|
49
39
|
//# sourceMappingURL=create-polygon.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-polygon.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/create-polygon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,CAAC,IAAM,aAAa,GAAG,UAAC,MAAgB;
|
|
1
|
+
{"version":3,"file":"create-polygon.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/create-polygon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,CAAC,IAAM,aAAa,GAAG,UAAC,MAAgB,EAAE,MAAsB;IACrE,MAAM,aAAN,MAAM,cAAN,MAAM,IAAN,MAAM,GAAK,IAAI,aAAa,EAAE,EAAC;IAC/B,IAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;IACnC,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC;IACf,CAAC;IACD,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,IAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACpB,IAAM,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACxB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1B,CAAC;IACD,IAAM,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;IACvB,IAAM,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;IACvB,IAAM,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC;IAC3B,IAAM,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC;IAC3B,IAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACxB,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;IAC9B,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC;AACf,CAAC,CAAC","sourcesContent":["import { EShapeLockPart } from \"./e-shape-lock-part\";\nimport { EShapePolygon } from \"./e-shape-polygon\";\n\nexport const createPolygon = (points: number[], result?: EShapePolygon): EShapePolygon => {\n\tresult ??= new EShapePolygon();\n\tconst pointsLength = points.length;\n\tif (pointsLength < 2) {\n\t\tresult.points.values = [];\n\t\treturn result;\n\t}\n\tlet xmin = 0;\n\tlet xmax = 0;\n\tlet ymin = 0;\n\tlet ymax = 0;\n\txmin = xmax = points[0];\n\tymin = ymax = points[1];\n\tfor (let i = 2; i < pointsLength; i += 2) {\n\t\tconst x = points[i];\n\t\tconst y = points[i + 1];\n\t\txmin = Math.min(xmin, x);\n\t\txmax = Math.max(xmax, x);\n\t\tymin = Math.min(ymin, y);\n\t\tymax = Math.max(ymax, y);\n\t}\n\tconst sx = xmax - xmin;\n\tconst sy = ymax - ymin;\n\tconst px = xmin + 0.5 * sx;\n\tconst py = ymin + 0.5 * sy;\n\tconst values: number[] = [];\n\tfor (let i = 0; i < pointsLength; i += 2) {\n\t\tvalues.push(points[i] - px, points[i + 1] - py);\n\t}\n\tresult.lock(EShapeLockPart.ALL);\n\tresult.transform.position.set(px, py);\n\tresult.size.set(sx, sy);\n\tresult.points.values = values;\n\tresult.unlock(EShapeLockPart.ALL, true);\n\treturn result;\n};\n"]}
|
|
@@ -139,12 +139,8 @@ var EShapeLinePoints = /** @class */ (function () {
|
|
|
139
139
|
});
|
|
140
140
|
Object.defineProperty(EShapeLinePoints.prototype, "marker", {
|
|
141
141
|
get: function () {
|
|
142
|
-
var
|
|
143
|
-
|
|
144
|
-
result = this.newMarker();
|
|
145
|
-
this._marker = result;
|
|
146
|
-
}
|
|
147
|
-
return result;
|
|
142
|
+
var _a;
|
|
143
|
+
return ((_a = this._marker) !== null && _a !== void 0 ? _a : (this._marker = this.newMarker()));
|
|
148
144
|
},
|
|
149
145
|
enumerable: false,
|
|
150
146
|
configurable: true
|