diff options
author | Joshua Leung <aligorith@gmail.com> | 2009-01-20 14:56:45 +0300 |
---|---|---|
committer | Joshua Leung <aligorith@gmail.com> | 2009-01-20 14:56:45 +0300 |
commit | 822203e4cf9d3b878662e6d00fc8001c38ccef25 (patch) | |
tree | 218d8658c7c216ce7a552d1fc0da8270786e4e96 /source/blender/blenkernel/intern/fcurve.c | |
parent | b5904f10a820611e35c77be7d69cf931c19007e3 (diff) |
Animato - More work on Action Editor
* Added back Auto Preview-Range tool (i.e. set preview-range from keyframe extents)
* Restored delete keyframe tool. For now, this doesn't delete empty F-Curves, even though its keyframe-api counterpart still does. I still need to figure out how to do this in the best way.
* Fixed crashes when selecting keyframes in 'object' summary channels
* Removed prototypes for a few unused/depreceated functions...
Diffstat (limited to 'source/blender/blenkernel/intern/fcurve.c')
-rw-r--r-- | source/blender/blenkernel/intern/fcurve.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/fcurve.c b/source/blender/blenkernel/intern/fcurve.c index a7d375cb955..f547b483092 100644 --- a/source/blender/blenkernel/intern/fcurve.c +++ b/source/blender/blenkernel/intern/fcurve.c @@ -169,6 +169,37 @@ FCurve *list_find_fcurve (ListBase *list, const char rna_path[], const int array return NULL; } +/* Calculate the extents of F-Curve's keyframes */ +void calc_fcurve_range (FCurve *fcu, float *start, float *end) +{ + float min=999999999.0f, max=-999999999.0f; + short foundvert=0; + + if (fcu->totvert) { + if (fcu->bezt) { + min= MIN2(min, fcu->bezt[0].vec[1][0]); + max= MAX2(max, fcu->bezt[fcu->totvert-1].vec[1][0]); + } + else if (fcu->fpt) { + min= MIN2(min, fcu->fpt[0].vec[0]); + max= MAX2(max, fcu->fpt[fcu->totvert-1].vec[0]); + } + + foundvert=1; + } + + /* minimum length is 1 frame */ + if (foundvert) { + if (min == max) max += 1.0f; + *start= min; + *end= max; + } + else { + *start= 0.0f; + *end= 1.0f; + } +} + /* ***************************** Keyframe Column Tools ********************************* */ /* add a BezTriple to a column */ |