[Bf-blender-cvs] [f8e8f4ee0f8] blender-v2.81-release: GPencil: Calculate inverse matrix only once

Antonio Vazquez noreply at git.blender.org
Tue Oct 22 11:23:44 CEST 2019


Commit: f8e8f4ee0f8ad5384e6d4ee7c98e93852e100608
Author: Antonio Vazquez
Date:   Tue Oct 22 11:23:24 2019 +0200
Branches: blender-v2.81-release
https://developer.blender.org/rBf8e8f4ee0f8ad5384e6d4ee7c98e93852e100608

GPencil: Calculate inverse matrix only once

Instead to do it for each action, do it only in init.

===================================================================

M	source/blender/editors/gpencil/gpencil_brush.c

===================================================================

diff --git a/source/blender/editors/gpencil/gpencil_brush.c b/source/blender/editors/gpencil/gpencil_brush.c
index 741521f3140..4948df606ee 100644
--- a/source/blender/editors/gpencil/gpencil_brush.c
+++ b/source/blender/editors/gpencil/gpencil_brush.c
@@ -154,6 +154,9 @@ typedef struct tGP_BrushEditData {
   wmTimer *timer;
   bool timerTick; /* is this event from a timer */
 
+  /* Object invert matrix */
+  float inv_mat[4][4];
+
   RNG *rng;
 } tGP_BrushEditData;
 
@@ -637,9 +640,7 @@ static bool gp_brush_push_apply(tGP_BrushEditData *gso,
   mul_v3_v3fl(delta, gso->dvec, inf);
 
   /* apply */
-  float inv_mat[4][4];
-  invert_m4_m4(inv_mat, gso->object->obmat);
-  mul_mat3_m4_v3(inv_mat, delta); /* only rotation component */
+  mul_mat3_m4_v3(gso->inv_mat, delta); /* only rotation component */
   add_v3_v3(&pt->x, delta);
 
   /* compute lock axis */
@@ -1326,6 +1327,7 @@ static bool gpsculpt_brush_init(bContext *C, wmOperator *op)
   gso->scene = scene;
   gso->object = ob;
   if (ob) {
+    invert_m4_m4(gso->inv_mat, ob->obmat);
     gso->vrgroup = ob->actdef - 1;
     if (!BLI_findlink(&ob->defbase, gso->vrgroup)) {
       gso->vrgroup = -1;
@@ -1334,6 +1336,7 @@ static bool gpsculpt_brush_init(bContext *C, wmOperator *op)
     gso->is_transformed = BKE_gpencil_has_transform_modifiers(ob);
   }
   else {
+    unit_m4(gso->inv_mat);
     gso->vrgroup = -1;
     gso->is_transformed = false;
   }



More information about the Bf-blender-cvs mailing list