public static void Iterate <VERTEX, REGIONDATA, EDGEDATA, CELLDATA>(IDecoratedVoronoiMesh2 <VERTEX, REGIONDATA, EDGEDATA, CELLDATA> src, out IDecoratedVoronoiMesh2 <VERTEX, REGIONDATA, EDGEDATA, CELLDATA> dst1, out IDecoratedDelaunayTriangulation <VERTEX, CELLDATA> dst2)
     where VERTEX : class, IVertex, new ()
     where REGIONDATA : new ()
     where EDGEDATA : new ()
     where CELLDATA : new ()
 {
     dst1 = new DecoratedVoronoiMesh2 <VERTEX, REGIONDATA, EDGEDATA, CELLDATA>();
     dst1.Generate(GetCentroids(src), out dst2);
 }
 public static void Iterate <VERTEX, REGIONDATA, EDGEDATA, CELLDATA>(IDecoratedVoronoiMesh2 <VERTEX, REGIONDATA, EDGEDATA, CELLDATA> src, out IDecoratedVoronoiMesh2 <VERTEX, REGIONDATA, EDGEDATA, CELLDATA> dst)
     where VERTEX : class, IVertex, new ()
     where REGIONDATA : new ()
     where EDGEDATA : new ()
     where CELLDATA : new ()
 {
     dst = new DecoratedVoronoiMesh2 <VERTEX, REGIONDATA, EDGEDATA, CELLDATA>();
     dst.Generate(GetCentroids(src));
 }