[Bf-extensions-cvs] [acc0eca] : Fix T44106: Obj importer broken.

Bastien Montagne noreply at git.blender.org
Tue Mar 17 16:09:29 CET 2015


Commit: acc0eca5ea2deeda43adba1dde62d062ff948e3f
Author: Bastien Montagne
Date:   Mon Mar 16 22:46:51 2015 +0100
Branches: 
https://developer.blender.org/rBAacc0eca5ea2deeda43adba1dde62d062ff948e3f

Fix T44106: Obj importer broken.

In fact, it's the OBJ file which is utterly broken (thousands of faces reusing the same vertex...).
I think 'breakage' comes actually from change in bmesh (raising error when trying to get
an edge with same vert in both items of the key), afaiks this is not different from
old code in current importer.

Anyway, working around this is easy and cheap, so...

To be backported in final 2.74.

===================================================================

M	io_scene_obj/import_obj.py

===================================================================

diff --git a/io_scene_obj/import_obj.py b/io_scene_obj/import_obj.py
index 9be826f..5054e63 100644
--- a/io_scene_obj/import_obj.py
+++ b/io_scene_obj/import_obj.py
@@ -435,7 +435,7 @@ def create_mesh(new_objects,
         smooth_group_users = {context_smooth_group: {} for context_smooth_group in unique_smooth_groups.keys()}
         context_smooth_group_old = -1
 
-    fgon_edges = set()  # Used for storing fgon keys whe we need to tesselate/untesselate them (ngons with hole).
+    fgon_edges = set()  # Used for storing fgon keys when we need to tesselate/untesselate them (ngons with hole).
     edges = []
     tot_loops = 0
 
@@ -508,6 +508,8 @@ def create_mesh(new_objects,
                     prev_vidx = face_vert_loc_indices[ngon[-1]]
                     for ngidx in ngon:
                         vidx = face_vert_loc_indices[ngidx]
+                        if vidx == prev_vidx:
+                            continue  # broken OBJ... Just skip.
                         edge_key = (prev_vidx, vidx) if (prev_vidx < vidx) else (vidx, prev_vidx)
                         prev_vidx = vidx
                         if edge_key in edge_users:



More information about the Bf-extensions-cvs mailing list