Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Montagne <montagne29@wanadoo.fr>2014-06-09 14:15:18 +0400
committerBastien Montagne <montagne29@wanadoo.fr>2014-06-09 14:15:18 +0400
commit9948cd6025f29fad12eaf6d3b0e738dfb2b50d4a (patch)
tree7812dbf6efa610100fbe8d3e956b9b3d04d8620d
parentfcec7304a00de3b612c6a5435328fdfd753fecd3 (diff)
FBX io: add support for the 'visibility' option (though in Blender it's a bool value)...v2.71-rc1v2.71
Idea from karanikk (Kostas Karanikolas).
-rw-r--r--io_scene_fbx/export_fbx_bin.py1
-rw-r--r--io_scene_fbx/fbx_utils.py4
-rw-r--r--io_scene_fbx/import_fbx.py16
3 files changed, 21 insertions, 0 deletions
diff --git a/io_scene_fbx/export_fbx_bin.py b/io_scene_fbx/export_fbx_bin.py
index 1475f2e7..c902a667 100644
--- a/io_scene_fbx/export_fbx_bin.py
+++ b/io_scene_fbx/export_fbx_bin.py
@@ -1353,6 +1353,7 @@ def fbx_data_object_elements(root, ob_obj, scene_data):
elem_props_template_set(tmpl, props, "p_lcl_translation", b"Lcl Translation", loc)
elem_props_template_set(tmpl, props, "p_lcl_rotation", b"Lcl Rotation", rot)
elem_props_template_set(tmpl, props, "p_lcl_scaling", b"Lcl Scaling", scale)
+ elem_props_template_set(tmpl, props, "p_visibility", b"Visibility", float(not ob_obj.hide))
# Custom properties.
if scene_data.settings.use_custom_properties:
diff --git a/io_scene_fbx/fbx_utils.py b/io_scene_fbx/fbx_utils.py
index 641bf0b7..76496bf4 100644
--- a/io_scene_fbx/fbx_utils.py
+++ b/io_scene_fbx/fbx_utils.py
@@ -679,6 +679,10 @@ class ObjectWrapper(metaclass=MetaObjectWrapper):
return get_fbx_uuid_from_key(self.key)
fbx_uuid = property(get_fbx_uuid)
+ def get_hide(self):
+ return self.bdata.hide
+ hide = property(get_hide)
+
def get_parent(self):
if self._tag == 'OB':
return ObjectWrapper(self.bdata.parent)
diff --git a/io_scene_fbx/import_fbx.py b/io_scene_fbx/import_fbx.py
index e91636df..3d165cad 100644
--- a/io_scene_fbx/import_fbx.py
+++ b/io_scene_fbx/import_fbx.py
@@ -227,6 +227,21 @@ def elem_props_get_enum(elem, elem_prop_id, default=None):
return default
+def elem_props_get_visibility(elem, elem_prop_id, default=None):
+ elem_prop = elem_props_find_first(elem, elem_prop_id)
+ if elem_prop is not None:
+ assert(elem_prop.props[0] == elem_prop_id)
+ assert(elem_prop.props[1] == b'Visibility')
+ assert(elem_prop.props[2] == b'')
+ assert(elem_prop.props[3] in {b'A', b'A+', b'AU'})
+
+ # we could allow other number types
+ assert(elem_prop.props_type[4] == data_types.FLOAT64)
+
+ return elem_prop.props[4]
+ return default
+
+
# ----------------------------------------------------------------------------
# Blender
@@ -251,6 +266,7 @@ def blen_read_object(fbx_tmpl, fbx_obj, object_data):
# Misc Attributes
obj.color[0:3] = elem_props_get_color_rgb(fbx_props, b'Color', (0.8, 0.8, 0.8))
+ obj.hide = not bool(elem_props_get_visibility(fbx_props, b'Visibility', 1.0))
# ----
# Transformation