diff options
Diffstat (limited to 'camera.py')
-rwxr-xr-x | camera.py | 27 |
1 files changed, 15 insertions, 12 deletions
@@ -52,17 +52,18 @@ def get_rays(position, size = (800, 600), width = 0.035, focal_length=0.05): return grid, focal_point-grid class Camera(Thread): - def __init__(self, geometry, size=(800,600), device_id=None, spnav=False): + def __init__(self, geometry, size=(800,600), device_id=None): Thread.__init__(self) self.geometry = geometry self.device_id = device_id self.size = size - self.spnav = spnav - - if spnav: + try: import spnav as spnav_module self.spnav_module = spnav_module + self.spnav = True + except: + self.spnav = False def init_gpu(self): self.gpu = GPU(self.device_id) @@ -373,10 +374,14 @@ class Camera(Thread): self.init_gpu() if self.spnav: - wm_info = pygame.display.get_wm_info() - self.spnav_module.spnav_x11_open(wm_info['display'], - wm_info['window']) - pygame.event.set_allowed(pygame.SYSWMEVENT) + try: + wm_info = pygame.display.get_wm_info() + self.spnav_module.spnav_x11_open(wm_info['display'], + wm_info['window']) + pygame.event.set_allowed(pygame.SYSWMEVENT) + print 'Space Navigator support enabled.' + except: + self.spnav = False self.update() @@ -465,8 +470,6 @@ if __name__ == '__main__': parser.add_option('-r', '--resolution', dest='resolution', help='specify resolution', default='800,600') parser.add_option('-i', dest='io_file', default=None) - parser.add_option('--spnav', action='store_true', dest='spnav', - help='activate Space Navigator support', default=False) options, args = parser.parse_args() if len(args) < 1: @@ -496,7 +499,7 @@ if __name__ == '__main__': geometry = build(obj, options.bits) if options.io_file is not None: - camera = EventViewer(geometry, options.io_file, size=size, spnav=options.spnav) + camera = EventViewer(geometry, options.io_file, size=size) else: - camera = Camera(geometry, size, spnav=options.spnav) + camera = Camera(geometry, size) camera.start() |