diff options
author | Antonio Vazquez <blendergit@gmail.com> | 2019-09-21 17:13:23 +0300 |
---|---|---|
committer | Antonio Vazquez <blendergit@gmail.com> | 2019-09-21 17:13:30 +0300 |
commit | a5b15931c3860a32824f23344ec4d1d199700e97 (patch) | |
tree | ad015e5b97dd88caa69aa4d873f4c507c8e7a49e /source/blender/blenkernel | |
parent | ef45d1c8cd4313e3efb409ad5e5f8bfb29c826aa (diff) |
GPencil: Apply transformed rotation only if needed
If there aren't modifiers or they are not transform type, the rotation is not needed.
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/BKE_gpencil_modifier.h | 1 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/gpencil_modifier.c | 17 |
2 files changed, 18 insertions, 0 deletions
diff --git a/source/blender/blenkernel/BKE_gpencil_modifier.h b/source/blender/blenkernel/BKE_gpencil_modifier.h index ba2e1e85d23..eb2279c4f48 100644 --- a/source/blender/blenkernel/BKE_gpencil_modifier.h +++ b/source/blender/blenkernel/BKE_gpencil_modifier.h @@ -297,6 +297,7 @@ void BKE_gpencil_modifiers_foreachTexLink(struct Object *ob, bool BKE_gpencil_has_geometry_modifiers(struct Object *ob); bool BKE_gpencil_has_time_modifiers(struct Object *ob); +bool BKE_gpencil_has_transform_modifiers(struct Object *ob); void BKE_gpencil_stroke_modifiers(struct Depsgraph *depsgraph, struct Object *ob, diff --git a/source/blender/blenkernel/intern/gpencil_modifier.c b/source/blender/blenkernel/intern/gpencil_modifier.c index 1750a389788..fe087256d25 100644 --- a/source/blender/blenkernel/intern/gpencil_modifier.c +++ b/source/blender/blenkernel/intern/gpencil_modifier.c @@ -340,6 +340,23 @@ bool BKE_gpencil_has_time_modifiers(Object *ob) return false; } +/* Check if exist transform stroke modifiers (to rotate sculpt or edit). */ +bool BKE_gpencil_has_transform_modifiers(Object *ob) +{ + GpencilModifierData *md; + for (md = ob->greasepencil_modifiers.first; md; md = md->next) { + /* Only if enabled in edit mode. */ + if (!GPENCIL_MODIFIER_EDIT(md, true) && GPENCIL_MODIFIER_ACTIVE(md, false)) { + if ((md->type == eGpencilModifierType_Armature) || (md->type == eGpencilModifierType_Hook) || + (md->type == eGpencilModifierType_Lattice) || + (md->type == eGpencilModifierType_Offset)) { + return true; + } + } + } + return false; +} + /* apply stroke modifiers */ void BKE_gpencil_stroke_modifiers(Depsgraph *depsgraph, Object *ob, |