path.get(0).moveTo(sp); path.get(path.size() - 1).moveTo(ep); path.get(1).moveTo(sp.x + slantSize, sp.y); path.get(1).moveTo(sp.x + slantSize, sp.y); } else if ((soutcode & Geom.OUT_LEFT) != 0) { path.get(1).moveTo(sp.x - slantSize, sp.y); } else if ((soutcode & Geom.OUT_BOTTOM) != 0) { path.get(1).moveTo(sp.x, sp.y + slantSize); } else { path.get(1).moveTo(sp.x, sp.y - slantSize); path.get(3).moveTo(ep.x + slantSize, ep.y); } else if ((eoutcode & Geom.OUT_LEFT) != 0) { path.get(3).moveTo(ep.x - slantSize, ep.y); } else if ((eoutcode & Geom.OUT_BOTTOM) != 0) { path.get(3).moveTo(ep.x, ep.y + slantSize); } else { path.get(3).moveTo(ep.x, ep.y - slantSize); path.get(2).moveTo(path.get(1).x[0], path.get(3).y[0]); break; case Geom.OUT_TOP : path.get(2).moveTo(path.get(1).y[0], path.get(3).x[0]); break; case Geom.OUT_LEFT : path.get(2).moveTo(path.get(1).x[0], path.get(3).y[0]); break;
path.get(0).moveTo(sp); path.get(path.size() - 1).moveTo(ep); path.get(1).moveTo(sp.x+shoulderSize, (sp.y+ep.y)/2); path.get(1).x[2] = sp.x + shoulderSize; path.get(1).y[2] = ep.y - shoulderSize; path.get(2).mask = BezierPath.C1_MASK; path.get(2).moveTo((sp.x+ep.x)/2, ep.y-shoulderSize); path.get(2).x[1] = sp.x + shoulderSize; path.get(2).y[1] = ep.y - shoulderSize;
path.get(0).moveTo(sp); path.get(path.size() - 1).moveTo(ep); path.get(1).moveTo(sp.x + shoulderSize, sp.y); path.get(1).moveTo(sp.x + shoulderSize, sp.y); } else if ((soutcode & Geom.OUT_LEFT) != 0) { path.get(1).moveTo(sp.x - shoulderSize, sp.y); } else if ((soutcode & Geom.OUT_BOTTOM) != 0) { path.get(1).moveTo(sp.x, sp.y + shoulderSize); } else { path.get(1).moveTo(sp.x, sp.y - shoulderSize); path.get(3).moveTo(ep.x + shoulderSize, ep.y); } else if ((eoutcode & Geom.OUT_LEFT) != 0) { path.get(3).moveTo(ep.x - shoulderSize, ep.y); } else if ((eoutcode & Geom.OUT_BOTTOM) != 0) { path.get(3).moveTo(ep.x, ep.y + shoulderSize); } else { path.get(3).moveTo(ep.x, ep.y - shoulderSize); path.get(2).moveTo(path.get(1).x[0], path.get(3).y[0]); break; case Geom.OUT_TOP : path.get(2).moveTo(path.get(1).y[0], path.get(3).x[0]); break; case Geom.OUT_LEFT : path.get(2).moveTo(path.get(1).x[0], path.get(3).y[0]); break;
@Override public void trackStep(Point anchor, Point lead, int modifiersEx) { BezierFigure figure = getOwner(); figure.willChange(); Point2D.Double p = view.getConstrainer().constrainPoint(view.viewToDrawing(lead)); if (getTransformOwner().get(TRANSFORM) != null) { try { getTransformOwner().get(TRANSFORM).inverseTransform(p, p); } catch (NoninvertibleTransformException ex) { ex.printStackTrace(); } } BezierPath.Node n = figure.getNode(index); //fireAreaInvalidated(n); n.moveTo(p); //fireAreaInvalidated(n); figure.setNode(index, n); figure.changed(); }