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

Reply via email to