Skip to content

Handle triangulated faces of the convex hull#7933

Draft
sloriot wants to merge 4 commits intoCGAL:mainfrom
sloriot:CH3-coplanar_faces
Draft

Handle triangulated faces of the convex hull#7933
sloriot wants to merge 4 commits intoCGAL:mainfrom
sloriot:CH3-coplanar_faces

Conversation

@sloriot
Copy link
Copy Markdown
Member

@sloriot sloriot commented Dec 15, 2023

Problem Description

Halfspace intersection (with or without constructions) does not handle the fact that CGAL's convex hull implementation always returns a triangulated hull. In case the dual has a face made of 4 or more coplanar points, this face is triangulated and this results in duplicated vertices in the primal.

Current Status

For now, I did a simple hack in the version without constructions to make sure that my diagnostic was correct. With the hack the test added passes.

IMO, the right fix should be to add a new named parameter in CH3 to fill an edge property map indicating if an edge is between two planar faces of the convex hull. We can do it greedily or modify the current code to detect that during the intersection test in find_visible_set() (basically where I added the comment). This would need to update the CH3 convex to add Orientation_3()(p1,p2,p3,p4). One interesting thing to note is that in the current implementation, a non-triangle face of the convex hull is stared with the last point added in the face (and in particular TDS::Face_handle are all "new" each time a point is found, so that cannot be put in a map for example).

Release Management

to be removed later

[skip ci]
@MaelRL MaelRL added this to the 6.1-beta milestone Feb 20, 2025
@MaelRL MaelRL modified the milestones: 6.1-beta, 6.2-beta Mar 18, 2025
@sloriot sloriot changed the base branch from master to main September 18, 2025 05:56
@MaelRL MaelRL modified the milestones: 6.2-beta, 6.3-beta Mar 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Highly Degenerate Polyhedra from halfspace_intersection_3()

3 participants