@meta2d/core 1.0.18 → 1.0.20

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/src/pen/model.js CHANGED
@@ -49,7 +49,7 @@ export var needCalcTextRectProps = [
49
49
  'ellipsis',
50
50
  'keepDecimal',
51
51
  ];
52
- export var needSetPenProps = ['x', 'y', 'width', 'height'];
52
+ export var needSetPenProps = ['x', 'y', 'width', 'height', 'flipX', 'flipY'];
53
53
  export var needPatchFlagsPenRectProps = [
54
54
  'paddingTop',
55
55
  'paddingRight',
@@ -182,5 +182,10 @@ export function clearLifeCycle(pen) {
182
182
  pen.onInput = undefined;
183
183
  pen.onChangeId = undefined;
184
184
  pen.onBinds = undefined;
185
+ pen.onStartVideo = undefined;
186
+ pen.onPauseVideo = undefined;
187
+ pen.onStopVideo = undefined;
188
+ pen.onRenderPenRaw = undefined;
189
+ pen.onKeyDown = undefined;
185
190
  }
186
191
  //# sourceMappingURL=model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../../packages/core/src/pen/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../../packages/core/src/pen/model.ts"],"names":[],"mappings":"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"}
@@ -31,7 +31,7 @@ export declare function getFont({ fontStyle, textDecoration, fontWeight, fontSiz
31
31
  lineHeight?: number;
32
32
  }): string;
33
33
  export declare function ctxFlip(ctx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D, pen: Pen): void;
34
- export declare function ctxRotate(ctx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D, pen: Pen): void;
34
+ export declare function ctxRotate(ctx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D, pen: Pen, noFlip?: boolean): void;
35
35
  export declare function renderPen(ctx: CanvasRenderingContext2D, pen: Pen): void;
36
36
  /**
37
37
  * 更改 ctx 的 lineCap 属性
package/src/pen/render.js CHANGED
@@ -653,7 +653,34 @@ export function drawImage(ctx, pen) {
653
653
  ctx.rotate((iconRotate * Math.PI) / 180);
654
654
  ctx.translate(-centerX, -centerY);
655
655
  }
656
- ctx.drawImage(img, x, y, width, height);
656
+ if (pen.imageRadius) {
657
+ ctx.save();
658
+ var wr = pen.calculative.imageRadius || 0, hr = wr;
659
+ var _d = pen.calculative.worldRect, _x = _d.x, _y = _d.y, w = _d.width, h = _d.height, ex = _d.ex, ey = _d.ey;
660
+ if (wr < 1) {
661
+ wr = w * wr;
662
+ hr = h * hr;
663
+ }
664
+ var r = wr < hr ? wr : hr;
665
+ if (w < 2 * r) {
666
+ r = w / 2;
667
+ }
668
+ if (h < 2 * r) {
669
+ r = h / 2;
670
+ }
671
+ ctx.beginPath();
672
+ ctx.moveTo(_x + r, _y);
673
+ ctx.arcTo(ex, _y, ex, ey, r);
674
+ ctx.arcTo(ex, ey, _x, ey, r);
675
+ ctx.arcTo(_x, ey, _x, _y, r);
676
+ ctx.arcTo(_x, _y, ex, _y, r);
677
+ ctx.clip();
678
+ ctx.drawImage(img, x, y, width, height);
679
+ ctx.restore();
680
+ }
681
+ else {
682
+ ctx.drawImage(img, x, y, width, height);
683
+ }
657
684
  }
658
685
  /**
659
686
  * 获取文字颜色, textColor 优先其次 color
@@ -883,16 +910,19 @@ export function ctxFlip(ctx, pen) {
883
910
  ctx.scale(1, -1);
884
911
  }
885
912
  }
886
- export function ctxRotate(ctx, pen) {
913
+ export function ctxRotate(ctx, pen, noFlip) {
914
+ if (noFlip === void 0) { noFlip = false; }
887
915
  var _a = pen.calculative.worldRect.center, x = _a.x, y = _a.y;
888
916
  ctx.translate(x, y);
889
917
  var rotate = (pen.calculative.rotate * Math.PI) / 180;
890
918
  // 目前只有水平和垂直翻转,都需要 * -1
891
- if (pen.calculative.flipX) {
892
- rotate *= -1;
893
- }
894
- else if (pen.calculative.flipY) {
895
- rotate *= -1;
919
+ if (!noFlip) {
920
+ if (pen.calculative.flipX) {
921
+ rotate *= -1;
922
+ }
923
+ if (pen.calculative.flipY) {
924
+ rotate *= -1;
925
+ }
896
926
  }
897
927
  ctx.rotate(rotate);
898
928
  ctx.translate(-x, -y);
@@ -902,6 +932,12 @@ export function renderPen(ctx, pen) {
902
932
  ctx.save();
903
933
  ctx.translate(0.5, 0.5);
904
934
  ctx.beginPath();
935
+ var store = pen.calculative.canvas.store;
936
+ var textFlip = pen.textFlip || store.options.textFlip;
937
+ var textRotate = pen.textRotate || store.options.textRotate;
938
+ if (!textFlip || !textRotate) {
939
+ ctx.save();
940
+ }
905
941
  ctxFlip(ctx, pen);
906
942
  if (pen.calculative.rotate && pen.name !== 'line') {
907
943
  ctxRotate(ctx, pen);
@@ -909,7 +945,6 @@ export function renderPen(ctx, pen) {
909
945
  if (pen.calculative.lineWidth > 1) {
910
946
  ctx.lineWidth = pen.calculative.lineWidth;
911
947
  }
912
- var store = pen.calculative.canvas.store;
913
948
  inspectRect(ctx, store, pen); // 审查 rect
914
949
  var fill;
915
950
  // 该变量控制在 hover active 状态下的节点是否设置填充颜色
@@ -1044,6 +1079,17 @@ export function renderPen(ctx, pen) {
1044
1079
  if (!(pen.image && pen.calculative.img) && pen.calculative.icon) {
1045
1080
  drawIcon(ctx, pen);
1046
1081
  }
1082
+ if (!textFlip || !textRotate) {
1083
+ ctx.restore();
1084
+ }
1085
+ if (textFlip && !textRotate) {
1086
+ ctxFlip(ctx, pen);
1087
+ }
1088
+ if (!textFlip && textRotate) {
1089
+ if (pen.calculative.rotate && pen.name !== 'line') {
1090
+ ctxRotate(ctx, pen, true);
1091
+ }
1092
+ }
1047
1093
  drawText(ctx, pen);
1048
1094
  if (pen.type === PenType.Line && pen.fillTexts) {
1049
1095
  try {
@@ -1101,7 +1147,13 @@ export function renderPenRaw(ctx, pen, rect) {
1101
1147
  // for canvas2svg
1102
1148
  (_c = (_b = ctx).setAttrs) === null || _c === void 0 ? void 0 : _c.call(_b, pen);
1103
1149
  // end
1150
+ var store = pen.calculative.canvas.store;
1151
+ var textFlip = pen.textFlip || store.options.textFlip;
1152
+ var textRotate = pen.textRotate || store.options.textRotate;
1104
1153
  ctx.beginPath();
1154
+ if (!textFlip || !textRotate) {
1155
+ ctx.save();
1156
+ }
1105
1157
  if (pen.calculative.flipX) {
1106
1158
  if (rect) {
1107
1159
  ctx.translate(pen.calculative.worldRect.x + pen.calculative.worldRect.ex, 0);
@@ -1126,7 +1178,6 @@ export function renderPenRaw(ctx, pen, rect) {
1126
1178
  if (pen.calculative.lineWidth > 1) {
1127
1179
  ctx.lineWidth = pen.calculative.lineWidth;
1128
1180
  }
1129
- var store = pen.calculative.canvas.store;
1130
1181
  var fill;
1131
1182
  if (pen.calculative.hover) {
1132
1183
  ctx.strokeStyle = pen.hoverColor || store.options.hoverColor;
@@ -1189,6 +1240,34 @@ export function renderPenRaw(ctx, pen, rect) {
1189
1240
  else if (pen.calculative.icon) {
1190
1241
  drawIcon(ctx, pen);
1191
1242
  }
1243
+ if (!textFlip || !textRotate) {
1244
+ ctx.restore();
1245
+ }
1246
+ if (textFlip && !textRotate) {
1247
+ if (pen.calculative.flipX) {
1248
+ if (rect) {
1249
+ ctx.translate(pen.calculative.worldRect.x + pen.calculative.worldRect.ex, 0);
1250
+ }
1251
+ else {
1252
+ ctx.translate(pen.calculative.worldRect.x + pen.calculative.worldRect.ex, 0);
1253
+ }
1254
+ ctx.scale(-1, 1);
1255
+ }
1256
+ if (pen.calculative.flipY) {
1257
+ if (rect) {
1258
+ ctx.translate(0, pen.calculative.worldRect.y + pen.calculative.worldRect.ey);
1259
+ }
1260
+ else {
1261
+ ctx.translate(0, pen.calculative.worldRect.y + pen.calculative.worldRect.ey);
1262
+ }
1263
+ ctx.scale(1, -1);
1264
+ }
1265
+ }
1266
+ if (!textFlip && textRotate) {
1267
+ if (pen.calculative.rotate && pen.name !== 'line') {
1268
+ ctxRotate(ctx, pen, true);
1269
+ }
1270
+ }
1192
1271
  drawText(ctx, pen);
1193
1272
  if (pen.type === PenType.Line && pen.fillTexts) {
1194
1273
  try {
@@ -1548,7 +1627,18 @@ export function calcWorldAnchors(pen) {
1548
1627
  var store = pen.calculative.canvas.store;
1549
1628
  var anchors = [];
1550
1629
  if (pen.anchors) {
1551
- pen.anchors.forEach(function (anchor) {
1630
+ var _anchors = deepClone(pen.anchors);
1631
+ if (pen.flipX) {
1632
+ _anchors.forEach(function (anchor) {
1633
+ anchor.x = 0.5 - (anchor.x - 0.5);
1634
+ });
1635
+ }
1636
+ if (pen.flipY) {
1637
+ _anchors.forEach(function (anchor) {
1638
+ anchor.y = 0.5 - (anchor.y - 0.5);
1639
+ });
1640
+ }
1641
+ _anchors.forEach(function (anchor) {
1552
1642
  anchors.push(calcWorldPointOfPen(pen, anchor));
1553
1643
  });
1554
1644
  }
@@ -1712,6 +1802,14 @@ export function facePen(pt, pen) {
1712
1802
  if (!pen || !pen.calculative || !pen.calculative.worldRect.center) {
1713
1803
  return Direction.None;
1714
1804
  }
1805
+ if (pt.anchorId) {
1806
+ var anchor = pen.anchors.filter(function (_anchor) { return _anchor.id === pt.anchorId; });
1807
+ if (anchor.length) {
1808
+ if (anchor[0].direction > -1) {
1809
+ return anchor[0].direction;
1810
+ }
1811
+ }
1812
+ }
1715
1813
  return facePoint(pt, pen.calculative.worldRect.center);
1716
1814
  }
1717
1815
  export function nearestAnchor(pen, pt) {
@@ -2459,14 +2557,14 @@ export function setChildValue(pen, data) {
2459
2557
  pen[k] = data[k];
2460
2558
  pen.calculative[k] = data[k];
2461
2559
  }
2462
- if (pen.calculative.canvas.parent.isCombine(pen) &&
2463
- pen.showChild === undefined) {
2464
- var children = pen.children;
2465
- children === null || children === void 0 ? void 0 : children.forEach(function (childId) {
2466
- var child = pen.calculative.canvas.store.pens[childId];
2467
- setChildValue(child, data);
2468
- });
2469
- }
2560
+ }
2561
+ if (pen.calculative.canvas.parent.isCombine(pen) &&
2562
+ pen.showChild === undefined) {
2563
+ var children = pen.children;
2564
+ children === null || children === void 0 ? void 0 : children.forEach(function (childId) {
2565
+ var child = pen.calculative.canvas.store.pens[childId];
2566
+ setChildValue(child, data);
2567
+ });
2470
2568
  }
2471
2569
  }
2472
2570
  //# sourceMappingURL=render.js.map