# Can't extract boundary from vtkPolyData

**URL:** https://discourse.vtk.org/t/cant-extract-boundary-from-vtkpolydata/3258
**Category:** Support
**Created:** [May 9, 2020, 12:18pm UTC](https://discourse.vtk.org/t/cant-extract-boundary-from-vtkpolydata/3258 "2020-05-09T12:18:57Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![kerim](https://discourse.vtk.org/user_avatar/discourse.vtk.org/kerim/32/1175_2.png) [@kerim](https://discourse.vtk.org/u/kerim)
#### Post date: [May 9, 2020, 12:18pm UTC](https://discourse.vtk.org/t/cant-extract-boundary-from-vtkpolydata/3258/1 "2020-05-09T12:18:57Z")

</div>

Hi,

I’m trying to retrieve boundary points from `vtkPolyData` but without success. Here is how I try to do that:

```auto
// here are 9 points (see picture below)
    vtkSmartPointer<vtkPoints> points =
            vtkSmartPointer<vtkPoints>::New();
points->InsertNextPoint(0,0,0);
points->InsertNextPoint(-1,0,0);
points->InsertNextPoint(-1,1,0);
points->InsertNextPoint(0,1,0);
points->InsertNextPoint(1,1,0);
points->InsertNextPoint(1,0,0);
points->InsertNextPoint(1,-1,0);
points->InsertNextPoint(0,-1,0);
points->InsertNextPoint(-1,-1,0);

    vtkSmartPointer<vtkPolyData> pointsPolydata =
            vtkSmartPointer<vtkPolyData>::New();
    pointsPolydata ->SetPoints(points);

// create vertices for these points
    vtkSmartPointer<vtkVertexGlyphFilter> vertexFilter =
      vtkSmartPointer<vtkVertexGlyphFilter>::New();
    vertexFilter->SetInputData(pointsPolydata );
    vertexFilter->Update();

    vtkSmartPointer<vtkPolyData> polydata =
      vtkSmartPointer<vtkPolyData>::New();
    polydata->ShallowCopy(vertexFilter->GetOutput()); // ready to extract boundary

// apply filter
    vtkSmartPointer<vtkFeatureEdges> featureEdges =
      vtkSmartPointer<vtkFeatureEdges>::New();
    featureEdges->SetInputData(polydata);
    featureEdges->BoundaryEdgesOn();
    featureEdges->FeatureEdgesOff();
    featureEdges->ManifoldEdgesOff();
    featureEdges->NonManifoldEdgesOff();
    featureEdges->Update();

// visualization
    vtkSmartPointer<vtkPolyDataMapper> edgeMapper =
      vtkSmartPointer<vtkPolyDataMapper>::New();
    edgeMapper->SetInputData(featureEdges->GetOutput());
    vtkSmartPointer<vtkActor> edgeActor =
      vtkSmartPointer<vtkActor>::New();
    edgeActor->SetMapper(edgeMapper);
    edgeActor->GetProperty()->SetPointSize(10);

    vtkSmartPointer<vtkRenderer> renderer =
      vtkSmartPointer<vtkRenderer>::New();
    vtkSmartPointer<vtkRenderWindow> renderWindow =
      vtkSmartPointer<vtkRenderWindow>::New();
    renderWindow->AddRenderer(renderer);
    vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor =
      vtkSmartPointer<vtkRenderWindowInteractor>::New();
    renderWindowInteractor->SetRenderWindow(renderWindow);

    renderer->AddActor(edgeActor);
    renderWindow->Render();
    renderWindowInteractor->Start();

```

The result I get is empty window. Please show me my mistake.  
The raw 9-points data is shown on the picture and I hope to retrieve 8 surrounding points  
 ![1](https://discourse.vtk.org/uploads/default/original/2X/d/d750612b5615529e8781630d371692f333cbedf7.png)

---

<div class="post-metadata">

### Author: ![Ron84](https://discourse.vtk.org/user_avatar/discourse.vtk.org/ron84/32/630_2.png) [@Ron84](https://discourse.vtk.org/u/Ron84)
#### Post date: [May 9, 2020, 1:04pm UTC](https://discourse.vtk.org/t/cant-extract-boundary-from-vtkpolydata/3258/2 "2020-05-09T13:04:56Z")

</div>

`vtkFeatureEdges` is not the right filter for this. A boundary edge is an edge of a polygon that don’t have a second neighbor. I think you are searching for the convex hull.

---

<div class="post-metadata">

### Author: ![kerim](https://discourse.vtk.org/user_avatar/discourse.vtk.org/kerim/32/1175_2.png) [@kerim](https://discourse.vtk.org/u/kerim)
#### Post date: [May 9, 2020, 1:13pm UTC](https://discourse.vtk.org/t/cant-extract-boundary-from-vtkpolydata/3258/3 "2020-05-09T13:13:00Z")

</div>

@Ron84 Thank you for hint! I’m going to try `vtkConvexHull2D`  
Just to know better VTK could you please explain what _“A boundary edge is an edge of a polygon that don’t have a second neighbor”_ mean? I can’t imagine that

---

<div class="post-metadata">

### Author: ![Ron84](https://discourse.vtk.org/user_avatar/discourse.vtk.org/ron84/32/630_2.png) [@Ron84](https://discourse.vtk.org/u/Ron84)
#### Post date: [May 9, 2020, 1:22pm UTC](https://discourse.vtk.org/t/cant-extract-boundary-from-vtkpolydata/3258/4 "2020-05-09T13:22:02Z")

</div>

Here is an illustration: ![mesh](https://discourse.vtk.org/uploads/default/original/2X/3/3a4bee22be54468538ed61a545a467218ebdbf50.png)

---

<div class="post-metadata">

### Author: ![kerim](https://discourse.vtk.org/user_avatar/discourse.vtk.org/kerim/32/1175_2.png) [@kerim](https://discourse.vtk.org/u/kerim)
#### Post date: [May 9, 2020, 1:27pm UTC](https://discourse.vtk.org/t/cant-extract-boundary-from-vtkpolydata/3258/5 "2020-05-09T13:27:53Z")

</div>

Thank you  
I think it becomes clearer to me

---

<div class="post-metadata">

### Author: ![kerim](https://discourse.vtk.org/user_avatar/discourse.vtk.org/kerim/32/1175_2.png) [@kerim](https://discourse.vtk.org/u/kerim)
#### Post date: [May 9, 2020, 2:14pm UTC](https://discourse.vtk.org/t/cant-extract-boundary-from-vtkpolydata/3258/6 "2020-05-09T14:14:21Z")

</div>

@Ron84 after few days I finally did it 🙂 Thank you)  
 ![image](https://discourse.vtk.org/uploads/default/original/2X/b/b4a48807defdaba617921538766db968448147cd.png)
