Fix rotation binding for triangles
This commit is contained in:
parent
c5124b160e
commit
eb234330dd
2 changed files with 3 additions and 2 deletions
|
@ -480,7 +480,7 @@ export class ArrowUtil extends TDShapeUtil<T, E> {
|
||||||
handlePoint = Vec.sub(hits[0], shape.point)
|
handlePoint = Vec.sub(hits[0], shape.point)
|
||||||
}
|
}
|
||||||
} else if (target.type === TDShapeType.Triangle) {
|
} else if (target.type === TDShapeType.Triangle) {
|
||||||
const points = getTrianglePoints(target, BINDING_DISTANCE).map((pt) =>
|
const points = getTrianglePoints(target, BINDING_DISTANCE, target.rotation).map((pt) =>
|
||||||
Vec.add(pt, target.point)
|
Vec.add(pt, target.point)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -267,7 +267,7 @@ export class TriangleUtil extends TDShapeUtil<T, E> {
|
||||||
/* Helpers */
|
/* Helpers */
|
||||||
/* -------------------------------------------------- */
|
/* -------------------------------------------------- */
|
||||||
|
|
||||||
export function getTrianglePoints(shape: T, offset = 0) {
|
export function getTrianglePoints(shape: T, offset = 0, rotation = 0) {
|
||||||
const {
|
const {
|
||||||
size: [w, h],
|
size: [w, h],
|
||||||
} = shape
|
} = shape
|
||||||
|
@ -279,6 +279,7 @@ export function getTrianglePoints(shape: T, offset = 0) {
|
||||||
]
|
]
|
||||||
|
|
||||||
if (offset) points = getOffsetPolygon(points, offset)
|
if (offset) points = getOffsetPolygon(points, offset)
|
||||||
|
if (rotation) points = points.map((pt) => Vec.rotWith(pt, [w / 2, h / 2], rotation))
|
||||||
|
|
||||||
return points
|
return points
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue