/// <summary>
 /// Returns a vector containing all edges in the given S2ShapeIndexCell vector.
 /// (The result is returned as an output parameter so that the same storage can
 /// be reused, rather than allocating a new temporary vector each time.)
 /// </summary>
 private static void GetShapeEdges(S2ShapeIndex index, List <S2ShapeIndexCell> cells, ShapeEdgeVector shape_edges)
 {
     shape_edges.Clear();
     foreach (var cell in cells)
     {
         AppendShapeEdges(index, cell, shape_edges);
     }
 }
 /// <summary>
 /// Returns a vector containing all edges in the given S2ShapeIndexCell.
 /// (The result is returned as an output parameter so that the same storage can
 /// be reused, rather than allocating a new temporary vector each time.)
 /// </summary>
 private static void GetShapeEdges(S2ShapeIndex index, S2ShapeIndexCell cell, ShapeEdgeVector shape_edges)
 {
     shape_edges.Clear();
     AppendShapeEdges(index, cell, shape_edges);
 }