Delaunay tetrahedralisations are a long way off but it would be nice to get it eventually. The development would probably be similar to how this package has gone so far for 2D. In particular, it would look something like
Implementation of a simple unconstrained Delaunay tetrahedralisation without any smart point location (aka use brute force point location)
Implementation of point location. This is just jump_and_march in 3D. This will replace the brute force. This will honestly probably be the hardest / most annoying part. It needs to be rigorously tested for degeneracies, of which there are many more possibilities than in 2D, and needs to be properly configured to allow for constraints later on.
Figure out the correct data structures to use. This can just be an extension of Triangulation but it needs to include both triangles and tetrahedrons (?). Eventually there'll be a complete rework of Triangulation (maybe) to make it more memory efficient which might be worth thinking about when designing the 3D variant Tetrahedralisation.
Figure out the details of inserting segments, triangles, and tetrahedrons into the mesh, and implement it.
Implement mesh refinement.
I have no use for Voronoi tessellations, but they fit in here somewhere too. Shewchuk's book has some good references. These ideas also give way for e.g. surface triangulations. I don't think I would ever intend on implementing curve-bounded domains in 3D, I don't want to go through that headache again.. point location is hard enough.
(I'll note that this issue is in no way an indication of this being actively worked on, but more just for tracking thoughts/ideas about the problem. Use TetGen.jl if you need 3D in the interim.)
Delaunay tetrahedralisations are a long way off but it would be nice to get it eventually. The development would probably be similar to how this package has gone so far for 2D. In particular, it would look something like
jump_and_march
in 3D. This will replace the brute force. This will honestly probably be the hardest / most annoying part. It needs to be rigorously tested for degeneracies, of which there are many more possibilities than in 2D, and needs to be properly configured to allow for constraints later on.Triangulation
but it needs to include both triangles and tetrahedrons (?). Eventually there'll be a complete rework ofTriangulation
(maybe) to make it more memory efficient which might be worth thinking about when designing the 3D variantTetrahedralisation
.I have no use for Voronoi tessellations, but they fit in here somewhere too. Shewchuk's book has some good references. These ideas also give way for e.g. surface triangulations. I don't think I would ever intend on implementing curve-bounded domains in 3D, I don't want to go through that headache again.. point location is hard enough.
(I'll note that this issue is in no way an indication of this being actively worked on, but more just for tracking thoughts/ideas about the problem. Use TetGen.jl if you need 3D in the interim.)