[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [4680] trunk/py/scripts/addons/ io_scene_fbx/parse_fbx.py: update parser to support binary arrays

Campbell Barton ideasman42 at gmail.com
Mon Aug 19 13:41:55 CEST 2013


Revision: 4680
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=4680
Author:   campbellbarton
Date:     2013-08-19 11:41:55 +0000 (Mon, 19 Aug 2013)
Log Message:
-----------
update parser to support binary arrays

Modified Paths:
--------------
    trunk/py/scripts/addons/io_scene_fbx/parse_fbx.py

Modified: trunk/py/scripts/addons/io_scene_fbx/parse_fbx.py
===================================================================
--- trunk/py/scripts/addons/io_scene_fbx/parse_fbx.py	2013-08-18 15:16:51 UTC (rev 4679)
+++ trunk/py/scripts/addons/io_scene_fbx/parse_fbx.py	2013-08-19 11:41:55 UTC (rev 4680)
@@ -79,19 +79,19 @@
 
 
 read_data_dict = {
-    b'Y'[0]: lambda read, size: unpack(b'<h', read(2))[0],  # 16 bit int
-    b'C'[0]: lambda read, size: unpack(b'?', read(1))[0],   # 1 bit bool (yes/no)
-    b'I'[0]: lambda read, size: unpack(b'<i', read(4))[0],  # 32 bit int
-    b'F'[0]: lambda read, size: unpack(b'<f', read(4))[0],  # 32 bit float
-    b'D'[0]: lambda read, size: unpack(b'<d', read(8))[0],  # 64 bit float
-    b'L'[0]: lambda read, size: unpack(b'<q', read(8))[0],  # 64 bit int
-    b'R'[0]: lambda read, size: read(read_uint(read)),      # binary data
-    b'S'[0]: lambda read, size: read(read_uint(read)),      # string data
-    b'f'[0]: lambda read, size: unpack_array(read, 'f', 4, False),  # array (float)
-    b'i'[0]: lambda read, size: unpack_array(read, 'i', 4, True),   # array (int)
-    b'd'[0]: lambda read, size: unpack_array(read, 'd', 8, False),  # array (double)
-    b'l'[0]: lambda read, size: unpack_array(read, 'q', 8, True),   # array (long)
-    b'b'[0]: lambda read, size: read(size),  # unknown
+    b'Y'[0]: lambda read: unpack(b'<h', read(2))[0],  # 16 bit int
+    b'C'[0]: lambda read: unpack(b'?', read(1))[0],   # 1 bit bool (yes/no)
+    b'I'[0]: lambda read: unpack(b'<i', read(4))[0],  # 32 bit int
+    b'F'[0]: lambda read: unpack(b'<f', read(4))[0],  # 32 bit float
+    b'D'[0]: lambda read: unpack(b'<d', read(8))[0],  # 64 bit float
+    b'L'[0]: lambda read: unpack(b'<q', read(8))[0],  # 64 bit int
+    b'R'[0]: lambda read: read(read_uint(read)),      # binary data
+    b'S'[0]: lambda read: read(read_uint(read)),      # string data
+    b'f'[0]: lambda read: unpack_array(read, 'f', 4, False),  # array (float)
+    b'i'[0]: lambda read: unpack_array(read, 'i', 4, True),   # array (int)
+    b'd'[0]: lambda read: unpack_array(read, 'd', 8, False),  # array (double)
+    b'l'[0]: lambda read: unpack_array(read, 'q', 8, True),   # array (long)
+    b'b'[0]: lambda read: unpack_array(read, 'b', 1, False),  # bool array
     }
 
 
@@ -113,7 +113,7 @@
 
     for i in range(prop_count):
         data_type = read(1)[0]
-        elem_props_data[i] = read_data_dict[data_type](read, prop_length)
+        elem_props_data[i] = read_data_dict[data_type](read)
         elem_props_type[i] = data_type
 
     if tell() < end_offset:
@@ -183,4 +183,5 @@
 INT32_ARRAY = b'i'[0],
 FLOAT64_ARRAY = b'd'[0],
 INT64_ARRAY = b'l'[0],
+BOOL_ARRAY = b'b'[0],
 ))



More information about the Bf-extensions-cvs mailing list