diff options
author | Ton Roosendaal <ton@blender.org> | 2004-11-03 14:25:27 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2004-11-03 14:25:27 +0300 |
commit | 691302f28dcf515cc99b1d7ad0c9e41970ab1fdd (patch) | |
tree | 9ba7ce787651c9715c9829b654477a18e34bf5c6 /source/blender/src/editmesh_add.c | |
parent | 318fb94c4b4c15c66737493436929393357b963c (diff) |
Two fixes;
- The function "convex()" in editmesh_lib() actually did not deliver
a proper test for convex at all. It was checking only if a quad could
be subdivided into 2 trias. Code for adding face (FKEY) used this
call in total confusing manner. That code was there in 1.40 already,
cannot find any clue what it was supposed todo... :)
Recoded convex() to deliver a proper test. FKEY will give warning on
attempt to make convex faces now.
- Added undo-free for editmode undo on file load
Diffstat (limited to 'source/blender/src/editmesh_add.c')
-rw-r--r-- | source/blender/src/editmesh_add.c | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/source/blender/src/editmesh_add.c b/source/blender/src/editmesh_add.c index 6fb6f3ddf3f..7b0388226cd 100644 --- a/source/blender/src/editmesh_add.c +++ b/source/blender/src/editmesh_add.c @@ -294,7 +294,6 @@ void addedgeface_mesh(void) EditVert *eve, *neweve[4]; EditEdge *eed; EditFace *efa; - float con1, con2, con3; short amount=0; if( (G.vd->lay & G.obedit->lay)==0 ) return; @@ -352,18 +351,12 @@ void addedgeface_mesh(void) if(tria==2) join_triangles(); else { - con1= convex(neweve[0]->co, neweve[1]->co, neweve[2]->co, neweve[3]->co); - con2= convex(neweve[0]->co, neweve[2]->co, neweve[3]->co, neweve[1]->co); - con3= convex(neweve[0]->co, neweve[3]->co, neweve[1]->co, neweve[2]->co); - - if(con1>=con2 && con1>=con3) - efa= addfacelist(neweve[0], neweve[1], neweve[2], neweve[3], NULL, NULL); - else if(con2>=con1 && con2>=con3) - efa= addfacelist(neweve[0], neweve[2], neweve[3], neweve[1], NULL, NULL); - else - efa= addfacelist(neweve[0], neweve[2], neweve[1], neweve[3], NULL, NULL); - EM_select_face(efa, 1); + 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); + EM_select_face(efa, 1); + } + else error("The selected vertices form a concave quad"); } } |