This class may be subclassed to use a different subclass of HalfEdge, by overriding createEdge(Coordinate). If additional logic is required to initialize edges then EdgeGraph.addEdge(Coordinate, Coordinate) can be overridden as well.