[vtkusers] Intersection of two iso surfaces

Luke hazelnusse at gmail.com
Fri Dec 2 01:46:40 EST 2011


Bill,
  I got caught up in some other work and am returning back to this.  I
have a couple of questions about to use vtkProbeFilter as you suggest.

> 1) As you stated, compute the isosurface of the first function.

Ok, so something like this:

  vtkContourFilter *contours = vtkContourFilter::New();
  contours->SetInput(sample->GetOutput());
  contours->GenerateValues(1, 0.0, 0.0);

where sample is the sampling of my first function (the computationally
inexpensive one).

> 2) Probe the second function with the first function polydata using
> vtkProbeFilter.

I'm a bit confused by the vtkProbeFilter documentation, but I think
you are suggesting that I connect the output of the vtkContourFilter
to the input of the vtkProbeFilter, correct?  So like this:

  vtkProbeFilter *probe = vtkProbeFilter::New();
  probe->SetInputConnection(1, contours->GetOutputPort());

What I'm not sure now is how to set my second function as the Source
of the vtkProbeFilter.  Do I need to use vtkSampleFunction to sample
the second function in the same way that the first is sampled?  If so,
won't this result in the second function (the computationally
expensive one) being evaluated over the whole 3d volume that is
specified by vtkSampleFunction::SetModelBounds()?  In
ProbingWithPlaneWidget.py, the input is the plane and the source comes
from a data set loaded from file.

> 3) Run contour filter on the output of 2).

Once I get 2), I think I know what to do here, but I'm stuck on how to do 2) :)

Thanks for the help,
~Luke



More information about the vtkusers mailing list