@retikz/core 0.2.0-alpha.4 → 0.2.0-alpha.6
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/es/compile/anchor-cache.d.ts +10 -0
- package/dist/es/compile/anchor-cache.d.ts.map +1 -1
- package/dist/es/compile/anchor-cache.js +25 -1
- package/dist/es/compile/index.d.ts +0 -1
- package/dist/es/compile/index.d.ts.map +1 -1
- package/dist/es/compile/path/anchor.d.ts.map +1 -1
- package/dist/es/compile/path/anchor.js +17 -18
- package/dist/es/compile/path/index.d.ts.map +1 -1
- package/dist/es/compile/path/index.js +98 -13
- package/dist/es/compile/path/relative.d.ts.map +1 -1
- package/dist/es/compile/path/relative.js +5 -1
- package/dist/es/geometry/_edge.d.ts +29 -0
- package/dist/es/geometry/_edge.d.ts.map +1 -0
- package/dist/es/geometry/_edge.js +35 -0
- package/dist/es/geometry/arc.d.ts +11 -0
- package/dist/es/geometry/arc.d.ts.map +1 -1
- package/dist/es/geometry/arc.js +27 -1
- package/dist/es/geometry/circle.d.ts +3 -0
- package/dist/es/geometry/circle.d.ts.map +1 -1
- package/dist/es/geometry/circle.js +7 -0
- package/dist/es/geometry/diamond.d.ts +3 -0
- package/dist/es/geometry/diamond.d.ts.map +1 -1
- package/dist/es/geometry/diamond.js +29 -0
- package/dist/es/geometry/ellipse.d.ts +3 -0
- package/dist/es/geometry/ellipse.d.ts.map +1 -1
- package/dist/es/geometry/ellipse.js +7 -0
- package/dist/es/geometry/rect.d.ts +26 -0
- package/dist/es/geometry/rect.d.ts.map +1 -1
- package/dist/es/geometry/rect.js +90 -1
- package/dist/es/geometry/segment.d.ts +2 -0
- package/dist/es/geometry/segment.d.ts.map +1 -1
- package/dist/es/geometry/segment.js +12 -1
- package/dist/es/index.d.ts +3 -3
- package/dist/es/index.d.ts.map +1 -1
- package/dist/es/index.js +6 -5
- package/dist/es/ir/coordinate.d.ts +2 -2
- package/dist/es/ir/node.d.ts +4 -4
- package/dist/es/ir/path/path.d.ts +828 -111
- package/dist/es/ir/path/path.d.ts.map +1 -1
- package/dist/es/ir/path/step.d.ts +1209 -168
- package/dist/es/ir/path/step.d.ts.map +1 -1
- package/dist/es/ir/path/step.js +36 -11
- package/dist/es/ir/path/target.d.ts +71 -1
- package/dist/es/ir/path/target.d.ts.map +1 -1
- package/dist/es/ir/path/target.js +24 -3
- package/dist/es/ir/scope.d.ts +1228 -190
- package/dist/es/ir/scope.d.ts.map +1 -1
- package/dist/es/parsers/index.d.ts +1 -0
- package/dist/es/parsers/index.d.ts.map +1 -1
- package/dist/es/parsers/parseNodeTarget.d.ts +4 -0
- package/dist/es/parsers/parseNodeTarget.d.ts.map +1 -0
- package/dist/es/parsers/parseNodeTarget.js +33 -0
- package/dist/es/parsers/parseTargetSugar.d.ts +4 -2
- package/dist/es/parsers/parseTargetSugar.d.ts.map +1 -1
- package/dist/es/parsers/parseTargetSugar.js +6 -3
- package/dist/es/parsers/parseWay.d.ts +1 -1
- package/dist/es/parsers/parseWay.d.ts.map +1 -1
- package/dist/es/shapes/circle.d.ts.map +1 -1
- package/dist/es/shapes/circle.js +1 -0
- package/dist/es/shapes/diamond.d.ts.map +1 -1
- package/dist/es/shapes/diamond.js +1 -0
- package/dist/es/shapes/ellipse.d.ts.map +1 -1
- package/dist/es/shapes/ellipse.js +1 -0
- package/dist/es/shapes/rectangle.d.ts.map +1 -1
- package/dist/es/shapes/rectangle.js +1 -0
- package/dist/es/shapes/types.d.ts +6 -0
- package/dist/es/shapes/types.d.ts.map +1 -1
- package/dist/lib/compile/anchor-cache.cjs +25 -0
- package/dist/lib/compile/anchor-cache.d.ts +10 -0
- package/dist/lib/compile/anchor-cache.d.ts.map +1 -1
- package/dist/lib/compile/index.d.ts +0 -1
- package/dist/lib/compile/index.d.ts.map +1 -1
- package/dist/lib/compile/path/anchor.cjs +16 -17
- package/dist/lib/compile/path/anchor.d.ts.map +1 -1
- package/dist/lib/compile/path/index.cjs +96 -11
- package/dist/lib/compile/path/index.d.ts.map +1 -1
- package/dist/lib/compile/path/relative.cjs +5 -1
- package/dist/lib/compile/path/relative.d.ts.map +1 -1
- package/dist/lib/geometry/_edge.cjs +38 -0
- package/dist/lib/geometry/_edge.d.ts +29 -0
- package/dist/lib/geometry/_edge.d.ts.map +1 -0
- package/dist/lib/geometry/arc.cjs +28 -0
- package/dist/lib/geometry/arc.d.ts +11 -0
- package/dist/lib/geometry/arc.d.ts.map +1 -1
- package/dist/lib/geometry/circle.cjs +7 -0
- package/dist/lib/geometry/circle.d.ts +3 -0
- package/dist/lib/geometry/circle.d.ts.map +1 -1
- package/dist/lib/geometry/diamond.cjs +29 -0
- package/dist/lib/geometry/diamond.d.ts +3 -0
- package/dist/lib/geometry/diamond.d.ts.map +1 -1
- package/dist/lib/geometry/ellipse.cjs +7 -0
- package/dist/lib/geometry/ellipse.d.ts +3 -0
- package/dist/lib/geometry/ellipse.d.ts.map +1 -1
- package/dist/lib/geometry/rect.cjs +90 -0
- package/dist/lib/geometry/rect.d.ts +26 -0
- package/dist/lib/geometry/rect.d.ts.map +1 -1
- package/dist/lib/geometry/segment.cjs +12 -0
- package/dist/lib/geometry/segment.d.ts +2 -0
- package/dist/lib/geometry/segment.d.ts.map +1 -1
- package/dist/lib/index.cjs +7 -2
- package/dist/lib/index.d.ts +3 -3
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/ir/coordinate.d.ts +2 -2
- package/dist/lib/ir/node.d.ts +4 -4
- package/dist/lib/ir/path/path.d.ts +828 -111
- package/dist/lib/ir/path/path.d.ts.map +1 -1
- package/dist/lib/ir/path/step.cjs +36 -10
- package/dist/lib/ir/path/step.d.ts +1209 -168
- package/dist/lib/ir/path/step.d.ts.map +1 -1
- package/dist/lib/ir/path/target.cjs +25 -2
- package/dist/lib/ir/path/target.d.ts +71 -1
- package/dist/lib/ir/path/target.d.ts.map +1 -1
- package/dist/lib/ir/scope.d.ts +1228 -190
- package/dist/lib/ir/scope.d.ts.map +1 -1
- package/dist/lib/parsers/index.d.ts +1 -0
- package/dist/lib/parsers/index.d.ts.map +1 -1
- package/dist/lib/parsers/parseNodeTarget.cjs +33 -0
- package/dist/lib/parsers/parseNodeTarget.d.ts +4 -0
- package/dist/lib/parsers/parseNodeTarget.d.ts.map +1 -0
- package/dist/lib/parsers/parseTargetSugar.cjs +6 -3
- package/dist/lib/parsers/parseTargetSugar.d.ts +4 -2
- package/dist/lib/parsers/parseTargetSugar.d.ts.map +1 -1
- package/dist/lib/parsers/parseWay.d.ts +1 -1
- package/dist/lib/parsers/parseWay.d.ts.map +1 -1
- package/dist/lib/shapes/circle.cjs +1 -0
- package/dist/lib/shapes/circle.d.ts.map +1 -1
- package/dist/lib/shapes/diamond.cjs +1 -0
- package/dist/lib/shapes/diamond.d.ts.map +1 -1
- package/dist/lib/shapes/ellipse.cjs +1 -0
- package/dist/lib/shapes/ellipse.d.ts.map +1 -1
- package/dist/lib/shapes/rectangle.cjs +1 -0
- package/dist/lib/shapes/rectangle.d.ts.map +1 -1
- package/dist/lib/shapes/types.d.ts +6 -0
- package/dist/lib/shapes/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/es/compile/parseTarget.d.ts +0 -20
- package/dist/es/compile/parseTarget.d.ts.map +0 -1
- package/dist/es/compile/parseTarget.js +0 -36
- package/dist/lib/compile/parseTarget.cjs +0 -36
- package/dist/lib/compile/parseTarget.d.ts +0 -20
- package/dist/lib/compile/parseTarget.d.ts.map +0 -1
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Position } from './point';
|
|
2
|
+
/** 边上比例点 `{ side, t }` 的四个 side(north/south/east/west) */
|
|
3
|
+
export type Side = 'north' | 'south' | 'east' | 'west';
|
|
4
|
+
/**
|
|
5
|
+
* rect 四直边 t=0 / t=1 端点对应的角 anchor
|
|
6
|
+
* @description 方向约定单一真源:north/south = 西→东(t=0 在 west 端),east/west = 北→南(t=0 在 north 端)。
|
|
7
|
+
* 仅 rect 直边用两角端点;circle/ellipse 用 `edgeAngleDeg` 角度表、diamond 用过顶点折线。
|
|
8
|
+
*/
|
|
9
|
+
export declare const EDGE_ENDS: {
|
|
10
|
+
readonly north: readonly ["north-west", "north-east"];
|
|
11
|
+
readonly south: readonly ["south-west", "south-east"];
|
|
12
|
+
readonly east: readonly ["north-east", "south-east"];
|
|
13
|
+
readonly west: readonly ["north-west", "south-west"];
|
|
14
|
+
};
|
|
15
|
+
/** 线性插值 a + (b − a)·t */
|
|
16
|
+
export declare const lerpPoint: (a: Position, b: Position, t: number) => Position;
|
|
17
|
+
/**
|
|
18
|
+
* circle / ellipse 周长弧段:side 的局部参数角 θ(t),单位度
|
|
19
|
+
* @description 约定同 geometry 既有 `(cosθ, sinθ)` + y 轴向下 ⇒ east=0° / south=90° / west=180° / north=270°,
|
|
20
|
+
* 顺时针为正。每条 side 是一段 90° 弧(等角插值);三点(t=0/0.5/1)与 9-anchor 重合。
|
|
21
|
+
*/
|
|
22
|
+
export declare const edgeAngleDeg: (side: Side, t: number) => number;
|
|
23
|
+
/**
|
|
24
|
+
* diamond 过 cardinal 顶点的两段折线
|
|
25
|
+
* @description t∈[0,0.5] 走 p0→vertex、t∈[0.5,1] 走 vertex→p1;t=0.5 恰落 vertex。
|
|
26
|
+
* p0/p1 为相邻边中点 anchor、vertex 为 cardinal 顶点 anchor——全落真实斜边
|
|
27
|
+
*/
|
|
28
|
+
export declare const polylineViaVertex: (p0: Position, vertex: Position, p1: Position, t: number) => Position;
|
|
29
|
+
//# sourceMappingURL=_edge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_edge.d.ts","sourceRoot":"","sources":["../../../src/geometry/_edge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGxC,0DAA0D;AAC1D,MAAM,MAAM,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvD;;;;GAIG;AACH,eAAO,MAAM,SAAS;;;;;CAK8C,CAAC;AAErE,yBAAyB;AACzB,eAAO,MAAM,SAAS,GAAI,GAAG,QAAQ,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,KAAG,QAG/D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,IAAI,EAAE,GAAG,MAAM,KAAG,MAWpD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAC5B,IAAI,QAAQ,EACZ,QAAQ,QAAQ,EAChB,IAAI,QAAQ,EACZ,GAAG,MAAM,KACR,QAA4F,CAAC"}
|
|
@@ -22,6 +22,34 @@ var arcBoundingPoints = (center, radius, startAngleDeg, endAngleDeg) => {
|
|
|
22
22
|
}
|
|
23
23
|
return points;
|
|
24
24
|
};
|
|
25
|
+
/**
|
|
26
|
+
* 椭圆弧参数点:中心 + 半轴 rx/ry + 参数角(度)→ 椭圆周上点
|
|
27
|
+
* @description 与 arcEndPoint 同角度约定(SVG y-down);endpoint = [cx + rx·cosθ, cy + ry·sinθ]。
|
|
28
|
+
* θ 是参数角(非真实极角,rx≠ry 时两者不等)
|
|
29
|
+
*/
|
|
30
|
+
var ellipseArcPoint = (center, radiusX, radiusY, angleDeg) => {
|
|
31
|
+
const rad = angleDeg * DEG_TO_RAD;
|
|
32
|
+
return [center[0] + Math.cos(rad) * radiusX, center[1] + Math.sin(rad) * radiusY];
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* 椭圆弧 bbox 极值候选:起点、终点,加 [start,end] 区间内所有 90°·k 参数角处的椭圆周点
|
|
36
|
+
* @description 轴对齐椭圆的 x 极值在 θ=0/180、y 极值在 θ=90/270,与正圆同结构(仅半轴用 rx/ry)
|
|
37
|
+
*/
|
|
38
|
+
var ellipseArcBoundingPoints = (center, radiusX, radiusY, startAngleDeg, endAngleDeg) => {
|
|
39
|
+
const points = [ellipseArcPoint(center, radiusX, radiusY, startAngleDeg), ellipseArcPoint(center, radiusX, radiusY, endAngleDeg)];
|
|
40
|
+
const lo = Math.min(startAngleDeg, endAngleDeg);
|
|
41
|
+
const hi = Math.max(startAngleDeg, endAngleDeg);
|
|
42
|
+
const kStart = Math.ceil(lo / 90);
|
|
43
|
+
const kEnd = Math.floor(hi / 90);
|
|
44
|
+
for (let k = kStart; k <= kEnd; k++) {
|
|
45
|
+
const angle = k * 90;
|
|
46
|
+
if (angle === startAngleDeg || angle === endAngleDeg) continue;
|
|
47
|
+
points.push(ellipseArcPoint(center, radiusX, radiusY, angle));
|
|
48
|
+
}
|
|
49
|
+
return points;
|
|
50
|
+
};
|
|
25
51
|
//#endregion
|
|
26
52
|
exports.arcBoundingPoints = arcBoundingPoints;
|
|
27
53
|
exports.arcEndPoint = arcEndPoint;
|
|
54
|
+
exports.ellipseArcBoundingPoints = ellipseArcBoundingPoints;
|
|
55
|
+
exports.ellipseArcPoint = ellipseArcPoint;
|
|
@@ -6,4 +6,15 @@ export declare const arcEndPoint: (center: Position, radius: number, angleDeg: n
|
|
|
6
6
|
* @description 弧投影到 x/y 轴的极值只可能在弧端点或圆周轴向四点出现。endAngle < startAngle 时按 min..max 扫描;跨 360°(270→450)按数值区间正确处理;不去重——端角恰在 90°·k 上时调用方处理
|
|
7
7
|
*/
|
|
8
8
|
export declare const arcBoundingPoints: (center: Position, radius: number, startAngleDeg: number, endAngleDeg: number) => Array<Position>;
|
|
9
|
+
/**
|
|
10
|
+
* 椭圆弧参数点:中心 + 半轴 rx/ry + 参数角(度)→ 椭圆周上点
|
|
11
|
+
* @description 与 arcEndPoint 同角度约定(SVG y-down);endpoint = [cx + rx·cosθ, cy + ry·sinθ]。
|
|
12
|
+
* θ 是参数角(非真实极角,rx≠ry 时两者不等)
|
|
13
|
+
*/
|
|
14
|
+
export declare const ellipseArcPoint: (center: Position, radiusX: number, radiusY: number, angleDeg: number) => Position;
|
|
15
|
+
/**
|
|
16
|
+
* 椭圆弧 bbox 极值候选:起点、终点,加 [start,end] 区间内所有 90°·k 参数角处的椭圆周点
|
|
17
|
+
* @description 轴对齐椭圆的 x 极值在 θ=0/180、y 极值在 θ=90/270,与正圆同结构(仅半轴用 rx/ry)
|
|
18
|
+
*/
|
|
19
|
+
export declare const ellipseArcBoundingPoints: (center: Position, radiusX: number, radiusY: number, startAngleDeg: number, endAngleDeg: number) => Array<Position>;
|
|
9
20
|
//# sourceMappingURL=arc.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arc.d.ts","sourceRoot":"","sources":["../../../src/geometry/arc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAWxC,iDAAiD;AACjD,eAAO,MAAM,WAAW,GACtB,QAAQ,QAAQ,EAChB,QAAQ,MAAM,EACd,UAAU,MAAM,KACf,QAMF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,QAAQ,EAChB,QAAQ,MAAM,EACd,eAAe,MAAM,EACrB,aAAa,MAAM,KAClB,KAAK,CAAC,QAAQ,CAiBhB,CAAC"}
|
|
1
|
+
{"version":3,"file":"arc.d.ts","sourceRoot":"","sources":["../../../src/geometry/arc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAWxC,iDAAiD;AACjD,eAAO,MAAM,WAAW,GACtB,QAAQ,QAAQ,EAChB,QAAQ,MAAM,EACd,UAAU,MAAM,KACf,QAMF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,QAAQ,EAChB,QAAQ,MAAM,EACd,eAAe,MAAM,EACrB,aAAa,MAAM,KAClB,KAAK,CAAC,QAAQ,CAiBhB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAC1B,QAAQ,QAAQ,EAChB,SAAS,MAAM,EACf,SAAS,MAAM,EACf,UAAU,MAAM,KACf,QAMF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,GACnC,QAAQ,QAAQ,EAChB,SAAS,MAAM,EACf,SAAS,MAAM,EACf,eAAe,MAAM,EACrB,aAAa,MAAM,KAClB,KAAK,CAAC,QAAQ,CAehB,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
const require__transform = require("./_transform.cjs");
|
|
2
|
+
const require__edge = require("./_edge.cjs");
|
|
2
3
|
//#region src/geometry/circle.ts
|
|
4
|
+
var DEG_TO_RAD = Math.PI / 180;
|
|
3
5
|
var SQRT_HALF = Math.SQRT1_2;
|
|
4
6
|
/** 圆形相关基础工具 */
|
|
5
7
|
var circle = {
|
|
@@ -55,6 +57,11 @@ var circle = {
|
|
|
55
57
|
if (len === 0) return [c.x, c.y];
|
|
56
58
|
const t = c.radius / len;
|
|
57
59
|
return require__transform.localToWorld(c, [lx * t, ly * t]);
|
|
60
|
+
},
|
|
61
|
+
/** 边上比例点:side 的 90° 周长弧段 t∈[0,1] 处(等角,落真实圆周;含旋转) */
|
|
62
|
+
edgePoint: (c, side, t) => {
|
|
63
|
+
const rad = require__edge.edgeAngleDeg(side, t) * DEG_TO_RAD;
|
|
64
|
+
return require__transform.localToWorld(c, [c.radius * Math.cos(rad), c.radius * Math.sin(rad)]);
|
|
58
65
|
}
|
|
59
66
|
};
|
|
60
67
|
//#endregion
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Side } from './_edge';
|
|
1
2
|
import { Position } from './point';
|
|
2
3
|
import { RectAnchor } from './rect';
|
|
3
4
|
/** 圆形:几何中心 + 半径,预留旋转字段保持与 Rect 同形 API */
|
|
@@ -19,5 +20,7 @@ export declare const circle: {
|
|
|
19
20
|
anchor: (c: Circle, name: RectAnchor) => Position;
|
|
20
21
|
/** 从圆心向 toward 方向射线与圆周交点(Path 端点贴 Node 边界用) */
|
|
21
22
|
boundaryPoint: (c: Circle, toward: Position) => Position;
|
|
23
|
+
/** 边上比例点:side 的 90° 周长弧段 t∈[0,1] 处(等角,落真实圆周;含旋转) */
|
|
24
|
+
edgePoint: (c: Circle, side: Side, t: number) => Position;
|
|
22
25
|
};
|
|
23
26
|
//# sourceMappingURL=circle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"circle.d.ts","sourceRoot":"","sources":["../../../src/geometry/circle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"circle.d.ts","sourceRoot":"","sources":["../../../src/geometry/circle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAgB,MAAM,SAAS,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAIzC,yCAAyC;AACzC,MAAM,MAAM,MAAM,GAAG;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,SAAS;IACT,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAIF,eAAe;AACf,eAAO,MAAM,MAAM;IACjB,SAAS;gBACG,MAAM,KAAG,QAAQ;IAC7B,oBAAoB;kBACN,MAAM,KAAK,QAAQ,KAAG,OAAO;IAI3C,2BAA2B;gBACf,MAAM,QAAQ,UAAU,KAAG,QAAQ;IAsC/C,+CAA+C;uBAC5B,MAAM,UAAU,QAAQ,KAAG,QAAQ;IAOtD,oDAAoD;mBACrC,MAAM,QAAQ,IAAI,KAAK,MAAM,KAAG,QAAQ;CAIxD,CAAC"}
|
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
const require__transform = require("./_transform.cjs");
|
|
2
|
+
const require__edge = require("./_edge.cjs");
|
|
2
3
|
//#region src/geometry/diamond.ts
|
|
4
|
+
/** 每条 side 的过顶点折线三 anchor:[邻边中点, cardinal 顶点, 邻边中点](方向 north/south=西→东、east/west=北→南) */
|
|
5
|
+
var DIAMOND_EDGE = {
|
|
6
|
+
north: [
|
|
7
|
+
"north-west",
|
|
8
|
+
"north",
|
|
9
|
+
"north-east"
|
|
10
|
+
],
|
|
11
|
+
south: [
|
|
12
|
+
"south-west",
|
|
13
|
+
"south",
|
|
14
|
+
"south-east"
|
|
15
|
+
],
|
|
16
|
+
east: [
|
|
17
|
+
"north-east",
|
|
18
|
+
"east",
|
|
19
|
+
"south-east"
|
|
20
|
+
],
|
|
21
|
+
west: [
|
|
22
|
+
"north-west",
|
|
23
|
+
"west",
|
|
24
|
+
"south-west"
|
|
25
|
+
]
|
|
26
|
+
};
|
|
3
27
|
/** 菱形相关基础工具 */
|
|
4
28
|
var diamond = {
|
|
5
29
|
/** 中心 */
|
|
@@ -56,6 +80,11 @@ var diamond = {
|
|
|
56
80
|
if (denom === 0) return [d.x, d.y];
|
|
57
81
|
const t = 1 / denom;
|
|
58
82
|
return require__transform.localToWorld(d, [lx * t, ly * t]);
|
|
83
|
+
},
|
|
84
|
+
/** 边上比例点:side 过 cardinal 顶点的两段折线 t∈[0,1] 处(落真实斜边;含旋转) */
|
|
85
|
+
edgePoint: (d, side, t) => {
|
|
86
|
+
const [mid0, vertex, mid1] = DIAMOND_EDGE[side];
|
|
87
|
+
return require__edge.polylineViaVertex(diamond.anchor(d, mid0), diamond.anchor(d, vertex), diamond.anchor(d, mid1), t);
|
|
59
88
|
}
|
|
60
89
|
};
|
|
61
90
|
//#endregion
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Side } from './_edge';
|
|
1
2
|
import { Position } from './point';
|
|
2
3
|
import { RectAnchor } from './rect';
|
|
3
4
|
/** 菱形:中心 + halfA/halfB 半轴长 + 可选旋转;顶点在 (±halfA,0) 与 (0,±halfB) */
|
|
@@ -24,5 +25,7 @@ export declare const diamond: {
|
|
|
24
25
|
* @description 菱形方程 |x|/halfA + |y|/halfB = 1;沿方向 (lx,ly) 缩放 t 倍命中:t = 1 / (|lx|/halfA + |ly|/halfB)
|
|
25
26
|
*/
|
|
26
27
|
boundaryPoint: (d: Diamond, toward: Position) => Position;
|
|
28
|
+
/** 边上比例点:side 过 cardinal 顶点的两段折线 t∈[0,1] 处(落真实斜边;含旋转) */
|
|
29
|
+
edgePoint: (d: Diamond, side: Side, t: number) => Position;
|
|
27
30
|
};
|
|
28
31
|
//# sourceMappingURL=diamond.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diamond.d.ts","sourceRoot":"","sources":["../../../src/geometry/diamond.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"diamond.d.ts","sourceRoot":"","sources":["../../../src/geometry/diamond.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAqB,MAAM,SAAS,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAUzC,iEAAiE;AACjE,MAAM,MAAM,OAAO,GAAG;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,cAAc;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAe;AACf,eAAO,MAAM,OAAO;IAClB,SAAS;gBACG,OAAO,KAAG,QAAQ;IAC9B,oDAAoD;kBACtC,OAAO,KAAK,QAAQ,KAAG,OAAO;IAI5C,sDAAsD;gBAC1C,OAAO,QAAQ,UAAU,KAAG,QAAQ;IAqClD;;;OAGG;uBACkB,OAAO,UAAU,QAAQ,KAAG,QAAQ;IAOvD,yDAAyD;mBAC1C,OAAO,QAAQ,IAAI,KAAK,MAAM,KAAG,QAAQ;CASzD,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
const require__transform = require("./_transform.cjs");
|
|
2
|
+
const require__edge = require("./_edge.cjs");
|
|
2
3
|
//#region src/geometry/ellipse.ts
|
|
4
|
+
var DEG_TO_RAD = Math.PI / 180;
|
|
3
5
|
var SQRT_HALF = Math.SQRT1_2;
|
|
4
6
|
/** 椭圆相关基础工具 */
|
|
5
7
|
var ellipse = {
|
|
@@ -61,6 +63,11 @@ var ellipse = {
|
|
|
61
63
|
const b = ly / e.ry;
|
|
62
64
|
const t = 1 / Math.sqrt(a * a + b * b);
|
|
63
65
|
return require__transform.localToWorld(e, [lx * t, ly * t]);
|
|
66
|
+
},
|
|
67
|
+
/** 边上比例点:side 的 90° 周长弧段 t∈[0,1] 处(等角,落真实椭圆周;含旋转) */
|
|
68
|
+
edgePoint: (e, side, t) => {
|
|
69
|
+
const rad = require__edge.edgeAngleDeg(side, t) * DEG_TO_RAD;
|
|
70
|
+
return require__transform.localToWorld(e, [e.rx * Math.cos(rad), e.ry * Math.sin(rad)]);
|
|
64
71
|
}
|
|
65
72
|
};
|
|
66
73
|
//#endregion
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Side } from './_edge';
|
|
1
2
|
import { Position } from './point';
|
|
2
3
|
import { RectAnchor } from './rect';
|
|
3
4
|
/** 椭圆:中心 + 半长轴 rx / 半短轴 ry + 可选旋转 */
|
|
@@ -27,5 +28,7 @@ export declare const ellipse: {
|
|
|
27
28
|
* @description 椭圆方程 (x/rx)² + (y/ry)² = 1;沿 (lx,ly) 缩放 t 倍命中 t = 1 / √((lx/rx)² + (ly/ry)²)
|
|
28
29
|
*/
|
|
29
30
|
boundaryPoint: (e: Ellipse, toward: Position) => Position;
|
|
31
|
+
/** 边上比例点:side 的 90° 周长弧段 t∈[0,1] 处(等角,落真实椭圆周;含旋转) */
|
|
32
|
+
edgePoint: (e: Ellipse, side: Side, t: number) => Position;
|
|
30
33
|
};
|
|
31
34
|
//# sourceMappingURL=ellipse.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ellipse.d.ts","sourceRoot":"","sources":["../../../src/geometry/ellipse.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"ellipse.d.ts","sourceRoot":"","sources":["../../../src/geometry/ellipse.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAgB,MAAM,SAAS,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAIzC,qCAAqC;AACrC,MAAM,MAAM,OAAO,GAAG;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,aAAa;IACb,EAAE,EAAE,MAAM,CAAC;IACX,aAAa;IACb,EAAE,EAAE,MAAM,CAAC;IACX,cAAc;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAIF,eAAe;AACf,eAAO,MAAM,OAAO;IAClB,SAAS;gBACG,OAAO,KAAG,QAAQ;IAC9B,0BAA0B;kBACZ,OAAO,KAAK,QAAQ,KAAG,OAAO;IAI9C;;;OAGG;gBACW,OAAO,QAAQ,UAAU,KAAG,QAAQ;IAqClD;;;OAGG;uBACkB,OAAO,UAAU,QAAQ,KAAG,QAAQ;IAQvD,qDAAqD;mBACtC,OAAO,QAAQ,IAAI,KAAK,MAAM,KAAG,QAAQ;CAIzD,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
const require__transform = require("./_transform.cjs");
|
|
2
|
+
const require__edge = require("./_edge.cjs");
|
|
2
3
|
//#region src/geometry/rect.ts
|
|
3
4
|
/** 矩形 9 个标准 anchor 名常量(与 RectAnchor 配对,用 RECT_ANCHORS.NORTH 避免拼错) */
|
|
4
5
|
var RECT_ANCHORS = {
|
|
@@ -71,8 +72,97 @@ var rect = {
|
|
|
71
72
|
const ty = localY === 0 ? Infinity : halfH / Math.abs(localY);
|
|
72
73
|
const t = Math.min(tx, ty);
|
|
73
74
|
return require__transform.localToWorld(r, [localX * t, localY * t]);
|
|
75
|
+
},
|
|
76
|
+
/** 边上比例点:side 直边 t∈[0,1] 处(两角 anchor 线性插值,含旋转);方向见 EDGE_ENDS */
|
|
77
|
+
edgePoint: (r, side, t) => {
|
|
78
|
+
const [a, b] = require__edge.EDGE_ENDS[side];
|
|
79
|
+
return require__edge.lerpPoint(rect.anchor(r, a), rect.anchor(r, b), t);
|
|
74
80
|
}
|
|
75
81
|
};
|
|
82
|
+
/**
|
|
83
|
+
* 矩形 outline:两对角 → 顺时针 path 算子序列
|
|
84
|
+
* @description from/to 任意顺序,归一化 (x0,y0)=min、(x1,y1)=max。直角 = 4 line + close(起点左上 (x0,y0));
|
|
85
|
+
* 圆角 = 4 line + 4 quarter-arc + close(起点 (x0+r, y0))。roundedCorners clamp 到 min(w,h)/2。
|
|
86
|
+
* 角度约定同 geometry/arc(y-down:0=+x, 90=+y/下, 180=-x, 270=-y/上)。
|
|
87
|
+
*/
|
|
88
|
+
var rectOutline = (from, to, roundedCorners) => {
|
|
89
|
+
const x0 = Math.min(from[0], to[0]);
|
|
90
|
+
const x1 = Math.max(from[0], to[0]);
|
|
91
|
+
const y0 = Math.min(from[1], to[1]);
|
|
92
|
+
const y1 = Math.max(from[1], to[1]);
|
|
93
|
+
const r = roundedCorners === void 0 ? 0 : Math.min(roundedCorners, (x1 - x0) / 2, (y1 - y0) / 2);
|
|
94
|
+
if (r <= 0) return [
|
|
95
|
+
{
|
|
96
|
+
kind: "move",
|
|
97
|
+
to: [x0, y0]
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
kind: "line",
|
|
101
|
+
to: [x1, y0]
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
kind: "line",
|
|
105
|
+
to: [x1, y1]
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
kind: "line",
|
|
109
|
+
to: [x0, y1]
|
|
110
|
+
},
|
|
111
|
+
{ kind: "close" }
|
|
112
|
+
];
|
|
113
|
+
return [
|
|
114
|
+
{
|
|
115
|
+
kind: "move",
|
|
116
|
+
to: [x0 + r, y0]
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
kind: "line",
|
|
120
|
+
to: [x1 - r, y0]
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
kind: "arc",
|
|
124
|
+
center: [x1 - r, y0 + r],
|
|
125
|
+
radius: r,
|
|
126
|
+
startAngle: 270,
|
|
127
|
+
endAngle: 360
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
kind: "line",
|
|
131
|
+
to: [x1, y1 - r]
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
kind: "arc",
|
|
135
|
+
center: [x1 - r, y1 - r],
|
|
136
|
+
radius: r,
|
|
137
|
+
startAngle: 0,
|
|
138
|
+
endAngle: 90
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
kind: "line",
|
|
142
|
+
to: [x0 + r, y1]
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
kind: "arc",
|
|
146
|
+
center: [x0 + r, y1 - r],
|
|
147
|
+
radius: r,
|
|
148
|
+
startAngle: 90,
|
|
149
|
+
endAngle: 180
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
kind: "line",
|
|
153
|
+
to: [x0, y0 + r]
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
kind: "arc",
|
|
157
|
+
center: [x0 + r, y0 + r],
|
|
158
|
+
radius: r,
|
|
159
|
+
startAngle: 180,
|
|
160
|
+
endAngle: 270
|
|
161
|
+
},
|
|
162
|
+
{ kind: "close" }
|
|
163
|
+
];
|
|
164
|
+
};
|
|
76
165
|
//#endregion
|
|
77
166
|
exports.RECT_ANCHORS = RECT_ANCHORS;
|
|
78
167
|
exports.rect = rect;
|
|
168
|
+
exports.rectOutline = rectOutline;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Side } from './_edge';
|
|
1
2
|
import { Position } from './point';
|
|
2
3
|
/** 轴对齐矩形:几何中心 + 宽高 + 可选绕中心旋转 */
|
|
3
4
|
export type Rect = {
|
|
@@ -31,5 +32,30 @@ export declare const rect: {
|
|
|
31
32
|
anchor: (r: Rect, name: RectAnchor) => Position;
|
|
32
33
|
/** 从中心向 toward 方向射线与矩形边界交点(含旋转),Path 端点贴 Node 边界用 */
|
|
33
34
|
boundaryPoint: (r: Rect, toward: Position) => Position;
|
|
35
|
+
/** 边上比例点:side 直边 t∈[0,1] 处(两角 anchor 线性插值,含旋转);方向见 EDGE_ENDS */
|
|
36
|
+
edgePoint: (r: Rect, side: Side, t: number) => Position;
|
|
34
37
|
};
|
|
38
|
+
/** rectOutline 的命令算子(供 compile 翻译为 PathCommand;几何在 core 下沉,便于未来 rectangle node shape 复用) */
|
|
39
|
+
export type RectOutlineOp = {
|
|
40
|
+
kind: 'move';
|
|
41
|
+
to: Position;
|
|
42
|
+
} | {
|
|
43
|
+
kind: 'line';
|
|
44
|
+
to: Position;
|
|
45
|
+
} | {
|
|
46
|
+
kind: 'arc';
|
|
47
|
+
center: Position;
|
|
48
|
+
radius: number;
|
|
49
|
+
startAngle: number;
|
|
50
|
+
endAngle: number;
|
|
51
|
+
} | {
|
|
52
|
+
kind: 'close';
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* 矩形 outline:两对角 → 顺时针 path 算子序列
|
|
56
|
+
* @description from/to 任意顺序,归一化 (x0,y0)=min、(x1,y1)=max。直角 = 4 line + close(起点左上 (x0,y0));
|
|
57
|
+
* 圆角 = 4 line + 4 quarter-arc + close(起点 (x0+r, y0))。roundedCorners clamp 到 min(w,h)/2。
|
|
58
|
+
* 角度约定同 geometry/arc(y-down:0=+x, 90=+y/下, 180=-x, 270=-y/上)。
|
|
59
|
+
*/
|
|
60
|
+
export declare const rectOutline: (from: Position, to: Position, roundedCorners?: number) => Array<RectOutlineOp>;
|
|
35
61
|
//# sourceMappingURL=rect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rect.d.ts","sourceRoot":"","sources":["../../../src/geometry/rect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC,gCAAgC;AAChC,MAAM,MAAM,IAAI,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,cAAc;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,YAAY;;;;;;;;;;CAUf,CAAC;AAEX,+BAA+B;AAC/B,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AAE1E,eAAO,MAAM,IAAI;IACf,WAAW;gBACC,IAAI,KAAG,QAAQ;IAC3B,uBAAuB;kBACT,IAAI,KAAK,QAAQ,KAAG,OAAO;IAMzC,sCAAsC;gBAC1B,IAAI,QAAQ,UAAU,KAAG,QAAQ;IAuC7C,qDAAqD;uBAClC,IAAI,UAAU,QAAQ,KAAG,QAAQ;
|
|
1
|
+
{"version":3,"file":"rect.d.ts","sourceRoot":"","sources":["../../../src/geometry/rect.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,KAAK,IAAI,EAAa,MAAM,SAAS,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC,gCAAgC;AAChC,MAAM,MAAM,IAAI,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,cAAc;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,YAAY;;;;;;;;;;CAUf,CAAC;AAEX,+BAA+B;AAC/B,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AAE1E,eAAO,MAAM,IAAI;IACf,WAAW;gBACC,IAAI,KAAG,QAAQ;IAC3B,uBAAuB;kBACT,IAAI,KAAK,QAAQ,KAAG,OAAO;IAMzC,sCAAsC;gBAC1B,IAAI,QAAQ,UAAU,KAAG,QAAQ;IAuC7C,qDAAqD;uBAClC,IAAI,UAAU,QAAQ,KAAG,QAAQ;IAUpD,gEAAgE;mBACjD,IAAI,QAAQ,IAAI,KAAK,MAAM,KAAG,QAAQ;CAItD,CAAC;AAEF,4FAA4F;AAC5F,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,QAAQ,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,QAAQ,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACvF;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtB;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GACtB,MAAM,QAAQ,EACd,IAAI,QAAQ,EACZ,iBAAiB,MAAM,KACtB,KAAK,CAAC,aAAa,CAgCrB,CAAC"}
|
|
@@ -51,6 +51,17 @@ var arcSegmentSample = (center, radius, startAngleDeg, endAngleDeg, t) => {
|
|
|
51
51
|
tangent: normalize([-sin * sweepSign, cos * sweepSign])
|
|
52
52
|
};
|
|
53
53
|
};
|
|
54
|
+
/** 椭圆弧段(参数角度数,与 ir/path arc 同约定);点用 (rx·cos, ry·sin),切线沿扫描方向 */
|
|
55
|
+
var ellipseArcSegmentSample = (center, rx, ry, startAngleDeg, endAngleDeg, t) => {
|
|
56
|
+
const rad = (startAngleDeg + t * (endAngleDeg - startAngleDeg)) * DEG_TO_RAD;
|
|
57
|
+
const cos = Math.cos(rad);
|
|
58
|
+
const sin = Math.sin(rad);
|
|
59
|
+
const sweepSign = endAngleDeg >= startAngleDeg ? 1 : -1;
|
|
60
|
+
return {
|
|
61
|
+
point: [center[0] + rx * cos, center[1] + ry * sin],
|
|
62
|
+
tangent: normalize([-rx * sin * sweepSign, ry * cos * sweepSign])
|
|
63
|
+
};
|
|
64
|
+
};
|
|
54
65
|
/** 整圆,从 0°(east) 开始,与 compile/path circlePath 输出方向(右→左→右,sweep=1)一致 */
|
|
55
66
|
var circleSegmentSample = (center, radius, t) => {
|
|
56
67
|
const rad = t * 360 * DEG_TO_RAD;
|
|
@@ -75,6 +86,7 @@ var ellipseSegmentSample = (center, rx, ry, t) => {
|
|
|
75
86
|
exports.arcSegmentSample = arcSegmentSample;
|
|
76
87
|
exports.circleSegmentSample = circleSegmentSample;
|
|
77
88
|
exports.cubicSegmentSample = cubicSegmentSample;
|
|
89
|
+
exports.ellipseArcSegmentSample = ellipseArcSegmentSample;
|
|
78
90
|
exports.ellipseSegmentSample = ellipseSegmentSample;
|
|
79
91
|
exports.foldSegmentSample = foldSegmentSample;
|
|
80
92
|
exports.lineSegmentSample = lineSegmentSample;
|
|
@@ -28,6 +28,8 @@ export declare const cubicSegmentSample: (from: Position, c1: Position, c2: Posi
|
|
|
28
28
|
export declare const foldSegmentSample: (from: Position, corner: Position, to: Position, t: number) => SegmentSample;
|
|
29
29
|
/** 弧段(角度度数,与 ir/path arc 同约定);切线沿扫描方向:endAngle ≥ start 取 (-sin,cos),否则反向 */
|
|
30
30
|
export declare const arcSegmentSample: (center: Position, radius: number, startAngleDeg: number, endAngleDeg: number, t: number) => SegmentSample;
|
|
31
|
+
/** 椭圆弧段(参数角度数,与 ir/path arc 同约定);点用 (rx·cos, ry·sin),切线沿扫描方向 */
|
|
32
|
+
export declare const ellipseArcSegmentSample: (center: Position, rx: number, ry: number, startAngleDeg: number, endAngleDeg: number, t: number) => SegmentSample;
|
|
31
33
|
/** 整圆,从 0°(east) 开始,与 compile/path circlePath 输出方向(右→左→右,sweep=1)一致 */
|
|
32
34
|
export declare const circleSegmentSample: (center: Position, radius: number, t: number) => SegmentSample;
|
|
33
35
|
/** 整椭圆,参数化 (rx·cos(2πt), ry·sin(2πt)) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"segment.d.ts","sourceRoot":"","sources":["../../../src/geometry/segment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAiBxC;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,wBAAwB;IACxB,KAAK,EAAE,QAAQ,CAAC;IAChB,iCAAiC;IACjC,OAAO,EAAE,QAAQ,CAAC;CACnB,CAAC;AAQF,oBAAoB;AACpB,eAAO,MAAM,iBAAiB,GAC5B,MAAM,QAAQ,EACd,IAAI,QAAQ,EACZ,GAAG,MAAM,KACR,aAGD,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,QAAQ,EACd,SAAS,QAAQ,EACjB,IAAI,QAAQ,EACZ,GAAG,MAAM,KACR,aASF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,QAAQ,EACd,IAAI,QAAQ,EACZ,IAAI,QAAQ,EACZ,IAAI,QAAQ,EACZ,GAAG,MAAM,KACR,aAqBF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,QAAQ,EACd,QAAQ,QAAQ,EAChB,IAAI,QAAQ,EACZ,GAAG,MAAM,KACR,aAGF,CAAC;AAEF,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,QAAQ,EAChB,QAAQ,MAAM,EACd,eAAe,MAAM,EACrB,aAAa,MAAM,EACnB,GAAG,MAAM,KACR,aAUF,CAAC;AAEF,uEAAuE;AACvE,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,QAAQ,EAChB,QAAQ,MAAM,EACd,GAAG,MAAM,KACR,aASF,CAAC;AAEF,yCAAyC;AACzC,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,QAAQ,EAChB,IAAI,MAAM,EACV,IAAI,MAAM,EACV,GAAG,MAAM,KACR,aASF,CAAC"}
|
|
1
|
+
{"version":3,"file":"segment.d.ts","sourceRoot":"","sources":["../../../src/geometry/segment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAiBxC;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,wBAAwB;IACxB,KAAK,EAAE,QAAQ,CAAC;IAChB,iCAAiC;IACjC,OAAO,EAAE,QAAQ,CAAC;CACnB,CAAC;AAQF,oBAAoB;AACpB,eAAO,MAAM,iBAAiB,GAC5B,MAAM,QAAQ,EACd,IAAI,QAAQ,EACZ,GAAG,MAAM,KACR,aAGD,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,QAAQ,EACd,SAAS,QAAQ,EACjB,IAAI,QAAQ,EACZ,GAAG,MAAM,KACR,aASF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,QAAQ,EACd,IAAI,QAAQ,EACZ,IAAI,QAAQ,EACZ,IAAI,QAAQ,EACZ,GAAG,MAAM,KACR,aAqBF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,QAAQ,EACd,QAAQ,QAAQ,EAChB,IAAI,QAAQ,EACZ,GAAG,MAAM,KACR,aAGF,CAAC;AAEF,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,QAAQ,EAChB,QAAQ,MAAM,EACd,eAAe,MAAM,EACrB,aAAa,MAAM,EACnB,GAAG,MAAM,KACR,aAUF,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,uBAAuB,GAClC,QAAQ,QAAQ,EAChB,IAAI,MAAM,EACV,IAAI,MAAM,EACV,eAAe,MAAM,EACrB,aAAa,MAAM,EACnB,GAAG,MAAM,KACR,aAUF,CAAC;AAEF,uEAAuE;AACvE,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,QAAQ,EAChB,QAAQ,MAAM,EACd,GAAG,MAAM,KACR,aASF,CAAC;AAEF,yCAAyC;AACzC,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,QAAQ,EAChB,IAAI,MAAM,EACV,IAAI,MAAM,EACV,GAAG,MAAM,KACR,aASF,CAAC"}
|
package/dist/lib/index.cjs
CHANGED
|
@@ -6,6 +6,8 @@ const require_offset_position = require("./ir/position/offset-position.cjs");
|
|
|
6
6
|
const require_font = require("./ir/font.cjs");
|
|
7
7
|
const require_text = require("./ir/text.cjs");
|
|
8
8
|
const require_arrow = require("./ir/path/arrow.cjs");
|
|
9
|
+
const require__transform = require("./geometry/_transform.cjs");
|
|
10
|
+
const require_rect = require("./geometry/rect.cjs");
|
|
9
11
|
const require_target = require("./ir/path/target.cjs");
|
|
10
12
|
const require_step = require("./ir/path/step.cjs");
|
|
11
13
|
const require_path = require("./ir/path/path.cjs");
|
|
@@ -14,8 +16,6 @@ const require_coordinate = require("./ir/coordinate.cjs");
|
|
|
14
16
|
const require_transform = require("./ir/transform.cjs");
|
|
15
17
|
const require_scope = require("./ir/scope.cjs");
|
|
16
18
|
const require_scene = require("./ir/scene.cjs");
|
|
17
|
-
const require__transform = require("./geometry/_transform.cjs");
|
|
18
|
-
const require_rect = require("./geometry/rect.cjs");
|
|
19
19
|
const require_circle = require("./geometry/circle.cjs");
|
|
20
20
|
const require_ellipse = require("./geometry/ellipse.cjs");
|
|
21
21
|
const require_diamond = require("./geometry/diamond.cjs");
|
|
@@ -23,6 +23,7 @@ const require_index = require("./shapes/index.cjs");
|
|
|
23
23
|
const require_text_metrics = require("./compile/text-metrics.cjs");
|
|
24
24
|
const require_layout = require("./compile/layout.cjs");
|
|
25
25
|
const require_compile = require("./compile/compile.cjs");
|
|
26
|
+
const require_parseNodeTarget = require("./parsers/parseNodeTarget.cjs");
|
|
26
27
|
const require_parseTargetSugar = require("./parsers/parseTargetSugar.cjs");
|
|
27
28
|
const require_parseWay = require("./parsers/parseWay.cjs");
|
|
28
29
|
const require_polar = require("./geometry/polar.cjs");
|
|
@@ -31,6 +32,7 @@ exports.ARROW_MARKER_DEFAULT_SIZE = require_arrow.ARROW_MARKER_DEFAULT_SIZE;
|
|
|
31
32
|
exports.ARROW_MARKER_HOLLOW_DEFAULT_LINE_WIDTH = require_arrow.ARROW_MARKER_HOLLOW_DEFAULT_LINE_WIDTH;
|
|
32
33
|
exports.ARROW_SHAPES = require_arrow.ARROW_SHAPES;
|
|
33
34
|
exports.AT_DIRECTIONS = require_at_position.AT_DIRECTIONS;
|
|
35
|
+
exports.AnchorRefSchema = require_target.AnchorRefSchema;
|
|
34
36
|
exports.ArcStepSchema = require_step.ArcStepSchema;
|
|
35
37
|
exports.ArrowDefaultSchema = require_scope.ArrowDefaultSchema;
|
|
36
38
|
exports.ArrowDetailSchema = require_arrow.ArrowDetailSchema;
|
|
@@ -61,12 +63,14 @@ exports.NODE_TEXT_ALIGNS = require_node.NODE_TEXT_ALIGNS;
|
|
|
61
63
|
exports.NodeDefaultSchema = require_scope.NodeDefaultSchema;
|
|
62
64
|
exports.NodeLabelSchema = require_node.NodeLabelSchema;
|
|
63
65
|
exports.NodeSchema = require_node.NodeSchema;
|
|
66
|
+
exports.NodeTargetSchema = require_target.NodeTargetSchema;
|
|
64
67
|
exports.OffsetPositionSchema = require_offset_position.OffsetPositionSchema;
|
|
65
68
|
exports.PathDefaultSchema = require_scope.PathDefaultSchema;
|
|
66
69
|
exports.PathSchema = require_path.PathSchema;
|
|
67
70
|
exports.PolarPositionSchema = require_polar_position.PolarPositionSchema;
|
|
68
71
|
exports.PositionSchema = require_position.PositionSchema;
|
|
69
72
|
exports.RECT_ANCHORS = require_rect.RECT_ANCHORS;
|
|
73
|
+
exports.RectangleStepSchema = require_step.RectangleStepSchema;
|
|
70
74
|
exports.RelativeAccumulateTargetSchema = require_target.RelativeAccumulateTargetSchema;
|
|
71
75
|
exports.RelativeTargetSchema = require_target.RelativeTargetSchema;
|
|
72
76
|
exports.SceneSchema = require_scene.SceneSchema;
|
|
@@ -83,6 +87,7 @@ exports.diamond = require_diamond.diamond;
|
|
|
83
87
|
exports.ellipse = require_ellipse.ellipse;
|
|
84
88
|
exports.fallbackMeasurer = require_text_metrics.fallbackMeasurer;
|
|
85
89
|
exports.localToWorld = require__transform.localToWorld;
|
|
90
|
+
exports.parseNodeTarget = require_parseNodeTarget.parseNodeTarget;
|
|
86
91
|
exports.parseTargetSugar = require_parseTargetSugar.parseTargetSugar;
|
|
87
92
|
exports.parseWay = require_parseWay.parseWay;
|
|
88
93
|
exports.point = require_point.point;
|
package/dist/lib/index.d.ts
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* @retikz/core 公开 API
|
|
3
3
|
* @description 任何 framework adapter(@retikz/react、@retikz/vue、@retikz/canvas、@retikz/ssr)只能 import 本文件导出内容,不准走子路径。本包零 React/零 DOM 依赖
|
|
4
4
|
*/
|
|
5
|
-
export { PositionSchema, PolarPositionSchema, AtPositionSchema, OffsetPositionSchema, AT_DIRECTIONS, TargetSchema, RelativeTargetSchema, RelativeAccumulateTargetSchema, MoveStepSchema, LineStepSchema, FoldStepSchema, CycleStepSchema, CurveStepSchema, CubicStepSchema, BendStepSchema, ArcStepSchema, CirclePathStepSchema, EllipsePathStepSchema, ControlPointSchema, StepLabelSchema, StepSchema, NodeSchema, NodeLabelSchema, CoordinateSchema, FontSchema, TextBlockSchema, LineSpecSchema, PathSchema, ArrowDetailSchema, ArrowEndDetailSchema, ScopeSchema, NodeDefaultSchema, PathDefaultSchema, LabelDefaultSchema, ArrowDefaultSchema, TransformSchema, ChildSchema, SceneSchema, CURRENT_IR_VERSION, } from './ir';
|
|
6
|
-
export type { IRPosition, IRAtPosition, IROffsetPosition, AtDirection, IRTarget, IRRelativeTarget, IRRelativeAccumulateTarget, IRMoveStep, IRLineStep, IRFoldStep, IRCycleStep, IRCurveStep, IRCubicStep, IRBendStep, IRArcStep, IRCirclePathStep, IREllipsePathStep, IRControlPoint, IRStepLabel, IRStep, IRNode, IRNodeLabel, IRCoordinate, IRFont, IRLineSpec, IRTextBlock, IRPath, IRScope, IRNodeDefault, IRPathDefault, IRLabelDefault, IRArrowDefault, StyleChannel, IRTransform, IRTranslateTransform, IRPolarTranslateTransform, IRAtTranslateTransform, IROffsetTranslateTransform, IRRotateTransform, IRScaleTransform, IRChild, IR, ArrowShape, IRArrowDetail, IRArrowEndDetail, NodeShape, BuiltinShapeName, NodeTextAlign, } from './ir';
|
|
5
|
+
export { PositionSchema, PolarPositionSchema, AtPositionSchema, OffsetPositionSchema, AT_DIRECTIONS, TargetSchema, AnchorRefSchema, NodeTargetSchema, RelativeTargetSchema, RelativeAccumulateTargetSchema, MoveStepSchema, LineStepSchema, FoldStepSchema, CycleStepSchema, CurveStepSchema, CubicStepSchema, BendStepSchema, ArcStepSchema, CirclePathStepSchema, EllipsePathStepSchema, RectangleStepSchema, ControlPointSchema, StepLabelSchema, StepSchema, NodeSchema, NodeLabelSchema, CoordinateSchema, FontSchema, TextBlockSchema, LineSpecSchema, PathSchema, ArrowDetailSchema, ArrowEndDetailSchema, ScopeSchema, NodeDefaultSchema, PathDefaultSchema, LabelDefaultSchema, ArrowDefaultSchema, TransformSchema, ChildSchema, SceneSchema, CURRENT_IR_VERSION, } from './ir';
|
|
6
|
+
export type { IRPosition, IRAtPosition, IROffsetPosition, AtDirection, IRTarget, IRAnchorRef, IRNodeTarget, IRRelativeTarget, IRRelativeAccumulateTarget, IRMoveStep, IRLineStep, IRFoldStep, IRCycleStep, IRCurveStep, IRCubicStep, IRBendStep, IRArcStep, IRCirclePathStep, IREllipsePathStep, IRRectangleStep, IRControlPoint, IRStepLabel, IRStep, IRNode, IRNodeLabel, IRCoordinate, IRFont, IRLineSpec, IRTextBlock, IRPath, IRScope, IRNodeDefault, IRPathDefault, IRLabelDefault, IRArrowDefault, StyleChannel, IRTransform, IRTranslateTransform, IRPolarTranslateTransform, IRAtTranslateTransform, IROffsetTranslateTransform, IRRotateTransform, IRScaleTransform, IRChild, IR, ArrowShape, IRArrowDetail, IRArrowEndDetail, NodeShape, BuiltinShapeName, NodeTextAlign, } from './ir';
|
|
7
7
|
export { ARROW_SHAPES, DEFAULT_ARROW_SHAPE, HOLLOW_ARROW_SHAPES, ARROW_MARKER_DEFAULT_SIZE, ARROW_MARKER_HOLLOW_DEFAULT_LINE_WIDTH, NODE_SHAPES, NODE_TEXT_ALIGNS, } from './ir';
|
|
8
8
|
export type { ScenePrimitive, RectPrim, EllipsePrim, TextPrim, TextLine, PathPrim, PathCommand,
|
|
9
9
|
/** 7 个 named PathCommand 分支(便于 wrapper / Pick<>) */
|
|
@@ -13,7 +13,7 @@ TranslateTransform, RotateTransform, ScaleTransform, Layout, Scene, } from './pr
|
|
|
13
13
|
export type { FontSpec, TextMetrics, TextMeasurer, CompileOptions, CompileWarning, } from './compile';
|
|
14
14
|
export { computeLayout, fallbackMeasurer, compileToScene } from './compile';
|
|
15
15
|
export type { WayItem, WayDSL, WayCycle, WayVia, WayRelativeItem, WayLabel, WayLabelOp, } from './parsers';
|
|
16
|
-
export { parseWay, DrawWay, parseTargetSugar } from './parsers';
|
|
16
|
+
export { parseWay, DrawWay, parseTargetSugar, parseNodeTarget } from './parsers';
|
|
17
17
|
export type { Position, Rect, RectAnchor, Circle, Ellipse, Diamond, PolarPosition, } from './geometry';
|
|
18
18
|
export { point, rect, circle, ellipse, diamond, RECT_ANCHORS, polar } from './geometry';
|
|
19
19
|
export type { ShapeDefinition, ShapeStyle } from './shapes';
|
package/dist/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,8BAA8B,EAC9B,cAAc,EACd,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,EACf,eAAe,EACf,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,WAAW,EACX,kBAAkB,GACnB,MAAM,MAAM,CAAC;AACd,YAAY,EACV,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,0BAA0B,EAC1B,UAAU,EACV,UAAU,EACV,UAAU,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,MAAM,EACN,MAAM,EACN,WAAW,EACX,YAAY,EACZ,MAAM,EACN,UAAU,EACV,WAAW,EACX,MAAM,EACN,OAAO,EACP,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,YAAY,EACZ,WAAW,EACX,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,EACtB,0BAA0B,EAC1B,iBAAiB,EACjB,gBAAgB,EAChB,OAAO,EACP,EAAE,EACF,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,gBAAgB,EAChB,aAAa,GACd,MAAM,MAAM,CAAC;AACd,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,EACzB,sCAAsC,EACtC,WAAW,EACX,gBAAgB,GACjB,MAAM,MAAM,CAAC;AAGd,YAAY,EACV,cAAc,EACd,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,WAAW;AACX,oDAAoD;AACpD,eAAe,EACf,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,SAAS;AACT,6BAA6B;AAC7B,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,MAAM,EACN,KAAK,GACN,MAAM,aAAa,CAAC;AAGrB,YAAY,EACV,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,cAAc,EACd,cAAc,GACf,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG5E,YAAY,EACV,OAAO,EACP,MAAM,EACN,QAAQ,EACR,MAAM,EACN,eAAe,EACf,QAAQ,EACR,UAAU,GACX,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,8BAA8B,EAC9B,cAAc,EACd,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,EACf,eAAe,EACf,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,WAAW,EACX,kBAAkB,GACnB,MAAM,MAAM,CAAC;AACd,YAAY,EACV,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,0BAA0B,EAC1B,UAAU,EACV,UAAU,EACV,UAAU,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,WAAW,EACX,MAAM,EACN,MAAM,EACN,WAAW,EACX,YAAY,EACZ,MAAM,EACN,UAAU,EACV,WAAW,EACX,MAAM,EACN,OAAO,EACP,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,YAAY,EACZ,WAAW,EACX,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,EACtB,0BAA0B,EAC1B,iBAAiB,EACjB,gBAAgB,EAChB,OAAO,EACP,EAAE,EACF,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,gBAAgB,EAChB,aAAa,GACd,MAAM,MAAM,CAAC;AACd,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,EACzB,sCAAsC,EACtC,WAAW,EACX,gBAAgB,GACjB,MAAM,MAAM,CAAC;AAGd,YAAY,EACV,cAAc,EACd,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,WAAW;AACX,oDAAoD;AACpD,eAAe,EACf,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,SAAS;AACT,6BAA6B;AAC7B,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,MAAM,EACN,KAAK,GACN,MAAM,aAAa,CAAC;AAGrB,YAAY,EACV,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,cAAc,EACd,cAAc,GACf,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG5E,YAAY,EACV,OAAO,EACP,MAAM,EACN,QAAQ,EACR,MAAM,EACN,eAAe,EACf,QAAQ,EACR,UAAU,GACX,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAIjF,YAAY,EACV,QAAQ,EACR,IAAI,EACJ,UAAU,EACV,MAAM,EACN,OAAO,EACP,OAAO,EACP,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGxF,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGtE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -39,6 +39,7 @@ export declare const CoordinateSchema: z.ZodObject<{
|
|
|
39
39
|
}>]>;
|
|
40
40
|
}, "strip", z.ZodTypeAny, {
|
|
41
41
|
type: "coordinate";
|
|
42
|
+
id: string;
|
|
42
43
|
position: [number, number] | import('./position').PolarPosition | {
|
|
43
44
|
direction: "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right";
|
|
44
45
|
of: string;
|
|
@@ -47,9 +48,9 @@ export declare const CoordinateSchema: z.ZodObject<{
|
|
|
47
48
|
of: string | [number, number] | import('./position').PolarPosition;
|
|
48
49
|
offset: [number, number];
|
|
49
50
|
};
|
|
50
|
-
id: string;
|
|
51
51
|
}, {
|
|
52
52
|
type: "coordinate";
|
|
53
|
+
id: string;
|
|
53
54
|
position: [number, number] | import('./position').PolarPosition | {
|
|
54
55
|
direction: "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right";
|
|
55
56
|
of: string;
|
|
@@ -58,7 +59,6 @@ export declare const CoordinateSchema: z.ZodObject<{
|
|
|
58
59
|
of: string | [number, number] | import('./position').PolarPosition;
|
|
59
60
|
offset: [number, number];
|
|
60
61
|
};
|
|
61
|
-
id: string;
|
|
62
62
|
}>;
|
|
63
63
|
/** Coordinate IR 类型 `{ type:'coordinate', id, position }` */
|
|
64
64
|
export type IRCoordinate = z.infer<typeof CoordinateSchema>;
|
package/dist/lib/ir/node.d.ts
CHANGED
|
@@ -374,6 +374,7 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
374
374
|
shape?: string | undefined;
|
|
375
375
|
scale?: number | undefined;
|
|
376
376
|
color?: string | undefined;
|
|
377
|
+
id?: string | undefined;
|
|
377
378
|
textColor?: string | undefined;
|
|
378
379
|
label?: {
|
|
379
380
|
text: string;
|
|
@@ -404,19 +405,18 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
404
405
|
rotate?: number | "none" | "radial" | "tangent" | undefined;
|
|
405
406
|
keepUpright?: boolean | undefined;
|
|
406
407
|
}[] | undefined;
|
|
408
|
+
roundedCorners?: number | undefined;
|
|
407
409
|
stroke?: string | undefined;
|
|
408
410
|
strokeWidth?: number | undefined;
|
|
409
411
|
fillOpacity?: number | undefined;
|
|
410
412
|
drawOpacity?: number | undefined;
|
|
411
413
|
zIndex?: number | undefined;
|
|
412
414
|
rotate?: number | undefined;
|
|
413
|
-
id?: string | undefined;
|
|
414
415
|
align?: "left" | "right" | "center" | undefined;
|
|
415
416
|
lineHeight?: number | undefined;
|
|
416
417
|
dashed?: boolean | undefined;
|
|
417
418
|
dotted?: boolean | undefined;
|
|
418
419
|
dashArray?: number[] | undefined;
|
|
419
|
-
roundedCorners?: number | undefined;
|
|
420
420
|
minimumWidth?: number | undefined;
|
|
421
421
|
minimumHeight?: number | undefined;
|
|
422
422
|
minimumSize?: number | undefined;
|
|
@@ -459,6 +459,7 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
459
459
|
shape?: string | undefined;
|
|
460
460
|
scale?: number | undefined;
|
|
461
461
|
color?: string | undefined;
|
|
462
|
+
id?: string | undefined;
|
|
462
463
|
textColor?: string | undefined;
|
|
463
464
|
label?: {
|
|
464
465
|
text: string;
|
|
@@ -489,19 +490,18 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
489
490
|
rotate?: number | "none" | "radial" | "tangent" | undefined;
|
|
490
491
|
keepUpright?: boolean | undefined;
|
|
491
492
|
}[] | undefined;
|
|
493
|
+
roundedCorners?: number | undefined;
|
|
492
494
|
stroke?: string | undefined;
|
|
493
495
|
strokeWidth?: number | undefined;
|
|
494
496
|
fillOpacity?: number | undefined;
|
|
495
497
|
drawOpacity?: number | undefined;
|
|
496
498
|
zIndex?: number | undefined;
|
|
497
499
|
rotate?: number | undefined;
|
|
498
|
-
id?: string | undefined;
|
|
499
500
|
align?: "left" | "right" | "center" | undefined;
|
|
500
501
|
lineHeight?: number | undefined;
|
|
501
502
|
dashed?: boolean | undefined;
|
|
502
503
|
dotted?: boolean | undefined;
|
|
503
504
|
dashArray?: number[] | undefined;
|
|
504
|
-
roundedCorners?: number | undefined;
|
|
505
505
|
minimumWidth?: number | undefined;
|
|
506
506
|
minimumHeight?: number | undefined;
|
|
507
507
|
minimumSize?: number | undefined;
|