[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [16910] branches/nurbs/blender: - Fix bug in Degree Reduce.

Emmanuel Stone emmanuel.stone at gmail.com
Sat Oct 4 02:39:36 CEST 2008


Revision: 16910
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16910
Author:   eman
Date:     2008-10-04 02:39:33 +0200 (Sat, 04 Oct 2008)

Log Message:
-----------
- Fix bug in Degree Reduce.
- Make curves and surfaces endtied/clamped by default, not sure we should even allow uniform open knots.

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

Modified: branches/nurbs/blender/intern/nurbana/intern/NURBS_Degree.cpp
===================================================================
--- branches/nurbs/blender/intern/nurbana/intern/NURBS_Degree.cpp	2008-10-04 00:00:56 UTC (rev 16909)
+++ branches/nurbs/blender/intern/nurbana/intern/NURBS_Degree.cpp	2008-10-04 00:39:33 UTC (rev 16910)
@@ -670,12 +670,12 @@
 									Temp[i-1].x= (Temp[i-1].x-(1.0-alfa)*Temp[i-2].x)/alfa;
 									Temp[i-1].y= (Temp[i-1].y-(1.0-alfa)*Temp[i-2].y)/alfa;
 									Temp[i-1].z= (Temp[i-1].z-(1.0-alfa)*Temp[i-2].z)/alfa;
-									Temp[i-1].z= (Temp[i-1].H-(1.0-alfa)*Temp[i-2].H)/alfa;
+									Temp[i-1].H= (Temp[i-1].H-(1.0-alfa)*Temp[i-2].H)/alfa;
 
 									rbpts[kj].x= (rbpts[kj].x-beta*rbpts[kj+1].x)/(1.0-beta);
 									rbpts[kj].y= (rbpts[kj].y-beta*rbpts[kj+1].y)/(1.0-beta);
 									rbpts[kj].z= (rbpts[kj].z-beta*rbpts[kj+1].z)/(1.0-beta);
-									rbpts[kj].z= (rbpts[kj].H-beta*rbpts[kj+1].H)/(1.0-beta);
+									rbpts[kj].H= (rbpts[kj].H-beta*rbpts[kj+1].H)/(1.0-beta);
 
 									i++;
 									j--;
@@ -689,7 +689,7 @@
 									A.x= delta*rbpts[kj+1].x+(1.0-delta)*Temp[i-2].x;
 									A.y= delta*rbpts[kj+1].y+(1.0-delta)*Temp[i-2].y;
 									A.z= delta*rbpts[kj+1].z+(1.0-delta)*Temp[i-2].z;
-									A.z= delta*rbpts[kj+1].H+(1.0-delta)*Temp[i-2].H;
+									A.H= delta*rbpts[kj+1].H+(1.0-delta)*Temp[i-2].H;
 									Br= NurbanaMath::Dist4d(Temp[i-1],A);
 								} //fi
 

Modified: branches/nurbs/blender/source/blender/src/editcurve.c
===================================================================
--- branches/nurbs/blender/source/blender/src/editcurve.c	2008-10-04 00:00:56 UTC (rev 16909)
+++ branches/nurbs/blender/source/blender/src/editcurve.c	2008-10-04 00:39:33 UTC (rev 16910)
@@ -4308,6 +4308,7 @@
 			nu->pntsu= 4;
 			nu->pntsv= 1;
 			nu->orderu= 4;
+			nu->flagu= 2;	/* endpoint */
 			nu->bp= callocstructN(BPoint, 4, "addNurbprim3");
 
 			bp= nu->bp;
@@ -4471,8 +4472,8 @@
 			nu->orderv= 4;
 			nu->flag= CU_SMOOTH;
 			nu->bp= callocstructN(BPoint, 4*4, "addNurbprim6");
-			nu->flagu= 0;
-			nu->flagv= 0;
+			nu->flagu= 2;
+			nu->flagv= 2;
 			bp= nu->bp;
 
 			for(a=0; a<4; a++) {
@@ -4492,7 +4493,7 @@
 				}
 			}
 			nurbanaInit(nu);
-			makeknots(nu, 1, nu->flagu>>1); // FIXME This should be endtied, definitely.
+			makeknots(nu, 1, nu->flagu>>1); 
 			makeknots(nu, 2, nu->flagv>>1);
 		}
 		break;
@@ -4556,10 +4557,7 @@
 			}
 			nu->flagu= 4;
 			nurbanaInit(nu);
-		//	float customKnotV[12] = {0,0,0,0.25,0.25,0.5,0.5,0.75,0.75,1,1,1};
-		//	float customKnotU[8]	= {0,0,0,0.5,0.5,1,1,1};
-				
-				makeknots(nu, 1, nu->flagu>>1);
+			makeknots(nu, 1, nu->flagu>>1);
 
 			BLI_addtail(&editNurb, nu); /* temporal for spin */
 			if(newname && (U.flag & USER_ADD_VIEWALIGNED) == 0)
@@ -4567,10 +4565,8 @@
 			else
 				spin_nurb(0, 0);
 			nurbanaInit(nu);	
-	//		
+
 			makeknots(nu, 2, nu->flagv>>1);
-			//makeknotscustom(nu, 1, &customKnotU[0],8);//
-		//	makeknotscustom(nu, 2, &customKnotV[0],12);// 
 				
 			a= nu->pntsu*nu->pntsv;
 			bp= nu->bp;





More information about the Bf-blender-cvs mailing list