From 8f117fcb7341850fd4c0af89099218978b013595 Mon Sep 17 00:00:00 2001 From: bubkoo Date: Mon, 13 Jul 2020 21:48:37 +0800 Subject: [PATCH] fix: port angle --- packages/x6/src/registry/port-layout/absolute.ts | 5 +++-- packages/x6/src/registry/port-layout/ellipse.ts | 1 + packages/x6/src/registry/port-layout/index.ts | 2 ++ packages/x6/src/registry/port-layout/line.ts | 4 ++-- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/x6/src/registry/port-layout/absolute.ts b/packages/x6/src/registry/port-layout/absolute.ts index df88b821bb0..00decc7f385 100644 --- a/packages/x6/src/registry/port-layout/absolute.ts +++ b/packages/x6/src/registry/port-layout/absolute.ts @@ -4,13 +4,14 @@ import { normalizePoint, toResult } from './util' export interface AbsoluteArgs { x?: string | number y?: string | number + angle?: number } export const absolute: PortLayout.Definition = ( portsPositionArgs, elemBBox, ) => { - return portsPositionArgs.map((item) => - toResult(normalizePoint(elemBBox, item)), + return portsPositionArgs.map(({ x, y, angle }) => + toResult(normalizePoint(elemBBox, { x, y }), angle || 0), ) } diff --git a/packages/x6/src/registry/port-layout/ellipse.ts b/packages/x6/src/registry/port-layout/ellipse.ts index eab3cbf2494..fcce74b8da7 100644 --- a/packages/x6/src/registry/port-layout/ellipse.ts +++ b/packages/x6/src/registry/port-layout/ellipse.ts @@ -58,6 +58,7 @@ function ellipseLayout( const p = start.clone().rotate(-angle, center).scale(ratio, 1, center) const theta = item.compensateRotate ? -ellipse.tangentTheta(p) : 0 + if (item.dx || item.dy) { p.translate(item.dx || 0, item.dy || 0) } diff --git a/packages/x6/src/registry/port-layout/index.ts b/packages/x6/src/registry/port-layout/index.ts index eef4f0e7be4..76c2ba4f8c6 100644 --- a/packages/x6/src/registry/port-layout/index.ts +++ b/packages/x6/src/registry/port-layout/index.ts @@ -19,6 +19,8 @@ export namespace PortLayout { } export interface CommonArgs { + x?: number + y?: number dx?: number dy?: number } diff --git a/packages/x6/src/registry/port-layout/line.ts b/packages/x6/src/registry/port-layout/line.ts index 6e237a91cae..ce7586cfee0 100644 --- a/packages/x6/src/registry/port-layout/line.ts +++ b/packages/x6/src/registry/port-layout/line.ts @@ -5,8 +5,8 @@ import { PortLayout } from './index' export interface SideArgs extends PortLayout.CommonArgs {} export interface LineArgs extends SideArgs { - start?: Point | Point.PointLike - end?: Point | Point.PointLike + start?: Point.PointLike + end?: Point.PointLike } export const line: PortLayout.Definition = (