[Bf-blender-cvs] [c536d7b778e] soc-2019-npr: LANPR: Added a placeholder for GPencil sample modifier.
YimingWu
noreply at git.blender.org
Tue Jun 4 12:31:40 CEST 2019
Commit: c536d7b778e0320cdbd804c7b3718fb3a2648564
Author: YimingWu
Date: Tue Jun 4 18:31:09 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBc536d7b778e0320cdbd804c7b3718fb3a2648564
LANPR: Added a placeholder for GPencil sample modifier.
===================================================================
M release/scripts/startup/bl_ui/properties_data_modifier.py
M source/blender/gpencil_modifiers/CMakeLists.txt
M source/blender/gpencil_modifiers/MOD_gpencil_modifiertypes.h
M source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c
A source/blender/gpencil_modifiers/intern/MOD_gpencilsample.c
M source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c
M source/blender/makesdna/DNA_gpencil_modifier_types.h
M source/blender/makesrna/RNA_access.h
M source/blender/makesrna/intern/rna_gpencil_modifier.c
===================================================================
diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py b/release/scripts/startup/bl_ui/properties_data_modifier.py
index 5a078d22295..fbccf42f780 100644
--- a/release/scripts/startup/bl_ui/properties_data_modifier.py
+++ b/release/scripts/startup/bl_ui/properties_data_modifier.py
@@ -2267,6 +2267,10 @@ class DATA_PT_gpencil_modifiers(ModifierButtonsPanel, Panel):
row.prop(md, "layer_pass", text="Pass")
row.prop(md, "invert_layer_pass", text="", icon='ARROW_LEFTRIGHT')
+ def GP_SAMPLE(self, layout, ob, md):
+ col = layout.column()
+ col.prop(md, "length")
+
classes = (
DATA_PT_modifiers,
diff --git a/source/blender/gpencil_modifiers/CMakeLists.txt b/source/blender/gpencil_modifiers/CMakeLists.txt
index 6f0468426ac..d716f5465c1 100644
--- a/source/blender/gpencil_modifiers/CMakeLists.txt
+++ b/source/blender/gpencil_modifiers/CMakeLists.txt
@@ -58,6 +58,7 @@ set(SRC
intern/MOD_gpencilsimplify.c
intern/MOD_gpencilsmooth.c
intern/MOD_gpencilstroke.c
+ intern/MOD_gpencilsample.c
intern/MOD_gpencilsubdiv.c
intern/MOD_gpencilthick.c
intern/MOD_gpenciltime.c
diff --git a/source/blender/gpencil_modifiers/MOD_gpencil_modifiertypes.h b/source/blender/gpencil_modifiers/MOD_gpencil_modifiertypes.h
index 6287ec0f56e..a6f2bc8e9e5 100644
--- a/source/blender/gpencil_modifiers/MOD_gpencil_modifiertypes.h
+++ b/source/blender/gpencil_modifiers/MOD_gpencil_modifiertypes.h
@@ -43,6 +43,7 @@ extern GpencilModifierTypeInfo modifierType_Gpencil_Offset;
extern GpencilModifierTypeInfo modifierType_Gpencil_Armature;
extern GpencilModifierTypeInfo modifierType_Gpencil_Time;
extern GpencilModifierTypeInfo modifierType_Gpencil_Stroke;
+extern GpencilModifierTypeInfo modifierType_Gpencil_Sample;
/* MOD_gpencil_util.c */
void gpencil_modifier_type_init(GpencilModifierTypeInfo *types[]);
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c b/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c
index c46947fb6f5..150edae4f56 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c
@@ -59,6 +59,7 @@ void gpencil_modifier_type_init(GpencilModifierTypeInfo *types[])
INIT_GP_TYPE(Subdiv);
INIT_GP_TYPE(Simplify);
INIT_GP_TYPE(Stroke);
+ INIT_GP_TYPE(Sample);
INIT_GP_TYPE(Thick);
INIT_GP_TYPE(Tint);
INIT_GP_TYPE(Color);
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilsample.c
similarity index 77%
copy from source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c
copy to source/blender/gpencil_modifiers/intern/MOD_gpencilsample.c
index 18cbf1f173f..fb23de84b67 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilsample.c
@@ -72,8 +72,7 @@
static void initData(GpencilModifierData *md)
{
- StrokeGpencilModifierData *gpmd = (StrokeGpencilModifierData *)md;
- gpmd->object = NULL;
+ SampleGpencilModifierData *gpmd = (SampleGpencilModifierData *)md;
}
static void copyData(const GpencilModifierData *md, GpencilModifierData *target)
@@ -91,7 +90,7 @@ static void bakeModifier(Main *UNUSED(bmain),
for (bGPDlayer *gpl = gpd->layers.first; gpl; gpl = gpl->next) {
for (bGPDframe *gpf = gpl->frames.first; gpf; gpf = gpf->next) {
- // lanpr_generate_gpencil_geometry(md, depsgraph, ob, gpl, gpf);
+ //stuff
return;
}
}
@@ -103,19 +102,12 @@ static void bakeModifier(Main *UNUSED(bmain),
static void generateStrokes(
GpencilModifierData *md, Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, bGPDframe *gpf)
{
- // lanpr_generate_gpencil_geometry(md, depsgraph, ob, gpl, gpf);
- lanpr_update_data_for_external(depsgraph);
- lanpr_generate_gpencil_from_chain(md, depsgraph, ob, gpl, gpf);
+ //stuff
}
static void updateDepsgraph(GpencilModifierData *md, const ModifierUpdateDepsgraphContext *ctx)
{
- StrokeGpencilModifierData *lmd = (StrokeGpencilModifierData *)md;
- if (lmd->object != NULL) {
- DEG_add_object_relation(ctx->node, lmd->object, DEG_OB_COMP_GEOMETRY, "Stroke Modifier");
- DEG_add_object_relation(ctx->node, lmd->object, DEG_OB_COMP_TRANSFORM, "Stroke Modifier");
- }
- DEG_add_object_relation(ctx->node, ctx->object, DEG_OB_COMP_TRANSFORM, "Stroke Modifier");
+ SampleGpencilModifierData *lmd = (SampleGpencilModifierData *)md;
}
static void foreachObjectLink(GpencilModifierData *md,
@@ -123,15 +115,13 @@ static void foreachObjectLink(GpencilModifierData *md,
ObjectWalkFunc walk,
void *userData)
{
- StrokeGpencilModifierData *mmd = (StrokeGpencilModifierData *)md;
-
- walk(userData, ob, &mmd->object, IDWALK_CB_NOP);
+ SampleGpencilModifierData *mmd = (SampleGpencilModifierData *)md;
}
-GpencilModifierTypeInfo modifierType_Gpencil_Stroke = {
- /* name */ "Stroke",
- /* structName */ "StrokeGpencilModifierData",
- /* structSize */ sizeof(StrokeGpencilModifierData),
+GpencilModifierTypeInfo modifierType_Gpencil_Sample = {
+ /* name */ "Sample",
+ /* structName */ "SampleGpencilModifierData",
+ /* structSize */ sizeof(SampleGpencilModifierData),
/* type */ eGpencilModifierTypeType_Gpencil,
/* flags */ 0,
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c
index 18cbf1f173f..ee1efaa7802 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c
@@ -92,6 +92,8 @@ static void bakeModifier(Main *UNUSED(bmain),
for (bGPDlayer *gpl = gpd->layers.first; gpl; gpl = gpl->next) {
for (bGPDframe *gpf = gpl->frames.first; gpf; gpf = gpf->next) {
// lanpr_generate_gpencil_geometry(md, depsgraph, ob, gpl, gpf);
+ lanpr_update_data_for_external(depsgraph);
+ lanpr_generate_gpencil_from_chain(md, depsgraph, ob, gpl, gpf);
return;
}
}
diff --git a/source/blender/makesdna/DNA_gpencil_modifier_types.h b/source/blender/makesdna/DNA_gpencil_modifier_types.h
index fd8c2cb8127..eab5b7786d9 100644
--- a/source/blender/makesdna/DNA_gpencil_modifier_types.h
+++ b/source/blender/makesdna/DNA_gpencil_modifier_types.h
@@ -49,6 +49,7 @@ typedef enum GpencilModifierType {
eGpencilModifierType_Armature = 15,
eGpencilModifierType_Time = 16,
eGpencilModifierType_Stroke = 17,
+ eGpencilModifierType_Sample = 18,
NUM_GREASEPENCIL_MODIFIER_TYPES,
} GpencilModifierType;
@@ -610,4 +611,10 @@ typedef enum eStrokeGpencil_Flag { /* emm what are these for */
GP_STROKE_INVERT_LAYERPASS = (1 << 3),
} eStrokeGpencil_Flag;
+typedef struct SampleGpencilModifierData {
+ GpencilModifierData modifier;
+ float length;
+ char _pad[4];
+} SampleGpencilModifierData;
+
#endif /* __DNA_GPENCIL_MODIFIER_TYPES_H__ */
diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h
index 34a01aba5be..abaa4b0ef2f 100644
--- a/source/blender/makesrna/RNA_access.h
+++ b/source/blender/makesrna/RNA_access.h
@@ -629,6 +629,7 @@ extern StructRNA RNA_Stereo3dDisplay;
extern StructRNA RNA_StretchToConstraint;
extern StructRNA RNA_StringProperty;
extern StructRNA RNA_StrokeGpencilModifier;
+extern StructRNA RNA_SampleGpencilModifier;
extern StructRNA RNA_Struct;
extern StructRNA RNA_StucciTexture;
extern StructRNA RNA_StudioLight;
diff --git a/source/blender/makesrna/intern/rna_gpencil_modifier.c b/source/blender/makesrna/intern/rna_gpencil_modifier.c
index 0d12038cf0a..adef1439fd4 100644
--- a/source/blender/makesrna/intern/rna_gpencil_modifier.c
+++ b/source/blender/makesrna/intern/rna_gpencil_modifier.c
@@ -86,6 +86,11 @@ const EnumPropertyItem rna_enum_object_greasepencil_modifier_type_items[] = {
ICON_MOD_ARRAY,
"Stoke",
"Create strokes from mesh elements"},
+ {eGpencilModifierType_Sample,
+ "GP_SAMPLE",
+ ICON_MOD_MULTIRES,
+ "Sample",
+ "Resamples strokes"},
{0, "", 0, N_("Deform"), ""},
{eGpencilModifierType_Armature,
"GP_ARMATURE",
@@ -214,6 +219,8 @@ static StructRNA *rna_GpencilModifier_refine(struct PointerRNA *ptr)
return &RNA_ArmatureGpencilModifier;
case eGpencilModifierType_Stroke:
return &RNA_StrokeGpencilModifier;
+ case eGpencilModifierType_Sample:
+ return &RNA_SampleGpencilModifier;
/* Default */
case eGpencilModifierType_None:
case NUM_GREASEPENCIL_MODIFIER_TYPES:
@@ -1767,6 +1774,23 @@ static void rna_def_modifier_gpencilstroke(BlenderRNA *brna)
RNA_def_property_update(prop, 0, "rna_GpencilModifier_update");
}
+static void rna_def_modifier_gpencilsample(BlenderRNA *brna)
+{
+ StructRNA *srna;
+ PropertyRNA *prop;
+
+ srna = RNA_def_struct(brna, "SampleGpencilModifier", "GpencilModifier");
+ RNA_def_struct_ui_text(srna, "Sample Modifier", "Re-samples the stroke");
+ RNA_def_struct_sdna(srna, "SampleGpencilModifierData");
+ RNA_def_struct_ui_icon(srna, ICON_MOD_MULTIRES);
+
+ prop = RNA_def_property(srna, "length", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "length");
+ RNA_def_property_range(prop, 0, 10);
+ RNA_def_property_ui_text(prop, "Length", "Length of each segment");
+ RNA_def_property_update(prop, 0, "rna_GpencilModifier_update");
+}
+
void RNA_def_greasepencil_modifier(BlenderRNA *brna)
{
StructRNA *srna;
@@ -1827,6 +1851,7 @@ void RNA_def_greasepencil_modifier(BlenderRNA *brna)
rna_def_modifier_gpencilsmooth(brna);
rna_def_modifier_gpencilsubdiv(brna);
rna_def_modifier_gpencilstroke(brna);
+ rna_def_modifier_gpencilsample(brna);
rna_def_modifier_gpencilsimplify(brna);
rna_def_modifier_gpencilthick(brna);
rna_def_modifier_gpenciloffset(brna);
More information about the Bf-blender-cvs
mailing list