JuliaGeometry/DelaunayTriangulation.jl

Goals for 1.0

Closed this issue · 1 comments

I should get this package to 1.0 when I eventually find some more time. Some goals before doing so:

  • Better default methods for interface methods (#62)
  • Provide supporting for clipping Voronoi tessellations on more general geometries (#48)
  • I want to eventually support curved segments. I don't think this will be in 1.0, but I should at least double check that the interface I currently use could be easily extended to support a more general definition of a boundary (e.g. I provide a function defining a boundary which I can then sub-sample to get boundary notes until I have "enough", as is required for some curved boundary methods).
  • Spatial sorting is a big need (#34). I just haven't found a good reference for it.
  • Better support should be provided for cleaning up a user's input if needed, or at least making it possible. There is currently check_args that has to be used e.g. for disjoint domains - I wonder if that can be modified somehow (it's currently like that because I don't know of an efficient way for testing if a domain is in disjoint components). This could be something separate to triangulate, since it is nice to assume that everything is working (if a user provides duplicate points, should I remove them? error? continue? etc. This is hard to think about since it may make the user use e.g. each_point which will include the duplicate points but won't match the vertices in the triangulation). A related issue is #42. This can probably be done before or after 1.0, but I should think about it first.
  • Of course, it would be nice to resolve #49 and #44, but those can be done anytime. Not a priority right now, though.
  • Simplify the documentation. Currently there's too much of a mix between example, tutorial, and background explanation. Docs are being revamped currently in the new-docs branch https://github.com/DanielVandH/DelaunayTriangulation.jl/tree/new-docs.

I wonder if, once curved boundaries are supported, I should remove Gmsh support. I guess it doesn't hurt to keep it, but my implementation (1) only exists because I didn't have CDT/refinement support at the time and (2) is quite limited compare to Gmsh support in other Julia packages.