[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [4662] trunk/py/scripts/addons/ io_scene_fbx/import_fbx.py: support for loading meshes without vertices/ faces
Campbell Barton
ideasman42 at gmail.com
Fri Aug 9 10:08:31 CEST 2013
Revision: 4662
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=4662
Author: campbellbarton
Date: 2013-08-09 08:08:30 +0000 (Fri, 09 Aug 2013)
Log Message:
-----------
support for loading meshes without vertices/faces
Modified Paths:
--------------
trunk/py/scripts/addons/io_scene_fbx/import_fbx.py
Modified: trunk/py/scripts/addons/io_scene_fbx/import_fbx.py
===================================================================
--- trunk/py/scripts/addons/io_scene_fbx/import_fbx.py 2013-08-09 07:51:37 UTC (rev 4661)
+++ trunk/py/scripts/addons/io_scene_fbx/import_fbx.py 2013-08-09 08:08:30 UTC (rev 4662)
@@ -262,33 +262,37 @@
# TODO
# fbx_edges = elem_prop_first(elem_find_first(fbx_obj, b'Edges'))
+ if fbx_verts is None:
+ fbx_verts = ()
+ if fbx_polys is None:
+ fbx_polys = ()
+
mesh = bpy.data.meshes.new(name=elem_name_utf8)
mesh.vertices.add(len(fbx_verts) // 3)
mesh.vertices.foreach_set("co", fbx_verts)
- mesh.loops.add(len(fbx_polys))
+ if fbx_polys:
+ mesh.loops.add(len(fbx_polys))
+ poly_loop_starts = []
+ poly_loop_totals = []
+ poly_loop_prev = 0
+ for i, l in enumerate(mesh.loops):
+ index = fbx_polys[i]
+ if index < 0:
+ poly_loop_starts.append(poly_loop_prev)
+ poly_loop_totals.append((i - poly_loop_prev) + 1)
+ poly_loop_prev = i + 1
+ index = -(index + 1)
+ l.vertex_index = index
+ poly_loop_starts.append(poly_loop_prev)
+ poly_loop_totals.append((i - poly_loop_prev) + 1)
- #poly_loops = [] # pairs (loop_start, loop_total)
- poly_loop_starts = []
- poly_loop_totals = []
- poly_loop_prev = 0
- for i, l in enumerate(mesh.loops):
- index = fbx_polys[i]
- if index < 0:
- poly_loop_starts.append(poly_loop_prev)
- poly_loop_totals.append((i - poly_loop_prev) + 1)
- poly_loop_prev = i + 1
- index = -(index + 1)
- l.vertex_index = index
- poly_loop_starts.append(poly_loop_prev)
- poly_loop_totals.append((i - poly_loop_prev) + 1)
+ mesh.polygons.add(len(poly_loop_starts))
+ mesh.polygons.foreach_set("loop_start", poly_loop_starts)
+ mesh.polygons.foreach_set("loop_total", poly_loop_totals)
- mesh.polygons.add(len(poly_loop_starts))
- mesh.polygons.foreach_set("loop_start", poly_loop_starts)
- mesh.polygons.foreach_set("loop_total", poly_loop_totals)
+ blen_read_geom_uv(fbx_obj, mesh)
- blen_read_geom_uv(fbx_obj, mesh)
-
mesh.validate()
mesh.calc_normals()
@@ -612,7 +616,7 @@
for fbx_lnk, fbx_lnk_item, fbx_lnk_type in connection_filter_reverse(fbx_uuid, None):
if not isinstance(fbx_lnk_item, bpy.types.ID):
continue
- if isinstance(fbx_lnk_item, bpy.types.Material):
+ if isinstance(fbx_lnk_item, (bpy.types.Material, bpy.types.Image)):
continue
#print(fbx_lnk, fbx_lnk_item, fbx_lnk_type)
More information about the Bf-extensions-cvs
mailing list