summaryrefslogtreecommitdiff
path: root/materials.py
diff options
context:
space:
mode:
authorAnthony LaTorre <tlatorre9@gmail.com>2011-06-18 00:12:09 -0400
committerAnthony LaTorre <tlatorre9@gmail.com>2011-06-18 00:12:09 -0400
commitab54917bceb4943f6750f589ffe6a032b2770fb1 (patch)
treee76ede76a1344820c424f2c07bc44ef22201864c /materials.py
parent34ff4d6c734e5adf3aa8a0e7ca89031effdb1489 (diff)
downloadchroma-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.py88
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