Revision: 24876
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24876
Author:   blendix
Date:     2009-11-25 11:39:02 +0100 (Wed, 25 Nov 2009)

Log Message:
-----------
RNA: FModifier generator coefficients wrapped, implemented by Campbell.

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   2009-11-25 
10:13:24 UTC (rev 24875)
+++ trunk/blender/source/blender/makesrna/intern/rna_fcurve.c   2009-11-25 
10:39:02 UTC (rev 24876)
@@ -276,6 +276,33 @@
        
 }
 
+static int rna_FM_get_length(PointerRNA *ptr, int 
length[RNA_MAX_ARRAY_DIMENSION])
+{
+       FModifier *fm= (FModifier*)ptr->data;
+       FMod_Generator *gen= fm->data;
+
+       if(gen)
+               length[0]= gen->arraysize;
+       else
+               length[0]= 100; /* for raw_access, untested */
+
+       return length[0];
+}
+
+static void rna_FM_get(PointerRNA *ptr, float *values)
+{
+       FModifier *fm= (FModifier*)ptr->data;
+       FMod_Generator *gen= fm->data;
+       memcpy(values, gen->coefficients, gen->arraysize * sizeof(float));
+}
+
+static void rna_FM_set(PointerRNA *ptr, const float *values)
+{
+       FModifier *fm= (FModifier*)ptr->data;
+       FMod_Generator *gen= fm->data;
+       memcpy(gen->coefficients, values, gen->arraysize * sizeof(float));
+}
+
 #else
 
 static void rna_def_fmodifier_generator(BlenderRNA *brna)
@@ -311,6 +338,14 @@
        RNA_def_property_ui_text(prop, "Polynomial Order", "The highest power 
of 'x' for this polynomial. (number of coefficients - 1)");
        RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
        
+
+       prop= RNA_def_property(srna, "coefficients", PROP_FLOAT, PROP_NONE);
+       RNA_def_property_array(prop, 32);
+       RNA_def_property_flag(prop, PROP_DYNAMIC);
+       RNA_def_property_dynamic_array_funcs(prop, "rna_FM_get_length");
+       RNA_def_property_float_funcs(prop, "rna_FM_get", "rna_FM_set", NULL);
+       RNA_def_property_ui_text(prop, "Coefficients", "Coefficients for 'x' 
(starting from lowest power of x^0).");
+
        /* coefficients array */
                // FIXME: this is quite difficult to try to wrap
        //prop= RNA_def_property(srna, "coefficients", PROP_COLLECTION, 
PROP_NONE);


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to