private HashSet<Edge> GetEdges(List<TriangleVertexIndices> indices)
{
HashSet<Edge> edges = new HashSet<Edge>();
for (int i = 0; i < indices.Count; i++)
{
Edge edge;
edge = new Edge(indices[i].I0, indices[i].I1);
if (!edges.Contains(edge)) edges.Add(edge);
edge = new Edge(indices[i].I1, indices[i].I2);
if (!edges.Contains(edge)) edges.Add(edge);
edge = new Edge(indices[i].I2, indices[i].I0);
if (!edges.Contains(edge)) edges.Add(edge);
}
return edges;
}