Advertisement
kliba

current

Mar 11th, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.08 KB | None | 0 0
  1. package intersectings;
  2.  
  3. import java.awt.*;
  4. import java.util.ArrayList;
  5. import java.util.List;
  6.  
  7. public final class IntersectedRectangles {
  8.  
  9.     /**
  10.      * It compares every input element to every input element (the element is not compared by itself) of the
  11.      * listOfRectangle array list.
  12.      * If finds intersect between two elements takes that to a list as a Rectangle object.
  13.      * @param listOfRectangles List what is compared to itself.
  14.      * @return listOfIntersections. Every element of it defines an overlapping area as a rectangle.
  15.      */
  16.     public static List<Rectangle> findIntersects(List<Rectangle> listOfRectangles) {
  17.         List<Rectangle> listOfIntersections = new ArrayList<>();
  18.  
  19.         for (int i = 0; i < listOfRectangles.size() - 1; i++) {
  20.             for (int j = i + 1; j < listOfRectangles.size(); j++) {
  21.                 listOfIntersections.add(listOfRectangles.get(i).intersection(listOfRectangles.get(j)));
  22.             }
  23.         }
  24.  
  25.         return listOfIntersections;
  26.     }
  27.  
  28.     /**
  29.      *
  30.      * @param listOfIntersecttions
  31.      * @return
  32.      */
  33.     public static List<Rectangle> findMultipleIntersects(List<Rectangle> listOfIntersecttions) {
  34.         List<Rectangle> listOfMultipleItersects = new ArrayList<>();
  35.  
  36.         for (int i = 0; i < listOfIntersecttions.size() - 1; i++) {
  37.             for (int j = i + 1; j < listOfIntersecttions.size(); j++) {
  38.                 listOfMultipleItersects.add(
  39.                         new Rectangle(listOfIntersecttions.get(i).intersection(listOfIntersecttions.get(j))));
  40.             }
  41.         }
  42.  
  43.         return listOfMultipleItersects;
  44.     }
  45.  
  46.     public static List<Rectangle> removeDuplicatesAndValidIntersects(List<Rectangle> listOfMultipleIntersections) {
  47.         List<Rectangle> listOfResult = new ArrayList<>();
  48.  
  49.         for (Rectangle rect: listOfMultipleIntersections) {
  50.             if (! listOfResult.contains(rect) &&
  51.                     rect.getWidth() > 0 && rect.getHeight() > 0) {
  52.                 listOfResult.add(rect);
  53.             }
  54.         }
  55.  
  56.         return listOfResult;
  57.     }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement