[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [3510] trunk/py/scripts/addons/ io_scene_obj/import_obj.py: This should fix [#31801] "OBJ importer doesn' t import smoothing groups as sharp edges" reported by Tom Penn.
Philipp Oeser
info at graphics-engineer.com
Tue Jun 19 18:41:32 CEST 2012
Revision: 3510
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=3510
Author: lichtwerk
Date: 2012-06-19 16:41:25 +0000 (Tue, 19 Jun 2012)
Log Message:
-----------
This should fix [#31801] "OBJ importer doesn't import smoothing groups as sharp edges" reported by Tom Penn.
There was code to mark edges as sharp but it was disabled as being too slow. Found a quicker way using bmesh.
Reviewed by Campbell.
Modified Paths:
--------------
trunk/py/scripts/addons/io_scene_obj/import_obj.py
Modified: trunk/py/scripts/addons/io_scene_obj/import_obj.py
===================================================================
--- trunk/py/scripts/addons/io_scene_obj/import_obj.py 2012-06-19 13:21:28 UTC (rev 3509)
+++ trunk/py/scripts/addons/io_scene_obj/import_obj.py 2012-06-19 16:41:25 UTC (rev 3510)
@@ -644,6 +644,27 @@
def edges_match(e1, e2):
return (e1[0] == e2[0] and e1[1] == e2[1]) or (e1[0] == e2[1] and e1[1] == e2[0])
+ me.validate()
+ me.update(calc_edges=use_edges)
+
+ if unique_smooth_groups and sharp_edges:
+ import bmesh
+ bm = bmesh.new()
+ bm.from_mesh(me)
+ # to avoid slow iterator lookups later / indexing verts is slow in bmesh
+ bm_verts = bm.verts[:]
+
+ for sharp_edge in sharp_edges.keys():
+ vert1 = bm_verts[sharp_edge[0]]
+ vert2 = bm_verts[sharp_edge[1]]
+ if vert1 != vert2:
+ edge = bm.edges.get((vert1, vert2))
+ if edge is not None:
+ me.edges[edge.index].use_edge_sharp = True
+
+ bm.free()
+ del bm
+
# XXX slow
# if use_ngons and fgon_edges:
# for fgon_edge in fgon_edges.keys():
@@ -672,9 +693,6 @@
# me_edges[ed].flag |= SHARP
# del SHARP
- me.validate()
- me.update(calc_edges=use_edges)
-
ob = bpy.data.objects.new(me.name, me)
new_objects.append(ob)
More information about the Bf-extensions-cvs
mailing list