diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2015-02-17 17:06:05 +0300 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2015-02-17 17:06:05 +0300 |
commit | 17a28df49c35da5670c2964f29f0768d650a1d0a (patch) | |
tree | 9413382ce0bcb60cee311d006ad07505e0ad45e5 /io_scene_fbx/fbx_utils.py | |
parent | 2f5c0c99b586fd3b5dae3d91de0985acded37026 (diff) |
Fix T43707: FBX 7.4 Binary Exporter replaces all meshes with the same name when working with linked libraries.
Now take libname (lib namespace) into account when generating ID's name or key...
Diffstat (limited to 'io_scene_fbx/fbx_utils.py')
-rw-r--r-- | io_scene_fbx/fbx_utils.py | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/io_scene_fbx/fbx_utils.py b/io_scene_fbx/fbx_utils.py index fffcc098..01a5520e 100644 --- a/io_scene_fbx/fbx_utils.py +++ b/io_scene_fbx/fbx_utils.py @@ -284,18 +284,24 @@ def get_key_from_fbx_uuid(uuid): # Blender-specific key generators +def get_bid_name(bid): + if bid.library is not None: + return "_L_".join((bid.name, bid.library.name)) + return bid.name + + def get_blenderID_key(bid): if isinstance(bid, Iterable): - return "|".join("B" + e.rna_type.name + "#" + e.name for e in bid) + return "|".join("B" + e.rna_type.name + "#" + get_bid_name(e) for e in bid) else: - return "B" + bid.rna_type.name + "#" + bid.name + return "B" + bid.rna_type.name + "#" + get_bid_name(bid) def get_blenderID_name(bid): if isinstance(bid, Iterable): - return "|".join(e.name for e in bid) + return "|".join(get_bid_name(e) for e in bid) else: - return bid.name + return get_bid_name(bid) def get_blender_empty_key(obj): |