[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