summaryrefslogtreecommitdiff
path: root/chroma
diff options
context:
space:
mode:
authorStan Seibert <stan@mtrr.org>2012-01-19 14:55:31 -0500
committertlatorre <tlatorre@uchicago.edu>2021-05-09 08:42:38 -0700
commit55921fc3012c547004f82b8a18d856bfa56a108e (patch)
tree10c52158786deb9d2b76c69c69f29814763badec /chroma
parent14309ab8618a80c7f67c7d80d43bbb4779f0bb2f (diff)
downloadchroma-55921fc3012c547004f82b8a18d856bfa56a108e.tar.gz
chroma-55921fc3012c547004f82b8a18d856bfa56a108e.tar.bz2
chroma-55921fc3012c547004f82b8a18d856bfa56a108e.zip
Simple BVH construction passing the "smoke test"
Diffstat (limited to 'chroma')
-rw-r--r--chroma/bvh/simple.py11
1 files changed, 5 insertions, 6 deletions
diff --git a/chroma/bvh/simple.py b/chroma/bvh/simple.py
index 6c0e02b..6ce45e7 100644
--- a/chroma/bvh/simple.py
+++ b/chroma/bvh/simple.py
@@ -7,9 +7,10 @@ def make_simple_bvh(mesh, degree):
world_coords, leaf_nodes, morton_codes = \
create_leaf_nodes(mesh, round_to_multiple=degree)
- # rearrange in morton order
+ # rearrange in morton order. NOTE: morton_codes can be shorter than
+ # leaf_nodes if dummy padding nodes were added at the end!
argsort = morton_codes.argsort()
- leaf_nodes = leaf_nodes[argsort]
+ leaf_nodes[:len(argsort)] = leaf_nodes[argsort]
assert len(leaf_nodes) % degree == 0
# Create parent layers
@@ -23,9 +24,7 @@ def make_simple_bvh(mesh, degree):
# How many nodes total?
nodes, layer_bounds = concatenate_layers(layers)
- for i, (layer_start, layer_end) in enumerate(zip(layer_bounds[:-1],
- layer_bounds[1:])):
- print i, node_area(nodes[layer_start:layer_end]) * world_coords.world_scale**2
-
+ return BVH(degree, world_coords, nodes, layer_bounds[:-1])
+