diff options
-rwxr-xr-x | camera.py | 16 |
1 files changed, 11 insertions, 5 deletions
@@ -116,12 +116,13 @@ def get_rays(position, size = (800, 600), width = 0.035, focal_length=0.018): return grid, focal_point-grid class Camera(Thread): - def __init__(self, geometry, size=(800,600), device_id=None, enable3d=False): + def __init__(self, geometry, size=(800,600), device_id=None, enable3d=False, green_magenta=False): Thread.__init__(self) self.geometry = geometry self.device_id = device_id self.size = size self.enable3d = enable3d + self.green_magenta = green_magenta self.unique_bvh_layers = np.unique(self.geometry.layers) self.currentlayer = None @@ -373,7 +374,10 @@ class Camera(Thread): pixels1 = pixels[:len(pixels)//2] pixels2 = pixels[len(pixels)//2:] - pixels = (pixels1 & 0xff0000) | (pixels2 & 0xff) + if self.green_magenta: + pixels = (pixels1 & 0xff00) | (pixels2 & 0xff00ff) + else: + pixels = (pixels1 & 0xff0000) | (pixels2 & 0xffff) pygame.surfarray.blit_array(self.screen, pixels.reshape(self.size)) if self.doom_mode: @@ -531,7 +535,7 @@ class Camera(Thread): v1 = self.axis2 v2 = self.axis1 v3 = -np.cross(self.axis1,self.axis2) - + v = -v1*spnav_event.motion.x + v2*spnav_event.motion.y \ + v3*spnav_event.motion.z v *= self.scale / 5000.0 * accelerate_factor @@ -677,6 +681,8 @@ if __name__ == '__main__': help='specify resolution', default='1024,576') parser.add_option('--3d', action='store_true', dest='enable3d', help='enable 3d', default=False) + parser.add_option('--green', action='store_true', dest='green_magenta', + help='3d with green and magenta lenses', default=False) parser.add_option('-i', dest='io_file', default=None) options, args = parser.parse_args() @@ -707,9 +713,9 @@ if __name__ == '__main__': geometry = build(obj, options.bits) if options.io_file is not None: - camera = EventViewer(geometry, options.io_file, size=size, enable3d=options.enable3d) + camera = EventViewer(geometry, options.io_file, size=size, enable3d=options.enable3d, green_magenta=options.green_magenta) else: - camera = Camera(geometry, size, enable3d=options.enable3d) + camera = Camera(geometry, size, enable3d=options.enable3d, green_magenta=options.green_magenta) camera.start() camera.join() |