forked from bartvdbraak/blender
Assorted loose ends for auto-clamped handles work
* 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
This commit is contained in:
parent
9a9330d88c
commit
dca090abc8
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -47,17 +47,17 @@
|
||||
|
||||
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[] = {
|
||||
|
@ -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++;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user