void operator()( HDS& hds) { CGAL::Polyhedron_incremental_builder_3<HDS> B( hds, true); //start surface, number of halfedges is unknown (at least to me) B.begin_surface( vtkMesh->GetNumberOfVerts(),vtkMesh->GetNumberOfPolys(),0); typedef typename HDS::Vertex Vertex; typedef typename Vertex::Point Point; //add vertices to polyhedron for(vtkIdType i = 0; i < vtkMesh->GetNumberOfPoints(); i++) { double p[3]; vtkMesh->GetPoint(i,p); B.add_vertex(Point(p[0],p[1],p[2])); } //add faces to polyhedron vtkIdType npts, *pts; vtkMesh->GetPolys()->InitTraversal(); while(vtkMesh->GetPolys()->GetNextCell(npts,pts)) { B.begin_facet(); B.add_vertex_to_facet(pts[0]); B.add_vertex_to_facet(pts[1]); B.add_vertex_to_facet(pts[2]); B.end_facet(); } B.end_surface(); }