From 18dbdc8fb29862f7ff5d45aa6ab034b29854b026 Mon Sep 17 00:00:00 2001 From: cignoni Date: Wed, 11 Sep 2013 13:34:02 +0000 Subject: [PATCH] Added another pointcloud simplification approach. --- .../trimesh_pointcloud_sampling.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/apps/sample/trimesh_pointcloud_sampling/trimesh_pointcloud_sampling.cpp b/apps/sample/trimesh_pointcloud_sampling/trimesh_pointcloud_sampling.cpp index 49c96068..a0a4ec41 100644 --- a/apps/sample/trimesh_pointcloud_sampling/trimesh_pointcloud_sampling.cpp +++ b/apps/sample/trimesh_pointcloud_sampling/trimesh_pointcloud_sampling.cpp @@ -58,6 +58,7 @@ int main( int argc, char **argv ) MyMesh rndM; tri::MeshSampler mps(subM); + tri::MeshSampler mrs(rndM); if(tri::io::Importer::Open(m,argv[1])!=0) { @@ -78,12 +79,20 @@ int main( int argc, char **argv ) int t0=clock(); tri::Clustering > ClusteringGrid; - ClusteringGrid.Init(m.bbox,100000,radius); + ClusteringGrid.Init(m.bbox,100000,radius*sqrt(2.0f)); ClusteringGrid.AddPointSet(m); ClusteringGrid.ExtractMesh(cluM); int t1=clock(); tri::io::ExporterPLY::Save(cluM,"ClusterMesh.ply"); printf("Sampled %i vertices in %5.2f\n",cluM.VN(), float(t1-t0)/float(CLOCKS_PER_SEC)); + int t2=clock(); + int sampleNum = (cluM.VN()+subM.VN())/2; + tri::SurfaceSampling >::VertexUniform(m, mrs,sampleNum); + int t3=clock(); + tri::io::ExporterPLY::Save(rndM,"RandomMesh.ply"); + printf("Sampled %i vertices in %5.2f\n",rndM.VN(), float(t3-t2)/float(CLOCKS_PER_SEC)); + + return 0; }