new property for soft bodies
[blender.git] / release / scripts / op / render.py
1 # ##### BEGIN GPL LICENSE BLOCK #####
2 #
3 #  This program is free software; you can redistribute it and/or
4 #  modify it under the terms of the GNU General Public License
5 #  as published by the Free Software Foundation; either version 2
6 #  of the License, or (at your option) any later version.
7
8 #  This program is distributed in the hope that it will be useful,
9 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
10 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 #  GNU General Public License for more details.
12
13 #  You should have received a copy of the GNU General Public License
14 #  along with this program; if not, write to the Free Software Foundation,
15 #  Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
16 #
17 # ##### END GPL LICENSE BLOCK #####
18
19 import bpy
20 import os
21
22 class AddPreset(bpy.types.Operator):
23     '''Add a torus mesh.'''
24     bl_idname = "render.preset_add"
25     bl_label = "Add Render Preset"
26     
27     name = bpy.props.StringProperty(name="Name", description="Name of the preset, used to make the path name", maxlen= 64, default= "New Preset")
28     
29     _preset_values = [
30         "bpy.context.scene.render_data.resolution_x",
31         "bpy.context.scene.render_data.resolution_y",
32         "bpy.context.scene.render_data.pixel_aspect_x",
33         "bpy.context.scene.render_data.pixel_aspect_x",
34         "bpy.context.scene.render_data.fps",
35         "bpy.context.scene.render_data.fps_base",
36         "bpy.context.scene.render_data.resolution_percentage",
37     ]
38     
39     _last_preset = "" # hack to avoid remaking
40     
41     def _as_filename(self, name): # could reuse for other presets
42         for char in " !@#$%^&*(){}:\";'[]<>,./?":
43             name = name.replace('.', '_')
44         return name.lower()
45
46     def execute(self, context):
47         
48         filename = self._as_filename(self.properties.name) + ".py"
49         
50         target_path = os.path.join(os.path.dirname(__file__), os.path.pardir, "presets", "render", filename)
51         print(target_path)
52         file_preset = open(target_path, 'w')
53         
54         for rna_path in self._preset_values:
55             file_preset.write("%s = %s\n" % (rna_path, eval(rna_path)))
56         
57         file_preset.close()
58         
59         return ('FINISHED',)
60
61     def invoke(self, context, event):
62         wm = context.manager
63         wm.invoke_props_popup(self, event)
64         return ('RUNNING_MODAL',)
65
66 bpy.ops.add(AddPreset)