Revision: 16634
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16634
Author:   campbellbarton
Date:     2008-09-20 15:21:10 +0200 (Sat, 20 Sep 2008)

Log Message:
-----------
simple changes for bez point selection. use as a flag incase other flags are 
stored in bezt->f1,2,3

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/curve.c
    trunk/blender/source/blender/include/blendef.h
    trunk/blender/source/blender/src/drawipo.c
    trunk/blender/source/blender/src/editcurve.c
    trunk/blender/source/blender/src/editipo.c
    trunk/blender/source/blender/src/editipo_mods.c
    trunk/blender/source/blender/src/retopo.c

Modified: trunk/blender/source/blender/blenkernel/intern/curve.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/curve.c      2008-09-20 
13:18:19 UTC (rev 16633)
+++ trunk/blender/source/blender/blenkernel/intern/curve.c      2008-09-20 
13:21:10 UTC (rev 16634)
@@ -1519,7 +1519,7 @@
                                        bevp->y= bp->vec[1];
                                        bevp->z= bp->vec[2];
                                        bevp->alfa= bp->alfa;
-                                       bevp->f1= 1;
+                                       bevp->f1= SELECT;
                                        bevp++;
                                        bp++;
                                }
@@ -1579,11 +1579,11 @@
                                                
                                                /* indicate with handlecodes 
double points */
                                                if(prevbezt->h1==prevbezt->h2) {
-                                                       if(prevbezt->h1==0 || 
prevbezt->h1==HD_VECT) bevp->f1= 1;
+                                                       if(prevbezt->h1==0 || 
prevbezt->h1==HD_VECT) bevp->f1= SELECT;
                                                }
                                                else {
-                                                       if(prevbezt->h1==0 || 
prevbezt->h1==HD_VECT) bevp->f1= 1;
-                                                       else if(prevbezt->h2==0 
|| prevbezt->h2==HD_VECT) bevp->f1= 1;
+                                                       if(prevbezt->h1==0 || 
prevbezt->h1==HD_VECT) bevp->f1= SELECT;
+                                                       else if(prevbezt->h2==0 
|| prevbezt->h2==HD_VECT) bevp->f1= SELECT;
                                                }
                                                
                                                v1= data;
@@ -2385,9 +2385,9 @@
                                bezt= nu->bezt;
                                a= nu->pntsu;
                                while(a--) {
-                                       if(bezt->f1 || bezt->f3) {
-                                               if(bezt->f1) bezt->h1= code;
-                                               if(bezt->f3) bezt->h2= code;
+                                       if((bezt->f1 & SELECT) || (bezt->f3 & 
SELECT)) {
+                                               if(bezt->f1 & SELECT) bezt->h1= 
code;
+                                               if(bezt->f3 & SELECT) bezt->h2= 
code;
                                                if(bezt->h1!=bezt->h2) {
                                                        if ELEM(bezt->h1, 
HD_ALIGN, HD_AUTO) bezt->h1= HD_FREE;
                                                        if ELEM(bezt->h2, 
HD_ALIGN, HD_AUTO) bezt->h2= HD_FREE;
@@ -2415,8 +2415,8 @@
                                        bezt= nu->bezt;
                                        a= nu->pntsu;
                                        while(a--) {
-                                               if(bezt->f1 && bezt->h1) ok= 1;
-                                               if(bezt->f3 && bezt->h2) ok= 1;
+                                               if((bezt->f1 & SELECT) && 
bezt->h1) ok= 1;
+                                               if((bezt->f3 & SELECT) && 
bezt->h2) ok= 1;
                                                if(ok) break;
                                                bezt++;
                                        }
@@ -2432,8 +2432,8 @@
                                bezt= nu->bezt;
                                a= nu->pntsu;
                                while(a--) {
-                                       if(bezt->f1) bezt->h1= ok;
-                                       if(bezt->f3 ) bezt->h2= ok;
+                                       if(bezt->f1 & SELECT) bezt->h1= ok;
+                                       if(bezt->f3 & SELECT) bezt->h2= ok;
        
                                        bezt++;
                                }

Modified: trunk/blender/source/blender/include/blendef.h
===================================================================
--- trunk/blender/source/blender/include/blendef.h      2008-09-20 13:18:19 UTC 
(rev 16633)
+++ trunk/blender/source/blender/include/blendef.h      2008-09-20 13:21:10 UTC 
(rev 16634)
@@ -128,6 +128,10 @@
 /* for curve objects in editmode that can have hidden handles - may use for 
IPO's later */
 #define BEZSELECTED_HIDDENHANDLES(bezt)   ((G.f & G_HIDDENHANDLES) ? 
(bezt)->f2 & SELECT : BEZSELECTED(bezt))
 
+#define BEZ_SEL(bezt)          { (bezt)->f1 |=  SELECT; (bezt)->f2 |=  SELECT; 
(bezt)->f3 |=  SELECT; }
+#define BEZ_DESEL(bezt)                { (bezt)->f1 &= ~SELECT; (bezt)->f2 &= 
~SELECT; (bezt)->f3 &= ~SELECT; }
+#define BEZ_INVSEL(bezt)       { (bezt)->f1 ^=  SELECT; (bezt)->f2 ^=  SELECT; 
(bezt)->f3 ^=  SELECT; }
+
 /* psfont */
 #define FNT_PDRAW 1
 #define FNT_HAEBERLI 2

