Skip to content
Snippets Groups Projects
Commit 34680d1f authored by Campbell Barton's avatar Campbell Barton
Browse files

fix for invalid axis being allowed on import/export

parent c406858e
No related branches found
No related tags found
No related merge requests found
......@@ -141,21 +141,21 @@ def write_armature(context,
# so we can write motion
class DecoratedBone(object):
__slots__ = (\
"name", # bone name, used as key in many places
"parent", # decorated bone parent, set in a later loop
"rest_bone", # blender armature bone
"pose_bone", # blender pose bone
"pose_mat", # blender pose matrix
"rest_arm_mat", # blender rest matrix (armature space)
"rest_local_mat", # blender rest batrix (local space)
"pose_imat", # pose_mat inverted
"rest_arm_imat", # rest_arm_mat inverted
"rest_local_imat", # rest_local_mat inverted
"prev_euler", # last used euler to preserve euler compability in between keyframes
"connected", # is the bone connected to the parent bone?
"rot_order",
"rot_order_str",
__slots__ = (
"name", # bone name, used as key in many places
"parent", # decorated bone parent, set in a later loop
"rest_bone", # blender armature bone
"pose_bone", # blender pose bone
"pose_mat", # blender pose matrix
"rest_arm_mat", # blender rest matrix (armature space)
"rest_local_mat", # blender rest batrix (local space)
"pose_imat", # pose_mat inverted
"rest_arm_imat", # rest_arm_mat inverted
"rest_local_imat", # rest_local_mat inverted
"prev_euler", # last used euler to preserve euler compability in between keyframes
"connected", # is the bone connected to the parent bone?
"rot_order",
"rot_order_str",
)
_eul_order_lookup = {
......
......@@ -43,7 +43,12 @@ if "bpy" in locals():
import bpy
from bpy.props import StringProperty, FloatProperty, BoolProperty, EnumProperty
from bpy_extras.io_utils import ImportHelper, ExportHelper, axis_conversion
from bpy_extras.io_utils import (ImportHelper,
ExportHelper,
axis_conversion,
axis_conversion_ensure,
)
class Import3DS(bpy.types.Operator, ImportHelper):
......@@ -82,6 +87,9 @@ class Import3DS(bpy.types.Operator, ImportHelper):
default='Z',
)
def check(self, context):
return axis_conversion_ensure(self, "axis_forward", "axis_up")
def execute(self, context):
from . import import_3ds
......@@ -127,6 +135,9 @@ class Export3DS(bpy.types.Operator, ExportHelper):
default='Z',
)
def check(self, context):
return axis_conversion_ensure(self, "axis_forward", "axis_up")
def execute(self, context):
from . import export_3ds
......
......@@ -41,7 +41,12 @@ if "bpy" in locals():
import bpy
from bpy.props import StringProperty, BoolProperty, FloatProperty, EnumProperty
from bpy_extras.io_utils import ExportHelper, path_reference_mode, axis_conversion
from bpy_extras.io_utils import (ExportHelper,
path_reference_mode,
axis_conversion,
axis_conversion_ensure,
)
class ExportFBX(bpy.types.Operator, ExportHelper):
......@@ -132,6 +137,9 @@ class ExportFBX(bpy.types.Operator, ExportHelper):
def check_extension(self):
return self.batch_mode == 'OFF'
def check(self, context):
return axis_conversion_ensure(self, "axis_forward", "axis_up")
def execute(self, context):
from mathutils import Matrix
if not self.filepath:
......
......@@ -53,6 +53,11 @@ class ExportMAP(bpy.types.Operator, ExportHelper):
filename_ext = ".map"
filter_glob = StringProperty(default="*.map", options={'HIDDEN'})
'''
def check(self, context):
return axis_conversion_ensure(self, "axis_forward", "axis_up")
'''
def execute(self, context):
# import math
# from mathutils import Matrix
......
......@@ -43,7 +43,13 @@ if "bpy" in locals():
import bpy
from bpy.props import BoolProperty, FloatProperty, StringProperty, EnumProperty
from bpy_extras.io_utils import ExportHelper, ImportHelper, path_reference_mode, axis_conversion
from bpy_extras.io_utils import (ExportHelper,
ImportHelper,
path_reference_mode,
axis_conversion,
axis_conversion_ensure,
)
class ImportOBJ(bpy.types.Operator, ImportHelper):
......@@ -101,6 +107,9 @@ class ImportOBJ(bpy.types.Operator, ImportHelper):
# fake prop, only disables split.
# keep_vertex_order = BoolProperty(name="Keep Vert Order", description="Keep vert and face order, disables split options, enable for morph targets", default= True)
def check(self, context):
return axis_conversion_ensure(self, "axis_forward", "axis_up")
def execute(self, context):
# print("Selected: " + context.active_object.name)
from . import import_obj
......@@ -213,6 +222,9 @@ class ExportOBJ(bpy.types.Operator, ExportHelper):
path_mode = path_reference_mode
def check(self, context):
return axis_conversion_ensure(self, "axis_forward", "axis_up")
def execute(self, context):
from . import export_obj
......
......@@ -41,7 +41,12 @@ if "bpy" in locals():
import bpy
from bpy.props import StringProperty, BoolProperty, EnumProperty
from bpy_extras.io_utils import ImportHelper, ExportHelper, axis_conversion, path_reference_mode
from bpy_extras.io_utils import (ImportHelper,
ExportHelper,
axis_conversion,
axis_conversion_ensure,
path_reference_mode,
)
class ImportX3D(bpy.types.Operator, ImportHelper):
......@@ -76,6 +81,9 @@ class ImportX3D(bpy.types.Operator, ImportHelper):
default='Y',
)
def check(self, context):
return axis_conversion_ensure(self, "axis_forward", "axis_up")
def execute(self, context):
from . import import_x3d
......@@ -128,6 +136,9 @@ class ExportX3D(bpy.types.Operator, ExportHelper):
path_mode = path_reference_mode
def check(self, context):
return axis_conversion_ensure(self, "axis_forward", "axis_up")
def execute(self, context):
from . import export_x3d
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment