From cb07b863464ad85cf4f18a2e97764db5c3bcc766 Mon Sep 17 00:00:00 2001 From: Anthony LaTorre Date: Fri, 9 Sep 2011 12:54:56 -0400 Subject: update sphinx documentation. --- camera.py | 34 ++++++++++++++-------------------- 1 file changed, 14 insertions(+), 20 deletions(-) (limited to 'camera.py') 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 -- cgit