diff options
author | Campbell Barton <ideasman42@gmail.com> | 2007-12-02 02:25:00 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2007-12-02 02:25:00 +0300 |
commit | 1e32ec2000ef2e50a93d2934f4692c7a88e59ac5 (patch) | |
tree | 5bae16c23664f4e789879f43b63801599f2695e2 /source/blender/src/editcurve.c | |
parent | 141e279d708c80b5187898035d0d50181cbb6dca (diff) |
minor update, "Draw Handles" wasnt working when disabled everywhere and replaced some magic numbers
Diffstat (limited to 'source/blender/src/editcurve.c')
-rw-r--r-- | source/blender/src/editcurve.c | 123 |
1 files changed, 55 insertions, 68 deletions
diff --git a/source/blender/src/editcurve.c b/source/blender/src/editcurve.c index 358e6332d6d..25110a971e4 100644 --- a/source/blender/src/editcurve.c +++ b/source/blender/src/editcurve.c @@ -158,7 +158,7 @@ static short select_bpoint(BPoint *bp, short selstatus, short flag, short hidden static short swap_selection_beztriple(BezTriple *bezt) { - if(bezt->f2 & 1) + if(bezt->f2 & SELECT) return select_beztriple(bezt, DESELECT, 1, VISIBLE); else return select_beztriple(bezt, SELECT, 1, VISIBLE); @@ -166,7 +166,7 @@ static short swap_selection_beztriple(BezTriple *bezt) static short swap_selection_bpoint(BPoint *bp) { - if(bp->f1 & 1) + if(bp->f1 & SELECT) return select_bpoint(bp, DESELECT, 1, VISIBLE); else return select_bpoint(bp, SELECT, 1, VISIBLE); @@ -182,7 +182,7 @@ short isNurbsel(Nurb *nu) bezt= nu->bezt; a= nu->pntsu; while(a--) { - if( (bezt->f1 & 1) || (bezt->f2 & 1) || (bezt->f3 & 1) ) return 1; + if( (bezt->f1 & SELECT) || (bezt->f2 & SELECT) || (bezt->f3 & SELECT) ) return 1; bezt++; } } @@ -190,7 +190,7 @@ short isNurbsel(Nurb *nu) bp= nu->bp; a= nu->pntsu*nu->pntsv; while(a--) { - if( (bp->f1 & 1) ) return 1; + if( (bp->f1 & SELECT) ) return 1; bp++; } } @@ -207,7 +207,7 @@ int isNurbsel_count(Nurb *nu) bezt= nu->bezt; a= nu->pntsu; while(a--) { - if( (bezt->f1 & 1) || (bezt->f2 & 1) || (bezt->f3 & 1) ) sel++; + if( (bezt->f1 & SELECT) || (bezt->f2 & SELECT) || (bezt->f3 & SELECT) ) sel++; bezt++; } } @@ -215,7 +215,7 @@ int isNurbsel_count(Nurb *nu) bp= nu->bp; a= nu->pntsu*nu->pntsv; while(a--) { - if( (bp->f1 & 1) ) sel++; + if( (bp->f1 & SELECT) ) sel++; bp++; } } @@ -1319,9 +1319,9 @@ static void select_adjacent_cp(short next, short cont, short selstatus) while(a--) { if(a-abs(next) < 0) break; sel= 0; - if((lastsel==0) && (bezt->hide==0) && ((bezt->f2 & 1) || (selstatus==0))) { + if((lastsel==0) && (bezt->hide==0) && ((bezt->f2 & SELECT) || (selstatus==0))) { bezt+=next; - if(!(bezt->f2 & 1) || (selstatus==0)) { + if(!(bezt->f2 & SELECT) || (selstatus==0)) { sel= select_beztriple(bezt, selstatus, 1, VISIBLE); if((sel==1) && (cont==0)) lastsel= 1; } @@ -1372,9 +1372,9 @@ static short nurb_has_selected_cps() bezt= nu->bezt; while(a--) { if(bezt->hide==0) { - if((bezt->f1 & 1) - || (bezt->f2 & 1) - || (bezt->f3 & 1)) return 1; + if((bezt->f1 & SELECT) + || (bezt->f2 & SELECT) + || (bezt->f3 & SELECT)) return 1; } bezt++; } @@ -1383,7 +1383,7 @@ static short nurb_has_selected_cps() a= nu->pntsu*nu->pntsv; bp= nu->bp; while(a--) { - if((bp->hide==0) && (bp->f1 & 1)) return 1; + if((bp->hide==0) && (bp->f1 & SELECT)) return 1; bp++; } } @@ -1428,7 +1428,7 @@ void hideNurb(int swap) a= nu->pntsu; sel= 0; while(a--) { - if(BEZSELECTED(bezt)) { + if(BEZSELECTED_HIDDENHANDLES(bezt)) { select_beztriple(bezt, DESELECT, 1, HIDDEN); bezt->hide= 1; } @@ -1520,12 +1520,11 @@ void selectswapNurb() a= nu->pntsu; while(a--) { if(bezt->hide==0) { - if(bezt->f1 & 1) bezt->f1 &= ~1; - else bezt->f1 |= 1; - if(bezt->f2 & 1) bezt->f2 &= ~1; - else bezt->f2 |= 1; - if(bezt->f3 & 1) bezt->f3 &= ~1; - else bezt->f3 |= 1; + bezt->f2 ^= SELECT; /* always do the center point */ + if ((G.f & G_HIDDENHANDLES)==0) { + bezt->f1 ^= SELECT; + bezt->f3 ^= SELECT; + } } bezt++; } @@ -1584,7 +1583,7 @@ void subdivideNurb() bezt= prevbezt+1; } while(a--) { - if( BEZSELECTED(prevbezt) && BEZSELECTED(bezt) ) amount++; + if( BEZSELECTED_HIDDENHANDLES(prevbezt) && BEZSELECTED_HIDDENHANDLES(bezt) ) amount++; prevbezt= bezt; bezt++; } @@ -1608,7 +1607,7 @@ void subdivideNurb() memcpy(beztn, prevbezt, sizeof(BezTriple)); beztn++; - if( BEZSELECTED(prevbezt) && BEZSELECTED(bezt) ) { + if( BEZSELECTED_HIDDENHANDLES(prevbezt) && BEZSELECTED_HIDDENHANDLES(bezt) ) { memcpy(beztn, bezt, sizeof(BezTriple)); /* midpoint subdividing */ @@ -2000,7 +1999,7 @@ static void findselectedNurbvert(Nurb **nu, BezTriple **bezt, BPoint **bp) bezt1= nu1->bezt; a= nu1->pntsu; while(a--) { - if( (bezt1->f1 & 1) || (bezt1->f2 & 1) || (bezt1->f3 & 1) ) { + if( (bezt1->f1 & SELECT) || (bezt1->f2 & SELECT) || (bezt1->f3 & SELECT) ) { if(*nu!=0 && *nu!= nu1) { *nu= 0; *bp= 0; @@ -2535,23 +2534,23 @@ void addsegment_nurb() if( (nu->type & 7)==CU_BEZIER ) { bezt= nu->bezt; if(nu1==0) { - if( BEZSELECTED(bezt) ) nu1= nu; + if( BEZSELECTED_HIDDENHANDLES(bezt) ) nu1= nu; else { bezt= bezt+(nu->pntsu-1); - if( BEZSELECTED(bezt) ) { + if( BEZSELECTED_HIDDENHANDLES(bezt) ) { nu1= nu; switchdirectionNurb(nu); } } } else if(nu2==0) { - if( BEZSELECTED(bezt) ) { + if( BEZSELECTED_HIDDENHANDLES(bezt) ) { nu2= nu; switchdirectionNurb(nu); } else { bezt= bezt+(nu->pntsu-1); - if( BEZSELECTED(bezt) ) { + if( BEZSELECTED_HIDDENHANDLES(bezt) ) { nu2= nu; } } @@ -2683,28 +2682,16 @@ void mouse_nurb() else { if(bezt) { if(hand==1) { - if(bezt->f2 & 1) select_beztriple(bezt, DESELECT, 1, HIDDEN); + if(bezt->f2 & SELECT) select_beztriple(bezt, DESELECT, 1, HIDDEN); else select_beztriple(bezt, SELECT, 1, HIDDEN); - } - else if(hand==0) { - if(bezt->f1 & 1) { - bezt->f1 &= ~1; - } - else { - bezt->f1 |= 1; - } - } - else { - if(bezt->f3 & 1) { - bezt->f3 &= ~1; - } - else { - bezt->f3 |= 1; - } + } else if(hand==0) { + bezt->f1 ^= SELECT; + } else { + bezt->f3 ^= SELECT; } } else { - if(bp->f1 & 1) select_bpoint(bp, DESELECT, 1, HIDDEN); + if(bp->f1 & SELECT) select_bpoint(bp, DESELECT, 1, HIDDEN); else { select_bpoint(bp, SELECT, 1, HIDDEN); lastselbp= bp; @@ -2863,7 +2850,7 @@ void addvert_Nurb(int mode) (BezTriple*)MEM_callocN((nu->pntsu+1) * sizeof(BezTriple), "addvert_Nurb"); memcpy(newbezt+1, bezt, nu->pntsu*sizeof(BezTriple)); *newbezt= *bezt; - newbezt->f1= newbezt->f2= newbezt->f3= 1; + newbezt->f1= newbezt->f2= newbezt->f3= SELECT; if(newbezt->h1 >= 0) newbezt->h2= newbezt->h1; else newbezt->h2= newbezt->h1= HD_ALIGN; /* does this ever happen? */ VECCOPY(temp, bezt->vec[1]); @@ -2881,7 +2868,7 @@ void addvert_Nurb(int mode) MEM_freeN(nu->bezt); nu->bezt= newbezt; newbezt+= nu->pntsu; - newbezt->f1= newbezt->f2= newbezt->f3= 1; + newbezt->f1= newbezt->f2= newbezt->f3= SELECT; if(newbezt->h1 >= 0) newbezt->h2= newbezt->h1; else newbezt->h2= newbezt->h1= HD_ALIGN; /* does this ever happen? */ bezt= nu->bezt+nu->pntsu-1; @@ -3036,7 +3023,7 @@ void makecyclicNurb() a= nu->pntsu; bezt= nu->bezt; while(a--) { - if( BEZSELECTED(bezt) ) { + if( BEZSELECTED_HIDDENHANDLES(bezt) ) { if(nu->flagu & CU_CYCLIC) nu->flagu--; else nu->flagu++; break; @@ -3428,7 +3415,7 @@ void select_less_nurb() a= nu->pntsu; bezt= nu->bezt; while(a--) { - if((bezt->hide==0) && (bezt->f2 & 1)) { + if((bezt->hide==0) && (bezt->f2 & SELECT)) { if(lastsel==1) sel= 1; else sel= 0; @@ -3437,22 +3424,22 @@ void select_less_nurb() if(a==nu->pntsu-1) sel++; else { bezt--; - if((bezt->hide==0) && (bezt->f2 & 1)) sel++; + if((bezt->hide==0) && (bezt->f2 & SELECT)) sel++; bezt++; } if(a==0) sel++; else { bezt++; - if((bezt->hide==0) && (bezt->f2 & 1)) sel++; + if((bezt->hide==0) && (bezt->f2 & SELECT)) sel++; bezt--; } - + if(sel!=2) { select_beztriple(bezt, DESELECT, 1, VISIBLE); - lastsel= 1; - } - else lastsel= 0; + lastsel= 1; + } + else lastsel= 0; } else lastsel= 0; @@ -3650,7 +3637,7 @@ void delNurb() a= nu->pntsu; if(a) { while(a) { - if( BEZSELECTED(bezt) ); + if( BEZSELECTED_HIDDENHANDLES(bezt) ); else break; a--; bezt++; @@ -3687,7 +3674,7 @@ void delNurb() if( (nu->type & 7)==CU_BEZIER ) { bezt= nu->bezt; for(a=0;a<nu->pntsu;a++) { - if( BEZSELECTED(bezt) ) { + if( BEZSELECTED_HIDDENHANDLES(bezt) ) { memcpy(bezt, bezt+1, (nu->pntsu-a-1)*sizeof(BezTriple)); nu->pntsu--; a--; @@ -3740,14 +3727,14 @@ void delNurb() if( (nu->type & 7)==CU_BEZIER ) { bezt= nu->bezt; for(a=0; a<nu->pntsu-1; a++) { - if( BEZSELECTED(bezt) ) { + if( BEZSELECTED_HIDDENHANDLES(bezt) ) { bezt1= bezt; bezt2= bezt+1; - if( (bezt2->f1 & 1) || (bezt2->f2 & 1) || (bezt2->f3 & 1) ) ; + if( (bezt2->f1 & SELECT) || (bezt2->f2 & SELECT) || (bezt2->f3 & SELECT) ) ; else { /* maybe do not make cyclic */ if(a==0 && (nu->flagu & 1) ) { bezt2= bezt+(nu->pntsu-1); - if( (bezt2->f1 & 1) || (bezt2->f2 & 1) || (bezt2->f3 & 1) ) { + if( (bezt2->f1 & SELECT) || (bezt2->f2 & SELECT) || (bezt2->f3 & SELECT) ) { nu->flagu--; DAG_object_flush_update(G.scene, G.obedit, OB_RECALC_DATA); allqueue(REDRAWVIEW3D, 0); @@ -4056,7 +4043,7 @@ Nurb *addNurbprim(int type, int stype, int newname) (BezTriple*)MEM_callocN(2 * sizeof(BezTriple), "addNurbprim1"); bezt= nu->bezt; bezt->h1= bezt->h2= HD_ALIGN; - bezt->f1= bezt->f2= bezt->f3= 1; + bezt->f1= bezt->f2= bezt->f3= SELECT; bezt->radius = 1.0; for(a=0;a<3;a++) { @@ -4071,7 +4058,7 @@ Nurb *addNurbprim(int type, int stype, int newname) bezt++; bezt->h1= bezt->h2= HD_ALIGN; - bezt->f1= bezt->f2= bezt->f3= 1; + bezt->f1= bezt->f2= bezt->f3= SELECT; bezt->radius = bezt->weight = 1.0; for(a=0;a<3;a++) { @@ -4167,7 +4154,7 @@ Nurb *addNurbprim(int type, int stype, int newname) VECCOPY(bezt->vec[a], cent); } bezt->h1= bezt->h2= HD_AUTO; - bezt->f1= bezt->f2= bezt->f3= 1; + bezt->f1= bezt->f2= bezt->f3= SELECT; bezt->vec[1][0]+= -grid; for(a=0;a<3;a++) Mat3MulVecfl(imat,bezt->vec[a]); bezt->radius = bezt->weight = 1.0; @@ -4177,7 +4164,7 @@ Nurb *addNurbprim(int type, int stype, int newname) VECCOPY(bezt->vec[a], cent); } bezt->h1= bezt->h2= HD_AUTO; - bezt->f1= bezt->f2= bezt->f3= 1; + bezt->f1= bezt->f2= bezt->f3= SELECT; bezt->vec[1][1]+= grid; for(a=0;a<3;a++) Mat3MulVecfl(imat,bezt->vec[a]); bezt->radius = bezt->weight = 1.0; @@ -4187,7 +4174,7 @@ Nurb *addNurbprim(int type, int stype, int newname) VECCOPY(bezt->vec[a], cent); } bezt->h1= bezt->h2= HD_AUTO; - bezt->f1= bezt->f2= bezt->f3= 1; + bezt->f1= bezt->f2= bezt->f3= SELECT; bezt->vec[1][0]+= grid; for(a=0;a<3;a++) Mat3MulVecfl(imat,bezt->vec[a]); bezt->radius = bezt->weight = 1.0; @@ -4197,7 +4184,7 @@ Nurb *addNurbprim(int type, int stype, int newname) VECCOPY(bezt->vec[a], cent); } bezt->h1= bezt->h2= HD_AUTO; - bezt->f1= bezt->f2= bezt->f3= 1; + bezt->f1= bezt->f2= bezt->f3= SELECT; bezt->vec[1][1]+= -grid; for(a=0;a<3;a++) Mat3MulVecfl(imat,bezt->vec[a]); bezt->radius = bezt->weight = 1.0; @@ -4546,7 +4533,7 @@ void clear_tilt() bezt= nu->bezt; a= nu->pntsu; while(a--) { - if(BEZSELECTED(bezt)) bezt->alfa= 0.0; + if(BEZSELECTED_HIDDENHANDLES(bezt)) bezt->alfa= 0.0; bezt++; } } @@ -4582,9 +4569,9 @@ int bezt_compare (const void *e1, const void *e2) /* Check selected flags : Ensures that selected keys will be listed first */ - if ((b1->f2 & 1) && !(b2->f2 & 1)) + if ((b1->f2 & SELECT) && !(b2->f2 & SELECT)) return -1; - if (!(b1->f2 & 1) && (b2->f2 & 1)) + if (!(b1->f2 & SELECT) && (b2->f2 & SELECT)) return 1; return 0; |