JTS Topology Suite version 1.12

## com.vividsolutions.jts.geomgraph Class PlanarGraph

```java.lang.Object
com.vividsolutions.jts.geomgraph.PlanarGraph
```
Direct Known Subclasses:
GeometryGraph

`public class PlanarGraphextends java.lang.Object`

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, `Geometry`s 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
`protected  java.util.List` `edgeEndList`

`protected  java.util.List` `edges`

`protected  NodeMap` `nodes`

Constructor Summary
`PlanarGraph()`

`PlanarGraph(NodeFactory nodeFact)`

Method Summary
` void` `add(EdgeEnd e)`

` void` `addEdges(java.util.List edgesToAdd)`
Add a set of edges to the graph.
` Node` `addNode(Coordinate coord)`

` Node` `addNode(Node node)`

` Node` `find(Coordinate coord)`

` Edge` ```findEdge(Coordinate p0, Coordinate p1)```
Returns the edge whose first two coordinates are p0 and p1
` EdgeEnd` `findEdgeEnd(Edge e)`
Returns the EdgeEnd which has edge e as its base edge (MD 18 Feb 2002 - this should return a pair of edges)
` Edge` ```findEdgeInSameDirection(Coordinate p0, Coordinate p1)```
Returns the edge which starts at p0 and whose first segment is parallel to p1
` java.util.Collection` `getEdgeEnds()`

` java.util.Iterator` `getEdgeIterator()`

` java.util.Iterator` `getNodeIterator()`

` java.util.Collection` `getNodes()`

`protected  void` `insertEdge(Edge e)`

` boolean` ```isBoundaryNode(int geomIndex, Coordinate coord)```

` void` `linkAllDirectedEdges()`
Link the DirectedEdges at the nodes of the graph.
` void` `linkResultDirectedEdges()`
Link the DirectedEdges at the nodes of the graph.
`static void` `linkResultDirectedEdges(java.util.Collection nodes)`
For nodes in the Collection, link the DirectedEdges at the node that are in the result.
` void` `printEdges(java.io.PrintStream out)`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### edges

`protected java.util.List edges`

### nodes

`protected NodeMap nodes`

### edgeEndList

`protected java.util.List edgeEndList`
Constructor Detail

### PlanarGraph

`public PlanarGraph(NodeFactory nodeFact)`

### PlanarGraph

`public PlanarGraph()`
Method Detail

`public static void linkResultDirectedEdges(java.util.Collection nodes)`
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).

### getEdgeIterator

`public java.util.Iterator getEdgeIterator()`

### getEdgeEnds

`public java.util.Collection getEdgeEnds()`

### isBoundaryNode

```public boolean isBoundaryNode(int geomIndex,
Coordinate coord)```

### insertEdge

`protected void insertEdge(Edge e)`

`public void add(EdgeEnd e)`

### getNodeIterator

`public java.util.Iterator getNodeIterator()`

### getNodes

`public java.util.Collection getNodes()`

`public Node addNode(Node node)`

`public Node addNode(Coordinate coord)`

### find

`public Node find(Coordinate coord)`
Returns:
the node if found; null otherwise

`public void addEdges(java.util.List edgesToAdd)`
Add a set of edges to the graph. For each edge two DirectedEdges will be created. DirectedEdges are NOT linked by this method.

`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).

`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

`public EdgeEnd findEdgeEnd(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, if found `null` if the edge was not found

### findEdge

```public Edge findEdge(Coordinate p0,
Coordinate p1)```
Returns the edge whose first two coordinates are p0 and p1

Returns:
the edge, if found `null` if the edge was not found

### findEdgeInSameDirection

```public Edge findEdgeInSameDirection(Coordinate p0,
Coordinate p1)```
Returns the edge which starts at p0 and whose first segment is parallel to p1

Returns:
the edge, if found `null` if the edge was not found

### printEdges

`public void printEdges(java.io.PrintStream out)`

JTS Topology Suite version 1.12