[Bf-blender-cvs] [e2a7fca986a] soc-2019-npr: GPencil: Make sample modifier a part of simplify modifier.
YimingWu
noreply at git.blender.org
Wed Jul 17 08:40:33 CEST 2019
Commit: e2a7fca986a2a1aa4c59671bf9ba5722d36f5247
Author: YimingWu
Date: Wed Jul 17 14:40:00 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBe2a7fca986a2a1aa4c59671bf9ba5722d36f5247
GPencil: Make sample modifier a part of simplify 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
D source/blender/gpencil_modifiers/intern/MOD_gpencilsample.c
M source/blender/gpencil_modifiers/intern/MOD_gpencilsimplify.c
M source/blender/makesdna/DNA_gpencil_modifier_types.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 0b81884f0c2..336c12d53e6 100644
--- a/release/scripts/startup/bl_ui/properties_data_modifier.py
+++ b/release/scripts/startup/bl_ui/properties_data_modifier.py
@@ -1863,13 +1863,13 @@ class DATA_PT_gpencil_modifiers(ModifierButtonsPanel, Panel):
col = split.column()
col.label(text="Settings:")
- row = col.row(align=True)
- row.enabled = md.mode == 'FIXED'
- row.prop(md, "step")
- row = col.row(align=True)
- row.enabled = not md.mode == 'FIXED'
- row.prop(md, "factor")
+ if md.mode == 'FIXED':
+ col.prop(md, "step")
+ elif md.mode == 'ADAPTIVE':
+ col.prop(md, "factor")
+ elif md.mode == 'SAMPLE':
+ col.prop(md, "length")
col = layout.column()
col.separator()
@@ -2342,10 +2342,6 @@ class DATA_PT_gpencil_modifiers(ModifierButtonsPanel, Panel):
row = layout.row(align=True)
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")
def GP_LENGTH(self, layout, ob, md):
sp = layout.split()
diff --git a/source/blender/gpencil_modifiers/CMakeLists.txt b/source/blender/gpencil_modifiers/CMakeLists.txt
index e5380ae4516..1c497ff7b8d 100644
--- a/source/blender/gpencil_modifiers/CMakeLists.txt
+++ b/source/blender/gpencil_modifiers/CMakeLists.txt
@@ -57,7 +57,6 @@ set(SRC
intern/MOD_gpencilopacity.c
intern/MOD_gpencilsimplify.c
intern/MOD_gpencilsmooth.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 ac926ffe96e..b84ccbcab64 100644
--- a/source/blender/gpencil_modifiers/MOD_gpencil_modifiertypes.h
+++ b/source/blender/gpencil_modifiers/MOD_gpencil_modifiertypes.h
@@ -42,7 +42,6 @@ extern GpencilModifierTypeInfo modifierType_Gpencil_Hook;
extern GpencilModifierTypeInfo modifierType_Gpencil_Offset;
extern GpencilModifierTypeInfo modifierType_Gpencil_Armature;
extern GpencilModifierTypeInfo modifierType_Gpencil_Time;
-extern GpencilModifierTypeInfo modifierType_Gpencil_Sample;
extern GpencilModifierTypeInfo modifierType_Gpencil_Length;
extern GpencilModifierTypeInfo modifierType_Gpencil_Multiply;
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c b/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c
index f609fbf385b..a1f6c2557af 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c
@@ -58,7 +58,6 @@ void gpencil_modifier_type_init(GpencilModifierTypeInfo *types[])
INIT_GP_TYPE(Noise);
INIT_GP_TYPE(Subdiv);
INIT_GP_TYPE(Simplify);
- 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_gpencilsample.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilsample.c
deleted file mode 100644
index 67f57102a93..00000000000
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencilsample.c
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2017, Blender Foundation
- * This is a new part of Blender
- *
- * Contributor(s): Antonio Vazquez, Joshua Leung, Yiming Wu
- *
- * ***** END GPL LICENSE BLOCK *****
- *
- */
-
-/** \file blender/gpencil_modifiers/intern/MOD_gpencilstrokes.c
- * \ingroup modifiers
- */
-
-#include <stdio.h>
-
-#include "MEM_guardedalloc.h"
-
-#include "DNA_scene_types.h"
-#include "DNA_object_types.h"
-#include "DNA_gpencil_types.h"
-#include "DNA_gpencil_modifier_types.h"
-
-#include "BLI_blenlib.h"
-#include "BLI_rand.h"
-#include "BLI_math.h"
-#include "BLI_utildefines.h"
-#include "BLI_linklist.h"
-#include "BLI_alloca.h"
-
-#include "BKE_gpencil.h"
-#include "BKE_gpencil_modifier.h"
-#include "BKE_modifier.h"
-#include "BKE_context.h"
-#include "BKE_global.h"
-#include "BKE_object.h"
-#include "BKE_main.h"
-#include "BKE_scene.h"
-#include "BKE_layer.h"
-#include "BKE_library_query.h"
-#include "BKE_collection.h"
-#include "BKE_mesh.h"
-#include "BKE_mesh_mapping.h"
-
-#include "bmesh.h"
-#include "bmesh_tools.h"
-
-#include "DEG_depsgraph.h"
-#include "DEG_depsgraph_build.h"
-#include "DEG_depsgraph_query.h"
-
-#include "MOD_gpencil_util.h"
-#include "MOD_gpencil_modifiertypes.h"
-
-static void initData(GpencilModifierData *md)
-{
- SampleGpencilModifierData *gpmd = (SampleGpencilModifierData *)md;
-}
-
-static void copyData(const GpencilModifierData *md, GpencilModifierData *target)
-{
- BKE_gpencil_modifier_copyData_generic(md, target);
-}
-
-static void bakeModifier(Main *UNUSED(bmain),
- Depsgraph *depsgraph,
- GpencilModifierData *md,
- Object *ob)
-{
-
- bGPdata *gpd = ob->data;
-
- for (bGPDlayer *gpl = gpd->layers.first; gpl; gpl = gpl->next) {
- for (bGPDframe *gpf = gpl->frames.first; gpf; gpf = gpf->next) {
- SampleGpencilModifierData *lmd = (SampleGpencilModifierData *)md;
- bGPDstroke *gps;
- for (gps = gpf->strokes.first; gps; gps = gps->next) {
- BKE_gpencil_sample_stroke(gps, lmd->length);
- }
- return;
- }
- }
-}
-
-/* -------------------------------- */
-
-/* Generic "generateStrokes" callback */
-static void generateStrokes(
- GpencilModifierData *md, Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, bGPDframe *gpf)
-{
- SampleGpencilModifierData *lmd = (SampleGpencilModifierData *)md;
- bGPDstroke *gps;
- for (gps = gpf->strokes.first; gps; gps = gps->next) {
- BKE_gpencil_sample_stroke(gps, lmd->length);
- }
-}
-
-static void updateDepsgraph(GpencilModifierData *md, const ModifierUpdateDepsgraphContext *ctx)
-{
- SampleGpencilModifierData *lmd = (SampleGpencilModifierData *)md;
-}
-
-static void foreachObjectLink(GpencilModifierData *md,
- Object *ob,
- ObjectWalkFunc walk,
- void *userData)
-{
- SampleGpencilModifierData *mmd = (SampleGpencilModifierData *)md;
-}
-
-GpencilModifierTypeInfo modifierType_Gpencil_Sample = {
- /* name */ "Sample",
- /* structName */ "SampleGpencilModifierData",
- /* structSize */ sizeof(SampleGpencilModifierData),
- /* type */ eGpencilModifierTypeType_Gpencil,
- /* flags */ 0,
-
- /* copyData */ copyData,
-
- /* deformStroke */ NULL,
- /* generateStrokes */ generateStrokes,
- /* bakeModifier */ bakeModifier,
- /* remapTime */ NULL,
-
- /* initData */ initData,
- /* freeData */ NULL,
- /* isDisabled */ NULL,
- /* updateDepsgraph */ updateDepsgraph,
- /* dependsOnTime */ NULL,
- /* foreachObjectLink */ foreachObjectLink,
- /* foreachIDLink */ NULL,
- /* foreachTexLink */ NULL,
- /* getDuplicationFactor */ NULL,
-};
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilsimplify.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilsimplify.c
index 5e5c60645ad..88fc1fb2e00 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencilsimplify.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilsimplify.c
@@ -79,9 +79,11 @@ static void deformStroke(GpencilModifierData *md,
BKE_gpencil_simplify_fixed(gps);
}
}
- else {
+ else if(mmd->mode == GP_SIMPLIFY_ADAPTIVE) {
/* simplify stroke using Ramer-Douglas-Peucker algorithm */
BKE_gpencil_simplify_stroke(gps, mmd->factor);
+ }else if(mmd->mode == GP_SIMPLIFY_SAMPLE) {
+ BKE_gpencil_sample_stroke(gps, mmd->length);
}
}
diff --git a/source/blender/makesdna/DNA_gpencil_modifier_types.h b/source/blender/makesdna/DNA_gpencil_modifier_types.h
index c3427b26d29..5357522f877 100644
--- a/source/blender/makesdna/DNA_gpencil_modifier_types.h
+++ b/source/blender/makesdna/DNA_gpencil_modifier_types.h
@@ -511,7 +511,8 @@ typedef struct SimplifyGpencilModifierData {
short step;
/** Custom index for passes. */
int layer_pass;
- char _pad[4];
+ /* Sample length */
+ float length;
} SimplifyGpencilModifierData;
typedef enum eSimplifyGpencil_Flag {
@@ -525,6 +526,8 @@ typedef enum eSimplifyGpencil_Mode {
GP_SIMPLIFY_FIXED = 0,
/* Use RDP algorithm */
GP_SIMPLIFY_ADAPTIVE = 1,
+ /* Sample the stroke using a fixed length */
+ GP_SIMPLIFY_SAMPLE = 2,
} eSimplifyGpencil_Mode;
typedef struct OffsetGpencilModifierData {
@@ -604,12 +607,6 @@ typedef enum eStrokeGpencil_Flag { /* emm what are these for */
/* XXX: all the length and similar parameters should have an image space behavior. */
/* Need future investigations */
-typedef struct SampleGpencilModifierData {
- GpencilModifierData modifier;
- float length;
- char _pad[4];
-} SampleGpencilModifierData;
-
typedef struct LengthGpencilModifierData {
GpencilModifierData modifier;
float length;
diff --git a/source/blender/makesrna/intern/rna_gpencil_modifier.c b/source/blender/makesrna/intern/rna_gpencil_modifier.c
index 0ca3c2658d7..f97d75e9d11 100644
--- a/source/blender/makesrna/intern/rna_gpencil_modifier.c
+++ b/source/blender/makesrna/intern/rna_gpencil_modi
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list