0

I executed the 3D alpha shape function with CGAL and I got unexpected results. My input data was a set of 3D points (x, y, z) that represents one building (box) in a flat area (with some noise in the coordinates - small ones). I supposed I would get as a result only the surface triangles that represent the building (walls and roof) and the ground.

But, as a result I got triangles forming a convex hull of the surface. I tried to change the "optimal alpha value" but it was the same.

Is there any filtering process or parameter that I can set to get the surface triangles only?

Andre Silva
  • 4,782
  • 9
  • 52
  • 65
ricãO
  • 61
  • 1
  • 10

1 Answers1

1

You need to find the tetrahedons on the surface of the shape first. Then you can try alpha shapes and remove the edges exceeding alpha. In CGAL you Then check all tetrahedons if they are connected with a super tetrahedon. These are the tetrahedons on the surface of the shape. Then apply alpha shapes.

Micromega
  • 12,486
  • 7
  • 35
  • 72
  • I did not know about that. Thank you very much! Do you have any example about it? Or, do you know where can I find it? Regards! – ricãO Jan 12 '15 at 01:42
  • @ricãO:CGAL has 3d triangulation. Or look for Bowyer-Watson algorithm. I have it only implemted for 2d. – Micromega Jan 12 '15 at 01:44
  • I already used the 3d triangulation and I have the tetrahedrons. But, I would like to see some examples about how to apply the alpha shape after that! Cheers... – ricãO Jan 12 '15 at 02:54
  • @ricãO:Alpha shapes is a delaunay triangulation with edges exceeding alpha. – Micromega Jan 12 '15 at 09:07
  • What is the function to know if a tetrahedron is connected with a super tetrahedron? Sorry for so many questions... – ricãO Jan 12 '15 at 15:33
  • @ricãO:When a vertex is on the convex hull and it has an edge with a vertex if the super tetrahedon. – Micromega Jan 12 '15 at 16:08