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

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPullusb <bernou.samuel@gmail.com>2021-04-15 00:31:00 +0300
committerPullusb <bernou.samuel@gmail.com>2021-04-15 00:31:00 +0300
commitfd6407c23f349aee616ca27d32b7a14770f2cc06 (patch)
tree18f1f8c582e3f7c2ee5616da0d31ff6cd892c10f /greasepencil_tools
parent1dbdb95ed93a8b96d12e42e17249f6e2cdd24619 (diff)
GPencil Tools: Fix box-deform with multi-user data
Box deforming a grease pencil that has multiple instances now works without throwing an error.
Diffstat (limited to 'greasepencil_tools')
-rw-r--r--greasepencil_tools/__init__.py2
-rw-r--r--greasepencil_tools/box_deform.py14
2 files changed, 15 insertions, 1 deletions
diff --git a/greasepencil_tools/__init__.py b/greasepencil_tools/__init__.py
index 66a9f611..494354d5 100644
--- a/greasepencil_tools/__init__.py
+++ b/greasepencil_tools/__init__.py
@@ -21,7 +21,7 @@ bl_info = {
"name": "Grease Pencil Tools",
"description": "Extra tools for Grease Pencil",
"author": "Samuel Bernou, Antonio Vazquez, Daniel Martinez Lara, Matias Mendiola",
-"version": (1, 4, 2),
+"version": (1, 4, 3),
"blender": (2, 91, 0),
"location": "Sidebar > Grease Pencil > Grease Pencil Tools",
"warning": "",
diff --git a/greasepencil_tools/box_deform.py b/greasepencil_tools/box_deform.py
index 92f171f6..0ac08987 100644
--- a/greasepencil_tools/box_deform.py
+++ b/greasepencil_tools/box_deform.py
@@ -262,8 +262,22 @@ def delete_cage(cage):
def apply_cage(gp_obj, cage):
mod = gp_obj.grease_pencil_modifiers.get('tmp_lattice')
+ multi_user = None
if mod:
+ if gp_obj.data.users > 1:
+ old = gp_obj.data
+ multi_user = old.name
+ other_user = [o for o in bpy.data.objects if o is not gp_obj and o.data is old]
+ gp_obj.data = gp_obj.data.copy()
+
bpy.ops.object.gpencil_modifier_apply(apply_as='DATA', modifier=mod.name)
+
+ if multi_user:
+ for o in other_user: # relink
+ o.data = gp_obj.data
+ bpy.data.grease_pencils.remove(old)
+ gp_obj.data.name = multi_user
+
else:
print('tmp_lattice modifier not found to apply...')