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
diff options
context:
space:
mode:
authorTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2011-11-01 13:47:41 +0400
committerTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2011-11-01 13:47:41 +0400
commitac6bdfb653fc8b4566179d3481ed89192106ceef (patch)
tree1d66cc8afe88b640a5f6421a8a789e19a7270902
parent12f2c06d344e61e4cd104aa25e5f6ab3b72446d0 (diff)
Added two stroke geometry modifiers: Parameterization and Guiding Lines.
-rw-r--r--release/scripts/freestyle/style_modules/parameter_editor.py6
-rw-r--r--release/scripts/startup/bl_ui/properties_render.py6
-rw-r--r--source/blender/blenkernel/intern/linestyle.c20
-rw-r--r--source/blender/blenloader/intern/writefile.c6
-rw-r--r--source/blender/makesdna/DNA_linestyle_types.h20
-rw-r--r--source/blender/makesrna/RNA_access.h2
-rw-r--r--source/blender/makesrna/intern/rna_linestyle.c24
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)