feat: Add support for rounded corners in diamond (#4369)

This commit is contained in:
Jai Kumar Dewani 2021-12-05 21:26:19 +05:30 committed by GitHub
parent 618f204ddd
commit 4ea73d5d5b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 43 additions and 10 deletions

View File

@ -400,6 +400,35 @@ const generateElementShape = (
case "diamond": {
const [topX, topY, rightX, rightY, bottomX, bottomY, leftX, leftY] =
getDiamondPoints(element);
if (element.strokeSharpness === "round") {
shape = generator.path(
`M ${topX + (rightX - topX) * 0.25} ${
topY + (rightY - topY) * 0.25
} L ${rightX - (rightX - topX) * 0.25} ${
rightY - (rightY - topY) * 0.25
}
C ${rightX} ${rightY}, ${rightX} ${rightY}, ${
rightX - (rightX - bottomX) * 0.25
} ${rightY + (bottomY - rightY) * 0.25}
L ${bottomX + (rightX - bottomX) * 0.25} ${
bottomY - (bottomY - rightY) * 0.25
}
C ${bottomX} ${bottomY}, ${bottomX} ${bottomY}, ${
bottomX - (bottomX - leftX) * 0.25
} ${bottomY - (bottomY - leftY) * 0.25}
L ${leftX + (bottomX - leftX) * 0.25} ${
leftY + (bottomY - leftY) * 0.25
}
C ${leftX} ${leftY}, ${leftX} ${leftY}, ${
leftX + (topX - leftX) * 0.25
} ${leftY - (leftY - topY) * 0.25}
L ${topX - (topX - leftX) * 0.25} ${topY + (leftY - topY) * 0.25}
C ${topX} ${topY}, ${topX} ${topY}, ${
topX + (rightX - topX) * 0.25
} ${topY + (rightY - topY) * 0.25}`,
generateRoughOptions(element, true),
);
} else {
shape = generator.polygon(
[
[topX, topY],
@ -409,6 +438,7 @@ const generateElementShape = (
],
generateRoughOptions(element),
);
}
break;
}
case "ellipse":

View File

@ -29,7 +29,10 @@ export const hasStrokeStyle = (type: string) =>
type === "line";
export const canChangeSharpness = (type: string) =>
type === "rectangle" || type === "arrow" || type === "line";
type === "rectangle" ||
type === "arrow" ||
type === "line" ||
type === "diamond";
export const hasText = (type: string) => type === "text";