118 lines
2.5 KiB
Java
118 lines
2.5 KiB
Java
package model.DCEL;
|
|
|
|
/**
|
|
* Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden.
|
|
*
|
|
* @Author: Armin Wolf
|
|
* @Email: a_wolf28@uni-muenster.de
|
|
* @Date: 30.05.2017.
|
|
*/
|
|
public class Edge {
|
|
|
|
private Node origin;
|
|
private Edge twin;
|
|
private Face incidentFace;
|
|
private Edge next;
|
|
private Edge prev;
|
|
private String id;
|
|
|
|
public Edge() {
|
|
new Edge(null, null, null, null, null);
|
|
}
|
|
|
|
public Edge(Node origin, Edge twin, Edge next, Edge prev, Face incidentFace) {
|
|
this.origin = origin;
|
|
this.twin = twin;
|
|
this.next = next;
|
|
this.prev = prev;
|
|
this.incidentFace = incidentFace;
|
|
}
|
|
|
|
public Node getOrigin() {
|
|
return origin;
|
|
}
|
|
|
|
public void setOrigin(Node origin) {
|
|
this.origin = origin;
|
|
}
|
|
|
|
public Edge getTwin() {
|
|
return twin;
|
|
}
|
|
|
|
public void setTwin(Edge twin) {
|
|
this.twin = twin;
|
|
}
|
|
|
|
public Face getIncidentFace() {
|
|
return incidentFace;
|
|
}
|
|
|
|
public void setIncidentFace(Face incidentFace) {
|
|
this.incidentFace = incidentFace;
|
|
}
|
|
|
|
public Edge getNext() {
|
|
return next;
|
|
}
|
|
|
|
public void setNext(Edge next) {
|
|
this.next = next;
|
|
}
|
|
|
|
public Edge getPrev() {
|
|
return prev;
|
|
}
|
|
|
|
public void setPrev(Edge prev) {
|
|
this.prev = prev;
|
|
}
|
|
|
|
public boolean hasNext() {
|
|
if (getNext() == null) {
|
|
return false;
|
|
} else {
|
|
return true;
|
|
}
|
|
|
|
}
|
|
|
|
public Edge insertNode(Node node) {
|
|
|
|
Edge edge = new Edge();
|
|
Edge twin = new Edge();
|
|
|
|
edge.setOrigin(node);
|
|
edge.setNext(this.getNext());
|
|
edge.setPrev(this);
|
|
edge.setTwin(twin);
|
|
edge.setIncidentFace(this.getIncidentFace());
|
|
|
|
twin.setOrigin(this.getTwin().getOrigin());
|
|
twin.setPrev(this.getTwin().getPrev());
|
|
twin.setNext(this.getTwin());
|
|
twin.setTwin(edge);
|
|
twin.setIncidentFace(this.getTwin().getIncidentFace());
|
|
|
|
Node twinOrigin = this.getTwin().getOrigin();
|
|
twinOrigin.setIncidentEdge(twin);
|
|
node.setIncidentEdge(edge);
|
|
|
|
this.getTwin().setOrigin(node);
|
|
this.getTwin().getPrev().setNext(twin);
|
|
this.getNext().setPrev(edge);
|
|
this.setNext(edge);
|
|
this.getTwin().setPrev(twin);
|
|
|
|
return edge;
|
|
}
|
|
|
|
public String getID() {
|
|
return this.id;
|
|
}
|
|
|
|
public void setID(String id) {
|
|
this.id = id;
|
|
}
|
|
}
|