@meta2d/core 1.0.56 → 1.0.58

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 (299) hide show
  1. package/{index.ts → index.d.ts} +9 -9
  2. package/index.js +10 -0
  3. package/index.js.map +1 -0
  4. package/package.json +38 -39
  5. package/src/canvas/canvas.d.ts +456 -0
  6. package/src/canvas/canvas.js +7584 -0
  7. package/src/canvas/canvas.js.map +1 -0
  8. package/src/canvas/canvasImage.d.ts +27 -0
  9. package/src/canvas/canvasImage.js +441 -0
  10. package/src/canvas/canvasImage.js.map +1 -0
  11. package/src/canvas/canvasTemplate.d.ts +18 -0
  12. package/src/canvas/canvasTemplate.js +209 -0
  13. package/src/canvas/canvasTemplate.js.map +1 -0
  14. package/src/canvas/{index.ts → index.d.ts} +2 -2
  15. package/src/canvas/index.js +3 -0
  16. package/src/canvas/index.js.map +1 -0
  17. package/src/canvas/magnifierCanvas.d.ts +19 -0
  18. package/src/canvas/magnifierCanvas.js +102 -0
  19. package/src/canvas/magnifierCanvas.js.map +1 -0
  20. package/src/canvas/offscreen.d.ts +1 -0
  21. package/src/canvas/offscreen.js +14 -0
  22. package/src/canvas/offscreen.js.map +1 -0
  23. package/src/core.d.ts +479 -0
  24. package/src/core.js +4609 -0
  25. package/src/core.js.map +1 -0
  26. package/src/data.d.ts +34 -0
  27. package/src/data.js +85 -0
  28. package/src/data.js.map +1 -0
  29. package/src/diagrams/arrow.d.ts +4 -0
  30. package/src/diagrams/arrow.js +47 -0
  31. package/src/diagrams/arrow.js.map +1 -0
  32. package/src/diagrams/circle.d.ts +2 -0
  33. package/src/diagrams/circle.js +9 -0
  34. package/src/diagrams/circle.js.map +1 -0
  35. package/src/diagrams/cloud.d.ts +2 -0
  36. package/src/diagrams/cloud.js +12 -0
  37. package/src/diagrams/cloud.js.map +1 -0
  38. package/src/diagrams/cube.d.ts +2 -0
  39. package/src/diagrams/cube.js +68 -0
  40. package/src/diagrams/cube.js.map +1 -0
  41. package/src/diagrams/diamond.d.ts +2 -0
  42. package/src/diagrams/diamond.js +13 -0
  43. package/src/diagrams/diamond.js.map +1 -0
  44. package/src/diagrams/file.d.ts +2 -0
  45. package/src/diagrams/file.js +18 -0
  46. package/src/diagrams/file.js.map +1 -0
  47. package/src/diagrams/gif.d.ts +5 -0
  48. package/src/diagrams/gif.js +89 -0
  49. package/src/diagrams/gif.js.map +1 -0
  50. package/src/diagrams/hexagon.d.ts +2 -0
  51. package/src/diagrams/{hexagon.ts → hexagon.js} +55 -60
  52. package/src/diagrams/hexagon.js.map +1 -0
  53. package/src/diagrams/iframe.d.ts +2 -0
  54. package/src/diagrams/iframe.js +338 -0
  55. package/src/diagrams/iframe.js.map +1 -0
  56. package/src/diagrams/index.d.ts +71 -0
  57. package/src/diagrams/{index.ts → index.js} +77 -79
  58. package/src/diagrams/index.js.map +1 -0
  59. package/src/diagrams/line/arrow.d.ts +2 -0
  60. package/src/diagrams/line/arrow.js +128 -0
  61. package/src/diagrams/line/arrow.js.map +1 -0
  62. package/src/diagrams/line/curve.d.ts +16 -0
  63. package/src/diagrams/line/curve.js +227 -0
  64. package/src/diagrams/line/curve.js.map +1 -0
  65. package/src/diagrams/line/{index.ts → index.d.ts} +5 -5
  66. package/src/diagrams/line/index.js +6 -0
  67. package/src/diagrams/line/index.js.map +1 -0
  68. package/src/diagrams/line/line.d.ts +42 -0
  69. package/src/diagrams/line/line.js +375 -0
  70. package/src/diagrams/line/line.js.map +1 -0
  71. package/src/diagrams/line/polyline.d.ts +10 -0
  72. package/src/diagrams/line/polyline.js +627 -0
  73. package/src/diagrams/line/polyline.js.map +1 -0
  74. package/src/diagrams/line/smooth.d.ts +3 -0
  75. package/src/diagrams/line/smooth.js +136 -0
  76. package/src/diagrams/line/smooth.js.map +1 -0
  77. package/src/diagrams/message.d.ts +2 -0
  78. package/src/diagrams/message.js +15 -0
  79. package/src/diagrams/message.js.map +1 -0
  80. package/src/diagrams/mindLine.d.ts +3 -0
  81. package/src/diagrams/mindLine.js +30 -0
  82. package/src/diagrams/mindLine.js.map +1 -0
  83. package/src/diagrams/mindNode.d.ts +3 -0
  84. package/src/diagrams/mindNode.js +161 -0
  85. package/src/diagrams/mindNode.js.map +1 -0
  86. package/src/diagrams/panel.d.ts +2 -0
  87. package/src/diagrams/panel.js +131 -0
  88. package/src/diagrams/panel.js.map +1 -0
  89. package/src/diagrams/pentagon.d.ts +3 -0
  90. package/src/diagrams/pentagon.js +45 -0
  91. package/src/diagrams/pentagon.js.map +1 -0
  92. package/src/diagrams/pentagram.d.ts +3 -0
  93. package/src/diagrams/pentagram.js +51 -0
  94. package/src/diagrams/pentagram.js.map +1 -0
  95. package/src/diagrams/people.d.ts +2 -0
  96. package/src/diagrams/people.js +19 -0
  97. package/src/diagrams/people.js.map +1 -0
  98. package/src/diagrams/rectangle.d.ts +3 -0
  99. package/src/diagrams/rectangle.js +27 -0
  100. package/src/diagrams/rectangle.js.map +1 -0
  101. package/src/diagrams/svg/parse.d.ts +15 -0
  102. package/src/diagrams/svg/parse.js +279 -0
  103. package/src/diagrams/svg/parse.js.map +1 -0
  104. package/src/diagrams/svgPath.d.ts +2 -0
  105. package/src/diagrams/svgPath.js +29 -0
  106. package/src/diagrams/svgPath.js.map +1 -0
  107. package/src/diagrams/triangle.d.ts +3 -0
  108. package/src/diagrams/triangle.js +40 -0
  109. package/src/diagrams/triangle.js.map +1 -0
  110. package/src/diagrams/video.d.ts +5 -0
  111. package/src/diagrams/video.js +184 -0
  112. package/src/diagrams/video.js.map +1 -0
  113. package/src/dialog/dialog.d.ts +21 -0
  114. package/src/dialog/dialog.js +157 -0
  115. package/src/dialog/dialog.js.map +1 -0
  116. package/src/dialog/{index.ts → index.d.ts} +1 -1
  117. package/src/dialog/index.js +2 -0
  118. package/src/dialog/index.js.map +1 -0
  119. package/src/event/event.d.ts +102 -0
  120. package/src/event/event.js +22 -0
  121. package/src/event/event.js.map +1 -0
  122. package/src/event/{index.ts → index.d.ts} +1 -1
  123. package/src/event/index.js +2 -0
  124. package/src/event/index.js.map +1 -0
  125. package/src/map/{index.ts → index.d.ts} +1 -1
  126. package/src/map/index.js +2 -0
  127. package/src/map/index.js.map +1 -0
  128. package/src/map/map.d.ts +21 -0
  129. package/src/map/map.js +212 -0
  130. package/src/map/map.js.map +1 -0
  131. package/src/options.d.ts +130 -0
  132. package/src/options.js +80 -0
  133. package/src/options.js.map +1 -0
  134. package/src/pen/arrow.d.ts +4 -0
  135. package/src/pen/arrow.js +188 -0
  136. package/src/pen/arrow.js.map +1 -0
  137. package/src/pen/{index.ts → index.d.ts} +6 -6
  138. package/src/pen/index.js +7 -0
  139. package/src/pen/index.js.map +1 -0
  140. package/src/pen/math.d.ts +28 -0
  141. package/src/pen/math.js +213 -0
  142. package/src/pen/math.js.map +1 -0
  143. package/src/pen/model.d.ts +514 -0
  144. package/src/pen/model.js +210 -0
  145. package/src/pen/model.js.map +1 -0
  146. package/src/pen/plugin.d.ts +5 -0
  147. package/src/pen/plugin.js +58 -0
  148. package/src/pen/plugin.js.map +1 -0
  149. package/src/pen/render.d.ts +146 -0
  150. package/src/pen/render.js +3234 -0
  151. package/src/pen/render.js.map +1 -0
  152. package/src/pen/text.d.ts +8 -0
  153. package/src/pen/text.js +314 -0
  154. package/src/pen/text.js.map +1 -0
  155. package/src/pen/utils.d.ts +2 -0
  156. package/src/pen/utils.js +19 -0
  157. package/src/pen/utils.js.map +1 -0
  158. package/src/point/{index.ts → index.d.ts} +1 -1
  159. package/src/point/index.js +2 -0
  160. package/src/point/index.js.map +1 -0
  161. package/src/point/point.d.ts +65 -0
  162. package/src/point/point.js +178 -0
  163. package/src/point/point.js.map +1 -0
  164. package/src/rect/{index.ts → index.d.ts} +1 -1
  165. package/src/rect/index.js +2 -0
  166. package/src/rect/index.js.map +1 -0
  167. package/src/rect/rect.d.ts +52 -0
  168. package/src/rect/rect.js +427 -0
  169. package/src/rect/rect.js.map +1 -0
  170. package/src/rect/triangle.d.ts +2 -0
  171. package/src/rect/triangle.js +10 -0
  172. package/src/rect/triangle.js.map +1 -0
  173. package/src/scroll/{index.ts → index.d.ts} +1 -1
  174. package/src/scroll/index.js +2 -0
  175. package/src/scroll/index.js.map +1 -0
  176. package/src/scroll/scroll.d.ts +35 -0
  177. package/src/scroll/scroll.js +234 -0
  178. package/src/scroll/scroll.js.map +1 -0
  179. package/src/store/global.d.ts +25 -0
  180. package/src/store/global.js +18 -0
  181. package/src/store/global.js.map +1 -0
  182. package/src/store/{index.ts → index.d.ts} +2 -2
  183. package/src/store/index.js +3 -0
  184. package/src/store/index.js.map +1 -0
  185. package/src/store/store.d.ts +228 -0
  186. package/src/store/store.js +87 -0
  187. package/src/store/store.js.map +1 -0
  188. package/src/theme.d.ts +13 -0
  189. package/src/theme.js +23 -0
  190. package/src/theme.js.map +1 -0
  191. package/src/title/{index.ts → index.d.ts} +1 -1
  192. package/src/title/index.js +2 -0
  193. package/src/title/index.js.map +1 -0
  194. package/src/title/title.d.ts +30 -0
  195. package/src/title/title.js +99 -0
  196. package/src/title/title.js.map +1 -0
  197. package/src/tooltip/{index.ts → index.d.ts} +1 -1
  198. package/src/tooltip/index.js +2 -0
  199. package/src/tooltip/index.js.map +1 -0
  200. package/src/tooltip/tooltip.d.ts +40 -0
  201. package/src/tooltip/tooltip.js +172 -0
  202. package/src/tooltip/tooltip.js.map +1 -0
  203. package/src/utils/clone.d.ts +8 -0
  204. package/src/utils/clone.js +84 -0
  205. package/src/utils/clone.js.map +1 -0
  206. package/src/utils/color.d.ts +3 -0
  207. package/src/utils/color.js +110 -0
  208. package/src/utils/color.js.map +1 -0
  209. package/src/utils/error.d.ts +2 -0
  210. package/src/utils/error.js +6 -0
  211. package/src/utils/error.js.map +1 -0
  212. package/src/utils/file.d.ts +3 -0
  213. package/src/utils/file.js +40 -0
  214. package/src/utils/file.js.map +1 -0
  215. package/src/utils/{index.ts → index.d.ts} +9 -9
  216. package/src/utils/index.js +10 -0
  217. package/src/utils/index.js.map +1 -0
  218. package/src/utils/math.d.ts +18 -0
  219. package/src/utils/math.js +114 -0
  220. package/src/utils/math.js.map +1 -0
  221. package/src/utils/object.d.ts +2 -0
  222. package/src/utils/object.js +21 -0
  223. package/src/utils/object.js.map +1 -0
  224. package/src/utils/padding.d.ts +7 -0
  225. package/src/utils/padding.js +47 -0
  226. package/src/utils/padding.js.map +1 -0
  227. package/src/utils/time.d.ts +1 -0
  228. package/src/utils/time.js +17 -0
  229. package/src/utils/time.js.map +1 -0
  230. package/src/utils/url.d.ts +4 -0
  231. package/src/utils/url.js +27 -0
  232. package/src/utils/url.js.map +1 -0
  233. package/src/utils/uuid.d.ts +4 -0
  234. package/src/utils/uuid.js +13 -0
  235. package/src/utils/uuid.js.map +1 -0
  236. package/README.md +0 -13
  237. package/package.build.json +0 -39
  238. package/src/canvas/canvas.ts +0 -8639
  239. package/src/canvas/canvasImage.ts +0 -525
  240. package/src/canvas/canvasTemplate.ts +0 -257
  241. package/src/canvas/magnifierCanvas.ts +0 -142
  242. package/src/canvas/offscreen.ts +0 -14
  243. package/src/core.ts +0 -5128
  244. package/src/data.ts +0 -86
  245. package/src/diagrams/arrow.ts +0 -50
  246. package/src/diagrams/circle.ts +0 -19
  247. package/src/diagrams/cloud.ts +0 -34
  248. package/src/diagrams/cube.ts +0 -94
  249. package/src/diagrams/diamond.ts +0 -14
  250. package/src/diagrams/file.ts +0 -19
  251. package/src/diagrams/gif.ts +0 -105
  252. package/src/diagrams/iframe.ts +0 -365
  253. package/src/diagrams/line/arrow.ts +0 -175
  254. package/src/diagrams/line/curve.ts +0 -260
  255. package/src/diagrams/line/line.ts +0 -409
  256. package/src/diagrams/line/polyline.ts +0 -676
  257. package/src/diagrams/line/smooth.ts +0 -133
  258. package/src/diagrams/message.ts +0 -17
  259. package/src/diagrams/mindLine.ts +0 -31
  260. package/src/diagrams/mindNode.ts +0 -177
  261. package/src/diagrams/panel.ts +0 -149
  262. package/src/diagrams/pentagon.ts +0 -48
  263. package/src/diagrams/pentagram.ts +0 -63
  264. package/src/diagrams/people.ts +0 -23
  265. package/src/diagrams/rectangle.ts +0 -29
  266. package/src/diagrams/svg/parse.ts +0 -319
  267. package/src/diagrams/svgPath.ts +0 -53
  268. package/src/diagrams/triangle.ts +0 -43
  269. package/src/diagrams/video.ts +0 -202
  270. package/src/dialog/dialog.ts +0 -177
  271. package/src/event/event.ts +0 -142
  272. package/src/map/map.ts +0 -239
  273. package/src/options.ts +0 -205
  274. package/src/pen/arrow.ts +0 -259
  275. package/src/pen/math.ts +0 -253
  276. package/src/pen/model.ts +0 -785
  277. package/src/pen/plugin.ts +0 -57
  278. package/src/pen/render.ts +0 -3725
  279. package/src/pen/text.ts +0 -341
  280. package/src/pen/utils.ts +0 -21
  281. package/src/point/point.ts +0 -232
  282. package/src/rect/rect.ts +0 -507
  283. package/src/rect/triangle.ts +0 -16
  284. package/src/scroll/scroll.ts +0 -277
  285. package/src/store/global.ts +0 -38
  286. package/src/store/store.ts +0 -293
  287. package/src/theme.ts +0 -35
  288. package/src/title/title.ts +0 -115
  289. package/src/tooltip/tooltip.ts +0 -199
  290. package/src/utils/clone.ts +0 -79
  291. package/src/utils/color.ts +0 -126
  292. package/src/utils/error.ts +0 -7
  293. package/src/utils/file.ts +0 -46
  294. package/src/utils/math.ts +0 -120
  295. package/src/utils/object.ts +0 -23
  296. package/src/utils/padding.ts +0 -48
  297. package/src/utils/time.ts +0 -25
  298. package/src/utils/url.ts +0 -30
  299. package/src/utils/uuid.ts +0 -15
