[vtkusers] Extracting "feature surfaces" in VTK
Evan Kao
tossin at gmail.com
Mon Oct 20 14:32:17 EDT 2014
Hey vtk-users,
Sorry if the above is a bit long-winded. It pretty much boils down to a
couple questions:
1. How do I extract each individual surface created by
vtkPolyDataConnectivityFilter?
2. How are the edges created by vtkPolyDataNormals stored in the poly data
object?
Thanks,
Evan Kao
On Fri, Oct 10, 2014 at 3:56 PM, Evan Kao <tossin at gmail.com> wrote:
> Hello all,
>
> I'm trying to extract feature surfaces (e.g. inlets, outlets, etc.) in VTK
> as briefly described in this fairly old mailing list exchange
> <http://public.kitware.com/pipermail/vtkusers/2000-December/005137.html>,
> but since I'm inexperienced with VTK, I need a little more detail.
>
> I've tried the corresponding filters in Paraview, which was pretty
> straightforward, but I'd like to be able to do it in VTK, which seems a lot
> less straightforward. The sequence of filters in Paraview that I used is
> (starting from an unstructured grid volume) :
>
> 1. Extract Surface
> 2. Generate Surface Normals
> 3. Connectivity
> 4. Threshold (for each surface)
>
> I believe the corresponding filters in VTK are:
>
> 1. vtkGeometryFilter
> 2. vtkPolyDataNormals
> 3. vtkPolyDataConnectivityFilter (or vtkConnectivityFilter)
> 4. vtkThreshold
>
> I'm currently having trouble with the connectivity filters. In Paraview,
> the connectivity filter conveniently adds a "RegionId" array to the data,
> which can then be used to separate the surfaces using the Threshold filter,
> but this doesn't seem to be the case in VTK. If I print the output of the
> connectivity filter, there are no new arrays. I believe the filter is
> working though since GetNumberOfExtractedRegions() gives 3 (1 inlet, 1
> outlet, 1 wall). This brings me to a few questions:
>
> 1. Is there a way to access each individual region? And if so, is
> vtkThreshold even necessary?
> 2. Is there a way to get the "RegionId" array in VTK and add it to the
> data?
>
> I also had a question about how the connectivity filter works. The
> Feature Angle option in Generate Surface Normals dictates which edges of
> the object that are rendered and seems to change the calculated point
> normals, but not the cell normals. Are these edges actually stored
> anywhere or are they just implicit in the calculated point normals? And
> the description for the connectivity filter suggests that it simply looks
> for shared points between cells, which doesn't seem like it would be
> affected by calculating point normals. So what does it use as criteria for
> separating surfaces when performed after Generate Surface
> Normals/vtkPolyDataNormals?
>
> Thanks,
> Evan Kao
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20141020/8598ce6f/attachment.html>
More information about the vtkusers
mailing list