@meta2d/core 1.0.0

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 (202) hide show
  1. package/index.d.ts +9 -0
  2. package/index.js +10 -0
  3. package/index.js.map +1 -0
  4. package/package.json +39 -0
  5. package/src/canvas/canvas.d.ts +399 -0
  6. package/src/canvas/canvas.js +5920 -0
  7. package/src/canvas/canvas.js.map +1 -0
  8. package/src/canvas/canvasImage.d.ts +25 -0
  9. package/src/canvas/canvasImage.js +343 -0
  10. package/src/canvas/canvasImage.js.map +1 -0
  11. package/src/canvas/index.d.ts +2 -0
  12. package/src/canvas/index.js +3 -0
  13. package/src/canvas/index.js.map +1 -0
  14. package/src/canvas/magnifierCanvas.d.ts +20 -0
  15. package/src/canvas/magnifierCanvas.js +99 -0
  16. package/src/canvas/magnifierCanvas.js.map +1 -0
  17. package/src/canvas/offscreen.d.ts +2 -0
  18. package/src/canvas/offscreen.js +14 -0
  19. package/src/canvas/offscreen.js.map +1 -0
  20. package/src/core.d.ts +348 -0
  21. package/src/core.js +2465 -0
  22. package/src/core.js.map +1 -0
  23. package/src/data.d.ts +34 -0
  24. package/src/data.js +83 -0
  25. package/src/data.js.map +1 -0
  26. package/src/diagrams/arrow.d.ts +4 -0
  27. package/src/diagrams/arrow.js +47 -0
  28. package/src/diagrams/arrow.js.map +1 -0
  29. package/src/diagrams/circle.d.ts +2 -0
  30. package/src/diagrams/circle.js +9 -0
  31. package/src/diagrams/circle.js.map +1 -0
  32. package/src/diagrams/cloud.d.ts +2 -0
  33. package/src/diagrams/cloud.js +12 -0
  34. package/src/diagrams/cloud.js.map +1 -0
  35. package/src/diagrams/cube.d.ts +2 -0
  36. package/src/diagrams/cube.js +70 -0
  37. package/src/diagrams/cube.js.map +1 -0
  38. package/src/diagrams/diamond.d.ts +2 -0
  39. package/src/diagrams/diamond.js +13 -0
  40. package/src/diagrams/diamond.js.map +1 -0
  41. package/src/diagrams/file.d.ts +2 -0
  42. package/src/diagrams/file.js +18 -0
  43. package/src/diagrams/file.js.map +1 -0
  44. package/src/diagrams/gif.d.ts +5 -0
  45. package/src/diagrams/gif.js +80 -0
  46. package/src/diagrams/gif.js.map +1 -0
  47. package/src/diagrams/hexagon.d.ts +2 -0
  48. package/src/diagrams/hexagon.js +55 -0
  49. package/src/diagrams/hexagon.js.map +1 -0
  50. package/src/diagrams/iframe.d.ts +5 -0
  51. package/src/diagrams/iframe.js +52 -0
  52. package/src/diagrams/iframe.js.map +1 -0
  53. package/src/diagrams/index.d.ts +67 -0
  54. package/src/diagrams/index.js +72 -0
  55. package/src/diagrams/index.js.map +1 -0
  56. package/src/diagrams/line/curve.d.ts +16 -0
  57. package/src/diagrams/line/curve.js +233 -0
  58. package/src/diagrams/line/curve.js.map +1 -0
  59. package/src/diagrams/line/index.d.ts +4 -0
  60. package/src/diagrams/line/index.js +5 -0
  61. package/src/diagrams/line/index.js.map +1 -0
  62. package/src/diagrams/line/line.d.ts +42 -0
  63. package/src/diagrams/line/line.js +419 -0
  64. package/src/diagrams/line/line.js.map +1 -0
  65. package/src/diagrams/line/polyline.d.ts +10 -0
  66. package/src/diagrams/line/polyline.js +622 -0
  67. package/src/diagrams/line/polyline.js.map +1 -0
  68. package/src/diagrams/line/smooth.d.ts +3 -0
  69. package/src/diagrams/line/smooth.js +174 -0
  70. package/src/diagrams/line/smooth.js.map +1 -0
  71. package/src/diagrams/message.d.ts +2 -0
  72. package/src/diagrams/message.js +15 -0
  73. package/src/diagrams/message.js.map +1 -0
  74. package/src/diagrams/mindLine.d.ts +3 -0
  75. package/src/diagrams/mindLine.js +31 -0
  76. package/src/diagrams/mindLine.js.map +1 -0
  77. package/src/diagrams/mindNode.d.ts +3 -0
  78. package/src/diagrams/mindNode.js +189 -0
  79. package/src/diagrams/mindNode.js.map +1 -0
  80. package/src/diagrams/pentagon.d.ts +3 -0
  81. package/src/diagrams/pentagon.js +46 -0
  82. package/src/diagrams/pentagon.js.map +1 -0
  83. package/src/diagrams/pentagram.d.ts +3 -0
  84. package/src/diagrams/pentagram.js +77 -0
  85. package/src/diagrams/pentagram.js.map +1 -0
  86. package/src/diagrams/people.d.ts +2 -0
  87. package/src/diagrams/people.js +19 -0
  88. package/src/diagrams/people.js.map +1 -0
  89. package/src/diagrams/rectangle.d.ts +3 -0
  90. package/src/diagrams/rectangle.js +26 -0
  91. package/src/diagrams/rectangle.js.map +1 -0
  92. package/src/diagrams/svg/parse.d.ts +15 -0
  93. package/src/diagrams/svg/parse.js +326 -0
  94. package/src/diagrams/svg/parse.js.map +1 -0
  95. package/src/diagrams/svgPath.d.ts +2 -0
  96. package/src/diagrams/svgPath.js +30 -0
  97. package/src/diagrams/svgPath.js.map +1 -0
  98. package/src/diagrams/triangle.d.ts +3 -0
  99. package/src/diagrams/triangle.js +41 -0
  100. package/src/diagrams/triangle.js.map +1 -0
  101. package/src/diagrams/video.d.ts +5 -0
  102. package/src/diagrams/video.js +143 -0
  103. package/src/diagrams/video.js.map +1 -0
  104. package/src/event/event.d.ts +45 -0
  105. package/src/event/event.js +17 -0
  106. package/src/event/event.js.map +1 -0
  107. package/src/event/index.d.ts +1 -0
  108. package/src/event/index.js +2 -0
  109. package/src/event/index.js.map +1 -0
  110. package/src/map/index.d.ts +1 -0
  111. package/src/map/index.js +2 -0
  112. package/src/map/index.js.map +1 -0
  113. package/src/map/map.d.ts +20 -0
  114. package/src/map/map.js +143 -0
  115. package/src/map/map.js.map +1 -0
  116. package/src/options.d.ts +70 -0
  117. package/src/options.js +61 -0
  118. package/src/options.js.map +1 -0
  119. package/src/pen/arrow.d.ts +4 -0
  120. package/src/pen/arrow.js +186 -0
  121. package/src/pen/arrow.js.map +1 -0
  122. package/src/pen/index.d.ts +5 -0
  123. package/src/pen/index.js +6 -0
  124. package/src/pen/index.js.map +1 -0
  125. package/src/pen/math.d.ts +28 -0
  126. package/src/pen/math.js +304 -0
  127. package/src/pen/math.js.map +1 -0
  128. package/src/pen/model.d.ts +354 -0
  129. package/src/pen/model.js +172 -0
  130. package/src/pen/model.js.map +1 -0
  131. package/src/pen/render.d.ts +132 -0
  132. package/src/pen/render.js +1908 -0
  133. package/src/pen/render.js.map +1 -0
  134. package/src/pen/text.d.ts +7 -0
  135. package/src/pen/text.js +311 -0
  136. package/src/pen/text.js.map +1 -0
  137. package/src/pen/utils.d.ts +2 -0
  138. package/src/pen/utils.js +41 -0
  139. package/src/pen/utils.js.map +1 -0
  140. package/src/point/index.d.ts +1 -0
  141. package/src/point/index.js +2 -0
  142. package/src/point/index.js.map +1 -0
  143. package/src/point/point.d.ts +53 -0
  144. package/src/point/point.js +119 -0
  145. package/src/point/point.js.map +1 -0
  146. package/src/rect/index.d.ts +1 -0
  147. package/src/rect/index.js +2 -0
  148. package/src/rect/index.js.map +1 -0
  149. package/src/rect/rect.d.ts +49 -0
  150. package/src/rect/rect.js +446 -0
  151. package/src/rect/rect.js.map +1 -0
  152. package/src/rect/triangle.d.ts +2 -0
  153. package/src/rect/triangle.js +10 -0
  154. package/src/rect/triangle.js.map +1 -0
  155. package/src/scroll/index.d.ts +1 -0
  156. package/src/scroll/index.js +2 -0
  157. package/src/scroll/index.js.map +1 -0
  158. package/src/scroll/scroll.d.ts +32 -0
  159. package/src/scroll/scroll.js +193 -0
  160. package/src/scroll/scroll.js.map +1 -0
  161. package/src/store/global.d.ts +25 -0
  162. package/src/store/global.js +18 -0
  163. package/src/store/global.js.map +1 -0
  164. package/src/store/index.d.ts +2 -0
  165. package/src/store/index.js +3 -0
  166. package/src/store/index.js.map +1 -0
  167. package/src/store/store.d.ts +104 -0
  168. package/src/store/store.js +73 -0
  169. package/src/store/store.js.map +1 -0
  170. package/src/tooltip/index.d.ts +1 -0
  171. package/src/tooltip/index.js +2 -0
  172. package/src/tooltip/index.js.map +1 -0
  173. package/src/tooltip/tooltip.d.ts +40 -0
  174. package/src/tooltip/tooltip.js +162 -0
  175. package/src/tooltip/tooltip.js.map +1 -0
  176. package/src/utils/browser.d.ts +1 -0
  177. package/src/utils/browser.js +4 -0
  178. package/src/utils/browser.js.map +1 -0
  179. package/src/utils/clone.d.ts +8 -0
  180. package/src/utils/clone.js +73 -0
  181. package/src/utils/clone.js.map +1 -0
  182. package/src/utils/color.d.ts +3 -0
  183. package/src/utils/color.js +126 -0
  184. package/src/utils/color.js.map +1 -0
  185. package/src/utils/error.d.ts +2 -0
  186. package/src/utils/error.js +6 -0
  187. package/src/utils/error.js.map +1 -0
  188. package/src/utils/file.d.ts +2 -0
  189. package/src/utils/file.js +84 -0
  190. package/src/utils/file.js.map +1 -0
  191. package/src/utils/index.d.ts +7 -0
  192. package/src/utils/index.js +8 -0
  193. package/src/utils/index.js.map +1 -0
  194. package/src/utils/math.d.ts +18 -0
  195. package/src/utils/math.js +141 -0
  196. package/src/utils/math.js.map +1 -0
  197. package/src/utils/padding.d.ts +7 -0
  198. package/src/utils/padding.js +47 -0
  199. package/src/utils/padding.js.map +1 -0
  200. package/src/utils/uuid.d.ts +4 -0
  201. package/src/utils/uuid.js +13 -0
  202. package/src/utils/uuid.js.map +1 -0
