under.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /**
  2. * @fileOverview
  3. *
  4. * 下划线连线
  5. *
  6. * @author: techird
  7. * @copyright: Baidu FEX, 2014
  8. */
  9. define(function(require, exports, module) {
  10. var kity = require('../core/kity');
  11. var connect = require('../core/connect');
  12. connect.register('under', function(node, parent, connection, width, color) {
  13. var box = node.getLayoutBox(),
  14. pBox = parent.getLayoutBox();
  15. var start, end, vector;
  16. var abs = Math.abs;
  17. var pathData = [];
  18. var side = box.x > pBox.x ? 'right' : 'left';
  19. var radius = node.getStyle('connect-radius');
  20. var underY = box.bottom + 3;
  21. var startY = parent.getType() == 'sub' ? pBox.bottom + 3 : pBox.cy;
  22. var p1, p2, p3, mx;
  23. if (side == 'right') {
  24. p1 = new kity.Point(pBox.right, startY);
  25. p2 = new kity.Point(box.left - 10, underY);
  26. p3 = new kity.Point(box.right, underY);
  27. } else {
  28. p1 = new kity.Point(pBox.left, startY);
  29. p2 = new kity.Point(box.right + 10, underY);
  30. p3 = new kity.Point(box.left, underY);
  31. }
  32. mx = (p1.x + p2.x) / 2;
  33. pathData.push('M', p1);
  34. pathData.push('C', mx, p1.y, mx, p2.y, p2);
  35. pathData.push('L', p3);
  36. connection.setMarker(null);
  37. connection.setPathData(pathData);
  38. });
  39. });