GeometryGraph class
A GeometryGraph is a graph that models a given Geometry @version 1.7
- Inheritance
-
- Object
- PlanarGraph
- GeometryGraph
Constructors
- GeometryGraph(int argIndex, Geometry parentGeom)
- GeometryGraph.args3(int argIndex, Geometry? parentGeom, BoundaryNodeRule boundaryNodeRule)
Properties
- areaPtLocator ↔ PointOnGeometryLocator?
-
getter/setter pair
- argIndex ↔ int
-
getter/setter pair
- boundaryNodeRule ↔ BoundaryNodeRule
-
getter/setter pair
- boundaryNodes ↔ List?
-
getter/setter pair
- edgeEndList ↔ List
-
getter/setter pairinherited
- edges ↔ List
-
getter/setter pairinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- invalidPoint ↔ Coordinate?
-
getter/setter pair
-
lineEdgeMap
↔ Map<
LineString, Edge> -
The lineEdgeMap is a map of the linestring components of the
parentGeometry to the edges which are derived from them.
This is used to efficiently perform findEdge queries
getter/setter pair
- nodes ↔ NodeMap
-
getter/setter pairinherited
- parentGeom ↔ Geometry?
-
getter/setter pair
- ptLocator → PointLocator
-
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- useBoundaryDeterminationRule ↔ bool
-
If this flag is true, the Boundary Determination Rule will used when deciding
whether nodes are in the boundary or not
getter/setter pair
Methods
-
add(
EdgeEnd e) → void -
inherited
-
addCollection(
GeometryCollection gc) → void -
addEdge(
Edge e) → void - Add an Edge computed externally. The label on the Edge is assumed to be correct.
-
addEdges(
List edgesToAdd) → void -
Add a set of edges to the graph. For each edge two DirectedEdges
will be created. DirectedEdges are NOT linked by this method.
inherited
-
addGeometry(
Geometry g) → void -
addLineString(
LineString line) → void -
addNode(
Node node) → Node -
inherited
-
addNodeFromCoordinate(
Coordinate coord) → Node -
inherited
-
addPoint(
Point p) → void - Add a Point to the graph.
-
addPointFromCoordinate(
Coordinate pt) → void - Add a point computed externally. The point is assumed to be a Point Geometry part, which has a location of INTERIOR.
-
addPolygon(
Polygon p) → void -
addPolygonRing(
LinearRing lr, int cwLeft, int cwRight) → void - Adds a polygon ring to the graph. Empty rings are ignored.
-
addSelfIntersectionNode(
int argIndex, Coordinate coord, int loc) → void - Add a node for a self-intersection. If the node is a potential boundary node (e.g. came from an edge which is a boundary) then insert it as a potential boundary node. Otherwise, just add it as a regular node.
-
addSelfIntersectionNodes(
int argIndex) → void -
computeEdgeIntersections(
GeometryGraph g, LineIntersector li, bool includeProper) → SegmentIntersector -
computeSelfNodes(
LineIntersector li, bool computeRingSelfNodes) → SegmentIntersector - 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).
-
computeSelfNodes3(
LineIntersector li, bool computeRingSelfNodes, bool isDoneIfProperInt) → SegmentIntersector - 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).
-
computeSplitEdges(
List edgelist) → void -
createEdgeSetIntersector(
) → EdgeSetIntersector -
debugPrint(
Object o) → void -
inherited
-
debugPrintln(
Object o) → void -
inherited
-
find(
Coordinate coord) → Node? -
@return the node if found; null otherwise
inherited
-
findEdge(
Coordinate p0, Coordinate p1) → Edge? -
Returns the edge whose first two coordinates are p0 and p1
inherited
-
findEdgeEnd(
Edge e) → EdgeEnd? -
Returns the EdgeEnd which has edge e as its base edge
(MD 18 Feb 2002 - this should return a pair of edges)
inherited
-
findEdgeFromLine(
LineString line) → Edge? -
findEdgeInSameDirection(
Coordinate p0, Coordinate p1) → Edge? -
Returns the edge which starts at p0 and whose first segment is
parallel to p1
inherited
-
getBoundaryNodeRule(
) → BoundaryNodeRule -
getBoundaryNodes(
) → List -
getBoundaryPoints(
) → List< Coordinate> -
getEdgeEnds(
) → List -
inherited
-
getEdgeIterator(
) → Iterator -
inherited
-
getGeometry(
) → Geometry? -
getInvalidPoint(
) → Coordinate? -
getNodeIterator(
) → Iterator -
inherited
-
getNodes(
) → List -
inherited
-
hasTooFewPoints(
) → bool - This constructor is used by clients that wish to add Edges explicitly, rather than adding a Geometry. (An example is BufferOp).
-
insertBoundaryPoint(
int argIndex, Coordinate coord) → void - Adds candidate boundary points using the current {@link BoundaryNodeRule}. This is used to add the boundary points of dim-1 geometries (Curves/MultiCurves).
-
insertEdge(
Edge e) → void -
inherited
-
insertPoint(
int argIndex, Coordinate coord, int onLocation) → void -
isBoundaryNode(
int geomIndex, Coordinate coord) → bool -
inherited
-
linkAllDirectedEdges(
) → void -
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).
inherited
-
linkResultDirectedEdges(
) → void -
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).
inherited
-
locate(
Coordinate pt) → int - Determines the {@link Location} of the given {@link Coordinate} in this geometry.
-
matchInSameDirection(
Coordinate p0, Coordinate p1, Coordinate ep0, Coordinate ep1) → bool -
The coordinate pairs match if they define line segments lying in the same direction.
E.g. the segments are parallel and in the same quadrant
(as opposed to parallel and opposite!).
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
determineBoundary(
BoundaryNodeRule boundaryNodeRule, int boundaryCount) → int -
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)