diff options
author | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2011-11-01 13:47:41 +0400 |
---|---|---|
committer | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2011-11-01 13:47:41 +0400 |
commit | ac6bdfb653fc8b4566179d3481ed89192106ceef (patch) | |
tree | 1d66cc8afe88b640a5f6421a8a789e19a7270902 | |
parent | 12f2c06d344e61e4cd104aa25e5f6ab3b72446d0 (diff) |
Added two stroke geometry modifiers: Parameterization and Guiding Lines.
-rw-r--r-- | release/scripts/freestyle/style_modules/parameter_editor.py | 6 | ||||
-rw-r--r-- | release/scripts/startup/bl_ui/properties_render.py | 6 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/linestyle.c | 20 | ||||
-rw-r--r-- | source/blender/blenloader/intern/writefile.c | 6 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_linestyle_types.h | 20 | ||||
-rw-r--r-- | source/blender/makesrna/RNA_access.h | 2 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_linestyle.c | 24 |
7 files changed, 82 insertions, 2 deletions
diff --git a/release/scripts/freestyle/style_modules/parameter_editor.py b/release/scripts/freestyle/style_modules/parameter_editor.py index 97df74c8a0c..5036fa78438 100644 --- a/release/scripts/freestyle/style_modules/parameter_editor.py +++ b/release/scripts/freestyle/style_modules/parameter_editor.py @@ -977,6 +977,12 @@ def process(layer_name, lineset_name): elif m.type == "TIP_REMOVER": shaders_list.append(TipRemoverShader( m.tip_length)) + elif m.type == "POLYGONIZATION": + shaders_list.append(PolygonalizationShader( + m.error)) + elif m.type == "GUIDING_LINES": + shaders_list.append(GuidingLinesShader( + m.offset)) color = linestyle.color shaders_list.append(ConstantColorShader(color.r, color.g, color.b, linestyle.alpha)) shaders_list.append(ConstantThicknessShader(linestyle.thickness)) diff --git a/release/scripts/startup/bl_ui/properties_render.py b/release/scripts/startup/bl_ui/properties_render.py index e7aca0c9930..ce7433112d2 100644 --- a/release/scripts/startup/bl_ui/properties_render.py +++ b/release/scripts/startup/bl_ui/properties_render.py @@ -544,6 +544,12 @@ class RENDER_PT_freestyle_linestyle(RenderButtonsPanel, Panel): elif modifier.type == "TIP_REMOVER": box.prop(modifier, "tip_length") + elif modifier.type == "POLYGONIZATION": + box.prop(modifier, "error") + + elif modifier.type == "GUIDING_LINES": + box.prop(modifier, "offset") + def draw(self, context): layout = self.layout diff --git a/source/blender/blenkernel/intern/linestyle.c b/source/blender/blenkernel/intern/linestyle.c index 177cc64aa40..a8d8038e7f9 100644 --- a/source/blender/blenkernel/intern/linestyle.c +++ b/source/blender/blenkernel/intern/linestyle.c @@ -61,7 +61,9 @@ static char *modifier_name[LS_MODIFIER_NUM] = { "Perlin Noise 2D", "Backbone Stretcher", "Tip Remover", - "Calligraphy"}; + "Calligraphy", + "Polygonalization", + "Guiding Lines"}; static void default_linestyle_settings(FreestyleLineStyle *linestyle) { @@ -390,6 +392,12 @@ int FRS_add_linestyle_geometry_modifier(FreestyleLineStyle *linestyle, int type) case LS_MODIFIER_TIP_REMOVER: size = sizeof(LineStyleGeometryModifier_TipRemover); break; + case LS_MODIFIER_POLYGONIZATION: + size = sizeof(LineStyleGeometryModifier_Polygonalization); + break; + case LS_MODIFIER_GUIDING_LINES: + size = sizeof(LineStyleGeometryModifier_GuidingLines); + break; default: return -1; /* unknown modifier type */ } @@ -432,6 +440,12 @@ int FRS_add_linestyle_geometry_modifier(FreestyleLineStyle *linestyle, int type) case LS_MODIFIER_TIP_REMOVER: ((LineStyleGeometryModifier_TipRemover *)m)->tip_length = 10.0; break; + case LS_MODIFIER_POLYGONIZATION: + ((LineStyleGeometryModifier_Polygonalization *)m)->error = 10.0; + break; + case LS_MODIFIER_GUIDING_LINES: + ((LineStyleGeometryModifier_GuidingLines *)m)->offset = 0.0; + break; } add_to_modifier_list(&linestyle->geometry_modifiers, m); return 0; @@ -456,6 +470,10 @@ void FRS_remove_linestyle_geometry_modifier(FreestyleLineStyle *linestyle, LineS break; case LS_MODIFIER_TIP_REMOVER: break; + case LS_MODIFIER_POLYGONIZATION: + break; + case LS_MODIFIER_GUIDING_LINES: + break; } BLI_freelinkN(&linestyle->geometry_modifiers, m); } diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index e21a9c5b20c..158fad766b4 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -2674,6 +2674,12 @@ static void write_linestyle_geometry_modifiers(WriteData *wd, ListBase *modifier case LS_MODIFIER_TIP_REMOVER: struct_name = "LineStyleGeometryModifier_TipRemover"; break; + case LS_MODIFIER_POLYGONIZATION: + struct_name = "LineStyleGeometryModifier_Polygonalization"; + break; + case LS_MODIFIER_GUIDING_LINES: + struct_name = "LineStyleGeometryModifier_GuidingLines"; + break; default: struct_name = "LineStyleGeometryModifier"; // this should not happen } diff --git a/source/blender/makesdna/DNA_linestyle_types.h b/source/blender/makesdna/DNA_linestyle_types.h index 3cc75246b99..a34a4285e55 100644 --- a/source/blender/makesdna/DNA_linestyle_types.h +++ b/source/blender/makesdna/DNA_linestyle_types.h @@ -62,7 +62,9 @@ typedef struct LineStyleModifier { #define LS_MODIFIER_BACKBONE_STRETCHER 11 #define LS_MODIFIER_TIP_REMOVER 12 #define LS_MODIFIER_CALLIGRAPHY 13 -#define LS_MODIFIER_NUM 14 +#define LS_MODIFIER_POLYGONIZATION 14 +#define LS_MODIFIER_GUIDING_LINES 15 +#define LS_MODIFIER_NUM 16 /* LineStyleModifier::flags */ #define LS_MODIFIER_ENABLED 1 @@ -295,6 +297,22 @@ typedef struct LineStyleGeometryModifier_TipRemover { } LineStyleGeometryModifier_TipRemover; +typedef struct LineStyleGeometryModifier_Polygonalization { + struct LineStyleModifier modifier; + + float error; + int pad; + +} LineStyleGeometryModifier_Polygonalization; + +typedef struct LineStyleGeometryModifier_GuidingLines { + struct LineStyleModifier modifier; + + float offset; + int pad; + +} LineStyleGeometryModifier_GuidingLines; + /* Calligraphic thickness modifier */ typedef struct LineStyleThicknessModifier_Calligraphy { diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index 259b65defa8..543fb059bb7 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -298,8 +298,10 @@ extern StructRNA RNA_LineStyleColorModifier_Material; extern StructRNA RNA_LineStyleGeometryModifier; extern StructRNA RNA_LineStyleGeometryModifier_BackboneStretcher; extern StructRNA RNA_LineStyleGeometryModifier_BezierCurve; +extern StructRNA RNA_LineStyleGeometryModifier_GuidingLines; extern StructRNA RNA_LineStyleGeometryModifier_PerlinNoise1D; extern StructRNA RNA_LineStyleGeometryModifier_PerlinNoise2D; +extern StructRNA RNA_LineStyleGeometryModifier_Polygonalization; extern StructRNA RNA_LineStyleGeometryModifier_Sampling; extern StructRNA RNA_LineStyleGeometryModifier_SinusDisplacement; extern StructRNA RNA_LineStyleGeometryModifier_SpatialNoise; diff --git a/source/blender/makesrna/intern/rna_linestyle.c b/source/blender/makesrna/intern/rna_linestyle.c index 5b3a2550921..6b278af9a06 100644 --- a/source/blender/makesrna/intern/rna_linestyle.c +++ b/source/blender/makesrna/intern/rna_linestyle.c @@ -67,6 +67,8 @@ EnumPropertyItem linestyle_geometry_modifier_type_items[] ={ {LS_MODIFIER_PERLIN_NOISE_2D, "PERLIN_NOISE_2D", ICON_MODIFIER, "Perlin Noise 2D", ""}, {LS_MODIFIER_BACKBONE_STRETCHER, "BACKBONE_STRETCHER", ICON_MODIFIER, "Backbone Stretcher", ""}, {LS_MODIFIER_TIP_REMOVER, "TIP_REMOVER", ICON_MODIFIER, "Tip Remover", ""}, + {LS_MODIFIER_POLYGONIZATION, "POLYGONIZATION", ICON_MODIFIER, "Polygonization", ""}, + {LS_MODIFIER_GUIDING_LINES, "GUIDING_LINES", ICON_MODIFIER, "Guiding Lines", ""}, {0, NULL, 0, NULL, NULL}}; #ifdef RNA_RUNTIME @@ -148,6 +150,10 @@ static StructRNA *rna_LineStyle_geometry_modifier_refine(struct PointerRNA *ptr) return &RNA_LineStyleGeometryModifier_BackboneStretcher; case LS_MODIFIER_TIP_REMOVER: return &RNA_LineStyleGeometryModifier_TipRemover; + case LS_MODIFIER_POLYGONIZATION: + return &RNA_LineStyleGeometryModifier_Polygonalization; + case LS_MODIFIER_GUIDING_LINES: + return &RNA_LineStyleGeometryModifier_GuidingLines; default: return &RNA_LineStyleGeometryModifier; } @@ -659,6 +665,24 @@ static void rna_def_linestyle_modifiers(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Tip Length", "Length of tips to be removed"); RNA_def_property_update(prop, NC_SCENE, NULL); + srna= RNA_def_struct(brna, "LineStyleGeometryModifier_Polygonalization", "LineStyleGeometryModifier"); + RNA_def_struct_ui_text(srna, "Polygonalization", "Modify the stroke geometry so that it looks more \"polygonal\""); + rna_def_geometry_modifier(srna); + + prop= RNA_def_property(srna, "error", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "error"); + RNA_def_property_ui_text(prop, "Error", "Maximum distance between the original stroke and its polygonal approximation"); + RNA_def_property_update(prop, NC_SCENE, NULL); + + srna= RNA_def_struct(brna, "LineStyleGeometryModifier_GuidingLines", "LineStyleGeometryModifier"); + RNA_def_struct_ui_text(srna, "Guiding Lines", "Modify the stroke geometry so that it corresponds to its main direction line"); + rna_def_geometry_modifier(srna); + + prop= RNA_def_property(srna, "offset", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "offset"); + RNA_def_property_ui_text(prop, "Offset", "Displacement that is applied to the main direction line along its normal"); + RNA_def_property_update(prop, NC_SCENE, NULL); + } static void rna_def_linestyle(BlenderRNA *brna) |