Skip to content

TDS_3: use indices, and keep backward compatibility with handles #8909

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 160 commits into
base: master
Choose a base branch
from

Conversation

afabri
Copy link
Member

@afabri afabri commented May 26, 2025

Summary of Changes

Instead of changing the API of TDS, Triangulation, and everything using it, this PR takes another approach:
We 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.

We checked that the Triangulation with indexed storage can be used in Alpha Wrapping without as only change of code the typedef of the TDS.

Todo

See tracking issue #8969.

Release Management

  • Affected package(s): TDS_3
  • Feature/Small Feature (if any):
  • Link to compiled documentation (obligatory for small feature) wrong link name to be changed
  • License and copyright ownership:

@lrineau lrineau force-pushed the Triangulation_3-Handles-GF branch from dfd2d57 to 030b463 Compare June 26, 2025 16:17
lrineau added 7 commits June 30, 2025 18:16
TODO:
  - regular
  - add a real test
Now done:
  - a mixing class template,
  - delaunay_3,
  - regular_3.

TODO:
  - a real test

A lot of tests pass:
```
100% tests passed, 0 tests failed out of 435

Label Time Summary:
CGAL_build_system                   =   1.62 sec*proc (2 tests)
Installation                        =   1.62 sec*proc (2 tests)
Point_set_3_Examples                =  11.48 sec*proc (16 tests)
Point_set_3_Tests                   =   6.82 sec*proc (10 tests)
Polygon_mesh_processing_Examples    = 811.57 sec*proc (142 tests)
Polygon_mesh_processing_Tests       = 966.71 sec*proc (148 tests)
Surface_mesher_Examples             =  77.76 sec*proc (6 tests)
Surface_mesher_Tests                =  97.27 sec*proc (10 tests)
TDS_3_Examples                      =  26.27 sec*proc (8 tests)
TDS_3_Tests                         =  19.63 sec*proc (6 tests)
Triangulation_3_Demo                =  27.23 sec*proc (1 test)
Triangulation_3_Examples            = 451.51 sec*proc (42 tests)
Triangulation_3_Tests               = 628.44 sec*proc (44 tests)

Total Test time (real) = 421.98 sec
```
@lrineau lrineau changed the title TDS_3: Index in Handle TDS_3: use indices, and keep backward compatibility with handles Jul 3, 2025
@lrineau lrineau mentioned this pull request Jul 3, 2025
10 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants