Merge remote-tracking branch 'cgal/master' into gsoc2022-isosurface

This commit is contained in:
Sébastien Loriot
2024-12-16 11:47:34 +01:00
547 changed files with 11909 additions and 16078 deletions
@@ -642,6 +642,8 @@ class Intersection_of_triangle_meshes
{
if(is_new_node)
visitor.new_node_added(node_id,ON_FACE,v_1,f_2,tm1,tm2,true,false);
else
return;
Edge_to_faces& tm1_edge_to_tm2_faces = &tm1 <= &tm2
? stm_edge_to_ltm_faces
@@ -677,6 +679,8 @@ class Intersection_of_triangle_meshes
{
if(is_new_node)
visitor.new_node_added(node_id,ON_VERTEX,h_2,v_1,tm2,tm1,false,false);
else
return;
Edge_to_faces& tm1_edge_to_tm2_faces = &tm1 <= &tm2
? stm_edge_to_ltm_faces
@@ -724,6 +728,8 @@ class Intersection_of_triangle_meshes
{
if(is_new_node)
visitor.new_node_added(node_id,ON_VERTEX,v_2,v_1,tm2,tm1,true,false);
else
return;
Edge_to_faces& tm1_edge_to_tm2_faces = &tm1 <= &tm2
? stm_edge_to_ltm_faces
@@ -1036,15 +1036,7 @@ namespace internal {
// property map of constrained vertices for relaxation
auto vertex_constraint = [&](const vertex_descriptor v)
{
for (halfedge_descriptor h : halfedges_around_target(v, mesh_))
{
Halfedge_status s = status(h);
if ( s == PATCH
|| s == PATCH_BORDER
|| status(opposite(h, mesh_)) == PATCH_BORDER)
return false;
}
return true;
return !is_move_allowed(v, relax_constraints);
};
auto constrained_vertices_pmap
= boost::make_function_property_map<vertex_descriptor>(vertex_constraint);
@@ -1402,6 +1394,23 @@ private:
return true;
}
bool is_move_allowed(const vertex_descriptor v, const bool relax_constraints) const
{
if (is_constrained(v))
return false;
for (halfedge_descriptor h : halfedges_around_target(v, mesh_))
{
if (is_on_patch(h))
continue;
else if (is_on_patch_border(h) && relax_constraints)
continue;
else
return false;
}
return true;
}
halfedge_descriptor next_on_patch_border(const halfedge_descriptor& h) const
{
CGAL_precondition(is_on_patch_border(h));
@@ -714,7 +714,7 @@ private:
{
Vector_3 bmin, bmax;
Orientation ori;
Orientation ori = ON_ORIENTED_BOUNDARY; // to avoid maybe uninitialized warning
for (unsigned int i = 0; i < prismindex.size(); i++){
if (prismindex[i] == jump){