/** * Returns a clone of the bezier path of this figure. */ public BezierPath getBezierPath() { return (BezierPath) path.clone(); }
@Override public Object getTransformRestoreData() { return path.clone(); }
public void setBezierPath(BezierPath newValue) { path = (BezierPath) newValue.clone(); this.setClosed(newValue.isClosed()); }
@Override public BezierFigure clone() { BezierFigure that = (BezierFigure) super.clone(); that.path = (BezierPath) this.path.clone(); that.invalidate(); return that; }
@Override public Rectangle2D.Double getDrawingArea() { if (cachedDrawingArea == null) { if (get(TRANSFORM) == null) { cachedDrawingArea = path.getBounds2D(); } else { BezierPath p2 = (BezierPath) path.clone(); p2.transform(get(TRANSFORM)); cachedDrawingArea = p2.getBounds2D(); } } return (Rectangle2D.Double) cachedDrawingArea.clone(); }
@Override public Rectangle2D.Double getDrawingArea() { if (cachedDrawingArea == null) { if (get(TRANSFORM) == null) { cachedDrawingArea = path.getBounds2D(); } else { BezierPath p2 = (BezierPath) path.clone(); p2.transform(get(TRANSFORM)); cachedDrawingArea = p2.getBounds2D(); } double strokeTotalWidth = AttributeKeys.getStrokeTotalWidth(this); double width = strokeTotalWidth / 2d; if (get(STROKE_JOIN) == BasicStroke.JOIN_MITER) { width *= get(STROKE_MITER_LIMIT); } else if (get(STROKE_CAP) != BasicStroke.CAP_BUTT) { width += strokeTotalWidth * 2; } Geom.grow(cachedDrawingArea, width, width); } return (Rectangle2D.Double) cachedDrawingArea.clone(); }
cappedPath = (BezierPath) path.clone(); if (isClosed()) { cappedPath.setClosed(true);