Revision: 21037
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21037
Author:   campbellbarton
Date:     2009-06-20 18:08:01 +0200 (Sat, 20 Jun 2009)

Log Message:
-----------
PLY export, use the file selector and added operator options

Modified Paths:
--------------
    branches/blender2.5/blender/release/io/export_ply.py

Modified: branches/blender2.5/blender/release/io/export_ply.py
===================================================================
--- branches/blender2.5/blender/release/io/export_ply.py        2009-06-20 
15:06:18 UTC (rev 21036)
+++ branches/blender2.5/blender/release/io/export_ply.py        2009-06-20 
16:08:01 UTC (rev 21037)
@@ -50,7 +50,12 @@
 def rvec3d(v): return round(v[0], 6), round(v[1], 6), round(v[2], 6)
 def rvec2d(v): return round(v[0], 6), round(v[1], 6)
 
-def write(filename, ob, EXPORT_APPLY_MODIFIERS= True, EXPORT_NORMALS= True, 
EXPORT_UV= True, EXPORT_COLORS= True):
+def write(filename, scene, ob, \
+               EXPORT_APPLY_MODIFIERS= True,\
+               EXPORT_NORMALS= True,\
+               EXPORT_UV= True,\
+               EXPORT_COLORS= True\
+       ):
        
        if not filename.lower().endswith('.ply'):
                filename += '.ply'
@@ -72,7 +77,10 @@
        """
        
        #mesh = BPyMesh.getMeshFromObject(ob, None, EXPORT_APPLY_MODIFIERS, 
False, scn) # XXX
-       mesh = ob.data
+       if EXPORT_APPLY_MODIFIERS:
+               mesh = ob.create_render_mesh(scene)
+       else:
+               mesh = ob.data
        
        if not mesh:
                raise ("Error, could not get mesh data from active object")
@@ -219,20 +227,15 @@
        file.close()
        print("writing", filename, "done")
        
+       if EXPORT_APPLY_MODIFIERS:
+               bpy.data.remove_mesh(mesh)
+       
        # XXX
        """
        if is_editmode:
                Blender.Window.EditMode(1, '', 0)
        """
 
-"""
-def main():
-       Blender.Window.FileSelector(file_callback, 'PLY Export', 
Blender.sys.makename(ext='.ply'))
-
-if __name__=='__main__':
-       main()
-"""
-
 class EXPORT_OT_ply(bpy.types.Operator):
        '''
        Operator documentatuon text, will be used for the operator tooltip and 
python docs.
@@ -243,7 +246,11 @@
        # to the class instance from the operator settings before calling.
        
        __props__ = [
-                       bpy.props.StringProperty(attr="filename", name="File 
Name", description="File name used for exporting the PLY file", maxlen= 1024, 
default= "")
+               bpy.props.StringProperty(attr="filename", name="File Name", 
description="File name used for exporting the PLY file", maxlen= 1024, default= 
""),
+               bpy.props.BoolProperty(attr="use_modifiers", name="Apply 
Modifiers", description="Apply Modifiers to the exported mesh", default= True),
+               bpy.props.BoolProperty(attr="use_normals", name="Export 
Normals", description="Export Normals for smooth and hard shaded faces", 
default= True),
+               bpy.props.BoolProperty(attr="use_uvs", name="Export UVs", 
description="Exort the active UV layer", default= True),
+               bpy.props.BoolProperty(attr="use_colors", name="Export Vertex 
Colors", description="Exort the active vertex color layer", default= True)
        ]
        
        def poll(self, context):
@@ -256,15 +263,19 @@
                if not self.filename:
                        raise Exception("filename not set")
                        
-               write(self.filename, context.active_object)
+               write(self.filename, context.scene, context.active_object,\
+                       EXPORT_APPLY_MODIFIERS = self.use_modifiers,
+                       EXPORT_NORMALS = self.use_normals,
+                       EXPORT_UV = self.use_uvs,
+                       EXPORT_COLORS = self.use_colors,
+               )
 
                return ('FINISHED',)
        
-       def invoke(self, context, event):
-               print("Invoke", context, event)
-               # XXX file selector
-               self.execute(context)
-               return ('FINISHED',)
+       def invoke(self, context, event):       
+               wm = context.manager
+               wm.add_fileselect(self.__operator__)
+               return ('RUNNING_MODAL',)
 
 
 bpy.ops.add(EXPORT_OT_ply)


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to