[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [29452] trunk/blender/source/blender/ editors/mesh/editmesh.c: separate loose parts was hanging on hidden verts
Campbell Barton
ideasman42 at gmail.com
Mon Jun 14 18:58:31 CEST 2010
Revision: 29452
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29452
Author: campbellbarton
Date: 2010-06-14 18:58:31 +0200 (Mon, 14 Jun 2010)
Log Message:
-----------
separate loose parts was hanging on hidden verts
Modified Paths:
--------------
trunk/blender/source/blender/editors/mesh/editmesh.c
Modified: trunk/blender/source/blender/editors/mesh/editmesh.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh.c 2010-06-14 15:39:50 UTC (rev 29451)
+++ trunk/blender/source/blender/editors/mesh/editmesh.c 2010-06-14 16:58:31 UTC (rev 29452)
@@ -1480,10 +1480,18 @@
}
EM_clear_flag_all(em, SELECT);
-
- while(doit && em->verts.first) {
+
+ while(doit) {
/* Select a random vert to start with */
- EditVert *eve= em->verts.first;
+ EditVert *eve;
+ int tot;
+
+ /* check if all verts that are visible have been done */
+ for(eve=em->verts.first; eve; eve= eve->next)
+ if(!eve->h) break;
+ if(eve==NULL) break; /* only hidden verts left, quit early */
+
+ /* first non hidden vert */
eve->f |= SELECT;
selectconnected_mesh_all(em);
@@ -1493,8 +1501,14 @@
if((eve->f & SELECT)==0) break;
if(eve==NULL) break;
+ tot= BLI_countlist(&em->verts);
+
/* and now separate */
doit= mesh_separate_selected(scene, editbase);
+
+ /* with hidden verts this can happen */
+ if(tot == BLI_countlist(&em->verts))
+ break;
}
BKE_mesh_end_editmesh(me, em);
More information about the Bf-blender-cvs
mailing list