diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-05-16 16:01:17 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-05-16 17:43:14 +0300 |
commit | 901868a4b2fc6e70d9c74119d97c57de132859a3 (patch) | |
tree | 94f96b6fd5f8a1ec509c6551f504cad958c1688f /mesh_tissue/tessellate_numpy.py | |
parent | 2e5b7a4a044ab982af66def583ae16bb563a1357 (diff) |
Update for Depsgraph API changes
Addresses new behavior of object.to_mesh().
This is corresponding part for D4875.
Reviewers: brecht
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D4876
Diffstat (limited to 'mesh_tissue/tessellate_numpy.py')
-rw-r--r-- | mesh_tissue/tessellate_numpy.py | 43 |
1 files changed, 37 insertions, 6 deletions
diff --git a/mesh_tissue/tessellate_numpy.py b/mesh_tissue/tessellate_numpy.py index 07c4fc87..02464be7 100644 --- a/mesh_tissue/tessellate_numpy.py +++ b/mesh_tissue/tessellate_numpy.py @@ -77,8 +77,10 @@ def tassellate(ob0, ob1, offset, zscale, gen_modifiers, com_modifiers, mode, else: depsgraph = None + me0_owner = None if gen_modifiers: # Apply generator modifiers - me0 = ob0.evaluated_get(depsgraph).to_mesh() + me0_owner = ob0.evaluated_get(depsgraph) + me0 = me0_owner.to_mesh() else: me0 = ob0.data ob0.data = me0 @@ -95,8 +97,9 @@ def tassellate(ob0, ob1, offset, zscale, gen_modifiers, com_modifiers, mode, return 0 # Apply component modifiers + me1_owner = ob1.evaluated_get(depsgraph) if com_modifiers: - me1 = ob1.evaluated_get(depsgraph).to_mesh() + me1 = me1_owner.to_mesh() else: me1 = ob1.data @@ -410,6 +413,13 @@ def tassellate(ob0, ob1, offset, zscale, gen_modifiers, com_modifiers, mode, new_vertex_group_np[i], "ADD") ob0.data = old_me0 + + if me0_owner: + me0_owner.to_mesh_clear() + + if me1_owner: + me1_owner.to_mesh_clear() + return new_ob @@ -675,9 +685,12 @@ class tessellate(Operator): depsgraph = None try: polygons = 0 + me_temp_owner = None if self.gen_modifiers: - me_temp = ob0.evaluated_get(depsgraph).to_mesh() + me_temp_owner = ob0.evaluated_get(depsgraph) + me_temp = me_temp_owner.to_mesh() else: + me_temp_owner = None me_temp = ob0.data for p in me_temp.polygons: @@ -687,11 +700,18 @@ class tessellate(Operator): else: polygons += 1 + if me_temp_owner: + me_temp_owner.to_mesh_clear() + if self.com_modifiers: - me_temp = bpy.data.objects[self.component].evaluated_get(depsgraph).to_mesh() + me_temp_owner = bpy.data.objects[self.component].evaluated_get(depsgraph) + me_temp = me_temp_owner.to_mesh() else: + me_temp_owner = None me_temp = bpy.data.objects[self.component].data polygons *= len(me_temp.polygons) + if me_temp_owner: + me_temp_owner.to_mesh_clear() str_polygons = '{:0,.0f}'.format(polygons) if polygons > 200000: @@ -1239,9 +1259,12 @@ class settings_tessellate(Operator): # Count number of faces try: polygons = 0 + me_temp_owner = None if self.gen_modifiers: - me_temp = bpy.data.objects[self.generator].evaluated_get(depsgraph).to_mesh() + me_temp_owner = bpy.data.objects[self.generator].evaluated_get(depsgraph) + me_temp = me_temp_owner.to_mesh() else: + me_temp_owner = None me_temp = bpy.data.objects[self.generator].data for p in me_temp.polygons: @@ -1251,12 +1274,20 @@ class settings_tessellate(Operator): else: polygons += 1 + if me_temp_owner: + me_temp_owner.to_mesh_clear() + if self.com_modifiers: - me_temp = bpy.data.objects[self.component].evaluated_get(depsgraph).to_mesh() + me_temp_owner = bpy.data.objects[self.component].evaluated_get(depsgraph) + me_temp = me_temp_owner.to_mesh() else: + me_temp_owner = None me_temp = bpy.data.objects[self.component].data polygons *= len(me_temp.polygons) + if me_temp_owner: + me_temp_owner.to_mesh_clear() + str_polygons = '{:0,.0f}'.format(polygons) if polygons > 200000: col.label(text=str_polygons + " polygons will be created!", |