Revision: 29925 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29925 Author: nazgul Date: 2010-07-04 13:38:42 +0200 (Sun, 04 Jul 2010)
Log Message: ----------- Fixes for extrude operator: - Fixed error after mergng shape keys: invalid source was passing to ED_curve_bpcpy - Minor core formation: identation in extrudeflagNurb cunfused me - Deselect all only if extrudeflagNurb will succeess Modified Paths: -------------- branches/nurbs25/source/blender/editors/curve/editcurve.c Modified: branches/nurbs25/source/blender/editors/curve/editcurve.c =================================================================== --- branches/nurbs25/source/blender/editors/curve/editcurve.c 2010-07-04 11:08:49 UTC (rev 29924) +++ branches/nurbs25/source/blender/editors/curve/editcurve.c 2010-07-04 11:38:42 UTC (rev 29925) @@ -1576,28 +1576,28 @@ if( isNurbselUV(nu, &u, &v, flag) ) { - /* deselect all */ - bp= nu->bp; - a= nu->pntsu*nu->pntsv; - while(a--) { - select_bpoint(bp, DESELECT, flag, HIDDEN); - bp++; - } + if(u==0 || u== nu->pntsv-1) { /* row in u-direction selected */ + /* deselect all */ + bp= nu->bp; + a= nu->pntsu*nu->pntsv; + while(a--) { + select_bpoint(bp, DESELECT, flag, HIDDEN); + bp++; + } - if(u==0 || u== nu->pntsv-1) { /* row in u-direction selected */ - if (nu->pntsv == 1) - nu->orderv = 2; + if (nu->pntsv == 1) nu->orderv = 2; ok= 1; - shift = u == 0? 1: 0; - NRB_setLength(nu->pntsu, nu->pntsv + 1, 0, shift, 1, nu->nurbanaPtr ); - bp = newbp = nu->bp; - + + shift = u == 0? 1: 0; + NRB_setLength(nu->pntsu, nu->pntsv + 1, 0, shift, 1, nu->nurbanaPtr ); + bp = newbp = nu->bp; + if(u==0) { - ED_curve_bpcpy(editnurb, newbp, nu->bp + nu-> pntsu, nu->pntsu); - } else { + ED_curve_bpcpy(editnurb, newbp, nu->bp + nu-> pntsu, nu->pntsu); + } else { len= nu->pntsv*nu->pntsu; - ED_curve_bpcpy(editnurb, newbp+len, nu->bp + nu-> pntsu, nu->pntsu); - bp += len; + ED_curve_bpcpy(editnurb, newbp+len, nu->bp+len-nu-> pntsu, nu->pntsu); + bp += len; } a= nu->pntsu; @@ -1605,37 +1605,50 @@ select_bpoint(bp, SELECT, flag, HIDDEN); bp++; } - nu->pntsv++; - setExtrudedKnot(nu->knotsv, nu->pntsv, nu->orderv, !shift); - // resize nurbana's buffers - NRB_SizeChanged(nu->nurbanaPtr,nu->pntsu,nu->pntsv); + nu->pntsv++; + + setExtrudedKnot(nu->knotsv, nu->pntsv, nu->orderv, !shift); + // resize nurbana's buffers + NRB_SizeChanged(nu->nurbanaPtr,nu->pntsu,nu->pntsv); } else if(v==0 || v== nu->pntsu-1) { /* collumn in v-direction selected */ + /* deselect all */ + bp= nu->bp; + a= nu->pntsu*nu->pntsv; + while(a--) { + select_bpoint(bp, DESELECT, flag, HIDDEN); + bp++; + } + ok= 1; - shift = v == 0? 1: 0; - NRB_setLength(nu->pntsu + 1, nu->pntsv, shift, 0, 1, nu->nurbanaPtr ); - if (v == 0) { - bpn = nu->bp; - bp = bpn + shift; - } else { - bpn = nu->bp + nu->pntsu; - bp = bpn - 1; - } - nu->pntsu++; + shift = v == 0? 1: 0; + NRB_setLength(nu->pntsu + 1, nu->pntsv, shift, 0, 1, nu->nurbanaPtr ); + if (v == 0) { + bpn = nu->bp; + bp = bpn + shift; + } else { + bpn = nu->bp + nu->pntsu; + bp = bpn - 1; + } + nu->pntsu++; + for(a=0; a<nu->pntsv; a++) { *bpn= *bp; bpn->f1 |= flag; bp+= nu->pntsu; bpn+= nu->pntsu; - } + } + setExtrudedKnot(nu->knotsu, nu->pntsu, nu->orderu, !shift); + // resize nurbana's buffers NRB_SizeChanged(nu->nurbanaPtr, nu->pntsu, nu->pntsv); } } + nu= nu->next; } _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs