[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [4663] trunk/py/scripts/addons/ io_scene_fbx/import_fbx.py: load objects before linking materials ( minor change)

Campbell Barton ideasman42 at gmail.com
Fri Aug 9 10:13:49 CEST 2013


Revision: 4663
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=4663
Author:   campbellbarton
Date:     2013-08-09 08:13:49 +0000 (Fri, 09 Aug 2013)
Log Message:
-----------
load objects before linking materials (minor change)

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 08:08:30 UTC (rev 4662)
+++ trunk/py/scripts/addons/io_scene_fbx/import_fbx.py	2013-08-09 08:13:49 UTC (rev 4663)
@@ -590,25 +590,9 @@
         return connection_filter_ex(fbx_uuid, fbx_id, fbx_connection_map_reverse)
 
     def _():
-        # link Material's to Geometry (via Model's)
+        # Link objects, keep first, this also creates objects
         for fbx_uuid, fbx_item in fbx_table_nodes.items():
             fbx_obj, blen_data = fbx_item
-            if fbx_obj.id != b'Geometry':
-                continue
-
-            mesh = fbx_table_nodes[fbx_uuid][1]
-            for fbx_lnk, fbx_lnk_item, fbx_lnk_type in connection_filter_forward(fbx_uuid, b'Model'):
-                # link materials
-                fbx_lnk_uuid = elem_uuid(fbx_lnk)
-                for fbx_lnk_material, material, fbx_lnk_material_type in connection_filter_reverse(fbx_lnk_uuid, b'Material'):
-                    mesh.materials.append(material)
-    _(); del _
-
-
-    def _():
-        # Link objects
-        for fbx_uuid, fbx_item in fbx_table_nodes.items():
-            fbx_obj, blen_data = fbx_item
             if fbx_obj.id != b'Model':
                 continue
 
@@ -619,18 +603,29 @@
                 if isinstance(fbx_lnk_item, (bpy.types.Material, bpy.types.Image)):
                     continue
 
-                #print(fbx_lnk, fbx_lnk_item, fbx_lnk_type)
-
                 # create when linking since we need object data
                 obj = blen_read_object(fbx_obj, fbx_lnk_item, global_matrix)
+                assert(fbx_item[1] is None)
+                fbx_item[1] = obj
 
-                # TODO, we dont need it yet
-                # fbx_lnk_item[1] = obj
-
                 # instance in scene
                 obj_base = scene.objects.link(obj)
                 obj_base.select = True
+    _(); del _
 
+    def _():
+        # link Material's to Geometry (via Model's)
+        for fbx_uuid, fbx_item in fbx_table_nodes.items():
+            fbx_obj, blen_data = fbx_item
+            if fbx_obj.id != b'Geometry':
+                continue
+
+            mesh = fbx_table_nodes[fbx_uuid][1]
+            for fbx_lnk, fbx_lnk_item, fbx_lnk_type in connection_filter_forward(fbx_uuid, b'Model'):
+                # link materials
+                fbx_lnk_uuid = elem_uuid(fbx_lnk)
+                for fbx_lnk_material, material, fbx_lnk_material_type in connection_filter_reverse(fbx_lnk_uuid, b'Material'):
+                    mesh.materials.append(material)
     _(); del _
 
     def _():



More information about the Bf-extensions-cvs mailing list