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:
Diffstat (limited to 'release/scripts/mesh_cleanup.py')
-rw-r--r--release/scripts/mesh_cleanup.py38
1 files changed, 21 insertions, 17 deletions
diff --git a/release/scripts/mesh_cleanup.py b/release/scripts/mesh_cleanup.py
index 1eb3e3968b2..27adca335cb 100644
--- a/release/scripts/mesh_cleanup.py
+++ b/release/scripts/mesh_cleanup.py
@@ -1,13 +1,13 @@
#!BPY
"""
Name: 'Clean Meshes'
-Blender: 242
+Blender: 245
Group: 'Mesh'
Tooltip: 'Clean unused data from all selected mesh objects.'
"""
-__author__ = ["Campbell Barton"]
-__url__ = ("blender", "elysiun", "http://members.iinet.net.au/~cpbarton/ideasman/")
+__author__ = "Campbell Barton aka ideasman42"
+__url__ = ["www.blender.org", "blenderartists.org", "www.python.org"]
__version__ = "0.1"
__bpydoc__ = """\
Clean Meshes
@@ -121,25 +121,29 @@ def rem_unused_materials(me):
material_users= dict( [(i,0) for i in xrange(len_materials)] )
for f in me.faces:
+ f_mat = f.mat
# Make sure the face index isnt too big. this happens sometimes.
- if f.mat >= len_materials:
- f.mat=0
- material_users[f.mat] += 1
+ if f_mat >= len_materials:
+ f_mat = f.mat = 0
+ material_users[f_mat] += 1
- mat_idx_subtract= 0
- reindex_mapping= dict( [(i,0) for i in xrange(len_materials)] )
- i= len_materials
- while i:
- i-=1
-
+ # mat_idx_subtract= 0
+ # reindex_mapping= dict( [(i,0) for i in xrange(len_materials)] )
+
+ reindex_mapping_ls = range(len_materials)
+ for i in range(len_materials-1, -1, -1):
if material_users[i] == 0:
- mat_idx_subtract+=1
- reindex_mapping[i]= mat_idx_subtract
- materials.pop(i)
+ del reindex_mapping_ls[i]
+ del materials[i]
rem_materials+=1
+ reindex_mapping= {}
+
+ for i, mat in enumerate(reindex_mapping_ls):
+ reindex_mapping[mat] = i
+
for f in me.faces:
- f.mat= f.mat - reindex_mapping[f.mat]
+ f.mat= reindex_mapping[f.mat]
me.materials= materials
return rem_materials
@@ -449,4 +453,4 @@ def main():
if __name__ == '__main__':
- main()
+ main() \ No newline at end of file