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?
1 Answers
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:
- Constrained Delaunay Tetrahedralizations and Provably Good Boundary Recovery
- Updating and Constructing Constrained Delaunay and Constrained Regular Triangulations by Flips
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.

- 6,915
- 4
- 26
- 42
-
2Are there any good sources that could help me how to implement the methods you outlined? – Conner Ruhl Jan 17 '13 at 01:12