@wcardinal/wcardinal-ui 0.458.0-beta.3 → 0.458.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.
Files changed (32) hide show
  1. package/dist/types/wcardinal/ui/shape/variant/build-polygon.d.ts +2 -5
  2. package/dist/types/wcardinal/ui/shape/variant/e-shape-polygon-triangulated-impl.d.ts +11 -2
  3. package/dist/types/wcardinal/ui/shape/variant/e-shape-polygon-triangulated.d.ts +2 -1
  4. package/dist/types/wcardinal/ui/util/util-straight-skeleton-buffer.d.ts +9 -5
  5. package/dist/wcardinal/ui/shape/e-shape-renderer.js +2 -2
  6. package/dist/wcardinal/ui/shape/e-shape-renderer.js.map +1 -1
  7. package/dist/wcardinal/ui/shape/variant/build-polygon.js +7 -7
  8. package/dist/wcardinal/ui/shape/variant/build-polygon.js.map +1 -1
  9. package/dist/wcardinal/ui/shape/variant/builder-polygon.js +1 -1
  10. package/dist/wcardinal/ui/shape/variant/builder-polygon.js.map +1 -1
  11. package/dist/wcardinal/ui/shape/variant/e-shape-polygon-triangulated-impl.js +37 -5
  12. package/dist/wcardinal/ui/shape/variant/e-shape-polygon-triangulated-impl.js.map +1 -1
  13. package/dist/wcardinal/ui/shape/variant/e-shape-polygon-triangulated.js.map +1 -1
  14. package/dist/wcardinal/ui/util/util-straight-skeleton-buffer.js +89 -36
  15. package/dist/wcardinal/ui/util/util-straight-skeleton-buffer.js.map +1 -1
  16. package/dist/wcardinal-ui-theme-dark-en-us.js +1 -1
  17. package/dist/wcardinal-ui-theme-dark-en-us.min.js +1 -1
  18. package/dist/wcardinal-ui-theme-dark-ja-jp.js +1 -1
  19. package/dist/wcardinal-ui-theme-dark-ja-jp.min.js +1 -1
  20. package/dist/wcardinal-ui-theme-dark.js +1 -1
  21. package/dist/wcardinal-ui-theme-dark.min.js +1 -1
  22. package/dist/wcardinal-ui-theme-white-en-us.js +1 -1
  23. package/dist/wcardinal-ui-theme-white-en-us.min.js +1 -1
  24. package/dist/wcardinal-ui-theme-white-ja-jp.js +1 -1
  25. package/dist/wcardinal-ui-theme-white-ja-jp.min.js +1 -1
  26. package/dist/wcardinal-ui-theme-white.js +1 -1
  27. package/dist/wcardinal-ui-theme-white.min.js +1 -1
  28. package/dist/wcardinal-ui.cjs.js +137 -53
  29. package/dist/wcardinal-ui.js +137 -53
  30. package/dist/wcardinal-ui.min.js +2 -2
  31. package/dist/wcardinal-ui.min.js.map +1 -1
  32. package/package.json +1 -1
