Mesh2Tetra

Convert a closed triangulated mesh to a tetrahedron volume ( like constrained Delaunay )
2K Downloads
Updated 18 Jun 2010

View License

This function MESH2TETRA converts a triangulated surface mesh into a tetrahedron volume mesh.

Main advantage above existing constrained 3D Delaunay is that it
will never add new boundary points, (useful for active appearance models)
Disadvantage, some highly non-convex surface-shapes cannot be converted.

T=Mesh2Tetra(V,F,options);

inputs,
V : Vertex List N x 3, with x,y,z positions
F : Face List M x 3, with vertex indices
options : Struct with options
options.verbose : if true, show information
options.checkinput : if true, check input mesh on errors

outputs,
T : Tetrahedron List K x 4, with tetrahedron indices


Note!, most functions are also available as c-code (much faster),
run compile_c_files.m to compile the code

How the software works:
- First, normal Delaunay is used to created a tetrahedron convexhull.
Then outside tetrahedrons and tetrahedrons intersecting the boundary
mesh are removed.
- Second, New triangulated surface meshes are constructed for the space
not yet filled by tetrahedrons. After which Delaunay
is done on the new boundary meshes.
- Third, The remaining boundary which cannot be filled using Delaunay
constraints, is filled with a "Boundary collapse method". The Boundary
collapse method merges vertex neighbors, creating tetrahedrons while
making the surface mesh smaller (like a deflating balloon)
- Fourth, It is possible that a part of the boundary mesh is left over which
cannot be filled with tetrahedrons. This is the case if there are no 4
vertices left who can see each other (like a non-convex polygon). In
that case nearby Tetrahedrons are removed creating a new boundary
mesh. And tetrahedron fitting with the boundary collapse methods is
tried again (until success, or a fixed amount of tries).

.
Please leave a comment if you find a bug, like the code, or have a good suggestion.

Cite As

Dirk-Jan Kroon (2024). Mesh2Tetra (https://www.mathworks.com/matlabcentral/fileexchange/27830-mesh2tetra), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2010a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.2.0.0

Added some code to correct for mesh intersections, sadly not yet perfect ...

1.1.0.0

Improved help and made input-options work for sub-functions.

1.0.0.0