This commit is contained in:
ccolin 2020-09-29 11:57:08 +02:00
parent c23aadadf0
commit fcb5e8a797

View File

@ -26,6 +26,12 @@ bool check_faces_arent_lonely(MyMesh &mesh) {
} }
return true; return true;
} }
bool check_vertices_arent_lonely(MyMesh &mesh) {
for (auto v_it = mesh.vertices_begin(); v_it != mesh.vertices_end(); ++v_it) {
auto ve_it = mesh.ve_iter(*v_it);
if (!ve_it.is_valid()) {
return false; return false;
} }
} }
@ -33,6 +39,20 @@ bool check_faces_arent_lonely(MyMesh &mesh) {
} }
bool check_edges_arent_lonely(MyMesh &mesh) {
MyMesh::HalfedgeHandle heh, heh_init;
heh = heh_init = mesh.halfedge_handle((*mesh.vertices_begin()));
heh = mesh.next_halfedge_handle(heh);
while (heh != heh_init) {
if (mesh.is_boundary(heh)) {
return false;
}
heh = mesh.next_halfedge_handle(heh);
}
return true;
}
int main(int argc, char *argv[]) { int main(int argc, char *argv[]) {
using namespace std; using namespace std;
@ -42,22 +62,17 @@ int main(int argc, char *argv[]) {
} }
MyMesh mesh; MyMesh mesh;
OpenMesh::IO::read_mesh(mesh, argv[1]); OpenMesh::IO::read_mesh(mesh, argv[1]);
cout << "Les faces sont des triangles : "; cout << "Les faces sont des triangles : "
if (check_faces_are_triangles(mesh)) { << (check_faces_are_triangles(mesh) ? "oui" : "non")
cout << "oui"; << endl;
} cout << "Les faces ont des voisines : "
else { << (check_faces_arent_lonely(mesh) ? "oui" : "non")
cout << "non"; << endl;
} cout << "Les sommets sont sur une arête : "
cout << endl; << (check_vertices_arent_lonely(mesh) ? "oui" : "non")
<< endl;
cout << "Les faces ont des voisines : "; cout << "Les arêtes sont sur une face : "
if (check_faces_arent_lonely(mesh)) { << (check_edges_arent_lonely(mesh) ? "oui" : "non")
cout << "oui"; << endl;
}
else {
cout << "non";
}
cout << endl;
return 0; return 0;
} }