From 28d838ca498d5db4b0f41361fdd266b175d188e8 Mon Sep 17 00:00:00 2001 From: cignoni Date: Fri, 23 May 2014 15:05:16 +0000 Subject: [PATCH] Corrected a small bug in the poisson sampling exact number helper. --- vcg/complex/algorithms/point_sampling.h | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/vcg/complex/algorithms/point_sampling.h b/vcg/complex/algorithms/point_sampling.h index 080bef46..cee1c2b9 100644 --- a/vcg/complex/algorithms/point_sampling.h +++ b/vcg/complex/algorithms/point_sampling.h @@ -1908,27 +1908,27 @@ void PoissonPruningExact(MeshType &m, /// the mesh that has to be pruned float tolerance=0.04, int maxIter=20) { - size_t sampleNumMin = int(float(sampleNum)*(1.0f-tolerance)); - size_t sampleNumMax = int(float(sampleNum)*(1.0f+tolerance)); + size_t sampleNumMin = int(float(sampleNum)*(1.0f-tolerance)); // the expected values range. + size_t sampleNumMax = int(float(sampleNum)*(1.0f+tolerance)); // e.g. any sampling in [sampleNumMin, sampleNumMax] is OK float RangeMinRad = m.bbox.Diag()/10.0f; float RangeMaxRad = m.bbox.Diag()/10.0f; - size_t RangeMinNum; - size_t RangeMaxNum; + size_t RangeMinSampleNum; + size_t RangeMaxSampleNum; std::vector poissonSamplesTmp; do { RangeMinRad/=2.0f; PoissonPruning(m,poissonSamplesTmp,RangeMinRad); - RangeMinNum = poissonSamplesTmp.size(); - } while(RangeMinNum > sampleNumMin); + RangeMinSampleNum = poissonSamplesTmp.size(); + } while(RangeMinSampleNum < sampleNumMin); do { RangeMaxRad*=2.0f; PoissonPruning(m,poissonSamplesTmp,RangeMaxRad); - RangeMaxNum = poissonSamplesTmp.size(); - } while(RangeMaxNum < sampleNumMax); + RangeMaxSampleNum = poissonSamplesTmp.size(); + } while(RangeMaxSampleNum > sampleNumMax); float curRadius; int iterCnt=0; @@ -1937,7 +1937,7 @@ void PoissonPruningExact(MeshType &m, /// the mesh that has to be pruned { curRadius=(RangeMaxRad+RangeMinRad)/2.0f; PoissonPruning(m,poissonSamplesTmp,curRadius); - qDebug("(%6.3f:%5i %6.3f:%5i) Cur Radius %f -> %i sample instead of %i",RangeMinRad,RangeMinNum,RangeMaxRad,RangeMaxNum,curRadius,poissonSamplesTmp.size(),sampleNum); + //qDebug("(%6.3f:%5i %6.3f:%5i) Cur Radius %f -> %i sample instead of %i",RangeMinRad,RangeMinSampleNum,RangeMaxRad,RangeMaxSampleNum,curRadius,poissonSamplesTmp.size(),sampleNum); if(poissonSamplesTmp.size() > sampleNum) RangeMinRad = curRadius; if(poissonSamplesTmp.size() < sampleNum)