[vtkusers] Poor results with vtkSurfaceReconstructionFilter
    Carl Hetherington 
    lists at carlh.net
       
    Wed Sep  4 06:40:35 EDT 2002
    
    
  
Hi,
I'm trying to reconstruct a surface from a set of unorganized points, and
to test it out I've written the following code.  It builds a sphere out of
points and then tries to reconstruct its surface.
  const float radius = 1.0;
  const int angle_steps = 500;
  vtkUnstructuredGrid* vtk_grid = vtkUnstructuredGrid::New();
  vtkPoints* vtk_points = vtkPoints::New();
  int pc = 0;
  float step = 2 * pi / angle_steps;
  for (float theta = 0; theta < 4 * pi; theta += step)
    for (float phi = 0; phi < 2 * pi; phi += step)
    {
      float xyz[3];
      xyz[0] = radius * cos(theta) * sin(phi);
      xyz[1] = radius * sin(theta) * sin(phi);
      xyz[2] = radius * cos(phi);
      vtk_points->InsertNextPoint(xyz);
      vtk_grid->InsertNextCell(VTK_VERTEX, 1, &pc);
      pc++;
    }
  vtk_grid->SetPoints(vtk_points);
  vtkSurfaceReconstructionFilter* recon = vtkSurfaceReconstructionFilter::New();
  recon->SetInput(vtk_grid);
  recon->Update();
  vtkContourFilter* contour = vtkContourFilter::New();
  contour->SetInput(recon->GetOutput());
  contour->SetNumberOfContours(1);
  contour->SetValue(0, 0.0);
  contour->UseScalarTreeOn();
  contour->Update();
The resulting surface is ok in most areas but has some fairly wild errors.
An example of the dodgy output is available at
http://www-users.york.ac.uk/~cth103/surf.vtk
Can anyone suggest why this might be happening?
Thanks in advance for any help
Carl
    
    
More information about the vtkusers
mailing list