-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Labels
Description
Summary of Changes
Instead of changing the API of TDS, Triangulation, and everything using it, the PR #8909 takes another approach: store indices in the data structures instead of handles, and generate the handles on the fly, which hold a pointer to the TDS and an index.
We also split Triangulation_data_structure_3
in two:
- a base class which knows about storage and index/vs pointer and provides an API with handles,
- and a derived class that uses this API with handles, which works for both base classes as in the derived class we do not use pointers or indices directly.
Todo
- Move code out of the package
Surface_mesh
as this is currently a dependency we get reported in the CI. - Separate the point property from the connectivity property. I am even wondering why the connectivity must be in the vertex and cell classes, and is not just in the storage class. Are there uses cases where one would like to have aother kind of connectivity?
- Deal with the parallel code.
- TDS_3 with indices: how to deal with cached circumcenters? (Delaunay_triangulation_cell_base_with_circumcenter_3 and others) #8970
- Deal with time stamper.
- Deal with erase counter.
- Finalize the specialization for the
Fast_policy
. - Find a cleaner solution for
Is_CGAL_TDS_3
(only revealed by this PR) - Cleanup the
move_vertex()
inside a for all vertices. Should be forbidden as it can also break with aCompact_container
. This is not in the code itself but in the testsuite.
Problems
- When we copy a triangulation with a cell or vertex that stores a handle, then the tds pointer in the handle must be updated. That concerns for example the hierarchy as it stores handles as up and down to link the hierarchy levels and is done properly.