[Bf-blender-cvs] [69240a66e0a] master: GP: Fix mirror modifier with parent object
Antonioya
noreply at git.blender.org
Sun Jan 20 19:20:25 CET 2019
Commit: 69240a66e0a9914b8bfafb7a401c43cc757ad9ae
Author: Antonioya
Date: Sun Jan 20 17:57:13 2019 +0100
Branches: master
https://developer.blender.org/rB69240a66e0a9914b8bfafb7a401c43cc757ad9ae
GP: Fix mirror modifier with parent object
Still problems when local rotation.
Some cleanup done.
===================================================================
M source/blender/gpencil_modifiers/intern/MOD_gpencilmirror.c
===================================================================
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilmirror.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilmirror.c
index 52de1529b72..00ffabe3c36 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencilmirror.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilmirror.c
@@ -84,24 +84,26 @@ static void update_position(Object *ob, MirrorGpencilModifierData *mmd, bGPDstro
clear[axis] = 1.0f;
float ob_origin[3];
- float mirror_origin[3];
float pt_origin[3];
- copy_v3_v3(ob_origin, ob->loc);
+ if (mmd->object) {
+ float inv_mat[4][4];
+
+ invert_m4_m4(inv_mat, mmd->object->obmat);
+ mul_v3_m4v3(ob_origin, inv_mat, ob->obmat[3]);
+ }
+ else {
+ copy_v3_v3(ob_origin, ob->obmat[3]);
+ }
+
/* only works with current axis */
mul_v3_v3(ob_origin, clear);
- zero_v3(mirror_origin);
- if (mmd->object) {
- mul_v3_v3v3(mirror_origin, mmd->object->loc, clear);
- }
+ mul_v3_v3fl(pt_origin, ob_origin, -2.0f);
- /* clear other axis */
for (i = 0, pt = gps->points; i < gps->totpoints; i++, pt++) {
mul_v3_v3(&pt->x, factor);
if (mmd->object) {
- sub_v3_v3v3(pt_origin, ob_origin, mirror_origin);
- mul_v3_fl(pt_origin, -2.0f);
add_v3_v3(&pt->x, pt_origin);
}
}
More information about the Bf-blender-cvs
mailing list