@@ -0,0 +1,119 @@
1
+ import { Direction } from '../data';
2
+ export var PrevNextType;
3
+ (function (PrevNextType) {
4
+ PrevNextType[PrevNextType["Mirror"] = 0] = "Mirror";
5
+ PrevNextType[PrevNextType["Bilateral"] = 1] = "Bilateral";
6
+ PrevNextType[PrevNextType["Free"] = 2] = "Free";
7
+ })(PrevNextType || (PrevNextType = {}));
8
+ export var TwoWay;
9
+ (function (TwoWay) {
10
+ TwoWay[TwoWay["Default"] = 0] = "Default";
11
+ TwoWay[TwoWay["In"] = 1] = "In";
12
+ TwoWay[TwoWay["Out"] = 2] = "Out";
13
+ TwoWay[TwoWay["DisableConnected"] = 3] = "DisableConnected";
14
+ TwoWay[TwoWay["DisableConnectTo"] = 4] = "DisableConnectTo";
15
+ TwoWay[TwoWay["Disable"] = 10] = "Disable";
16
+ })(TwoWay || (TwoWay = {}));
17
+ export function rotatePoint(pt, angle, center) {
18
+ if (!angle || angle % 360 === 0) {
19
+ return;
20
+ }
21
+ var a = (angle * Math.PI) / 180;
22
+ var x = (pt.x - center.x) * Math.cos(a) -
23
+ (pt.y - center.y) * Math.sin(a) +
24
+ center.x;
25
+ var y = (pt.x - center.x) * Math.sin(a) +
26
+ (pt.y - center.y) * Math.cos(a) +
27
+ center.y;
28
+ pt.x = x;
29
+ pt.y = y;
30
+ pt.prev && rotatePoint(pt.prev, angle, center);
31
+ pt.next && rotatePoint(pt.next, angle, center);
32
+ }
33
+ export function hitPoint(pt, target, radius) {
34
+ if (radius === void 0) { radius = 5; }
35
+ return (pt.x > target.x - radius &&
36
+ pt.x < target.x + radius &&
37
+ pt.y > target.y - radius &&
38
+ pt.y < target.y + radius);
39
+ }
40
+ export function scalePoint(pt, scale, center) {
41
+ pt.x = center.x - (center.x - pt.x) * scale;
42
+ pt.y = center.y - (center.y - pt.y) * scale;
43
+ }
44
+ export function calcRotate(pt, center) {
45
+ if (pt.x === center.x) {
46
+ return pt.y <= center.y ? 0 : 180;
47
+ }
48
+ if (pt.y === center.y) {
49
+ return pt.x < center.x ? 270 : 90;
50
+ }
51
+ var x = pt.x - center.x;
52
+ var y = pt.y - center.y;
53
+ var angle = (Math.atan(Math.abs(x / y)) / (2 * Math.PI)) * 360;
54
+ if (x > 0 && y > 0) {
55
+ angle = 180 - angle;
56
+ }
57
+ else if (x < 0 && y > 0) {
58
+ angle += 180;
59
+ }
60
+ else if (x < 0 && y < 0) {
61
+ angle = 360 - angle;
62
+ }
63
+ return angle;
64
+ }
65
+ export function distance(pt1, pt2) {
66
+ var x = pt1.x - pt2.x;
67
+ var y = pt1.y - pt2.y;
68
+ return Math.sqrt(x * x + y * y);
69
+ }
70
+ export function facePoint(pt, targetPt) {
71
+ var d = Direction.None;
72
+ if (!targetPt) {
73
+ return d;
74
+ }
75
+ var disX = pt.x - targetPt.x;
76
+ var disY = pt.y - targetPt.y;
77
+ if (Math.abs(disX) > Math.abs(disY)) {
78
+ if (disX > 0) {
79
+ d = Direction.Right;
80
+ }
81
+ else {
82
+ d = Direction.Left;
83
+ }
84
+ }
85
+ else {
86
+ if (disY > 0) {
87
+ d = Direction.Bottom;
88
+ }
89
+ else {
90
+ d = Direction.Up;
91
+ }
92
+ }
93
+ return d;
94
+ }
95
+ export function translatePoint(pt, x, y) {
96
+ if (!pt) {
97
+ return;
98
+ }
99
+ pt.x += x;
100
+ pt.y += y;
101
+ if (pt.next) {
102
+ pt.next.x += x;
103
+ pt.next.y += y;
104
+ }
105
+ if (pt.prev) {
106
+ pt.prev.x += x;
107
+ pt.prev.y += y;
108
+ }
109
+ }
110
+ /**
111
+ * 是否是同一个点
112
+ * @param pt1 点1
113
+ * @param pt2 点2
114
+ * @returns true 相同
115
+ */
116
+ export function samePoint(pt1, pt2) {
117
+ return pt1.anchorId === pt2.anchorId && pt1.connectTo === pt2.connectTo;
118
+ }
119
+ //# sourceMappingURL=point.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"point.js","sourceRoot":"","sources":["../../../../packages/core/src/point/point.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from './rect';
@@ -0,0 +1,2 @@
1
+ export * from './rect';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/core/src/rect/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { Pen } from '../pen';
2
+ import { Point } from '../point';
3
+ import { Padding } from '../utils';
4
+ export interface Rect {
5
+ x?: number;
6
+ y?: number;
7
+ ex?: number;
8
+ ey?: number;
9
+ width?: number;
10
+ height?: number;
11
+ rotate?: number;
12
+ center?: Point;
13
+ }
14
+ export declare function pointInRect(pt: Point, rect: Rect): boolean;
15
+ export declare function pointInSimpleRect(pt: Point, rect: Rect, r?: number): boolean;
16
+ export declare function calcCenter(rect: Rect): void;
17
+ export declare function calcRightBottom(rect: Rect): void;
18
+ export declare function pointInVertices(point: {
19
+ x: number;
20
+ y: number;
21
+ }, vertices: Point[]): boolean;
22
+ export declare function getRect(pens: Pen[]): Rect;
23
+ export declare function rectToPoints(rect: Rect): {
24
+ x: number;
25
+ y: number;
26
+ }[];
27
+ export declare function getRectOfPoints(points: Point[]): Rect;
28
+ export declare function rectInRect(source: Rect, target: Rect, allIn?: boolean): boolean;
29
+ /**
30
+ * 一个 rect 在另一个 rect 的 四个角,即水平区域不重合,垂直区域不重合
31
+ */
32
+ export declare function rectInFourAngRect(source: Rect, target: Rect): boolean;
33
+ /**
34
+ * 扩大 rect ,x,y,ex,ey 值都会变
35
+ * @param rect 原 rect ,无副作用
36
+ * @param size padding 类型,可传四个方向的值,也可以只传一个值
37
+ */
38
+ export declare function expandRect(rect: Rect, size: Padding): Rect;
39
+ export declare function translateRect(rect: Rect | Pen, x: number, y: number): void;
40
+ export declare function resizeRect(rect: Rect | Pen, offsetX: number, offsetY: number, resizeIndex: number): void;
41
+ export declare function scaleRect(rect: Rect, scale: number, center: Point): void;
42
+ export declare function calcRelativeRect(rect: Rect, worldRect: Rect): Rect;
43
+ /**
44
+ * 计算相对点 ,anchors 中的值都是百分比
45
+ * @param pt 绝对坐标
46
+ * @param worldRect 图形外接矩形
47
+ * @returns 相对坐标点
48
+ */
49
+ export declare function calcRelativePoint(pt: Point, worldRect: Rect): Point;
@@ -0,0 +1,446 @@
1
+ var __values = (this && this.__values) || function(o) {
2
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
3
+ if (m) return m.call(o);
4
+ if (o && typeof o.length === "number") return {
5
+ next: function () {
6
+ if (o && i >= o.length) o = void 0;
7
+ return { value: o && o[i++], done: !o };
8
+ }
9
+ };
10
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
11
+ };
12
+ var __read = (this && this.__read) || function (o, n) {
13
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
14
+ if (!m) return o;
15
+ var i = m.call(o), r, ar = [], e;
16
+ try {
17
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
18
+ }
19
+ catch (error) { e = { error: error }; }
20
+ finally {
21
+ try {
22
+ if (r && !r.done && (m = i["return"])) m.call(i);
23
+ }
24
+ finally { if (e) throw e.error; }
25
+ }
26
+ return ar;
27
+ };
28
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
29
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
30
+ if (ar || !(i in from)) {
31
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
32
+ ar[i] = from[i];
33
+ }
34
+ }
35
+ return to.concat(ar || Array.prototype.slice.call(from));
36
+ };
37
+ import { isEqual } from '../pen';
38
+ import { rotatePoint, scalePoint } from '../point';
39
+ import { formatPadding } from '../utils';
40
+ export function pointInRect(pt, rect) {
41
+ if (!rect) {
42
+ return;
43
+ }
44
+ if (rect.ex == null) {
45
+ calcRightBottom(rect);
46
+ }
47
+ if (!rect.rotate ||
48
+ // rect.width < 20 ||
49
+ // rect.height < 20 ||
50
+ rect.rotate % 360 === 0) {
51
+ return pt.x > rect.x && pt.x < rect.ex && pt.y > rect.y && pt.y < rect.ey;
52
+ }
53
+ if (!rect.center) {
54
+ calcCenter(rect);
55
+ }
56
+ var pts = [
57
+ { x: rect.x, y: rect.y },
58
+ { x: rect.ex, y: rect.y },
59
+ { x: rect.ex, y: rect.ey },
60
+ { x: rect.x, y: rect.ey },
61
+ ];
62
+ pts.forEach(function (item) {
63
+ rotatePoint(item, rect.rotate, rect.center);
64
+ });
65
+ return pointInVertices(pt, pts);
66
+ }
67
+ export function pointInSimpleRect(pt, rect, r) {
68
+ if (r === void 0) { r = 0; }
69
+ var x = rect.x, y = rect.y, ex = rect.ex, ey = rect.ey;
70
+ return pt.x >= x - r && pt.x <= ex + r && pt.y >= y - r && pt.y <= ey + r;
71
+ }
72
+ export function calcCenter(rect) {
73
+ if (!rect.center) {
74
+ rect.center = {};
75
+ }
76
+ rect.center.x = rect.x + rect.width / 2;
77
+ rect.center.y = rect.y + rect.height / 2;
78
+ }
79
+ export function calcRightBottom(rect) {
80
+ rect.ex = rect.x + rect.width;
81
+ rect.ey = rect.y + rect.height;
82
+ }
83
+ export function pointInVertices(point, vertices) {
84
+ var e_1, _a;
85
+ if (vertices.length < 3) {
86
+ return false;
87
+ }
88
+ var isIn = false;
89
+ var last = vertices[vertices.length - 1];
90
+ try {
91
+ for (var vertices_1 = __values(vertices), vertices_1_1 = vertices_1.next(); !vertices_1_1.done; vertices_1_1 = vertices_1.next()) {
92
+ var item = vertices_1_1.value;
93
+ if (last.y > point.y !== item.y > point.y) {
94
+ if (item.x + ((point.y - item.y) * (last.x - item.x)) / (last.y - item.y) >
95
+ point.x) {
96
+ isIn = !isIn;
97
+ }
98
+ }
99
+ last = item;
100
+ }
101
+ }
102
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
103
+ finally {
104
+ try {
105
+ if (vertices_1_1 && !vertices_1_1.done && (_a = vertices_1.return)) _a.call(vertices_1);
106
+ }
107
+ finally { if (e_1) throw e_1.error; }
108
+ }
109
+ return isIn;
110
+ }
111
+ export function getRect(pens) {
112
+ var points = [];
113
+ pens.forEach(function (pen) {
114
+ if (pen.isRuleLine) {
115
+ return;
116
+ }
117
+ var rect = pen.calculative.worldRect;
118
+ if (rect) {
119
+ var pts = rectToPoints(rect);
120
+ // rectToPoints 已经计算过 rotate 无需重复计算
121
+ points.push.apply(points, __spreadArray([], __read(pts), false));
122
+ }
123
+ });
124
+ var rect = getRectOfPoints(points);
125
+ calcCenter(rect);
126
+ return rect;
127
+ }
128
+ export function rectToPoints(rect) {
129
+ var pts = [
130
+ { x: rect.x, y: rect.y },
131
+ { x: rect.ex, y: rect.y },
132
+ { x: rect.ex, y: rect.ey },
133
+ { x: rect.x, y: rect.ey },
134
+ ];
135
+ if (rect.rotate) {
136
+ if (!rect.center) {
137
+ calcCenter(rect);
138
+ }
139
+ pts.forEach(function (pt) {
140
+ rotatePoint(pt, rect.rotate, rect.center);
141
+ });
142
+ }
143
+ return pts;
144
+ }
145
+ export function getRectOfPoints(points) {
146
+ var x = Infinity;
147
+ var y = Infinity;
148
+ var ex = -Infinity;
149
+ var ey = -Infinity;
150
+ points === null || points === void 0 ? void 0 : points.forEach(function (item) {
151
+ if (!isFinite(item.x) || !isFinite(item.y)) {
152
+ return;
153
+ }
154
+ x = Math.min(x, item.x);
155
+ y = Math.min(y, item.y);
156
+ ex = Math.max(ex, item.x);
157
+ ey = Math.max(ey, item.y);
158
+ });
159
+ return { x: x, y: y, ex: ex, ey: ey, width: ex - x, height: ey - y };
160
+ }
161
+ export function rectInRect(source, target, allIn) {
162
+ if (source.rotate) {
163
+ // 根据 rotate 扩大 rect
164
+ source = getRectOfPoints(rectToPoints(source)); // 更改 source 引用地址值,不影响原值
165
+ }
166
+ if (allIn) {
167
+ return (source.x > target.x &&
168
+ source.ex < target.ex &&
169
+ source.y > target.y &&
170
+ source.ey < target.ey);
171
+ }
172
+ return !(source.x > target.ex ||
173
+ source.ex < target.x ||
174
+ source.ey < target.y ||
175
+ source.y > target.ey);
176
+ }
177
+ /**
178
+ * 一个 rect 在另一个 rect 的 四个角,即水平区域不重合,垂直区域不重合
179
+ */
180
+ export function rectInFourAngRect(source, target) {
181
+ return ((target.x > source.ex || target.ex < source.x) &&
182
+ (target.y > source.ey || target.ey < source.y));
183
+ }
184
+ /**
185
+ * 扩大 rect ,x,y,ex,ey 值都会变
186
+ * @param rect 原 rect ,无副作用
187
+ * @param size padding 类型,可传四个方向的值,也可以只传一个值
188
+ */
189
+ export function expandRect(rect, size) {
190
+ var padding = formatPadding(size);
191
+ var retRect = {
192
+ x: rect.x - padding[3],
193
+ y: rect.y - padding[0],
194
+ width: rect.width + padding[1] + padding[3],
195
+ height: rect.height + padding[0] + padding[2],
196
+ };
197
+ calcRightBottom(retRect);
198
+ return retRect;
199
+ }
200
+ export function translateRect(rect, x, y) {
201
+ rect.x += x;
202
+ rect.y += y;
203
+ rect.ex += x;
204
+ rect.ey += y;
205
+ if (rect.center) {
206
+ rect.center.x += x;
207
+ rect.center.y += y;
208
+ }
209
+ }
210
+ /**
211
+ * 通过两条线段计算出相交的点
212
+ * @param line1 线段1
213
+ * @param line2 线段2
214
+ */
215
+ function getIntersectPoint(line1, line2) {
216
+ var k1 = (line1.to.y - line1.from.y) / (line1.to.x - line1.from.x);
217
+ var k2 = (line2.to.y - line2.from.y) / (line2.to.x - line2.from.x);
218
+ return getIntersectPointByK({
219
+ k: k1,
220
+ point: line1.from,
221
+ }, {
222
+ k: k2,
223
+ point: line2.from,
224
+ });
225
+ }
226
+ /**
227
+ * 该方法作用同上,不过此方法需要传的是 斜率
228
+ * @param line1 线段1
229
+ * @param line2 线段2
230
+ * @returns
231
+ */
232
+ function getIntersectPointByK(line1, line2) {
233
+ if (isEqual(line1.k, 0)) {
234
+ return {
235
+ x: line2.point.x,
236
+ y: line1.point.y,
237
+ };
238
+ }
239
+ else if (isEqual(line2.k, 0)) {
240
+ return {
241
+ x: line1.point.x,
242
+ y: line2.point.y,
243
+ };
244
+ }
245
+ var b1 = line1.point.y - line1.k * line1.point.x;
246
+ var b2 = line2.point.y - line2.k * line2.point.x;
247
+ var x = (b2 - b1) / (line1.k - line2.k);
248
+ var y = line1.k * x + b1;
249
+ return {
250
+ x: x,
251
+ y: y,
252
+ };
253
+ }
254
+ /**
255
+ * 通过 4 个点和旋转角度,计算出原矩形(旋转前的矩形)
256
+ * @param pts 4 个点
257
+ * @param rotate 旋转角度
258
+ */
259
+ function pointsToRect(pts, rotate) {
260
+ var e_2, _a;
261
+ // 1. 计算 center,认为 0,2 ;1,3 的连线相交就是 center 点
262
+ var center = getIntersectPoint({
263
+ from: pts[0],
264
+ to: pts[2],
265
+ }, {
266
+ from: pts[1],
267
+ to: pts[3],
268
+ });
269
+ try {
270
+ // 2. 把点反向转 rotate °
271
+ for (var pts_1 = __values(pts), pts_1_1 = pts_1.next(); !pts_1_1.done; pts_1_1 = pts_1.next()) {
272
+ var pt = pts_1_1.value;
273
+ rotatePoint(pt, -rotate, center);
274
+ }
275
+ }
276
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
277
+ finally {
278
+ try {
279
+ if (pts_1_1 && !pts_1_1.done && (_a = pts_1.return)) _a.call(pts_1);
280
+ }
281
+ finally { if (e_2) throw e_2.error; }
282
+ }
283
+ // 3. 计算区域
284
+ return getRectOfPoints(pts);
285
+ }
286
+ export function resizeRect(rect, offsetX, offsetY, resizeIndex) {
287
+ if (rect.rotate && rect.rotate % 360) {
288
+ // 计算出外边的四个点
289
+ var pts = rectToPoints(rect);
290
+ // 斜率不改变,提前计算
291
+ var k1 = (pts[0].y - pts[1].y) / (pts[0].x - pts[1].x);
292
+ var k2 = (pts[1].y - pts[2].y) / (pts[1].x - pts[2].x);
293
+ if (resizeIndex < 4) {
294
+ // 斜对角的四个点
295
+ // resize 的点
296
+ pts[resizeIndex].x += offsetX;
297
+ pts[resizeIndex].y += offsetY;
298
+ // 不变的点
299
+ var noChangePoint = pts[(resizeIndex + 2) % 4];
300
+ // 由于斜率是不变的,我们只需要根据斜率 和 已知的两点求出相交的 另外两点
301
+ pts[(resizeIndex + 1) % 4] = getIntersectPointByK({ k: resizeIndex % 2 ? k2 : k1, point: pts[resizeIndex] }, { k: resizeIndex % 2 ? k1 : k2, point: noChangePoint });
302
+ pts[(resizeIndex + 4 - 1) % 4] = getIntersectPointByK({ k: resizeIndex % 2 ? k1 : k2, point: pts[resizeIndex] }, { k: resizeIndex % 2 ? k2 : k1, point: noChangePoint });
303
+ }
304
+ else {
305
+ // 边缘四个点有两个点固定
306
+ var k = [4, 6].includes(resizeIndex) ? k2 : k1;
307
+ if (!isEqual(k, 0)) {
308
+ pts[resizeIndex % 4].y += offsetY;
309
+ pts[resizeIndex % 4].x += offsetY / k;
310
+ pts[(resizeIndex + 1) % 4].y += offsetY;
311
+ pts[(resizeIndex + 1) % 4].x += offsetY / k;
312
+ }
313
+ else {
314
+ pts[resizeIndex % 4].x += offsetX;
315
+ pts[(resizeIndex + 1) % 4].x += offsetX;
316
+ }
317
+ }
318
+ if (Math.pow((pts[0].x - pts[1].x), 2) + Math.pow((pts[0].y - pts[1].y), 2) < 25 ||
319
+ Math.pow((pts[1].x - pts[2].x), 2) + Math.pow((pts[1].y - pts[2].y), 2) < 25) {
320
+ // 距离小于 5 不能继续 resize 了
321
+ return;
322
+ }
323
+ var retRect = pointsToRect(pts, rect.rotate);
324
+ calcCenter(retRect);
325
+ Object.assign(rect, retRect);
326
+ return;
327
+ }
328
+ switch (resizeIndex) {
329
+ case 0:
330
+ if (rect.width - offsetX < 5 || rect.height - offsetY < 5) {
331
+ break;
332
+ }
333
+ rect.x += offsetX;
334
+ rect.y += offsetY;
335
+ rect.width -= offsetX;
336
+ rect.height -= offsetY;
337
+ break;
338
+ case 1:
339
+ if (rect.width + offsetX < 5 || rect.height - offsetY < 5) {
340
+ break;
341
+ }
342
+ rect.ex += offsetX;
343
+ rect.y += offsetY;
344
+ rect.width += offsetX;
345
+ rect.height -= offsetY;
346
+ break;
347
+ case 2:
348
+ if (rect.width + offsetX < 5 || rect.height + offsetY < 5) {
349
+ break;
350
+ }
351
+ rect.ex += offsetX;
352
+ rect.ey += offsetY;
353
+ rect.width += offsetX;
354
+ rect.height += offsetY;
355
+ break;
356
+ case 3:
357
+ if (rect.width - offsetX < 5 || rect.height + offsetY < 5) {
358
+ break;
359
+ }
360
+ rect.x += offsetX;
361
+ rect.ey += offsetY;
362
+ rect.width -= offsetX;
363
+ rect.height += offsetY;
364
+ break;
365
+ case 4:
366
+ if (rect.height - offsetY < 5) {
367
+ break;
368
+ }
369
+ rect.y += offsetY;
370
+ rect.height -= offsetY;
371
+ break;
372
+ case 5:
373
+ if (rect.width + offsetX < 5) {
374
+ break;
375
+ }
376
+ rect.ex += offsetX;
377
+ rect.width += offsetX;
378
+ break;
379
+ case 6:
380
+ if (rect.height + offsetY < 5) {
381
+ break;
382
+ }
383
+ rect.ey += offsetY;
384
+ rect.height += offsetY;
385
+ break;
386
+ case 7:
387
+ if (rect.width - offsetX < 5) {
388
+ break;
389
+ }
390
+ rect.x += offsetX;
391
+ rect.width -= offsetX;
392
+ break;
393
+ }
394
+ }
395
+ export function scaleRect(rect, scale, center) {
396
+ if (!rect) {
397
+ return;
398
+ }
399
+ rect.width *= scale;
400
+ rect.height *= scale;
401
+ scalePoint(rect, scale, center);
402
+ calcRightBottom(rect);
403
+ calcCenter(rect);
404
+ }
405
+ export function calcRelativeRect(rect, worldRect) {
406
+ var relRect = {
407
+ x: (rect.x - worldRect.x) / worldRect.width,
408
+ y: (rect.y - worldRect.y) / worldRect.height,
409
+ width: rect.width / worldRect.width,
410
+ height: rect.height / worldRect.height,
411
+ };
412
+ calcRightBottom(relRect);
413
+ return relRect;
414
+ }
415
+ /**
416
+ * 计算相对点 ,anchors 中的值都是百分比
417
+ * @param pt 绝对坐标
418
+ * @param worldRect 图形外接矩形
419
+ * @returns 相对坐标点
420
+ */
421
+ export function calcRelativePoint(pt, worldRect) {
422
+ var x = worldRect.x, y = worldRect.y, width = worldRect.width, height = worldRect.height;
423
+ var penId = pt.penId, connectTo = pt.connectTo;
424
+ var point = Object.assign({}, pt, {
425
+ x: width ? (pt.x - x) / width : 0,
426
+ y: height ? (pt.y - y) / height : 0,
427
+ });
428
+ if (pt.prev) {
429
+ point.prev = {
430
+ penId: penId,
431
+ connectTo: connectTo,
432
+ x: width ? (pt.prev.x - x) / width : 0,
433
+ y: height ? (pt.prev.y - y) / height : 0,
434
+ };
435
+ }
436
+ if (pt.next) {
437
+ point.next = {
438
+ penId: penId,
439
+ connectTo: connectTo,
440
+ x: width ? (pt.next.x - x) / width : 0,
441
+ y: height ? (pt.next.y - y) / height : 0,
442
+ };
443
+ }
444
+ return point;
445
+ }
446
+ //# sourceMappingURL=rect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rect.js","sourceRoot":"","sources":["../../../../packages/core/src/rect/rect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Pen } from '../pen';
2
+ export declare function triangle(pen: Pen): Path2D;
@@ -0,0 +1,10 @@
1
+ export function triangle(pen) {
2
+ var path = new Path2D();
3
+ path.moveTo(pen.calculative.worldRect.x + pen.calculative.worldRect.width / 2, pen.calculative.worldRect.y);
4
+ path.lineTo(pen.calculative.worldRect.x + pen.calculative.worldRect.width, pen.calculative.worldRect.y + pen.calculative.worldRect.height);
5
+ path.lineTo(pen.calculative.worldRect.x, pen.calculative.worldRect.y + pen.calculative.worldRect.height);
6
+ path.lineTo(pen.calculative.worldRect.x + pen.calculative.worldRect.width / 2, pen.calculative.worldRect.y);
7
+ path.closePath();
8
+ return path;
9
+ }
10
+ //# sourceMappingURL=triangle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"triangle.js","sourceRoot":"","sources":["../../../../packages/core/src/rect/triangle.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,QAAQ,CAAC,GAAQ;IAC/B,IAAM,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;IAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC5G,IAAI,CAAC,MAAM,CACT,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,EAC7D,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAC/D,CAAC;IACF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACzG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAE5G,IAAI,CAAC,SAAS,EAAE,CAAC;IAEjB,OAAO,IAAI,CAAC;AACd,CAAC"}