[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [4664] trunk/py/scripts/addons/ io_scene_fbx/import_fbx.py: add support for empty objects

Campbell Barton ideasman42 at gmail.com
Fri Aug 9 10:36:43 CEST 2013


Revision: 4664
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=4664
Author:   campbellbarton
Date:     2013-08-09 08:36:43 +0000 (Fri, 09 Aug 2013)
Log Message:
-----------
add support for empty objects

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:13:49 UTC (rev 4663)
+++ trunk/py/scripts/addons/io_scene_fbx/import_fbx.py	2013-08-09 08:36:43 UTC (rev 4664)
@@ -574,7 +574,6 @@
                 fbx_item[1] = blen_read_light(fbx_obj)
     _(); del _
 
-
     # ----
     # Connections
     def connection_filter_ex(fbx_uuid, fbx_id, dct):
@@ -596,13 +595,24 @@
             if fbx_obj.id != b'Model':
                 continue
 
-            # mesh = fbx_table_nodes[fbx_uuid][1]
-            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, bpy.types.Image)):
-                    continue
+            # Create empty object or search for object data
+            if fbx_obj.props[2] == b'Null':
+                fbx_lnk_item = None
+                ok = True
+            else:
+                ok = False
+                for fbx_lnk, fbx_lnk_item, fbx_lnk_type in connection_filter_reverse(fbx_uuid, None):
+                    if fbx_lnk_type.props[0] != b'OO':
+                        continue
+                    if not isinstance(fbx_lnk_item, bpy.types.ID):
+                        continue
+                    if isinstance(fbx_lnk_item, (bpy.types.Material, bpy.types.Image)):
+                        continue
+                    ok = True
+                    break
 
+            if ok:
+                print(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)
@@ -614,6 +624,18 @@
     _(); del _
 
     def _():
+        # 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'Model':
+                continue
+            if fbx_item[1] is None:
+                continue  # no object loaded.. ignore
+            
+
+    _(); 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



More information about the Bf-extensions-cvs mailing list