Modified: trunk/blender/source/blender/src/drawipo.c
===================================================================
--- trunk/blender/source/blender/src/drawipo.c  2008-09-20 13:18:19 UTC (rev 
16633)
+++ trunk/blender/source/blender/src/drawipo.c  2008-09-20 13:21:10 UTC (rev 
16634)
@@ -1315,7 +1315,7 @@
                                                glVertex2fv(fp+3); 
glVertex2fv(fp+6); 
                                                glEnd();
                                        }
-                                       else if( (bezt->f1 & 1)==sel) {
+                                       else if( (bezt->f1 & SELECT)==sel) {
                                                fp= bezt->vec[0];
                                                cpack(col[bezt->h1]);
                                                

Modified: trunk/blender/source/blender/src/editcurve.c
===================================================================
--- trunk/blender/source/blender/src/editcurve.c        2008-09-20 13:18:19 UTC 
(rev 16633)
+++ trunk/blender/source/blender/src/editcurve.c        2008-09-20 13:21:10 UTC 
(rev 16634)
@@ -262,7 +262,7 @@
 {
        char str[30];
 
-       if (bp && (bp->f1&1)) {
+       if (bp && (bp->f1 & SELECT)) {
                sprintf(str,"%2.2f", bp->vec[3]);
 
                cpack(0x737373);
@@ -2916,12 +2916,12 @@
        if((nu->type & 7)==CU_BEZIER) {
                /* which bezpoint? */
                if(bezt== nu->bezt) {   /* first */
-                       bezt->f1= bezt->f2= bezt->f3= 0;
+                       BEZ_DESEL(bezt);
                        newbezt =
                                (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= SELECT;
+                       BEZ_SEL(newbezt);
                        if(newbezt->h1 >= 0) newbezt->h2= newbezt->h1;
                        else newbezt->h2= newbezt->h1= HD_ALIGN; /* does this 
ever happen? */
                        VECCOPY(temp, bezt->vec[1]);
@@ -2930,7 +2930,7 @@
                        bezt= newbezt+1;
                }
                else if(bezt== (nu->bezt+nu->pntsu-1)) {  /* last */
-                       bezt->f1= bezt->f2= bezt->f3= 0;
+                       BEZ_DESEL(bezt);
                        newbezt =
                                (BezTriple*)MEM_callocN((nu->pntsu+1) * 
sizeof(BezTriple), "addvert_Nurb");
                        memcpy(newbezt, nu->bezt, nu->pntsu*sizeof(BezTriple));
@@ -2939,7 +2939,7 @@
                        MEM_freeN(nu->bezt);
                        nu->bezt= newbezt;
                        newbezt+= nu->pntsu;
-                       newbezt->f1= newbezt->f2= newbezt->f3= SELECT;
+                       BEZ_SEL(newbezt);
                        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;

Modified: trunk/blender/source/blender/src/editipo.c
===================================================================
--- trunk/blender/source/blender/src/editipo.c  2008-09-20 13:18:19 UTC (rev 
16633)
+++ trunk/blender/source/blender/src/editipo.c  2008-09-20 13:21:10 UTC (rev 
16634)
@@ -1318,14 +1318,10 @@
                        for(a=0; a<G.sipo->totipo; a++) {
                                if(ik->data[a]) {
                                        if(ik->flag & 1) {
-                                               ik->data[a]->f1 |= SELECT;
-                                               ik->data[a]->f2 |= SELECT;
-                                               ik->data[a]->f3 |= SELECT;
+                                               BEZ_SEL(ik->data[a]);
                                        }
                                        else {
-                                               ik->data[a]->f1 &= ~SELECT;
-                                               ik->data[a]->f2 &= ~SELECT;
-                                               ik->data[a]->f3 &= ~SELECT;
+                                               BEZ_DESEL(ik->data[a]);
                                        }
                                }
                        }
@@ -1423,7 +1419,7 @@
                                        if(ei->disptype!=IPO_DISPBITS && 
ei->icu->ipo==IPO_BEZ) {
                                                /* middle points get an 
advantage */
                                                temp= -3+abs(mval[0]- 
sco[0][0])+ abs(mval[1]- sco[0][1]);
-                                               if( bezt1->f1 & 1) temp+=5;
+                                               if( bezt1->f1 & SELECT) temp+=5;
                                                if(temp<dist) { 
                                                        hpoint= 0; 
                                                        *bezt= bezt1; 
@@ -1514,18 +1510,18 @@
                        if(bezt) {
                                if(hand==1) {
                                        if(BEZSELECTED(bezt)) {
-                                               bezt->f1= bezt->f2= bezt->f3= 0;
+                                               BEZ_DESEL(bezt);
                                        }
                                        else {
-                                               bezt->f1= bezt->f2= bezt->f3= 
SELECT;
+                                               BEZ_SEL(bezt);
                                        }
                                }
                                else if(hand==0) {
-                                       if(bezt->f1 & SELECT) bezt->f1= 0;
+                                       if(bezt->f1 & SELECT) bezt->f1 &= 
~SELECT;
                                        else bezt->f1= SELECT;
                                }
                                else {
-                                       if(bezt->f3 & SELECT) bezt->f3= 0;
+                                       if(bezt->f3 & SELECT) bezt->f3 &= 
~SELECT;
                                        else bezt->f3= SELECT;
                                }
                        }                               
@@ -1535,7 +1531,7 @@
                        
                        if(bezt) {
                                if(hand==1) {
-                                       bezt->f1|= SELECT; bezt->f2|= SELECT; 
bezt->f3|= SELECT;
+                                       BEZ_SEL(bezt);
                                }
                                else if(hand==0) bezt->f1 |= SELECT;
                                else bezt->f3 |= SELECT;
@@ -2261,7 +2257,7 @@
                                        while(b--) {
                                                *beztn= *bezt;
                                                if(bezt->f2 & SELECT) {
-                                                       beztn->f1= beztn->f2= 
beztn->f3= 0;
+                                                       BEZ_DESEL(beztn);
                                                        beztn++;
                                                        *beztn= *bezt;
                                                }
@@ -3474,14 +3470,10 @@
                        if(ik->data[a]) {
                                bezt= ik->data[a];
                                if(sel) {
-                                       bezt->f1 |= SELECT;
-                                       bezt->f2 |= SELECT;
-                                       bezt->f3 |= SELECT;
+                                       BEZ_SEL(bezt);
                                }
                                else {
-                                       bezt->f1 &= ~SELECT;
-                                       bezt->f2 &= ~SELECT;
-                                       bezt->f3 &= ~SELECT;
+                                       BEZ_DESEL(bezt);
                                }
                        }
                }
@@ -4645,7 +4637,7 @@
        for (icu=ipo->curve.first; icu; icu=icu->next){
                for (i=0; i<icu->totvert; i++){
                        /* If a key is selected */
-                       if (icu->bezt[i].f2 & 1){
+                       if (icu->bezt[i].f2 & SELECT){
                                /* Expand the list */
                                newbezt = MEM_callocN(sizeof(BezTriple) * 
(icu->totvert+1), "beztriple");
                                memcpy (newbezt, icu->bezt, sizeof(BezTriple) * 
(i+1));
@@ -4655,15 +4647,10 @@
                                MEM_freeN (icu->bezt);
                                icu->bezt=newbezt;
                                /* Unselect the current key*/
-                               icu->bezt[i].f1 &= ~ 1;
-                               icu->bezt[i].f2 &= ~ 1;
-                               icu->bezt[i].f3 &= ~ 1;
+                               BEZ_DESEL(&icu->bezt[i]);
                                i++;
                                /* Select the copied key */
-                               icu->bezt[i].f1 |= 1;
-                               icu->bezt[i].f2 |= 1;
-                               icu->bezt[i].f3 |= 1;
-                               
+                               BEZ_SEL(&icu->bezt[i]);
                        }
                }
        }

Modified: trunk/blender/source/blender/src/editipo_mods.c
===================================================================
--- trunk/blender/source/blender/src/editipo_mods.c     2008-09-20 13:18:19 UTC 
(rev 16633)
+++ trunk/blender/source/blender/src/editipo_mods.c     2008-09-20 13:21:10 UTC 
(rev 16634)
@@ -136,10 +136,10 @@
                                        b= ei->icu->totvert;
                                        while(b--) {
                                                if(totipo_vertsel) {
-                                                       bezt->f1= bezt->f2= 
bezt->f3= 0;
+                                                       BEZ_DESEL(bezt);
                                                }
                                                else {
-                                                       bezt->f1= bezt->f2= 
bezt->f3= SELECT;
+                                                       BEZ_SEL(bezt);
                                                }
                                                bezt++;
                                        }
@@ -228,7 +228,7 @@
                                        bezt= ei->icu->bezt;
                                        b= ei->icu->totvert;
                                        while(b--) {
-                                               bezt->f1= bezt->f2= bezt->f3= 0;
+                                               BEZ_SEL(bezt);
                                                bezt++;
                                        }
                                }
@@ -374,18 +374,14 @@
 int select_bezier_add(BezTriple *bezt) 
 {
        /* Select the bezier triple */
-       bezt->f1 |= SELECT;
-       bezt->f2 |= SELECT;
-       bezt->f3 |= SELECT;
+       BEZ_SEL(bezt);
        return 0;
 }
 
 int select_bezier_subtract(BezTriple *bezt) 
 {
        /* Deselect the bezier triple */
-       bezt->f1 &= ~SELECT;
-       bezt->f2 &= ~SELECT;
-       bezt->f3 &= ~SELECT;
+       BEZ_DESEL(bezt);
        return 0;
 }
 
@@ -412,9 +408,9 @@
        /* is a handle selected? If so
         * set it to type auto
         */
-       if(bezt->f1 || bezt->f3) {
-               if(bezt->f1) bezt->h1= 1; /* the secret code for auto */
-               if(bezt->f3) bezt->h2= 1;
+       if((bezt->f1  & SELECT) || (bezt->f3 & SELECT)) {
+               if(bezt->f1 & SELECT) bezt->h1= 1; /* the secret code for auto 
*/
+               if(bezt->f3 & SELECT) bezt->h2= 1;
 
                /* if the handles are not of the same type, set them
                 * to type free
@@ -435,9 +431,9 @@
        /* is a handle selected? If so
         * set it to type vector
         */
-       if(bezt->f1 || bezt->f3) {
-               if(bezt->f1) bezt->h1= 2; /* the code for vector */
-               if(bezt->f3) bezt->h2= 2;
+       if((bezt->f1 & SELECT) || (bezt->f3 & SELECT)) {
+               if(bezt->f1 & SELECT) bezt->h1= 2; /* the code for vector */
+               if(bezt->f3 & SELECT) bezt->h2= 2;
     
                /* if the handles are not of the same type, set them
                 * to type free
@@ -455,8 +451,8 @@
        /* queries whether the handle should be set
         * to type 'free' (I think)
         */
-       if(bezt->f1 && bezt->h1) return 1;

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to