Hi Scott,
Given an object "Delaunay delaunay" in 2-D you can do:
int[][] tris = delaunay.Tri;
if (tris != null) {
boolean[] mark = new boolean[delaunay.NumEdges];
for (int i=0; i<delaunay.NumEdges; i++) mark[i] = false;
int ntris = tris.length;
int dim = tris[0].length;
if (dim != 2) {
throw new VisADException("not 2-D triangles");
}
for (int i=0; i<ntris; i++) {
for (int j=0; j<dim+1; j++) {
int e = Edges[i][j];
if (!mark[e]) {
mark[e] = true;
int k0 = tris[i][j];
int k1 = tris[i][(j+1) % (dim+1)]
// the next unique edge is from vertex k0 to vertex k1
// k0 and k1 and indices into the array returned by
// getSamples() from the associated Set, which is
// organized float[dim][number_of_vertices]
}
}
}
}
I hope this isn't too cryptic (and hopefully also correct).
Cheers,
Bill
----------------------------------------------------------
Bill Hibbard, SSEC, 1225 W. Dayton St., Madison, WI 53706
hibbard@xxxxxxxxxxxxxxxxx 608-263-4427 fax: 608-263-6738
http://www.ssec.wisc.edu/~billh/vis.html