Added Rad to the NormalThr Option and removed a bug in multiple exectuion of non optimal simplification (missing an isD check)

This commit is contained in:
Paolo Cignoni 2007-02-25 09:20:10 +00:00
parent 5ec1f9b0d3
commit 02beca15e3
1 changed files with 22 additions and 17 deletions

View File

@ -24,6 +24,10 @@
History History
$Log: not supported by cvs2svn $ $Log: not supported by cvs2svn $
Revision 1.12 2007/01/19 09:13:14 cignoni
Added Finalize() method to the interface, corrected minor bugs on border preserving and postsimplification cleanup
Avoided double make_heap (it is done only in the local_optimization init)
Revision 1.11 2006/10/15 07:31:21 cignoni Revision 1.11 2006/10/15 07:31:21 cignoni
typenames and qualifiers for gcc compliance typenames and qualifiers for gcc compliance
@ -127,7 +131,7 @@ class TriEdgeCollapseQuadricParameter
public: public:
double QualityThr; // all double QualityThr; // all
double BoundaryWeight; double BoundaryWeight;
double NormalThr; double NormalThrRad;
double CosineThr; double CosineThr;
double QuadricEpsilon; double QuadricEpsilon;
double ScaleFactor; double ScaleFactor;
@ -239,7 +243,7 @@ public:
typename TriMeshType::FaceIterator pf; typename TriMeshType::FaceIterator pf;
EdgeType av0,av1,av01; EdgeType av0,av1,av01;
Params().CosineThr=cos(Params().NormalThr); Params().CosineThr=cos(Params().NormalThrRad);
if(!IsSetHint(HNHasVFTopology) ) vcg::tri::UpdateTopology<TriMeshType>::VertexFace(m); if(!IsSetHint(HNHasVFTopology) ) vcg::tri::UpdateTopology<TriMeshType>::VertexFace(m);
@ -307,6 +311,7 @@ public:
else else
{ // if the collapse is A-symmetric (e.g. u->v != v->u) { // if the collapse is A-symmetric (e.g. u->v != v->u)
for(vi=m.vert.begin();vi!=m.vert.end();++vi) for(vi=m.vert.begin();vi!=m.vert.end();++vi)
if(!(*vi).IsD() && (*vi).IsRW())
{ {
vcg::face::VFIterator<FaceType> x; vcg::face::VFIterator<FaceType> x;
m.UnMarkAll(); m.UnMarkAll();
@ -330,7 +335,7 @@ public:
Params().UseArea=true; Params().UseArea=true;
Params().UseVertexWeight=false; Params().UseVertexWeight=false;
Params().NormalCheck=false; Params().NormalCheck=false;
Params().NormalThr=M_PI/2; Params().NormalThrRad=M_PI/2;
Params().QualityCheck=true; Params().QualityCheck=true;
Params().QualityThr=.1; Params().QualityThr=.1;
Params().BoundaryWeight=.5; Params().BoundaryWeight=.5;