[vtkusers] 3D surface from 2D contours problem

dean.inglis at camris.ca dean.inglis at camris.ca
Wed Jun 13 14:34:09 EDT 2007


Hi,

I have tried the various polydata triangulation algorithms, but 
can't find something that will work for my particular problem:
a sequence of open (no loops) contours derived from 
image segmentation of a 3D data set.  The segmentation is
of a non-convex 3D surface, so each slice's contour can be
slightly curved (e.g. C shaped ) or even  twisting (e.g. S shaped).
The surface corresponds to the articulating surface of a bone.
As an example of an ideal simple case viewed overhead in
the x-z plane (contours are in the x-y plane):

y-x
|
z

slice j=i+1          (jN-1)-(jN-2)- ... -(j3)-(j2)-(j1)-(j0)


slice i              (i0)-(i1)-(i2)-(i3)- ... -(iN-2)-(iN-1)


where (*) represent vertices, slice i has iN vertices, while
the next slice j=i+1, has jN vertices.  Connecting vertex (iN-1)
to vertex (j0) and vertex (jN-1) to vertex (i0) forms a
closed polygon which can be triangulated.  However,
if iN and jN different and the vertices have varying heights
in the y direction, filters such as vtkDelauney*D or vtkTriangleFilter
will not produce "correct" results.  What would be optimal
is to triangulate from the outsides in,  generating multiple
triangle apexes at certain vertices.  Is there anything in VTK
or available otherwise that would be suitable?

Dean




More information about the vtkusers mailing list