private List<ZoneLogic> overlappedRooms(ZoneLogic zone) { List<ZoneLogic> overlapped = new ArrayList<ZoneLogic>(); Area currentZoneArea = new Area(TopologyUtils.convertToAWT(zone.getPojo().getShape())); for (Room r : currEnv.getRooms()) { if (!r.equals(selectedZone)) { Shape testZoneShape = TopologyUtils.convertToAWT(r.getPojo().getShape()); Area testArea = new Area(testZoneShape); testArea.intersect(currentZoneArea); if (!testArea.isEmpty()) { overlapped.add(r); } } } return overlapped; }
/** @param selectedZone */ @Override public void setSelectedZone(ZoneLogic selectedZone) { removeIndicators(); addIndicator(TopologyUtils.convertToAWT(selectedZone.getPojo().getShape())); this.selectedZone = selectedZone; createHandles(selectedZone); // highlight the other rooms for (Room room : getCurrEnv().getRooms()) { if (room != selectedZone) { if (zoneColors.get(room) == null) { zoneColors.put(room, new Color(rand(0, 255), rand(0, 255), rand(0, 255), LOW_OPACITY)); } addIndicator(TopologyUtils.convertToAWT(room.getPojo().getShape()), zoneColors.get(room)); } } }