mirror of https://github.com/CGAL/cgal
handle triangles attached by non-manifold vertices
This commit is contained in:
parent
e0184766d2
commit
c697c2086f
|
|
@ -1349,7 +1349,6 @@ bool
|
|||
out_edge_iterator eb1, ee1 ;
|
||||
out_edge_iterator eb2, ee2 ;
|
||||
|
||||
|
||||
// The following loop checks the link condition for v0_v1.
|
||||
// Specifically, that for every vertex 'k' adjacent to both 'p and 'q', 'pkq' is a face of the mesh.
|
||||
//
|
||||
|
|
@ -1382,8 +1381,6 @@ bool
|
|||
bool lIsFace = ( vL == k && (! is_border(v0_v1,g)) )
|
||||
|| ( vR == k && (! is_border(v1_v0,g)) ) ;
|
||||
|
||||
|
||||
|
||||
if ( !lIsFace )
|
||||
{
|
||||
// CGAL_ECMS_TRACE(3," k=V" << get(Vertex_index_map,k) << " IS NOT in a face with p-q. NON-COLLAPSABLE edge." ) ;
|
||||
|
|
@ -1398,24 +1395,13 @@ bool
|
|||
}
|
||||
}
|
||||
|
||||
// detect isolated triangle (or triangle attached to a mesh with non-manifold vertices)
|
||||
if (!is_border(v0_v1,g) && is_border(opposite(next(v0_v1,g), g), g)
|
||||
&& is_border(opposite(prev(v0_v1,g), g), g) ) return false;
|
||||
if (!is_border(v1_v0,g) && is_border(opposite(next(v1_v0,g), g), g)
|
||||
&& is_border(opposite(prev(v1_v0,g), g), g) ) return false;
|
||||
|
||||
if ( is_border(v0_v1,g) )
|
||||
{
|
||||
if ( next(next(next(v0_v1,g),g),g) == v0_v1 )
|
||||
{
|
||||
//CGAL_ECMS_TRACE(3," p-q belongs to an open triangle. NON-COLLAPSABLE edge." ) ;
|
||||
return false ;
|
||||
}
|
||||
}
|
||||
else if ( is_border(v1_v0,g) )
|
||||
{
|
||||
if ( next(next(next(v1_v0,g),g),g) == v1_v0 )
|
||||
{
|
||||
//CGAL_ECMS_TRACE(3," p-q belongs to an open triangle. NON-COLLAPSABLE edge." ) ;
|
||||
return false ;
|
||||
}
|
||||
}
|
||||
else
|
||||
if ( !is_border(v0_v1,g) && !is_border(v1_v0,g) )
|
||||
{
|
||||
if ( is_border(v0,g) && is_border(v1,g) )
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue