[Yt-svn] yt: 2 new changesets

hg at spacepope.org hg at spacepope.org
Fri May 14 18:39:43 PDT 2010


hg Repository: yt
details:   yt/rev/51ad543d7243
changeset: 1672:51ad543d7243
user:      Matthew Turk <matthewturk at gmail.com>
date:
Fri May 14 17:20:16 2010 -0700
description:
Adding zoom, zoomin and removed a print statement from the png writer pyx.

hg Repository: yt
details:   yt/rev/6343c3e467c8
changeset: 1673:6343c3e467c8
user:      Matthew Turk <matthewturk at gmail.com>
date:
Fri May 14 18:39:34 2010 -0700
description:
Initial pass at stereo pair camera

diffstat:

 yt/_amr_utils/png_writer.pyx               |   1 -
 yt/extensions/volume_rendering/__init__.py |   2 +-
 yt/extensions/volume_rendering/camera.py   |  39 +++++++++++++++++++
 3 files changed, 40 insertions(+), 2 deletions(-)

diffs (80 lines):

diff -r 560d01bba399 -r 6343c3e467c8 yt/_amr_utils/png_writer.pyx
--- a/yt/_amr_utils/png_writer.pyx	Fri May 14 16:52:00 2010 -0700
+++ b/yt/_amr_utils/png_writer.pyx	Fri May 14 18:39:34 2010 -0700
@@ -157,7 +157,6 @@
     cdef int ys = buffer.shape[1]
     cdef int v 
     v = iclip(<int>(pv * 255), 0, 255)
-    print "VALUE CONTRIBUTION", v
     for pi in range(np):
         j = <int> (xs * px[pi])
         i = <int> (ys * py[pi])
diff -r 560d01bba399 -r 6343c3e467c8 yt/extensions/volume_rendering/__init__.py
--- a/yt/extensions/volume_rendering/__init__.py	Fri May 14 16:52:00 2010 -0700
+++ b/yt/extensions/volume_rendering/__init__.py	Fri May 14 18:39:34 2010 -0700
@@ -38,4 +38,4 @@
 from image_handling import export_rgba, import_rgba, \
                            plot_channel, plot_rgb
 from software_sampler import VolumeRendering
-from camera import Camera
+from camera import Camera, StereoPairCamera
diff -r 560d01bba399 -r 6343c3e467c8 yt/extensions/volume_rendering/camera.py
--- a/yt/extensions/volume_rendering/camera.py	Fri May 14 16:52:00 2010 -0700
+++ b/yt/extensions/volume_rendering/camera.py	Fri May 14 18:39:34 2010 -0700
@@ -51,6 +51,7 @@
             transfer_function = ProjectionTransferFunction()
         self.transfer_function = transfer_function
         self._setup_normalized_vectors(normal_vector, north_vector)
+        self.log_fields = log_fields
         if volume is None:
             volume = HomogenizedVolume(fields, pf = self.pf,
                                        log_fields = log_fields)
@@ -79,6 +80,10 @@
         self.front_center = self.center + 0.5*self.width[0]*self.unit_vectors[2]
         self.inv_mat = na.linalg.pinv(self.unit_vectors)
 
+    def look_at(self, new_center, north_vector = None):
+        normal_vector = self.front_center - new_center
+        self._setup_normalized_vectors(normal_vector, north_vector)
+
     def get_vector_plane(self, image):
         # We should move away from pre-generation of vectors like this and into
         # the usage of on-the-fly generation in the VolumeIntegrator module
@@ -117,3 +122,37 @@
             pbar.update(total_cells)
         pbar.finish()
         return image
+
+    def zoom(self, factor):
+        self.width = [w / factor for w in self.width]
+        self._setup_normalized_vectors(
+                self.unit_vectors[2], self.unit_vectors[0])
+
+    def zoomin(self, final, n_steps):
+        f = final**(1.0/n_steps)
+        for i in xrange(n_steps):
+            self.zoom(f)
+            yield self.snapshot()
+
+class StereoPairCamera(Camera):
+    def __init__(self, original_camera, relative_separation):
+        self.original_camera = original_camera
+        self.relative_separation = relative_separation
+
+    def split(self):
+        oc = self.original_camera
+        uv = oc.unit_vectors
+        c = oc.center
+        wx = oc.width[0]
+        wy = oc.width[1]
+        left_center = c + uv[0] * 0.5*self.relative_separation * wx 
+        right_center = c - uv[0] * 0.5*self.relative_separation * wx
+        left_camera = Camera(left_center, uv[2], oc.width,
+                             oc.resolution, oc.transfer_function, uv[1],
+                             oc.volume, oc.fields, oc.log_fields,
+                             oc.sub_samples, oc.pf)
+        right_camera = Camera(right_center, uv[2], oc.width,
+                             oc.resolution, oc.transfer_function, uv[1],
+                             oc.volume, oc.fields, oc.log_fields,
+                             oc.sub_samples, oc.pf)
+        return (left_camera, right_camera)



More information about the yt-svn mailing list