using GeoAPI.Geometries; using GisSharpBlog.NetTopologySuite.Planargraph; namespace GisSharpBlog.NetTopologySuite.Operation.Polygonize { /// /// A DirectedEdge of a PolygonizeGraph, which represents /// an edge of a polygon formed by the graph. /// May be logically deleted from the graph by setting the marked flag. /// public class PolygonizeDirectedEdge : DirectedEdge { private long label = -1; /// /// Constructs a directed edge connecting the from node to the /// to node. /// /// /// /// /// Specifies this DirectedEdge's direction (given by an imaginary /// line from the from node to directionPt). /// /// /// Whether this DirectedEdge's direction is the same as or /// opposite to that of the parent Edge (if any). /// public PolygonizeDirectedEdge(Node from, Node to, ICoordinate directionPt, bool edgeDirection) : base(from, to, directionPt, edgeDirection) { Ring = null; Next = null; } /// /// Returns the identifier attached to this directed edge. /// Attaches an identifier to this directed edge. /// public long Label { get { return label; } set { label = value; } } /// /// Returns the next directed edge in the EdgeRing that this directed edge is a member of. /// Sets the next directed edge in the EdgeRing that this directed edge is a member of. /// public PolygonizeDirectedEdge Next { get; set; } /// /// Returns the ring of directed edges that this directed edge is /// a member of, or null if the ring has not been set. /// public bool IsInRing { get { return Ring != null; } } /// /// Gets/Sets the ring of directed edges that this directed edge is /// a member of. /// public EdgeRing Ring { get; set; } } }