I have two systems of mesh, which are consist of Delaunay Triangulation. One can view this as a Triangulated Irregular Network (TIN).
The algorithm I can think of for adding or subtracting two TINs ( t1
and t2
) can be summarized as follows:
- Find the overlay ( or clip) of two TINs
- For each point in the overlay, find the
z1
andz2
resulted from the two TINs. - Develop a Delaunay Triangulation for all the points in the overlay, and then use the
z1
andz2
information above, one can thus create a tetrahedral for each triangle.
The question is, is there any existing C++ or C# library that already implement this ( or a variant of this)?
An elegant solution is to perform boolean operations (union, add etc) on the meshes. Boolean operations are fairly well defined on triangular meshes. The best library that implements these is the GNU Triangulated Surface Library.