diff options
author | Anthony LaTorre <tlatorre9@gmail.com> | 2011-09-09 12:54:56 -0400 |
---|---|---|
committer | Anthony LaTorre <tlatorre9@gmail.com> | 2011-09-09 12:54:56 -0400 |
commit | cb07b863464ad85cf4f18a2e97764db5c3bcc766 (patch) | |
tree | dd4d1bf664e470f91859e7be1eaa4edfd7c35e14 /camera.py | |
parent | eb964fe9fcf13ad1a72e40451c5d85b6765d945f (diff) | |
download | chroma-cb07b863464ad85cf4f18a2e97764db5c3bcc766.tar.gz chroma-cb07b863464ad85cf4f18a2e97764db5c3bcc766.tar.bz2 chroma-cb07b863464ad85cf4f18a2e97764db5c3bcc766.zip |
update sphinx documentation.
Diffstat (limited to 'camera.py')
-rwxr-xr-x | camera.py | 34 |
1 files changed, 14 insertions, 20 deletions
@@ -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 |