diff options
author | Anthony LaTorre <telatorre@gmail.com> | 2011-05-16 16:24:49 -0400 |
---|---|---|
committer | Anthony LaTorre <telatorre@gmail.com> | 2011-05-16 16:24:49 -0400 |
commit | 8a384792b296d0c4c4a51d0a7679bc3c5f24c2c2 (patch) | |
tree | dac07c7256a21ae43e0426b616f7894eac82a4c5 | |
parent | 2fc0386f58d296e044a7018316adf4810bd81e00 (diff) | |
download | chroma-8a384792b296d0c4c4a51d0a7679bc3c5f24c2c2.tar.gz chroma-8a384792b296d0c4c4a51d0a7679bc3c5f24c2c2.tar.bz2 chroma-8a384792b296d0c4c4a51d0a7679bc3c5f24c2c2.zip |
typo
-rw-r--r-- | geometry.py | 4 | ||||
-rw-r--r-- | test.py | 16 |
2 files changed, 7 insertions, 13 deletions
diff --git a/geometry.py b/geometry.py index 48d19fc..cf92d53 100644 --- a/geometry.py +++ b/geometry.py @@ -33,7 +33,7 @@ def interleave(arr): raise Exception('shape mismatch') z = np.zeros(arr.shape[0], dtype=np.uint64) - for i in range(arr[0][0].nbytes*8): + for i in range(arr.dtype.itemsize*8): z |= (arr[:,2] & 1 << i) << (2*i) | (arr[:,1] & 1 << i) << (2*i+1) | (arr[:,0] & 1 << i) << (2*i+2) return z @@ -48,7 +48,7 @@ def morton_order(mesh, bits=3): mean_positions = quantize(np.mean(mesh, axis=1)) - return interleave_arr(mean_positions) + return interleave(mean_positions) class Solid(object): def __init__(self, mesh, inside, outside): @@ -12,6 +12,7 @@ from geometry import * from materials import * from camera import * from vector import * +import detectors import pygame @@ -40,15 +41,7 @@ origin, direction = make_vector(origin), make_vector(direction) origin_gpu = cuda.to_device(origin) direction_gpu = cuda.to_device(direction) -#solid = Solid(read_stl('models/lionsolid.stl'), vacuum, vacuum) -#geometry = Geometry() -#geometry.add_solid(solid) -#geometry.build(bits=3) - -import detectors - -geometry = detectors.build_lbne() -#geometry = detectors.load_lbne('./detectors/lbne_8bit.pkl') +geometry = detectors.build_lbne(bits=6) mesh = geometry.mesh mesh = mesh.reshape(mesh.shape[0]*3,3) @@ -90,11 +83,12 @@ states = np.empty(width*height, dtype=np.int32) states_gpu = cuda.to_device(states) block_size = 64 -for i in range(10): +for i in range(100000): rotate(np.int32(origin.size), origin_gpu, np.float32(np.pi/100), gpuarray.vec.make_float3(0,0,1), block=(block_size,1,1), grid=(width*height//block_size+1,1)) + rotate(np.int32(direction.size), direction_gpu, np.float32(np.pi/100), gpuarray.vec.make_float3(0,0,1), block=(block_size,1,1), grid=(width*height//block_size+1,1)) - translate(np.int32(origin.size), origin_gpu, gpuarray.vec.make_float3(-.5*np.sin(i*np.pi/100), -.5*np.cos(i*np.pi/100), 0), block=(block_size,1,1), grid=(width*height//block_size+1,1)) + #translate(np.int32(origin.size), origin_gpu, gpuarray.vec.make_float3(-np.sin(i*np.pi/100)/2, -np.cos(i*np.pi/100)/2, 0), block=(block_size,1,1), grid=(width*height//block_size+1,1)) t0 = time.time() intersect_mesh(np.int32(origin.size), origin_gpu, direction_gpu, pixels_gpu, first_leaf, states_gpu, block=(block_size,1,1), grid=(width*height//block_size+1,1), texrefs=[mesh_tex, lower_bound_tex, upper_bound_tex, child_map_tex, child_len_tex]) |