Revision: 27702
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27702
Author:   nazgul
Date:     2010-03-23 23:09:33 +0100 (Tue, 23 Mar 2010)

Log Message:
-----------
Fixed disappearing of NURBS surface when it's created from to joined nurbs 
curves.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/curve/editcurve.c

Modified: trunk/blender/source/blender/editors/curve/editcurve.c
===================================================================
--- trunk/blender/source/blender/editors/curve/editcurve.c      2010-03-23 
22:09:23 UTC (rev 27701)
+++ trunk/blender/source/blender/editors/curve/editcurve.c      2010-03-23 
22:09:33 UTC (rev 27702)
@@ -2835,6 +2835,10 @@
        
        if( is_u_selected(nu1, nu1->pntsu-1) );
        else {
+               /* For 2D curves blender uses orderv=0. It doesn't make any 
sense mathematically. */
+               /* but after rotating orderu=0 will be confusing. */
+               if (nu1->orderv == 0) nu1->orderv= 1;
+
                rotate_direction_nurb(nu1);
                if( is_u_selected(nu1, nu1->pntsu-1) );
                else {
@@ -2855,6 +2859,7 @@
        /* 2nd nurbs: u = 0 selected */
        if( is_u_selected(nu2, 0) );
        else {
+               if (nu2->orderv == 0) nu2->orderv= 1;
                rotate_direction_nurb(nu2);
                if( is_u_selected(nu2, 0) );
                else {
@@ -2900,8 +2905,8 @@
        /* merge */
        origu= nu1->pntsu;
        nu1->pntsu+= nu2->pntsu;
-       if(nu1->orderu<3) nu1->orderu++;
-       if(nu1->orderv<3) nu1->orderv++;
+       if(nu1->orderu<3 && nu1->orderu<nu1->pntsu) nu1->orderu++;
+       if(nu1->orderv<3 && nu1->orderv<nu1->pntsv) nu1->orderv++;
        temp= nu1->bp;
        nu1->bp= MEM_mallocN(nu1->pntsu*nu1->pntsv*sizeof(BPoint), "mergeBP");
        
@@ -2976,7 +2981,7 @@
                BLI_freelistN(&nsortbase);
                return OPERATOR_CANCELLED;
        }
-       
+
        while(nus2) {
                merge_2_nurb(op, editnurb, nus1->nu, nus2->nu);
                nus2= nus2->next;


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to