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<DirectedPoint> fromList, List<DirectedPoint> 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;
}
}