From fff82afaec8cfc30e9ad973d1e43b0c8ef569f7c Mon Sep 17 00:00:00 2001 From: Paolo Cignoni cignoni Date: Tue, 1 Jul 2014 06:19:27 +0000 Subject: [PATCH] updated filter_voronoi to float/double independence --- .../filter_voronoi/filter_voronoi.cpp | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/meshlabplugins/filter_voronoi/filter_voronoi.cpp b/src/meshlabplugins/filter_voronoi/filter_voronoi.cpp index 0a5205697..7cb8d4000 100644 --- a/src/meshlabplugins/filter_voronoi/filter_voronoi.cpp +++ b/src/meshlabplugins/filter_voronoi/filter_voronoi.cpp @@ -63,10 +63,10 @@ bool FilterVoronoiPlugin::applyFilter( const QString& filterName,MeshDocument& m if(crossType == 0) // Linear Y { float range = m.cm.bbox.DimY(); - for(int i=0;i seedVec; // tri::ClusteringSampler cs(seedVec); // tri::SurfaceSampling >::SamplingRandomGenerator().initialize(randSeed); - vector pointVec; - float radius=0; + vector pointVec; + CMeshO::ScalarType radius=0; tri::PoissonSampling(m.cm,pointVec,sampleNum,radius,radiusVariance); tri::VoronoiProcessingParameter vpp; @@ -134,7 +134,8 @@ bool FilterVoronoiPlugin::applyFilter( const QString& filterName,MeshDocument& m md.updateRenderStateMeshes(meshlist,int(MeshModel::MM_VERTCOLOR)); if (intteruptreq) return true; } -// tri::VoronoiProcessing::ConvertVoronoiDiagramToMesh(m.cm,om->cm,poly->cm,seedVec, vpp); + om->updateDataMask(MeshModel::MM_FACEFACETOPO); + tri::VoronoiProcessing::ConvertVoronoiDiagramToMesh(m.cm,om->cm,poly->cm,seedVec, vpp); } if(distanceType==1) @@ -175,8 +176,8 @@ bool FilterVoronoiPlugin::applyFilter( const QString& filterName,MeshDocument& m MeshModel *m= md.mm(); m->updateDataMask(MeshModel::MM_FACEMARK); - float sampleSurfRadius = env.evalFloat("sampleSurfRadius"); - float poissonRadius = env.evalFloat("poissonRadius"); + CMeshO::ScalarType sampleSurfRadius = env.evalFloat("sampleSurfRadius"); + CMeshO::ScalarType poissonRadius = env.evalFloat("poissonRadius"); int sampleVolNum = env.evalInt("sampleVolNum"); int poissonFlag = env.evalBool("poissonFiltering"); @@ -222,7 +223,7 @@ bool FilterVoronoiPlugin::applyFilter( const QString& filterName,MeshDocument& m Log("Sampling Surface at a radius %f ",sampleSurfRadius); vvs.Init(sampleSurfRadius); cb(30, "Sampling Volume..."); - float poissonVolumeRadius=0; + CMeshO::ScalarType poissonVolumeRadius=0; vvs.BuildVolumeSampling(sampleVolNum,voronoiSeed,poissonVolumeRadius); Log("Base Poisson volume sampling at a radius %f ",poissonVolumeRadius);