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>2019-02-07 17:07:09 +0300
committerBastien Montagne <montagne29@wanadoo.fr>2019-02-07 17:08:45 +0300
commit9c7fb7e2ca052ca18fe24b69c040832882c00535 (patch)
tree1046c1f5c584532dd395ec7d1b432e9dff478b99 /io_scene_obj
parent829154dd125ef84c59ebfad92031368853e18b7f (diff)
Fix T61254: Import OBJ error:
We cannot clear a face's vnors/uvs indices in case none are defined in the OBJ file, we need indices for all loops when defining them in Blender's mesh...
Diffstat (limited to 'io_scene_obj')
-rw-r--r--io_scene_obj/__init__.py2
-rw-r--r--io_scene_obj/import_obj.py13
2 files changed, 4 insertions, 11 deletions
diff --git a/io_scene_obj/__init__.py b/io_scene_obj/__init__.py
index 1ae4a8bf..e52035e8 100644
--- a/io_scene_obj/__init__.py
+++ b/io_scene_obj/__init__.py
@@ -21,7 +21,7 @@
bl_info = {
"name": "Wavefront OBJ format",
"author": "Campbell Barton, Bastien Montagne",
- "version": (3, 5, 8),
+ "version": (3, 5, 9),
"blender": (2, 80, 0),
"location": "File > Import-Export",
"description": "Import-Export OBJ, Import OBJ mesh, UV's, materials and textures",
diff --git a/io_scene_obj/import_obj.py b/io_scene_obj/import_obj.py
index 34d97146..d31d290d 100644
--- a/io_scene_obj/import_obj.py
+++ b/io_scene_obj/import_obj.py
@@ -678,6 +678,9 @@ def create_mesh(new_objects,
if verts_tex and me.polygons:
me.uv_layers.new()
loops_uv = tuple(uv for (_, _, face_vert_tex_indices, _, _, _, _) in faces for face_uvidx in face_vert_tex_indices for uv in verts_tex[face_uvidx])
+ print(sum((len(face_vert_tex_indices) for (face_vert_loc_indices, _, face_vert_tex_indices, _, _, _, _) in faces)))
+ print(sum((len(face_vert_loc_indices) for (face_vert_loc_indices, _, face_vert_tex_indices, _, _, _, _) in faces)))
+ print(len(loops_uv), len(me.uv_layers[0].data))
me.uv_layers[0].data.foreach_set("uv", loops_uv)
use_edges = use_edges and bool(edges)
@@ -947,7 +950,6 @@ def load(context,
face_vert_loc_indices = None
face_vert_nor_indices = None
face_vert_tex_indices = None
- face_vert_nor_valid = face_vert_tex_valid = False
verts_loc_len = verts_nor_len = verts_tex_len = 0
face_items_usage = set()
face_invalid_blenpoly = None
@@ -1043,25 +1045,16 @@ def load(context,
if len(obj_vert) > 1 and obj_vert[1] and obj_vert[1] != b'0':
idx = int(obj_vert[1])
face_vert_tex_indices.append((idx + verts_tex_len) if (idx < 1) else idx - 1)
- face_vert_tex_valid = True
else:
face_vert_tex_indices.append(0)
if len(obj_vert) > 2 and obj_vert[2] and obj_vert[2] != b'0':
idx = int(obj_vert[2])
face_vert_nor_indices.append((idx + verts_nor_len) if (idx < 1) else idx - 1)
- face_vert_nor_valid = True
else:
face_vert_nor_indices.append(0)
if not context_multi_line:
- # Clear nor/tex indices in case we had none defined for this face.
- if not face_vert_nor_valid:
- face_vert_nor_indices.clear()
- if not face_vert_tex_valid:
- face_vert_tex_indices.clear()
- face_vert_nor_valid = face_vert_tex_valid = False
-
# Means we have finished a face, we have to do final check if ngon is suspected to be blender-invalid...
if face_invalid_blenpoly:
face_invalid_blenpoly.clear()