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

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2006-01-17 00:28:09 +0300
committerCampbell Barton <ideasman42@gmail.com>2006-01-17 00:28:09 +0300
commit2c9a4eb6efd552d7b42c733b570f0e96a1268256 (patch)
tree632385f9e2ca7f6182585d33433f5ac4ab96db68
parent56489f48308d0a47f63122ad2de7e54af20e14aa (diff)
Fix for useing with modifiers, dosent check for subsurf flag when copying vgroups.
Leaves all new objects selected. Faster and cleaner operation- naming etc.
-rw-r--r--release/scripts/Apply_def.py64
1 files changed, 35 insertions, 29 deletions
diff --git a/release/scripts/Apply_def.py b/release/scripts/Apply_def.py
index bdcae3744ec..f0e3c029b50 100644
--- a/release/scripts/Apply_def.py
+++ b/release/scripts/Apply_def.py
@@ -54,49 +54,55 @@ directly manipulate or export its data.
#
# ***** END GPL LICENCE BLOCK *****
+
import Blender
Blender.Window.EditMode(0)
+NAME_LENGTH = 19
+PREFIX = "_def"
+PREFIX_LENGTH = len(PREFIX)
+
ob_list = Blender.Object.GetSelected()
+
+for ob in ob_list:
+ ob.sel = 0
+
+used_names = [ob.name for ob in Blender.Object.Get()]
+used_names.extend(Blender.NMesh.GetNames())
+
+deformedList = []
for ob in ob_list:
if ob.getType() == "Mesh":
name = ob.getName()
- new_name = name + "_deformed"
+ new_name = "%s_def" % name[:NAME_LENGTH-PREFIX_LENGTH]
num = 0
new_mesh = Blender.NMesh.GetRawFromObject(name)
- mesh = Blender.NMesh.GetRaw(new_name)
- while mesh:
+ while new_name in used_names:
+ new_name = "%s_def.%.3i" % (name[:NAME_LENGTH-(PREFIX_LENGTH+PREFIX_LENGTH)], num)
num += 1
- new_name = name + "_deformed." + "%03i" % num
- mesh = Blender.NMesh.GetRaw(new_name)
+
+ used_names.append(new_name)
+
new_ob = Blender.NMesh.PutRaw(new_mesh, new_name)
new_ob.setMatrix(ob.getMatrix())
- try:
- new_ob = Blender.Object.Get(new_name)
- while 1:
- num += 1
- new_name = name + "_deformed." + "%03i" % num
- new_ob = Blender.Object.Get(new_name)
- except:
- pass
new_ob.setName(new_name)
-
+ deformedList.append(new_ob)
+
+ # Vert groups.
ob_mesh = ob.getData()
new_ob_mesh = new_ob.getData()
-
- # If SubSurf is off on the original, copy the vertex weight
- if not ob_mesh.getMode() & Blender.NMesh.Modes['SUBSURF']:
- for vgroupname in ob_mesh.getVertGroupNames():
+
+ for vgroupname in ob_mesh.getVertGroupNames():
+ new_ob_mesh.addVertGroup(vgroupname)
+ if len(ob_mesh.verts) == len(new_ob_mesh.verts):
vlist = ob_mesh.getVertsFromGroup(vgroupname, True)
- new_ob_mesh.addVertGroup(vgroupname)
- for vpair in vlist:
- new_ob_mesh.assignVertsToGroup(vgroupname, [vpair[0]], vpair[1], 'add')
- # If it's on, just add the vertex groups
- else:
- for vgroupname in ob_mesh.getVertGroupNames():
- new_ob_mesh.addVertGroup(vgroupname)
-
- new_ob_mesh.update()
-
-Blender.Window.EditMode(1)
+ try:
+ for vpair in vlist:
+ new_ob_mesh.assignVertsToGroup(vgroupname, [vpair[0]], vpair[1], 'add')
+ except:
+ pass
+
+for ob in deformedList:
+ ob.sel = 1
+deformedList[0].sel = 1 # Keep the same object active. \ No newline at end of file