Added computeEdgeLengthSum

This commit is contained in:
Paolo Cignoni 2017-09-05 00:37:12 +02:00
parent a8220b3bda
commit f018cab12d
1 changed files with 11 additions and 2 deletions

View File

@ -40,15 +40,16 @@ class Stat
{ {
public: public:
typedef StatMeshType MeshType; typedef StatMeshType MeshType;
typedef typename MeshType::ScalarType ScalarType;
typedef typename MeshType::VertexType VertexType; typedef typename MeshType::VertexType VertexType;
typedef typename MeshType::VertexPointer VertexPointer; typedef typename MeshType::VertexPointer VertexPointer;
typedef typename MeshType::VertexIterator VertexIterator; typedef typename MeshType::VertexIterator VertexIterator;
typedef typename MeshType::ConstVertexIterator ConstVertexIterator; typedef typename MeshType::ConstVertexIterator ConstVertexIterator;
typedef typename MeshType::ScalarType ScalarType; typedef typename MeshType::EdgeType EdgeType;
typedef typename MeshType::EdgeIterator EdgeIterator;
typedef typename MeshType::FaceType FaceType; typedef typename MeshType::FaceType FaceType;
typedef typename MeshType::FacePointer FacePointer; typedef typename MeshType::FacePointer FacePointer;
typedef typename MeshType::FaceIterator FaceIterator; typedef typename MeshType::FaceIterator FaceIterator;
typedef typename MeshType::EdgeIterator EdgeIterator;
typedef typename MeshType::FaceContainer FaceContainer; typedef typename MeshType::FaceContainer FaceContainer;
typedef typename vcg::Box3<ScalarType> Box3Type; typedef typename vcg::Box3<ScalarType> Box3Type;
@ -307,6 +308,14 @@ public:
return h.Avg(); return h.Avg();
} }
static ScalarType ComputeEdgeLengthSum(MeshType & m)
{
ScalarType sum=0;
ForEachEdge(m, [&](EdgeType &e){
sum+=Distance(e.cP(0),e.cP(1));
});
return sum;
}
static void ComputeFaceEdgeLengthDistribution( MeshType & m, Distribution<float> &h, bool includeFauxEdge=false) static void ComputeFaceEdgeLengthDistribution( MeshType & m, Distribution<float> &h, bool includeFauxEdge=false)
{ {
std::vector< typename tri::UpdateTopology<MeshType>::PEdge > edgeVec; std::vector< typename tri::UpdateTopology<MeshType>::PEdge > edgeVec;