diff options
author | Stan Seibert <stan@mtrr.org> | 2011-08-11 17:44:43 -0400 |
---|---|---|
committer | Stan Seibert <stan@mtrr.org> | 2011-08-11 17:44:43 -0400 |
commit | 8487c83d39b12bd830325202a60848df0adf02f5 (patch) | |
tree | 54ae0ce9f8213ca045aa6522bd46a9e1105927e7 /geometry.py | |
parent | 2b7ee5fb5a20fadfa24766442d2d3609ed291b63 (diff) | |
parent | 00aa07a12f8f00e29a3a04f2850ccd4fc91cc951 (diff) | |
download | chroma-8487c83d39b12bd830325202a60848df0adf02f5.tar.gz chroma-8487c83d39b12bd830325202a60848df0adf02f5.tar.bz2 chroma-8487c83d39b12bd830325202a60848df0adf02f5.zip |
merge
Diffstat (limited to 'geometry.py')
-rw-r--r-- | geometry.py | 37 |
1 files changed, 12 insertions, 25 deletions
diff --git a/geometry.py b/geometry.py index 35da2ac..9ef49bc 100644 --- a/geometry.py +++ b/geometry.py @@ -258,28 +258,9 @@ class Geometry(object): pass checksum = md5(str(bits)) - + checksum.update(str(shift)) checksum.update(self.mesh.vertices) checksum.update(self.mesh.triangles) - checksum.update(self.colors) - checksum.update(self.solid_id) - checksum.update(self.material1_index) - checksum.update(self.material2_index) - checksum.update(self.surface_index) - - for material in self.unique_materials: - checksum.update(material.refractive_index) - checksum.update(material.absorption_length) - checksum.update(material.scattering_length) - - for surface in self.unique_surfaces: - if surface is not None: - checksum.update(surface.detect) - checksum.update(surface.absorb) - checksum.update(surface.reflect_diffuse) - checksum.update(surface.reflect_specular) - else: - checksum.update(str(None)) cache_dir = os.path.expanduser('~/.chroma') cache_file = checksum.hexdigest() @@ -292,9 +273,16 @@ class Geometry(object): else: print 'loading cache.' data = pickle.load(f) - self.mesh.triangles = self.mesh.triangles[data['reorder']] - del data['reorder'] - for key, value in data.items(): + + reorder = data.pop('reorder') + self.mesh.triangles = self.mesh.triangles[reorder] + self.material1_index = self.material1_index[reorder] + self.material2_index = self.material2_index[reorder] + self.surface_index = self.surface_index[reorder] + self.colors = self.colors[reorder] + self.solid_id = self.solid_id[reorder] + + for key, value in data.iteritems(): setattr(self, key, value) f.close() return @@ -365,8 +353,7 @@ class Geometry(object): with gzip.GzipFile(cache_path, 'wb', compresslevel=1) as f: data = {} - for key in ['material1_index', 'material2_index', 'surface_index', 'colors', 'solid_id', 'lower_bounds', 'upper_bounds', 'node_map', 'node_map_end', 'layers', 'first_node']: + for key in ['lower_bounds', 'upper_bounds', 'node_map', 'node_map_end', 'layers', 'first_node']: data[key] = getattr(self, key) data['reorder'] = reorder pickle.dump(data, f, -1) - |