Search Results for

    Show / Hide Table of Contents

    Class QuadEdge

    A class that represents the edge data structure which implements the quadedge algebra. The quadedge algebra was described in a well-known paper by Guibas and Stolfi, "Primitives for the manipulation of general subdivisions and the computation of Voronoi diagrams", ACM Transactions on Graphics, 4(2), 1985, 75-123.

    Each edge object is part of a quartet of 4 edges, linked via their Rot references. Any edge in the group may be accessed using a series of Rot operations. Quadedges in a subdivision are linked together via their Next references. The linkage between the quadedge quartets determines the topology of the subdivision.

    The edge class does not contain separate information for vertices or faces; a vertex is implicitly defined as a ring of edges (created using the Next field).

    Inheritance
    object
    QuadEdge
    Inherited Members
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    Namespace: NetTopologySuite.Triangulate.QuadEdge
    Assembly: NetTopologySuite.dll
    Syntax
    public class QuadEdge

    Properties

    | Edit this page View Source

    DNext

    Gets the next CCW edge around (into) the destination of this edge.

    Declaration
    public QuadEdge DNext { get; }
    Property Value
    Type Description
    QuadEdge
    Remarks

    Get the next destination edge.

    | Edit this page View Source

    DPrev

    Gets the next CW edge around (into) the destination of this edge.

    Declaration
    public QuadEdge DPrev { get; }
    Property Value
    Type Description
    QuadEdge
    Remarks

    Get the previous destination edge.

    | Edit this page View Source

    Data

    Gets or sets the external data value for this edge.

    Declaration
    public object Data { get; set; }
    Property Value
    Type Description
    object
    Remarks

    an object containing external data

    | Edit this page View Source

    Dest

    Gets or sets the vertex for the edge's destination

    Declaration
    public Vertex Dest { get; }
    Property Value
    Type Description
    Vertex
    Remarks

    Gets the destination vertex

    | Edit this page View Source

    InvRot

    Gets the dual of this edge, directed from its left to its right.

    Declaration
    public QuadEdge InvRot { get; }
    Property Value
    Type Description
    QuadEdge
    Remarks

    Gets the inverse rotated edge.

    | Edit this page View Source

    IsLive

    Tests whether this edge has been deleted.

    Declaration
    public bool IsLive { get; }
    Property Value
    Type Description
    bool

    true if this edge has not been deleted.

    | Edit this page View Source

    LNext

    Gets the CCW edge around the left face following this edge.

    Declaration
    public QuadEdge LNext { get; }
    Property Value
    Type Description
    QuadEdge
    Remarks

    Gets the next left face edge.

    | Edit this page View Source

    LPrev

    Gets the CCW edge around the left face before this edge.

    Declaration
    public QuadEdge LPrev { get; }
    Property Value
    Type Description
    QuadEdge
    Remarks

    Get the previous left face edge.

    | Edit this page View Source

    Length

    Gets the length of the geometry of this quadedge.

    Declaration
    public double Length { get; }
    Property Value
    Type Description
    double
    Remarks

    Gets the length of the quadedge

    | Edit this page View Source

    ONext

    Gets the next CCW edge around the origin of this edge.

    Declaration
    public QuadEdge ONext { get; }
    Property Value
    Type Description
    QuadEdge
    Remarks

    Gets the next linked edge.

    | Edit this page View Source

    OPrev

    Gets the next CW edge around (from) the origin of this edge.

    Declaration
    public QuadEdge OPrev { get; }
    Property Value
    Type Description
    QuadEdge
    Remarks

    Gets the previous edge.

    | Edit this page View Source

    Orig

    Gets or sets the vertex for the edge's origin

    Declaration
    public Vertex Orig { get; }
    Property Value
    Type Description
    Vertex
    Remarks

    Gets the origin vertex

    | Edit this page View Source

    RNext

    Gets the edge around the right face ccw following this edge.

    Declaration
    public QuadEdge RNext { get; }
    Property Value
    Type Description
    QuadEdge
    Remarks

    Gets the next right face edge.

    | Edit this page View Source

    RPrev

    Gets the edge around the right face ccw before this edge.

    Declaration
    public QuadEdge RPrev { get; }
    Property Value
    Type Description
    QuadEdge
    Remarks

    Gets the previous right face edge.

    | Edit this page View Source

    Rot

    Gets the dual of this edge, directed from its right to its left.

    Declaration
    public QuadEdge Rot { get; }
    Property Value
    Type Description
    QuadEdge
    Remarks

    Gets or Sets the rotated edge

    | Edit this page View Source

    Sym

    Gets the edge from the destination to the origin of this edge.

    Declaration
    public QuadEdge Sym { get; }
    Property Value
    Type Description
    QuadEdge
    Remarks

    Gets the sym of the edge.

    Methods

    | Edit this page View Source

    Connect(QuadEdge, QuadEdge)

    Creates a new QuadEdge connecting the destination of a to the origin of b, in such a way that all three have the same left face after the connection is complete. Additionally, the data pointers of the new edge are set.

    Declaration
    public static QuadEdge Connect(QuadEdge a, QuadEdge b)
    Parameters
    Type Name Description
    QuadEdge a
    QuadEdge b
    Returns
    Type Description
    QuadEdge

    the connected edge

    | Edit this page View Source

    Delete()

    Marks this quadedge as being deleted. This does not free the memory used by this quadedge quartet, but indicates that this edge no longer participates in a subdivision.

    Declaration
    public void Delete()
    | Edit this page View Source

    EqualsNonOriented(QuadEdge)

    Tests if this quadedge and another have the same line segment geometry, regardless of orientation.

    Declaration
    public bool EqualsNonOriented(QuadEdge qe)
    Parameters
    Type Name Description
    QuadEdge qe

    a quadedge

    Returns
    Type Description
    bool

    true if the quadedges are based on the same line segment regardless of orientation

    | Edit this page View Source

    EqualsOriented(QuadEdge)

    Tests if this quadedge and another have the same line segment geometry with the same orientation.

    Declaration
    public bool EqualsOriented(QuadEdge qe)
    Parameters
    Type Name Description
    QuadEdge qe

    a quadedge

    Returns
    Type Description
    bool

    true if the quadedges are based on the same line segment

    | Edit this page View Source

    GetPrimary()

    Gets the primary edge of this quadedge and its sym. The primary edge is the one for which the origin and destination coordinates are ordered according to the standard Coordinate ordering

    Declaration
    public QuadEdge GetPrimary()
    Returns
    Type Description
    QuadEdge

    the primary quadedge

    | Edit this page View Source

    MakeEdge(Vertex, Vertex)

    Creates a new QuadEdge quartet from Vertexo to Vertex d.

    Declaration
    public static QuadEdge MakeEdge(Vertex o, Vertex d)
    Parameters
    Type Name Description
    Vertex o

    the origin Vertex

    Vertex d

    the destination Vertex

    Returns
    Type Description
    QuadEdge

    the new QuadEdge quartet

    | Edit this page View Source

    SetNext(QuadEdge)

    Sets the connected edge

    Declaration
    public void SetNext(QuadEdge next)
    Parameters
    Type Name Description
    QuadEdge next

    edge

    | Edit this page View Source

    Splice(QuadEdge, QuadEdge)

    Splices two edges together or apart. Splice affects the two edge rings around the origins of a and b, and, independently, the two edge rings around the left faces of a and b. In each case, (i) if the two rings are distinct, Splice will combine them into one, or (ii) if the two are the same ring, Splice will break it into two separate pieces. Thus, Splice can be used both to attach the two edges together, and to break them apart.

    Declaration
    public static void Splice(QuadEdge a, QuadEdge b)
    Parameters
    Type Name Description
    QuadEdge a

    an edge to splice

    QuadEdge b

    an edge to splice

    | Edit this page View Source

    Swap(QuadEdge)

    Turns an edge counterclockwise inside its enclosing quadrilateral.

    Declaration
    public static void Swap(QuadEdge e)
    Parameters
    Type Name Description
    QuadEdge e

    the quadedge to turn

    | Edit this page View Source

    ToLineSegment()

    Creates a LineSegment representing the geometry of this edge.

    Declaration
    public LineSegment ToLineSegment()
    Returns
    Type Description
    LineSegment

    a LineSegment

    | Edit this page View Source

    ToString()

    Converts this edge to a WKT two-point LINESTRING indicating the geometry of this edge.

    Declaration
    public override string ToString()
    Returns
    Type Description
    string

    a String representing this edge's geometry

    Overrides
    object.ToString()
    • Edit this page
    • View Source
    In this article
    Back to top Generated by DocFX