How do I get triangles from a vtkPolyData object?

Grant Edwards grante at visi.com
Mon Sep 3 11:18:41 EDT 2007


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.

However, the Python version of a vtkCellArray object (which is
what's created as output from the Delaunay triangulation
module) doesn't make the GetNextCell() (or GetCell()) method
visible. It does have a GetNumberOfCells() object, and methods
to set and insert cells, but how do I _get_ a cell?
  
-- 
Grant Edwards                   grante             Yow!  .. I'll make you
                                  at               an ASHTRAY!!
                               visi.com            



More information about the Python-list mailing list