surface from a stack of contours?

Will Schroeder will.schroeder at
Fri Aug 27 13:06:39 EDT 1999

Hi Sven-

>At 01:50 PM 8/26/99 -0700, Sven Prevrhal wrote:
> From a StructuredPoints volume, I have created a stack of contours with
>equal z distances. (one contour per slice of the volume). The contour
>points are sorted clockwise.  Now, I'd like to "triangulate" these
>contours to a surface.
>One way would be to create a second volume with same dimensions,  set
>the contour points in this volume to 1 and then use marching cubes.
>Rather memory and computationally expensive.
>I guess I could also write my own triangulator, but isn't there an
>easier way?

You're in luck, last night Lisa Avila finished some work on a class that does (I think) what you want. You'll have to grab it from the nightly release. Here's a description (in vtk/graphics):

// .NAME vtkVoxelContoursToSurfaceFilter - create surface from contours
// .SECTION Description
// vtkVoxelContoursToSurfaceFilter is a filter that takes contours and
// produces surfaces. There are some restrictions for the contours:
//   - The contours are input as vtkPolyData, with the contours being
//     polys in the vtkPolyData.
//   - The contours lie on XY planes - each contour has a constant Z
//   - The contours are ordered in the polys of the vtkPolyData such 
//     that all contours on the first (lowest) XY plane are first, then
//     continuing in order of increasing Z value. 
//   - The X, Y and Z coordinates are all integer values.
//   - The desired sampling of the contour data is 1x1x1 - Aspect can
//     be used to control the aspect ratio in the output polygonal
//     dataset.
// This filter takes the contours and produces a structured points
// dataset of signed floating point number indicating distance from
// a contour. A contouring filter is then applied to generate 3D
// surfaces from a stack of 2D contour distance slices. This is 
// done in a streaming fashion so as not to use to much memory.

Hope it works,

This is the private VTK discussion list.  Please keep messages on-topic.
Check the FAQ at: <>
To UNSUBSCRIBE, send message body containing "unsubscribe vtkusers" to
<majordomo at>.  For help, send message body containing
"info vtkusers" to the same address.     Live long and prosper.

More information about the vtkusers mailing list