diff options
author | Campbell Barton <ideasman42@gmail.com> | 2010-05-20 08:44:10 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2010-05-20 08:44:10 +0400 |
commit | 96f529880f69b78f01a479407d6b766c812bb8d5 (patch) | |
tree | 2695f9abf57b1255550add90da02faab10338daf /source/blender/makesrna/intern/rna_fcurve.c | |
parent | 226140f2ee8e5021123db19499c33bca189957e1 (diff) |
FCurve.evaluate() and bounds() patch from Dan Eicher
Diffstat (limited to 'source/blender/makesrna/intern/rna_fcurve.c')
-rw-r--r-- | source/blender/makesrna/intern/rna_fcurve.c | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/source/blender/makesrna/intern/rna_fcurve.c b/source/blender/makesrna/intern/rna_fcurve.c index a8a73d15c9d..8da381aff50 100644 --- a/source/blender/makesrna/intern/rna_fcurve.c +++ b/source/blender/makesrna/intern/rna_fcurve.c @@ -546,6 +546,11 @@ static void rna_FKeyframe_points_remove(FCurve *fcu, ReportList *reports, BezTri delete_fcurve_key(fcu, index, !do_fast); } +static void rna_fcurve_range(FCurve *fcu, float range[2]) +{ + calc_fcurve_range(fcu, range, range+1); +} + #else static void rna_def_fmodifier_generator(BlenderRNA *brna) @@ -1321,7 +1326,9 @@ static void rna_def_fcurve(BlenderRNA *brna) { StructRNA *srna; PropertyRNA *prop; - + FunctionRNA *func; + PropertyRNA *parm; + static EnumPropertyItem prop_mode_extend_items[] = { {FCURVE_EXTRAPOLATE_CONSTANT, "CONSTANT", 0, "Constant", ""}, {FCURVE_EXTRAPOLATE_LINEAR, "LINEAR", 0, "Linear", ""}, @@ -1423,8 +1430,23 @@ static void rna_def_fcurve(BlenderRNA *brna) prop= RNA_def_property(srna, "modifiers", PROP_COLLECTION, PROP_NONE); RNA_def_property_struct_type(prop, "FModifier"); RNA_def_property_ui_text(prop, "Modifiers", "Modifiers affecting the shape of the F-Curve"); - rna_def_fcurve_modifiers(brna, prop); + + /* Functions */ + func= RNA_def_function(srna, "evaluate", "evaluate_fcurve"); /* calls the C/API direct */ + RNA_def_function_ui_description(func, "Evaluate fcurve."); + parm= RNA_def_float(func, "frame", 1.0f, -FLT_MAX, FLT_MAX, "Frame", "Evaluate fcurve at given frame", -FLT_MAX, FLT_MAX); + RNA_def_property_flag(parm, PROP_REQUIRED); + /* return value */ + parm= RNA_def_float(func, "position", 0, -FLT_MAX, FLT_MAX, "Position", "Fcurve position", -FLT_MAX, FLT_MAX); + RNA_def_function_return(func, parm); + + func= RNA_def_function(srna, "range", "rna_fcurve_range"); + RNA_def_function_ui_description(func, "Get the time extents for F-Curve."); + /* return value */ + parm= RNA_def_float_vector(func, "range", 2, NULL, -FLT_MAX, FLT_MAX, "Range", "Min/Max values", -FLT_MAX, FLT_MAX); + RNA_def_property_flag(parm, PROP_THICK_WRAP); + RNA_def_function_output(func, parm); } /* *********************** */ |