Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2011-11-14 00:20:50 +0400
committerTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2011-11-14 00:20:50 +0400
commit99f7f3ac81c3854e131562c660183bdf5279dc38 (patch)
tree43cdd319fa819910347221a336e118ea16e5d9e9 /source
parent43c74f768b41551127d2952d398cee40703b28a5 (diff)
Added new options for splitting chains of feature edges by a minimum
and maximum 2D angle.
Diffstat (limited to 'source')
-rw-r--r--source/blender/makesdna/DNA_linestyle_types.h3
-rw-r--r--source/blender/makesrna/intern/rna_linestyle.c24
2 files changed, 26 insertions, 1 deletions
diff --git a/source/blender/makesdna/DNA_linestyle_types.h b/source/blender/makesdna/DNA_linestyle_types.h
index a73dd707caa..aa28ecac77d 100644
--- a/source/blender/makesdna/DNA_linestyle_types.h
+++ b/source/blender/makesdna/DNA_linestyle_types.h
@@ -358,6 +358,8 @@ typedef struct LineStyleThicknessModifier_Calligraphy {
#define LS_MIN_2D_LENGTH 16
#define LS_MAX_2D_LENGTH 32
#define LS_NO_CHAINING 64
+#define LS_MIN_2D_ANGLE 128
+#define LS_MAX_2D_ANGLE 256
/* FreestyleLineStyle::chaining */
#define LS_CHAINING_PLAIN 1
@@ -377,6 +379,7 @@ typedef struct FreestyleLineStyle {
int flag, caps;
int chaining;
unsigned int rounds;
+ float min_angle, max_angle; /* for splitting */
float min_length, max_length;
unsigned short dash1, gap1, dash2, gap2, dash3, gap3;
int panel; /* for UI */
diff --git a/source/blender/makesrna/intern/rna_linestyle.c b/source/blender/makesrna/intern/rna_linestyle.c
index 736bc67a6ab..407566ea09c 100644
--- a/source/blender/makesrna/intern/rna_linestyle.c
+++ b/source/blender/makesrna/intern/rna_linestyle.c
@@ -184,7 +184,7 @@ static char *rna_LineStyle_geometry_modifier_path(PointerRNA *ptr)
#else
-#include "DNA_material_types.h"
+#include "BLI_math.h"
static void rna_def_modifier_type_common(StructRNA *srna, EnumPropertyItem *modifier_type_items, int blend, int color)
{
@@ -823,6 +823,28 @@ static void rna_def_linestyle(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Same Object", "If true, only feature edges of the same object are joined");
RNA_def_property_update(prop, NC_SCENE, NULL);
+ prop= RNA_def_property(srna, "use_min_angle", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "flag", LS_MIN_2D_ANGLE);
+ RNA_def_property_ui_text(prop, "Use Min 2D Angle", "Split chains at points with angles smaller than the minimum 2D angle");
+ RNA_def_property_update(prop, NC_SCENE, NULL);
+
+ prop= RNA_def_property(srna, "min_angle", PROP_FLOAT, PROP_ANGLE);
+ RNA_def_property_float_sdna(prop, NULL, "min_angle");
+ RNA_def_property_range(prop, 0.0f, (float)M_PI);
+ RNA_def_property_ui_text(prop, "Min 2D Angle", "Minimum 2D angle for splitting chains");
+ RNA_def_property_update(prop, NC_SCENE, NULL);
+
+ prop= RNA_def_property(srna, "use_max_angle", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "flag", LS_MAX_2D_ANGLE);
+ RNA_def_property_ui_text(prop, "Use Max 2D Angle", "Split chains at points with angles larger than the maximum 2D angle");
+ RNA_def_property_update(prop, NC_SCENE, NULL);
+
+ prop= RNA_def_property(srna, "max_angle", PROP_FLOAT, PROP_ANGLE);
+ RNA_def_property_float_sdna(prop, NULL, "max_angle");
+ RNA_def_property_range(prop, 0.0f, (float)M_PI);
+ RNA_def_property_ui_text(prop, "Max 2D Angle", "Maximum 2D angle for splitting chains");
+ RNA_def_property_update(prop, NC_SCENE, NULL);
+
prop= RNA_def_property(srna, "use_min_length", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", LS_MIN_2D_LENGTH);
RNA_def_property_ui_text(prop, "Use Min 2D Length", "Enable the selection of chains by a minimum 2D length");