[vtkusers] clip one vtkPolyData with another?

Obada Mahdi omahdi at gmx.de
Mon Jan 30 06:09:41 EST 2006


Hi Alle!

On Jan 30, 2006, at 9:50 AM, Alle Meije Wink wrote:
 > Is there a way to compute the intersection of two vtkPolyData
 > structures?

This question has just recently been posted, here is a quite
informative reply from Steve Robbins:
http://public.kitware.com/pipermail/vtkusers/2006-January/083546.html

In a nutshell, there is currently no such algorithm implemented in VTK,
but there are other libraries around that could do that.

 > Or to convert a vtkPolyData into a vtkImplicitFunction?
 > Perhaps this can be done in another, very elegant way???

I am by no means an expert on this, but here are some quick thoughts:
- Building an implicit function directly from the vtkPolyData
   representing an isosurface seems a bit difficult to me, as it does  
not
   reliably define an "inside" or "outside" of the brain, i.e. define a
   watertight hull around the brain (depending on the input data, they
   might as well do, but this is not the general case).
- Probably the best thing would be to have a 3D segmentation of the
   brain mass and calculate an implicit function based on that.

Segmentation is a bit of an overkill, of course, so unless there is such
data lying around anyway, I would probably try to build an implicit
function, which segments the "inside", guided by the three cutting  
planes
and then by the polydata.  You could try to do the orientation test with
the isosurface using a vtkCellLocator and testing for the orientation of
the closest cell, or something similar (if the surface mesh is
extremely fine-grained, you might want to create a decimated version for
applying the vtkCellLocator).

I do not have any elegant solution, I'm afraid--maybe this gives you at
least something to read until a more sophisticated reply hits your
mailbox ;-)


Regards

Obada




More information about the vtkusers mailing list