Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntonioya <blendergit@gmail.com>2019-01-20 19:57:13 +0300
committerAntonioya <blendergit@gmail.com>2019-01-20 21:20:09 +0300
commit69240a66e0a9914b8bfafb7a401c43cc757ad9ae (patch)
treec766527b5557afd5d269175cadeabc0f5204e4eb /source/blender/gpencil_modifiers/intern/MOD_gpencilmirror.c
parent482c4d099ae88bea018712b92b2990617ef006f8 (diff)
GP: Fix mirror modifier with parent object
Still problems when local rotation. Some cleanup done.
Diffstat (limited to 'source/blender/gpencil_modifiers/intern/MOD_gpencilmirror.c')
-rw-r--r--source/blender/gpencil_modifiers/intern/MOD_gpencilmirror.c20
1 files changed, 11 insertions, 9 deletions
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);
}
}