From 5acb759d8e26cb1a54ddd992986f6e965f1b35b1 Mon Sep 17 00:00:00 2001 From: mtarini Date: Thu, 24 Sep 2009 16:12:57 +0000 Subject: [PATCH] Removed a rarely expressed bug on CollapseDiag --- vcg/complex/trimesh/bitquad_support.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/vcg/complex/trimesh/bitquad_support.h b/vcg/complex/trimesh/bitquad_support.h index 32e99f97..f822f864 100644 --- a/vcg/complex/trimesh/bitquad_support.h +++ b/vcg/complex/trimesh/bitquad_support.h @@ -411,10 +411,9 @@ static void _CollapseDiagHalf(FaceType &f, int faux, MeshType& m) } } - //DecreaseValencyMaybeRemove(f.V(faux2),1,m); // update valency - DecreaseValency(&f,faux2,m); // update valency - Allocator::DeleteFace(m,f); + //DecreaseValency(&f,faux2,m); // update valency + //Allocator::DeleteFace(m,f); } @@ -766,6 +765,11 @@ static bool CollapseDiag(FaceType &f, ScalarType interpol, MeshType& m, Pos* aff _CollapseDiagHalf(*fb, fauxb, m); _CollapseDiagHalf(*fa, fauxa, m); + DecreaseValency(fb,(fauxb+2)%3,m); // update valency + DecreaseValency(fa,(fauxa+2)%3,m); // update valency + Allocator::DeleteFace(m,*fa); + Allocator::DeleteFace(m,*fb); + //assert(val == GetValency(vb)); SetValency(va, GetValency(va)+val-2); @@ -888,7 +892,6 @@ static void UpdateValencyInQuality(MeshType& m){ } static bool HasConsistentValencyFlag(MeshType &m) { - //(m); UpdateValencyInQuality(m); for (FaceIterator fi = m.face.begin(); fi!=m.face.end(); fi++) if (!fi->IsD()) { for (int k=0; k<3; k++)