# HalfEdgeList class

Namespace: [Grasshopper2.Geometry.HalfEdges](https://developer.rhino3d.com/api/gh2/namespace/grasshopper2.geometry.halfedges.md) · Assembly: [Grasshopper2](https://developer.rhino3d.com/api/gh2/assembly/grasshopper2.md)

```cs
public class HalfEdgeList : IEnumerable<HalfEdge>
```

Provides access to the halfedges and [HalfEdge](https://developer.rhino3d.com/api/gh2/type/grasshopper2.geometry.halfedges.halfedge.md) related functionality of a Mesh. Derived from Plankton, (c) 2013 Daniel Piker and Will Pearson, licensed LGPL v3 or later.

## Properties

- [Count](https://developer.rhino3d.com/api/gh2/type/grasshopper2.geometry.halfedges.halfedgelist/count.md): Gets the number of halfedges.

## Indexers

- [this[]](https://developer.rhino3d.com/api/gh2/type/grasshopper2.geometry.halfedges.halfedgelist/item.md): Returns the [HalfEdge](https://developer.rhino3d.com/api/gh2/type/grasshopper2.geometry.halfedges.halfedge.md) at the given index.

## Methods

- [Add](https://developer.rhino3d.com/api/gh2/type/grasshopper2.geometry.halfedges.halfedgelist/add.md): Adds a new halfedge to the end of the Halfedge list.
- [CollapseEdge](https://developer.rhino3d.com/api/gh2/type/grasshopper2.geometry.halfedges.halfedgelist/collapseedge.md): Collapse an edge by combining 2 vertices
- [EndVertex](https://developer.rhino3d.com/api/gh2/type/grasshopper2.geometry.halfedges.halfedgelist/endvertex.md): Gets the index of the vertex at the end of a halfedge.
- [FindHalfedge](https://developer.rhino3d.com/api/gh2/type/grasshopper2.geometry.halfedges.halfedgelist/findhalfedge.md): Gets the halfedge index between two vertices.
- [FlipEdge](https://developer.rhino3d.com/api/gh2/type/grasshopper2.geometry.halfedges.halfedgelist/flipedge.md): Performs an edge flip. This works by shifting the start/end vertices of the edge anticlockwise around their faces (by one vertex) and as such can be applied to any n-gon mesh, not just triangulations.
- [GetEnumerator](https://developer.rhino3d.com/api/gh2/type/grasshopper2.geometry.halfedges.halfedgelist/getenumerator.md): Gets an enumerator that yields all halfedges in this collection.
- [GetFaceCirculator](https://developer.rhino3d.com/api/gh2/type/grasshopper2.geometry.halfedges.halfedgelist/getfacecirculator.md): Traverses anticlockwise around the adjacent face of a halfedge.
- [GetLength](https://developer.rhino3d.com/api/gh2/type/grasshopper2.geometry.halfedges.halfedgelist/getlength.md): Measure the length of a single halfedge
- [GetLengths](https://developer.rhino3d.com/api/gh2/type/grasshopper2.geometry.halfedges.halfedgelist/getlengths.md): Measure the lengths of all the halfedges
- [GetNextHalfEdge](https://developer.rhino3d.com/api/gh2/type/grasshopper2.geometry.halfedges.halfedgelist/getnexthalfedge.md): (obsolete) Gets the halfedge a given number of 'next's around a face from a starting halfedge
- [GetPairHalfedge](https://developer.rhino3d.com/api/gh2/type/grasshopper2.geometry.halfedges.halfedgelist/getpairhalfedge.md): Gets the opposing halfedge in a pair.
- [GetVertexCirculator](https://developer.rhino3d.com/api/gh2/type/grasshopper2.geometry.halfedges.halfedgelist/getvertexcirculator.md): Traverses clockwise around the starting vertex of a halfedge.
- [GetVertices](https://developer.rhino3d.com/api/gh2/type/grasshopper2.geometry.halfedges.halfedgelist/getvertices.md): Gets the two vertices for a halfedge.
- [IsBoundary](https://developer.rhino3d.com/api/gh2/type/grasshopper2.geometry.halfedges.halfedgelist/isboundary.md): A halfedge is on a boundary if it only has a face on one side.
- [PairHalfedge](https://developer.rhino3d.com/api/gh2/type/grasshopper2.geometry.halfedges.halfedgelist/pairhalfedge.md): (obsolete)
- [PinchOff](https://developer.rhino3d.com/api/gh2/type/grasshopper2.geometry.halfedges.halfedgelist/pinchoff.md): Given a halfedge which is on the boundary at each end, but is not a boundary edge itself separate the mesh here by flipping edges so 2 faces can be removed without changing vertex count
- [SplitEdge](https://developer.rhino3d.com/api/gh2/type/grasshopper2.geometry.halfedges.halfedgelist/splitedge.md): Creates a new vertex, and inserts it along an existing edge, splitting it in 2.
- [IEnumerable.GetEnumerator](https://developer.rhino3d.com/api/gh2/type/grasshopper2.geometry.halfedges.halfedgelist/system-collections-ienumerable-getenumerator.md)
- [TriangleSplitEdge](https://developer.rhino3d.com/api/gh2/type/grasshopper2.geometry.halfedges.halfedgelist/trianglesplitedge.md): Split 2 adjacent triangles into 4 by inserting a new vertex along the edge
