[Bf-blender-cvs] [fa7c2b6b22a] temp-gpencil-bezier-stroke-type: GPemcil: Add new deformBezier callback for modifiers
Antonio Vazquez
noreply at git.blender.org
Sat Mar 20 16:18:01 CET 2021
Commit: fa7c2b6b22aaf2fcc265a42628736bda95e64645
Author: Antonio Vazquez
Date: Sat Mar 20 16:17:57 2021 +0100
Branches: temp-gpencil-bezier-stroke-type
https://developer.blender.org/rBfa7c2b6b22aaf2fcc265a42628736bda95e64645
GPemcil: Add new deformBezier callback for modifiers
===================================================================
M source/blender/blenkernel/BKE_gpencil_modifier.h
M source/blender/blenkernel/intern/gpencil_modifier.c
M source/blender/gpencil_modifiers/intern/MOD_gpencilarmature.c
M source/blender/gpencil_modifiers/intern/MOD_gpencilarray.c
M source/blender/gpencil_modifiers/intern/MOD_gpencilbuild.c
M source/blender/gpencil_modifiers/intern/MOD_gpencilcolor.c
M source/blender/gpencil_modifiers/intern/MOD_gpencilhook.c
M source/blender/gpencil_modifiers/intern/MOD_gpencillattice.c
M source/blender/gpencil_modifiers/intern/MOD_gpencillineart.c
M source/blender/gpencil_modifiers/intern/MOD_gpencilmirror.c
M source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c
M source/blender/gpencil_modifiers/intern/MOD_gpencilnoise.c
M source/blender/gpencil_modifiers/intern/MOD_gpenciloffset.c
M source/blender/gpencil_modifiers/intern/MOD_gpencilopacity.c
M source/blender/gpencil_modifiers/intern/MOD_gpencilsimplify.c
M source/blender/gpencil_modifiers/intern/MOD_gpencilsmooth.c
M source/blender/gpencil_modifiers/intern/MOD_gpencilsubdiv.c
M source/blender/gpencil_modifiers/intern/MOD_gpenciltexture.c
M source/blender/gpencil_modifiers/intern/MOD_gpencilthick.c
M source/blender/gpencil_modifiers/intern/MOD_gpenciltime.c
M source/blender/gpencil_modifiers/intern/MOD_gpenciltint.c
===================================================================
diff --git a/source/blender/blenkernel/BKE_gpencil_modifier.h b/source/blender/blenkernel/BKE_gpencil_modifier.h
index 7a2c1ef046d..c8bcac0f318 100644
--- a/source/blender/blenkernel/BKE_gpencil_modifier.h
+++ b/source/blender/blenkernel/BKE_gpencil_modifier.h
@@ -137,6 +137,17 @@ typedef struct GpencilModifierTypeInfo {
struct bGPDframe *gpf,
struct bGPDstroke *gps);
+ /**
+ * Callback for GP "bezier stroke" modifiers that operate on the
+ * shape and parameters of the provided strokes (e.g. Thickness, Noise, etc.)
+ */
+ void (*deformBezier)(struct GpencilModifierData *md,
+ struct Depsgraph *depsgraph,
+ struct Object *ob,
+ struct bGPDlayer *gpl,
+ struct bGPDframe *gpf,
+ struct bGPDstroke *gps);
+
/**
* Callback for GP "geometry" modifiers that create extra geometry
* in the frame (e.g. Array)
diff --git a/source/blender/blenkernel/intern/gpencil_modifier.c b/source/blender/blenkernel/intern/gpencil_modifier.c
index c1ee0791872..ea7a4551723 100644
--- a/source/blender/blenkernel/intern/gpencil_modifier.c
+++ b/source/blender/blenkernel/intern/gpencil_modifier.c
@@ -781,16 +781,20 @@ void BKE_gpencil_modifiers_calc(Depsgraph *depsgraph, Scene *scene, Object *ob)
}
/* Apply deform modifiers and Time remap (only change geometry). */
- if ((time_remap) || (mti && mti->deformPolyline)) {
+ if ((time_remap) || (mti && mti->deformPolyline) || (mti && mti->deformBezier)) {
LISTBASE_FOREACH (bGPDlayer *, gpl, &gpd->layers) {
bGPDframe *gpf = BKE_gpencil_frame_retime_get(depsgraph, scene, ob, gpl);
if (gpf == NULL) {
continue;
}
-
- if (mti->deformPolyline) {
- LISTBASE_FOREACH (bGPDstroke *, gps, &gpf->strokes) {
- mti->deformPolyline(md, depsgraph, ob, gpl, gpf, gps);
+ LISTBASE_FOREACH (bGPDstroke *, gps, &gpf->strokes) {
+ if (!GPENCIL_STROKE_TYPE_BEZIER(gps)) {
+ if (mti->deformPolyline) {
+ mti->deformPolyline(md, depsgraph, ob, gpl, gpf, gps);
+ }
+ }
+ else if (mti->deformBezier) {
+ mti->deformBezier(md, depsgraph, ob, gpl, gpf, gps);
}
}
}
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilarmature.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilarmature.c
index 5fdc714e61f..32f275c2cf8 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencilarmature.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilarmature.c
@@ -240,6 +240,7 @@ GpencilModifierTypeInfo modifierType_Gpencil_Armature = {
/* copyData */ copyData,
/* deformPolyline */ deformPolyline,
+ /* deformBezier */ NULL,
/* generateStrokes */ NULL,
/* bakeModifier */ bakeModifier,
/* remapTime */ NULL,
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilarray.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilarray.c
index c4185de96ad..b0e8fbbb14a 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencilarray.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilarray.c
@@ -478,6 +478,7 @@ GpencilModifierTypeInfo modifierType_Gpencil_Array = {
/* copyData */ copyData,
/* deformPolyline */ NULL,
+ /* deformBezier */ NULL,
/* generateStrokes */ generateStrokes,
/* bakeModifier */ bakeModifier,
/* remapTime */ NULL,
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilbuild.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilbuild.c
index bb6358ec190..db7d501b6e6 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencilbuild.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilbuild.c
@@ -630,6 +630,7 @@ GpencilModifierTypeInfo modifierType_Gpencil_Build = {
/* copyData */ copyData,
/* deformPolyline */ NULL,
+ /* deformBezier */ NULL,
/* generateStrokes */ generateStrokes,
/* bakeModifier */ NULL,
/* remapTime */ NULL,
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilcolor.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilcolor.c
index b675dab9769..b107e263ab7 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencilcolor.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilcolor.c
@@ -241,6 +241,7 @@ GpencilModifierTypeInfo modifierType_Gpencil_Color = {
/* copyData */ copyData,
/* deformPolyline */ deformPolyline,
+ /* deformBezier */ NULL,
/* generateStrokes */ NULL,
/* bakeModifier */ bakeModifier,
/* remapTime */ NULL,
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilhook.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilhook.c
index a56f60a8fe5..b2ddb69cdef 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencilhook.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilhook.c
@@ -433,6 +433,7 @@ GpencilModifierTypeInfo modifierType_Gpencil_Hook = {
/* copyData */ copyData,
/* deformPolyline */ deformPolyline,
+ /* deformBezier */ NULL,
/* generateStrokes */ NULL,
/* bakeModifier */ bakeModifier,
/* remapTime */ NULL,
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencillattice.c b/source/blender/gpencil_modifiers/intern/MOD_gpencillattice.c
index 5b123cbae6f..e3825e8b5b3 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencillattice.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencillattice.c
@@ -272,6 +272,7 @@ GpencilModifierTypeInfo modifierType_Gpencil_Lattice = {
/* copyData */ copyData,
/* deformPolyline */ deformPolyline,
+ /* deformBezier */ NULL,
/* generateStrokes */ NULL,
/* bakeModifier */ bakeModifier,
/* remapTime */ NULL,
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencillineart.c b/source/blender/gpencil_modifiers/intern/MOD_gpencillineart.c
index 8de37acbda1..2ff106f756c 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencillineart.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencillineart.c
@@ -487,6 +487,7 @@ GpencilModifierTypeInfo modifierType_Gpencil_Lineart = {
/* copyData. */ copyData,
/* deformPolyline. */ NULL,
+ /* deformBezier. */ NULL,
/* generateStrokes. */ generateStrokes,
/* bakeModifier. */ bakeModifier,
/* remapTime. */ NULL,
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilmirror.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilmirror.c
index 4b9da9ce7b6..87767f2561d 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencilmirror.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilmirror.c
@@ -270,6 +270,7 @@ GpencilModifierTypeInfo modifierType_Gpencil_Mirror = {
/* copyData */ copyData,
/* deformPolyline */ NULL,
+ /* deformBezier */ NULL,
/* generateStrokes */ generateStrokes,
/* bakeModifier */ bakeModifier,
/* remapTime */ NULL,
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c
index af639086706..4c84be571a8 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c
@@ -384,6 +384,7 @@ GpencilModifierTypeInfo modifierType_Gpencil_Multiply = {
/* copyData */ copyData,
/* deformPolyline */ NULL,
+ /* deformBezier */ NULL,
/* generateStrokes */ generateStrokes,
/* bakeModifier */ bakeModifier,
/* remapTime */ NULL,
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilnoise.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilnoise.c
index 3f2daca1c71..25afa081d31 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencilnoise.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilnoise.c
@@ -364,6 +364,7 @@ GpencilModifierTypeInfo modifierType_Gpencil_Noise = {
/* copyData */ copyData,
/* deformPolyline */ deformPolyline,
+ /* deformBezier */ NULL,
/* generateStrokes */ NULL,
/* bakeModifier */ bakeModifier,
/* remapTime */ NULL,
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpenciloffset.c b/source/blender/gpencil_modifiers/intern/MOD_gpenciloffset.c
index 7aae34f9c79..98e242dcf99 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpenciloffset.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpenciloffset.c
@@ -190,6 +190,7 @@ GpencilModifierTypeInfo modifierType_Gpencil_Offset = {
/* copyData */ copyData,
/* deformPolyline */ deformPolyline,
+ /* deformBezier */ NULL,
/* generateStrokes */ NULL,
/* bakeModifier */ bakeModifier,
/* remapTime */ NULL,
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilopacity.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilopacity.c
index 49ff06af331..0b7c926207e 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencilopacity.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilopacity.c
@@ -285,6 +285,7 @@ GpencilModifierTypeInfo modifierType_Gpencil_Opacity = {
/* copyData */ copyData,
/* deformPolyline */ deformPolyline,
+ /* deformBezier */ NULL,
/* generateStrokes */ NULL,
/* bakeModifier */ bakeModifier,
/* remapTime */ NULL,
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilsimplify.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilsimplify.c
index c223bbd01cb..e3738e82483 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencilsimplify.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilsimplify.c
@@ -193,6 +193,7 @@ GpencilModifierTypeInfo modifierType_Gpencil_Simplify = {
/* copyData */ copyData,
/* deformPolyline */ deformPolyline,
+ /* deformBezier */ NULL,
/* generateStrokes */ NULL,
/* bakeModifier */ bakeModifier,
/* remapTime */ NULL,
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilsmooth.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilsmooth.c
index 45e80839996..3a0d4811dc4 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencilsmooth
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list