[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27702] trunk/blender/source/blender/ editors/curve/editcurve.c: Fixed disappearing of NURBS surface when it' s created from to joined nurbs curves.

Sergey Sharybin g.ulairi at gmail.com
Tue Mar 23 23:09:33 CET 2010


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;





More information about the Bf-blender-cvs mailing list