[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [12228] branches/bmesh/source/blender/ blenkernel/intern/BME_tools.c: -> small extrude fix
Geoffrey Bantle
hairbat at yahoo.com
Mon Oct 8 05:34:31 CEST 2007
Revision: 12228
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=12228
Author: briggs
Date: 2007-10-08 05:34:30 +0200 (Mon, 08 Oct 2007)
Log Message:
-----------
-> small extrude fix
Small problem in the extrude face code meant that old faces were getting deleted all the time, when
in fact they should stay sometimes. This isn't perfect solution, but should be equivalent to the
old editmesh feature wise at least...
Modified Paths:
--------------
branches/bmesh/source/blender/blenkernel/intern/BME_tools.c
Modified: branches/bmesh/source/blender/blenkernel/intern/BME_tools.c
===================================================================
--- branches/bmesh/source/blender/blenkernel/intern/BME_tools.c 2007-10-08 00:58:46 UTC (rev 12227)
+++ branches/bmesh/source/blender/blenkernel/intern/BME_tools.c 2007-10-08 03:34:30 UTC (rev 12228)
@@ -576,7 +576,7 @@
BME_Poly *f, *nf;
MemArena *edgearena = BLI_memarena_new(BLI_MEMARENA_STD_BUFSIZE);
float vec[3];
- int i;
+ int i, j, del_old =0;
//loop through faces, then loop through their verts. If the verts havnt been visited yet, duplicate these.
@@ -598,6 +598,25 @@
}
}
+ //find out if we delete old faces or not. This needs to be improved a lot.....
+ for(e=BME_first(bm,BME_EDGE);e;e=BME_next(bm,BME_EDGE,e)){
+ i = 0;
+ j = 0;
+ if(e->loop){
+ l = e->loop;
+ do{
+ if(BME_SELECTED(l->f)) i++;
+ else j++;
+ l=BME_radial_nextloop(l);
+ }while(l!=e->loop);
+ }
+ if(i && (j < i)){
+ del_old = 1;
+ break;
+ }
+ }
+
+
//build a new edge net, insert the new edges into the edge hash
for(f=BME_first(bm,BME_POLY);f;f=BME_next(bm,BME_POLY,f)){
if(BME_SELECTED(f)){
@@ -628,7 +647,7 @@
}
nf=BME_MF(bm,v1,v2,edar,f->len);
nf->tflag2 = 1; // mark for select
- f->tflag1 = 1; //mark for delete
+ if(del_old) f->tflag1 = 1; //mark for delete
MEM_freeN(edar);
}
}
More information about the Bf-blender-cvs
mailing list