Added UI controls for specifying logical operations (logical AND, OR,

and NOT) to combine feature edge selection criteria.
This commit is contained in:
2010-07-05 22:32:51 +00:00
parent b8de9bc5fb
commit ae9b9b43e6
3 changed files with 29 additions and 0 deletions

View File

@@ -221,6 +221,11 @@ class RENDER_PT_freestyle(RenderButtonsPanel):
if lineset:
col.prop(lineset, "name")
row = col.row()
row.prop(lineset, "selection_negation", expand=True)
row = col.row()
row.prop(lineset, "selection_combination", expand=True)
row = col.row()
sub = row.column()
sub.prop(lineset, "select_silhouette")

View File

@@ -16,6 +16,8 @@
/* FreestyleLineSet::flags */
#define FREESTYLE_LINESET_CURRENT 1
#define FREESTYLE_LINESET_ENABLED 2
#define FREESTYLE_LINESET_SEL_NOT 4
#define FREESTYLE_LINESET_SEL_OR 8
/* FreestyleLineSet::selection */
#define FREESTYLE_SEL_SILHOUETTE 1

View File

@@ -1535,6 +1535,16 @@ static void rna_def_freestyle_settings(BlenderRNA *brna)
StructRNA *srna;
PropertyRNA *prop;
static EnumPropertyItem selection_negation_items[] = {
{0, "INCLUSIVE", 0, "Inclusive", "Select feature edges satisfying the given selection criteria."},
{FREESTYLE_LINESET_SEL_NOT, "EXCLUSIVE", 0, "Exclusive", "Select feature edges not satisfying the given selection criteria."},
{0, NULL, 0, NULL, NULL}};
static EnumPropertyItem selection_combination_items[] = {
{0, "AND", 0, "Logical AND", "Combine selection criteria by logical AND (logical conjunction)."},
{FREESTYLE_LINESET_SEL_OR, "OR", 0, "Logical OR", "Combine selection criteria by logical OR (logical disjunction)."},
{0, NULL, 0, NULL, NULL}};
static EnumPropertyItem freestyle_ui_mode_items[] = {
{FREESTYLE_CONTROL_SCRIPT_MODE, "SCRIPT", 0, "Python Scripting Mode", "Advanced mode for using style modules in Python"},
{FREESTYLE_CONTROL_EDITOR_MODE, "EDITOR", 0, "Parameter Editor Mode", "Basic mode for interactive style parameter editing"},
@@ -1571,6 +1581,18 @@ static void rna_def_freestyle_settings(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Enabled", "Enable or disable the line set.");
RNA_def_property_update(prop, NC_SCENE, NULL);
prop= RNA_def_property(srna, "selection_negation", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_bitflag_sdna(prop, NULL, "flags");
RNA_def_property_enum_items(prop, selection_negation_items);
RNA_def_property_ui_text(prop, "Selection Negation", "Set the negation operation for selection criteria.");
RNA_def_property_update(prop, NC_SCENE, NULL);
prop= RNA_def_property(srna, "selection_combination", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_bitflag_sdna(prop, NULL, "flags");
RNA_def_property_enum_items(prop, selection_combination_items);
RNA_def_property_ui_text(prop, "Selection Combination", "Set the combination operation for selection criteria.");
RNA_def_property_update(prop, NC_SCENE, NULL);
prop= RNA_def_property(srna, "objects", PROP_COLLECTION, PROP_NONE);
RNA_def_property_collection_sdna(prop, NULL, "objects", NULL);
RNA_def_property_struct_type(prop, "Object");