/** * Check if another polygon intersects with this polygon * * @param polygon * @return true if intersects, false otherwise */ public boolean intersects(Polygon2D polygon) { if (!polygon.getBounds().intersects(getBounds())) { return false; } for (Enumeration e1 = edges(); e1.hasMoreElements(); ) { Line2D current = (Line2D) e1.nextElement(); for (Enumeration e2 = polygon.edges(); e2.hasMoreElements(); ) { Line2D test = (Line2D) e2.nextElement(); if (current.intersects(test)) { return true; } } } return false; }