How do I get triangles from a vtkPolyData object?

Grant Edwards grante at visi.com
Tue Sep 4 11:34:34 EDT 2007


On 2007-09-03, Grant Edwards <grante at visi.com> wrote:

Is there _any_ documentation for the Python bindings to the vtk
library?   I'm still beating my head against a wall trying to
figure out how to get the actual data out of vtk objects when
Python doesn't make visible the required "Get" methods....



> I posted this question to the vtk mailing list last week:
>
>   I've been Googling and wandering through the class references
>   most of the afternoon, but I can't figure out how to get the
>   triangles out of the vtkPolyData that vtkDelaunay2D produces?
>
>   I can get the vertex corredinates like this:
>
>     delny = vtk.vtkDelaunay2D()
>     delny.SetInput(profile)
>     delny.SetTolerance(0.001)
>     delny.Update()
>
>     o = delny.GetOutput()
>
>     vertexes = [o.GetPoint(i) for i in xrange(o.GetNumberOfPoints())]
>
>   I can see that there are 84 triangles, and 'o' is a vtkPolyData
>   object that has 84 cells and 84 polygons, so they obviously
>   represent the triangles, but I can't figure out how to get
>   something useful out of the cells or polys.
>
> I got multiple replies telling me that I need to make calls to
> o.GetNextCell().  The posters were even kind enough to include
> examples in C++ showing how to do a delaunay triangulation and
> retrieve the triangle info.

I accidentally left out a step -- it's actually a vtkCellArray
object obtained by calling o.GetPolys() that is missing the
GetCell() and GetNextCell() methods which I need to call.

-- 
Grant Edwards                   grante             Yow! My mind is a potato
                                  at               field ...
                               visi.com            



More information about the Python-list mailing list