0
1
2
4
3
edge 0
edge 3
edge 1
edge 2
Edge 0 added!
Edge
lastPoint
edge 0
0
Edge 1 added!
Edge
lastPoint
edge 0
0
edge 1
0
Edge 0 to remove!
Edge
lastPoint
edge 0
0
edge 1
0
Draw edge frompoint 0 to 1
Edge
lastPoint
edge 0
1
edge 1
0
x
Edge
lastPoint
edge 1
0
Edge 2 to add!
Edge
lastPoint
edge 1
0
edge 2
1
Sweepline at point 0
Sweepline at point 1
Sweepline at point 2
Edge 1 and 2 intersect!
Edge
lastPoint
edge 1
0
edge 2
1
Draw edge frompoint 1 to 2
Draw edge frompoint 0 to 2
Edge
lastPoint
edge 1
2
edge 2
2
Sweepline at point 3
Edge 1 to remove!
Edge
lastPoint
edge 1
2
edge 2
2
Draw edge frompoint 2 to 3
Edge
lastPoint
edge 1
3
edge 2
2
x
Edge
lastPoint
edge 2
2
Edge 3 to add!
Edge
lastPoint
edge 2
2
edge 3
3
Sweepline at point 4
Edge 2 to remove!
Edge
lastPoint
edge 2
2
edge 3
3
Draw edge frompoint 2 to 4
Edge
lastPoint
edge 2
4
edge 3
3
x
Edge
lastPoint
edge 3
3
Edge 3 to remove!
Edge
lastPoint
edge 3
3
Edge
lastPoint
edge 3
4
x
Note that while drawing, you do:
drawEdge(oldPoint, newPoint) if the edge is top to
bottom or horizontal (left to right), otherwise, you'd
do:
drawEdge(newPoint, oldPoint).
This is to ensure, the directions remain same