Namespace NetTopologySuite.GeometriesGraph
Classes
- Depth
A Depth object records the topological depth of the sides of an Edge for up to two Geometries.
- DirectedEdgeStar
A DirectedEdgeStar is an ordered list of outgoing DirectedEdges around a node. It supports labelling the edges as well as linking the edges to form both MaximalEdgeRings and MinimalEdgeRings.
- EdgeEnd
Models the end of an edge incident on a node.
- EdgeEndStar
A EdgeEndStar is an ordered list of EdgeEnds around a node. They are maintained in CCW order (starting with the positive x-axis) around the node for efficient lookup and topology building.
- EdgeIntersection
An EdgeIntersection represents a point on an edge which intersects with another edge. The intersection may either be a single point, or a line segment (in which case this point is the start of the line segment) The label attached to this intersection point applies to the edge from this point forwards, until the next intersection or the end of the edge. The intersection point must be precise.
- EdgeIntersectionList
A list of edge intersections along an Edge.
- EdgeList
A EdgeList is a list of Edges. It supports locating edges that are point-wise equals to a target edge.
- EdgeNodingValidator
Validates that a collection of Edge is correctly noded. Throws an appropriate exception if an noding error is found.
Uses FastNodingValidator to perform the validation.
- GeometryGraph
A GeometryGraph is a graph that models a given Geometry.
- GraphComponent
A GraphComponent is the parent class for the objects' that form a graph. Each GraphComponent can carry a Label.
- Label
A
Label
indicates the topological relationship of a component of a topology graph to a givenGeometry
. This class supports labels for relationships to twoGeometry
s, which is sufficient for algorithms for binary operations. Topology graphs support the concept of labeling nodes and edges in the graph. The label of a node or edge specifies its topological relationship to one or more geometries. (In fact, since NTS operations have only two arguments labels are required for only two geometries). A label for a node or edge has one or two elements, depending on whether the node or edge occurs in one or both of the inputGeometry
s. Elements contain attributes which categorize the topological location of the node or edge relative to the parentGeometry
; that is, whether the node or edge is in the interior, boundary or exterior of theGeometry
. Attributes have a value from the set{Interior, Boundary, Exterior}
. In a node each element has a single attributeOn
. For an edge each element has a triplet of attributesLeft, On, Right
. It is up to the client code to associate the 0 and 1TopologyLocation
s with specific geometries.
- NodeFactory
A Factory to create Nodes.
- NodeMap
A map of nodes, indexed by the coordinate of the node.
- PlanarGraph
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 aGeometry
. Each node and edge in the graph is labeled with its topological location relative to the source point. 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
- Position
A Position indicates the position of a Location relative to a graph component (Node, Edge, or Area).
- QuadrantOp
Utility functions for working with quadrants, which are numbered as follows:
1 | 0 --+-- 2 | 3
- TopologyLocation
A TopologyLocation is the labelling of a GraphComponent's topological relationship to a single Geometry.