-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Add experimental functions to compute the kernel of a triangle mesh #9131
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
base: main
Are you sure you want to change the base?
Conversation
…tion on the bound of coordinates
Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/clip_convex.h
Outdated
Show resolved
Hide resolved
Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/clip_convex.h
Outdated
Show resolved
Hide resolved
Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/clip_convex.h
Outdated
Show resolved
Hide resolved
Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/clip_convex.h
Outdated
Show resolved
Hide resolved
Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/clip_convex.h
Outdated
Show resolved
Hide resolved
Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/clip_convex.h
Outdated
Show resolved
Hide resolved
Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/clip_convex.h
Outdated
Show resolved
Hide resolved
Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/clip_convex.h
Outdated
Show resolved
Hide resolved
Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/clip_convex.h
Outdated
Show resolved
Hide resolved
Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/clip_convex.h
Outdated
Show resolved
Hide resolved
Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/clip_convex.h
Outdated
Show resolved
Hide resolved
…lip_convex.h Co-authored-by: Andreas Fabri <[email protected]>
| std::size_t seed = choose_parameter(get_parameter(np, internal_np::random_seed), std::random_device()()); | ||
|
|
||
| // Immediate exit if the input is not of gender zero to speedup on stupid benchmarks | ||
| // if (vertices(pm).size() - edges(pm).size() + faces(pm).size() != 2) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why is it no longer active? are you benchmark then wrong?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My benchmark does not contain meshes with genus different from zero and was therefore not impacted. I disabled it to be able to compute the kernel of a mesh with holes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How can a mesh with holes have a kernel?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The definition of the kernel is equivalent to the intersection of the halfspaces defined by the faces of the mesh. With this second definition, the kernel is correctly defined and can be used to compute the kernel of only a subpart of a mesh.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note that functions like vertices() are only tight on garbage collected meshes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
vertices.size() is always tight, num_vertices() is not.
Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/kernel.h
Outdated
Show resolved
Hide resolved
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
|
The documentation is built. It will be available, after a few minutes, here: https://cgal.github.io/9131/v0/Manual/index.html |
Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/kernel.h
Outdated
Show resolved
Hide resolved
Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/kernel.h
Outdated
Show resolved
Hide resolved
Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/kernel.h
Outdated
Show resolved
Hide resolved
Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/clip_convex.h
Outdated
Show resolved
Hide resolved
Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/kernel.h
Outdated
Show resolved
Hide resolved
Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/kernel.h
Outdated
Show resolved
Hide resolved
Polygon_mesh_processing/test/Polygon_mesh_processing/test_mesh_kernel.cpp
Outdated
Show resolved
Hide resolved
Polygon_mesh_processing/test/Polygon_mesh_processing/test_mesh_kernel.cpp
Show resolved
Hide resolved
STL_Extension/include/CGAL/STL_Extension/internal/parameters_interface.h
Show resolved
Hide resolved
Co-authored-by: Andreas Fabri <[email protected]>
|
I think it would be reasonable to have as precondition that the surface is a watertight 2manifold with a single connected component. Probably also free of self intersections. |
…_with_plane and remove_and_fill
None of these conditions are required for the functions to operate correctly. Should we specify preconditions that are not strictly necessary? |
|
As Leo just explained me, when the surface is open, the kernel could be an unbounded polytope. Therefore the algorithm clips with the bounding box of the vertices. This must be either documented, or the function could have as second parameter a bounding object. @sloriot ??? |
Add experimental functions to compute the kernel of a mesh
Release Management
PMP,BGL