From f3b67673fc097cdcd1b12d8cf4040f055b915848 Mon Sep 17 00:00:00 2001 From: ganovelli Date: Wed, 16 Jun 2010 17:28:18 +0000 Subject: [PATCH] new Append<> beta version --- vcg/complex/trimesh/append.h | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/vcg/complex/trimesh/append.h b/vcg/complex/trimesh/append.h index 840461ac..0a05e79f 100644 --- a/vcg/complex/trimesh/append.h +++ b/vcg/complex/trimesh/append.h @@ -75,7 +75,7 @@ public: // Vertex to Face Adj if(vcg::tri::HasVFAdjacency(ml) && vcg::tri::HasVFAdjacency(mr)){ size_t i = Index(mr,vr.cVFp()); - vl.VFp() = ((i<0) || (i>ml.edge.size()))? 0 :&ml.face[remap.face[i]]; + vl.VFp() = ((i<0) || (i>ml.face.size()))? 0 :&ml.face[remap.face[i]]; vl.VFi() = vr.VFi(); } @@ -105,7 +105,8 @@ public: // Edge to Face Adj if(vcg::tri::HasEFAdjacency(ml) && vcg::tri::HasEFAdjacency(mr)){ - el.EFp() = &ml.face[remap.face[Index(mr,er.cEFp())]]; + size_t i = Index(mr,er.cEFp()); + el.EFp() = ((i<0) || (i>ml.face.size()))? 0 :&ml.face[remap.face[i]]; el.EFi() = er.cEFi(); } @@ -136,7 +137,8 @@ public: if(vcg::tri::HasFFAdjacency(ml) && vcg::tri::HasFFAdjacency(mr)){ assert(fl.VN() == fr.VN()); for(unsigned int i = 0; i < fl.VN(); ++i ){ - fl.FFp(i) = &ml.face[remap.face[Index(mr,fr.cFFp(i))]]; + size_t i = Index(mr,fr.cFFp(i)); + fl.FFp(i) = ((i<0) || (i>ml.face.size()))? 0 :&ml.face[remap.face[i]]; fl.FFi(i) = fr.cFFi(i); } } @@ -158,8 +160,10 @@ public: } // HEdge to Face Adj - if(vcg::tri::HasHFAdjacency(ml) && vcg::tri::HasHFAdjacency(mr)) - hl.HFp() = &ml.face[remap.face[Index(mr,hr.cHFp())]]; + if(vcg::tri::HasHFAdjacency(ml) && vcg::tri::HasHFAdjacency(mr)){ + size_t i = Index(mr,hr.cHFp()); + hl.HFp() = ((i<0) || (i>ml.face.size()))? 0 :&ml.face[remap.face[i]]; + } // HEdge to Opposite HEdge Adj