summaryrefslogtreecommitdiff
path: root/camera.py
diff options
context:
space:
mode:
authorAnthony LaTorre <tlatorre9@gmail.com>2011-09-09 12:54:56 -0400
committerAnthony LaTorre <tlatorre9@gmail.com>2011-09-09 12:54:56 -0400
commitcb07b863464ad85cf4f18a2e97764db5c3bcc766 (patch)
treedd4d1bf664e470f91859e7be1eaa4edfd7c35e14 /camera.py
parenteb964fe9fcf13ad1a72e40451c5d85b6765d945f (diff)
downloadchroma-cb07b863464ad85cf4f18a2e97764db5c3bcc766.tar.gz
chroma-cb07b863464ad85cf4f18a2e97764db5c3bcc766.tar.bz2
chroma-cb07b863464ad85cf4f18a2e97764db5c3bcc766.zip
update sphinx documentation.
Diffstat (limited to 'camera.py')
-rwxr-xr-xcamera.py34
1 files changed, 14 insertions, 20 deletions
diff --git a/camera.py b/camera.py
index f4f4b39..15b0916 100755
--- a/camera.py
+++ b/camera.py
@@ -78,6 +78,7 @@ def encode_movie(dir):
print 'movie saved to %s.' % filename
class Camera(multiprocessing.Process):
+ "The camera class is used to render a Geometry object."
def __init__(self, geometry, size=(800,600), device_id=None):
multiprocessing.Process.__init__(self)
self.geometry = geometry
@@ -127,11 +128,14 @@ class Camera(multiprocessing.Process):
pass
lower_bound, upper_bound = self.geometry.mesh.get_bounds()
- self.scale = np.linalg.norm(upper_bound-lower_bound)
+
+ self.mesh_diagonal_norm = np.linalg.norm(upper_bound-lower_bound)
+
+ self.scale = self.mesh_diagonal_norm
self.nblocks = 64
- self.point = np.array([0, -self.scale*1.0,
+ self.point = np.array([0, -self.mesh_diagonal_norm,
(lower_bound[2]+upper_bound[2])/2])
self.axis1 = np.array([0,0,1], float)
@@ -160,8 +164,8 @@ class Camera(multiprocessing.Process):
self.display3d = False
def enable3d(self):
- self.point1 = self.point-(self.scale/60)*self.axis2
- self.point2 = self.point+(self.scale/60)*self.axis2
+ self.point1 = self.point-(self.mesh_diagonal_norm/60)*self.axis2
+ self.point2 = self.point+(self.mesh_diagonal_norm/60)*self.axis2
self.viewing_angle = 0.0
@@ -472,28 +476,18 @@ class Camera(multiprocessing.Process):
self.rotate(phi, n)
elif event.type == KEYDOWN:
- if event.key == K_a:
- v = self.scale*self.axis2/10.0
- self.translate(v)
-
- elif event.key == K_d:
- v = -self.scale*self.axis2/10.0
- self.translate(v)
-
- elif event.key == K_w:
- v = self.scale*np.cross(self.axis1,self.axis2)/10.0
- self.translate(v)
-
- elif event.key == K_s:
- v = -self.scale*np.cross(self.axis1,self.axis2)/10.0
- self.translate(v)
+ if event.key == K_LALT or event.key == K_RALT:
+ if self.scale == self.mesh_diagonal_norm:
+ self.scale /= 20.0
+ else:
+ self.scale = self.mesh_diagonal_norm
elif event.key == K_F6:
self.clear_xyz_lookup()
self.clear_image()
self.source_position = self.point
- elif event.key == K_p:
+ elif event.key == K_F7:
for i in range(100):
self.update_xyz_lookup(self.point)
self.source_position = self.point