[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