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:
authorSergey Sharybin <sergey.vfx@gmail.com>2019-05-16 16:01:17 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2019-05-16 17:43:14 +0300
commit901868a4b2fc6e70d9c74119d97c57de132859a3 (patch)
tree94f96b6fd5f8a1ec509c6551f504cad958c1688f /mesh_tissue
parent2e5b7a4a044ab982af66def583ae16bb563a1357 (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')
-rw-r--r--mesh_tissue/lattice.py5
-rw-r--r--mesh_tissue/tessellate_numpy.py43
-rw-r--r--mesh_tissue/uv_to_mesh.py4
3 files changed, 43 insertions, 9 deletions
diff --git a/mesh_tissue/lattice.py b/mesh_tissue/lattice.py
index eb1269a3..2850c77a 100644
--- a/mesh_tissue/lattice.py
+++ b/mesh_tissue/lattice.py
@@ -319,9 +319,10 @@ class lattice_along_surface(Operator):
obj = o
o.select_set(False)
break
+ obj_eval = obj.evaluated_get(depsgraph)
try:
obj_dim = obj.dimensions
- obj_me = obj.evaluated_get(depsgraph).to_mesh()
+ obj_me = obj_eval.to_mesh()
except:
self.report({'ERROR'}, "The object to deform is not valid. Only "
"Mesh, Curve, Surface and Font objects are allowed.")
@@ -360,6 +361,8 @@ class lattice_along_surface(Operator):
max[2] = vert[2]
first = False
+ obj_eval.to_mesh_clear()
+
bb = max - min
lattice_loc = (max + min) / 2
bpy.ops.object.add(type='LATTICE', align='WORLD',
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!",
diff --git a/mesh_tissue/uv_to_mesh.py b/mesh_tissue/uv_to_mesh.py
index 8a69b4d3..bccee0ba 100644
--- a/mesh_tissue/uv_to_mesh.py
+++ b/mesh_tissue/uv_to_mesh.py
@@ -87,9 +87,9 @@ class uv_to_mesh(Operator):
if self.apply_modifiers:
depsgraph = context.evaluated_depsgraph_get()
- me0 = ob0.evaluated_get(depsgraph).to_mesh()
+ me0 = bpy.data.meshes.new_from_object(ob0.evaluated_get(depsgraph))
else:
- me0 = ob0.to_mesh()
+ me0 = bpy.data.new_from_meshed(ob0)
area = 0
verts = []