A bit more F-Modifier wrapping...

This commit is contained in:
Joshua Leung
2009-04-20 03:29:45 +00:00
parent 5146540095
commit 387aad7275
2 changed files with 52 additions and 24 deletions

View File

@@ -162,20 +162,6 @@ static void do_graph_region_driver_buttons(bContext *C, void *arg, int event)
WM_event_add_notifier(C, NC_SCENE, scene);
}
#if 0 // XXX replace this for RNA
/* callback to copy over RNA-Paths accordingly */
static void driver_rnapath_copy_cb (bContext *C, void *driver_v, void *strbuf_v)
{
ChannelDriver *driver= (ChannelDriver *)driver_v;
char *stringBuf= (char *)strbuf_v;
/* copy over string */
if (driver->rna_path)
MEM_freeN(driver->rna_path);
driver->rna_path= BLI_strdupn(stringBuf, strlen(stringBuf));
}
#endif
/* callback to remove the active driver */
static void driver_remove_cb (bContext *C, void *ale_v, void *dummy_v)
{

View File

@@ -104,7 +104,8 @@ StructRNA *rna_FModifierType_refine(struct PointerRNA *ptr)
FMod_Generator *gen= (FMod_Generator *)fcm->data;
switch (gen->mode) {
//case FCM_GENERATOR_POLYNOMIAL:
case FCM_GENERATOR_POLYNOMIAL:
return &RNA_FModifierGenerator_PolyExpanded;
//case FCM_GENERATOR_POLYNOMIAL_FACTORISED:
case FCM_GENERATOR_FUNCTION:
return &RNA_FModifierGenerator_Function;
@@ -214,9 +215,10 @@ static void rna_def_fmodifier_generator_common(StructRNA *srna)
{FCM_GENERATOR_EXPRESSION, "EXPRESSION", "Expression", ""},
{0, NULL, NULL, NULL}};
/* struct wrapping settings */
RNA_def_struct_sdna_from(srna, "FMod_Generator", "data");
//RNA_def_struct_ui_text(srna, "Generator F-Curve Modifier", "Deterministically generates values for the modified F-Curve.");
/* settings */
prop= RNA_def_property(srna, "additive", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", FCM_GENERATOR_ADDITIVE);
RNA_def_property_ui_text(prop, "Additive", "Values generated by this modifier are applied on top of the existing values instead of overwriting them.");
@@ -227,19 +229,39 @@ static void rna_def_fmodifier_generator_common(StructRNA *srna)
RNA_def_property_ui_text(prop, "Mode", "Type of generator to use.");
}
// XXX this is temporary...
/* this is a temporary dummy generator-modifier wrapping (to be discarded) */
static void rna_def_fmodifier_generator(BlenderRNA *brna)
{
StructRNA *srna;
srna= RNA_def_struct(brna, "FModifierGenerator", "FModifier");
RNA_def_struct_sdna(srna, "FMod_Generator");
RNA_def_struct_ui_text(srna, "Generator F-Curve Modifier", "Generates values for modified F-Curve.");
RNA_def_struct_ui_text(srna, "Generator F-Curve Modifier", "Deterministically generates values for the modified F-Curve.");
/* define common props */
rna_def_fmodifier_generator_common(srna);
}
static void rna_def_fmodifier_generator_polyexpanded(BlenderRNA *brna)
{
StructRNA *srna;
PropertyRNA *prop;
srna= RNA_def_struct(brna, "FModifierGenerator_PolyExpanded", "FModifier");
RNA_def_struct_ui_text(srna, "Expanded Polynomial Generator", "Generates values for the modified F-Curve using expanded polynomial expresion.");
/* define common props */
rna_def_fmodifier_generator_common(srna);
/* order of the polynomial */
// XXX this has a special validation func
prop= RNA_def_property(srna, "poly_order", PROP_INT, PROP_NONE);
RNA_def_property_ui_text(prop, "Polynomial Order", "The highest power of 'x' for this polynomial. (i.e. the number of coefficients - 1)");
/* coefficients array */
//prop= RNA_def_property(srna, "coefficients", PROP_FLOAT, PROP_NONE);
//RNA_def_property_ui_text(prop, "Coefficients", "Coefficients for 'x' (starting from lowest power).");
}
static void rna_def_fmodifier_generator_function(BlenderRNA *brna)
{
StructRNA *srna;
@@ -300,11 +322,34 @@ static void rna_def_fmodifier_envelope(BlenderRNA *brna)
static void rna_def_fmodifier_cycles(BlenderRNA *brna)
{
StructRNA *srna;
//PropertyRNA *prop;
PropertyRNA *prop;
static EnumPropertyItem prop_type_items[] = {
{0, "NONE", "No Cycles", ""},
{1, "REPEAT", "Repeat Motion", ""},
{1, "REPEAT_OFFSET", "Repeat with Offset", ""},
{0, NULL, NULL, NULL}};
srna= RNA_def_struct(brna, "FModifierCycles", "FModifier");
RNA_def_struct_ui_text(srna, "Cycles F-Curve Modifier", "Repeats the values of the modified F-Curve.");
RNA_def_struct_sdna_from(srna, "FMod_Cycles", "data");
/* before */
prop= RNA_def_property(srna, "before_mode", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_items(prop, prop_type_items);
RNA_def_property_ui_text(prop, "Before Mode", "Cycling mode to use before first keyframe.");
prop= RNA_def_property(srna, "before_cycles", PROP_FLOAT, PROP_NONE);
RNA_def_property_ui_text(prop, "Before Cycles", "Maximum number of cycles to allow before first keyframe. (0 = infinite)");
/* after */
prop= RNA_def_property(srna, "after_mode", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_items(prop, prop_type_items);
RNA_def_property_ui_text(prop, "After Mode", "Cycling mode to use after last keyframe.");
prop= RNA_def_property(srna, "after_cycles", PROP_FLOAT, PROP_NONE);
RNA_def_property_ui_text(prop, "After Cycles", "Maximum number of cycles to allow after last keyframe. (0 = infinite)");
}
/* --------- */
@@ -348,22 +393,18 @@ static void rna_def_fmodifier_limits(BlenderRNA *brna)
prop= RNA_def_property(srna, "minimum_x", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "rect.xmin");
RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
RNA_def_property_ui_text(prop, "Minimum X", "Lowest X value to allow.");
prop= RNA_def_property(srna, "minimum_y", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "rect.ymin");
RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
RNA_def_property_ui_text(prop, "Minimum Y", "Lowest Y value to allow.");
prop= RNA_def_property(srna, "maximum_x", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "rect.xmax");
RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
RNA_def_property_ui_text(prop, "Maximum X", "Highest X value to allow.");
prop= RNA_def_property(srna, "maximum_y", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "rect.ymax");
RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
RNA_def_property_ui_text(prop, "Maximum Y", "Highest Y value to allow.");
}
@@ -556,6 +597,7 @@ void RNA_def_fcurve(BlenderRNA *brna)
rna_def_fmodifier(brna);
rna_def_fmodifier_generator(brna);
rna_def_fmodifier_generator_polyexpanded(brna);
rna_def_fmodifier_generator_function(brna);
rna_def_fmodifier_envelope(brna);
rna_def_fmodifier_cycles(brna);