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:
Diffstat (limited to 'mesh_tissue/tessellate_numpy.py')
-rw-r--r--mesh_tissue/tessellate_numpy.py43
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!",