[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [16950] branches/nurbs/blender: Fix for skinning bug

Emmanuel Stone emmanuel.stone at gmail.com
Mon Oct 6 19:15:00 CEST 2008


Revision: 16950
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16950
Author:   eman
Date:     2008-10-06 19:15:00 +0200 (Mon, 06 Oct 2008)

Log Message:
-----------
Fix for skinning bug
Fix for adding second curve into NURBS object in Editmode bug.

Modified Paths:
--------------
    branches/nurbs/blender/intern/nurbana/intern/NURBS_Generate.cpp
    branches/nurbs/blender/source/blender/src/editcurve.c

Modified: branches/nurbs/blender/intern/nurbana/intern/NURBS_Generate.cpp
===================================================================
--- branches/nurbs/blender/intern/nurbana/intern/NURBS_Generate.cpp	2008-10-06 17:11:10 UTC (rev 16949)
+++ branches/nurbs/blender/intern/nurbana/intern/NURBS_Generate.cpp	2008-10-06 17:15:00 UTC (rev 16950)
@@ -89,11 +89,15 @@
 			t += stepU;
 		}
 
-		nbReal endV = (obj -> KnotVector(1)[Vnpts + extraPntsV]);
-		nbReal startV = (obj -> KnotVector(1)[(OrderV-1)]);
-		nbReal stepV = (endV - startV)/TessV;
-		nbReal tv = startV;
-
+		nbReal endV, startV, stepV, tv;
+		if(Vnpts == 1)
+			endV = startV = stepV = tv = 0; // these values aren't used in NURBSBasis below for curves
+			else{
+			endV = (obj -> KnotVector(1)[Vnpts + extraPntsV]);
+			startV = (obj -> KnotVector(1)[(OrderV-1)]);
+			stepV= (endV - startV)/TessV;
+			tv = startV;
+		}
 		for(i = 0; i <= TessV; i++) { 
 			NURBSBasis(OrderV, tv, (Vnpts+extraPntsV), Vnpts,obj -> KnotVector(1), obj -> CtlPts(), BasisV[i], 1);
 			tv += stepV;

Modified: branches/nurbs/blender/source/blender/src/editcurve.c
===================================================================
--- branches/nurbs/blender/source/blender/src/editcurve.c	2008-10-06 17:11:10 UTC (rev 16949)
+++ branches/nurbs/blender/source/blender/src/editcurve.c	2008-10-06 17:15:00 UTC (rev 16950)
@@ -2645,6 +2645,9 @@
 		/* make knots, for merged curved for example */
 		makeknots(nu1, 2, nu1->flagv>>1);
 	}
+
+	if(nu1->nurbanaPtr)
+		NRB_UpdateSize(nu1->nurbanaPtr);
 	
 	MEM_freeN(temp);
 	BLI_remlink(&editNurb, nu2);





More information about the Bf-blender-cvs mailing list