Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Leung <aligorith@gmail.com>2009-01-20 14:56:45 +0300
committerJoshua Leung <aligorith@gmail.com>2009-01-20 14:56:45 +0300
commit822203e4cf9d3b878662e6d00fc8001c38ccef25 (patch)
tree218d8658c7c216ce7a552d1fc0da8270786e4e96 /source/blender/blenkernel/intern/fcurve.c
parentb5904f10a820611e35c77be7d69cf931c19007e3 (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.c31
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 */