A bit more F-Modifier wrapping...
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user