# Re: convex hull

```Hi John,

> Thanks for your response Bill.  I think I got some ideas, but still have a
> few questions:
>
> 1)  It doesn't appear that I can simply create the surface:
> Irregular3DSet(xyz, samples,null, null,null, new DelaunayClarkson(samples));
>
> I was thinking if there are some methods within DelaunayClarkson where I
> can obtain the proper samples and tri and simply feed them to the
> DelaunayCustom.  For example something like the following:
>
> DelaunayClarkson test = new DelaunayClarkson(samples);
> set = new Irregular3DSet(xyz, samples,null, null,null, new
> DelaunayCustom(test.getSamples?,test.getTri?));

That would be simple, but it's not what I suggested.
My suggestion was to use the Walk array inside the
DelaunayClarkson to help with your calculation, as you
describe:

> 2)  If there aren't any methods as mentioned in (1), I would imagine that I
> will need to determine which data points form the convex hull based on the
> Walk[i][j] and then feed those data to DelaunayCustom.  While I know the
> order of the data set (samples) that is going into
> DelaunayClarkson(samples), how do I know their orders within
> Walk[i][j]?  In other words, which points within samples triangular face j
> is composed of?

Assume a tetrahedron "i" has vertices labeled 0, 1, 2 and 3. Then
the walk array points at faces as follows:

Walk[i][0] -> face 0, 1, 2
Walk[i][1] -> face 1, 2, 3
Walk[i][2] -> face 2, 3, 0
Walk[i][3] -> face 3, 0, 1

At least, that's what I figured out from reading the
Delaunay.finish_triang() that builds the Walk array.
Curtis, if you can remember, please correct me if I'm
wrong.

Good luck,
Bill

```