Skip to content
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

deprecate Surface_mesher package #8248

Merged
merged 24 commits into from
Jun 12, 2024

Conversation

sloriot
Copy link
Member

@sloriot sloriot commented Jun 3, 2024

Surface_mesher has not been updated for a long time and all its functionalities (and more) have been implemented in Mesh_3. We now officially recommend to use Mesh_3 instead by deprecating the package.

Fixes #3237

Fixes #8211

@janetournois
Copy link
Member

There is one issue left in CGAL/poisson_refine_triangulation.h , that still uses Surface_mesh_traits_generator_3

@lrineau
Copy link
Member

lrineau commented Jun 4, 2024

I am quite surprised by this PR. I thought the urgency for CGAL-6.0-beta1 was to announce a deprecation:

  • at the top of the user- and ref- manuals,
  • in the CHANGES.md,
  • and maybe only for the entry-point function make_surface_mesh.

This PR is deprecating all the headers, and then everything that uses Surface_mesher internal now has to move in a rush, before CGAL-6.0-beta1. Is there a chance that:

  • we can converge to a stable state in, say, less than a week,
  • and that we have the confidence we will not introduce regression bugs in the process?

@lrineau lrineau added the rm only: release blocker For the release team only: the next release requires this issue/PR to be solved/merge label Jun 4, 2024
@lrineau
Copy link
Member

lrineau commented Jun 4, 2024

In a conversion IRL, @afabri reminded me that this work is probably related to #7891.

@lrineau
Copy link
Member

lrineau commented Jun 5, 2024

With commit 6547f64 I have repaired the reconstruction plugin, and tested it in CGAL Lab. It seems correct.

Screenshot_20240605_165157

On the console:

Computes Poisson implicit function using Conjugate Gradient...
Construction time of the sizing field: 1.2761150000000008 seconds
Total implicit function (triangulation+refinement+solver): 5.9814699999999998 seconds
Surface meshing...
/home/lrineau/Git/cgal-master/Poisson_surface_reconstruction_3/include/CGAL/Poisson_reconstruction_function.h:263:70: runtime error: reference binding to null pointer of type 'struct value_type'
Surface meshing: 10.593293999999998 seconds, 756 output vertices
Total reconstruction (implicit function + meshing): 16.730679000000002 seconds
Reconstruction error:
  max = 0.127707182737539
  avg = 0.0087130995426717341
Reconstruction achieved in 10.024125099182129s

Note that the UBAN sanitizer does not like that code, for a null cell pointer:

Cell_handle get() const
{
return Triangulation_data_structure::Cell_range::s_iterator_to(*m_cell);
}

@lrineau
Copy link
Member

lrineau commented Jun 5, 2024

Note that the UBAN sanitizer does not like that code, for a null cell pointer:

Cell_handle get() const
{
return Triangulation_data_structure::Cell_range::s_iterator_to(*m_cell);
}

Fixed by 9cd4535. Now:

Cell_handle get() const
{
if(m_cell == nullptr)
return {};
else
return Triangulation_data_structure::Cell_range::s_iterator_to(*m_cell);
}

Maybe s_iterator_to in the compact container should have an overload for pointers, to avoid that extract test for null.


Edit: see the new issue #8260

lrineau added 2 commits June 5, 2024 18:50
```
include/CGAL/Poisson_reconstruction_function.h:263:70: runtime error: reference binding to null pointer of type 'struct value_type'
```
@lrineau lrineau force-pushed the CGAL-deprecate_Surface_mesher branch from 9cd4535 to 693206c Compare June 5, 2024 16:50
@lrineau

This comment was marked as outdated.

This comment was marked as outdated.

@lrineau

This comment was marked as outdated.

lrineau added 2 commits June 5, 2024 20:06
Now it uses Mesh_3 (in sequential) instead of Surface_mesher.
@albert-github
Copy link
Contributor

