<div dir="ltr"><div><div><div><div>Hey vtk-users,<br><br></div>Sorry if the above is a bit long-winded. It pretty much boils down to a couple questions:<br><br></div>1. How do I extract each individual surface created by vtkPolyDataConnectivityFilter?<br></div>2. How are the edges created by vtkPolyDataNormals stored in the poly data object?<br><br></div>Thanks,<br>Evan Kao<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Oct 10, 2014 at 3:56 PM, Evan Kao <span dir="ltr"><<a href="mailto:tossin@gmail.com" target="_blank">tossin@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div><div><div><div><div><div><div><div><div><div>Hello all,<br><br></div>I'm trying to extract feature surfaces (e.g. inlets, outlets, etc.) in VTK as briefly described in <a href="http://public.kitware.com/pipermail/vtkusers/2000-December/005137.html" target="_blank">this fairly old mailing list exchange</a>, but since I'm inexperienced with VTK, I need a little more detail.<br><br></div>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) :<br><br></div>1. Extract Surface<br></div>2. Generate Surface Normals<br></div>3. Connectivity<br></div>4. Threshold (for each surface)<br><br></div>I believe the corresponding filters in VTK are:<br></div><br>1. vtkGeometryFilter<br></div>2. vtkPolyDataNormals<br></div>3. vtkPolyDataConnectivityFilter (or vtkConnectivityFilter)<br></div>4. vtkThreshold<br><br></div>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:<br></div><ol><li>Is there a way to access each individual region? And if so, is vtkThreshold even necessary?<br></li><li>Is there a way to get the "RegionId" array in VTK and add it to the data? <br></li></ol></div><div>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?<br><br></div><div>Thanks,<br>Evan Kao<br></div><div><br></div></div>
</blockquote></div><br></div>