~ubuntu-branches/ubuntu/trusty/blender/trusty

« back to all changes in this revision

Viewing changes to release/scripts/addons/io_anim_camera.py

  • Committer: Package Import Robot
  • Author(s): Jeremy Bicha
  • Date: 2013-03-06 12:08:47 UTC
  • mfrom: (1.5.1) (14.1.8 experimental)
  • Revision ID: package-import@ubuntu.com-20130306120847-frjfaryb2zrotwcg
Tags: 2.66a-1ubuntu1
* Resynchronize with Debian (LP: #1076930, #1089256, #1052743, #999024,
  #1122888, #1147084)
* debian/control:
  - Lower build-depends on libavcodec-dev since we're not
    doing the libav9 transition in Ubuntu yet

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
    "name": "Export Camera Animation",
23
23
    "author": "Campbell Barton",
24
24
    "version": (0, 1),
25
 
    "blender": (2, 5, 7),
 
25
    "blender": (2, 57, 0),
26
26
    "location": "File > Export > Cameras & Markers (.py)",
27
27
    "description": "Export Cameras & Markers (.py)",
28
28
    "warning": "",
29
 
    "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.5/Py/"\
 
29
    "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.6/Py/"\
30
30
        "Scripts/Import-Export/Camera_Animation",
31
31
    "tracker_url": "https://projects.blender.org/tracker/index.php?"\
32
32
        "func=detail&aid=22835",
37
37
import bpy
38
38
 
39
39
 
40
 
def writeCameras(context, filepath, frame_start, frame_end, only_selected=False):
41
 
 
42
 
    data_attrs = ['lens', 'shift_x', 'shift_y', 'dof_distance', 'clip_start', 'clip_end', 'draw_size']
43
 
    obj_attrs = ['hide_render']
 
40
def write_cameras(context, filepath, frame_start, frame_end, only_selected=False):
 
41
 
 
42
    data_attrs = (
 
43
        'lens',
 
44
        'shift_x',
 
45
        'shift_y',
 
46
        'dof_distance',
 
47
        'clip_start',
 
48
        'clip_end',
 
49
        'draw_size',
 
50
        )
 
51
 
 
52
    obj_attrs = (
 
53
        'hide_render',
 
54
        )
44
55
 
45
56
    fw = open(filepath, 'w').write
46
57
 
58
69
 
59
70
    frame_range = range(frame_start, frame_end + 1)
60
71
 
61
 
    fw("cameras = {}\n")
62
 
    fw("scene = bpy.context.scene\n")
63
 
    fw("frame = scene.frame_current - 1\n")
64
 
    fw("\n")
 
72
    fw("import bpy\n"
 
73
       "cameras = {}\n"
 
74
       "scene = bpy.context.scene\n"
 
75
       "frame = scene.frame_current - 1\n"
 
76
       "\n")
65
77
 
66
78
    for obj, obj_data in cameras:
67
 
        fw("data = bpy.data.cameras.new('%s')\n" % obj.name)
 
79
        fw("data = bpy.data.cameras.new(%r)\n" % obj.name)
68
80
        for attr in data_attrs:
69
81
            fw("data.%s = %s\n" % (attr, repr(getattr(obj_data, attr))))
70
82
 
71
 
        fw("obj = bpy.data.objects.new('%s', data)\n" % obj.name)
 
83
        fw("obj = bpy.data.objects.new(%r, data)\n" % obj.name)
72
84
 
73
85
        for attr in obj_attrs:
74
86
            fw("obj.%s = %s\n" % (attr, repr(getattr(obj, attr))))
75
87
 
76
88
        fw("scene.objects.link(obj)\n")
77
 
        fw("cameras['%s'] = obj\n" % obj.name)
 
89
        fw("cameras[%r] = obj\n" % obj.name)
78
90
        fw("\n")
79
91
 
80
92
    for f in frame_range:
104
116
    # now markers
105
117
    fw("# markers\n")
106
118
    for marker in scene.timeline_markers:
107
 
        fw("marker = scene.timeline_markers.new('%s')\n" % marker.name)
 
119
        fw("marker = scene.timeline_markers.new(%r)\n" % marker.name)
108
120
        fw("marker.frame = %d + frame\n" % marker.frame)
109
121
 
110
122
        # will fail if the cameras not selected
111
123
        if marker.camera:
112
 
            fw("marker.camera = cameras.get('%s')\n" % marker.camera.name)
 
124
            fw("marker.camera = cameras.get(%r)\n" % marker.camera.name)
113
125
        fw("\n")
114
126
 
115
127
 
118
130
 
119
131
 
120
132
class CameraExporter(bpy.types.Operator, ExportHelper):
121
 
    '''Save a python script which re-creates cameras and markers elsewhere'''
 
133
    """Save a python script which re-creates cameras and markers elsewhere"""
122
134
    bl_idname = "export_animation.cameras"
123
135
    bl_label = "Export Camera & Markers"
124
136
 
135
147
            default=True)
136
148
 
137
149
    def execute(self, context):
138
 
        writeCameras(context, self.filepath, self.frame_start, self.frame_end, self.only_selected)
 
150
        write_cameras(context, self.filepath, self.frame_start, self.frame_end, self.only_selected)
139
151
        return {'FINISHED'}
140
152
 
141
153
    def invoke(self, context, event):