Assorted loose ends for auto-clamped handles work
authorJoshua Leung <aligorith@gmail.com>
Fri, 5 Aug 2011 11:23:28 +0000 (11:23 +0000)
committerJoshua Leung <aligorith@gmail.com>
Fri, 5 Aug 2011 11:23:28 +0000 (11:23 +0000)
* Tweaked order of handle types to make it easier to find Auto/Auto-
clamped in the list
* Fixed a number of places which were still just checking for auto-
handles when they should have included auto-clamped too, including
handle rotation

source/blender/blenkernel/intern/curve.c
source/blender/editors/animation/keyframes_edit.c
source/blender/editors/transform/transform_conversions.c
source/blender/makesrna/intern/rna_curve.c
source/blender/makesrna/intern/rna_fcurve.c

index 2f1a85c57b314bd0bb130bbfefa1e0e182973668..b1beb6c449afac94df1d4a32139fad0085f99d7c 100644 (file)
@@ -2674,15 +2674,15 @@ void testhandlesNurb(Nurb *nu)
                if(bezt->f1 & SELECT) flag++;
                if(bezt->f2 & SELECT) flag += 2;
                if(bezt->f3 & SELECT) flag += 4;
-
+               
                if( !(flag==0 || flag==7) ) {
-                       if(bezt->h1==HD_AUTO) {   /* auto */
+                       if(ELEM(bezt->h1, HD_AUTO, HD_AUTO_ANIM)) {   /* auto */
                                bezt->h1= HD_ALIGN;
                        }
-                       if(bezt->h2==HD_AUTO) {   /* auto */
+                       if(ELEM(bezt->h2, HD_AUTO, HD_AUTO_ANIM)) {   /* auto */
                                bezt->h2= HD_ALIGN;
                        }
-
+                       
                        if(bezt->h1==HD_VECT) {   /* vector */
                                if(flag < 4) bezt->h1= 0;
                        }
@@ -2692,7 +2692,7 @@ void testhandlesNurb(Nurb *nu)
                }
                bezt++;
        }
-
+       
        calchandlesNurb(nu);
 }
 
index ae9107ebe5af3ffcbba20ba3c2409cc81f1ea89e..d5fb8b1744014cc93ed51037e9c809807244775e 100644 (file)
@@ -634,8 +634,8 @@ static short snap_bezier_horizontal(KeyframeEditData *UNUSED(ked), BezTriple *be
        if (bezt->f2 & SELECT) {
                bezt->vec[0][1]= bezt->vec[2][1]= bezt->vec[1][1];
                
-               if ((bezt->h1==HD_AUTO) || (bezt->h1==HD_VECT)) bezt->h1= HD_ALIGN;
-               if ((bezt->h2==HD_AUTO) || (bezt->h2==HD_VECT)) bezt->h2= HD_ALIGN;
+               if (ELEM3(bezt->h1, HD_AUTO, HD_AUTO_ANIM, HD_VECT)) bezt->h1= HD_ALIGN;
+               if (ELEM3(bezt->h2, HD_AUTO, HD_AUTO_ANIM, HD_VECT)) bezt->h2= HD_ALIGN;
        }
        return 0;       
 }
index b0488ef8b080c0a1f104ae4f14d2609ed6f1dec0..7b43d0955a7e17749245795e71e162290084be54 100644 (file)
@@ -3452,7 +3452,7 @@ static void createTransGraphEditData(bContext *C, TransInfo *t)
                                 *        then check if we're using auto-handles.
                                 *      - If so, change them auto-handles to aligned handles so that handles get affected too
                                 */
-                               if ((bezt->h1 == HD_AUTO) && (bezt->h2 == HD_AUTO) && ELEM(t->mode, TFM_ROTATION, TFM_RESIZE)) {
+                               if (ELEM(bezt->h1, HD_AUTO, HD_AUTO_ANIM) && ELEM(bezt->h2, HD_AUTO, HD_AUTO_ANIM) && ELEM(t->mode, TFM_ROTATION, TFM_RESIZE)) {
                                        if (hdata && (sel1) && (sel3)) {
                                                bezt->h1= HD_ALIGN;
                                                bezt->h2= HD_ALIGN;
index 4e7fceed7e1a4325b0e3c95f8c7e9b247afd0a51..95a76dd772968e7831b554a6017b4bc98416ec32 100644 (file)
 
 EnumPropertyItem beztriple_handle_type_items[] = {
                {HD_FREE, "FREE", 0, "Free", ""},
-               {HD_AUTO, "AUTO", 0, "Auto", ""},
                {HD_VECT, "VECTOR", 0, "Vector", ""},
                {HD_ALIGN, "ALIGNED", 0, "Aligned", ""},
+               {HD_AUTO, "AUTO", 0, "Auto", ""},
                {0, NULL, 0, NULL, NULL}};
                
 EnumPropertyItem keyframe_handle_type_items[] = {
                {HD_FREE, "FREE", 0, "Free", ""},
-               {HD_AUTO, "AUTO", 0, "Auto", ""},
-               {HD_AUTO_ANIM, "AUTO_CLAMPED", 0, "Auto Clamped", "Auto handles clamped to not overshoot"},
                {HD_VECT, "VECTOR", 0, "Vector", ""},
                {HD_ALIGN, "ALIGNED", 0, "Aligned", ""},
+               {HD_AUTO, "AUTO", 0, "Automatic", ""},
+               {HD_AUTO_ANIM, "AUTO_CLAMPED", 0, "Auto Clamped", "Auto handles clamped to not overshoot"},
                {0, NULL, 0, NULL, NULL}};
 
 EnumPropertyItem beztriple_interpolation_mode_items[] = {
index 2f37a6921d18510d00ec948c85517d0d72f3f849..6bb1416e7fcd00509a6575c628f4ab3325b0df64 100644 (file)
@@ -596,15 +596,15 @@ static void rna_FKeyframe_points_add(FCurve *fcu, int tot)
                else {
                        fcu->bezt= MEM_callocN(sizeof(BezTriple) * tot, "rna_FKeyframe_points_add");
                }
-
+               
                bezt= fcu->bezt + fcu->totvert;
                fcu->totvert += tot;
-
+               
                while(tot--) {
                        /* defaults, no userprefs gives pradictable results for API */
                        bezt->f1= bezt->f2= bezt->f3= SELECT;
                        bezt->ipo= BEZT_IPO_BEZ;
-                       bezt->h1= bezt->h2= HD_AUTO;
+                       bezt->h1= bezt->h2= HD_AUTO_ANIM;
                        bezt++;
                }
        }