diff options
Diffstat (limited to 'view.py')
-rwxr-xr-x | view.py | 22 |
1 files changed, 19 insertions, 3 deletions
@@ -1,4 +1,5 @@ #!/usr/bin/env python +import os import numpy as np import pygame @@ -171,6 +172,22 @@ def view(geometry, name=''): done = True break + if event.key == K_F12: + if name == '': + root, ext = 'screenshot', 'png' + else: + root, ext = name, 'png' + + filename = '.'.join([root, ext]) + + i = 1 + while os.path.exists(filename): + filename = '.'.join([root + str(i), ext]) + i += 1 + + pygame.image.save(screen, filename) + print 'image saved to %s' % filename + if event.type == KEYUP: if event.key == K_LSHIFT or event.key == K_RSHIFT: shift = False @@ -207,9 +224,8 @@ if __name__ == '__main__': members = dict(inspect.getmembers(detectors) + inspect.getmembers(solids)) if args[0] in members: - if type(members[args[0]]) is type and \ - issubclass(members[args[0]], Geometry): - geometry = members[args[0]]() + if isinstance(members[args[0]], Geometry): + geometry = members[args[0]] geometry.build(options.bits) view(geometry, args[0]) elif isinstance(members[args[0]], Solid): |