2.5 - Keyframes can now be marked as 'extremes' in addition to 'breakdowns'
* Extremes are shown as red/pink diamonds * I've changed the order of extremes and breakdowns in the code to make for nicer sizing/ordering. This might break a couple of files out there, but it shouldn't be too many. TODO: Still on my todo is to make these tags more useful (i.e. less likely to be overwritten by keyframing)
This commit is contained in:
@@ -419,6 +419,13 @@ void draw_keyframe_shape (float x, float y, float xscale, float hsize, short sel
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case BEZT_KEYTYPE_EXTREME: /* redish frames for now */
|
||||||
|
{
|
||||||
|
if (sel) glColor3f(95.0f, 0.5f, 0.5f);
|
||||||
|
else glColor3f(0.91f, 0.70f, 0.80f);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case BEZT_KEYTYPE_KEYFRAME: /* traditional yellowish frames for now */
|
case BEZT_KEYTYPE_KEYFRAME: /* traditional yellowish frames for now */
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -685,6 +685,13 @@ static short set_keytype_breakdown(BeztEditData *bed, BezTriple *bezt)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static short set_keytype_extreme(BeztEditData *bed, BezTriple *bezt)
|
||||||
|
{
|
||||||
|
if (bezt->f2 & SELECT)
|
||||||
|
BEZKEYTYPE(bezt)= BEZT_KEYTYPE_EXTREME;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/* Set the interpolation type of the selected BezTriples in each F-Curve to the specified one */
|
/* Set the interpolation type of the selected BezTriples in each F-Curve to the specified one */
|
||||||
BeztEditFunc ANIM_editkeyframes_keytype(short code)
|
BeztEditFunc ANIM_editkeyframes_keytype(short code)
|
||||||
{
|
{
|
||||||
@@ -692,6 +699,9 @@ BeztEditFunc ANIM_editkeyframes_keytype(short code)
|
|||||||
case BEZT_KEYTYPE_BREAKDOWN: /* breakdown */
|
case BEZT_KEYTYPE_BREAKDOWN: /* breakdown */
|
||||||
return set_keytype_breakdown;
|
return set_keytype_breakdown;
|
||||||
|
|
||||||
|
case BEZT_KEYTYPE_EXTREME: /* extreme keyframe */
|
||||||
|
return set_keytype_extreme;
|
||||||
|
|
||||||
case BEZT_KEYTYPE_KEYFRAME: /* proper keyframe */
|
case BEZT_KEYTYPE_KEYFRAME: /* proper keyframe */
|
||||||
default:
|
default:
|
||||||
return set_keytype_keyframe;
|
return set_keytype_keyframe;
|
||||||
|
|||||||
@@ -189,6 +189,7 @@ static void act_edit_keytypesmenu(bContext *C, uiLayout *layout, void *arg_unuse
|
|||||||
uiLayoutSetOperatorContext(layout, WM_OP_EXEC_DEFAULT);
|
uiLayoutSetOperatorContext(layout, WM_OP_EXEC_DEFAULT);
|
||||||
uiItemEnumO(layout, NULL, 0, "ACT_OT_keyframe_type", "type", BEZT_KEYTYPE_KEYFRAME);
|
uiItemEnumO(layout, NULL, 0, "ACT_OT_keyframe_type", "type", BEZT_KEYTYPE_KEYFRAME);
|
||||||
uiItemEnumO(layout, NULL, 0, "ACT_OT_keyframe_type", "type", BEZT_KEYTYPE_BREAKDOWN);
|
uiItemEnumO(layout, NULL, 0, "ACT_OT_keyframe_type", "type", BEZT_KEYTYPE_BREAKDOWN);
|
||||||
|
uiItemEnumO(layout, NULL, 0, "ACT_OT_keyframe_type", "type", BEZT_KEYTYPE_EXTREME);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void act_edit_handlesmenu(bContext *C, uiLayout *layout, void *arg_unused)
|
static void act_edit_handlesmenu(bContext *C, uiLayout *layout, void *arg_unused)
|
||||||
|
|||||||
@@ -310,6 +310,7 @@ typedef enum eBezTriple_Interpolation {
|
|||||||
/* types of keyframe (used only for BezTriple->hide when BezTriple is used in F-Curves) */
|
/* types of keyframe (used only for BezTriple->hide when BezTriple is used in F-Curves) */
|
||||||
typedef enum eBezTriple_KeyframeType {
|
typedef enum eBezTriple_KeyframeType {
|
||||||
BEZT_KEYTYPE_KEYFRAME = 0, /* default - 'proper' Keyframe */
|
BEZT_KEYTYPE_KEYFRAME = 0, /* default - 'proper' Keyframe */
|
||||||
|
BEZT_KEYTYPE_EXTREME, /* 'extreme' keyframe */
|
||||||
BEZT_KEYTYPE_BREAKDOWN, /* 'breakdown' keyframe */
|
BEZT_KEYTYPE_BREAKDOWN, /* 'breakdown' keyframe */
|
||||||
} eBezTriple_KeyframeType;
|
} eBezTriple_KeyframeType;
|
||||||
|
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ EnumPropertyItem beztriple_interpolation_mode_items[] = {
|
|||||||
EnumPropertyItem beztriple_keyframe_type_items[] = {
|
EnumPropertyItem beztriple_keyframe_type_items[] = {
|
||||||
{BEZT_KEYTYPE_KEYFRAME, "KEYFRAME", 0, "Keyframe", ""},
|
{BEZT_KEYTYPE_KEYFRAME, "KEYFRAME", 0, "Keyframe", ""},
|
||||||
{BEZT_KEYTYPE_BREAKDOWN, "BREAKDOWN", 0, "Breakdown", ""},
|
{BEZT_KEYTYPE_BREAKDOWN, "BREAKDOWN", 0, "Breakdown", ""},
|
||||||
|
{BEZT_KEYTYPE_EXTREME, "EXTREME", 0, "Extreme", ""},
|
||||||
{0, NULL, 0, NULL, NULL}};
|
{0, NULL, 0, NULL, NULL}};
|
||||||
|
|
||||||
#ifdef RNA_RUNTIME
|
#ifdef RNA_RUNTIME
|
||||||
|
|||||||
Reference in New Issue
Block a user