It looks like that the STL_Extension.tag is mentioned twice in the used Doxyfile (or the content is contained in another tag file as well).
It looks like that this is a doxygen 1.9.6 problem and is fixed in the doxygen 1.10.0 and later, looks like fixes doxygen/doxygen#10323 it looks though that also 1.11.0 version contains a small adjustment fix doxygen/doxygen#10850 i.e. doxygen/doxygen#10854

In the 1.11.0 version it looks like the message cannot appear anymore except for the C++-20 modules

@lrineau
Copy link
Member

lrineau commented Jun 6, 2024

Issue with Poisson_implicit_surface_3

The full diff is at https://gist.github.com/lrineau/f5408f2e0c57e35ebf13f48b4778db90

@lrineau
Copy link
Member

lrineau commented Jun 6, 2024

@sloriot @afabri See 6daec19. There are a lot more dependencies for Poisson reconstruction, now.

@lrineau
Copy link
Member

lrineau commented Jun 7, 2024

/force-build:wip

Copy link

github-actions bot commented Jun 7, 2024

The documentation is built. It will be available, after a few minutes, here: https://cgal.github.io/8248/wip/Manual/index.html

Copy link
Member

@lrineau lrineau left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, now.

  • Tested a few packages with CTest: ✔️
  • Tested CGAL Lab with the reconstruction and xyz plugins: ✔️
100% tests passed, 0 tests failed out of 138

Label Time Summary:
Basic_viewer_Examples                        =  71.67 sec*proc (14 tests)
CGAL_build_system                            =   2.86 sec*proc (2 tests)
Installation                                 =   2.86 sec*proc (2 tests)
Poisson_surface_reconstruction_3_Examples    = 129.51 sec*proc (10 tests)
Poisson_surface_reconstruction_3_Tests       = 235.40 sec*proc (10 tests)
STL_Extension_Examples                       =  29.91 sec*proc (14 tests)
STL_Extension_Tests                          = 280.70 sec*proc (72 tests)
Surface_mesher_Examples                      =  32.04 sec*proc (6 tests)
Surface_mesher_Tests                         =  60.02 sec*proc (10 tests)

Total Test time (real) = 152.82 sec

@lrineau
Copy link
Member

lrineau commented Jun 7, 2024

In CGAL Lab, the dialog that opens with the action "Surface Reconstruction", still mention "Surface Mesher". But I do not know what it could be replaced with. "Mesh_3" and "3D Mesh Generation" both the same issue: they do not convey that the code is only returning a surface mesh, as a result.

Screenshot_20240607_162133 (1)

@lrineau lrineau self-assigned this Jun 7, 2024
@afabri
Copy link
Member

afabri commented Jun 7, 2024

This is no problem. We use Mesh_3 as Surface Mesher. In fact even with Mesh_3 we somehow would lilke to have a function called make_surface_mesh.

@lrineau
Copy link
Member

lrineau commented Jun 7, 2024

This is no problem. We use Mesh_3 as Surface Mesher. In fact even with Mesh_3 we somehow would lilke to have a function called make_surface_mesh.

I have created a new issue #8269 to track that idea.

lrineau added a commit to lrineau/cgal that referenced this pull request Jun 10, 2024
@sloriot
Copy link
Member Author

sloriot commented Jun 12, 2024

Successfully tested in CGAL-6.0-Ic-264

@lrineau lrineau added the rm only: ready for master For the release team only: that indicates that a PR is about to be merged in 'master' label Jun 12, 2024
@lrineau lrineau merged commit 1b534cd into CGAL:master Jun 12, 2024
1 check passed
@lrineau lrineau removed the rm only: ready for master For the release team only: that indicates that a PR is about to be merged in 'master' label Jun 12, 2024
@lrineau lrineau deleted the CGAL-deprecate_Surface_mesher branch June 12, 2024 08:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Cleaning Merged_in_6.0 Pkg::Surface_mesher rm only: release blocker For the release team only: the next release requires this issue/PR to be solved/merge Tested
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Dependencies file with tag files and the resulting doxygen "dxy" file Deprecation of Surface_mesher
6 participants