mirror of https://github.com/CGAL/cgal
fix for corefinement demo plugin in case of hand modified polyhedron
In case a polyhedron is modified "by hand", the canonical halfedge of a pair might be on the boundary. If it's the case, we simply take the opposite. Add assertions to check we don't access the facet of a border halfedge Trivial bug fix for master
This commit is contained in:
parent
59a7f710dd
commit
2f4ed34a85
|
|
@ -892,7 +892,8 @@ class Intersection_of_Polyhedra_3{
|
|||
void operator()( const Box* fb, const Box* eb) const {
|
||||
Halfedge_handle fh = fb->handle(); //handle for the face
|
||||
Halfedge_handle eh = eb->handle(); //handle for the edge
|
||||
|
||||
if(eh->is_border()) eh = eh->opposite();
|
||||
CGAL_assertion(!eh->is_border());
|
||||
|
||||
//check if the segment intersects the plane of the facet or if it is included in the plane
|
||||
const typename Kernel::Point_3 & a = fh->vertex()->point();
|
||||
|
|
@ -906,7 +907,7 @@ class Intersection_of_Polyhedra_3{
|
|||
return; //no intersection
|
||||
}
|
||||
//WARNING THIS IS DONE ONLY FOR POLYHEDRON (MAX TWO INCIDENT FACETS TO EDGE)
|
||||
if (!eh->is_border() && orientation(a,b,c,eh->next()->vertex()->point())==COPLANAR){
|
||||
if (/* !eh->is_border() && */ orientation(a,b,c,eh->next()->vertex()->point())==COPLANAR){
|
||||
coplanar_facets.insert(make_sorted_pair_of_facets(eh->facet(),fh->facet()));
|
||||
}
|
||||
if (!eh->opposite()->is_border() && orientation(a,b,c,eh->opposite()->next()->vertex()->point())==COPLANAR){
|
||||
|
|
|
|||
|
|
@ -1373,6 +1373,7 @@ public:
|
|||
void add_filtered_intersection(Halfedge_handle eh,Halfedge_handle fh,Polyhedron& Pe,Polyhedron& Pf){
|
||||
//use the representant halfedge of the facet as key
|
||||
//--set polyhedron for the two facets incident to the edge
|
||||
CGAL_assertion(!eh->is_border());
|
||||
hedge_to_polyhedron.insert(std::make_pair(eh->facet()->halfedge(),&Pe));
|
||||
if ( !eh->opposite()->is_border() )
|
||||
hedge_to_polyhedron.insert(std::make_pair(eh->opposite()->facet()->halfedge(),&Pe));
|
||||
|
|
|
|||
Loading…
Reference in New Issue