diff options
Diffstat (limited to 'solids/r11708.py')
-rw-r--r-- | solids/r11708.py | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/solids/r11708.py b/solids/r11708.py new file mode 100644 index 0000000..a0476d0 --- /dev/null +++ b/solids/r11708.py @@ -0,0 +1,48 @@ +import os +import sys +import numpy as np + +dir = os.path.split(os.path.realpath(__file__))[0] +sys.path.append(dir + '/..') + +import models +from stl import mesh_from_stl +from geometry import * +from materials import * + +r11708_outer_mesh = mesh_from_stl(models.dir + '/hamamatsu_12inch_outer.stl') +r11708_inner_mesh = mesh_from_stl(models.dir + '/hamamatsu_12inch_inner.stl') + +photocathode_triangles = np.mean(r11708_inner_mesh[:], axis=1)[:,1] > 0 + +inner_color = np.empty(len(r11708_inner_mesh.triangles), np.uint32) +inner_color[photocathode_triangles] = 0xff0000 +inner_color[~photocathode_triangles] = 0x00ff00 + +inner_surface = np.empty(len(r11708_inner_mesh.triangles), np.object) +inner_surface[photocathode_triangles] = black_surface +inner_surface[~photocathode_triangles] = shiny_surface + +r11708_inner_solid = Solid(r11708_inner_mesh, vacuum, glass, inner_surface, color=inner_color) +r11708_outer_solid = Solid(r11708_outer_mesh, glass, lightwater_sno) + +r11708 = r11708_inner_solid + r11708_outer_solid + +if __name__ == '__main__': + from view import view + from copy import deepcopy + + r11708_outer_mesh_cutaway = deepcopy(r11708_outer_mesh) + r11708_outer_mesh_cutaway.triangles = \ + r11708_outer_mesh_cutaway.triangles[\ + np.mean(r11708_outer_mesh_cutaway[:], axis=1)[:,0] > 0] + + r11708_outer_solid_cutaway = Solid(r11708_outer_mesh_cutaway, glass, lightwater_sno) + + r11708_cutaway = r11708_inner_solid + r11708_outer_solid_cutaway + + geometry = Geometry() + geometry.add_solid(r11708_cutaway) + geometry.build(bits=8) + + view(geometry, 'r11708_cutaway') |