Skip to content
Snippets Groups Projects
Commit 2f35b08b authored by Bastien Montagne's avatar Bastien Montagne
Browse files

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.
parent e716a350
Branches
No related tags found
No related merge requests found
...@@ -435,7 +435,7 @@ def create_mesh(new_objects, ...@@ -435,7 +435,7 @@ def create_mesh(new_objects,
smooth_group_users = {context_smooth_group: {} for context_smooth_group in unique_smooth_groups.keys()} smooth_group_users = {context_smooth_group: {} for context_smooth_group in unique_smooth_groups.keys()}
context_smooth_group_old = -1 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 = [] edges = []
tot_loops = 0 tot_loops = 0
...@@ -508,6 +508,8 @@ def create_mesh(new_objects, ...@@ -508,6 +508,8 @@ def create_mesh(new_objects,
prev_vidx = face_vert_loc_indices[ngon[-1]] prev_vidx = face_vert_loc_indices[ngon[-1]]
for ngidx in ngon: for ngidx in ngon:
vidx = face_vert_loc_indices[ngidx] 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) edge_key = (prev_vidx, vidx) if (prev_vidx < vidx) else (vidx, prev_vidx)
prev_vidx = vidx prev_vidx = vidx
if edge_key in edge_users: if edge_key in edge_users:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment