diff options
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/editors/animation/anim_ipo_utils.c | 9 | ||||
-rw-r--r-- | source/blender/editors/space_graph/graph_draw.c | 23 | ||||
-rw-r--r-- | source/blender/editors/space_graph/graph_select.c | 4 |
3 files changed, 26 insertions, 10 deletions
diff --git a/source/blender/editors/animation/anim_ipo_utils.c b/source/blender/editors/animation/anim_ipo_utils.c index 14780ebb794..c2a1199f6c6 100644 --- a/source/blender/editors/animation/anim_ipo_utils.c +++ b/source/blender/editors/animation/anim_ipo_utils.c @@ -242,14 +242,17 @@ void ipo_rainbow (int cur, int tot, float *out) * with some other stuff */ fac = ((float)cur / (float)tot) * 0.7f; - val = 1.0f - fac; /* the base color can get offset a bit so that the colors aren't so identical */ hue += fac * HSV_BANDWIDTH; if (hue > 1.0f) hue= fmod(hue, 1.0f); - /* saturation fluctuates between 0.5 and 1.0 */ - sat = ((cur / grouping) % 2) ? 0.61f : 0.96f; + /* saturation adjustments for more visible range */ + if ((hue > 0.5f) && (hue < 0.8f)) sat= 0.5f; + else sat= 0.6f; + + /* value is fixed at 1.0f, otherwise we cannot clearly see the curves... */ + val= 1.0f; /* finally, conver this to RGB colors */ hsv_to_rgb(hue, sat, val, out, out+1, out+2); diff --git a/source/blender/editors/space_graph/graph_draw.c b/source/blender/editors/space_graph/graph_draw.c index e3a6d502332..f6d9406e7da 100644 --- a/source/blender/editors/space_graph/graph_draw.c +++ b/source/blender/editors/space_graph/graph_draw.c @@ -782,11 +782,20 @@ static short fcurve_needs_draw_fmodifier_controls (FCurve *fcu, FModifier *fcm) if (fcu->modifiers.first == NULL) return 0; - /* if there's an active modifier - don't draw if it is cycles modifier, since - * that basically still shows the original points + /* if there's an active modifier - don't draw if it doesn't drastically + * alter the curve... */ - if ((fcm) && (fcm->type == FMODIFIER_TYPE_CYCLES)) - return 0; + if (fcm) { + switch (fcm->type) { + /* clearly harmless */ + case FMODIFIER_TYPE_CYCLES: + return 0; + + /* borderline... */ + case FMODIFIER_TYPE_NOISE: + return 0; + } + } /* if only one modifier - don't draw if it is muted or disabled */ if (fcu->modifiers.first == fcu->modifiers.last) { @@ -853,8 +862,10 @@ void graph_draw_curves (bAnimContext *ac, SpaceIpo *sipo, ARegion *ar, View2DGri UI_ThemeColorShade(TH_HEADER, 50); } else { - /* set whatever color the curve has set */ - glColor3fv(fcu->color); + /* set whatever color the curve has set + * - unselected curves draw less opaque to help distinguish the selected ones + */ + glColor4f(fcu->color[0], fcu->color[1], fcu->color[2], ((sel) ? 1.0f : 0.5f)); } /* anti-aliased lines for less jagged appearance */ diff --git a/source/blender/editors/space_graph/graph_select.c b/source/blender/editors/space_graph/graph_select.c index 27009ab56a4..bb923ca6f95 100644 --- a/source/blender/editors/space_graph/graph_select.c +++ b/source/blender/editors/space_graph/graph_select.c @@ -141,7 +141,9 @@ static void deselect_graph_keys (bAnimContext *ac, short test, short sel) /* Keyframes First */ ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, NULL, sel_cb, NULL); - /* deactivate the F-Curve */ + /* deactivate the F-Curve, and deselect if deselecting keyframes */ + if (sel == SELECT_SUBTRACT) + fcu->flag &= ~FCURVE_SELECTED; fcu->flag &= ~FCURVE_ACTIVE; } |