Changeset View
Changeset View
Standalone View
Standalone View
io_scene_x3d/__init__.py
| Show First 20 Lines • Show All 42 Lines • ▼ Show 20 Lines | from bpy.props import ( | ||||
| BoolProperty, | BoolProperty, | ||||
| EnumProperty, | EnumProperty, | ||||
| FloatProperty, | FloatProperty, | ||||
| StringProperty, | StringProperty, | ||||
| ) | ) | ||||
| from bpy_extras.io_utils import ( | from bpy_extras.io_utils import ( | ||||
| ImportHelper, | ImportHelper, | ||||
| ExportHelper, | ExportHelper, | ||||
| orientation_helper_factory, | orientation_helper, | ||||
| axis_conversion, | axis_conversion, | ||||
| path_reference_mode, | path_reference_mode, | ||||
| ) | ) | ||||
| IOX3DOrientationHelper = orientation_helper_factory("IOX3DOrientationHelper", axis_forward='Z', axis_up='Y') | @orientation_helper(axis_forward='Z', axis_up='Y') | ||||
| class ImportX3D(bpy.types.Operator, ImportHelper): | |||||
| class ImportX3D(bpy.types.Operator, ImportHelper, IOX3DOrientationHelper): | |||||
| """Import an X3D or VRML2 file""" | """Import an X3D or VRML2 file""" | ||||
| bl_idname = "import_scene.x3d" | bl_idname = "import_scene.x3d" | ||||
| bl_label = "Import X3D/VRML2" | bl_label = "Import X3D/VRML2" | ||||
| bl_options = {'PRESET', 'UNDO'} | bl_options = {'PRESET', 'UNDO'} | ||||
| filename_ext = ".x3d" | filename_ext = ".x3d" | ||||
| filter_glob = StringProperty(default="*.x3d;*.wrl", options={'HIDDEN'}) | filter_glob = StringProperty(default="*.x3d;*.wrl", options={'HIDDEN'}) | ||||
| def execute(self, context): | def execute(self, context): | ||||
| from . import import_x3d | from . import import_x3d | ||||
| keywords = self.as_keywords(ignore=("axis_forward", | keywords = self.as_keywords(ignore=("axis_forward", | ||||
| "axis_up", | "axis_up", | ||||
| "filter_glob", | "filter_glob", | ||||
| )) | )) | ||||
| global_matrix = axis_conversion(from_forward=self.axis_forward, | global_matrix = axis_conversion(from_forward=self.axis_forward, | ||||
| from_up=self.axis_up, | from_up=self.axis_up, | ||||
| ).to_4x4() | ).to_4x4() | ||||
| keywords["global_matrix"] = global_matrix | keywords["global_matrix"] = global_matrix | ||||
| return import_x3d.load(context, **keywords) | return import_x3d.load(context, **keywords) | ||||
| class ExportX3D(bpy.types.Operator, ExportHelper, IOX3DOrientationHelper): | @orientation_helper(axis_forward='Z', axis_up='Y') | ||||
| class ExportX3D(bpy.types.Operator, ExportHelper): | |||||
| """Export selection to Extensible 3D file (.x3d)""" | """Export selection to Extensible 3D file (.x3d)""" | ||||
| bl_idname = "export_scene.x3d" | bl_idname = "export_scene.x3d" | ||||
| bl_label = 'Export X3D' | bl_label = 'Export X3D' | ||||
| bl_options = {'PRESET'} | bl_options = {'PRESET'} | ||||
| filename_ext = ".x3d" | filename_ext = ".x3d" | ||||
| filter_glob = StringProperty(default="*.x3d", options={'HIDDEN'}) | filter_glob = StringProperty(default="*.x3d", options={'HIDDEN'}) | ||||
| ▲ Show 20 Lines • Show All 74 Lines • ▼ Show 20 Lines | |||||
| def menu_func_export(self, context): | def menu_func_export(self, context): | ||||
| self.layout.operator(ExportX3D.bl_idname, | self.layout.operator(ExportX3D.bl_idname, | ||||
| text="X3D Extensible 3D (.x3d)") | text="X3D Extensible 3D (.x3d)") | ||||
| def register(): | def register(): | ||||
| bpy.utils.register_module(__name__) | bpy.utils.register_module(__name__) | ||||
| bpy.types.INFO_MT_file_import.append(menu_func_import) | bpy.types.TOPBAR_MT_file_import.append(menu_func_import) | ||||
| bpy.types.INFO_MT_file_export.append(menu_func_export) | bpy.types.TOPBAR_MT_file_export.append(menu_func_export) | ||||
| def unregister(): | def unregister(): | ||||
| bpy.utils.unregister_module(__name__) | bpy.utils.unregister_module(__name__) | ||||
| bpy.types.INFO_MT_file_import.remove(menu_func_import) | bpy.types.TOPBAR_MT_file_import.remove(menu_func_import) | ||||
| bpy.types.INFO_MT_file_export.remove(menu_func_export) | bpy.types.TOPBAR_MT_file_export.remove(menu_func_export) | ||||
| # NOTES | # NOTES | ||||
| # - blender version is hardcoded | # - blender version is hardcoded | ||||
| if __name__ == "__main__": | if __name__ == "__main__": | ||||
| register() | register() | ||||