Fix for loopcut, didn't work after reconstruct...

This commit is contained in:
Ton Roosendaal 2004-09-23 22:54:18 +00:00
parent 404f4d7a01
commit 1ae3e3efc1
2 changed files with 22 additions and 16 deletions

@ -1770,17 +1770,21 @@ void loopoperations(char mode)
if(cut){
/* Now that we have selected a cut %, mark the edges for cutting. */
if(!inset){
for(eed = em->edges.first; eed; eed=eed->next){
if(percentcut == 1.0)
percentcut = 0.9999;
else if(percentcut == 0.0)
percentcut = 0.0001;
if(eed->f & 8){
if(eed->f & 32)/* Need to offset by a const. (0.5/32768) for consistant roundoff */
eed->f1 = 32768*(1.0-percentcut - 0.0000153);
else
eed->f1 = 32768*(percentcut + 0.0000153);
}
for(eed = em->edges.first; eed; eed=eed->next){
if(percentcut == 1.0)
percentcut = 0.9999;
else if(percentcut == 0.0)
percentcut = 0.0001;
if(eed->f & 8){
if(eed->f & 32)/* Need to offset by a const. (0.5/32768) for consistant roundoff */
eed->f1 = 32768*(1.0-percentcut - 0.0000153);
else
eed->f1 = 32768*(percentcut + 0.0000153);
}
/* because of hack in subdivideflag (ton) */
eed->f2= eed->f;
}
}
/*-------------------------------------*/

@ -1325,11 +1325,13 @@ void subdivideflag(int flag, float rad, int beauty)
}
/* edgeflags */
eed= em->edges.first;
while((eed) && !(beauty & B_KNIFE)) {
if( (eed->v1->f & flag) && (eed->v2->f & flag) ) eed->f2= flag;
else eed->f2= 0;
eed= eed->next;
if((beauty & B_KNIFE)==0) { // knife option sets own flags
eed= em->edges.first;
while(eed) {
if( (eed->v1->f & flag) && (eed->v2->f & flag) ) eed->f2= flag;
else eed->f2= 0;
eed= eed->next;
}
}
/* if beauty: test for area and clear edge flags of 'ugly' edges */