From 30f799220d401a1b234c0cb0217717f30c7aa9ef Mon Sep 17 00:00:00 2001 From: ganovelli Date: Fri, 19 Mar 2010 17:05:14 +0000 Subject: [PATCH] All the functions handling TriMesh::imark have been moved outside the definition of TriMesh to workaround an internal compiler error of vc compiler, and the usages have been consequently updated --- vcg/complex/local_optimization/tri_edge_collapse.h | 2 +- vcg/complex/local_optimization/tri_edge_collapse_quadric.h | 6 +++--- vcg/complex/local_optimization/tri_edge_flip.h | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/vcg/complex/local_optimization/tri_edge_collapse.h b/vcg/complex/local_optimization/tri_edge_collapse.h index 8b33cea2..c1606fe5 100644 --- a/vcg/complex/local_optimization/tri_edge_collapse.h +++ b/vcg/complex/local_optimization/tri_edge_collapse.h @@ -264,7 +264,7 @@ public: for (int j=0;j<3;j++) { EdgeType p=EdgeType::OrderedEdge((*fi).V(j),(*fi).V((j+1)%3)); - h_ret.push_back(HeapElem(new MYTYPE(p,m.IMark()))); + h_ret.push_back(HeapElem(new MYTYPE(p, IMark(m)))); //printf("Inserting in heap coll %3i ->%3i %f\n",p.V()-&m.vert[0],p.VFlip()-&m.vert[0],h_ret.back().locModPtr->Priority()); } } diff --git a/vcg/complex/local_optimization/tri_edge_collapse_quadric.h b/vcg/complex/local_optimization/tri_edge_collapse_quadric.h index 0c17fa68..1f0275aa 100644 --- a/vcg/complex/local_optimization/tri_edge_collapse_quadric.h +++ b/vcg/complex/local_optimization/tri_edge_collapse_quadric.h @@ -326,14 +326,14 @@ public: if(!(*vi).IsD() && (*vi).IsRW()) { vcg::face::VFIterator x; - m.UnMarkAll(); + UnMarkAll(m); for( x.F() = (*vi).VFp(), x.I() = (*vi).VFi(); x.F()!=0; ++ x) { assert(x.F()->V(x.I())==&(*vi)); - if(x.V()->IsRW() && x.V1()->IsRW() && !m.IsMarked(x.F()->V1(x.I()))){ + if(x.V()->IsRW() && x.V1()->IsRW() && !IsMarked(m,x.F()->V1(x.I()))){ h_ret.push_back( HeapElem( new MYTYPE( EdgeType (x.V(),x.V1()),TriEdgeCollapse< TriMeshType,MYTYPE>::GlobalMark()))); } - if(x.V()->IsRW() && x.V2()->IsRW() && !m.IsMarked(x.F()->V2(x.I()))){ + if(x.V()->IsRW() && x.V2()->IsRW() && !IsMarked(m,x.F()->V2(x.I()))){ h_ret.push_back( HeapElem( new MYTYPE( EdgeType (x.V(),x.V2()),TriEdgeCollapse< TriMeshType,MYTYPE>::GlobalMark()))); } } diff --git a/vcg/complex/local_optimization/tri_edge_flip.h b/vcg/complex/local_optimization/tri_edge_flip.h index 5ee7d2c5..ae4d6af9 100644 --- a/vcg/complex/local_optimization/tri_edge_flip.h +++ b/vcg/complex/local_optimization/tri_edge_flip.h @@ -292,7 +292,7 @@ public: if( !(*fi).IsB(i) && !((*fi).FFp(i)->IsD()) && (*fi).FFp(i)->IsW() ) { if((*fi).V1(i) - (*fi).V0(i) > 0) { PosType p(&*fi, i); - Insert(heap, p, mesh.IMark()); + Insert(heap, p, IMark(mesh)); } //heap.push_back( HeapElem( new MYTYPE(PosType(&*fi, i), mesh.IMark() )) ); } //endif