[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [29925] branches/nurbs25/source/blender/ editors/curve/editcurve.c: Fixes for extrude operator:
Sergey Sharybin
g.ulairi at gmail.com
Sun Jul 4 13:38:42 CEST 2010
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;
}
More information about the Bf-blender-cvs
mailing list