[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [4784] trunk/py/scripts/addons/ io_scene_obj/export_obj.py: reduce dict lookups for uv and normal export
Campbell Barton
ideasman42 at gmail.com
Sat Oct 5 05:12:01 CEST 2013
Revision: 4784
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=4784
Author: campbellbarton
Date: 2013-10-05 03:11:59 +0000 (Sat, 05 Oct 2013)
Log Message:
-----------
reduce dict lookups for uv and normal export
Modified Paths:
--------------
trunk/py/scripts/addons/io_scene_obj/export_obj.py
Modified: trunk/py/scripts/addons/io_scene_obj/export_obj.py
===================================================================
--- trunk/py/scripts/addons/io_scene_obj/export_obj.py 2013-10-03 09:57:39 UTC (rev 4783)
+++ trunk/py/scripts/addons/io_scene_obj/export_obj.py 2013-10-05 03:11:59 UTC (rev 4784)
@@ -477,41 +477,43 @@
# UV
if faceuv:
# in case removing some of these dont get defined.
- uv = uvkey = uv_dict = f_index = uv_index = uv_ls = uv_k = None
+ uv = f_index = uv_index = uv_key = uv_val = uv_ls = None
uv_face_mapping = [None] * len(face_index_pairs)
uv_dict = {}
+ uv_get = uv_dict.get
for f, f_index in face_index_pairs:
uv_ls = uv_face_mapping[f_index] = []
for uv_index, l_index in enumerate(f.loop_indices):
uv = uv_layer[l_index].uv
- uvkey = veckey2d(uv)
- if uvkey in uv_dict:
- uv_k = uv_dict[uvkey]
- else:
- uv_k = uv_dict[uvkey] = uv_unique_count
+ uv_key = veckey2d(uv)
+ uv_val = uv_get(uv_key)
+ if uv_val is None:
+ uv_val = uv_dict[uv_key] = uv_unique_count
fw('vt %.6f %.6f\n' % uv[:])
uv_unique_count += 1
- uv_ls.append(uv_k)
+ uv_ls.append(uv_val)
- del uv, uvkey, uv_dict, f_index, uv_index, uv_ls, uv_k
+ del uv_dict, uv, f_index, uv_index, uv_ls, uv_get, uv_key, uv_val
# Only need uv_unique_count and uv_face_mapping
# NORMAL, Smooth/Non smoothed.
if EXPORT_NORMALS:
+ no_key = no_val = None
normals_to_idx = {}
+ no_get = normals_to_idx.get
loops_to_normals = [0] * len(loops)
for f, f_index in face_index_pairs:
for l_idx in f.loop_indices:
- noKey = veckey3d(loops[l_idx].normal)
- if noKey in normals_to_idx:
- loops_to_normals[l_idx] = normals_to_idx[noKey]
- else:
- loops_to_normals[l_idx] = normals_to_idx[noKey] = no_unique_count
- fw('vn %.6f %.6f %.6f\n' % noKey)
+ no_key = veckey3d(loops[l_idx].normal)
+ no_val = no_get(no_key)
+ if no_val is None:
+ no_val = normals_to_idx[no_key] = no_unique_count
+ fw('vn %.6f %.6f %.6f\n' % no_key)
no_unique_count += 1
- del normals_to_idx
+ loops_to_normals[l_idx] = no_val
+ del normals_to_idx, no_get, no_key, no_val
else:
loops_to_normals = []
More information about the Bf-extensions-cvs
mailing list