diff --git a/vcg/complex/trimesh/smooth.h b/vcg/complex/trimesh/smooth.h index 2e098acb..a51ff877 100644 --- a/vcg/complex/trimesh/smooth.h +++ b/vcg/complex/trimesh/smooth.h @@ -321,13 +321,14 @@ static void AccumulateLaplacianInfo(MeshType &m, SimpleTempData TD(m.vert,lpz); for(int i=0;i mu = 1/(0.1 - 2) = -0.53 - +So if +* lambda == 0.5, kpb==0.1 -> mu = 1/(0.1 - 2) = -0.526 +* lambda == 0.5, kpb==0.01 -> mu = 1/(0.01 - 2) = -0.502 */ -static void VertexCoordTaubin(MeshType &m, int step, float lambda, float mu, bool SmoothSelected=false) +static void VertexCoordTaubin(MeshType &m, int step, float lambda, float mu, bool SmoothSelected=false, vcg::CallBackPos * cb=0) { LaplacianInfo lpz(CoordType(0,0,0),0); SimpleTempData TD(m.vert,lpz); VertexIterator vi; for(int i=0;i0 ) { if(!SmoothSelected || (*vi).IsS()) { CoordType Delta = TD[*vi].sum/TD[*vi].cnt - (*vi).P(); - (*vi).P() = (*vi).P() - Delta*mu ; + (*vi).P() = (*vi).P() + Delta*mu ; } } } // end for step