<font size=2 face="sans-serif">Hi,</font>
<br>
<br><font size=2 face="sans-serif">I have a problem with the use of 'vtkDataSetSurfaceFilter'
: it seems I have lost one point from my geometry (the first one).</font>
<br><font size=2 face="sans-serif">Moreover, if I want the normals to the
surfaces, they are not the expected ones. What have I missed ?</font>
<br><font size=2 face="sans-serif">I am using a single cube and here is
my Python code :</font>
<br>
<br>
<br><font size=2 face="sans-serif"># construct the UnstructuredGrid mesh</font>
<br><font size=2 face="sans-serif"># (i have also used a vtkFieldData and
a vtkDataObjectToDataSetFilter to construct my UnstructuredGrid, with the
same results)<br>
def GetMesh( ):</font>
<br><font size=2 face="sans-serif"> #
initialization</font>
<br><font size=2 face="sans-serif"> mesh
= vtkUnstructuredGrid()</font>
<br><font size=2 face="sans-serif"> </font>
<br><font size=2 face="sans-serif"> #
coordinates of the points</font>
<br><font size=2 face="sans-serif"> points
= [ [0, 0, 0], [0, 1, 0], [1, 1, 0], [1, 0, 0], [0, 0, 1], [0, 1, 1], [1,
1, 1], [1, 0, 1] ]</font>
<br><font size=2 face="sans-serif"> </font>
<br><font size=2 face="sans-serif"> #
set points</font>
<br><font size=2 face="sans-serif"> vtk_points
= vtkPoints()</font>
<br><font size=2 face="sans-serif"> for
point in points:</font>
<br><font size=2 face="sans-serif">
vtk_points.InsertNextPoint( point[0], point[1],
point[2] )</font>
<br><font size=2 face="sans-serif"> </font>
<br><font size=2 face="sans-serif"> mesh.SetPoints(
vtk_points )</font>
<br><font size=2 face="sans-serif"> </font>
<br><font size=2 face="sans-serif"> #
set connectivity</font>
<br><font size=2 face="sans-serif"> pts
= vtkIdList()</font>
<br><font size=2 face="sans-serif"> pts.SetNumberOfIds(8)</font>
<br><font size=2 face="sans-serif"> for
k in range(8):</font>
<br><font size=2 face="sans-serif">
pts.InsertId( k, k+1 )</font>
<br><font size=2 face="sans-serif"> </font>
<br><font size=2 face="sans-serif"> mesh.InsertNextCell(
VTK_HEXAHEDRON, pts )</font>
<br><font size=2 face="sans-serif"> </font>
<br><font size=2 face="sans-serif"> return
mesh</font>
<br>
<br><font size=2 face="sans-serif">meshUG = GetMesh()</font>
<br>
<br><font size=2 face="sans-serif"># extract surface</font>
<br><font size=2 face="sans-serif">surfFilter = vtkDataSetSurfaceFilter()</font>
<br><font size=2 face="sans-serif"># print 'USE OF GEOMETRYFILTER ->
HANGS'</font>
<br><font size=2 face="sans-serif"># surfFilter = vtkGeometryFilter()</font>
<br><font size=2 face="sans-serif">surfFilter.SetInput( meshUG )</font>
<br><font size=2 face="sans-serif">surfFilter.Update()</font>
<br>
<br><font size=2 face="sans-serif"># check results</font>
<br><font size=2 face="sans-serif">nbMeshPoints = meshUG.GetNumberOfPoints()
# result = 8 (OK)</font>
<br><font size=2 face="sans-serif">nbMeshCells = meshUG.GetNumberOfCells()
# result = 1 (OK)</font>
<br><font size=2 face="sans-serif">nbSurfacePoints = surfFilter.GetOutput().GetNumberOfPoints()
# result = 7 (NOT OK : THE FIRST POINT IS MISSING)</font>
<br><font size=2 face="sans-serif">nbSurfaceCells = surfFilter.GetOutput().GetNumberOfCells()
# result = 6 (OK ??? THE NORMALS ARE NOT THE EXPECTED ONES)</font>
<br><font size=2 face="sans-serif"> </font>
<br><font size=2 face="sans-serif">A.R.</font>