mirror of https://github.com/CGAL/cgal
Merge pull request #7704 from sloriot/Mesh_3-PCMD_in_domain_bug
Fix Is_in_domain potential infinite loop # Conflicts: # Mesh_3/include/CGAL/Polyhedral_complex_mesh_domain_3.h
This commit is contained in:
commit
3cf928a4c7
|
|
@ -528,9 +528,9 @@ public:
|
|||
return r_domain_.bounding_aabb_tree_ptr()->
|
||||
first_intersected_primitive(ray);
|
||||
}
|
||||
|
||||
#if USE_ALL_INTERSECTIONS
|
||||
std::optional<AABB_primitive_id> shoot_a_ray_2(const Ray_3 ray) const {
|
||||
#define CGAL_USE_ALL_INTERSECTIONS 0
|
||||
#if CGAL_USE_ALL_INTERSECTIONS
|
||||
std::optional<AABB_primitive_id> shoot_a_ray_2(const Ray_3& ray) const {
|
||||
const Point_3& p = ray.source();
|
||||
typedef typename AABB_tree::
|
||||
template Intersection_and_primitive_id<Ray_3>::Type Inter_and_prim;
|
||||
|
|
@ -556,7 +556,7 @@ public:
|
|||
return it->second;
|
||||
}
|
||||
}
|
||||
#endif // USE_ALL_INTERSECTIONS
|
||||
#endif // CGAL_USE_ALL_INTERSECTIONS
|
||||
|
||||
Subdomain operator()(const Point_3& p) const {
|
||||
if(r_domain_.bounding_aabb_tree_ptr() == 0) return Subdomain();
|
||||
|
|
@ -578,8 +578,7 @@ public:
|
|||
|
||||
const Ray_3 ray_shot = ray(p, vector(CGAL::ORIGIN,*random_point));
|
||||
|
||||
#define USE_ALL_INTERSECTIONS 0
|
||||
#if USE_ALL_INTERSECTIONS
|
||||
#if CGAL_USE_ALL_INTERSECTIONS
|
||||
std::optional<AABB_primitive_id> opt = shoot_a_ray_2(ray_shot);
|
||||
#else // first_intersected_primitive
|
||||
std::optional<AABB_primitive_id> opt = shoot_a_ray_1(ray_shot);
|
||||
|
|
@ -617,7 +616,11 @@ public:
|
|||
return pair.second == 0 ?
|
||||
Subdomain() :
|
||||
Subdomain(Subdomain_index(pair.second));
|
||||
default: /* COPLANAR */ continue; // loop
|
||||
default: /* COPLANAR */
|
||||
if (!triangle.has_on(p))
|
||||
continue; // loop
|
||||
else
|
||||
return Subdomain(Subdomain_index((std::max)(pair.first,pair.second))); // make a canonical choice
|
||||
} // end switch on the orientation
|
||||
} // opt
|
||||
} // end while(true)
|
||||
|
|
|
|||
Loading…
Reference in New Issue