Mega Code Archive

 
Categories / Java / 2D Graphics GUI
 

Unions Rectangle2D

/*  * $Id: RectUtils.java,v 1.2 2008/02/28 14:38:48 david Exp $  *  * Copyright (c) 2008 Gaudenz Alder  *  */ import java.awt.geom.Rectangle2D; public class RectUtils {   /**    * Unions the pair of source <code>Rectangle2D</code> objects and puts the    * result into the returned <code>Rectangle2D</code> object. This method    * extends the Rectangle2D version by checking for null parameters, the    * returned value will also be <code>null</code> if the two input    * rectangles are <code>null</code>    *     * @param src1    *            the first of a pair of <code>Rectangle2D</code> objects to    *            be combined with each other    * @param src2    *            the second of a pair of <code>Rectangle2D</code> objects to    *            be combined with each other    *     */   public static Rectangle2D union(Rectangle2D src1, Rectangle2D src2) {     Rectangle2D result = null;     if (src1 == null && src2 == null) {       result = null;     } else if (src1 != null && src2 != null) {       double x1 = Math.min(src1.getMinX(), src2.getMinX());       double y1 = Math.min(src1.getMinY(), src2.getMinY());       double x2 = Math.max(src1.getMaxX(), src2.getMaxX());       double y2 = Math.max(src1.getMaxY(), src2.getMaxY());       result = new Rectangle2D.Double();       result.setFrameFromDiagonal(x1, y1, x2, y2);     } else if (src1 != null) {       double x1 = src1.getMinX();       double y1 = src1.getMinY();       double x2 = src1.getMaxX();       double y2 = src1.getMaxY();       result = new Rectangle2D.Double();       result.setFrameFromDiagonal(x1, y1, x2, y2);     } else {       // only src2 is non-null       double x1 = src2.getMinX();       double y1 = src2.getMinY();       double x2 = src2.getMaxX();       double y2 = src2.getMaxY();       result = new Rectangle2D.Double();       result.setFrameFromDiagonal(x1, y1, x2, y2);     }     return result;   } }