CGAL / cgal

The public CGAL repository, see the README below
https://github.com/CGAL/cgal#readme
Other
4.98k stars 1.39k forks source link

Improvements for PMP::isotropic_remeshing #1708

Open janetournois opened 7 years ago

janetournois commented 7 years ago

We should

MaelRL commented 5 years ago

We should generalize the smoothing iteration of isotropic remeshing: integrate the current smoothing used by istropic remeshing into PMP::smooth_mesh and conversely, use PMP::smooth_mesh to improve the quality of the results of isotropic remeshing.

kabirkedia commented 3 years ago

Hi, I'm working on the second part of this issue that adds vertices to constraints. I'm writing a function detect_sharp_corners that is similar to detect_sharp_edges. (https://doc.cgal.org/latest/Polygon_mesh_processing/group__PMP__detect__features__grp.html#ga1e5e8ae3b4b8fc06270a50a48d92036d)

The detect_sharp_edge uses an edge_in_feature map for detecting if the edges are sharp or not, which is a feature of the boost library. I wondered if there was some map for vertices in boost that I can use to detect sharp vertices?

janetournois commented 3 years ago

Actually detect_sharp_edges() "fills" a property map on edges to set whether an edge is sharp or not. The function detect_sharp_corners() should similarly fill a property map on vertices, setting whether a vertex is sharp or not.

edge_is_constrained_map should be an optional named parameter for detect_sharp_corners()

sloriot commented 3 years ago

Maybe the simplest is to use something like in Mesh_3, that is call split_graph_into_polylines() using Angle_tester.

kabirkedia commented 3 years ago

Actually detect_sharp_edges() "fills" a property map on edges to set whether an edge is sharp or not. The function detect_sharp_corners() should similarly fill a property map on vertices, setting whether a vertex is sharp or not.

edge_is_constrained_map should be an optional named parameter for detect_sharp_corners()

Like the VNFE map there in detect_sharp_edges??

kabirkedia commented 3 years ago

Angle_tester.

This seems to be a pretty simple way but the most challenging thing for me here is to use the boost graph library to create a map. (This is a little new to me that's why) The logic is pretty straightforward.

sloriot commented 3 years ago

The map is already in the class Incremental_remesher: vcmap_ it simply needs to be filled.

janetournois commented 3 years ago

The map is already in the class Incremental_remesher: vcmap_ it simply needs to be filled.

Exactly! Start with writing the detect_sharp_corners(). You will then be able to use it in Incremental_remesher to fill vcmap_

janetournois commented 2 years ago

This issue was only partially fixed. I update the todo-list