Version 4.07.

This commit is contained in:
Paolo Cignoni 2007-05-11 10:32:52 +00:00
parent 59dac6d418
commit 28b75a4649
4 changed files with 24 additions and 16 deletions

View File

@ -6,9 +6,14 @@
Visual Computing Lab http://vcg.isti.cnr.it /\/| Visual Computing Lab http://vcg.isti.cnr.it /\/|
ISTI - Italian National Research Council | ISTI - Italian National Research Council |
\ \
Metro 4.06 2005/10/03 Metro 4.07 2007/05/11
All rights reserved. All rights reserved.
2007/05/11 Release 4.07
Added support for obj files.
Now the Distance comparison can be done exploiting also a (slow) octree.
Removed bug on the display of the area of the mesh.
2005/10/03 Release 4.06 2005/10/03 Release 4.06
Changed the core for distance computation. Changed the core for distance computation.
Current version uses the lib flexible search structures. Current version uses the lib flexible search structures.

View File

@ -24,6 +24,9 @@
History History
$Log: not supported by cvs2svn $ $Log: not supported by cvs2svn $
Revision 1.23 2007/05/04 16:50:23 ganovelli
added plus types version (#ifdef _PLUS_TYPES_ to use it ).
Revision 1.22 2006/10/25 12:40:19 fiorin Revision 1.22 2006/10/25 12:40:19 fiorin
Added possibility to use Octree as search structure: Added possibility to use Octree as search structure:
@ -167,7 +170,7 @@ void OpenMesh(const char *filename, CMesh &m)
int err = tri::io::Importer<CMesh>::Open(m,filename); int err = tri::io::Importer<CMesh>::Open(m,filename);
if(err) { if(err) {
printf("Error in reading %s: '%s'\n",filename,tri::io::Importer<CMesh>::ErrorMsg(err)); printf("Error in reading %s: '%s'\n",filename,tri::io::Importer<CMesh>::ErrorMsg(err));
exit(-1); if(tri::io::Importer<CMesh>::ErrorCritical(err)) exit(-1);
} }
printf("read mesh `%s'\n", filename); printf("read mesh `%s'\n", filename);
if(CleaningFlag){ if(CleaningFlag){
@ -189,7 +192,7 @@ int main(int argc, char**argv)
// print program info // print program info
printf("-------------------------------\n" printf("-------------------------------\n"
" Metro V.4.06 \n" " Metro V.4.07 \n"
" http://vcg.isti.cnr.it\n" " http://vcg.isti.cnr.it\n"
" release date: "__DATE__"\n" " release date: "__DATE__"\n"
"-------------------------------\n\n"); "-------------------------------\n\n");

View File

@ -6,7 +6,7 @@
Visual Computing Lab http://vcg.isti.cnr.it /\/| Visual Computing Lab http://vcg.isti.cnr.it /\/|
ISTI - Italian National Research Council | ISTI - Italian National Research Council |
\ \
Metro 4.06 2005/10/03 Metro 4.07 2007/05/11
All rights reserved. All rights reserved.
@ -83,6 +83,7 @@ where "file1" and "file2" are the input meshes in PLY, OFF or STL format, and op
-G Use a static Uniform Grid as Search Structure (default) -G Use a static Uniform Grid as Search Structure (default)
-A Use an Axis Aligned Bounding Box Tree as Search Structure -A Use an Axis Aligned Bounding Box Tree as Search Structure
-H Use an Hashed Uniform Grid as Search Structure -H Use an Hashed Uniform Grid as Search Structure
-O Use an Octree as Search Structure
The -C option is useful in combination with -c option for creating a set of The -C option is useful in combination with -c option for creating a set of

View File

@ -24,6 +24,9 @@
History History
$Log: not supported by cvs2svn $ $Log: not supported by cvs2svn $
Revision 1.24 2007/05/04 16:50:23 ganovelli
added plus types version (#ifdef _PLUS_TYPES_ to use it ).
Revision 1.23 2006/10/25 12:40:19 fiorin Revision 1.23 2006/10/25 12:40:19 fiorin
Added possibility to use Octree as search structure: Added possibility to use Octree as search structure:
@ -624,14 +627,10 @@ void Sampling<MetroMesh>::Hausdorff()
typedef typename std::vector<FaceType>::iterator FaceVecIterator; typedef typename std::vector<FaceType>::iterator FaceVecIterator;
// set grid meshes. // set grid meshes.
if(Flags & SamplingFlags::USE_HASH_GRID) if(Flags & SamplingFlags::USE_HASH_GRID) hS2.Set(S2.face.begin(),S2.face.end());
hS2.Set(S2.face.begin(),S2.face.end()); if(Flags & SamplingFlags::USE_AABB_TREE) tS2.Set(S2.face.begin(),S2.face.end());
if(Flags & SamplingFlags::USE_AABB_TREE) if(Flags & SamplingFlags::USE_STATIC_GRID) gS2.Set(S2.face.begin(),S2.face.end());
tS2.Set(S2.face.begin(),S2.face.end()); if(Flags & SamplingFlags::USE_OCTREE) oS2.Set(S2.face.begin(),S2.face.end());
if(Flags & SamplingFlags::USE_STATIC_GRID)
gS2.Set(S2.face.begin(),S2.face.end());
if (Flags & SamplingFlags::USE_OCTREE)
oS2.Set(S2.face.begin(),S2.face.end());
// set bounding box // set bounding box
bbox = S2.bbox; bbox = S2.bbox;
@ -647,10 +646,10 @@ void Sampling<MetroMesh>::Hausdorff()
// Vertex sampling. // Vertex sampling.
if(Flags & SamplingFlags::VERTEX_SAMPLING) if(Flags & SamplingFlags::VERTEX_SAMPLING)
VertexSampling(); VertexSampling();
// Edge sammpling. // Edge sampling.
n_samples_target -= (int) n_total_samples; if(n_samples_target > n_total_samples)
if(n_samples_target > 0) {
{ n_samples_target -= (int) n_total_samples;
n_samples_per_area_unit = n_samples_target / area_S1; n_samples_per_area_unit = n_samples_target / area_S1;
if(Flags & SamplingFlags::EDGE_SAMPLING) if(Flags & SamplingFlags::EDGE_SAMPLING)
{ {