Skip to content

API proposal for 3D mesh smoothing - #9576

Open
fprotais wants to merge 52 commits into
CGAL:mainfrom
fprotais:main
Open

API proposal for 3D mesh smoothing#9576
fprotais wants to merge 52 commits into
CGAL:mainfrom
fprotais:main

Conversation

@fprotais

@fprotais fprotais commented Jul 28, 2026

Copy link
Copy Markdown

Summary of Changes

This PR contains the first version of:

  • User manual
  • Code documentation
  • Code base
  • Working examples

for the proposed 3D mesh smoothing package.

Release Management

TODO

  • filter out extra files from history (@sloriot)

@sloriot sloriot added Not yet approved The feature or pull-request has not yet been approved. Feature labels Jul 28, 2026
@sloriot

This comment was marked as outdated.

@github-actions

This comment was marked as outdated.

1 similar comment
@github-actions

This comment was marked as outdated.

@sloriot

This comment was marked as outdated.

@github-actions

This comment was marked as outdated.

@afabri

afabri commented Jul 28, 2026

Copy link
Copy Markdown
Member

You write "API proposal", as for now you propose concepts, and the models are "only" in examples, right?

@afabri

afabri commented Jul 28, 2026

Copy link
Copy Markdown
Member

A first feedback

@fprotais

Copy link
Copy Markdown
Author

You write "API proposal", as for now you propose concepts, and the models are "only" in examples, right?

While the code and examples are already working, this PR was put mainly before the API freeze. Maybe the wording was confusing and I should have detailed that. I have several examples of implementation of the concept, they are in the PR, but undocumented. I wanted to focus on the concept and the C3t3_smoother that could already be of use in GF applications.
At a later stage, I will develop the documentation of "helper tools" in the package, for example to support mixed element meshes.

Thanks for the feedback, I'll do the corrections.

@afabri

afabri commented Jul 29, 2026

Copy link
Copy Markdown
Member

I think the real question is if we do not want to be similar to the BGL API.

@sloriot

sloriot commented Jul 29, 2026

Copy link
Copy Markdown
Member

I think the real question is if we do not want to be similar to the BGL API.

IMHO for this version, I would target something only working for c3t3 and existing CGAL types which would not block the introduction of something more general in the next version (without breaking the API).

@fprotais

Copy link
Copy Markdown
Author

I addressed some of the comment, not all, but it is in progress.

Regarding BGL, I can see changing some of the naming convention to match better, but why not match more to Triangulation_3 and C3t3 instead? From my understanding, BGL does not support tetrahedral meshes which is the first focus of my code. Having different "framework" for the different concepts (Volume, surface and curves) could be confusing.

@afabri afabri left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Can you make me collaborator?

Comment thread Mesh_smoothing_3/doc/Mesh_smoothing_3/Concepts/PolylinesDataStructure.h Outdated

/*!
Returns the number of vertices of given face. std::size_t is optional but will avoid warnings.
Returns the number of vertices of a face. std::size_t is optional but will avoid warnings.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

std::size_t must be backticked.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

What do you mean with "optional" ? That it may also be int or even void ?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

What would be the "less wordy" way to have a "size_type" instead of std::size_t? Triangulation_3 use its own typedef, but here I would see it as unecessary. Do I just use std::size_t?
(Regarding the backticked, I didn't find another example, it would just be std::size_t ?)

@@ -0,0 +1,6 @@
Manual

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
Manual
Manual
SMDS_3

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Right now I am not using anything, but that will change later. I will remove everything here and add back progressively.

@afabri

afabri commented Jul 30, 2026

Copy link
Copy Markdown
Member

It would be good to not call your branch "main" but for example "Mesh_smoothing-fprotais"

@afabri

afabri commented Jul 30, 2026

Copy link
Copy Markdown
Member

You should also remove trailing whitespace. In emacs I has a hook when saving the file. vscode can also do it. In case there are tabs in your files, you must also replace with blanks.

Comment thread Mesh_smoothing_3/include/CGAL/Mesh_smoothing_3/Mesh_smoothing_3.h Outdated
Comment thread Mesh_smoothing_3/include/CGAL/Mesh_smoothing_3/Mesh_smoothing_3.h Outdated
Comment thread Mesh_smoothing_3/examples/Mesh_smoothing_3/CMakeLists.txt Outdated
@sloriot

This comment was marked as outdated.

@github-actions

This comment was marked as outdated.

@sloriot

This comment was marked as outdated.

@github-actions

This comment was marked as outdated.

@sloriot

This comment was marked as off-topic.

@github-actions

This comment was marked as outdated.

@sloriot

This comment was marked as outdated.

@github-actions

Copy link
Copy Markdown

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CHANGES.md not updated Feature Not yet approved The feature or pull-request has not yet been approved.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants