Revision: 15485
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15485
Author:   ton
Date:     2008-07-08 13:47:22 +0200 (Tue, 08 Jul 2008)

Log Message:
-----------
Bugfix #16535

The infamous Fkey 'make face' in editmode still failed in cases, giving
an annoying convex error popup.
Found two errors in this code:

- not all cases were evaluated to make a face of 4 vertices (6 cases)
- the function that makes always a face when the 4 edges already exist 
  failed when not in vertex-select mode.

I also removed the popup, but added a print... its still not perfect.

Modified Paths:
--------------
    trunk/blender/source/blender/src/editmesh_add.c

Modified: trunk/blender/source/blender/src/editmesh_add.c
===================================================================
--- trunk/blender/source/blender/src/editmesh_add.c     2008-07-08 10:18:34 UTC 
(rev 15484)
+++ trunk/blender/source/blender/src/editmesh_add.c     2008-07-08 11:47:22 UTC 
(rev 15485)
@@ -379,7 +379,7 @@
        
        /* find the 4 edges */
        for(eed= em->edges.first; eed; eed= eed->next) {
-               if(eed->f & SELECT) {
+               if( (eed->f & SELECT) || (eed->v1->f & eed->v2->f & SELECT) ) {
                        if(eedar[0]==NULL) eedar[0]= eed;
                        else if(eedar[1]==NULL) eedar[1]= eed;
                        else if(eedar[2]==NULL) eedar[2]= eed;
@@ -765,6 +765,7 @@
                                /* 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, 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);
@@ -775,17 +776,16 @@
                                                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[0]->co, 
neweve[1]->co, neweve[3]->co, neweve[2]->co) ) {
+                                                       efa= 
addfacelist(neweve[0], neweve[1], neweve[3], neweve[2], 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[0]->co, 
neweve[3]->co, neweve[2]->co, neweve[1]->co) ) {
+                                                       efa= 
addfacelist(neweve[0], neweve[3], neweve[2], neweve[1], 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 if( convex(neweve[0]->co, 
neweve[3]->co, neweve[1]->co, neweve[2]->co) ) {
+                                                       efa= 
addfacelist(neweve[0], neweve[3], neweve[1], neweve[2], NULL, NULL);
                                                }
-                                               else error("The selected 
vertices form a concave quad");
+                                               else printf("cannot find nice 
quad from concave set of vertices\n");
                                        }
                                }
                        }


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to