]> git.tdb.fi Git - libs/gl.git/commitdiff
Add an option to export a separate mesh file when exporting an object
authorMikko Rasa <tdb@tdb.fi>
Mon, 5 May 2014 19:58:13 +0000 (22:58 +0300)
committerMikko Rasa <tdb@tdb.fi>
Mon, 5 May 2014 20:42:29 +0000 (23:42 +0300)
blender/io_mspgl/__init__.py
blender/io_mspgl/export_object.py
blender/io_mspgl/outfile.py

index 9b49da8ffa370f42f0ed129a2f5cd8d6dc20b313..7426685f49e70f9aa1ddd48b5b21aac2679b8cae 100644 (file)
@@ -102,17 +102,26 @@ class ExportMspGLObject(bpy.types.Operator, ExportMspGLMeshBase):
        material_tex = bpy.props.BoolProperty(name="Material texture", description="Generate a texture based on material colors", default=False)
        srgb_colors = bpy.props.BoolProperty(name="sRGB colors", description="Export material colors as sRGB instead of linear", default=True)
 
+       separate_mesh = bpy.props.BoolProperty(name="Separate mesh", description="Write mesh data into a separate file", default=False)
+
        def create_exporter(self):
                from .export_object import ObjectExporter
                return ObjectExporter()
 
        def draw(self, context):
                super().draw(context)
+
                col = self.texturing_col
                col.prop(self, "textures")
                col.prop(self, "material_tex")
                col.prop(self, "srgb_colors")
 
+               self.layout.separator();
+
+               col = self.layout.column()
+               col.label("Files")
+               col.prop(self, "separate_mesh")
+
 class ExportMspGLArmature(bpy.types.Operator, ExportMspGLBase):
        bl_idname = "export.mspgl_armature"
        bl_label = "Export Msp GL armature"
index 12b15b63c26586abe203629992782d594b266a64..8065c09ad4a2bac0219eb7ed2254b4c3dfcb6ab8 100644 (file)
@@ -1,3 +1,5 @@
+import os
+
 def linear_to_srgb(l):
        if l<0.0031308:
                return 12.92*l
@@ -10,6 +12,7 @@ class ObjectExporter:
                self.material_tex = False
                self.srgb_colors = True
                self.textures = "REF"
+               self.separate_mesh = False
 
        def export(self, context, out_file):
                from .outfile import open_output
@@ -20,9 +23,16 @@ class ObjectExporter:
                for k, v in self.__dict__.items():
                        setattr(mesh_export, k, v)
 
-               out_file.begin("mesh")
-               mesh = mesh_export.export(context, out_file)
-               out_file.end()
+               if self.separate_mesh:
+                       path, base = os.path.split(out_file.filename)
+                       base, ext = os.path.splitext(base)
+                       mesh_out = open_output(os.path.join(path, base+".mesh"))
+                       mesh = mesh_export.export(context, mesh_out)
+                       out_file.write("mesh", "\""+base+".mesh\"")
+               else:
+                       out_file.begin("mesh")
+                       mesh = mesh_export.export(context, out_file)
+                       out_file.end()
 
                out_file.begin("technique")
                out_file.begin("pass", '""')
index 5d5cb8ea798c80b5b352d82883fd39a4e3131d01..2ccaa1b0008ede74db44fc2c8135a80978b1a1c5 100644 (file)
@@ -2,6 +2,7 @@ import sys
 
 class OutFile:
        def __init__(self, fn):
+               self.filename = fn
                if fn==None:
                        self.file = sys.stdout
                else: