summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xcamera.py16
1 files changed, 11 insertions, 5 deletions
diff --git a/camera.py b/camera.py
index 1e31a81..e54c3b8 100755
--- a/camera.py
+++ b/camera.py
@@ -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()