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:
authorBastien Montagne <montagne29@wanadoo.fr>2015-02-18 20:05:16 +0300
committerBastien Montagne <montagne29@wanadoo.fr>2015-02-18 20:05:16 +0300
commit218a565e74375fad9c5dbdbf8871571775405565 (patch)
tree742c378d252a0ef62b46c1b53f20d0489782b636 /io_scene_obj
parentafdf7d17294a39b028b7f9db10be44499227f91a (diff)
OBJ importer: some more minor cleanup.
Note I tried to make 'face' tuple a namedtuple, but this makes things significantly slower here (about ten percents), don't think it's worth it.
Diffstat (limited to 'io_scene_obj')
-rw-r--r--io_scene_obj/import_obj.py23
1 files changed, 6 insertions, 17 deletions
diff --git a/io_scene_obj/import_obj.py b/io_scene_obj/import_obj.py
index 6b1ed74d..10c0ae14 100644
--- a/io_scene_obj/import_obj.py
+++ b/io_scene_obj/import_obj.py
@@ -384,16 +384,7 @@ def split_mesh(verts_loc, faces, unique_materials, filepath, SPLIT_OB_OR_GROUP):
if oldkey != key:
# Check the key has changed.
- try:
- verts_split, faces_split, unique_materials_split, vert_remap = face_split_dict[key]
- except KeyError:
- faces_split = []
- verts_split = []
- unique_materials_split = {}
- vert_remap = {}
-
- face_split_dict[key] = (verts_split, faces_split, unique_materials_split, vert_remap)
-
+ verts_split, faces_split, unique_materials_split, vert_remap = face_split_dict.setdefault(key, ([], [], {}, {}))
oldkey = key
face_vert_loc_indices = face[0]
@@ -414,8 +405,9 @@ def split_mesh(verts_loc, faces, unique_materials, filepath, SPLIT_OB_OR_GROUP):
faces_split.append(face)
- # remove one of the itemas and reorder
- return [(value[0], value[1], value[2], key_to_name(key)) for key, value in list(face_split_dict.items())]
+ # remove one of the items and reorder
+ return [(verts_split, faces_split, unique_materials_split, key_to_name(key))
+ for key, (verts_split, faces_split, unique_materials_split, _) in face_split_dict.items()]
def create_mesh(new_objects,
@@ -525,7 +517,7 @@ def create_mesh(new_objects,
me.polygons.foreach_set("loop_start", faces_loop_start)
me.polygons.foreach_set("loop_total", faces_loop_total)
- if verts_nor:
+ if verts_nor and me.loops:
# Note: we store 'temp' normals in loops, since validate() may alter final mesh,
# we can only set custom lnors *after* calling it.
me.create_normals_split()
@@ -985,10 +977,7 @@ def load(operator, context, filepath,
print('\tbuilding geometry...\n\tverts:%i faces:%i materials: %i smoothgroups:%i ...' %
(len(verts_loc), len(faces), len(unique_materials), len(unique_smooth_groups)))
# Split the mesh by objects/materials, may
- if use_split_objects or use_split_groups:
- SPLIT_OB_OR_GROUP = True
- else:
- SPLIT_OB_OR_GROUP = False
+ SPLIT_OB_OR_GROUP = bool(use_split_objects or use_split_groups)
for data in split_mesh(verts_loc, faces, unique_materials, filepath, SPLIT_OB_OR_GROUP):
verts_loc_split, faces_split, unique_materials_split, dataname = data