%sasami viewport 800 600 open_display bgcolour 0 0 0 `sasami_show_axis=1; #DEFINE TETRAHEDRON `tetra_size is 2.0; `tetra_edge_length is tetra_size/2.0; `tc is [0,0,0]; %eden top_x is tc[1] - tetra_edge_length; top_y is tc[2]- tetra_edge_length; top_z is tc[3]- tetra_edge_length; left_x is tc[1] + tetra_edge_length; left_y is tc[2] + tetra_edge_length; left_z is tc[3] - tetra_edge_length; right_x is tc[1] - tetra_edge_length; right_y is tc[2] + tetra_edge_length; right_z is tc[3] + tetra_edge_length; back_x is tc[1] + tetra_edge_length; back_y is tc[2] - tetra_edge_length; back_z is tc[3] + tetra_edge_length; %sasami vertex topt top_x top_y top_z; vertex leftt left_x left_y left_z; vertex rightt right_x right_y right_z; vertex backt back_x back_y back_z; polygon fronttFace lefttFace righttFace backtFace poly_geom_vertex fronttFace topt leftt rightt poly_geom_vertex lefttFace topt backt leftt poly_geom_vertex righttFace topt rightt backt poly_geom_vertex backtFace backt rightt leftt material frontSide material leftSide material rightSide material backSide material_ambient frontSide 0 0 1 1 material_ambient leftSide 0 1 0 1 material_ambient rightSide 0 1 1 1 material_ambient backSide 1 0 0 1 material_diffuse frontSide 0 0 1 1 material_diffuse leftSide 0 1 0 1 material_diffuse rightSide 0 1 1 1 material_diffuse backSide 1 0 0 1 material_specular frontSide 0 0 1 1 material_specular leftSide 0 1 0 1 material_specular rightSide 0 1 1 1 material_specular backSide 1 0 0 1 poly_material fronttFace frontSide poly_material lefttFace leftSide poly_material righttFace rightSide poly_material backtFace backSide object tetrahedron object_poly tetrahedron fronttFace lefttFace righttFace backtFace #DEFINE CUBE `cube_size = 0.5; `cube_edge_length is cube_size; `cc = [0, 0, 0]; #define co-ords of vertices %eden blf_x is cc[1] - cube_edge_length; blf_y is cc[2] - cube_edge_length; blf_z is cc[3] - cube_edge_length; brf_x is cc[1] + cube_edge_length; brf_y is cc[2] - cube_edge_length; brf_z is cc[3] - cube_edge_length; tlf_x is cc[1] - cube_edge_length; tlf_y is cc[2] - cube_edge_length; tlf_z is cc[3] + cube_edge_length; trf_x is cc[1] + cube_edge_length; trf_y is cc[2] - cube_edge_length; trf_z is cc[3] + cube_edge_length; blb_x is cc[1] - cube_edge_length; blb_y is cc[2] + cube_edge_length; blb_z is cc[3] - cube_edge_length; brb_x is cc[1] + cube_edge_length; brb_y is cc[2] + cube_edge_length; brb_z is cc[3] - cube_edge_length; tlb_x is cc[1] - cube_edge_length; tlb_y is cc[2] + cube_edge_length; tlb_z is cc[3] + cube_edge_length; trb_x is cc[1] + cube_edge_length; trb_y is cc[2] + cube_edge_length; trb_z is cc[3] + cube_edge_length; %sasami vertex blf blf_x blf_y blf_z vertex brf brf_x brf_y brf_z vertex tlf tlf_x tlf_y tlf_z vertex trf trf_x trf_y trf_z vertex blb blb_x blb_y blb_z vertex brb brb_x brb_y brb_z vertex tlb tlb_x tlb_y tlb_z vertex trb trb_x trb_y trb_z polygon front,back,left,right,top,bottom poly_geom_vertex front blf, brf, trf, tlf poly_geom_vertex back blb, tlb, trb, brb poly_geom_vertex left blb, blf,tlf,tlb poly_geom_vertex right brb, trb, trf, brf poly_geom_vertex top tlf, trf, trb, tlb poly_geom_vertex bottom blf, blb, brb, brf material frontFace material backFace material topFace material bottomFace material leftFace material rightFace material_ambient frontFace 1 0 1 1 material_ambient backFace 0 0 1 1 material_ambient topFace 1 0 0 1 material_ambient bottomFace 0 1 0 1 material_ambient leftFace 0 1 1 1 material_ambient rightFace 1 1 0 1 material_diffuse frontFace 1 0 1 1 material_diffuse backFace 0 0 1 1 material_diffuse topFace 1 0 0 1 material_diffuse bottomFace 0 1 0 1 material_diffuse leftFace 0 1 1 1 material_diffuse rightFace 1 1 0 1 material_specular frontFace 1 0 1 1 material_specular backFace 0 0 1 1 material_specular topFace 1 0 0 1 material_specular bottomFace 0 1 0 1 material_specular leftFace 0 1 1 1 material_specular rightFace 1 1 0 1 poly_material front frontFace poly_material back backFace poly_material top topFace poly_material bottom bottomFace poly_material left leftFace poly_material right rightFace object cube object_poly cube front, back, top, bottom, left, right #DEFINE OCTAHEDRON `octahedron_size = 1; `oct_edge_length is octahedron_size; `oc = [0,0,0]; %eden vr_x = oc[1] + oct_edge_length; vr_y = oc[2]; vr_z = oc[3]; vbk_x = oc[1]; vbk_y = oc[2] + oct_edge_length; vbk_z = oc[3]; vt_x = oc[1]; vt_y = oc[2]; vt_z = oc[3] + oct_edge_length; vl_x = oc[1] - oct_edge_length; vl_y = oc[2]; vl_z = oc[3]; vf_x = oc[1]; vf_y = oc[2] - oct_edge_length; vf_z = oc[3]; vbm_x = oc[1]; vbm_y = oc[2]; vbm_z = oc[3] - oct_edge_length; %sasami vertex vr vr_x vr_y vr_z vertex vbk vbk_x vbk_y vbk_z; vertex vt vt_x vt_y vt_z vertex vl vl_x vl_y vl_z; vertex vf vf_x vf_y vf_z; vertex vbm vbm_x vbm_y vbm_z; polygon ftf, ftb, ftl, ftr, fbf, fbb, fbl, fbr poly_geom_vertex ftf vf, vr, vt poly_geom_vertex fbf vbm, vr, vf poly_geom_vertex ftl vf, vt, vl poly_geom_vertex fbl vf, vl, vbm poly_geom_vertex ftr vr, vbk, vt poly_geom_vertex fbr vbm, vbk, vr poly_geom_vertex ftb vbk, vl, vt poly_geom_vertex fbb vbk, vbm, vl material ftfFace material ftbFace material ftlFace material ftrFace material fbfFace material fbbFace material fblFace material fbrFace material_ambient ftfFace 0 0 0 1 material_ambient ftbFace 0 0 1 1 material_ambient ftlFace 0 1 0 1 material_ambient ftrFace 1 0 0 1 material_ambient fbfFace 1 0 1 1 material_ambient fbbFace 1 1 1 1 material_ambient fblFace 1 0 0 1 material_ambient fbrFace 0 1 0 1 material_diffuse ftfFace 0 0 0 1 material_diffuse ftbFace 0 0 1 1 material_diffuse ftlFace 0 1 0 1 material_diffuse ftrFace 1 0 0 1 material_diffuse fbfFace 1 0 1 1 material_diffuse fbbFace 1 1 1 1 material_diffuse fblFace 1 0 0 1 material_diffuse fbrFace 0 1 0 1 material_specular ftfFace 0 0 0 1 material_specular ftbFace 0 0 1 1 material_specular ftlFace 0 1 0 1 material_specular ftrFace 1 0 0 1 material_specular fbfFace 1 0 1 1 material_specular fbbFace 1 1 1 1 material_specular fblFace 1 0 0 1 material_specular fbrFace 0 1 0 1 poly_material ftf ftfFace poly_material ftb ftbFace poly_material ftl ftlFace poly_material ftr ftrFace poly_material fbf fbfFace poly_material fbb fbbFace poly_material fbl fblFace poly_material fbr fbrFace object octahedron object_poly octahedron ftf, ftb, ftl, ftr, fbf, fbb, fbl,fbr #DEFINE DODECAHEDRON %eden dodeca_size = 2; edge_ld is dodeca_size/2.0; dc = [0, 0, 0]; RD = (1 + sqrt(5.0))/2.0; a_x = dc[1]+edge_ld; a_y = dc[2]+edge_ld; a_z = dc[3]+edge_ld; b_x = dc[1]+edge_ld; b_y = dc[2]+edge_ld; b_z = dc[3]-edge_ld; c_x = dc[1]+edge_ld; c_y = dc[2]-edge_ld; c_z = dc[2]-edge_ld; d_x = dc[1]-edge_ld; d_y = dc[2]-edge_ld; d_z = dc[3]-edge_ld; e_x = dc[1]-edge_ld; e_y = dc[2]+edge_ld; e_z = dc[3]-edge_ld; f_x = dc[1]-edge_ld; f_y = dc[2]+edge_ld; f_z = dc[3]+edge_ld; g_x = dc[1]+edge_ld; g_y = dc[2]-edge_ld; g_z = dc[3]+edge_ld; h_x = dc[1]-edge_ld; h_y = dc[2]-edge_ld; h_z = dc[3]+edge_ld; i_x = dc[1]; i_y = dc[2]+ RD; i_z = dc[3]+ 1/RD; j_x = dc[1]; j_y = dc[2]- RD; j_z = dc[3]+ 1/RD; k_x = dc[1]; k_y = dc[2]- RD; k_z = dc[3]- 1/RD; l_x = dc[1]; l_y = dc[2]+ RD; l_z = dc[3]- 1/RD; m_x = dc[1]+ RD; m_y = dc[2]+ 1/RD; m_z = dc[3]; n_x = dc[1]+ RD; n_y = dc[2]- 1/RD; n_z = dc[3]; o_x = dc[1]- RD; o_y = dc[2]+ 1/RD; o_z = dc[3]; p_x = dc[1]- RD; p_y = dc[2]- 1/RD; p_z = dc[3]; q_x = dc[1]+ 1/RD; q_y = dc[2]; q_z = dc[3]+ RD; r_x = dc[1]+ 1/RD; r_y = dc[2]; r_z = dc[3]- RD; s_x = dc[1]- 1/RD; s_y = dc[2]; s_z = dc[3]+ RD; t_x = dc[1]- 1/RD; t_y = dc[2]; t_z = dc[3]- RD; %sasami vertex a a_x a_y a_z vertex b b_x b_y b_z vertex c c_x c_y c_z vertex d d_x d_y d_z vertex e e_x e_y e_z vertex f f_x f_y f_z vertex g g_x g_y g_z vertex h h_x h_y h_z vertex i i_x i_y i_z vertex j j_x j_y j_z vertex k k_x k_y k_z vertex l l_x l_y l_z vertex m m_x m_y m_z vertex n n_x n_y n_z vertex o o_x o_y o_z vertex p p_x p_y p_z vertex q q_x q_y q_z vertex r r_x r_y r_z vertex s s_x s_y s_z vertex t t_x t_y t_z polygon abcde, bcdef, cdefg, defgh, efghi, fghij, ghijk, hijkl, ijklm,jklmn, klmno, lmnop poly_geom_vertex abcde f, s, q, a, i poly_geom_vertex bcdef a, q, g, n, m poly_geom_vertex cdefg a, m, b, l, i poly_geom_vertex defgh e, l, b, r, t poly_geom_vertex efghi b, m, n, c, r poly_geom_vertex fghij c, k, d, t, r poly_geom_vertex ghijk c, n, g, j, k poly_geom_vertex hijkl d, p, o, e, t poly_geom_vertex ijklm k, j, h, p, d poly_geom_vertex jklmn e, o, f, i, l poly_geom_vertex klmno f, o, p, h, s poly_geom_vertex lmnop q, s, h, j, g material abcdeFace material bcdefFace material cdefgFace material defghFace material efghiFace material fghijFace material ghijkFace material hijklFace material ijklmFace material jklmnFace material klmnoFace material lmnopFace material_ambient abcdeFace 0 0 0.5 1 material_ambient bcdefFace 1 0.2 1 1 material_ambient cdefgFace 0 0.5 0.5 1 material_ambient defghFace 0.5 0 0 1 material_ambient efghiFace 0.8 0 0.4 1 material_ambient fghijFace 0.5 0.5 0 1 material_ambient cdefgFace 0.2 0.2 1 1 material_ambient defghFace 1 0.2 0.2 1 material_ambient efghiFace 0.2 1 1 1 material_ambient fghijFace 0.5 0 0.5 1 material_ambient ghijkFace 1 1 0.2 1 material_ambient hijklFace 0 0.5 0 1 material_ambient lmnopFace 0.2 1 0.2 1 material_diffuse abcdeFace 0 0 0.5 1 material_diffuse bcdefFace 1 0.2 1 1 material_diffuse cdefgFace 0 0.5 0.5 1 material_diffuse defghFace 0.5 0 0 1 material_diffuse efghiFace 0.8 0 0.4 1 material_diffuse fghijFace 0.5 0.5 0 1 material_diffuse cdefgFace 0.2 0.2 1 1 material_diffuse defghFace 1 0.2 0.2 1 material_diffuse efghiFace 0.2 1 1 1 material_diffuse fghijFace 0.5 0 0.5 1 material_diffuse ghijkFace 1 1 0.2 1 material_diffuse hijklFace 0 0.5 0 1 material_diffuse lmnopFace 0.2 1 0.2 1 material_specular abcdeFace 0 0 0.5 1 material_specular bcdefFace 1 0.2 1 1 material_specular cdefgFace 0 0.5 0.5 1 material_specular defghFace 0.5 0 0 1 material_specular efghiFace 0.8 0 0.4 1 material_specular fghijFace 0.5 0.5 0 1 material_specular cdefgFace 0.2 0.2 1 1 material_specular defghFace 1 0.2 0.2 1 material_specular efghiFace 0.2 1 1 1 material_specular fghijFace 0.5 0 0.5 1 material_specular ghijkFace 1 1 0.2 1 material_specular hijklFace 0 0.5 0 1 material_specular lmnopFace 0.2 1 0.2 1 poly_material abcde abcdeFace poly_material bcdef bcdefFace poly_material cdefg cdefgFace poly_material defgh defghFace poly_material efghi efghiFace poly_material fghij fghijFace poly_material cdefg cdefgFace poly_material defgh defghFace poly_material efghi efghiFace poly_material fghij fghijFace poly_material ghijk ghijkFace poly_material hijkl hijklFace poly_material lmnop lmnopFace object dodecahedron object_poly dodecahedron abcde, bcdef, cdefg, defgh, efghi, fghij, ghijk, hijkl, ijklm, jklmn, klmno, lmnop #DEFINE ICOSAHEDRON %eden icos_size = 1; edge_l is icos_size*2; ic = [0, 0, 0]; pi=3.14; t1 = 2*pi/5; t2 = pi/10; t4 = pi/5; t3 = -3*pi/10; R is (edge_l/2)/sin(t4); H is cos(t4)*R; Cx is R*cos(t2); Cy is R*sin(t2); H1 is sqrt(edge_l*edge_l-R*R); H2 is sqrt((H+R)*(H+R)-H*H); Z2 is (H2 - H1)/2; Z1 is Z2 + H1; ai_x = ic[1]; ai_y = ic[2]; ai_z = ic[3]+Z1; bi_x = ic[1]; bi_y = ic[2]+R; bi_z = ic[3]+Z2; ci_x = ic[1]+Cx; ci_y = ic[2]+Cy; ci_z = ic[2]+Z2; di_x = ic[1]+edge_l/2; di_y = ic[2]-H; di_z = ic[3]+Z2; ei_x = ic[1]-edge_l/2; ei_y = ic[2]-H; ei_z = ic[3]+Z2; fi_x = ic[1]-Cx; fi_y = ic[2]+Cy; fi_z = ic[3]+Z2; gi_x = ic[1]; gi_y = ic[2]-R; gi_z = ic[3]-Z2; hi_x = ic[1]-Cx; hi_y = ic[2]-Cy; hi_z = ic[3]-Z2; ii_x = ic[1]-edge_l/2; ii_y = ic[2]+H; ii_z = ic[3]-Z2; ji_x = ic[1]+edge_l/2; ji_y = ic[2]+H; ji_z = ic[3]-Z2; ki_x = ic[1]+Cx; ki_y = ic[2]-Cy; ki_z = ic[3]-Z2; li_x = ic[1]; li_y = ic[2]; li_z = ic[3]-Z1; %sasami vertex ai ai_x ai_y ai_z vertex bi bi_x bi_y bi_z vertex ci ci_x ci_y ci_z vertex di di_x di_y di_z vertex ei ei_x ei_y ei_z vertex fi fi_x fi_y fi_z vertex gi gi_x gi_y gi_z vertex hi hi_x hi_y hi_z vertex ii ii_x ii_y ii_z vertex ji ji_x ji_y ji_z vertex ki ki_x ki_y ki_z vertex li li_x li_y li_z polygon abf, afe, aed, adc, acb, cdk, ckj, bcj, bji, fbi, fih, efh, ehg, deg, dgk, jkl, ijl, hil, ghl, kgl poly_geom_vertex abf bi,fi,ai poly_geom_vertex afe ai,fi,ei poly_geom_vertex aed ai,ei,di poly_geom_vertex adc ai,di,ci poly_geom_vertex acb ai,ci,bi poly_geom_vertex cdk ci,di,ki poly_geom_vertex ckj ci,ki,ji poly_geom_vertex bcj bi,ci,ji poly_geom_vertex bji bi,ji,ii poly_geom_vertex fbi fi,bi,ii poly_geom_vertex fih fi,ii,hi poly_geom_vertex efh ei,fi,hi poly_geom_vertex ehg ei,hi,gi poly_geom_vertex deg di,ei,gi poly_geom_vertex dgk di,gi,ki poly_geom_vertex jkl ji,ki,li poly_geom_vertex ijl ii,ji,li poly_geom_vertex hil hi,ii,li poly_geom_vertex ghl gi,hi,li poly_geom_vertex kgl ki,gi,li material abfFace material afeFace material aedFace material adcFace material acbFace material cdkFace material ckjFace material bcjFace material bjiFace material fbiFace material fihFace material efhFace material ehgFace material degFace material dgkFace material jklFace material ijlFace material hilFace material ghlFace material kglFace material_ambient abfFace 0 0 1 1 material_ambient afeFace 0 1 0 1 material_ambient aedFace 0 1 1 1 material_ambient adcFace 1 0 0 1 material_ambient acbFace 1 0 1 1 material_ambient cdkFace 1 1 0 1 material_ambient ckjFace 0 0 1 1 material_ambient bcjFace 0 1 0 1 material_ambient bjiFace 0 1 1 1 material_ambient fbiFace 1 0 0 1 material_ambient fihFace 1 0 1 1 material_ambient efhFace 1 1 0 1 material_ambient ehgFace 0 0 1 1 material_ambient degFace 0 1 0 1 material_ambient dgkFace 0 1 1 1 material_ambient jklFace 1 0 0 1 material_ambient ijlFace 1 0 1 1 material_ambient hilFace 1 1 0 1 material_ambient ghlFace 0 0 1 1 material_ambient kglFace 0 1 0 1 material_diffuse abfFace 0 0 1 1 material_diffuse afeFace 0 1 0 1 material_diffuse aedFace 0 1 1 1 material_diffuse adcFace 1 0 0 1 material_diffuse acbFace 1 0 1 1 material_diffuse cdkFace 1 1 0 1 material_diffuse ckjFace 0 0 1 1 material_diffuse bcjFace 0 1 0 1 material_diffuse bjiFace 0 1 1 1 material_diffuse fbiFace 1 0 0 1 material_diffuse fihFace 1 0 1 1 material_diffuse efhFace 1 1 0 1 material_diffuse ehgFace 0 0 1 1 material_diffuse degFace 0 1 0 1 material_diffuse dgkFace 0 1 1 1 material_diffuse jklFace 1 0 0 1 material_diffuse ijlFace 1 0 1 1 material_diffuse hilFace 1 1 0 1 material_diffuse ghlFace 0 0 1 1 material_diffuse kglFace 0 1 0 1 material_specular abfFace 0 0 1 1 material_specular afeFace 0 1 0 1 material_specular aedFace 0 1 1 1 material_specular adcFace 1 0 0 1 material_specular acbFace 1 0 1 1 material_specular cdkFace 1 1 0 1 material_specular ckjFace 0 0 1 1 material_specular bcjFace 0 1 0 1 material_specular bjiFace 0 1 1 1 material_specular fbiFace 1 0 0 1 material_specular fihFace 1 0 1 1 material_specular efhFace 1 1 0 1 material_specular ehgFace 0 0 1 1 material_specular degFace 0 1 0 1 material_specular dgkFace 0 1 1 1 material_specular jklFace 1 0 0 1 material_specular ijlFace 1 0 1 1 material_specular hilFace 1 1 0 1 material_specular ghlFace 0 0 1 1 material_specular kglFace 0 1 0 1 poly_material abf abfFace poly_material afe afeFace poly_material aed aedFace poly_material adc adcFace poly_material acb acbFace poly_material cdk cdkFace poly_material ckj ckjFace poly_material bcj bcjFace poly_material bji bjiFace poly_material fbi fbiFace poly_material fih fihFace poly_material efh efhFace poly_material ehg ehgFace poly_material deg degFace poly_material dgk dgkFace poly_material jkl jklFace poly_material ijl ijlFace poly_material hil hilFace poly_material ghl ghlFace poly_material kgl kglFace object icosahedron object_poly icosahedron abf, afe, aed, adc, acb, cdk, ckj, bcj, bji, fbi, fih, efh, ehg, deg, dgk, jkl, ijl, hil, ghl, kgl #TRANSLATE POLYHEDRA object_pos tetrahedron 4 0 0 object_pos cube 0 4 0 object_pos octahedron -4 0 0 object_pos dodecahedron 0 -4 0