From 33f5b6303960e8d47dd75aebf85216552b1df6ca Mon Sep 17 00:00:00 2001 From: Paolo Cignoni cignoni Date: Sat, 23 Aug 2014 01:42:08 +0000 Subject: [PATCH] Updated filter_voronoi to float/double independence --- src/meshlabplugins/filter_voronoi/filter_voronoi.cpp | 10 +++++++++- src/meshlabplugins/filter_voronoi/filter_voronoi.xml | 7 +++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/meshlabplugins/filter_voronoi/filter_voronoi.cpp b/src/meshlabplugins/filter_voronoi/filter_voronoi.cpp index 7cb8d4000..60c6c1b64 100644 --- a/src/meshlabplugins/filter_voronoi/filter_voronoi.cpp +++ b/src/meshlabplugins/filter_voronoi/filter_voronoi.cpp @@ -24,10 +24,12 @@ #include "filter_voronoi.h" #include #include +#include #include #include #include #include +#include // Constructor usually performs only two simple tasks of filling the two lists // - typeList: with all the possible id of the filtering actions @@ -57,7 +59,7 @@ bool FilterVoronoiPlugin::applyFilter( const QString& filterName,MeshDocument& m if(filterName == "Cross Field Creation") { MeshModel &m=*md.mm(); - m.updateDataMask(MeshModel::MM_VERTCURVDIR); + m.updateDataMask(MeshModel::MM_VERTCURVDIR + MeshModel::MM_FACECURVDIR + MeshModel::MM_FACEQUALITY + MeshModel::MM_FACECOLOR); int crossType = env.evalEnum("crossType"); if(crossType == 0) // Linear Y @@ -77,7 +79,13 @@ bool FilterVoronoiPlugin::applyFilter( const QString& filterName,MeshDocument& m if(crossType == 2) // Curvature { + m.updateDataMask(MeshModel::MM_VERTFACETOPO); + m.updateDataMask(MeshModel::MM_FACEFACETOPO); + tri::FieldSmoother::InitByCurvature(m.cm); + tri::FieldSmoother::SmoothParam par; + tri::FieldSmoother::SmoothDirections(m.cm,par); } + return true; } diff --git a/src/meshlabplugins/filter_voronoi/filter_voronoi.xml b/src/meshlabplugins/filter_voronoi/filter_voronoi.xml index c115df3a9..56590f85f 100644 --- a/src/meshlabplugins/filter_voronoi/filter_voronoi.xml +++ b/src/meshlabplugins/filter_voronoi/filter_voronoi.xml @@ -152,10 +152,13 @@ - + + + + + -