Class PlanarGraph
java.lang.Object
org.locationtech.jts.geomgraph.PlanarGraph
- Direct Known Subclasses:
GeometryGraph
The computation of the
IntersectionMatrix relies on the use of a structure
called a "topology graph". The topology graph contains nodes and edges
corresponding to the nodes and line segments of a Geometry. Each
node and edge in the graph is labeled with its topological location relative to
the source geometry.
Note that there is no requirement that points of self-intersection be a vertex.
Thus to obtain a correct topology graph, Geometrys must be
self-noded before constructing their graphs.
Two fundamental operations are supported by topology graphs:
- Computing the intersections between all the edges and nodes of a single graph
- Computing the intersections between the edges and nodes of two different graphs
- Version:
- 1.7
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidAdd a set of edges to the graph.addNode(Coordinate coord) find(Coordinate coord) Find coordinate.findEdge(Coordinate p0, Coordinate p1) Returns the edge whose first two coordinates are p0 and p1findEdgeEnd(Edge e) Returns the EdgeEnd which has edge e as its base edge (MD 18 Feb 2002 - this should return a pair of edges)Returns the edge which starts at p0 and whose first segment is parallel to p1getNodes()protected voidinsertEdge(Edge e) booleanisBoundaryNode(int geomIndex, Coordinate coord) voidLink the DirectedEdges at the nodes of the graph.voidLink the DirectedEdges at the nodes of the graph.static voidFor nodes in the Collection, link the DirectedEdges at the node that are in the result.voidprintEdges(PrintStream out)
-
Field Details
-
edges
-
nodes
-
edgeEndList
-
-
Constructor Details
-
PlanarGraph
-
PlanarGraph
public PlanarGraph()
-
-
Method Details
-
linkResultDirectedEdges
For nodes in the Collection, link the DirectedEdges at the node that are in the result. This allows clients to link only a subset of nodes in the graph, for efficiency (because they know that only a subset is of interest).- Parameters:
nodes- Collection of nodes
-
getEdgeIterator
-
getEdgeEnds
-
isBoundaryNode
-
insertEdge
-
add
-
getNodeIterator
-
getNodes
-
addNode
-
addNode
-
find
Find coordinate.- Parameters:
coord- Coordinate to find- Returns:
- the node if found; null otherwise
-
addEdges
Add a set of edges to the graph. For each edge two DirectedEdges will be created. DirectedEdges are NOT linked by this method.- Parameters:
edgesToAdd- Set of edges to add to the graph
-
linkResultDirectedEdges
public void linkResultDirectedEdges()Link the DirectedEdges at the nodes of the graph. This allows clients to link only a subset of nodes in the graph, for efficiency (because they know that only a subset is of interest). -
linkAllDirectedEdges
public void linkAllDirectedEdges()Link the DirectedEdges at the nodes of the graph. This allows clients to link only a subset of nodes in the graph, for efficiency (because they know that only a subset is of interest). -
findEdgeEnd
-
findEdge
Returns the edge whose first two coordinates are p0 and p1- Parameters:
p0- first coordinate to matchp1- second coordinate to match- Returns:
- the edge, if found
nullif the edge was not found
-
findEdgeInSameDirection
Returns the edge which starts at p0 and whose first segment is parallel to p1- Parameters:
p0- Starting coordinatep1- Coordinate used to establish direction- Returns:
- matching edge, if found
nullif the edge was not found
-
printEdges
-