From 3d956d8b486f1918fb84aa7a48cacfe58646e80c Mon Sep 17 00:00:00 2001 From: cignoni Date: Fri, 6 Jul 2012 08:08:24 +0000 Subject: [PATCH] Changed ComputeFaceEdgeHistogram into ComputeFaceEdgeDistribution. It was plainly wrong... :( --- vcg/complex/algorithms/stat.h | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/vcg/complex/algorithms/stat.h b/vcg/complex/algorithms/stat.h index 831bcb8d..2341a50a 100644 --- a/vcg/complex/algorithms/stat.h +++ b/vcg/complex/algorithms/stat.h @@ -235,37 +235,30 @@ class Stat return h.Avg(); } - static int ComputeFaceEdgeHistogram( MeshType & m, Histogramf &h) + static void ComputeFaceEdgeDistribution( MeshType & m, Distribution &h) { h.Clear(); - h.SetRange( 0, m.bbox.Diag(), 10000); - tri::UpdateFlags::VertexClearV(m); + tri::UpdateFlags::FaceBorderFromNone(m); for(FaceIterator fi = m.face.begin(); fi != m.face.end(); ++fi) { if(!(*fi).IsD()) { - if( !(*fi).V(0)->IsV() && !(*fi).V(1)->IsV() ) + for(int i=0;i<3;++i) { - h.Add(Distance((*fi).V(0)->P(),(*fi).V(1)->P())); - (*fi).V(0)->SetV(); - (*fi).V(1)->SetV(); - } - if( !(*fi).V(1)->IsV() && !(*fi).V(2)->IsV()) - { - h.Add(Distance((*fi).V(1)->P(),(*fi).V(2)->P())); - (*fi).V(2)->SetV(); - (*fi).V(1)->SetV(); - } - if( !(*fi).V(2)->IsV() && !(*fi).V(0)->IsV()) - { - h.Add(Distance((*fi).V(2)->P(),(*fi).V(0)->P())); - (*fi).V(0)->SetV(); - (*fi).V(2)->SetV(); + h.Add(Distance(fi->P0(i),fi->P1(i))); + if(fi->IsB(i)) // to be uniform border edges must be added twice... + h.Add(Distance(fi->P0(i),fi->P1(i))); } } } - return 0; } + static ScalarType ComputeFaceEdgeAverage(MeshType & m) + { + Distribution h; + ComputeFaceEdgeDistribution(m,h); + return h.Avg(); + } + }; // end class } //End Namespace tri