org.geotools.geometry.iso.topograph2D
Class GeometryGraph

java.lang.Object
  extended by org.geotools.geometry.iso.topograph2D.PlanarGraph
      extended by org.geotools.geometry.iso.topograph2D.GeometryGraph

public class GeometryGraph
extends PlanarGraph

A GeometryGraph is a graph that models a given Geometry


Field Summary
 
Fields inherited from class org.geotools.geometry.iso.topograph2D.PlanarGraph
cga, edgeEndList, edges, nodes
 
Constructor Summary
GeometryGraph(int argIndex, GeometryImpl parentGeom)
           
 
Method Summary
 void addEdge(Edge e)
          Add an Edge computed externally.
 void addPoint(Coordinate pt)
          Add a point computed externally.
 SegmentIntersector computeEdgeIntersections(GeometryGraph g, LineIntersector li, boolean includeProper)
           
 SegmentIntersector computeSelfNodes(LineIntersector li, boolean computeRingSelfNodes)
          Compute self-nodes, taking advantage of the Geometry type to minimize the number of intersection tests.
 void computeSplitEdges(java.util.List edgelist)
           
static int determineBoundary(int boundaryCount)
           
 Edge findEdge(CurveImpl line)
           
 java.util.Collection getBoundaryNodes()
           
 Coordinate[] getBoundaryPoints()
           
 GeometryImpl getGeometry()
           
 Coordinate getInvalidPoint()
           
 boolean hasTooFewPoints()
           
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)
 
Methods inherited from class org.geotools.geometry.iso.topograph2D.PlanarGraph
add, addEdges, addNode, addNode, find, findEdge, findEdgeEnd, findEdgeInSameDirection, getEdgeEnds, getEdgeIterator, getNodeIterator, getNodes, insertEdge, isBoundaryNode, linkAllDirectedEdges, linkResultDirectedEdges, linkResultDirectedEdges, printEdges
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GeometryGraph

public GeometryGraph(int argIndex,
                     GeometryImpl parentGeom)
Method Detail

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)


determineBoundary

public static int determineBoundary(int boundaryCount)

hasTooFewPoints

public boolean hasTooFewPoints()

getInvalidPoint

public Coordinate getInvalidPoint()

getGeometry

public GeometryImpl getGeometry()

getBoundaryNodes

public java.util.Collection getBoundaryNodes()

getBoundaryPoints

public Coordinate[] getBoundaryPoints()

findEdge

public Edge findEdge(CurveImpl line)

computeSplitEdges

public void computeSplitEdges(java.util.List edgelist)

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

Parameters:
li - the LineIntersector to use
computeRingSelfNodes - if , intersection checks are optimized to not test rings for self-intersection
Returns:
the SegmentIntersector used, containing information about the intersections found

computeEdgeIntersections

public SegmentIntersector computeEdgeIntersections(GeometryGraph g,
                                                   LineIntersector li,
                                                   boolean includeProper)
Parameters:
g -
li -
includeProper -
Returns:


Copyright © 1996-2010 Geotools. All Rights Reserved.