@wcardinal/wcardinal-ui 0.459.0-beta.2 → 0.459.0-beta.4
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/e-shape-polygon-triangulated-impl.d.ts +3 -2
- package/dist/wcardinal/ui/shape/variant/e-shape-polygon-triangulated-impl.js +85 -47
- package/dist/wcardinal/ui/shape/variant/e-shape-polygon-triangulated-impl.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/hit-test-polygon.js +1 -1
- package/dist/wcardinal/ui/shape/variant/hit-test-polygon.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 +87 -49
- package/dist/wcardinal-ui.js +87 -49
- package/dist/wcardinal-ui.min.js +2 -2
- package/dist/wcardinal-ui.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -9,7 +9,8 @@ export type EShapePolygonTriangulatedExtensionSerialized = [
|
|
|
9
9
|
number,
|
|
10
10
|
number,
|
|
11
11
|
number,
|
|
12
|
-
number
|
|
12
|
+
number,
|
|
13
|
+
number?
|
|
13
14
|
];
|
|
14
15
|
export declare class EShapePolygonTriangulatedImpl implements EShapePolygonTriangulated {
|
|
15
16
|
protected _id: number;
|
|
@@ -35,7 +36,7 @@ export declare class EShapePolygonTriangulatedImpl implements EShapePolygonTrian
|
|
|
35
36
|
get indices(): number[];
|
|
36
37
|
get nindices(): number;
|
|
37
38
|
get boundary(): EShapeBoundary;
|
|
38
|
-
set(parentPointsId?: number, vertices?: number[], distances?: number[], lengths?: number[], clippings?: number[], uvs?: number[], indices?: number[]): this;
|
|
39
|
+
set(parentPointsId?: number, vertices?: number[], distances?: number[], lengths?: number[], clippings?: number[], uvs?: number[], indices?: number[], boundary?: EShapeBoundary): this;
|
|
39
40
|
protected triangulate(): void;
|
|
40
41
|
protected toUvs(vertices: number[], boundary: EShapeBoundary): number[];
|
|
41
42
|
copy(source: EShapePolygonTriangulated): this;
|
|
@@ -96,7 +96,7 @@ var EShapePolygonTriangulatedImpl = /** @class */ (function () {
|
|
|
96
96
|
enumerable: false,
|
|
97
97
|
configurable: true
|
|
98
98
|
});
|
|
99
|
-
EShapePolygonTriangulatedImpl.prototype.set = function (parentPointsId, vertices, distances, lengths, clippings, uvs, indices) {
|
|
99
|
+
EShapePolygonTriangulatedImpl.prototype.set = function (parentPointsId, vertices, distances, lengths, clippings, uvs, indices, boundary) {
|
|
100
100
|
var isChanged = false;
|
|
101
101
|
// Parent Vertex ID
|
|
102
102
|
if (parentPointsId != null) {
|
|
@@ -171,6 +171,14 @@ var EShapePolygonTriangulatedImpl = /** @class */ (function () {
|
|
|
171
171
|
this._nindices = indicesLength / 3;
|
|
172
172
|
isChanged = true;
|
|
173
173
|
}
|
|
174
|
+
// Boundary
|
|
175
|
+
if (boundary != null) {
|
|
176
|
+
this._boundary[0] = boundary[0];
|
|
177
|
+
this._boundary[1] = boundary[1];
|
|
178
|
+
this._boundary[2] = boundary[2];
|
|
179
|
+
this._boundary[3] = boundary[3];
|
|
180
|
+
isChanged = true;
|
|
181
|
+
}
|
|
174
182
|
// Done
|
|
175
183
|
if (isChanged) {
|
|
176
184
|
this._id += 1;
|
|
@@ -216,7 +224,7 @@ var EShapePolygonTriangulatedImpl = /** @class */ (function () {
|
|
|
216
224
|
return result;
|
|
217
225
|
};
|
|
218
226
|
EShapePolygonTriangulatedImpl.prototype.copy = function (source) {
|
|
219
|
-
this.set(this._parent.points.id, source.vertices, source.distances, source.lengths, source.clippings, source.uvs, source.indices);
|
|
227
|
+
this.set(this._parent.points.id, source.vertices, source.distances, source.lengths, source.clippings, source.uvs, source.indices, source.boundary);
|
|
220
228
|
return this;
|
|
221
229
|
};
|
|
222
230
|
EShapePolygonTriangulatedImpl.prototype.serialize = function (manager) {
|
|
@@ -227,7 +235,8 @@ var EShapePolygonTriangulatedImpl = /** @class */ (function () {
|
|
|
227
235
|
manager.addResource(JSON.stringify(this._lengths)),
|
|
228
236
|
manager.addResource(JSON.stringify(this._clippings)),
|
|
229
237
|
manager.addResource(JSON.stringify(this._uvs)),
|
|
230
|
-
manager.addResource(JSON.stringify(this._indices))
|
|
238
|
+
manager.addResource(JSON.stringify(this._indices)),
|
|
239
|
+
manager.addResource(JSON.stringify(this._boundary))
|
|
231
240
|
];
|
|
232
241
|
return manager.addResource(JSON.stringify(serialized));
|
|
233
242
|
};
|
|
@@ -243,66 +252,95 @@ var EShapePolygonTriangulatedImpl = /** @class */ (function () {
|
|
|
243
252
|
// Parent Points Id
|
|
244
253
|
this._parentPointsId = this._parent.points.id;
|
|
245
254
|
// Vertices
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
vertices
|
|
251
|
-
|
|
255
|
+
{
|
|
256
|
+
var vertexId = parsed[0];
|
|
257
|
+
if (0 <= vertexId && vertexId < resourcesLength) {
|
|
258
|
+
var vertices = manager.getExtension(vertexId);
|
|
259
|
+
if (vertices == null) {
|
|
260
|
+
vertices = JSON.parse(resources[vertexId]);
|
|
261
|
+
manager.setExtension(vertexId, vertices);
|
|
262
|
+
}
|
|
263
|
+
this._vertices = vertices;
|
|
264
|
+
this._nvertices = vertices.length >> 1;
|
|
252
265
|
}
|
|
253
|
-
this._vertices = vertices;
|
|
254
|
-
this._nvertices = vertices.length >> 1;
|
|
255
266
|
}
|
|
256
267
|
// Distances
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
distances
|
|
262
|
-
|
|
268
|
+
{
|
|
269
|
+
var distanceId = parsed[1];
|
|
270
|
+
if (0 <= distanceId && distanceId < resourcesLength) {
|
|
271
|
+
var distances = manager.getExtension(distanceId);
|
|
272
|
+
if (distances == null) {
|
|
273
|
+
distances = JSON.parse(resources[distanceId]);
|
|
274
|
+
manager.setExtension(distanceId, distances);
|
|
275
|
+
}
|
|
276
|
+
this._distances = distances;
|
|
263
277
|
}
|
|
264
|
-
this._distances = distances;
|
|
265
278
|
}
|
|
266
279
|
// Lengths
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
lengths
|
|
272
|
-
|
|
280
|
+
{
|
|
281
|
+
var lengthId = parsed[2];
|
|
282
|
+
if (0 <= lengthId && lengthId < resourcesLength) {
|
|
283
|
+
var lengths = manager.getExtension(lengthId);
|
|
284
|
+
if (lengths == null) {
|
|
285
|
+
lengths = JSON.parse(resources[lengthId]);
|
|
286
|
+
manager.setExtension(lengthId, lengths);
|
|
287
|
+
}
|
|
288
|
+
this._lengths = lengths;
|
|
273
289
|
}
|
|
274
|
-
this._lengths = lengths;
|
|
275
290
|
}
|
|
276
291
|
// Clippings
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
clippings
|
|
282
|
-
|
|
292
|
+
{
|
|
293
|
+
var clippingId = parsed[3];
|
|
294
|
+
if (0 <= clippingId && clippingId < resourcesLength) {
|
|
295
|
+
var clippings = manager.getExtension(clippingId);
|
|
296
|
+
if (clippings == null) {
|
|
297
|
+
clippings = JSON.parse(resources[clippingId]);
|
|
298
|
+
manager.setExtension(clippingId, clippings);
|
|
299
|
+
}
|
|
300
|
+
this._clippings = clippings;
|
|
283
301
|
}
|
|
284
|
-
this._clippings = clippings;
|
|
285
302
|
}
|
|
286
303
|
// UVs
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
uvs
|
|
292
|
-
|
|
304
|
+
{
|
|
305
|
+
var uvId = parsed[4];
|
|
306
|
+
if (0 <= uvId && uvId < resourcesLength) {
|
|
307
|
+
var uvs = manager.getExtension(uvId);
|
|
308
|
+
if (uvs == null) {
|
|
309
|
+
uvs = JSON.parse(resources[uvId]);
|
|
310
|
+
manager.setExtension(uvId, uvs);
|
|
311
|
+
}
|
|
312
|
+
this._uvs = uvs;
|
|
293
313
|
}
|
|
294
|
-
this._uvs = uvs;
|
|
295
314
|
}
|
|
296
315
|
// Indices
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
indices
|
|
302
|
-
|
|
316
|
+
{
|
|
317
|
+
var indexId = parsed[5];
|
|
318
|
+
if (0 <= indexId && indexId < resourcesLength) {
|
|
319
|
+
var indices = manager.getExtension(indexId);
|
|
320
|
+
if (indices == null) {
|
|
321
|
+
indices = JSON.parse(resources[indexId]);
|
|
322
|
+
manager.setExtension(indexId, indices);
|
|
323
|
+
}
|
|
324
|
+
this._indices = indices;
|
|
325
|
+
this._nindices = indices.length / 3;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
// Boundary
|
|
329
|
+
{
|
|
330
|
+
var boundaryId = parsed[6];
|
|
331
|
+
if (boundaryId != null) {
|
|
332
|
+
if (0 <= boundaryId && boundaryId < resourcesLength) {
|
|
333
|
+
var boundary = manager.getExtension(boundaryId);
|
|
334
|
+
if (boundary == null) {
|
|
335
|
+
boundary = JSON.parse(resources[boundaryId]);
|
|
336
|
+
manager.setExtension(boundaryId, boundary);
|
|
337
|
+
}
|
|
338
|
+
this._boundary = boundary;
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
else {
|
|
342
|
+
toPointsBoundary(this._vertices, this._boundary);
|
|
303
343
|
}
|
|
304
|
-
this._indices = indices;
|
|
305
|
-
this._nindices = indices.length / 3;
|
|
306
344
|
}
|
|
307
345
|
this._id += 1;
|
|
308
346
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e-shape-polygon-triangulated-impl.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/e-shape-polygon-triangulated-impl.ts"],"names":[],"mappings":"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","sourcesContent":["import { UtilStraightSkeleton } from \"../../util/util-straight-skeleton\";\nimport { UtilStraightSkeletonBuffer } from \"../../util/util-straight-skeleton-buffer\";\nimport { EShapeBoundary } from \"../e-shape-boundary\";\nimport { toPointsBoundary } from \"../e-shape-points-formatted\";\nimport { EShapeResourceManagerDeserialization } from \"../e-shape-resource-manager-deserialization\";\nimport { EShapeResourceManagerSerialization } from \"../e-shape-resource-manager-serialization\";\nimport type { EShapePolygon } from \"./e-shape-polygon\";\nimport type { EShapePolygonTriangulated } from \"./e-shape-polygon-triangulated\";\n\nexport type EShapePolygonTriangulatedExtensionSerialized = [\n\tnumber,\n\tnumber,\n\tnumber,\n\tnumber,\n\tnumber,\n\tnumber\n];\n\nexport class EShapePolygonTriangulatedImpl implements EShapePolygonTriangulated {\n\tprotected _id: number;\n\tprotected _parent: EShapePolygon;\n\tprotected _parentPointsId: number;\n\tprotected _vertices: number[];\n\tprotected _nvertices: number;\n\tprotected _distances: number[];\n\tprotected _lengths: number[];\n\tprotected _clippings: number[];\n\tprotected _uvs: number[];\n\tprotected _indices: number[];\n\tprotected _nindices: number;\n\tprotected _boundary: EShapeBoundary;\n\n\tconstructor(parent: EShapePolygon) {\n\t\tthis._id = 0;\n\t\tthis._parent = parent;\n\t\tthis._parentPointsId = -1;\n\t\tthis._vertices = [];\n\t\tthis._nvertices = 0;\n\t\tthis._distances = [];\n\t\tthis._lengths = [];\n\t\tthis._clippings = [];\n\t\tthis._uvs = [];\n\t\tthis._indices = [];\n\t\tthis._nindices = 0;\n\t\tthis._boundary = [0, 0, 0, 0];\n\t}\n\n\tget id(): number {\n\t\tthis.triangulate();\n\t\treturn this._id;\n\t}\n\n\tget vertices(): number[] {\n\t\tthis.triangulate();\n\t\treturn this._vertices;\n\t}\n\n\tget nvertices(): number {\n\t\tthis.triangulate();\n\t\treturn this._nvertices;\n\t}\n\n\tget distances(): number[] {\n\t\tthis.triangulate();\n\t\treturn this._distances;\n\t}\n\n\tget lengths(): number[] {\n\t\tthis.triangulate();\n\t\treturn this._lengths;\n\t}\n\n\tget clippings(): number[] {\n\t\tthis.triangulate();\n\t\treturn this._clippings;\n\t}\n\n\tget uvs(): number[] {\n\t\tthis.triangulate();\n\t\treturn this._uvs;\n\t}\n\n\tget indices(): number[] {\n\t\tthis.triangulate();\n\t\treturn this._indices;\n\t}\n\n\tget nindices(): number {\n\t\tthis.triangulate();\n\t\treturn this._nindices;\n\t}\n\n\tget boundary(): EShapeBoundary {\n\t\tthis.triangulate();\n\t\treturn this._boundary;\n\t}\n\n\tset(\n\t\tparentPointsId?: number,\n\t\tvertices?: number[],\n\t\tdistances?: number[],\n\t\tlengths?: number[],\n\t\tclippings?: number[],\n\t\tuvs?: number[],\n\t\tindices?: number[]\n\t): this {\n\t\tlet isChanged = false;\n\n\t\t// Parent Vertex ID\n\t\tif (parentPointsId != null) {\n\t\t\tthis._parentPointsId = parentPointsId;\n\t\t\tisChanged = true;\n\t\t}\n\n\t\t// Vertices\n\t\tif (vertices != null) {\n\t\t\tconst verticesLength = vertices.length;\n\t\t\tfor (let i = 0; i < verticesLength; ++i) {\n\t\t\t\tthis._vertices[i] = vertices[i];\n\t\t\t}\n\t\t\tif (this._vertices.length !== verticesLength) {\n\t\t\t\tthis._vertices.length = verticesLength;\n\t\t\t}\n\t\t\tthis._nvertices = verticesLength >> 1;\n\t\t\tisChanged = true;\n\t\t}\n\n\t\t// Distances\n\t\tif (distances != null) {\n\t\t\tconst distancesLength = distances.length;\n\t\t\tfor (let i = 0; i < distancesLength; ++i) {\n\t\t\t\tthis._distances[i] = distances[i];\n\t\t\t}\n\t\t\tif (this._distances.length !== distancesLength) {\n\t\t\t\tthis._distances.length = distancesLength;\n\t\t\t}\n\t\t\tisChanged = true;\n\t\t}\n\n\t\t// Lengths\n\t\tif (lengths != null) {\n\t\t\tconst lengthsLength = lengths.length;\n\t\t\tfor (let i = 0; i < lengthsLength; ++i) {\n\t\t\t\tthis._lengths[i] = lengths[i];\n\t\t\t}\n\t\t\tif (this._lengths.length !== lengthsLength) {\n\t\t\t\tthis._lengths.length = lengthsLength;\n\t\t\t}\n\t\t\tisChanged = true;\n\t\t}\n\n\t\t// Clippings\n\t\tif (clippings != null) {\n\t\t\tconst clippingsLength = clippings.length;\n\t\t\tfor (let i = 0; i < clippingsLength; ++i) {\n\t\t\t\tthis._clippings[i] = clippings[i];\n\t\t\t}\n\t\t\tif (this._clippings.length !== clippingsLength) {\n\t\t\t\tthis._clippings.length = clippingsLength;\n\t\t\t}\n\t\t\tisChanged = true;\n\t\t}\n\n\t\t// UVs\n\t\tif (uvs != null) {\n\t\t\tconst uvsLength = uvs.length;\n\t\t\tfor (let i = 0; i < uvsLength; ++i) {\n\t\t\t\tthis._uvs[i] = uvs[i];\n\t\t\t}\n\t\t\tif (this._uvs.length !== uvsLength) {\n\t\t\t\tthis._uvs.length = uvsLength;\n\t\t\t}\n\t\t\tisChanged = true;\n\t\t}\n\n\t\t// Indices\n\t\tif (indices != null) {\n\t\t\tconst indicesLength = indices.length;\n\t\t\tfor (let i = 0; i < indicesLength; ++i) {\n\t\t\t\tthis._indices[i] = indices[i];\n\t\t\t}\n\t\t\tif (this._indices.length !== indicesLength) {\n\t\t\t\tthis._indices.length = indicesLength;\n\t\t\t}\n\t\t\tthis._nindices = indicesLength / 3;\n\t\t\tisChanged = true;\n\t\t}\n\n\t\t// Done\n\t\tif (isChanged) {\n\t\t\tthis._id += 1;\n\t\t}\n\t\treturn this;\n\t}\n\n\tprotected triangulate(): void {\n\t\tconst parent = this._parent;\n\t\tconst parentPoints = parent.points;\n\t\tconst parentPointsId = parentPoints.id;\n\t\tconst isParentIdChanged = this._parentPointsId !== parentPointsId;\n\t\tif (isParentIdChanged) {\n\t\t\tthis._parentPointsId = parentPointsId;\n\t\t\tconst buffer = UtilStraightSkeletonBuffer.from(\n\t\t\t\tUtilStraightSkeleton.from(parentPoints.formatted.values)\n\t\t\t);\n\t\t\tthis._id += 1;\n\t\t\tconst vertices = buffer.vertices;\n\t\t\tthis._vertices = vertices;\n\t\t\tthis._nvertices = buffer.vertices.length >> 1;\n\t\t\tthis._distances = buffer.distances;\n\t\t\tthis._lengths = buffer.lengths;\n\t\t\tthis._clippings = buffer.clippings;\n\t\t\tconst boundary = this._boundary;\n\t\t\ttoPointsBoundary(vertices, boundary);\n\t\t\tthis._uvs = this.toUvs(vertices, boundary);\n\t\t\tthis._indices = buffer.indices;\n\t\t\tthis._nindices = buffer.indices.length / 3;\n\t\t}\n\t}\n\n\tprotected toUvs(vertices: number[], boundary: EShapeBoundary): number[] {\n\t\tconst result: number[] = [];\n\t\tconst xmin = boundary[0];\n\t\tconst ymin = boundary[1];\n\t\tconst xmax = boundary[2];\n\t\tconst ymax = boundary[3];\n\t\tconst sx = xmax - xmin;\n\t\tconst sy = ymax - ymin;\n\t\tconst fx = 0 < sx ? 1 / sx : 0;\n\t\tconst fy = 0 < sy ? 1 / sy : 0;\n\t\tconst verticesLength = vertices.length;\n\t\tfor (let i = 0; i < verticesLength; i += 2) {\n\t\t\tresult.push((vertices[i] - xmin) * fx, (vertices[i + 1] - ymin) * fy);\n\t\t}\n\t\treturn result;\n\t}\n\n\tcopy(source: EShapePolygonTriangulated): this {\n\t\tthis.set(\n\t\t\tthis._parent.points.id,\n\t\t\tsource.vertices,\n\t\t\tsource.distances,\n\t\t\tsource.lengths,\n\t\t\tsource.clippings,\n\t\t\tsource.uvs,\n\t\t\tsource.indices\n\t\t);\n\t\treturn this;\n\t}\n\n\tserialize(manager: EShapeResourceManagerSerialization): number {\n\t\tthis.triangulate();\n\t\tconst serialized: EShapePolygonTriangulatedExtensionSerialized = [\n\t\t\tmanager.addResource(JSON.stringify(this._vertices)),\n\t\t\tmanager.addResource(JSON.stringify(this._distances)),\n\t\t\tmanager.addResource(JSON.stringify(this._lengths)),\n\t\t\tmanager.addResource(JSON.stringify(this._clippings)),\n\t\t\tmanager.addResource(JSON.stringify(this._uvs)),\n\t\t\tmanager.addResource(JSON.stringify(this._indices))\n\t\t];\n\t\treturn manager.addResource(JSON.stringify(serialized));\n\t}\n\n\tdeserialize(resourceId: number, manager: EShapeResourceManagerDeserialization): void {\n\t\tconst resources = manager.resources;\n\t\tconst resourcesLength = resources.length;\n\t\tif (0 <= resourceId && resourceId < resourcesLength) {\n\t\t\tlet parsed =\n\t\t\t\tmanager.getExtension<EShapePolygonTriangulatedExtensionSerialized>(resourceId);\n\t\t\tif (parsed == null) {\n\t\t\t\tparsed = JSON.parse(\n\t\t\t\t\tresources[resourceId]\n\t\t\t\t) as EShapePolygonTriangulatedExtensionSerialized;\n\t\t\t\tmanager.setExtension(resourceId, parsed);\n\t\t\t}\n\n\t\t\t// Parent Points Id\n\t\t\tthis._parentPointsId = this._parent.points.id;\n\n\t\t\t// Vertices\n\t\t\tconst vertexId = parsed[0];\n\t\t\tif (0 <= vertexId && vertexId < resourcesLength) {\n\t\t\t\tlet vertices = manager.getExtension<number[]>(vertexId);\n\t\t\t\tif (vertices == null) {\n\t\t\t\t\tvertices = JSON.parse(resources[vertexId]) as number[];\n\t\t\t\t\tmanager.setExtension(vertexId, vertices);\n\t\t\t\t}\n\t\t\t\tthis._vertices = vertices;\n\t\t\t\tthis._nvertices = vertices.length >> 1;\n\t\t\t}\n\n\t\t\t// Distances\n\t\t\tconst distanceId = parsed[1];\n\t\t\tif (0 <= distanceId && distanceId < resourcesLength) {\n\t\t\t\tlet distances = manager.getExtension<number[]>(distanceId);\n\t\t\t\tif (distances == null) {\n\t\t\t\t\tdistances = JSON.parse(resources[distanceId]) as number[];\n\t\t\t\t\tmanager.setExtension(distanceId, distances);\n\t\t\t\t}\n\t\t\t\tthis._distances = distances;\n\t\t\t}\n\n\t\t\t// Lengths\n\t\t\tconst lengthId = parsed[2];\n\t\t\tif (0 <= lengthId && lengthId < resourcesLength) {\n\t\t\t\tlet lengths = manager.getExtension<number[]>(lengthId);\n\t\t\t\tif (lengths == null) {\n\t\t\t\t\tlengths = JSON.parse(resources[lengthId]) as number[];\n\t\t\t\t\tmanager.setExtension(lengthId, lengths);\n\t\t\t\t}\n\t\t\t\tthis._lengths = lengths;\n\t\t\t}\n\n\t\t\t// Clippings\n\t\t\tconst clippingId = parsed[3];\n\t\t\tif (0 <= clippingId && clippingId < resourcesLength) {\n\t\t\t\tlet clippings = manager.getExtension<number[]>(clippingId);\n\t\t\t\tif (clippings == null) {\n\t\t\t\t\tclippings = JSON.parse(resources[clippingId]) as number[];\n\t\t\t\t\tmanager.setExtension(clippingId, clippings);\n\t\t\t\t}\n\t\t\t\tthis._clippings = clippings;\n\t\t\t}\n\n\t\t\t// UVs\n\t\t\tconst uvId = parsed[4];\n\t\t\tif (0 <= uvId && uvId < resourcesLength) {\n\t\t\t\tlet uvs = manager.getExtension<number[]>(uvId);\n\t\t\t\tif (uvs == null) {\n\t\t\t\t\tuvs = JSON.parse(resources[uvId]) as number[];\n\t\t\t\t\tmanager.setExtension(uvId, uvs);\n\t\t\t\t}\n\t\t\t\tthis._uvs = uvs;\n\t\t\t}\n\n\t\t\t// Indices\n\t\t\tconst indexId = parsed[5];\n\t\t\tif (0 <= indexId && indexId < resourcesLength) {\n\t\t\t\tlet indices = manager.getExtension<number[]>(indexId);\n\t\t\t\tif (indices == null) {\n\t\t\t\t\tindices = JSON.parse(resources[indexId]) as number[];\n\t\t\t\t\tmanager.setExtension(indexId, indices);\n\t\t\t\t}\n\t\t\t\tthis._indices = indices;\n\t\t\t\tthis._nindices = indices.length / 3;\n\t\t\t}\n\n\t\t\tthis._id += 1;\n\t\t}\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"e-shape-polygon-triangulated-impl.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/e-shape-polygon-triangulated-impl.ts"],"names":[],"mappings":"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","sourcesContent":["import { UtilStraightSkeleton } from \"../../util/util-straight-skeleton\";\nimport { UtilStraightSkeletonBuffer } from \"../../util/util-straight-skeleton-buffer\";\nimport { EShapeBoundary } from \"../e-shape-boundary\";\nimport { toPointsBoundary } from \"../e-shape-points-formatted\";\nimport { EShapeResourceManagerDeserialization } from \"../e-shape-resource-manager-deserialization\";\nimport { EShapeResourceManagerSerialization } from \"../e-shape-resource-manager-serialization\";\nimport type { EShapePolygon } from \"./e-shape-polygon\";\nimport type { EShapePolygonTriangulated } from \"./e-shape-polygon-triangulated\";\n\nexport type EShapePolygonTriangulatedExtensionSerialized = [\n\tnumber,\n\tnumber,\n\tnumber,\n\tnumber,\n\tnumber,\n\tnumber,\n\tnumber?\n];\n\nexport class EShapePolygonTriangulatedImpl implements EShapePolygonTriangulated {\n\tprotected _id: number;\n\tprotected _parent: EShapePolygon;\n\tprotected _parentPointsId: number;\n\tprotected _vertices: number[];\n\tprotected _nvertices: number;\n\tprotected _distances: number[];\n\tprotected _lengths: number[];\n\tprotected _clippings: number[];\n\tprotected _uvs: number[];\n\tprotected _indices: number[];\n\tprotected _nindices: number;\n\tprotected _boundary: EShapeBoundary;\n\n\tconstructor(parent: EShapePolygon) {\n\t\tthis._id = 0;\n\t\tthis._parent = parent;\n\t\tthis._parentPointsId = -1;\n\t\tthis._vertices = [];\n\t\tthis._nvertices = 0;\n\t\tthis._distances = [];\n\t\tthis._lengths = [];\n\t\tthis._clippings = [];\n\t\tthis._uvs = [];\n\t\tthis._indices = [];\n\t\tthis._nindices = 0;\n\t\tthis._boundary = [0, 0, 0, 0];\n\t}\n\n\tget id(): number {\n\t\tthis.triangulate();\n\t\treturn this._id;\n\t}\n\n\tget vertices(): number[] {\n\t\tthis.triangulate();\n\t\treturn this._vertices;\n\t}\n\n\tget nvertices(): number {\n\t\tthis.triangulate();\n\t\treturn this._nvertices;\n\t}\n\n\tget distances(): number[] {\n\t\tthis.triangulate();\n\t\treturn this._distances;\n\t}\n\n\tget lengths(): number[] {\n\t\tthis.triangulate();\n\t\treturn this._lengths;\n\t}\n\n\tget clippings(): number[] {\n\t\tthis.triangulate();\n\t\treturn this._clippings;\n\t}\n\n\tget uvs(): number[] {\n\t\tthis.triangulate();\n\t\treturn this._uvs;\n\t}\n\n\tget indices(): number[] {\n\t\tthis.triangulate();\n\t\treturn this._indices;\n\t}\n\n\tget nindices(): number {\n\t\tthis.triangulate();\n\t\treturn this._nindices;\n\t}\n\n\tget boundary(): EShapeBoundary {\n\t\tthis.triangulate();\n\t\treturn this._boundary;\n\t}\n\n\tset(\n\t\tparentPointsId?: number,\n\t\tvertices?: number[],\n\t\tdistances?: number[],\n\t\tlengths?: number[],\n\t\tclippings?: number[],\n\t\tuvs?: number[],\n\t\tindices?: number[],\n\t\tboundary?: EShapeBoundary\n\t): this {\n\t\tlet isChanged = false;\n\n\t\t// Parent Vertex ID\n\t\tif (parentPointsId != null) {\n\t\t\tthis._parentPointsId = parentPointsId;\n\t\t\tisChanged = true;\n\t\t}\n\n\t\t// Vertices\n\t\tif (vertices != null) {\n\t\t\tconst verticesLength = vertices.length;\n\t\t\tfor (let i = 0; i < verticesLength; ++i) {\n\t\t\t\tthis._vertices[i] = vertices[i];\n\t\t\t}\n\t\t\tif (this._vertices.length !== verticesLength) {\n\t\t\t\tthis._vertices.length = verticesLength;\n\t\t\t}\n\t\t\tthis._nvertices = verticesLength >> 1;\n\t\t\tisChanged = true;\n\t\t}\n\n\t\t// Distances\n\t\tif (distances != null) {\n\t\t\tconst distancesLength = distances.length;\n\t\t\tfor (let i = 0; i < distancesLength; ++i) {\n\t\t\t\tthis._distances[i] = distances[i];\n\t\t\t}\n\t\t\tif (this._distances.length !== distancesLength) {\n\t\t\t\tthis._distances.length = distancesLength;\n\t\t\t}\n\t\t\tisChanged = true;\n\t\t}\n\n\t\t// Lengths\n\t\tif (lengths != null) {\n\t\t\tconst lengthsLength = lengths.length;\n\t\t\tfor (let i = 0; i < lengthsLength; ++i) {\n\t\t\t\tthis._lengths[i] = lengths[i];\n\t\t\t}\n\t\t\tif (this._lengths.length !== lengthsLength) {\n\t\t\t\tthis._lengths.length = lengthsLength;\n\t\t\t}\n\t\t\tisChanged = true;\n\t\t}\n\n\t\t// Clippings\n\t\tif (clippings != null) {\n\t\t\tconst clippingsLength = clippings.length;\n\t\t\tfor (let i = 0; i < clippingsLength; ++i) {\n\t\t\t\tthis._clippings[i] = clippings[i];\n\t\t\t}\n\t\t\tif (this._clippings.length !== clippingsLength) {\n\t\t\t\tthis._clippings.length = clippingsLength;\n\t\t\t}\n\t\t\tisChanged = true;\n\t\t}\n\n\t\t// UVs\n\t\tif (uvs != null) {\n\t\t\tconst uvsLength = uvs.length;\n\t\t\tfor (let i = 0; i < uvsLength; ++i) {\n\t\t\t\tthis._uvs[i] = uvs[i];\n\t\t\t}\n\t\t\tif (this._uvs.length !== uvsLength) {\n\t\t\t\tthis._uvs.length = uvsLength;\n\t\t\t}\n\t\t\tisChanged = true;\n\t\t}\n\n\t\t// Indices\n\t\tif (indices != null) {\n\t\t\tconst indicesLength = indices.length;\n\t\t\tfor (let i = 0; i < indicesLength; ++i) {\n\t\t\t\tthis._indices[i] = indices[i];\n\t\t\t}\n\t\t\tif (this._indices.length !== indicesLength) {\n\t\t\t\tthis._indices.length = indicesLength;\n\t\t\t}\n\t\t\tthis._nindices = indicesLength / 3;\n\t\t\tisChanged = true;\n\t\t}\n\n\t\t// Boundary\n\t\tif (boundary != null) {\n\t\t\tthis._boundary[0] = boundary[0];\n\t\t\tthis._boundary[1] = boundary[1];\n\t\t\tthis._boundary[2] = boundary[2];\n\t\t\tthis._boundary[3] = boundary[3];\n\t\t\tisChanged = true;\n\t\t}\n\n\t\t// Done\n\t\tif (isChanged) {\n\t\t\tthis._id += 1;\n\t\t}\n\t\treturn this;\n\t}\n\n\tprotected triangulate(): void {\n\t\tconst parent = this._parent;\n\t\tconst parentPoints = parent.points;\n\t\tconst parentPointsId = parentPoints.id;\n\t\tconst isParentIdChanged = this._parentPointsId !== parentPointsId;\n\t\tif (isParentIdChanged) {\n\t\t\tthis._parentPointsId = parentPointsId;\n\t\t\tconst buffer = UtilStraightSkeletonBuffer.from(\n\t\t\t\tUtilStraightSkeleton.from(parentPoints.formatted.values)\n\t\t\t);\n\t\t\tthis._id += 1;\n\t\t\tconst vertices = buffer.vertices;\n\t\t\tthis._vertices = vertices;\n\t\t\tthis._nvertices = buffer.vertices.length >> 1;\n\t\t\tthis._distances = buffer.distances;\n\t\t\tthis._lengths = buffer.lengths;\n\t\t\tthis._clippings = buffer.clippings;\n\t\t\tconst boundary = this._boundary;\n\t\t\ttoPointsBoundary(vertices, boundary);\n\t\t\tthis._uvs = this.toUvs(vertices, boundary);\n\t\t\tthis._indices = buffer.indices;\n\t\t\tthis._nindices = buffer.indices.length / 3;\n\t\t}\n\t}\n\n\tprotected toUvs(vertices: number[], boundary: EShapeBoundary): number[] {\n\t\tconst result: number[] = [];\n\t\tconst xmin = boundary[0];\n\t\tconst ymin = boundary[1];\n\t\tconst xmax = boundary[2];\n\t\tconst ymax = boundary[3];\n\t\tconst sx = xmax - xmin;\n\t\tconst sy = ymax - ymin;\n\t\tconst fx = 0 < sx ? 1 / sx : 0;\n\t\tconst fy = 0 < sy ? 1 / sy : 0;\n\t\tconst verticesLength = vertices.length;\n\t\tfor (let i = 0; i < verticesLength; i += 2) {\n\t\t\tresult.push((vertices[i] - xmin) * fx, (vertices[i + 1] - ymin) * fy);\n\t\t}\n\t\treturn result;\n\t}\n\n\tcopy(source: EShapePolygonTriangulated): this {\n\t\tthis.set(\n\t\t\tthis._parent.points.id,\n\t\t\tsource.vertices,\n\t\t\tsource.distances,\n\t\t\tsource.lengths,\n\t\t\tsource.clippings,\n\t\t\tsource.uvs,\n\t\t\tsource.indices,\n\t\t\tsource.boundary\n\t\t);\n\t\treturn this;\n\t}\n\n\tserialize(manager: EShapeResourceManagerSerialization): number {\n\t\tthis.triangulate();\n\t\tconst serialized: EShapePolygonTriangulatedExtensionSerialized = [\n\t\t\tmanager.addResource(JSON.stringify(this._vertices)),\n\t\t\tmanager.addResource(JSON.stringify(this._distances)),\n\t\t\tmanager.addResource(JSON.stringify(this._lengths)),\n\t\t\tmanager.addResource(JSON.stringify(this._clippings)),\n\t\t\tmanager.addResource(JSON.stringify(this._uvs)),\n\t\t\tmanager.addResource(JSON.stringify(this._indices)),\n\t\t\tmanager.addResource(JSON.stringify(this._boundary))\n\t\t];\n\t\treturn manager.addResource(JSON.stringify(serialized));\n\t}\n\n\tdeserialize(resourceId: number, manager: EShapeResourceManagerDeserialization): void {\n\t\tconst resources = manager.resources;\n\t\tconst resourcesLength = resources.length;\n\t\tif (0 <= resourceId && resourceId < resourcesLength) {\n\t\t\tlet parsed =\n\t\t\t\tmanager.getExtension<EShapePolygonTriangulatedExtensionSerialized>(resourceId);\n\t\t\tif (parsed == null) {\n\t\t\t\tparsed = JSON.parse(\n\t\t\t\t\tresources[resourceId]\n\t\t\t\t) as EShapePolygonTriangulatedExtensionSerialized;\n\t\t\t\tmanager.setExtension(resourceId, parsed);\n\t\t\t}\n\n\t\t\t// Parent Points Id\n\t\t\tthis._parentPointsId = this._parent.points.id;\n\n\t\t\t// Vertices\n\t\t\t{\n\t\t\t\tconst vertexId = parsed[0];\n\t\t\t\tif (0 <= vertexId && vertexId < resourcesLength) {\n\t\t\t\t\tlet vertices = manager.getExtension<number[]>(vertexId);\n\t\t\t\t\tif (vertices == null) {\n\t\t\t\t\t\tvertices = JSON.parse(resources[vertexId]) as number[];\n\t\t\t\t\t\tmanager.setExtension(vertexId, vertices);\n\t\t\t\t\t}\n\t\t\t\t\tthis._vertices = vertices;\n\t\t\t\t\tthis._nvertices = vertices.length >> 1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Distances\n\t\t\t{\n\t\t\t\tconst distanceId = parsed[1];\n\t\t\t\tif (0 <= distanceId && distanceId < resourcesLength) {\n\t\t\t\t\tlet distances = manager.getExtension<number[]>(distanceId);\n\t\t\t\t\tif (distances == null) {\n\t\t\t\t\t\tdistances = JSON.parse(resources[distanceId]) as number[];\n\t\t\t\t\t\tmanager.setExtension(distanceId, distances);\n\t\t\t\t\t}\n\t\t\t\t\tthis._distances = distances;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Lengths\n\t\t\t{\n\t\t\t\tconst lengthId = parsed[2];\n\t\t\t\tif (0 <= lengthId && lengthId < resourcesLength) {\n\t\t\t\t\tlet lengths = manager.getExtension<number[]>(lengthId);\n\t\t\t\t\tif (lengths == null) {\n\t\t\t\t\t\tlengths = JSON.parse(resources[lengthId]) as number[];\n\t\t\t\t\t\tmanager.setExtension(lengthId, lengths);\n\t\t\t\t\t}\n\t\t\t\t\tthis._lengths = lengths;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Clippings\n\t\t\t{\n\t\t\t\tconst clippingId = parsed[3];\n\t\t\t\tif (0 <= clippingId && clippingId < resourcesLength) {\n\t\t\t\t\tlet clippings = manager.getExtension<number[]>(clippingId);\n\t\t\t\t\tif (clippings == null) {\n\t\t\t\t\t\tclippings = JSON.parse(resources[clippingId]) as number[];\n\t\t\t\t\t\tmanager.setExtension(clippingId, clippings);\n\t\t\t\t\t}\n\t\t\t\t\tthis._clippings = clippings;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// UVs\n\t\t\t{\n\t\t\t\tconst uvId = parsed[4];\n\t\t\t\tif (0 <= uvId && uvId < resourcesLength) {\n\t\t\t\t\tlet uvs = manager.getExtension<number[]>(uvId);\n\t\t\t\t\tif (uvs == null) {\n\t\t\t\t\t\tuvs = JSON.parse(resources[uvId]) as number[];\n\t\t\t\t\t\tmanager.setExtension(uvId, uvs);\n\t\t\t\t\t}\n\t\t\t\t\tthis._uvs = uvs;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Indices\n\t\t\t{\n\t\t\t\tconst indexId = parsed[5];\n\t\t\t\tif (0 <= indexId && indexId < resourcesLength) {\n\t\t\t\t\tlet indices = manager.getExtension<number[]>(indexId);\n\t\t\t\t\tif (indices == null) {\n\t\t\t\t\t\tindices = JSON.parse(resources[indexId]) as number[];\n\t\t\t\t\t\tmanager.setExtension(indexId, indices);\n\t\t\t\t\t}\n\t\t\t\t\tthis._indices = indices;\n\t\t\t\t\tthis._nindices = indices.length / 3;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Boundary\n\t\t\t{\n\t\t\t\tconst boundaryId = parsed[6];\n\t\t\t\tif (boundaryId != null) {\n\t\t\t\t\tif (0 <= boundaryId && boundaryId < resourcesLength) {\n\t\t\t\t\t\tlet boundary = manager.getExtension<EShapeBoundary>(boundaryId);\n\t\t\t\t\t\tif (boundary == null) {\n\t\t\t\t\t\t\tboundary = JSON.parse(resources[boundaryId]) as EShapeBoundary;\n\t\t\t\t\t\t\tmanager.setExtension(boundaryId, boundary);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis._boundary = boundary;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\ttoPointsBoundary(this._vertices, this._boundary);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis._id += 1;\n\t\t}\n\t}\n}\n"]}
|
|
@@ -53,7 +53,7 @@ export var hitTestPolygon = function (shape, x, y, ax, ay, sw, ss) {
|
|
|
53
53
|
if (!filled && sw <= 0) {
|
|
54
54
|
return false;
|
|
55
55
|
}
|
|
56
|
-
var values = shape.points.values;
|
|
56
|
+
var values = shape.points.formatted.values;
|
|
57
57
|
var valuesLength = values.length;
|
|
58
58
|
if (6 <= valuesLength) {
|
|
59
59
|
var count = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hit-test-polygon.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/hit-test-polygon.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAGhE;;;;;;;;;GASG;AACH,MAAM,CAAC,IAAM,0BAA0B,GAAG,UACzC,MAAgB,EAChB,YAAoB,EACpB,CAAS,EACT,CAAS;IAET,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,QAAQ,CAAC;IACjB,CAAC;IACD,IAAI,MAAM,GAAG,QAAQ,CAAC;IACtB,IAAI,GAAG,GAAG,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;IACnC,IAAI,GAAG,GAAG,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,IAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACrB,IAAM,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACzB,IAAM,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;QACrB,IAAM,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;QACrB,IAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YACZ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;YAC7C,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACX,CAAC,GAAG,CAAC,CAAC;YACP,CAAC;iBAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClB,CAAC,GAAG,CAAC,CAAC;YACP,CAAC;QACF,CAAC;QACD,IAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;QAC/B,IAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;QAC/B,IAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC;YAChB,MAAM,GAAG,CAAC,CAAC;QACZ,CAAC;QACD,GAAG,GAAG,EAAE,CAAC;QACT,GAAG,GAAG,EAAE,CAAC;IACV,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,cAAc,GAAG,UAC7B,KAAoB,EACpB,CAAS,EACT,CAAS,EACT,EAAU,EACV,EAAU,EACV,EAAU,EACV,EAAU;IAEV,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,IAAI,CAAC,MAAM,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACd,CAAC;IACD,IAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"hit-test-polygon.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/hit-test-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 { EShapeFillDirection } from \"../e-shape-fill-direction\";\nimport { EShapePolygon } from \"./e-shape-polygon\";\n\n/**\n * Returns the minimum squared distance between the given point (x, y) and the polygon edges.\n *\n * @param shape a polygon\n * @param x a X-coordinate position\n * @param y a Y-coordinate position\n * @param ax a polygon width\n * @param ay a polygon height\n * @returns the minimum squared distance between the given point (x, y) and the polygon edges\n */\nexport const calcPolygonSquaredDistance = (\n\tvalues: number[],\n\tvaluesLength: number,\n\tx: number,\n\ty: number\n): number => {\n\tif (valuesLength < 4) {\n\t\treturn Infinity;\n\t}\n\tlet result = Infinity;\n\tlet pvx = values[valuesLength - 2];\n\tlet pvy = values[valuesLength - 1];\n\tfor (let i = 0; i < valuesLength; i += 2) {\n\t\tconst vx = values[i];\n\t\tconst vy = values[i + 1];\n\t\tconst dvx = vx - pvx;\n\t\tconst dvy = vy - pvy;\n\t\tconst dv = dvx * dvx + dvy * dvy;\n\t\tlet t = 0;\n\t\tif (0 < dv) {\n\t\t\tt = ((x - pvx) * dvx + (y - pvy) * dvy) / dv;\n\t\t\tif (t < 0) {\n\t\t\t\tt = 0;\n\t\t\t} else if (1 < t) {\n\t\t\t\tt = 1;\n\t\t\t}\n\t\t}\n\t\tconst dx = x - (pvx + t * dvx);\n\t\tconst dy = y - (pvy + t * dvy);\n\t\tconst d = dx * dx + dy * dy;\n\t\tif (d < result) {\n\t\t\tresult = d;\n\t\t}\n\t\tpvx = vx;\n\t\tpvy = vy;\n\t}\n\treturn result;\n};\n\nexport const hitTestPolygon = (\n\tshape: EShapePolygon,\n\tx: number,\n\ty: number,\n\tax: number,\n\tay: number,\n\tsw: number,\n\tss: number\n): boolean => {\n\tconst fill = shape.fill;\n\tconst filled = fill.enable;\n\tif (!filled && sw <= 0) {\n\t\treturn false;\n\t}\n\tconst values = shape.points.formatted.values;\n\tconst valuesLength = values.length;\n\tif (6 <= valuesLength) {\n\t\tlet count = 0;\n\t\tlet ppvy = values[valuesLength - 3];\n\t\tlet pvx = values[valuesLength - 2];\n\t\tlet pvy = values[valuesLength - 1];\n\t\tfor (let i = 0; i < valuesLength; i += 2) {\n\t\t\tconst vx = values[i];\n\t\t\tconst vy = values[i + 1];\n\t\t\tif ((pvy <= y && y < vy) || (y <= pvy && vy < y)) {\n\t\t\t\tconst dy = vy - pvy;\n\t\t\t\tlet t = 0;\n\t\t\t\tif (0 < Math.abs(dy)) {\n\t\t\t\t\tt = (y - pvy) / dy;\n\t\t\t\t}\n\t\t\t\tconst cx = pvx + t * (vx - pvx);\n\t\t\t\tif (x <= cx) {\n\t\t\t\t\tif (t <= 0) {\n\t\t\t\t\t\t// Since we could be just grazing vertices,\n\t\t\t\t\t\t// we need to check if the second-previous vertex is on the opposite side.\n\t\t\t\t\t\tif ((ppvy <= y && y < vy) || (y <= ppvy && vy < y)) {\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tppvy = pvy;\n\t\t\tpvx = vx;\n\t\t\tpvy = vy;\n\t\t}\n\t\tif (count % 2 === 1) {\n\t\t\tif (filled) {\n\t\t\t\tconst percent = fill.percent;\n\t\t\t\tif (1 <= percent) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tconst boundary = shape.triangulated.boundary;\n\t\t\t\tswitch (fill.direction) {\n\t\t\t\t\tcase EShapeFillDirection.TOP:\n\t\t\t\t\t\tif (y - boundary[1] <= percent * (boundary[3] - boundary[1])) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EShapeFillDirection.RIGHT:\n\t\t\t\t\t\tif ((1 - percent) * (boundary[2] - boundary[0]) <= x - boundary[0]) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EShapeFillDirection.BOTTOM:\n\t\t\t\t\t\tif ((1 - percent) * (boundary[3] - boundary[1]) <= y - boundary[1]) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EShapeFillDirection.LEFT:\n\t\t\t\t\t\tif (x - boundary[0] <= percent * (boundary[2] - boundary[0])) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst sd = calcPolygonSquaredDistance(values, valuesLength, x, y);\n\t\t\tconst s = sw * ss;\n\t\t\treturn sd <= s * s;\n\t\t}\n\t}\n\treturn false;\n};\n"]}
|