com.vividsolutions.jts.geomgraph
Class GeometryGraph
public class GeometryGraph
A GeometryGraph is a graph that models a given Geometry
add , addEdges , addNode , addNode , find , findEdge , findEdgeEnd , findEdgeInSameDirection , getEdgeEnds , getEdgeIterator , getNodeIterator , getNodes , insertEdge , isBoundaryNode , linkAllDirectedEdges , linkResultDirectedEdges , linkResultDirectedEdges , printEdges |
GeometryGraph
public GeometryGraph(int argIndex,
Geometry parentGeom)
addEdge
public void addEdge(Edge e)
Add an Edge computed externally. The label on the Edge is assumed
to be correct.
addPoint
public void addPoint(Coordinate pt)
Add a point computed externally. The point is assumed to be a
Point Geometry part, which has a location of INTERIOR.
computeSelfNodes
public SegmentIntersector computeSelfNodes(LineIntersector li,
boolean computeRingSelfNodes)
Compute self-nodes, taking advantage of the Geometry type to
minimize the number of intersection tests. (E.g. rings are
not tested for self-intersection, since they are assumed to be valid).
li
- the LineIntersector to usecomputeRingSelfNodes
- if , intersection checks are optimized to not test rings for self-intersection
- the SegmentIntersector used, containing information about the intersections found
computeSplitEdges
public void computeSplitEdges(List edgelist)
determineBoundary
public static int determineBoundary(int boundaryCount)
getBoundaryNodes
public Collection getBoundaryNodes()
getBoundaryPoints
public Coordinate[] getBoundaryPoints()
getGeometry
public Geometry getGeometry()
getInvalidPoint
public Coordinate getInvalidPoint()
hasTooFewPoints
public boolean hasTooFewPoints()
This constructor is used by clients that wish to add Edges explicitly,
rather than adding a Geometry. (An example is BufferOp).
isInBoundary
public static boolean isInBoundary(int boundaryCount)
This method implements the Boundary Determination Rule
for determining whether
a component (node or edge) that appears multiple times in elements
of a MultiGeometry is in the boundary or the interior of the Geometry
The SFS uses the "Mod-2 Rule", which this function implements
An alternative (and possibly more intuitive) rule would be
the "At Most One Rule":
isInBoundary = (componentCount == 1)