@@ -0,0 +1,375 @@
1
+ import { deleteTempAnchor, getFromAnchor, getGradientAnimatePath, getToAnchor } from '../../pen';
2
+ import { hitPoint } from '../../point';
3
+ import { getRectOfPoints, pointInSimpleRect } from '../../rect';
4
+ import { getBezierPoint, getQuadraticPoint } from './curve';
5
+ export function line(pen, ctx) {
6
+ const path = !ctx ? new Path2D() : ctx;
7
+ if (pen.lineName === 'line' || pen.lineName === 'polyline') {
8
+ if (pen.calculative.lineSmooth) {
9
+ let _path = getGradientAnimatePath(pen);
10
+ path.addPath(_path);
11
+ if (path instanceof Path2D)
12
+ return path;
13
+ }
14
+ }
15
+ const worldAnchors = pen.calculative.worldAnchors;
16
+ if (worldAnchors.length > 1) {
17
+ let from; // 上一个点
18
+ worldAnchors.forEach((pt) => {
19
+ if (from) {
20
+ draw(path, from, pt);
21
+ }
22
+ else {
23
+ pt.start = true;
24
+ }
25
+ from = pt;
26
+ });
27
+ if (pen.close) {
28
+ if (pen.lineName === 'curve') {
29
+ draw(path, from, worldAnchors[0]);
30
+ }
31
+ else {
32
+ path.closePath();
33
+ }
34
+ }
35
+ }
36
+ if (path instanceof Path2D)
37
+ return path;
38
+ }
39
+ export function lineSegment(store, pen, mousedwon) {
40
+ if (!pen.calculative.worldAnchors) {
41
+ pen.calculative.worldAnchors = [];
42
+ }
43
+ if (pen.calculative.worldAnchors.length < 2 || pen.anchors?.length > 1) {
44
+ return;
45
+ }
46
+ const from = getFromAnchor(pen);
47
+ const to = getToAnchor(pen);
48
+ if (!from || !to || !to.id || from === to) {
49
+ return;
50
+ }
51
+ from.next = undefined;
52
+ deleteTempAnchor(pen);
53
+ to.prev = undefined;
54
+ pen.calculative.worldAnchors.push(to);
55
+ }
56
+ function draw(path, from, to) {
57
+ if (!to || to.isTemp) {
58
+ return;
59
+ }
60
+ from.start && path.moveTo(from.x, from.y);
61
+ if (from.next) {
62
+ if (to.prev) {
63
+ path.bezierCurveTo(from.next.x, from.next.y, to.prev.x, to.prev.y, to.x, to.y);
64
+ }
65
+ else {
66
+ path.quadraticCurveTo(from.next.x, from.next.y, to.x, to.y);
67
+ }
68
+ }
69
+ else {
70
+ if (to.prev) {
71
+ path.quadraticCurveTo(to.prev.x, to.prev.y, to.x, to.y);
72
+ }
73
+ else {
74
+ path.lineTo(to.x, to.y);
75
+ }
76
+ }
77
+ }
78
+ export function getLineRect(pen) {
79
+ getLineLength(pen);
80
+ return getRectOfPoints(getLinePoints(pen));
81
+ }
82
+ /**
83
+ * 获取连线的 points ,并非 worldAnchors ,worldAnchors 之前的路径点也会记录
84
+ */
85
+ export function getLinePoints(pen) {
86
+ const pts = [];
87
+ let from; // 上一个点
88
+ pen.calculative.worldAnchors.forEach((pt) => {
89
+ pts.push(pt);
90
+ from && pts.push(...getPoints(from, pt, pen));
91
+ from = pt;
92
+ });
93
+ if (pen.close && pen.calculative.worldAnchors.length > 1) {
94
+ pts.push(...getPoints(from, pen.calculative.worldAnchors[0], pen));
95
+ }
96
+ return pts;
97
+ }
98
+ export function getLineR(pen) {
99
+ return pen?.lineWidth ? pen.lineWidth / 2 + 4 : 4;
100
+ }
101
+ export function getPoints(from, to, pen) {
102
+ const pts = [];
103
+ if (!to) {
104
+ return pts;
105
+ }
106
+ let step = 0.02;
107
+ if (from.lineLength) {
108
+ const r = getLineR(pen);
109
+ step = r / from.lineLength;
110
+ }
111
+ if (from.next) {
112
+ if (to.prev) {
113
+ for (let i = step; i < 1; i += step) {
114
+ pts.push(getBezierPoint(i, from, from.next, to.prev, to));
115
+ }
116
+ }
117
+ else {
118
+ for (let i = step; i < 1; i += step) {
119
+ pts.push(getQuadraticPoint(i, from, from.next, to));
120
+ }
121
+ }
122
+ }
123
+ else {
124
+ if (to.prev) {
125
+ for (let i = step; i < 1; i += step) {
126
+ pts.push(getQuadraticPoint(i, from, to.prev, to));
127
+ }
128
+ }
129
+ else {
130
+ pts.push({ x: to.x, y: to.y });
131
+ }
132
+ }
133
+ if (pts.length > 1) {
134
+ from.curvePoints = pts;
135
+ }
136
+ return pts;
137
+ }
138
+ export function pointInLine(pt, pen) {
139
+ const r = getLineR(pen);
140
+ let i = 0;
141
+ let from; // 上一个点
142
+ let point;
143
+ for (const anchor of pen.calculative.worldAnchors) {
144
+ if (from) {
145
+ point = pointInLineSegment(pt, from, anchor, r);
146
+ if (point) {
147
+ return {
148
+ i,
149
+ point,
150
+ };
151
+ }
152
+ ++i;
153
+ }
154
+ from = anchor;
155
+ }
156
+ if (pen.close &&
157
+ pen.calculative.worldAnchors.length > 1 &&
158
+ (point = pointInLineSegment(pt, from, pen.calculative.worldAnchors[0], r))) {
159
+ return {
160
+ i,
161
+ point,
162
+ };
163
+ }
164
+ }
165
+ export function pointInLineSegment(pt, pt1, pt2, r = 4) {
166
+ if (!pt1.next && !pt2.prev) {
167
+ const { x: x1, y: y1 } = pt1;
168
+ const { x: x2, y: y2 } = pt2;
169
+ const minX = Math.min(x1, x2);
170
+ const maxX = Math.max(x1, x2);
171
+ const minY = Math.min(y1, y2);
172
+ const maxY = Math.max(y1, y2);
173
+ if (!(pt.x >= minX - r &&
174
+ pt.x <= maxX + r &&
175
+ pt.y >= minY - r &&
176
+ pt.y <= maxY + r)) {
177
+ return;
178
+ }
179
+ return pointToLine(pt, pt1, pt2, r);
180
+ }
181
+ else if (pt1.curvePoints) {
182
+ for (const point of pt1.curvePoints) {
183
+ if (hitPoint(pt, point, r)) {
184
+ return point;
185
+ }
186
+ }
187
+ }
188
+ }
189
+ export function pointToLine(pt, pt1, pt2, r = 4) {
190
+ // 竖线
191
+ if (pt1.x === pt2.x) {
192
+ const len = Math.abs(pt.x - pt1.x);
193
+ if (len <= r) {
194
+ return {
195
+ x: pt1.x,
196
+ y: pt.y,
197
+ };
198
+ }
199
+ }
200
+ else {
201
+ const A = (pt1.y - pt2.y) / (pt1.x - pt2.x);
202
+ const B = pt1.y - A * pt1.x;
203
+ const len = Math.abs((A * pt.x + B - pt.y) / Math.sqrt(A * A + 1));
204
+ if (len <= r) {
205
+ const m = pt.x + A * pt.y;
206
+ const x = (m - A * B) / (A * A + 1);
207
+ return {
208
+ x,
209
+ y: A * x + B,
210
+ };
211
+ }
212
+ }
213
+ }
214
+ function lineLen(from, cp1, cp2, to) {
215
+ if (!cp1 && !cp2) {
216
+ return (Math.sqrt(Math.pow(Math.abs(from.x - to.x), 2) +
217
+ Math.pow(Math.abs(from.y - to.y), 2)) || 0);
218
+ }
219
+ const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
220
+ if (cp1 && cp2) {
221
+ path.setAttribute('d', `M${from.x} ${from.y} C${cp1.x} ${cp1.y} ${cp2.x} ${cp2.y} ${to.x} ${to.y}`);
222
+ }
223
+ else if (cp1) {
224
+ path.setAttribute('d', `M${from.x} ${from.y} Q${cp1.x} ${cp1.y} ${to.x} ${to.y}`);
225
+ }
226
+ else {
227
+ path.setAttribute('d', `M${from.x} ${from.y} Q${cp2.x} ${cp2.y} ${to.x} ${to.y}`);
228
+ }
229
+ return path.getTotalLength() || 0;
230
+ }
231
+ export function getLineLength(pen) {
232
+ if (pen.calculative.worldAnchors.length < 2) {
233
+ return 0;
234
+ }
235
+ let len = 0;
236
+ let from; // 上一个点
237
+ pen.calculative.worldAnchors.forEach((pt) => {
238
+ if (from) {
239
+ from.lineLength = lineLen(from, from.next, pt.prev, pt);
240
+ len += from.lineLength;
241
+ }
242
+ from = pt;
243
+ });
244
+ if (pen.close) {
245
+ // pen.close ,下一个点即第一个点
246
+ const to = getFromAnchor(pen);
247
+ from.lineLength = lineLen(from, from.next, to.prev, to);
248
+ len += from.lineLength;
249
+ }
250
+ if (pen.calculative.animatePos) {
251
+ pen.calculative.animatePos =
252
+ (len / pen.length) * pen.calculative.animatePos;
253
+ }
254
+ pen.length = len;
255
+ return len;
256
+ }
257
+ /**
258
+ * 连线在 rect 内, 连线与 rect 相交
259
+ */
260
+ export function lineInRect(line, rect) {
261
+ // 判断是直线还是贝塞尔
262
+ const worldAnchors = line.calculative.worldAnchors;
263
+ for (let index = 0; index < worldAnchors.length - 1; index++) {
264
+ const current = worldAnchors[index];
265
+ const next = worldAnchors[index + 1];
266
+ if (!current.next && !next.prev) {
267
+ // 线段
268
+ if (isLineIntersectRectangle(current, next, rect)) {
269
+ return true;
270
+ }
271
+ }
272
+ else {
273
+ // 贝塞尔
274
+ if (isBezierIntersectRectangle(current, next, rect)) {
275
+ return true;
276
+ }
277
+ }
278
+ }
279
+ return false;
280
+ }
281
+ /**
282
+ * 线段与矩形是否相交
283
+ * @param rect 矩形
284
+ */
285
+ export function isLineIntersectRectangle(pt1, pt2, rect) {
286
+ if (pointInSimpleRect(pt1, rect) || pointInSimpleRect(pt2, rect)) {
287
+ // 存在一个点在矩形内部
288
+ return true;
289
+ }
290
+ const linePointX1 = pt1.x;
291
+ const linePointY1 = pt1.y;
292
+ const linePointX2 = pt2.x;
293
+ const linePointY2 = pt2.y;
294
+ let rectangleLeftTopX = rect.x;
295
+ let rectangleLeftTopY = rect.y;
296
+ let rectangleRightBottomX = rect.ex;
297
+ let rectangleRightBottomY = rect.ey;
298
+ const lineHeight = linePointY1 - linePointY2;
299
+ const lineWidth = linePointX2 - linePointX1; // 计算叉乘
300
+ const c = linePointX1 * linePointY2 - linePointX2 * linePointY1;
301
+ if ((lineHeight * rectangleLeftTopX + lineWidth * rectangleLeftTopY + c >= 0 &&
302
+ lineHeight * rectangleRightBottomX +
303
+ lineWidth * rectangleRightBottomY +
304
+ c <=
305
+ 0) ||
306
+ (lineHeight * rectangleLeftTopX + lineWidth * rectangleLeftTopY + c <= 0 &&
307
+ lineHeight * rectangleRightBottomX +
308
+ lineWidth * rectangleRightBottomY +
309
+ c >=
310
+ 0) ||
311
+ (lineHeight * rectangleLeftTopX + lineWidth * rectangleRightBottomY + c >=
312
+ 0 &&
313
+ lineHeight * rectangleRightBottomX + lineWidth * rectangleLeftTopY + c <=
314
+ 0) ||
315
+ (lineHeight * rectangleLeftTopX + lineWidth * rectangleRightBottomY + c <=
316
+ 0 &&
317
+ lineHeight * rectangleRightBottomX + lineWidth * rectangleLeftTopY + c >=
318
+ 0)) {
319
+ if (rectangleLeftTopX > rectangleRightBottomX) {
320
+ const temp = rectangleLeftTopX;
321
+ rectangleLeftTopX = rectangleRightBottomX;
322
+ rectangleRightBottomX = temp;
323
+ }
324
+ if (rectangleLeftTopY < rectangleRightBottomY) {
325
+ const temp1 = rectangleLeftTopY;
326
+ rectangleLeftTopY = rectangleRightBottomY;
327
+ rectangleRightBottomY = temp1;
328
+ }
329
+ if ((linePointX1 < rectangleLeftTopX && linePointX2 < rectangleLeftTopX) ||
330
+ (linePointX1 > rectangleRightBottomX &&
331
+ linePointX2 > rectangleRightBottomX) ||
332
+ (linePointY1 > rectangleLeftTopY && linePointY2 > rectangleLeftTopY) ||
333
+ (linePointY1 < rectangleRightBottomY &&
334
+ linePointY2 < rectangleRightBottomY)) {
335
+ return false;
336
+ }
337
+ else {
338
+ return true;
339
+ }
340
+ }
341
+ else {
342
+ return false;
343
+ }
344
+ }
345
+ /**
346
+ * 贝塞尔曲线与矩形是否相交
347
+ * @param from 前点
348
+ * @param to 后点
349
+ * @param rect 矩形
350
+ */
351
+ export function isBezierIntersectRectangle(from, to, rect) {
352
+ const step = 0.02;
353
+ if (!from.next && !to.prev) {
354
+ // 直线
355
+ return isLineIntersectRectangle(from, to, rect);
356
+ }
357
+ else if (from.next && to.prev) {
358
+ for (let i = step; i < 1; i += step) {
359
+ const point = getBezierPoint(i, from, from.next, to.prev, to);
360
+ if (pointInSimpleRect(point, rect)) {
361
+ return true;
362
+ }
363
+ }
364
+ }
365
+ else if (from.next || to.prev) {
366
+ for (let i = step; i < 1; i += step) {
367
+ const point = getQuadraticPoint(i, from, from.next || to.prev, to);
368
+ if (pointInSimpleRect(point, rect)) {
369
+ return true;
370
+ }
371
+ }
372
+ }
373
+ return false;
374
+ }
375
+ //# sourceMappingURL=line.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"line.js","sourceRoot":"","sources":["../../../../../packages/core/src/diagrams/line/line.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { Pen } from '../../pen';
2
+ import { Point } from '../../point';
3
+ import { Meta2dStore } from '../../store';
4
+ export declare function polyline(store: Meta2dStore, pen: Pen, mousedwon?: Point): void;
5
+ export declare function anchorInHorizontal(pen: Pen, anchor: Point, from?: boolean): boolean;
6
+ export declare function anchorInVertical(pen: Pen, anchor: Point, from?: boolean): boolean;
7
+ export declare function translatePolylineAnchor(pen: Pen, anchor: Point, pt: {
8
+ x: number;
9
+ y: number;
10
+ }): void;