Added three more cases for allowing to create a new quad (Fkey), based on

inverting the checked triangle diagonal.
Noticed issues while modeling subsurfs yesterday, in that case you can
really be less strict.
This commit is contained in:
2005-11-26 13:09:25 +00:00
parent 63ca05b7b3
commit 296b2bf1d9

View File

@@ -633,7 +633,7 @@ void addedgeface_mesh(void)
/* if 4 edges exist, we just create the face, convex or not */
efa= addface_from_edges();
if(efa==NULL) {
/* the order of vertices can be anything, three cases to check */
/* the order of vertices can be anything, 6 cases to check */
if( convex(neweve[0]->co, neweve[1]->co, neweve[2]->co, neweve[3]->co) ) {
efa= addfacelist(neweve[0], neweve[1], neweve[2], neweve[3], NULL, NULL);
}
@@ -643,6 +643,16 @@ void addedgeface_mesh(void)
else if( convex(neweve[0]->co, neweve[2]->co, neweve[1]->co, neweve[3]->co) ) {
efa= addfacelist(neweve[0], neweve[2], neweve[1], neweve[3], NULL, NULL);
}
else if( convex(neweve[1]->co, neweve[2]->co, neweve[3]->co, neweve[0]->co) ) {
efa= addfacelist(neweve[1], neweve[2], neweve[3], neweve[0], NULL, NULL);
}
else if( convex(neweve[1]->co, neweve[3]->co, neweve[0]->co, neweve[2]->co) ) {
efa= addfacelist(neweve[1], neweve[3], neweve[0], neweve[2], NULL, NULL);
}
else if( convex(neweve[1]->co, neweve[3]->co, neweve[2]->co, neweve[0]->co) ) {
efa= addfacelist(neweve[1], neweve[3], neweve[2], neweve[0], NULL, NULL);
}
else error("The selected vertices form a concave quad");
}
}