Table of Contents

Namespace NetTopologySuite.GeometriesGraph

Classes

Depth

A Depth object records the topological depth of the sides of an Edge for up to two Geometries.

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

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

EdgeRing
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 given Geometry. This class supports labels for relationships to two Geometrys, 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 input Geometrys. Elements contain attributes which categorize the topological location of the node or edge relative to the parent Geometry; that is, whether the node or edge is in the interior, boundary or exterior of the Geometry. Attributes have a value from the set {Interior, Boundary, Exterior}. In a node each element has a single attribute On. For an edge each element has a triplet of attributes Left, On, Right. It is up to the client code to associate the 0 and 1 TopologyLocations with specific geometries.

Node
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 a Geometry. 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, Geometrys 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.

Enums

Positions