[Bf-blender-cvs] [955d3a517a9] temp-gpencil-bezier-stroke-type: GPencil: Fix merge errors
Antonio Vazquez
noreply at git.blender.org
Thu Jul 8 15:00:19 CEST 2021
Commit: 955d3a517a95fd9d87e9bdc0d2f50665caf4b1ec
Author: Antonio Vazquez
Date: Thu Jul 8 15:00:10 2021 +0200
Branches: temp-gpencil-bezier-stroke-type
https://developer.blender.org/rB955d3a517a95fd9d87e9bdc0d2f50665caf4b1ec
GPencil: Fix merge errors
Replace function names and fix a problem in Offset modifier.
===================================================================
M source/blender/gpencil_modifiers/intern/MOD_gpencillength.c
M source/blender/gpencil_modifiers/intern/MOD_gpenciloffset.c
M source/blender/gpencil_modifiers/intern/MOD_gpencilweight.c
===================================================================
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencillength.c b/source/blender/gpencil_modifiers/intern/MOD_gpencillength.c
index 726f436de8d..20209cdad81 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencillength.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencillength.c
@@ -134,12 +134,12 @@ static void bakeModifier(Main *UNUSED(bmain),
/* -------------------------------- */
/* Generic "generateStrokes" callback */
-static void deformStroke(GpencilModifierData *md,
- Depsgraph *UNUSED(depsgraph),
- Object *ob,
- bGPDlayer *gpl,
- bGPDframe *UNUSED(gpf),
- bGPDstroke *gps)
+static void deformPolyline(GpencilModifierData *md,
+ Depsgraph *UNUSED(depsgraph),
+ Object *ob,
+ bGPDlayer *gpl,
+ bGPDframe *UNUSED(gpf),
+ bGPDstroke *gps)
{
bGPdata *gpd = ob->data;
LengthGpencilModifierData *lmd = (LengthGpencilModifierData *)md;
@@ -207,7 +207,8 @@ GpencilModifierTypeInfo modifierType_Gpencil_Length = {
/* copyData */ copyData,
- /* deformStroke */ deformStroke,
+ /* 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 fc4972bfa6c..b45653a9361 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpenciloffset.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpenciloffset.c
@@ -103,9 +103,9 @@ static float prepare_matrix(OffsetGpencilModifierData *mmd, float weight, float
return (scale[0] + scale[1] + scale[2]) / 3.0f;
}
-/* Calculate random transform matrix. */
-static void prepare_random_matrix(
- GpencilModifierData *md, Object *ob, bGPDframe *gpf, bGPDstroke *gps, float mat_rnd[4][4])
+/* Calculate random seeds. */
+static void prepare_random_seeds(
+ GpencilModifierData *md, Object *ob, bGPDframe *gpf, bGPDstroke *gps, float rand[3][3])
{
OffsetGpencilModifierData *mmd = (OffsetGpencilModifierData *)md;
@@ -114,7 +114,6 @@ static void prepare_random_matrix(
seed += BLI_hash_string(ob->id.name + 2);
seed += BLI_hash_string(md->name);
- float rand[3][3];
float rand_offset = BLI_hash_int_01(seed);
/* Get stroke index for random offset. */
@@ -139,6 +138,7 @@ static void prepare_random_matrix(
}
}
}
+}
/* change stroke offsetness */
static void deformPolyline(GpencilModifierData *md,
@@ -155,9 +155,9 @@ static void deformPolyline(GpencilModifierData *md,
return;
}
- /* Calculate Random matrix. */
- float mat_rnd[4][4];
- prepare_random_matrix(md, ob, gpf, gps, mat_rnd);
+ /* Calculate Random seeds. */
+ float rand[3][3];
+ prepare_random_seeds(md, ob, gpf, gps, rand);
bGPdata *gpd = ob->data;
for (int i = 0; i < gps->totpoints; i++) {
@@ -213,9 +213,9 @@ static void deformBezier(GpencilModifierData *md,
return;
}
- /* Calculate Random matrix. */
- float mat_rnd[4][4];
- prepare_random_matrix(md, ob, gpf, gps, mat_rnd);
+ /* Calculate Random seeds. */
+ float rand[3][3];
+ prepare_random_seeds(md, ob, gpf, gps, rand);
bGPdata *gpd = ob->data;
bGPDcurve *gpc = gps->editcurve;
@@ -231,6 +231,21 @@ static void deformBezier(GpencilModifierData *md,
if (weight < 0.0f) {
continue;
}
+
+ /* Calculate Random matrix. */
+ float mat_rnd[4][4];
+ float rnd_loc[3], rnd_rot[3], rnd_scale_weight[3];
+ float rnd_scale[3] = {1.0f, 1.0f, 1.0f};
+
+ mul_v3_v3fl(rnd_loc, rand[0], weight);
+ mul_v3_v3fl(rnd_rot, rand[1], weight);
+ mul_v3_v3fl(rnd_scale_weight, rand[2], weight);
+
+ mul_v3_v3v3(rnd_loc, mmd->rnd_offset, rnd_loc);
+ mul_v3_v3v3(rnd_rot, mmd->rnd_rot, rnd_rot);
+ madd_v3_v3v3(rnd_scale, mmd->rnd_scale, rnd_scale_weight);
+
+ loc_eul_size_to_mat4(mat_rnd, rnd_loc, rnd_rot, rnd_scale);
/* Apply randomness matrix. */
for (int j = 0; j < 3; j++) {
mul_m4_v3(mat_rnd, bezt->vec[j]);
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilweight.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilweight.c
index c7fe20edef7..bf9269582ae 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencilweight.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilweight.c
@@ -96,12 +96,12 @@ static float calc_point_weight_by_distance(Object *ob,
}
/* change stroke thickness */
-static void deformStroke(GpencilModifierData *md,
- Depsgraph *UNUSED(depsgraph),
- Object *ob,
- bGPDlayer *gpl,
- bGPDframe *UNUSED(gpf),
- bGPDstroke *gps)
+static void deformPolyline(GpencilModifierData *md,
+ Depsgraph *UNUSED(depsgraph),
+ Object *ob,
+ bGPDlayer *gpl,
+ bGPDframe *UNUSED(gpf),
+ bGPDstroke *gps)
{
WeightGpencilModifierData *mmd = (WeightGpencilModifierData *)md;
const int def_nr = BKE_object_defgroup_name_index(ob, mmd->vgname);
@@ -205,6 +205,18 @@ static void deformStroke(GpencilModifierData *md,
}
}
+/* Deform Bezier. */
+static void deformBezier(GpencilModifierData *md,
+ Depsgraph *depsgraph,
+ Object *ob,
+ bGPDlayer *gpl,
+ bGPDframe *gpf,
+ bGPDstroke *gps)
+{
+ /* Reuse deformPolyline. */
+ deformPolyline(md, depsgraph, ob, gpl, gpf, gps);
+}
+
static void bakeModifier(struct Main *UNUSED(bmain),
Depsgraph *depsgraph,
GpencilModifierData *md,
@@ -215,7 +227,7 @@ static void bakeModifier(struct Main *UNUSED(bmain),
LISTBASE_FOREACH (bGPDlayer *, gpl, &gpd->layers) {
LISTBASE_FOREACH (bGPDframe *, gpf, &gpl->frames) {
LISTBASE_FOREACH (bGPDstroke *, gps, &gpf->strokes) {
- deformStroke(md, depsgraph, ob, gpl, gpf, gps);
+ deformPolyline(md, depsgraph, ob, gpl, gpf, gps);
}
}
}
@@ -319,7 +331,8 @@ GpencilModifierTypeInfo modifierType_Gpencil_Weight = {
/* copyData */ copyData,
- /* deformStroke */ deformStroke,
+ /* deformPolyline */ deformPolyline,
+ /* deformBezier */ deformBezier,
/* generateStrokes */ NULL,
/* bakeModifier */ bakeModifier,
/* remapTime */ NULL,
More information about the Bf-blender-cvs
mailing list