File: movie_script.py

package info (click to toggle)
ball 1.5.0%2Bgit20180813.37fc53c-6
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 239,888 kB
  • sloc: cpp: 326,149; ansic: 4,208; python: 2,303; yacc: 1,778; lex: 1,099; xml: 958; sh: 322; makefile: 95
file content (52 lines) | stat: -rw-r--r-- 972 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# create an animation for a molecule

clearAll()

#the molecule to animate
openFile(Path().find("structures/bpti.pdb"))

angle_step = 6
turns = 1
move_step = 1
move_dist = 100

# do we want to create a movie with PNGs or POVRays?
def my_task():
	m.processEvents(1000)
	#s.exportPOVRay()
	#s.exportPNG()
	
s = getScene()
m = getMainControl()
camera = Camera(s.getStage().getCamera())

# zoom out
s.move(Vector3(0,0,-move_dist))

# zoom in on molecule
for i in range(0, move_dist / move_step):
	s.move(Vector3(0,0,move_step))
	my_task()
	
#rotate left
for i in range(0, 360 * turns / angle_step):
	s.rotate(angle_step, 0)
	my_task()
	
#rotate up
for i in range(0, 360 * turns / angle_step):
	s.rotate(0, angle_step)
	my_task()

#rotate left 90 degree
for i in range(0, 90 / angle_step):
	s.rotate(angle_step, 0)
	my_task()
	
#move throught molecule
for i in range(0, move_dist * 2 / move_step):
	s.move(Vector3(0,0,-move_step))
	my_task()

#reset camera
s.setCamera(camera)