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 EdgeRing edgeRing = null;
private PolygonizeDirectedEdge next = null;
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) { }
///
/// 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
{
return next;
}
set
{
next = value;
}
}
///
/// 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
{
return this.edgeRing;
}
set
{
edgeRing = value;
}
}
}
}