added a check to is_collapse_ok in TriConnectivity if the edge is already deleted or not.

moved the equivalent check in PolyConnectivity to the top of the is_collapse_ok function.

closes #681

git-svn-id: http://www.openmesh.org/svnrepo/OpenMesh/trunk@582 fdac6126-5c0c-442c-9429-916003d36597
This commit is contained in:
Isaak Lim
2012-05-08 10:48:07 +00:00
parent 0340ccf054
commit a79eab0528
2 changed files with 10 additions and 6 deletions

View File

@@ -284,6 +284,12 @@ PolyConnectivity::add_face(const VertexHandle* _vertex_handles, size_t _vhs_size
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
bool PolyConnectivity::is_collapse_ok(HalfedgeHandle v0v1) bool PolyConnectivity::is_collapse_ok(HalfedgeHandle v0v1)
{ {
//is edge already deleteed?
if (status(edge_handle(v0v1)).deleted())
{
return false;
}
HalfedgeHandle v1v0(opposite_halfedge_handle(v0v1)); HalfedgeHandle v1v0(opposite_halfedge_handle(v0v1));
VertexHandle v0(to_vertex_handle(v1v0)); VertexHandle v0(to_vertex_handle(v1v0));
VertexHandle v1(to_vertex_handle(v0v1)); VertexHandle v1(to_vertex_handle(v0v1));
@@ -304,12 +310,6 @@ bool PolyConnectivity::is_collapse_ok(HalfedgeHandle v0v1)
VertexHandle v_10_p = from_vertex_handle(prev_halfedge_handle(v1v0)); VertexHandle v_10_p = from_vertex_handle(prev_halfedge_handle(v1v0));
VertexHandle v_10_n = to_vertex_handle(next_halfedge_handle(v1v0)); VertexHandle v_10_n = to_vertex_handle(next_halfedge_handle(v1v0));
//is edge already deleteed?
if (status(edge_handle(v0v1)).deleted())
{
return false;
}
//are the vertices already deleted ? //are the vertices already deleted ?
if (status(v0).deleted() || status(v1).deleted()) if (status(v0).deleted() || status(v1).deleted())
{ {

View File

@@ -84,6 +84,10 @@ TriConnectivity::add_face(const VertexHandle* _vertex_handles, size_t _vhs_size)
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
bool TriConnectivity::is_collapse_ok(HalfedgeHandle v0v1) bool TriConnectivity::is_collapse_ok(HalfedgeHandle v0v1)
{ {
// is the edge already deleted?
if ( status(edge_handle(v0v1)).deleted() )
return false;
HalfedgeHandle v1v0(opposite_halfedge_handle(v0v1)); HalfedgeHandle v1v0(opposite_halfedge_handle(v0v1));
VertexHandle v0(to_vertex_handle(v1v0)); VertexHandle v0(to_vertex_handle(v1v0));
VertexHandle v1(to_vertex_handle(v0v1)); VertexHandle v1(to_vertex_handle(v0v1));