kopia lustrzana https://github.com/jameshball/osci-render
Removed graph package
rodzic
dd35221625
commit
10e0418ef4
|
@ -1,34 +0,0 @@
|
||||||
package graphs;
|
|
||||||
|
|
||||||
import shapes.Line;
|
|
||||||
import shapes.Vector2;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
// TODO: Implement Chinese postman solving.
|
|
||||||
|
|
||||||
public class Graph {
|
|
||||||
private Map<Vector2, Node> nodes;
|
|
||||||
|
|
||||||
public Graph(List<Line> lines) {
|
|
||||||
this.nodes = new HashMap<>();
|
|
||||||
|
|
||||||
for (Line line : lines) {
|
|
||||||
if (!nodes.containsKey(line.getA())) {
|
|
||||||
nodes.put(line.getA(), new Node(line.getA()));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!nodes.containsKey(line.getB())) {
|
|
||||||
nodes.put(line.getB(), new Node(line.getB()));
|
|
||||||
}
|
|
||||||
|
|
||||||
Node nodeA = nodes.get(line.getA());
|
|
||||||
Node nodeB = nodes.get(line.getB());
|
|
||||||
|
|
||||||
nodeA.addAdjacent(nodeB, line.getLength());
|
|
||||||
nodeB.addAdjacent(nodeA, line.getLength());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,53 +0,0 @@
|
||||||
package graphs;
|
|
||||||
|
|
||||||
import shapes.Vector2;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
public class Node {
|
|
||||||
private Vector2 location;
|
|
||||||
private List<Node> adjacentNodes;
|
|
||||||
private List<Double> adjacentWeights;
|
|
||||||
|
|
||||||
public Node(Vector2 location) {
|
|
||||||
this.location = location;
|
|
||||||
this.adjacentNodes = new ArrayList<>();
|
|
||||||
this.adjacentWeights = new ArrayList<>();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Vector2 getLocation() {
|
|
||||||
return location;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void addAdjacent(Node node, double weight) {
|
|
||||||
adjacentNodes.add(node);
|
|
||||||
adjacentWeights.add(weight);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Node getAdjacentNode(int index) {
|
|
||||||
return adjacentNodes.get(index);
|
|
||||||
}
|
|
||||||
|
|
||||||
public double getAdjacentWeight(int index) {
|
|
||||||
return adjacentWeights.get(index);
|
|
||||||
}
|
|
||||||
|
|
||||||
public int degree() {
|
|
||||||
return adjacentNodes.size();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object o) {
|
|
||||||
if (this == o) return true;
|
|
||||||
if (o == null || getClass() != o.getClass()) return false;
|
|
||||||
Node node = (Node) o;
|
|
||||||
return location.equals(node.location);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
return Objects.hash(location);
|
|
||||||
}
|
|
||||||
}
|
|
Ładowanie…
Reference in New Issue