package dev.llan.model.board; import dev.llan.model.board.generation.DirectedPoint; import java.util.List; public class Connection { private final DirectedPoint from; private final DirectedPoint to; public static Connection getClosestPair(List fromList, List toList) { assert fromList.size() > 0 && toList.size() > 0; int minFromIndex = 0; int minToIndex = 0; double minDistance = Double.POSITIVE_INFINITY; for(int i = 0; i < fromList.size(); i++) { for(int j = 0; j < toList.size(); j++) { double distance = Point.getDistance(fromList.get(i).point(), toList.get(j).point()); if(distance < minDistance) { minDistance = distance; minFromIndex = i; minToIndex = j; } } } return new Connection(fromList.get(minFromIndex), toList.get(minToIndex)); } public Connection(DirectedPoint from, DirectedPoint to) { this.from = from; this.to = to; } public DirectedPoint getFrom() { return from; } public DirectedPoint getTo() { return to; } }