[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28872] trunk/blender/source/blender/ makesrna/intern/rna_fcurve.c: FCurve.evaluate() and bounds() patch from Dan Eicher

Campbell Barton ideasman42 at gmail.com
Thu May 20 06:44:12 CEST 2010


Revision: 28872
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28872
Author:   campbellbarton
Date:     2010-05-20 06:44:10 +0200 (Thu, 20 May 2010)

Log Message:
-----------
FCurve.evaluate() and bounds() patch from Dan Eicher

Modified Paths:
--------------
    trunk/blender/source/blender/makesrna/intern/rna_fcurve.c

Modified: trunk/blender/source/blender/makesrna/intern/rna_fcurve.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_fcurve.c	2010-05-20 03:52:35 UTC (rev 28871)
+++ trunk/blender/source/blender/makesrna/intern/rna_fcurve.c	2010-05-20 04:44:10 UTC (rev 28872)
@@ -546,6 +546,11 @@
 	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 @@
 {
 	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 @@
 	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);
 
-	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);
 }
 
 /* *********************** */





More information about the Bf-blender-cvs mailing list