Export the entire scene by default
authorMikko Rasa <tdb@tdb.fi>
Sun, 23 Jun 2019 20:02:41 +0000 (23:02 +0300)
committerMikko Rasa <tdb@tdb.fi>
Sun, 23 Jun 2019 20:03:19 +0000 (23:03 +0300)
Options have been added to export only selected object or limit the
export to active layers.

blender/io_mspgl/__init__.py
blender/io_mspgl/export_scene.py

index 3ce60c4c0a91864b9001eaeda21b95eba942be75..43a3fac8f691270bae32a61bd9447bd2059ad5ef 100644 (file)
@@ -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):
index 68b589879c4fdc2722f41157bfe018590d0122f9..b28c8e041db4c66d2d43b1dc59d95c1c77e76797 100644 (file)
@@ -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)