[Bf-extensions-cvs] [f4f552f] fbx_io_development: FBX: custom props
Campbell Barton
noreply at git.blender.org
Wed Jul 30 11:30:39 CEST 2014
Commit: f4f552fcd20ff0b531dc1f2f3855aafcf8978645
Author: Campbell Barton
Date: Wed Jul 30 19:26:41 2014 +1000
Branches: fbx_io_development
https://developer.blender.org/rBAf4f552fcd20ff0b531dc1f2f3855aafcf8978645
FBX: custom props
- No need to use nested LC's, replace with for loop
- replace lists with sets for __contains__ tests
===================================================================
M io_scene_fbx/import_fbx.py
===================================================================
diff --git a/io_scene_fbx/import_fbx.py b/io_scene_fbx/import_fbx.py
index a5c3298..8d3b9eb 100644
--- a/io_scene_fbx/import_fbx.py
+++ b/io_scene_fbx/import_fbx.py
@@ -290,22 +290,23 @@ def blen_read_custom_properties(fbx_obj, blen_obj, settings):
assert(fbx_prop.props[1] == b'KString')
assert(fbx_prop.props_type[4] == data_types.STRING)
items = fbx_prop.props[4].decode('utf-8')
- keyvaluelist = [(key.strip(), value.strip()) for key, value in [tuple(item.split('=', 1)) for item in items.split('\r\n') if len(item) > 0]]
- for prop_name, prop_value in keyvaluelist:
- blen_obj[prop_name] = prop_value
+ for item in items.split('\r\n'):
+ if item:
+ prop_name, prop_value = item.split('=', 1)
+ blen_obj[prop_name.strip()] = prop_value.strip()
else:
prop_name = fbx_prop.props[0].decode('utf-8')
prop_type = fbx_prop.props[1]
- if prop_type in [b'Vector', b'Vector3D', b'Color', b'ColorRGB']:
+ if prop_type in {b'Vector', b'Vector3D', b'Color', b'ColorRGB'}:
assert(fbx_prop.props_type[4:7] == bytes((data_types.FLOAT64,)) * 3)
blen_obj[prop_name] = fbx_prop.props[4:7]
- elif prop_type in [b'Vector4', b'ColorRGBA']:
+ elif prop_type in {b'Vector4', b'ColorRGBA'}:
assert(fbx_prop.props_type[4:8] == bytes((data_types.FLOAT64,)) * 4)
blen_obj[prop_name] = fbx_prop.props[4:8]
elif prop_type == b'Vector2D':
assert(fbx_prop.props_type[4:6] == bytes((data_types.FLOAT64,)) * 2)
blen_obj[prop_name] = fbx_prop.props[4:6]
- elif prop_type in [b'Integer', b'int']:
+ elif prop_type in {b'Integer', b'int'}:
assert(fbx_prop.props_type[4] == data_types.INT32)
blen_obj[prop_name] = fbx_prop.props[4]
elif prop_type == b'KString':
@@ -314,13 +315,13 @@ def blen_read_custom_properties(fbx_obj, blen_obj, settings):
elif prop_type == b'Number':
assert(fbx_prop.props_type[4] == data_types.FLOAT64)
blen_obj[prop_name] = fbx_prop.props[4]
- elif prop_type in [b'Float', b'float']:
+ elif prop_type in {b'Float', b'float'}:
assert(fbx_prop.props_type[4] == data_types.FLOAT32)
blen_obj[prop_name] = fbx_prop.props[4]
- elif prop_type in [b'Bool', b'bool']:
+ elif prop_type in {b'Bool', b'bool'}:
assert(fbx_prop.props_type[4] == data_types.INT32)
blen_obj[prop_name] = fbx_prop.props[4] != 0
- elif prop_type in [b'Enum', b'enum']:
+ elif prop_type in {b'Enum', b'enum'}:
assert(fbx_prop.props_type[4:6] == bytes((data_types.INT32, data_types.STRING)))
val = fbx_prop.props[4]
if settings.use_custom_props_enum_as_string:
More information about the Bf-extensions-cvs
mailing list