diff options
author | Anthony LaTorre <tlatorre9@gmail.com> | 2011-06-18 00:12:09 -0400 |
---|---|---|
committer | Anthony LaTorre <tlatorre9@gmail.com> | 2011-06-18 00:12:09 -0400 |
commit | ab54917bceb4943f6750f589ffe6a032b2770fb1 (patch) | |
tree | e76ede76a1344820c424f2c07bc44ef22201864c /materials.py | |
parent | 34ff4d6c734e5adf3aa8a0e7ca89031effdb1489 (diff) | |
download | chroma-ab54917bceb4943f6750f589ffe6a032b2770fb1.tar.gz chroma-ab54917bceb4943f6750f589ffe6a032b2770fb1.tar.bz2 chroma-ab54917bceb4943f6750f589ffe6a032b2770fb1.zip |
moved class definitions for Solid, Mesh, Material, and Surface into geometry.py and moved instances of these classes into separate folders. the Solid object no longer contains a rotation, displacement, or id variable; instead, they are passed to a geometry object when calling add_solid().
Diffstat (limited to 'materials.py')
-rw-r--r-- | materials.py | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/materials.py b/materials.py deleted file mode 100644 index 9feb866..0000000 --- a/materials.py +++ /dev/null @@ -1,88 +0,0 @@ -import numpy as np -from ratdb import load - -standard_wavelengths = np.arange(200, 810, 20).astype(np.float32) - -class Material(object): - """Material optical properties.""" - def __init__(self, name='none'): - self.name = name - - self.refractive_index = None - self.absorption_length = None - self.scattering_length = None - - def set(self, name, value, wavelengths=standard_wavelengths): - if np.iterable(value): - if len(value) != len(wavelengths): - raise ValueError('shape mismatch') - else: - value = np.tile(value, len(wavelengths)) - - self.__dict__[name] = np.array(zip(wavelengths, value), dtype=np.float32) - -class Surface(object): - """Surface optical properties.""" - def __init__(self, name='none'): - self.name = name - - self.absorption = None - self.reflection_diffuse = None - self.reflection_specular = None - - def set(self, name, value, wavelengths=standard_wavelengths): - if np.iterable(value): - if len(value) != len(wavelengths): - raise ValueError('shape mismatch') - else: - value = np.tile(value, len(wavelengths)) - - self.__dict__[name] = np.array(zip(wavelengths, value), dtype=np.float32) - -vacuum = Material('vacuum') -vacuum.set('refractive_index', 1) -vacuum.set('absorption_length', np.finfo(np.float32).max) -vacuum.set('scattering_length', np.finfo(np.float32).max) - -lambertian_surface = Surface('lambertian_surface') -lambertian_surface.set('absorption', 0) -lambertian_surface.set('reflection_specular', 0) -lambertian_surface.set('reflection_diffuse', 1) - -black_surface = Surface('black_surface') -black_surface.set('absorption', 1) -black_surface.set('reflection_specular', 0) -black_surface.set('reflection_diffuse', 0) - -shiny_surface = Surface('shiny_surface') -shiny_surface.set('absorption', 0) -shiny_surface.set('reflection_specular', 1) -shiny_surface.set('reflection_diffuse', 0) - -db = load(open('OPTICS.ratdb'))['OPTICS'] - -glass = Material('pmt_glass') -glass.set('refractive_index', db['glass']['RINDEX_value2'], db['glass']['RINDEX_value1']) -glass.set('absorption_length', db['glass']['ABSLENGTH_value2'], db['glass']['ABSLENGTH_value1']) -# convert mm -> m -glass.absorption_length[:,1] /= 1000.0 -# scattering length for glass? -glass.set('scattering_length', np.finfo(np.float32).max) - -lightwater_sno = Material('lightwater_sno') -lightwater_sno.set('refractive_index', db['lightwater_sno']['RINDEX_value2'], db['lightwater_sno']['RINDEX_value1']) -lightwater_sno.set('absorption_length', db['lightwater_sno']['ABSLENGTH_value2'], db['lightwater_sno']['ABSLENGTH_value1']) -# convert mm -> m -lightwater_sno.absorption_length[:,1] /= 1000.0 -lightwater_sno.set('scattering_length', db['lightwater_sno']['RSLENGTH_value2'], db['lightwater_sno']['RSLENGTH_value1']) -# convert mm -> m -lightwater_sno.scattering_length[:,1] /= 1000.0 - -acrylic_sno = Material('acrylic_sno') -acrylic_sno.set('refractive_index', db['acrylic_sno']['RINDEX_value2'], db['lightwater_sno']['RINDEX_value1']) -acrylic_sno.set('absorption_length', db['acrylic_sno']['ABSLENGTH_value2'], db['acrylic_sno']['ABSLENGTH_value1']) -# convert mm -> m -acrylic_sno.absorption_length[:,1] /= 1000.0 -acrylic_sno.set('scattering_length', db['acrylic_sno']['RSLENGTH_value2'], db['acrylic_sno']['RSLENGTH_value1']) -# convert mm -> m -acrylic_sno.scattering_length[:,1] /= 1000.0 |