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; }
}
}