4

Let's say I have some arbitrary set of points connected by faces and lines in order to make a closed polyhedron. Is there any algorithm that can divide such a mesh into a group of tetrahedra?

Conner Ruhl
  • 1,693
  • 4
  • 20
  • 31

1 Answers1

5

You can look to construct a constrained Delaunay triangulation (i.e. tetrahedralisation) of the points in R^3, where the constraints are a list of edges and triangular faces.

Be aware though -- in dimensions higher than two it is not always possible to form such a constrained triangulation directly! A good example is the Schonhardt Polyhedron. To deal with such polyhedra it's necessary to 'split' the constraints by introducing additional vertices. As I understand it, it is still an open area of research to determine the "best" way to do this, although a range of heuristic approaches have been suggested.

You might be interested in Jonathan Shewchuk's research/software in this area, specifically, his papers:

Address some of the issues of higher-dimensional constrained triangulations.

Also, I've assumed that your problem is non-trivial -- with a set of constraints that define a non-convex polyhedron. In the case of convex constraints these should be recovered directly just by computing the unconstrained Delaunay triangulation, which is guaranteed to exists in any dimensionality.

Darren Engwirda
  • 6,915
  • 4
  • 26
  • 42