[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