diff --git a/src/main/java/Model/Arrangement.java b/src/main/java/Model/Arrangement.java index 0a8010e..7069c61 100644 --- a/src/main/java/Model/Arrangement.java +++ b/src/main/java/Model/Arrangement.java @@ -11,51 +11,34 @@ import java.util.LinkedList; */ public class Arrangement { - private LinkedList nodes; - private LinkedList lines; + private LinkedList nodes; + private LinkedList lines; public Arrangement(){ nodes = new LinkedList<>(); lines = new LinkedList<>(); } - public void addNode(Model.Coordinates node){ + public void addNode(Coordinates node){ this.nodes.add(node); } - public void removeNode(int index){ - this.nodes.remove(index); - } - - public void removeNode(Model.Coordinates node){ - this.nodes.remove(node); - } - - public void addLine(Model.Coordinates line){ + public void addLine(Coordinates line){ this.lines.add(line); } - public void removeLine(int index){ - this.lines.remove(index); - } - - public void removeLine(Model.Coordinates line){ - this.lines.remove(line); - } - - public LinkedList getNodes() { + public LinkedList getNodes() { return nodes; } - public void setNodes(LinkedList nodes) { - this.nodes = nodes; - } - - public LinkedList getLines() { + public LinkedList getLines() { return lines; } - public void setLines(LinkedList lines) { + public void setLines(LinkedList lines) { this.lines = lines; } + + + } diff --git a/src/main/java/Model/DoublyConnectedEdgeList.java b/src/main/java/Model/DoublyConnectedEdgeList.java new file mode 100644 index 0000000..da54dd6 --- /dev/null +++ b/src/main/java/Model/DoublyConnectedEdgeList.java @@ -0,0 +1,85 @@ +package Model; + +import java.util.LinkedList; + +/** + * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. + * + * @Author: Armin Wolf + * @Email: a_wolf28@uni-muenster.de + * @Date: 30.05.2017. + */ +public class DoublyConnectedEdgeList { + + private LinkedList nodes; + private LinkedList edges; + private LinkedList faces; + + public DoublyConnectedEdgeList(){ + this.nodes = new LinkedList<>(); + this.edges = new LinkedList<>(); + this.faces = new LinkedList<>(); + } + + public Node createNode(Coordinates point, String id){ + + Node node = new Node(); + node.setCoordinates(point); + node.setID(id); + + return node; + } + + public Edge createEdge(Node source, Node destination, String id){ + + Edge edge = new Edge(); + Edge twin = new Edge(); + + edge.setOrigin(source); + edge.setID(id); + twin.setOrigin(destination); + twin.setID("#"+id); + + source.setIncidentEdge(edge); + destination.setIncidentEdge(twin); + + return edge; + } + + public Face createFace(Edge outerComponent, Edge innerComponent, String id){ + + Face face = new Face(); + face.setOuterComponent(outerComponent); + face.setID(id); + Edge tempEdge; + + if (!outerComponent.equals(null)){ + tempEdge = outerComponent; + do { + tempEdge.setIncidentFace(face); + tempEdge = tempEdge.getNext(); + } while (!tempEdge.equals(outerComponent)); + } + + if (!innerComponent.equals(null)){ + LinkedList componentlist = face.getInnerComponents(); + componentlist.add(innerComponent); + tempEdge = innerComponent; + do { + tempEdge.setIncidentFace(face); + tempEdge = tempEdge.getNext(); + } while (!tempEdge.equals(innerComponent)); + } + + return null; + } + + public void createConnection(Edge edge, Edge pred){ + edge.setPrev(pred); + pred.setNext(edge); + } + + + + +} diff --git a/src/main/java/Model/Edge.java b/src/main/java/Model/Edge.java index 7980b6d..61f907d 100644 --- a/src/main/java/Model/Edge.java +++ b/src/main/java/Model/Edge.java @@ -14,6 +14,7 @@ public class Edge { private Face incidentFace; private Edge next; private Edge prev; + private String id; public Edge(){ new Edge(null, null, null, null, null); @@ -86,7 +87,7 @@ public class Edge { edge.setPrev(this); edge.setTwin(twin); edge.setIncidentFace(this.getIncidentFace()); - + twin.setOrigin(this.getTwin().getOrigin()); twin.setPrev(this.getTwin().getPrev()); twin.setNext(this.getTwin()); @@ -105,4 +106,12 @@ public class Edge { return edge; } + + public String getID(){ + return this.id; + } + + public void setID(String id){ + this.id = id; + } } diff --git a/src/main/java/Model/Face.java b/src/main/java/Model/Face.java index a0133bc..7a96e73 100644 --- a/src/main/java/Model/Face.java +++ b/src/main/java/Model/Face.java @@ -14,6 +14,11 @@ public class Face { private LinkedList innerComponents; private Edge outerComponent; + private String id; + + public Face(){ + new Face(null, null); + } public Face(Edge outerComponent, LinkedList innerComponents){ this.outerComponent = outerComponent; @@ -101,4 +106,12 @@ public class Face { } } + + public String getID(){ + return this.id; + } + + public void setID(String id){ + this.id = id; + } } diff --git a/src/main/java/Model/Node.java b/src/main/java/Model/Node.java index bb47c42..ba90fcc 100644 --- a/src/main/java/Model/Node.java +++ b/src/main/java/Model/Node.java @@ -11,6 +11,7 @@ public class Node { private Coordinates coordinates; private Edge incidentEdge; + private String id; public Node(){ new Node(null, null); @@ -21,7 +22,6 @@ public class Node { this.incidentEdge = incidentEdge; } - public Coordinates getCoordinates() { return coordinates; } @@ -37,4 +37,12 @@ public class Node { public void setIncidentEdge(Edge incidentEdge) { this.incidentEdge = incidentEdge; } + + public String getID(){ + return this.id; + } + + public void setID(String id){ + this.id = id; + } }