[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [16345] trunk/blender/release/scripts/ mesh_cleanup.py: cleanup mesh materials option was setting incorrect material indicies
Campbell Barton
ideasman42 at gmail.com
Wed Sep 3 05:24:01 CEST 2008
Revision: 16345
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16345
Author: campbellbarton
Date: 2008-09-03 05:24:01 +0200 (Wed, 03 Sep 2008)
Log Message:
-----------
cleanup mesh materials option was setting incorrect material indicies
Modified Paths:
--------------
trunk/blender/release/scripts/mesh_cleanup.py
Modified: trunk/blender/release/scripts/mesh_cleanup.py
===================================================================
--- trunk/blender/release/scripts/mesh_cleanup.py 2008-09-03 02:27:16 UTC (rev 16344)
+++ trunk/blender/release/scripts/mesh_cleanup.py 2008-09-03 03:24:01 UTC (rev 16345)
@@ -121,25 +121,29 @@
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=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 @@
if __name__ == '__main__':
- main()
+ main()
\ No newline at end of file
More information about the Bf-blender-cvs
mailing list