@@ -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 { EShapeResourceManagerDeserialization } from \"../e-shape-resource-manager-deserialization\";\nimport { EShapeResourceManagerSerialization } from \"../e-shape-resource-manager-serialization\";\nimport type { EShapePolygon } from \"./e-shape-polygon\";\nimport { EShapePolygonTriangulated } from \"./e-shape-polygon-triangulated\";\n\nexport type EShapePolygonTriangulatedExtensionSerialized = [number, number, number, number, number];\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 _clippings: number[];\n\tprotected _uvs: number[];\n\tprotected _indices: number[];\n\tprotected _nindices: number;\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._clippings = [];\n\t\tthis._uvs = [];\n\t\tthis._indices = [];\n\t\tthis._nindices = 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 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\tset(\n\t\tparentPointsId?: number,\n\t\tvertices?: number[],\n\t\tdistances?: 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// 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.values)\n\t\t\t);\n\t\t\tthis._id += 1;\n\t\t\tthis._vertices = buffer.vertices;\n\t\t\tthis._nvertices = buffer.vertices.length >> 1;\n\t\t\tthis._distances = buffer.distances;\n\t\t\tthis._clippings = buffer.clippings;\n\t\t\tthis._uvs = this.toUvs(buffer.vertices);\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[]): number[] {\n\t\tconst result: number[] = [];\n\t\tconst size = this._parent.size;\n\t\tconst ax = Math.abs(size.x);\n\t\tconst ay = Math.abs(size.y);\n\t\tconst fx = 0 < ax ? 1 / ax : 0;\n\t\tconst fy = 0 < ay ? 1 / ay : 0;\n\t\tconst verticesLength = vertices.length;\n\t\tfor (let i = 0; i < verticesLength; i += 2) {\n\t\t\tresult.push(0.5 + vertices[i] * fx, 0.5 + vertices[i + 1] * 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.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._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// Clippings\n\t\t\tconst clippingId = parsed[2];\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[3];\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[4];\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 { EShapeResourceManagerDeserialization } from \"../e-shape-resource-manager-deserialization\";\nimport { EShapeResourceManagerSerialization } from \"../e-shape-resource-manager-serialization\";\nimport type { EShapePolygon } from \"./e-shape-polygon\";\nimport { 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\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}\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\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.values)\n\t\t\t);\n\t\t\tthis._id += 1;\n\t\t\tthis._vertices = buffer.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\tthis._uvs = this.toUvs(buffer.vertices);\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[]): number[] {\n\t\tconst result: number[] = [];\n\t\tconst size = this._parent.size;\n\t\tconst ax = Math.abs(size.x);\n\t\tconst ay = Math.abs(size.y);\n\t\tconst fx = 0 < ax ? 1 / ax : 0;\n\t\tconst fy = 0 < ay ? 1 / ay : 0;\n\t\tconst verticesLength = vertices.length;\n\t\tfor (let i = 0; i < verticesLength; i += 2) {\n\t\t\tresult.push(0.5 + vertices[i] * fx, 0.5 + vertices[i + 1] * 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 +1 @@
1
- {"version":3,"file":"e-shape-polygon-triangulated.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/e-shape-polygon-triangulated.ts"],"names":[],"mappings":"","sourcesContent":["import { EShapeResourceManagerDeserialization } from \"../e-shape-resource-manager-deserialization\";\nimport { EShapeResourceManagerSerialization } from \"../e-shape-resource-manager-serialization\";\n\nexport interface EShapePolygonTriangulated {\n\tget id(): number;\n\tget vertices(): number[];\n\tget nvertices(): number;\n\tget distances(): number[];\n\tget clippings(): number[];\n\tget uvs(): number[];\n\tget indices(): number[];\n\tget nindices(): number;\n\n\tset(\n\t\tparentId?: number,\n\t\tvertices?: number[],\n\t\tdistances?: number[],\n\t\tclippings?: number[],\n\t\tuvs?: number[],\n\t\tindices?: number[]\n\t): this;\n\tcopy(source: EShapePolygonTriangulated): this;\n\tserialize(manager: EShapeResourceManagerSerialization): number;\n\tdeserialize(resourceId: number, manager: EShapeResourceManagerDeserialization): void;\n}\n"]}
1
+ {"version":3,"file":"e-shape-polygon-triangulated.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/e-shape-polygon-triangulated.ts"],"names":[],"mappings":"","sourcesContent":["import { EShapeResourceManagerDeserialization } from \"../e-shape-resource-manager-deserialization\";\nimport { EShapeResourceManagerSerialization } from \"../e-shape-resource-manager-serialization\";\n\nexport interface EShapePolygonTriangulated {\n\tget id(): number;\n\tget vertices(): number[];\n\tget nvertices(): number;\n\tget distances(): number[];\n\tget lengths(): number[];\n\tget clippings(): number[];\n\tget uvs(): number[];\n\tget indices(): number[];\n\tget nindices(): number;\n\n\tset(\n\t\tparentId?: 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\tcopy(source: EShapePolygonTriangulated): this;\n\tserialize(manager: EShapeResourceManagerSerialization): number;\n\tdeserialize(resourceId: number, manager: EShapeResourceManagerDeserialization): void;\n}\n"]}
@@ -3,39 +3,54 @@ var UtilStraightSkeletonBufferBuilder = /** @class */ (function () {
3
3
  function UtilStraightSkeletonBufferBuilder() {
4
4
  this._vertices = [];
5
5
  this._distances = [];
6
+ this._lengths = [];
6
7
  this._clippings = [];
7
8
  this._indices = [];
8
- this._wavefrontToIndexToIv = new Map();
9
+ this._ivs = new Map();
9
10
  }
10
- UtilStraightSkeletonBufferBuilder.prototype.addVertex = function (wavefront, index) {
11
- var indexToIv = this._wavefrontToIndexToIv.get(wavefront);
12
- if (indexToIv == null) {
13
- indexToIv = new Map();
14
- var vertices = this._vertices;
15
- var result = vertices.length >> 1;
16
- indexToIv.set(index, result);
17
- this._wavefrontToIndexToIv.set(wavefront, indexToIv);
18
- var points = wavefront.points;
19
- vertices.push(points[index], points[index + 1]);
20
- var distance = wavefront.distance;
21
- this._distances.push(distance);
22
- return result;
11
+ UtilStraightSkeletonBufferBuilder.prototype.addVertex = function (wavefront, index, length) {
12
+ var indexToLengthToIv = this._ivs.get(wavefront);
13
+ if (indexToLengthToIv == null) {
14
+ var iv = this.addVertexAt(wavefront, index, length);
15
+ var newLengthToIv = new Map();
16
+ newLengthToIv.set(length, iv);
17
+ var newIndexToLengthToIv = new Map();
18
+ newIndexToLengthToIv.set(index, newLengthToIv);
19
+ this._ivs.set(wavefront, newIndexToLengthToIv);
20
+ return iv;
23
21
  }
24
22
  else {
25
- var result = indexToIv.get(index);
26
- if (result != null) {
27
- return result;
23
+ var lengthToIv = indexToLengthToIv.get(index);
24
+ if (lengthToIv == null) {
25
+ var iv = this.addVertexAt(wavefront, index, length);
26
+ var newLengthToIv = new Map();
27
+ newLengthToIv.set(length, iv);
28
+ indexToLengthToIv.set(index, newLengthToIv);
29
+ return iv;
30
+ }
31
+ else {
32
+ var iv = lengthToIv.get(length);
33
+ if (iv == null) {
34
+ var newIv = this.addVertexAt(wavefront, index, length);
35
+ lengthToIv.set(length, newIv);
36
+ return newIv;
37
+ }
38
+ else {
39
+ return iv;
40
+ }
28
41
  }
29
- var vertices = this._vertices;
30
- result = vertices.length >> 1;
31
- indexToIv.set(index, result);
32
- var points = wavefront.points;
33
- vertices.push(points[index], points[index + 1]);
34
- var distance = wavefront.distance;
35
- this._distances.push(distance);
36
- return result;
37
42
  }
38
43
  };
44
+ UtilStraightSkeletonBufferBuilder.prototype.addVertexAt = function (wavefront, index, length) {
45
+ var vertices = this._vertices;
46
+ var result = vertices.length >> 1;
47
+ var points = wavefront.points;
48
+ vertices.push(points[index], points[index + 1]);
49
+ var distance = wavefront.distance;
50
+ this._distances.push(distance);
51
+ this._lengths.push(length);
52
+ return result;
53
+ };
39
54
  UtilStraightSkeletonBufferBuilder.prototype.addWavefront = function (wavefront) {
40
55
  if (wavefront.parent != null) {
41
56
  return;
@@ -46,8 +61,32 @@ var UtilStraightSkeletonBufferBuilder = /** @class */ (function () {
46
61
  var p = wavefront.points;
47
62
  var pl = p.length;
48
63
  if (4 < pl) {
49
- for (var i = 0; i < pl; i += 2) {
50
- this.addEdge(wavefront, i, (i + 2) % pl);
64
+ var n = wavefront.normals;
65
+ var la = 0;
66
+ for (var ia = 0; ia < pl; ia += 2) {
67
+ var ib = (ia + 2) % pl;
68
+ var xa = p[ia];
69
+ var ya = p[ia + 1];
70
+ var xb = p[ib];
71
+ var yb = p[ib + 1];
72
+ var dx = xb - xa;
73
+ var dy = yb - ya;
74
+ var dd = dx * dx + dy * dy;
75
+ var nx = n[ia];
76
+ var ny = n[ia + 1];
77
+ var mx = ny;
78
+ var my = -nx;
79
+ var l = dx * mx + dy * my;
80
+ var lb = la + l;
81
+ var fx = 0;
82
+ var fy = 0;
83
+ if (0 < dd) {
84
+ var f = 1 / dd;
85
+ fx = dx * f;
86
+ fy = dy * f;
87
+ }
88
+ this.addEdge(wavefront, ia, ib, la, lb, xa, ya, fx, fy);
89
+ la = lb;
51
90
  }
52
91
  }
53
92
  // Make clippings and adjust distances
@@ -64,7 +103,7 @@ var UtilStraightSkeletonBufferBuilder = /** @class */ (function () {
64
103
  var fdistance = 1 / mdistance;
65
104
  for (var i = oldDistancesLength; i < newDistancesLength; ++i) {
66
105
  clippings.push(1 - distances[i] * fdistance);
67
- distances[i] = mdistance;
106
+ distances[i] = fdistance;
68
107
  }
69
108
  }
70
109
  else {
@@ -81,11 +120,18 @@ var UtilStraightSkeletonBufferBuilder = /** @class */ (function () {
81
120
  }
82
121
  return this;
83
122
  };
84
- UtilStraightSkeletonBufferBuilder.prototype.addEdge = function (wavefront, ia, ib) {
123
+ UtilStraightSkeletonBufferBuilder.prototype.calcLength = function (wavefront, i, la, lb, xa, ya, fx, fy) {
124
+ var points = wavefront.points;
125
+ var t = (points[i] - xa) * fx + (points[i + 1] - ya) * fy;
126
+ return (1 - t) * la + t * lb;
127
+ };
128
+ UtilStraightSkeletonBufferBuilder.prototype.addEdge = function (wavefront, ia, ib, la, lb, xa, ya, fx, fy) {
85
129
  var awavefronts = [];
86
130
  var bwavefronts = [wavefront, wavefront];
87
131
  var aindices = [];
88
132
  var bindices = [ia, ib];
133
+ var alengths = [];
134
+ var blengths = [la, lb];
89
135
  var work = [0, 0, 0];
90
136
  while (true) {
91
137
  var next = this.findEdgeNext(wavefront, ia, ib, work);
@@ -101,6 +147,7 @@ var UtilStraightSkeletonBufferBuilder = /** @class */ (function () {
101
147
  0 <= wavefront.bridges[ib]) {
102
148
  bwavefronts.push(wavefront);
103
149
  bindices.push(ib);
150
+ blengths.push(this.calcLength(wavefront, ib, la, lb, xa, ya, fx, fy));
104
151
  }
105
152
  break;
106
153
  }
@@ -110,21 +157,26 @@ var UtilStraightSkeletonBufferBuilder = /** @class */ (function () {
110
157
  0 <= wavefront.bridges[ia]) {
111
158
  awavefronts.push(wavefront);
112
159
  aindices.push(ia);
160
+ alengths.push(this.calcLength(wavefront, ia, la, lb, xa, ya, fx, fy));
113
161
  }
114
162
  if (wavefront.children.length <= 0 ||
115
163
  2 <= wavefront.mappings[ib].length ||
116
164
  0 <= wavefront.bridges[ib]) {
117
165
  bwavefronts.push(wavefront);
118
166
  bindices.push(ib);
167
+ blengths.push(this.calcLength(wavefront, ib, la, lb, xa, ya, fx, fy));
119
168
  }
120
169
  }
121
170
  }
171
+ // Merge awavefronts / aindices into bwavefronts / bindices
122
172
  var awavefrontsLength = awavefronts.length;
123
173
  for (var i = awavefrontsLength - 1; 0 <= i; --i) {
124
174
  bwavefronts.push(awavefronts[i]);
125
175
  bindices.push(aindices[i]);
176
+ blengths.push(alengths[i]);
126
177
  }
127
- this.triangulate(bwavefronts, bindices);
178
+ // Triangulate
179
+ this.triangulate(bwavefronts, bindices, blengths);
128
180
  };
129
181
  UtilStraightSkeletonBufferBuilder.prototype.findEdgeNext = function (wavefront, ia, ib, result) {
130
182
  var rmappings = wavefront.rmappings;
@@ -150,10 +202,10 @@ var UtilStraightSkeletonBufferBuilder = /** @class */ (function () {
150
202
  }
151
203
  return result;
152
204
  };
153
- UtilStraightSkeletonBufferBuilder.prototype.triangulate = function (wavefronts, indices) {
205
+ UtilStraightSkeletonBufferBuilder.prototype.triangulate = function (wavefronts, indices, lengths) {
154
206
  var wavefrontsLength = wavefronts.length;
155
207
  if (wavefrontsLength === 3) {
156
- this._indices.push(this.addVertex(wavefronts[0], indices[0]), this.addVertex(wavefronts[1], indices[1]), this.addVertex(wavefronts[2], indices[2]));
208
+ this._indices.push(this.addVertex(wavefronts[0], indices[0], lengths[0]), this.addVertex(wavefronts[1], indices[1], lengths[1]), this.addVertex(wavefronts[2], indices[2], lengths[2]));
157
209
  }
158
210
  else if (3 < wavefrontsLength) {
159
211
  // Add all vertices
@@ -161,7 +213,7 @@ var UtilStraightSkeletonBufferBuilder = /** @class */ (function () {
161
213
  var vs = [];
162
214
  var vertices = this._vertices;
163
215
  for (var i = 0; i < wavefrontsLength; ++i) {
164
- var iv1 = this.addVertex(wavefronts[i], indices[i]);
216
+ var iv1 = this.addVertex(wavefronts[i], indices[i], lengths[i]);
165
217
  ivs.push(iv1);
166
218
  var iv2 = iv1 << 1;
167
219
  vs.push(vertices[iv2], vertices[iv2 + 1]);
@@ -181,16 +233,17 @@ var UtilStraightSkeletonBufferBuilder = /** @class */ (function () {
181
233
  * @returns a new {@link UtilStraightSkeletonBuffer} instance
182
234
  */
183
235
  UtilStraightSkeletonBufferBuilder.prototype.build = function () {
184
- this._wavefrontToIndexToIv.clear();
185
- return new UtilStraightSkeletonBuffer(this._vertices, this._distances, this._clippings, this._indices);
236
+ this._ivs.clear();
237
+ return new UtilStraightSkeletonBuffer(this._vertices, this._distances, this._lengths, this._clippings, this._indices);
186
238
  };
187
239
  return UtilStraightSkeletonBufferBuilder;
188
240
  }());
189
241
  export { UtilStraightSkeletonBufferBuilder };
190
242
  var UtilStraightSkeletonBuffer = /** @class */ (function () {
191
- function UtilStraightSkeletonBuffer(vertices, distances, clippings, indices) {
243
+ function UtilStraightSkeletonBuffer(vertices, distances, lengths, clippings, indices) {
192
244
  this.vertices = vertices;
193
245
  this.distances = distances;
246
+ this.lengths = lengths;
194
247
  this.clippings = clippings;
195
248
  this.indices = indices;
196
249
  }
@@ -1 +1 @@
1
- {"version":3,"file":"util-straight-skeleton-buffer.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/util-straight-skeleton-buffer.ts"],"names":[],"mappings":"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","sourcesContent":["import { utils } from \"pixi.js\";\nimport { UtilStraightSkeletonWavefront } from \"./util-straight-skeleton\";\n\nexport class UtilStraightSkeletonBufferBuilder {\n\tprotected _vertices: number[];\n\tprotected _distances: number[];\n\tprotected _clippings: number[];\n\tprotected _indices: number[];\n\tprotected _wavefrontToIndexToIv: Map<UtilStraightSkeletonWavefront, Map<number, number>>;\n\n\tconstructor() {\n\t\tthis._vertices = [];\n\t\tthis._distances = [];\n\t\tthis._clippings = [];\n\t\tthis._indices = [];\n\t\tthis._wavefrontToIndexToIv = new Map<UtilStraightSkeletonWavefront, Map<number, number>>();\n\t}\n\n\taddVertex(wavefront: UtilStraightSkeletonWavefront, index: number): number {\n\t\tlet indexToIv = this._wavefrontToIndexToIv.get(wavefront);\n\t\tif (indexToIv == null) {\n\t\t\tindexToIv = new Map<number, number>();\n\t\t\tconst vertices = this._vertices;\n\t\t\tconst result = vertices.length >> 1;\n\t\t\tindexToIv.set(index, result);\n\t\t\tthis._wavefrontToIndexToIv.set(wavefront, indexToIv);\n\t\t\tconst points = wavefront.points;\n\t\t\tvertices.push(points[index], points[index + 1]);\n\t\t\tconst distance = wavefront.distance;\n\t\t\tthis._distances.push(distance);\n\t\t\treturn result;\n\t\t} else {\n\t\t\tlet result = indexToIv.get(index);\n\t\t\tif (result != null) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\tconst vertices = this._vertices;\n\t\t\tresult = vertices.length >> 1;\n\t\t\tindexToIv.set(index, result);\n\t\t\tconst points = wavefront.points;\n\t\t\tvertices.push(points[index], points[index + 1]);\n\t\t\tconst distance = wavefront.distance;\n\t\t\tthis._distances.push(distance);\n\t\t\treturn result;\n\t\t}\n\t}\n\n\taddWavefront(wavefront: UtilStraightSkeletonWavefront): void {\n\t\tif (wavefront.parent != null) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Add all edges\n\t\tconst distances = this._distances;\n\t\tconst oldDistancesLength = distances.length;\n\t\tconst p = wavefront.points;\n\t\tconst pl = p.length;\n\t\tif (4 < pl) {\n\t\t\tfor (let i = 0; i < pl; i += 2) {\n\t\t\t\tthis.addEdge(wavefront, i, (i + 2) % pl);\n\t\t\t}\n\t\t}\n\n\t\t// Make clippings and adjust distances\n\t\tconst newDistancesLength = distances.length;\n\t\tif (newDistancesLength <= oldDistancesLength) {\n\t\t\treturn;\n\t\t}\n\t\tlet mdistance = distances[oldDistancesLength];\n\t\tfor (let i = oldDistancesLength + 1; i < newDistancesLength; ++i) {\n\t\t\tmdistance = Math.max(mdistance, distances[i]);\n\t\t}\n\t\tconst clippings = this._clippings;\n\t\tif (0 < mdistance) {\n\t\t\tconst fdistance = 1 / mdistance;\n\t\t\tfor (let i = oldDistancesLength; i < newDistancesLength; ++i) {\n\t\t\t\tclippings.push(1 - distances[i] * fdistance);\n\t\t\t\tdistances[i] = mdistance;\n\t\t\t}\n\t\t} else {\n\t\t\tfor (let i = oldDistancesLength; i < newDistancesLength; ++i) {\n\t\t\t\tclippings.push(1);\n\t\t\t\tdistances[i] = mdistance;\n\t\t\t}\n\t\t}\n\t}\n\n\taddWavefrontAll(wavefronts: UtilStraightSkeletonWavefront[]): this {\n\t\tconst wavefrontsLength = wavefronts.length;\n\t\tfor (let i = 0; i < wavefrontsLength; ++i) {\n\t\t\tthis.addWavefront(wavefronts[i]);\n\t\t}\n\t\treturn this;\n\t}\n\n\tprotected addEdge(wavefront: UtilStraightSkeletonWavefront, ia: number, ib: number): void {\n\t\tconst awavefronts: UtilStraightSkeletonWavefront[] = [];\n\t\tconst bwavefronts: UtilStraightSkeletonWavefront[] = [wavefront, wavefront];\n\t\tconst aindices: number[] = [];\n\t\tconst bindices: number[] = [ia, ib];\n\t\tconst work: [number, number, number] = [0, 0, 0];\n\t\twhile (true) {\n\t\t\tconst next = this.findEdgeNext(wavefront, ia, ib, work);\n\t\t\tif (next[0] < 0) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\twavefront = wavefront.children[next[0]];\n\t\t\tia = next[1];\n\t\t\tib = next[2];\n\t\t\tif (ia === ib) {\n\t\t\t\tif (\n\t\t\t\t\twavefront.children.length <= 0 ||\n\t\t\t\t\t2 <= wavefront.mappings[ib].length ||\n\t\t\t\t\t0 <= wavefront.bridges[ib]\n\t\t\t\t) {\n\t\t\t\t\tbwavefronts.push(wavefront);\n\t\t\t\t\tbindices.push(ib);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\twavefront.children.length <= 0 ||\n\t\t\t\t\t2 <= wavefront.mappings[ia].length ||\n\t\t\t\t\t0 <= wavefront.bridges[ia]\n\t\t\t\t) {\n\t\t\t\t\tawavefronts.push(wavefront);\n\t\t\t\t\taindices.push(ia);\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\twavefront.children.length <= 0 ||\n\t\t\t\t\t2 <= wavefront.mappings[ib].length ||\n\t\t\t\t\t0 <= wavefront.bridges[ib]\n\t\t\t\t) {\n\t\t\t\t\tbwavefronts.push(wavefront);\n\t\t\t\t\tbindices.push(ib);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst awavefrontsLength = awavefronts.length;\n\t\tfor (let i = awavefrontsLength - 1; 0 <= i; --i) {\n\t\t\tbwavefronts.push(awavefronts[i]);\n\t\t\tbindices.push(aindices[i]);\n\t\t}\n\t\tthis.triangulate(bwavefronts, bindices);\n\t}\n\n\tprotected findEdgeNext(\n\t\twavefront: UtilStraightSkeletonWavefront,\n\t\tia: number,\n\t\tib: number,\n\t\tresult: [number, number, number]\n\t): [number, number, number] {\n\t\tconst rmappings = wavefront.rmappings;\n\t\tconst ca = rmappings[ia];\n\t\tconst pa = rmappings[ia + 1];\n\t\tconst cb = rmappings[ib];\n\t\tconst pb = rmappings[ib + 1];\n\t\tresult[0] = -1;\n\t\tfor (let ica = 0; ica < ca.length; ++ica) {\n\t\t\tfor (let icb = 0; icb < cb.length; ++icb) {\n\t\t\t\tif (ca[ica] === cb[icb]) {\n\t\t\t\t\tif (result[0] < 0) {\n\t\t\t\t\t\tresult[0] = ca[ica];\n\t\t\t\t\t\tresult[1] = pa[ica];\n\t\t\t\t\t\tresult[2] = pb[icb];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult[0] = -1;\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected triangulate(wavefronts: UtilStraightSkeletonWavefront[], indices: number[]): void {\n\t\tconst wavefrontsLength = wavefronts.length;\n\t\tif (wavefrontsLength === 3) {\n\t\t\tthis._indices.push(\n\t\t\t\tthis.addVertex(wavefronts[0], indices[0]),\n\t\t\t\tthis.addVertex(wavefronts[1], indices[1]),\n\t\t\t\tthis.addVertex(wavefronts[2], indices[2])\n\t\t\t);\n\t\t} else if (3 < wavefrontsLength) {\n\t\t\t// Add all vertices\n\t\t\tconst ivs: number[] = [];\n\t\t\tconst vs: number[] = [];\n\t\t\tconst vertices = this._vertices;\n\t\t\tfor (let i = 0; i < wavefrontsLength; ++i) {\n\t\t\t\tconst iv1 = this.addVertex(wavefronts[i], indices[i]);\n\t\t\t\tivs.push(iv1);\n\t\t\t\tconst iv2 = iv1 << 1;\n\t\t\t\tvs.push(vertices[iv2], vertices[iv2 + 1]);\n\t\t\t}\n\n\t\t\t// Add all indices\n\t\t\tconst iis = utils.earcut(vs);\n\t\t\tconst iisl = iis.length;\n\t\t\tfor (let i = 0; i < iisl; i += 3) {\n\t\t\t\tthis._indices.push(ivs[iis[i]], ivs[iis[i + 1]], ivs[iis[i + 2]]);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Returns {@link UtilStraightSkeletonBuffer} instance.\n\t * Must not call any methods after calling this methods.\n\t *\n\t * @returns a new {@link UtilStraightSkeletonBuffer} instance\n\t */\n\tbuild(): UtilStraightSkeletonBuffer {\n\t\tthis._wavefrontToIndexToIv.clear();\n\t\treturn new UtilStraightSkeletonBuffer(\n\t\t\tthis._vertices,\n\t\t\tthis._distances,\n\t\t\tthis._clippings,\n\t\t\tthis._indices\n\t\t);\n\t}\n}\n\nexport class UtilStraightSkeletonBuffer {\n\tvertices: number[];\n\tdistances: number[];\n\tclippings: number[];\n\tindices: number[];\n\n\tconstructor(vertices: number[], distances: number[], clippings: number[], indices: number[]) {\n\t\tthis.vertices = vertices;\n\t\tthis.distances = distances;\n\t\tthis.clippings = clippings;\n\t\tthis.indices = indices;\n\t}\n\n\tpublic static from(wavefronts: UtilStraightSkeletonWavefront[]): UtilStraightSkeletonBuffer {\n\t\treturn new UtilStraightSkeletonBufferBuilder().addWavefrontAll(wavefronts).build();\n\t}\n}\n"]}
1
+ {"version":3,"file":"util-straight-skeleton-buffer.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/util-straight-skeleton-buffer.ts"],"names":[],"mappings":"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","sourcesContent":["import { utils } from \"pixi.js\";\nimport { UtilStraightSkeletonWavefront } from \"./util-straight-skeleton\";\n\nexport class UtilStraightSkeletonBufferBuilder {\n\tprotected _vertices: number[];\n\tprotected _distances: number[];\n\tprotected _lengths: number[];\n\tprotected _clippings: number[];\n\tprotected _indices: number[];\n\tprotected _ivs: Map<UtilStraightSkeletonWavefront, Map<number, Map<number, number>>>;\n\n\tconstructor() {\n\t\tthis._vertices = [];\n\t\tthis._distances = [];\n\t\tthis._lengths = [];\n\t\tthis._clippings = [];\n\t\tthis._indices = [];\n\t\tthis._ivs = new Map();\n\t}\n\n\taddVertex(wavefront: UtilStraightSkeletonWavefront, index: number, length: number): number {\n\t\tconst indexToLengthToIv = this._ivs.get(wavefront);\n\t\tif (indexToLengthToIv == null) {\n\t\t\tconst iv = this.addVertexAt(wavefront, index, length);\n\t\t\tconst newLengthToIv = new Map<number, number>();\n\t\t\tnewLengthToIv.set(length, iv);\n\t\t\tconst newIndexToLengthToIv = new Map<number, Map<number, number>>();\n\t\t\tnewIndexToLengthToIv.set(index, newLengthToIv);\n\t\t\tthis._ivs.set(wavefront, newIndexToLengthToIv);\n\t\t\treturn iv;\n\t\t} else {\n\t\t\tconst lengthToIv = indexToLengthToIv.get(index);\n\t\t\tif (lengthToIv == null) {\n\t\t\t\tconst iv = this.addVertexAt(wavefront, index, length);\n\t\t\t\tconst newLengthToIv = new Map<number, number>();\n\t\t\t\tnewLengthToIv.set(length, iv);\n\t\t\t\tindexToLengthToIv.set(index, newLengthToIv);\n\t\t\t\treturn iv;\n\t\t\t} else {\n\t\t\t\tconst iv = lengthToIv.get(length);\n\t\t\t\tif (iv == null) {\n\t\t\t\t\tconst newIv = this.addVertexAt(wavefront, index, length);\n\t\t\t\t\tlengthToIv.set(length, newIv);\n\t\t\t\t\treturn newIv;\n\t\t\t\t} else {\n\t\t\t\t\treturn iv;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\taddVertexAt(wavefront: UtilStraightSkeletonWavefront, index: number, length: number): number {\n\t\tconst vertices = this._vertices;\n\t\tconst result = vertices.length >> 1;\n\t\tconst points = wavefront.points;\n\t\tvertices.push(points[index], points[index + 1]);\n\t\tconst distance = wavefront.distance;\n\t\tthis._distances.push(distance);\n\t\tthis._lengths.push(length);\n\t\treturn result;\n\t}\n\n\taddWavefront(wavefront: UtilStraightSkeletonWavefront): void {\n\t\tif (wavefront.parent != null) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Add all edges\n\t\tconst distances = this._distances;\n\t\tconst oldDistancesLength = distances.length;\n\t\tconst p = wavefront.points;\n\t\tconst pl = p.length;\n\t\tif (4 < pl) {\n\t\t\tconst n = wavefront.normals;\n\t\t\tlet la = 0;\n\t\t\tfor (let ia = 0; ia < pl; ia += 2) {\n\t\t\t\tconst ib = (ia + 2) % pl;\n\t\t\t\tconst xa = p[ia];\n\t\t\t\tconst ya = p[ia + 1];\n\t\t\t\tconst xb = p[ib];\n\t\t\t\tconst yb = p[ib + 1];\n\t\t\t\tconst dx = xb - xa;\n\t\t\t\tconst dy = yb - ya;\n\t\t\t\tconst dd = dx * dx + dy * dy;\n\t\t\t\tconst nx = n[ia];\n\t\t\t\tconst ny = n[ia + 1];\n\t\t\t\tconst mx = ny;\n\t\t\t\tconst my = -nx;\n\t\t\t\tconst l = dx * mx + dy * my;\n\t\t\t\tconst lb = la + l;\n\t\t\t\tlet fx = 0;\n\t\t\t\tlet fy = 0;\n\t\t\t\tif (0 < dd) {\n\t\t\t\t\tconst f = 1 / dd;\n\t\t\t\t\tfx = dx * f;\n\t\t\t\t\tfy = dy * f;\n\t\t\t\t}\n\t\t\t\tthis.addEdge(wavefront, ia, ib, la, lb, xa, ya, fx, fy);\n\t\t\t\tla = lb;\n\t\t\t}\n\t\t}\n\n\t\t// Make clippings and adjust distances\n\t\tconst newDistancesLength = distances.length;\n\t\tif (newDistancesLength <= oldDistancesLength) {\n\t\t\treturn;\n\t\t}\n\t\tlet mdistance = distances[oldDistancesLength];\n\t\tfor (let i = oldDistancesLength + 1; i < newDistancesLength; ++i) {\n\t\t\tmdistance = Math.max(mdistance, distances[i]);\n\t\t}\n\t\tconst clippings = this._clippings;\n\t\tif (0 < mdistance) {\n\t\t\tconst fdistance = 1 / mdistance;\n\t\t\tfor (let i = oldDistancesLength; i < newDistancesLength; ++i) {\n\t\t\t\tclippings.push(1 - distances[i] * fdistance);\n\t\t\t\tdistances[i] = fdistance;\n\t\t\t}\n\t\t} else {\n\t\t\tfor (let i = oldDistancesLength; i < newDistancesLength; ++i) {\n\t\t\t\tclippings.push(1);\n\t\t\t\tdistances[i] = mdistance;\n\t\t\t}\n\t\t}\n\t}\n\n\taddWavefrontAll(wavefronts: UtilStraightSkeletonWavefront[]): this {\n\t\tconst wavefrontsLength = wavefronts.length;\n\t\tfor (let i = 0; i < wavefrontsLength; ++i) {\n\t\t\tthis.addWavefront(wavefronts[i]);\n\t\t}\n\t\treturn this;\n\t}\n\n\tprotected calcLength(\n\t\twavefront: UtilStraightSkeletonWavefront,\n\t\ti: number,\n\t\tla: number,\n\t\tlb: number,\n\t\txa: number,\n\t\tya: number,\n\t\tfx: number,\n\t\tfy: number\n\t): number {\n\t\tconst points = wavefront.points;\n\t\tconst t = (points[i] - xa) * fx + (points[i + 1] - ya) * fy;\n\t\treturn (1 - t) * la + t * lb;\n\t}\n\n\tprotected addEdge(\n\t\twavefront: UtilStraightSkeletonWavefront,\n\t\tia: number,\n\t\tib: number,\n\t\tla: number,\n\t\tlb: number,\n\t\txa: number,\n\t\tya: number,\n\t\tfx: number,\n\t\tfy: number\n\t): void {\n\t\tconst awavefronts: UtilStraightSkeletonWavefront[] = [];\n\t\tconst bwavefronts: UtilStraightSkeletonWavefront[] = [wavefront, wavefront];\n\t\tconst aindices: number[] = [];\n\t\tconst bindices: number[] = [ia, ib];\n\t\tconst alengths: number[] = [];\n\t\tconst blengths: number[] = [la, lb];\n\t\tconst work: [number, number, number] = [0, 0, 0];\n\t\twhile (true) {\n\t\t\tconst next = this.findEdgeNext(wavefront, ia, ib, work);\n\t\t\tif (next[0] < 0) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\twavefront = wavefront.children[next[0]];\n\t\t\tia = next[1];\n\t\t\tib = next[2];\n\t\t\tif (ia === ib) {\n\t\t\t\tif (\n\t\t\t\t\twavefront.children.length <= 0 ||\n\t\t\t\t\t2 <= wavefront.mappings[ib].length ||\n\t\t\t\t\t0 <= wavefront.bridges[ib]\n\t\t\t\t) {\n\t\t\t\t\tbwavefronts.push(wavefront);\n\t\t\t\t\tbindices.push(ib);\n\t\t\t\t\tblengths.push(this.calcLength(wavefront, ib, la, lb, xa, ya, fx, fy));\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\twavefront.children.length <= 0 ||\n\t\t\t\t\t2 <= wavefront.mappings[ia].length ||\n\t\t\t\t\t0 <= wavefront.bridges[ia]\n\t\t\t\t) {\n\t\t\t\t\tawavefronts.push(wavefront);\n\t\t\t\t\taindices.push(ia);\n\t\t\t\t\talengths.push(this.calcLength(wavefront, ia, la, lb, xa, ya, fx, fy));\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\twavefront.children.length <= 0 ||\n\t\t\t\t\t2 <= wavefront.mappings[ib].length ||\n\t\t\t\t\t0 <= wavefront.bridges[ib]\n\t\t\t\t) {\n\t\t\t\t\tbwavefronts.push(wavefront);\n\t\t\t\t\tbindices.push(ib);\n\t\t\t\t\tblengths.push(this.calcLength(wavefront, ib, la, lb, xa, ya, fx, fy));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Merge awavefronts / aindices into bwavefronts / bindices\n\t\tconst awavefrontsLength = awavefronts.length;\n\t\tfor (let i = awavefrontsLength - 1; 0 <= i; --i) {\n\t\t\tbwavefronts.push(awavefronts[i]);\n\t\t\tbindices.push(aindices[i]);\n\t\t\tblengths.push(alengths[i]);\n\t\t}\n\n\t\t// Triangulate\n\t\tthis.triangulate(bwavefronts, bindices, blengths);\n\t}\n\n\tprotected findEdgeNext(\n\t\twavefront: UtilStraightSkeletonWavefront,\n\t\tia: number,\n\t\tib: number,\n\t\tresult: [number, number, number]\n\t): [number, number, number] {\n\t\tconst rmappings = wavefront.rmappings;\n\t\tconst ca = rmappings[ia];\n\t\tconst pa = rmappings[ia + 1];\n\t\tconst cb = rmappings[ib];\n\t\tconst pb = rmappings[ib + 1];\n\t\tresult[0] = -1;\n\t\tfor (let ica = 0; ica < ca.length; ++ica) {\n\t\t\tfor (let icb = 0; icb < cb.length; ++icb) {\n\t\t\t\tif (ca[ica] === cb[icb]) {\n\t\t\t\t\tif (result[0] < 0) {\n\t\t\t\t\t\tresult[0] = ca[ica];\n\t\t\t\t\t\tresult[1] = pa[ica];\n\t\t\t\t\t\tresult[2] = pb[icb];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult[0] = -1;\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected triangulate(\n\t\twavefronts: UtilStraightSkeletonWavefront[],\n\t\tindices: number[],\n\t\tlengths: number[]\n\t): void {\n\t\tconst wavefrontsLength = wavefronts.length;\n\t\tif (wavefrontsLength === 3) {\n\t\t\tthis._indices.push(\n\t\t\t\tthis.addVertex(wavefronts[0], indices[0], lengths[0]),\n\t\t\t\tthis.addVertex(wavefronts[1], indices[1], lengths[1]),\n\t\t\t\tthis.addVertex(wavefronts[2], indices[2], lengths[2])\n\t\t\t);\n\t\t} else if (3 < wavefrontsLength) {\n\t\t\t// Add all vertices\n\t\t\tconst ivs: number[] = [];\n\t\t\tconst vs: number[] = [];\n\t\t\tconst vertices = this._vertices;\n\t\t\tfor (let i = 0; i < wavefrontsLength; ++i) {\n\t\t\t\tconst iv1 = this.addVertex(wavefronts[i], indices[i], lengths[i]);\n\t\t\t\tivs.push(iv1);\n\t\t\t\tconst iv2 = iv1 << 1;\n\t\t\t\tvs.push(vertices[iv2], vertices[iv2 + 1]);\n\t\t\t}\n\n\t\t\t// Add all indices\n\t\t\tconst iis = utils.earcut(vs);\n\t\t\tconst iisl = iis.length;\n\t\t\tfor (let i = 0; i < iisl; i += 3) {\n\t\t\t\tthis._indices.push(ivs[iis[i]], ivs[iis[i + 1]], ivs[iis[i + 2]]);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Returns {@link UtilStraightSkeletonBuffer} instance.\n\t * Must not call any methods after calling this methods.\n\t *\n\t * @returns a new {@link UtilStraightSkeletonBuffer} instance\n\t */\n\tbuild(): UtilStraightSkeletonBuffer {\n\t\tthis._ivs.clear();\n\t\treturn new UtilStraightSkeletonBuffer(\n\t\t\tthis._vertices,\n\t\t\tthis._distances,\n\t\t\tthis._lengths,\n\t\t\tthis._clippings,\n\t\t\tthis._indices\n\t\t);\n\t}\n}\n\nexport class UtilStraightSkeletonBuffer {\n\tvertices: number[];\n\tdistances: number[];\n\tlengths: number[];\n\tclippings: number[];\n\tindices: number[];\n\n\tconstructor(\n\t\tvertices: number[],\n\t\tdistances: number[],\n\t\tlengths: number[],\n\t\tclippings: number[],\n\t\tindices: number[]\n\t) {\n\t\tthis.vertices = vertices;\n\t\tthis.distances = distances;\n\t\tthis.lengths = lengths;\n\t\tthis.clippings = clippings;\n\t\tthis.indices = indices;\n\t}\n\n\tpublic static from(wavefronts: UtilStraightSkeletonWavefront[]): UtilStraightSkeletonBuffer {\n\t\treturn new UtilStraightSkeletonBufferBuilder().addWavefrontAll(wavefronts).build();\n\t}\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.458.0-beta.3
2
+ Winter Cardinal UI v0.458.0-beta.4
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.458.0-beta.3
2
+ Winter Cardinal UI v0.458.0-beta.4
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.458.0-beta.3
2
+ Winter Cardinal UI v0.458.0-beta.4
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.458.0-beta.3
2
+ Winter Cardinal UI v0.458.0-beta.4
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.458.0-beta.3
2
+ Winter Cardinal UI v0.458.0-beta.4
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.458.0-beta.3
2
+ Winter Cardinal UI v0.458.0-beta.4
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.458.0-beta.3
2
+ Winter Cardinal UI v0.458.0-beta.4
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.458.0-beta.3
2
+ Winter Cardinal UI v0.458.0-beta.4
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.458.0-beta.3
2
+ Winter Cardinal UI v0.458.0-beta.4
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.458.0-beta.3
2
+ Winter Cardinal UI v0.458.0-beta.4
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.458.0-beta.3
2
+ Winter Cardinal UI v0.458.0-beta.4
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.458.0-beta.3
2
+ Winter Cardinal UI v0.458.0-beta.4
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5