diff options
author | Campbell Barton <ideasman42@gmail.com> | 2008-09-26 23:00:49 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2008-09-26 23:00:49 +0400 |
commit | 3ad55e1541c8e901b57451206f73c4753aa2f4ee (patch) | |
tree | 5e93c4930380e41c64a9b5f9f742f4f266613dc2 /source/blender/src/editcurve.c | |
parent | 8e1cf42dbd23d99db8e06617f37abec9ab5a146b (diff) |
nurbs surface resolution is now per segment rather then being distributed over the whole surface.
This is what 2D do alredy and makes resolution settings more like subsurf level.
- This makes it impossible to have a lower resolution output then the nurbs cage, however this dosnt seem a very useful feature.
- Using the do-versions from recent curve interpolation fix.
Tested with these files.
http://digilander.libero.it/pafurijaz/Files/Blender/Libellula.zip
http://digilander.libero.it/pafurijaz/Files/Blender/Martello.zip
http://digilander.libero.it/pafurijaz/Files/Blender/Punta.zip
http://digilander.libero.it/pafurijaz/Files/Blender/Phones.zip
http://digilander.libero.it/pafurijaz/Files/Blender/Tubo.zip
http://digilander.libero.it/pafurijaz/Files/Blender/Pipe.zip
http://digilander.libero.it/pafurijaz/Files/Blender/Tire.zip
http://digilander.libero.it/pafurijaz/Files/Blender/Cotton.zip
Diffstat (limited to 'source/blender/src/editcurve.c')
-rw-r--r-- | source/blender/src/editcurve.c | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/source/blender/src/editcurve.c b/source/blender/src/editcurve.c index 1dee0837445..76a4e1028f0 100644 --- a/source/blender/src/editcurve.c +++ b/source/blender/src/editcurve.c @@ -828,7 +828,6 @@ short extrudeflagNurb(int flag) MEM_freeN(nu->bp); nu->bp= newbp; nu->pntsv++; - if(nu->resolv<3) nu->resolv++; makeknots(nu, 2, nu->flagv>>1); } else if(v==0 || v== nu->pntsu-1) { /* collumn in v-direction selected */ @@ -856,7 +855,6 @@ short extrudeflagNurb(int flag) MEM_freeN(nu->bp); nu->bp= newbp; nu->pntsu++; - if(nu->resolu<3) nu->resolu++; makeknots(nu, 1, nu->flagu>>1); } } @@ -2470,8 +2468,6 @@ void merge_2_nurb(Nurb *nu1, Nurb *nu2) /* merge */ origu= nu1->pntsu; nu1->pntsu+= nu2->pntsu; - nu1->resolu+= nu2->pntsu; - if(nu1->resolv < nu2->resolv) nu1->resolv= nu2->resolv; if(nu1->orderu<3) nu1->orderu++; if(nu1->orderv<3) nu1->orderv++; temp= nu1->bp; @@ -2997,7 +2993,6 @@ void addvert_Nurb(int mode) if(bp) { nu->pntsu++; - if(nu->resolu<3) nu->resolu++; makeknots(nu, 1, nu->flagu>>1); if(mode=='e') { @@ -4120,8 +4115,8 @@ Nurb *addNurbprim(int type, int stype, int newname) if ELEM5(stype, 0, 1, 2, 4, 6) { nu = (Nurb*)MEM_callocN(sizeof(Nurb), "addNurbprim"); nu->type= type; - nu->resolu= 12; - nu->resolv= 12; + nu->resolu= 4; + nu->resolv= 4; } switch(stype) { @@ -4203,7 +4198,7 @@ Nurb *addNurbprim(int type, int stype, int newname) nu->pntsv= 1; nu->orderu= 5; nu->flagu= 2; /* endpoint */ - nu->resolu= 32; + nu->resolu= 8; nu->bp= callocstructN(BPoint, 5, "addNurbprim3"); bp= nu->bp; @@ -4361,7 +4356,7 @@ Nurb *addNurbprim(int type, int stype, int newname) } nu= addNurbprim(4, 1, newname); /* circle */ - nu->resolu= 32; + nu->resolu= 4; nu->flag= CU_SMOOTH; BLI_addtail(&editNurb, nu); /* temporal for extrude and translate */ vec[0]=vec[1]= 0.0; @@ -4394,8 +4389,8 @@ Nurb *addNurbprim(int type, int stype, int newname) nu->pntsu= 5; nu->pntsv= 1; nu->orderu= 3; - nu->resolu= 24; - nu->resolv= 32; + nu->resolu= 4; + nu->resolv= 4; nu->flag= CU_SMOOTH; nu->bp= callocstructN(BPoint, 5, "addNurbprim6"); nu->flagu= 0; @@ -4441,8 +4436,8 @@ Nurb *addNurbprim(int type, int stype, int newname) xzproj= 1; nu= addNurbprim(4, 1, newname); /* circle */ xzproj= 0; - nu->resolu= 24; - nu->resolv= 32; + nu->resolu= 4; + nu->resolv= 4; nu->flag= CU_SMOOTH; BLI_addtail(&editNurb, nu); /* temporal for extrude and translate */ if(newname && (U.flag & USER_ADD_VIEWALIGNED) == 0) |