[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