/** * Recomputes the BezierPath, if it is invalid. */ public void validatePath() { if (generalPath == null) { generalPath = toGeneralPath(); } }
@Override public Shape toShape(final BezierFigure figure) { return figure.getBezierPath().toGeneralPath(); }
@Override public Shape toShape(final LineFigure figure) { return figure.getBezierPath().toGeneralPath(); }
@Override public Shape toShape(final BezierFigure figure) { return figure.getBezierPath().toGeneralPath(); }
public static void addToRegionOfInterest(final BezierPath path, final GeneralPathRegionOfInterest roi) { addToRegionOfInterest(path.toGeneralPath().getPathIterator(null), roi); }
@SuppressWarnings("unused") private static void show(final PathIterator iterator) { show(toBezierPath(iterator).toGeneralPath()); }
public static BezierPath op(final BezierPath path1, final BezierPath path2, final OP op) { final Area area1 = new Area(path1.toGeneralPath()); final Area area2 = new Area(path2.toGeneralPath()); switch (op) { case ADD: area1.add(area2); break; case XOR: area1.exclusiveOr(area2); break; case INTERSECT: area1.intersect(area2); break; case SUBTRACT: area1.subtract(area2); break; } return toBezierPath(area1.getPathIterator(new AffineTransform())); }
public static void main(final String[] args) { BezierPath path1 = new BezierPath(); path1.moveTo(0, 0); path1.lineTo(100, 0); path1.lineTo(100, 100); path1.lineTo(0, 0); final GeneralPath path2 = new GeneralPath(); path2.moveTo(0, 0); path2.lineTo(100, 0); path2.lineTo(100, 100); path2.closePath(); // path1 = toBezierPath(path2.getPathIterator(new AffineTransform())); final BezierPath path3 = new BezierPath(); path3.moveTo(0, 100); path3.lineTo(100, 0); path3.lineTo(100, 100); path3.lineTo(0, 100); path1 = subtract(path1, path3); show(path1.toGeneralPath()); }