diff options
author | Campbell Barton <ideasman42@gmail.com> | 2011-05-26 12:45:31 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2011-05-26 12:45:31 +0400 |
commit | 591821c92254b03a64113c077e258d50ff20cca5 (patch) | |
tree | 015c5371810437ff4e23443a994a67dd0bab9523 /io_scene_3ds/__init__.py | |
parent | de95cf99c641fed6c5aa7cb394ae71d4206b1638 (diff) |
added axis settings to 3ds import/export
Diffstat (limited to 'io_scene_3ds/__init__.py')
-rw-r--r-- | io_scene_3ds/__init__.py | 67 |
1 files changed, 63 insertions, 4 deletions
diff --git a/io_scene_3ds/__init__.py b/io_scene_3ds/__init__.py index 4915512a..8ade71c1 100644 --- a/io_scene_3ds/__init__.py +++ b/io_scene_3ds/__init__.py @@ -42,8 +42,8 @@ if "bpy" in locals(): import bpy -from bpy.props import StringProperty, FloatProperty, BoolProperty -from bpy_extras.io_utils import ImportHelper, ExportHelper +from bpy.props import StringProperty, FloatProperty, BoolProperty, EnumProperty +from bpy_extras.io_utils import ImportHelper, ExportHelper, axis_conversion class Import3DS(bpy.types.Operator, ImportHelper): @@ -58,9 +58,39 @@ class Import3DS(bpy.types.Operator, ImportHelper): use_image_search = BoolProperty(name="Image Search", description="Search subdirectories for any assosiated images (Warning, may be slow)", default=True) use_apply_transform = BoolProperty(name="Apply Transform", description="Workaround for object transformations importing incorrectly", default=True) + global_axis_forward = EnumProperty( + name="Forward", + items=(('X', "X Forward", ""), + ('Y', "Y Forward", ""), + ('Z', "Z Forward", ""), + ('-X', "-X Forward", ""), + ('-Y', "-Y Forward", ""), + ('-Z', "-Z Forward", ""), + ), + default='Y', + ) + + global_axis_up = EnumProperty( + name="Up", + items=(('X', "X Up", ""), + ('Y', "Y Up", ""), + ('Z', "Z Up", ""), + ('-X', "-X Up", ""), + ('-Y', "-Y Up", ""), + ('-Z', "-Z Up", ""), + ), + default='Z', + ) + def execute(self, context): from . import import_3ds - return import_3ds.load(self, context, **self.as_keywords(ignore=("filter_glob",))) + + keywords = self.as_keywords(ignore=("global_axis_forward", "global_axis_up", "filter_glob")) + + global_matrix = axis_conversion(from_forward=self.global_axis_forward, from_up=self.global_axis_up).to_4x4() + keywords["global_matrix"] = global_matrix + + return import_3ds.load(self, context, **keywords) class Export3DS(bpy.types.Operator, ExportHelper): @@ -73,9 +103,38 @@ class Export3DS(bpy.types.Operator, ExportHelper): use_selection = BoolProperty(name="Selection Only", description="Export selected objects only", default=False) + global_axis_forward = EnumProperty( + name="Forward", + items=(('X', "X Forward", ""), + ('Y', "Y Forward", ""), + ('Z', "Z Forward", ""), + ('-X', "-X Forward", ""), + ('-Y', "-Y Forward", ""), + ('-Z', "-Z Forward", ""), + ), + default='Y', + ) + + global_axis_up = EnumProperty( + name="Up", + items=(('X', "X Up", ""), + ('Y', "Y Up", ""), + ('Z', "Z Up", ""), + ('-X', "-X Up", ""), + ('-Y', "-Y Up", ""), + ('-Z', "-Z Up", ""), + ), + default='Z', + ) + def execute(self, context): from . import export_3ds - return export_3ds.save(self, context, **self.as_keywords(ignore=("check_existing", "filter_glob"))) + + keywords = self.as_keywords(ignore=("global_axis_forward", "global_axis_up", "filter_glob", "check_existing")) + global_matrix = axis_conversion(to_forward=self.global_axis_forward, to_up=self.global_axis_up).to_4x4() + keywords["global_matrix"] = global_matrix + + return export_3ds.save(self, context, **keywords) # Add to a menu |