Class EdgeGraph

  • Direct Known Subclasses:
    DissolveEdgeGraph

    public class EdgeGraph
    extends java.lang.Object
    A graph comprised of HalfEdges. It supports tracking the vertices in the graph via edges incident on them, to allow efficient lookup of edges and vertices.

    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 addEdge(Coordinate, Coordinate) can be overridden as well.

    • Field Detail

      • vertexMap

        private java.util.Map vertexMap
    • Constructor Detail

      • EdgeGraph

        public EdgeGraph()
    • Method Detail

      • createEdge

        protected HalfEdge createEdge​(Coordinate orig)
        Creates a single HalfEdge. Override to use a different HalfEdge subclass.
        Parameters:
        orig - the origin location
        Returns:
        a new HalfEdge with the given origin
      • addEdge

        public HalfEdge addEdge​(Coordinate orig,
                                Coordinate dest)
        Adds an edge between the coordinates orig and dest to this graph. Only valid edges can be added (in particular, zero-length segments cannot be added)
        Parameters:
        orig - the edge origin location
        dest - the edge destination location.
        Returns:
        the created edge
        See Also:
        isValidEdge(Coordinate, Coordinate)
      • isValidEdge

        public static boolean isValidEdge​(Coordinate orig,
                                          Coordinate dest)
        Tests if the given coordinates form a valid edge (with non-zero length).
        Parameters:
        orig - the start coordinate
        dest - the end coordinate
        Returns:
        true if the edge formed is valid
      • insert

        private HalfEdge insert​(Coordinate orig,
                                Coordinate dest,
                                HalfEdge eAdj)
        Inserts an edge not already present into the graph.
        Parameters:
        orig - the edge origin location
        dest - the edge destination location
        eAdj - an existing edge with same orig (if any)
        Returns:
        the created edge
      • getVertexEdges

        public java.util.Collection getVertexEdges()
      • findEdge

        public HalfEdge findEdge​(Coordinate orig,
                                 Coordinate dest)
        Finds an edge in this graph with the given origin and destination, if one exists.
        Parameters:
        orig - the origin location
        dest - the destination location.
        Returns:
        an edge with the given orig and dest, or null if none exists