summaryrefslogtreecommitdiff
path: root/chroma
diff options
context:
space:
mode:
Diffstat (limited to 'chroma')
-rw-r--r--chroma/geometry.py28
-rw-r--r--chroma/log.py3
2 files changed, 26 insertions, 5 deletions
diff --git a/chroma/geometry.py b/chroma/geometry.py
index 19f27a3..8c97a74 100644
--- a/chroma/geometry.py
+++ b/chroma/geometry.py
@@ -1,11 +1,14 @@
import sys
import os
-import numpy as np
-from chroma.itertoolset import *
-from chroma.tools import timeit, profile_if_possible
from hashlib import md5
import cPickle as pickle
import gzip
+import numpy as np
+import time
+
+from chroma.itertoolset import *
+from chroma.tools import timeit, profile_if_possible
+from chroma.log import logger
# all material/surface properties are interpolated at these
# wavelengths when they are sent to the gpu
@@ -270,6 +273,12 @@ class Geometry(object):
vertices = np.empty((nv[-1],3), dtype=np.float32)
triangles = np.empty((nt[-1],3), dtype=np.uint32)
+
+
+ logger.info('Setting up BVH for detector mesh...')
+ logger.info(' triangles: %d' % len(triangles))
+ logger.info(' vertices: %d' % len(vertices))
+
for i, solid in enumerate(self.solids):
vertices[nv[i]:nv[i+1]] = \
@@ -316,7 +325,7 @@ class Geometry(object):
except IOError:
pass
else:
- #print 'loading cache.'
+ logger.info('Loading BVH from cache.')
data = pickle.load(f)
reorder = data.pop('reorder')
@@ -330,8 +339,14 @@ class Geometry(object):
for key, value in data.iteritems():
setattr(self, key, value)
f.close()
+
+ logger.info(' nodes: %d' % len(self.upper_bounds))
return
+ logger.info('Constructing new BVH from mesh. This may take several minutes.')
+
+ start_time = time.time()
+
zvalues_mesh = morton_order(self.mesh, bits)
reorder = np.argsort(zvalues_mesh)
zvalues_mesh = zvalues_mesh[reorder]
@@ -397,8 +412,11 @@ class Geometry(object):
self.start_node = self.node_map.size - 1
+ logger.info('BVH construction completed in %1.1f seconds.' % (time.time() - start_time))
+ logger.info(' nodes: %d' % len(self.upper_bounds))
+
if use_cache:
- #print 'Writing BVH to cache directory...'
+ logger.info('Writing BVH to ~/.chroma cache directory...')
sys.stdout.flush()
if not os.path.exists(cache_dir):
diff --git a/chroma/log.py b/chroma/log.py
new file mode 100644
index 0000000..4c41bdb
--- /dev/null
+++ b/chroma/log.py
@@ -0,0 +1,3 @@
+import logging
+logging.basicConfig() # Avoid "no handlers could be found" warnings
+logger = logging.getLogger('chroma')