From d3813a0ab6ee2f8b9af775c28b51b512abe6cd09 Mon Sep 17 00:00:00 2001 From: Mikko Rasa Date: Sun, 23 Jun 2019 23:02:41 +0300 Subject: [PATCH] Export the entire scene by default Options have been added to export only selected object or limit the export to active layers. --- blender/io_mspgl/__init__.py | 4 ++++ blender/io_mspgl/export_scene.py | 11 ++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/blender/io_mspgl/__init__.py b/blender/io_mspgl/__init__.py index 3ce60c4c..43a3fac8 100644 --- a/blender/io_mspgl/__init__.py +++ b/blender/io_mspgl/__init__.py @@ -131,6 +131,8 @@ class ExportMspGLScene(bpy.types.Operator, ExportMspGLBase): filename_ext = ".scene" + selected_only = bpy.props.BoolProperty(name="Selected objects only", description="Only export the selected objects") + active_layers = bpy.props.BoolProperty(name="Active layers only", description="Only export objects on the active layers", default=True) resource_collection = bpy.props.BoolProperty(name="Resource collection", description="Put resources to a single collection file", default=True) def create_exporter(self): @@ -139,6 +141,8 @@ class ExportMspGLScene(bpy.types.Operator, ExportMspGLBase): def draw(self, context): col = self.layout.column() + col.prop(self, "selected_only") + col.prop(self, "active_layers") col.prop(self, "resource_collection") class ExportMspGLCamera(bpy.types.Operator, ExportMspGLBase): diff --git a/blender/io_mspgl/export_scene.py b/blender/io_mspgl/export_scene.py index 68b58987..b28c8e04 100644 --- a/blender/io_mspgl/export_scene.py +++ b/blender/io_mspgl/export_scene.py @@ -3,11 +3,20 @@ import os class SceneExporter: def __init__(self): + self.selected_only = False + self.active_layers = True self.resource_collection = True self.show_progress = True def export_to_file(self, context, out_fn): - objs = [o for o in context.selected_objects if o.type=="MESH" and not o.lod_for_parent] + if self.selected_only: + objs = context.selected_objects + else: + objs = context.scene.objects + if self.active_layers: + layers = context.scene.layers + objs = [o for o in objs if any(a and b for a, b in zip(layers, o.layers))] + objs = [o for o in objs if o.type=="MESH" and not o.lod_for_parent] objs = [o for o in objs if (not o.compound or o.parent not in objs)] path, base = os.path.split(out_fn) -- 2.45.2