#include "colors.inc" #include "math.inc" #include "rad_def.inc" #include "transforms.inc" global_settings { assumed_gamma 1.0 // radiosity {Rad_Settings(Radiosity_Final, off, off)} } // #declare Pat = 16 ; #declare RC = seed (clock*3); #declare RCrA = seed (clock*17); #declare RCrA2 = seed (clock*17); #declare RCrB = seed (clock*19); #declare RCrB2 = seed (clock*19); #declare RC3 = seed (clock*11); #declare RC4 = seed (clock*11); // T0 = no triangles; T1 = triangles; T2 =smooth_triangles #declare T = 1 ; // 1 = pruebas // 2 = finales 1 solo toro // 3 = detalle del modelo de una sola baldosa // 4 = toros aleatorios // 5 / fondo blanco // 6 = pruebas con cilindros #declare P = 4; #declare My_Pigment_Array = array [6]{ <240,240,150>/255, // cylinDer pigment <0.6,0.2,0.2> // pigment 1 Tan <1,1,1> // pigment 2 White <-.2,.2,.6> // pigment 3 Blue < 0.427451, 0.8745098, 0.4156863 > // pigment 4 green < 0, 0, 0> // pigment 5 black } /* Qué es qué? TBTFH - The Bastard Torus From Hell megamacro para construir figuras toroidales, cilindricas, planos o esferas mediantes cilindros y esferas formando patrones periodicos. sph_thickness - es el grosor de las esferas que sirven de unión entre los cilindros bt - dentro de TBTFH es la declaración del objeto generado que al final de la macro es centrado sobre los ejes XYZ. bt = bastard torus. px() - macro interna de TBTFH para calcular la distribución de las esferas y los cilindros sobre un plano o un cilindro, o un toro. XYH es un vector tridimensional para dibujar (como en una baldosa) los motivos que se repetirán alrededor de la figura creada H es la altura (Heigth) sobre la superficie del toro, para crear baldosas tridimensionales. - también sirve para calcular la normal sobre un punto dado A[] - Array donde se almacenan las coordenadas que forman el diseño de las baldosas mediante cilindros y esferas N - Normal a la superficie del objeto. Utilizado principalmente en la opción de smooth_triangle para suavizar la apariencia de los triangulos */ // Persistence of Vision Ray Tracer Scene Description File // Vers: 43 // Desc: The Bastard Torus From Hell // Date: January 2006 Feb 2008 // Auth: B Gimeno // e-mail: bgimeno@lycos.es //----------------------the macro--------------------------------// // The Bastard Torus From Hell #macro TBTFH ( major_r_A, // major radius at the beginning of the shape, major_r_B, // major radius at the end of the shape minor_r_A, // minor radius at the beginning of the shape, minor_r_B, // minor radius at the end of the shape, n_s_mjr_rd, // number of segments around major radius, arc_mjr_rd, // arc degrees major radius start_mjr_rd, // start major radius tiles from, n_s_mnr_rd, // number of segments around minor radius, arc_mnr_rd, // arc degrees minor radius start_mnr_rd, // start minor radius tiles from Mj_Lumps, // N-Lumps over Major Radius, Mj_Lumps_rad, // Major_Lumps Radii variations, Mn_Lumps, // N-Lumps over Minor Radius, Mn_Lumps_rad, // Minor_Lumps Radii variations, helix_height, // height difference between both sides of the shape cyl_thickness, // cylinder thickness mesh_model, // choose a pattern, triangle_mesh, // choose no_triangles, triangles, or smooth_triangle shape, // the shape is generated as plane (0), a torus (1), or a cylinder (2), amount_Rnd, // amount of random minor_twist, // degrees of twist around minor radius Numbers // show the array points array_id_pgmnt // name of the array that contains all the pigments needed ) #local cylinder_txt = texture {pigment { rgb array_id_pgmnt[0] } finish {reflection 0.25 phong .6} } #local sph_thickness = cyl_thickness * 1 ; #local N = 100000000000000; #local No_Object = object {sphere {0,0 no_image no_reflection no_shadow pigment {rgb 0 filter 1} } } ; // ------------------------------------- // ------------------------------------- // ------------------------------------- #macro PUT_SPHERES(array_id) #local dimn_sph = dimension_size(array_id,1); #local N_sp = 0; #while (N_sp, , }; smooth_triangle {px(A[P1]), px(A2[0]), px(A[P2]), px(A2[1]), px(A[P3]), px(A2[2]) } #break #end texture { pigment {rgb array_id_pgmnt[array_pigment_id]} finish {reflection 0.15 phong 0 diffuse .5 } } } #end #macro PATCH_3_wo_array (P1,P2,P3,SMOOTH,array_pigment_id) object { #switch (SMOOTH) #case (0) No_Object #break #case (1) triangle {px(P1),px(P2),px(P3)} #break #case (2) #local A2 = array[3]{, , }; smooth_triangle {px(P1), px(A2[0]), px(P2), px(A2[1]), px(P3), px(A2[2]) } #break #end texture { pigment {rgb array_id_pgmnt[array_pigment_id]} finish {reflection 0.15 phong 0 diffuse .5 } } } #end // ------------------------------------------------ #macro PATCH_4 (P1,P2,P3,P4,SMOOTH,array_pigment_id) union { object {PATCH_3(P1,P2,P3,SMOOTH,array_pigment_id) } object {PATCH_3(P2,P3,P4,SMOOTH,array_pigment_id) } } #end // ------------------------------------------------ #macro PATCH_6 (P1,P2,P3,P4,P5,P6,SMOOTH,array_pigment_id) // puntos en zig-zag union { object {PATCH_4 (P1,P2,P3,P4,SMOOTH,array_pigment_id)} object {PATCH_4 (P3,P4,P5,P6,SMOOTH,array_pigment_id)} } #end // ------------------------------------------------ #macro PATCH_8 (P1,P2,P3,P4,P5,P6,P7,P8,SMOOTH,array_pigment_id) // puntos en zig-zag union { object {PATCH_4 (P1,P2,P3,P4,SMOOTH,array_pigment_id)} object {PATCH_4 (P3,P4,P5,P6,SMOOTH,array_pigment_id)} object {PATCH_4 (P5,P6,P7,P8,SMOOTH,array_pigment_id)} } #end // ------------------------------------------------ #macro PATCH_array2(id_array,SMOOTH,array_pigment_id) #local C=0; #while (C,<0,0,major_r>,cyl_thickness pigment {White}} //cylinder {<-major_r,0,0>,,cyl_thickness pigment {White}} /* cone {<0,0,0>,major_r_A, <0,n_s_mnr_rd*minor_r_A,0>,major_r_B pigment {White filter .8}} */ // ------------------------------------- // ------------------------------------- // ------------------------------------- // ------------------------------------- // ------------------------------------- // ------------------------------------- // ------------------------------------- // ------------------------------------- // ------------------------------------- #while (n_seg_mjr_rem; #break #case (1) #local minor_r2= minor_r+(Mn_Lumps_rad*cosd((n_seg_mjr_rem+XYH.x)*((360*Mn_Lumps)/n_s_mjr_rd))) ; #local major_r2= major_r+(Mj_Lumps_rad*cosd((n_seg_mjr_rem+XYH.x)*((360*Mj_Lumps)/n_s_mjr_rd))) ; #local AAA1 = (arc_mjr_rd/n_s_mjr_rd)*(n_seg_mjr_rem+XYH.x)+start_mjr_rd; #local AAA2 = (arc_mnr_rd/n_s_mnr_rd)*(n_seg_mnr_rem+XYH.y)+start_mnr_rd+twist_index ; #local AAA3 = major_r2-(Nxt*mjr_rd_index) ; #local AAA4 = minor_r2-(Nxt*mnr_rd_index) ; #local R1 = <(sind(AAA1)*AAA3)-((cosd(AAA2)*(AAA4+XYH.z)*(sind(AAA1)))), (sind(AAA2)*(AAA4+XYH.z))+(helix_height/n_s_mjr_rd)*(n_seg_mjr_rem+XYH.x), (cosd(AAA1)*AAA3)-((cosd(AAA2)*(AAA4+XYH.z))*(cosd(AAA1)))>; #local Rand1 = seed (R1.x+R1.y+R1.z) ; #local Vertex = <(sind(AAA1)*AAA3)-((cosd(AAA2)*(AAA4+XYH.z)*(sind(AAA1))))+amount_Rnd*sind(360*rand(Rand1)), (sind(AAA2)*(AAA4+XYH.z))+(helix_height/n_s_mjr_rd)*(n_seg_mjr_rem+XYH.x)+amount_Rnd*sind(360*rand(Rand1)), (cosd(AAA1)*AAA3)-((cosd(AAA2)*(AAA4+XYH.z))*(cosd(AAA1)))+amount_Rnd*sind(360*rand(Rand1))>; /* #local Vertex = <(sind((arc_mjr_rd/n_s_mjr_rd)*(n_seg_mjr_rem+XYH.x)+start_mjr_rd)*(major_r-(Nxt*mjr_rd_index)))- ((cosd((arc_mnr_rd/n_s_mnr_rd)*(n_seg_mnr_rem+XYH.y)+start_mnr_rd)*(minor_r2-(Nxt*mnr_rd_index)+XYH.z)*(sind((arc_mjr_rd/n_s_mjr_rd)*(n_seg_mjr_rem+XYH.x)+start_mjr_rd)))), (sind((arc_mnr_rd/n_s_mnr_rd)*(n_seg_mnr_rem+XYH.y)+start_mnr_rd)*(minor_r2-(Nxt*mnr_rd_index)+XYH.z))+ (helix_height/n_s_mjr_rd)*(n_seg_mjr_rem+XYH.x), (cosd((arc_mjr_rd/n_s_mjr_rd)*(n_seg_mjr_rem+XYH.x)+start_mjr_rd)*(major_r-(Nxt*mjr_rd_index)))- ((cosd((arc_mnr_rd/n_s_mnr_rd)*(n_seg_mnr_rem+XYH.y)+start_mnr_rd)*(minor_r2-(Nxt*mnr_rd_index)+XYH.z))*(cosd((arc_mjr_rd/n_s_mjr_rd)*(n_seg_mjr_rem+XYH.x)+start_mjr_rd)))>; */ #break #case (2) #local twist_index = (minor_twist/n_s_mnr_rd)*(n_seg_mnr_rem+XYH.y); #local major_r2 = major_r_A+(Mj_Lumps_rad*cosd((n_seg_mjr_rem+XYH.x)*((arc_mjr_rd*Mj_Lumps)/n_s_mjr_rd))) ; #local major_r3 = major_r2 +(Mn_Lumps_rad*cosd((n_seg_mnr_rem+XYH.y)*((arc_mnr_rd*Mn_Lumps)/n_s_mnr_rd))) ; #local AAA1 = (arc_mjr_rd/n_s_mjr_rd)*(n_seg_mjr_rem+XYH.x)-start_mjr_rd+90-twist_index ; #local Emb = ((major_r_A-major_r_B)/n_s_mnr_rd)*((n_seg_mnr_rem-1)+XYH.y) ; #local Vertex = <-cosd(AAA1)*(major_r3-Emb), ((n_seg_mnr_rem+XYH.y)*minor_r_A)+((helix_height/n_s_mjr_rd)*(n_seg_mjr_rem+XYH.y)), -sind(AAA1)*(major_r3-Emb)> ; /* #local major_r2= major_r+(Mj_Lumps_rad*cosd((n_seg_mjr_rem+XYH.x)*((360*Mj_Lumps)/n_s_mjr_rd))) ; #local minor_r2= minor_r+(Mn_Lumps_rad*cosd((n_seg_mjr_rem+XYH.x)*((360*Mn_Lumps)/n_s_mjr_rd))) ; #local AAA1 = (arc_mjr_rd/n_s_mjr_rd)*(n_seg_mjr_rem+XYH.x)+start_mjr_rd ; #local Vertex = < sind(AAA1)*(major_r2+XYH.z-(Nxt*mjr_rd_index)), (n_seg_mnr_rem+XYH.y)*(minor_r2-(Nxt*mnr_rd_index))+(helix_height/n_s_mjr_rd)*(n_seg_mjr_rem+XYH.x), cosd(AAA1)*(major_r2+XYH.z-(Nxt*mjr_rd_index)) >; */ #break #end // end switch plane or torus Vertex #end // end macro px(X,Z) // ---------------- end macro for draw tiles ---------------------------- // *************************************************************************************************************** union { #switch (mesh_model) // *************************************************************************************************************** #case (1) // squares #local A = array [4]{<0,0,0>,<1,0,0>,<0,1,0>,<1,1,0>}; cylinder { px(A[0]), px(A[1]), cyl_thickness} cylinder { px(A[0]), px(A[2]), cyl_thickness} sphere {px(A[0]), sph_thickness} #if (RIGHT=true) cylinder {px(A[3]), px(A[1]), cyl_thickness} sphere {px(A[1]), sph_thickness} #end #if (TOP=true) cylinder {px(A[2]), px(A[3]), cyl_thickness} sphere {px(A[2]), sph_thickness} #if (RIGHT=true) sphere {px(A[3]), sph_thickness} #end #end // ------------------------------------- PATCH_4 (0,1,2,3,triangle_mesh,1) // ------------------------------------- #break // *************************************************************************************************************** #case (2) // triangles 1 #local adjust_tiles = 1.5 ; #local A = array [6]{<0,0,0>,<1,0,0>,<-.5,.5,0>,<.5,.5,0>,<0,1,0>,<1,1,0>}; #local R = array [6]{1,0,2,4,3,2} DRAW (R) cylinder {px(A[0]), px(A[3]), cyl_thickness} sphere {px(A[0]), sph_thickness} sphere {px(A[2]), sph_thickness} #if (RIGHT=true) sphere {px(A[1]), sph_thickness} sphere {px(A[3]), sph_thickness} cylinder {px(A[1]), px(A[3]), cyl_thickness} cylinder {px(A[3]), px(A[5]), cyl_thickness} #end #if (TOP=true) cylinder {px(A[4]), px(A[5]), cyl_thickness} sphere {px(A[4]), sph_thickness} #if (RIGHT=true) sphere {px(A[5]), sph_thickness} #end #end // ------------------------------------- PATCH_3 (0,1,3,triangle_mesh,1) PATCH_3 (0,2,3,triangle_mesh,2) PATCH_3 (2,3,4,triangle_mesh,1) PATCH_3 (3,4,5,triangle_mesh,2) // ------------------------------------- #break // *************************************************************************************************************** #case (3) // triangles 2 #local adjust_tiles = .45 ; #local A = array[6]{<.5,-.5,0>,<0,0,0>,<1,0,0>,<.5,.5,0>,<0,1,0>,<1,1,0>}; #local R = array[6]{4,1,0,2,3,0} DRAW (R) cylinder {px(A[1]), px(A[3]), cyl_thickness} sphere {px(A[0]), sph_thickness} sphere {px(A[1]), sph_thickness} #if (RIGHT=true) cylinder {px(A[2]), px(A[5]), cyl_thickness} sphere {px(A[2]), sph_thickness} #end #if (TOP=true) cylinder {px(A[3]), px(A[4]), cyl_thickness} cylinder {px(A[3]), px(A[5]), cyl_thickness} sphere {px(A[3]), sph_thickness} sphere {px(A[4]), sph_thickness} #if (RIGHT=true) sphere {px(A[5]), sph_thickness} #end #end // ------------------------------------- PATCH_3 (0,1,3,triangle_mesh,1) PATCH_3 (0,2,3,triangle_mesh,2) PATCH_3 (1,3,4,triangle_mesh,2) PATCH_3 (2,3,5,triangle_mesh,1) // ------------------------------------- #break // *************************************************************************************************************** #case (4) // diamonds #local A = array [5]{<0,0,0>,<1,0,0>,<.5,.5,0>,<0,1,0>,<1,1,0>}; cylinder {px(A[0]), px(A[2]), cyl_thickness} cylinder {px(A[2]), px(A[3]), cyl_thickness} cylinder {px(A[1]), px(A[2]), cyl_thickness} cylinder {px(A[2]), px(A[4]), cyl_thickness} sphere {px(A[0]), sph_thickness} sphere {px(A[2]), sph_thickness} #if(RIGHT=true) cylinder {px(A[1]), px(A[4]), cyl_thickness} sphere {px(A[1]), sph_thickness} #end #if(LEFT=true) cylinder {px(A[0]), px(A[3]), cyl_thickness} #end #if(TOP=true) cylinder {px(A[3]), px(A[4]), cyl_thickness} sphere {px(A[3]), sph_thickness} #if(RIGHT=true) sphere {px(A[4]), sph_thickness} #end #end #if(BOTTOM=true) cylinder {px(A[0]), px(A[1]), cyl_thickness} #end // ------------------------------------- PATCH_3 (0,1,2,triangle_mesh,1) PATCH_3 (1,2,4,triangle_mesh,1) PATCH_3 (2,3,4,triangle_mesh,1) PATCH_3 (2,0,3,triangle_mesh,1) // ------------------------------------- #break // *************************************************************************************************************** #case (5) // hexagons 1 #local adjust_tiles = 1.5 ; #local A = array[16]{< 0/2,-1/6,0>,< 1/2, 0/6,0>,< 2/2,-1/6,0>, // 0 1 2 < 0/2, 1/6,0>,< 1/2, 2/6,0>,< 2/2, 1/6,0>, // 3 4 5 < 0/2, 3/6,0>,< 1/2, 4/6,0>,< 2/2, 3/6,0>, // 6 7 8 < 0/2, 5/6,0>,< 1/2, 6/6,0>,< 2/2, 5/6,0> // 9 10 11 <-1/2, 0/6,0>,< 3/2, 0/6,0> <-1/2, 2/6,0>,< 3/2, 2/6,0>} #local R = array [6]{8,4,6,9,10,11} DRAW (R) cylinder {px(A[1]), px(A[4]), cyl_thickness} #local sph = array[5]{2,4,6,9,10}; PUT_SPHERES(sph) #if (RIGHT=true) #local R = array [5] {2,13,15,8,11} DRAW (R) #local sph = array [4]{13,15,8,11} PUT_SPHERES(sph) #end #if (BOTTOM=true) #if (LEFT=false) cylinder {px(A[0]), px(A[1]), cyl_thickness} #end cylinder {px(A[1]), px(A[2]), cyl_thickness} sphere {px(A[1]), sph_thickness} #end // ------------------------------------- #local T = array [7]{4,8,11,10,9,6,4} PATCH_array (7,T,triangle_mesh,1) #local T = array [7]{2,13,15,8,4,1,2} PATCH_array (5,T,triangle_mesh,1) // ------------------------------------- #break // *************************************************************************************************************** #case (6) // hexagons 2 #local adjust_tiles = .5 ; #local A = array [12] { <4/6,-1/2,0><1,-1/2,0> <1/6,0,0><3/6,0,0><5/6,0,0><7/6,0,0> <0,1/2,0><2/6,1/2,0><4/6,1/2,0><1,1/2,0> <1/6,1,0><3/6,1,0> } #local R = array [6]{10,6,2,3,0,1} DRAW (R) cylinder {px(A[3]), px(A[8]), cyl_thickness} #local sph = array [7]{0,1,2,3,6,8,10} PUT_SPHERES(sph) #if(RIGHT=true) cylinder {px(A[1]), px(A[5]), cyl_thickness} cylinder {px(A[5]), px(A[9]), cyl_thickness} sphere {px(A[5]), sph_thickness} #end #if(TOP=true) #local R = array [4]{10,11,8,9} DRAW (R) sphere {px(A[11]), sph_thickness} #if (RIGHT=true) sphere {px(A[9]), sph_thickness} #end #end #if((BOTTOM=true)&(RIGHT=false)) cylinder {px(A[1]), px(A[5]), cyl_thickness} #end // ------------------------------------- #local T = array [7]{2,3,8,11,10,6,2} PATCH_array (7,T,triangle_mesh,1) #local T = array [7]{0,1,5,9,8,3,0} PATCH_array (4,T,triangle_mesh,1) // ------------------------------------- #break // *************************************************************************************************************** #case (7) // brickwork 1 #local A = array[9] {<0,0,0>, <.5,0,0>, <1,0,0>, // 0 1 2 <0,.5,0>, <.5,.5,0>, <1,.5,0>, // 3 4 5 <0,1,0>, <.5,1,0>, <1,1,0>} // 6 7 8 #local R = array [5]{0,1,4,3,6} DRAW (R) cylinder {px(A[1]), px(A[2]), cyl_thickness} cylinder {px(A[4]), px(A[5]), cyl_thickness} #local sph = array[4]{0,1,3,4}; PUT_SPHERES(sph) #if(RIGHT=true) cylinder {px(A[2]), px(A[5]), cyl_thickness} cylinder {px(A[5]), px(A[8]), cyl_thickness} sphere {px(A[2]), sph_thickness} sphere {px(A[5]), sph_thickness} #end #if (LEFT=true) cylinder {px(A[0]), px(A[3]), cyl_thickness} #end #if(TOP=true) cylinder {px(A[6]), px(A[7]), cyl_thickness} cylinder {px(A[7]), px(A[8]), cyl_thickness} sphere {px(A[6]), sph_thickness} sphere {px(A[7]), sph_thickness} #if(RIGHT=true) sphere {px(A[8]), sph_thickness} #end #end // ------------------------------------- PATCH_6 (0,3,1,4,2,5,triangle_mesh,1) PATCH_6 (3,6,4,7,5,8,triangle_mesh,1) // ------------------------------------- #break // *************************************************************************************************************** #case (8) // brickwork 2 #local A = array [5]{<0,0,0>,<1,0,0>,<.5,.5,0>,<0,1,0>,<1,1,0>}; cylinder {px(A[0]), px(A[2]), cyl_thickness} cylinder {px(A[2]), px(A[3]), cyl_thickness} cylinder {px(A[2]), px(A[4]), cyl_thickness} sphere {px(A[0]), sph_thickness} sphere {px(A[2]), sph_thickness} #if(RIGHT=true) cylinder {px(A[1]), px(A[4]), cyl_thickness} sphere {px(A[1]), sph_thickness} #end #if(LEFT=true) cylinder {px(A[0]), px(A[3]), cyl_thickness} #end #if(TOP=true) cylinder {px(A[3]), px(A[4]), cyl_thickness} sphere {px(A[3]), sph_thickness} #if(RIGHT=true) sphere {px(A[4]), sph_thickness} #end #end #if(BOTTOM=true) cylinder {px(A[0]), px(A[1]), cyl_thickness} #end // ------------------------------------- PATCH_3 (0,1,2,triangle_mesh,1) PATCH_3 (1,2,4,triangle_mesh,1) PATCH_3 (2,3,4,triangle_mesh,1) PATCH_3 (2,0,3,triangle_mesh,1) // ------------------------------------- #break // *************************************************************************************************************** #case (9) // brickwork 3 #local adjust_tiles = 1.5 ; #local A = array [8]{<0,0,0>,<1,0,0>,<.5,.25,0>,<0,.5,0>,<1,.5,0>,<.5,.75,0>,<0,1,0>,<1,1,0>}; #local R = array [9]{7,5,6,5,3,2,4,2,1} DRAW(R) #local sph = array[4]{2,3,5,6}; PUT_SPHERES(sph) #if(RIGHT=true) cylinder {px(A[1]), px(A[4]), cyl_thickness} cylinder {px(A[4]), px(A[7]), cyl_thickness} sphere {px(A[1]), sph_thickness} sphere {px(A[4]), sph_thickness} #end #if(LEFT=true) cylinder {px(A[0]), px(A[3]), cyl_thickness} cylinder {px(A[3]), px(A[6]), cyl_thickness} #end #if(TOP=true) cylinder {px(A[6]), px(A[7]), cyl_thickness} #if(RIGHT=true) sphere {px(A[7]), sph_thickness} #end #end #if(BOTTOM=true) cylinder {px(A[0]), px(A[1]), cyl_thickness} sphere {px(A[0]), sph_thickness} #end // ------------------------------------- PATCH_3 (0,2,3,triangle_mesh,1) PATCH_3 (0,1,2,triangle_mesh,1) PATCH_3 (1,2,4,triangle_mesh,1) PATCH_4 (3,2,5,4,triangle_mesh,1) PATCH_3 (3,5,6,triangle_mesh,1) PATCH_3 (4,5,7,triangle_mesh,1) PATCH_3 (5,6,7,triangle_mesh,1) // ------------------------------------- #break // *************************************************************************************************************** #case (10) // arabesque 1 #local A = array [13] {<0,0,0>,<.5,0,0>,<1,0,0>,<.25,.25,0>,<.75,.25,0>,<0,.5,0>, <.5,.5,0>,<1,.5,0>,<.25,.75,0>,<.75,.75,0>,<0,1,0>,<.5,1,0>,<1,1,0>}; #local R = array [12] {0,3,4,2,4,9,12,9,8,10,8,3} DRAW (R) #local sph = array[5]{0,3,4,8,9}; PUT_SPHERES(sph) #if(RIGHT=true) cylinder {px(A[2]), px(A[7]),cyl_thickness} cylinder {px(A[7]), px(A[12]),cyl_thickness} sphere {px(A[2]), sph_thickness} sphere {px(A[7]), sph_thickness} #end #if(LEFT=true) cylinder {px(A[0]), px(A[5]),cyl_thickness} cylinder {px(A[5]), px(A[10]),cyl_thickness} sphere {px(A[5]), sph_thickness} #end #if(TOP=true) cylinder {px(A[10]), px(A[11]),cyl_thickness} cylinder {px(A[11]), px(A[12]),cyl_thickness} sphere {px(A[10]), sph_thickness} sphere {px(A[11]), sph_thickness} #if(RIGHT=true) sphere {px(A[12]), sph_thickness} #end #end #if(BOTTOM=true) cylinder {px(A[0]), px(A[1]),cyl_thickness} cylinder {px(A[1]), px(A[2]),cyl_thickness} sphere {px(A[1]), sph_thickness} #end // ------------------------------------- #local T = array [5]{3,4,9,8,3} PATCH_array (6,T,triangle_mesh,2) PATCH_4 (0,3,1,4,triangle_mesh,1) PATCH_3 (1,2,4,triangle_mesh,1) PATCH_4 (10,8,11,9,triangle_mesh,1) PATCH_3 (9,11,12,triangle_mesh,1) PATCH_4 (2,4,7,9,triangle_mesh,3) PATCH_3 (9,7,12,triangle_mesh,3) PATCH_4 (0,3,5,8,triangle_mesh,3) PATCH_3 (5,8,10,triangle_mesh,3) // ------------------------------------- #break // *************************************************************************************************************** #case (11) // arabesque 2 #local A = array [12]{ <.25,0,0>,<.75,0,0>, <0,.25,0>,<.5,.25,0>,<1,.25,0>, <.25,.5,0>,<.75,.5,0>, <0,.75,0>,<.5,.75,0>,<1,.75,0>, <.25,1,0>,<.75,1,0> }; cylinder {px(A[0]), px(A[2]),cyl_thickness} cylinder {px(A[0]), px(A[3]),cyl_thickness} cylinder {px(A[1]), px(A[4]),cyl_thickness} cylinder {px(A[3]), px(A[5]),cyl_thickness} cylinder {px(A[3]), px(A[6]),cyl_thickness} cylinder {px(A[4]), px(A[6]),cyl_thickness} cylinder {px(A[5]), px(A[7]),cyl_thickness} cylinder {px(A[5]), px(A[8]),cyl_thickness} cylinder {px(A[6]), px(A[8]),cyl_thickness} cylinder {px(A[7]), px(A[10]),cyl_thickness} cylinder {px(A[8]), px(A[11]),cyl_thickness} cylinder {px(A[9]), px(A[11]),cyl_thickness} #local sph = array[8]{0,1,2,3,5,6,7,8}; PUT_SPHERES(sph) #if(RIGHT=true) cylinder {px(A[4]), px(A[9]),cyl_thickness} sphere {px(A[4]), sph_thickness} sphere {px(A[9]), sph_thickness} #end #if(LEFT=true) cylinder {px(A[2]), px(A[7]),cyl_thickness} sphere {px(A[2]), sph_thickness} sphere {px(A[7]), sph_thickness} #end #if(TOP=true) cylinder {px(A[10]), px(A[11]),cyl_thickness} sphere {px(A[10]), sph_thickness} sphere {px(A[11]), sph_thickness} #end #if(BOTTOM=true) cylinder {px(A[0]), px(A[1]),cyl_thickness} #end // ------------------------------------- #local Z = array [5]{0,1,3,4,6} PATCH_array2(Z,triangle_mesh,2) #local Z = array [5]{4,9,6,11,8} PATCH_array2(Z,triangle_mesh,1) #local Z = array [5]{7,2,5,0,3} PATCH_array2(Z,triangle_mesh,1) #local Z = array [5]{5,7,8,10,11} PATCH_array2(Z,triangle_mesh,2) // ------------------------------------- #break // *************************************************************************************************************** #case (12) // 8 star #local A = array [25]{ <0,0,0>,<.5,0,0>,<1,0,0>, // 0 1 2 <8/20,.2,0>,<12/20,.2,0>, // 3 4 <.5,.25,0>, // 5 <1/3,1/3,0><2/3,1/3,0> // 6 7 <.2,.4,0>,<.8,.4,0>, // 8 9 <0,.5,0>,<.25,.5,0>,<.75,.5,0>,<1,.5,0> // 10 11 12 13 <.2,.6,0>,<.8,.6,0>, // 14 15 <1/3,2/3,0><2/3,2/3,0> // 16 17 <.5,.75,0>, // 18 <8/20,.8,0>,<12/20,.8,0>, // 19 20 <0,1,0>,<.5,1,0>,<1,1,0>, // 21 22 23 <.5,.5,0>// centro }; #local R = array [41]{0,3,5,7,9,13,15,17,18,19,21,14,11,6,3,1,4,7,12,15,23,20,18,16,14,10,8,6,5,4,2,9,12,17,20,22,19,16,11,8,0} DRAW(R) #local sph = array[19]{0,1,3,4,5,6,7,8,9,10,11,12,14,15,16,17,18,19,20}; PUT_SPHERES(sph) #if(RIGHT=true) cylinder {px(A[2]), px(A[13]),cyl_thickness} cylinder {px(A[13]), px(A[23]),cyl_thickness} sphere {px(A[2]), sph_thickness} sphere {px(A[13]), sph_thickness} #end #if(LEFT=true) cylinder {px(A[0]), px(A[10]),cyl_thickness} cylinder {px(A[10]), px(A[21]),cyl_thickness} #end #if(TOP=true) cylinder {px(A[21]), px(A[22]),cyl_thickness} cylinder {px(A[22]), px(A[23]),cyl_thickness} sphere {px(A[21]), sph_thickness} sphere {px(A[22]), sph_thickness} #if(RIGHT=true) sphere {px(A[23]), sph_thickness} #end #end #if(BOTTOM=true) cylinder {px(A[0]), px(A[1]),cyl_thickness} cylinder {px(A[1]), px(A[2]),cyl_thickness} #end // ------------------------------------- PATCH_3 (0,1,3,triangle_mesh,2) PATCH_3 (1,2,4,triangle_mesh,2) PATCH_3 (2,9,13,triangle_mesh,2) PATCH_3 (13,15,23,triangle_mesh,2) PATCH_3 (20,22,23,triangle_mesh,2) PATCH_3 (19,21,22,triangle_mesh,2) PATCH_3 (10,14,21,triangle_mesh,2) PATCH_3 (0,8,10,triangle_mesh,2) PATCH_3 (3,5,6,triangle_mesh,2) PATCH_3 (4,5,7,triangle_mesh,2) PATCH_3 (7,9,12,triangle_mesh,2) PATCH_3 (12,15,17,triangle_mesh,2) PATCH_3 (17,18,20,triangle_mesh,2) PATCH_3 (16,18,19,triangle_mesh,2) PATCH_3 (11,14,16,triangle_mesh,2) PATCH_3 (6,8,11,triangle_mesh,2) PATCH_3 (0,3,6,triangle_mesh,1) PATCH_3 (0,6,8,triangle_mesh,1) PATCH_3 (2,4,7,triangle_mesh,1) PATCH_3 (2,7,9,triangle_mesh,1) PATCH_3 (15,17,23,triangle_mesh,1) PATCH_3 (17,20,23,triangle_mesh,1) PATCH_3 (14,16,21,triangle_mesh,1) PATCH_3 (16,19,21,triangle_mesh,1) PATCH_3 (1,3,5,triangle_mesh,1) PATCH_3 (1,4,5,triangle_mesh,1) PATCH_3 (9,12,13,triangle_mesh,1) PATCH_3 (12,13,15,triangle_mesh,1) PATCH_3 (18,19,22,triangle_mesh,1) PATCH_3 (18,20,22,triangle_mesh,1) PATCH_3 (8,10,11,triangle_mesh,1) PATCH_3 (10,11,14,triangle_mesh,1) #local T = array [9]{5,7,12,17,18,16,11,6,5} PATCH_array (24,T,triangle_mesh,1) // ------------------------------------- #break // *************************************************************************************************************** #case (13) // checkered #local A = array [21] {<0,0,0>,<.25,0,0>,<.5,0,0>,<.75,0,0>,<1,0,0>, <0,.25,0>,<.5,.25,0>,<1,.25,0>, <0,.5,0>,<.25,.5,0>,<.5,.5,0>,<.75,.5,0>,<1,.5,0>, <0,.75,0>,<.5,.75,0>,<1,.75,0>, <0,1,0>,<.25,1,0>,<.5,1,0>,<.75,1,0>,<1,1,0> } #local R = array [19]{4,3,2,1,5,9,6,1,0,5,8,9,10,11,15,19,14,11,12} DRAW (R) #local R = array [5]{2,6,10,14,18} DRAW (R) cylinder {px(A[8]), px(A[13]),cyl_thickness} cylinder {px(A[13]), px(A[16]),cyl_thickness} #local sph = array[14]{0,1,2,3,4,5,6,8,9,10,11,12,13,14}; PUT_SPHERES(sph) #if(RIGHT=true) #local R = array [5]{4,7,12,15,20} DRAW(R) sphere {px(A[7]), sph_thickness} sphere {px(A[15]), sph_thickness} #end #if(TOP=true) #local R = array [5]{16,17,18,19,20} #local sph = array [4]{16,17,18,19} DRAW(R) PUT_SPHERES(sph) #if(RIGHT=true) sphere {px(A[20]), sph_thickness} #end #end // ------------------------------------- PATCH_4 (7,3,11,6,triangle_mesh,1) PATCH_4 (9,14,13,17,triangle_mesh,1) PATCH_4 (11,15,14,19,triangle_mesh,2) PATCH_4 (1,6,5,9,triangle_mesh,2) PATCH_3 (0,1,5,triangle_mesh,1) PATCH_3 (1,2,6,triangle_mesh,1) PATCH_3 (6,9,10,triangle_mesh,1) PATCH_3 (5,8,9,triangle_mesh,1) PATCH_3 (10,11,14,triangle_mesh,1) PATCH_3 (11,12,15,triangle_mesh,1) PATCH_3 (15,19,20,triangle_mesh,1) PATCH_3 (14,18,19,triangle_mesh,1) PATCH_3 (2,3,6,triangle_mesh,1) PATCH_3 (7,11,12,triangle_mesh,1) PATCH_3 (6,10,11,triangle_mesh,1) PATCH_3 (3,4,7,triangle_mesh,1) PATCH_3 (8,9,13,triangle_mesh,1) PATCH_3 (9,10,14,triangle_mesh,1) PATCH_3 (14,17,18,triangle_mesh,1) PATCH_3 (13,16,17,triangle_mesh,1) // ------------------------------------- #break // *************************************************************************************************************** #case (14) // octogon 1 #local A = array [9] {<.25,0,0>,<.75,0,0>,<0,.25,0>,<1,.25,0>,<.5,.5,0>,<0,.75,0>,<1,.75,0>,<.25,1,0>,<.75,1,0>} #local R = array [6]{3,1,0,2,5,7} DRAW(R) cylinder {px(A[6]), px(A[8]),cyl_thickness} #local sph = array [4]{0,1,2,5} PUT_SPHERES(sph) #if(RIGHT=true) cylinder {px(A[3]), px(A[6]),cyl_thickness} sphere {px(A[3]), sph_thickness} sphere {px(A[6]), sph_thickness} #end #if(TOP=true) cylinder {px(A[7]), px(A[8]),cyl_thickness} sphere {px(A[7]), sph_thickness} sphere {px(A[8]), sph_thickness} #end // ------------------------------------- #local T = array [9]{0,1,3,6,8,7,5,2,0} PATCH_array (4,T,triangle_mesh,1) // ------------------------------------- #break // *************************************************************************************************************** #case (15) // octogon 2 #local A = array [13] {<.25,0,0>,<.5,0,0>, <0,.25,0>,<.75,.25,0>,<1,.25,0>, <3/8,3/8,0>, <0,.5,0>,<.75,.5,0>,<1,.5,0>, <.25,.75,0>,<.5,.75,0>, <.25,1,0>,<.5,1,0> }; #local R = array [9]{3,1,0,2,6,9,10,7,3} DRAW(R) cylinder {px(A[3]), px(A[4]),cyl_thickness} cylinder {px(A[7]), px(A[8]),cyl_thickness} cylinder {px(A[10]), px(A[12]),cyl_thickness} cylinder {px(A[9]), px(A[11]),cyl_thickness} #local sph = array [8]{0,1,2,3,6,7,9,10} PUT_SPHERES(sph) #if(RIGHT=true) cylinder {px(A[4]), px(A[8]),cyl_thickness} sphere {px(A[4]), sph_thickness} sphere {px(A[8]), sph_thickness} #end #if(TOP=true) cylinder {px(A[11]), px(A[12]),cyl_thickness} sphere {px(A[11]), sph_thickness} sphere {px(A[12]), sph_thickness} #end // ------------------------------------- PATCH_4 (3,4,7,8,triangle_mesh,2) PATCH_4 (10,12,9,11,triangle_mesh,2) #local T = array [9]{0,1,3,7,10,9,6,2,0} PATCH_array (5,T,triangle_mesh,1) // ------------------------------------- #break // *************************************************************************************************************** #case (16) // 6 star #local adjust_tiles = .5 ; #local A = array [12]{ <1/6,0,0>,<.5,0,0>,<5/6,0,0>,<0,.5,0>,<2/6,.5,0>,<4/6,.5,0>, <1,.5,0>,<1/6,1,0>,<.5,1,0>,<5/6,1,0>,<7/6,0,0>,<7/6,1,0> } #local R = array [11]{7,3,0,1,4,8,5,1,2,6,9} DRAW(R) cylinder {px(A[3]), px(A[4]),cyl_thickness} cylinder {px(A[5]), px(A[6]),cyl_thickness} #local sph = array [6]{0,1,2,3,4,5} PUT_SPHERES(sph) #if(RIGHT=true) cylinder {px(A[10]), px(A[6]),cyl_thickness} cylinder {px(A[6]), px(A[11]),cyl_thickness} sphere {px(A[6]), sph_thickness} sphere {px(A[10]), sph_thickness} #end #if(TOP=true) cylinder {px(A[7]), px(A[8]),cyl_thickness} cylinder {px(A[8]), px(A[9]),cyl_thickness} cylinder {px(A[9]), px(A[11]),cyl_thickness} sphere {px(A[7]), sph_thickness} sphere {px(A[8]), sph_thickness} sphere {px(A[9]), sph_thickness} #if(RIGHT=true) sphere {px(A[11]), sph_thickness} #end #end #if(BOTTOM=true) cylinder {px(A[2]), px(A[10]),cyl_thickness} #end // ------------------------------------- PATCH_4 (1,5,4,8,triangle_mesh,1) PATCH_4 (1,2,5,6,triangle_mesh,2) PATCH_4 (1,4,0,3,triangle_mesh,3) PATCH_4 (6,9,5,8,triangle_mesh,3) PATCH_4 (3,4,7,8,triangle_mesh,2) PATCH_3 (2,6,10,triangle_mesh,1) PATCH_3 (6,9,11,triangle_mesh,1) // ------------------------------------- #break // *************************************************************************************************************** #case (17) #local A = array [25] { <0,0,0>,<1/4,0,0>,<1/2,0,0>,<3/4,0,0>,<1,0,0>, <0,1/4,0>,<1/4,1/4,0>,<1/2,1/4,0>,<3/4,1/4,0>,<1,1/4,0>, <0,1/2,0>,<1/4,1/2,0>,<1/2,1/2,0>,<3/4,1/2,0>,<1,1/2,0>, <0,3/4,0>,<1/4,3/4,0>,<1/2,3/4,0>,<3/4,3/4,0>,<1,3/4,0>, <0,1,0>,<1/4,1,0>,<1/2,1,0>,<3/4,1,0>,<1,1,0>, } #local R = array[7]{15,16,17,12,7,8,9}; DRAW(R) #local R = array[7]{23,18,13,12,11,6,1}; DRAW(R) #local R = array[9]{20,15,10,5,0,1,2,3,4}; DRAW(R) cylinder {px(A[2]), px(A[7]),cyl_thickness} cylinder {px(A[13]), px(A[14]),cyl_thickness} cylinder {px(A[17]), px(A[22]),cyl_thickness} cylinder {px(A[10]), px(A[11]),cyl_thickness} #local sph = array [16]{0,1,2,3,5,6,7,8,10,11,12,13,15,16,17,18} PUT_SPHERES(sph) #if(RIGHT=true) #local R = array[5]{4,9,14,19,24}; DRAW(R) #local sph = array[4]{4,9,14,19} PUT_SPHERES(sph) #end #if(TOP=true) #local R = array[5]{20,21,22,23,24}; DRAW(R) #local sph = array[4]{20,21,22,23} PUT_SPHERES(sph) #if(RIGHT=true) sphere {px(A[24]), sph_thickness} #end #end // ------------------------------------- PATCH_6 (0,1,5,6,10,11,triangle_mesh,1) PATCH_6 (13,14,18,19,23,24,triangle_mesh,1) PATCH_6 (20,15,21,16,22,17,triangle_mesh,1) PATCH_6 (2,7,3,8,4,9,triangle_mesh,1) PATCH_6 (1,2,6,7,11,12,triangle_mesh,2) PATCH_6 (9,14,8,13,7,12,triangle_mesh,2) PATCH_6 (12,13,17,18,22,23,triangle_mesh,2) PATCH_6 (15,10,16,11,17,12,triangle_mesh,2) // ------------------------------------- #break // *************************************************************************************************************** #case (18) #local A = array [33] { <0,0,0>,<.3,0,0>,<.7,0,0>,<1,0,0>, <.1,.1,0>,<.5,.1,0>,<.9,.1,0>, <.2,.2,0>,<.8,.2,0>, <0,.3,0>,<.4,.3,0>,<.6,.3,0>,<1,.3,0>, <.3,.4,0>,<.7,.4,0>, <.1,.5,0>,<.5,.5,0>,<.9,.5,0>, <.3,.6,0>,<.7,.6,0>, <0,.7,0>,<.4,.7,0>,<.6,.7,0>,<1,.7,0>, <.2,.8,0>,<.8,.8,0>, <.1,.9,0>,<.5,.9,0>,<.9,.9,0>, <0,1,0>,<.3,1,0>,<.7,1,0>,<1,1,0> } #local R = array[17]{5,11,8,14,17,19,25,22,27,21,24,18,15,13,7,10,5}; DRAW(R) #local R = array[17]{7,1,5,2,8,12,17,23,25,31,27,30,24,20,15,9,7}; DRAW(R) cylinder {px(A[10]), px(A[16]),cyl_thickness} cylinder {px(A[22]), px(A[16]),cyl_thickness} cylinder {px(A[11]), px(A[16]),cyl_thickness} cylinder {px(A[21]), px(A[16]),cyl_thickness} cylinder {px(A[14]), px(A[16]),cyl_thickness} cylinder {px(A[18]), px(A[16]),cyl_thickness} cylinder {px(A[19]), px(A[16]),cyl_thickness} cylinder {px(A[13]), px(A[16]),cyl_thickness} cylinder {px(A[9]), px(A[4]),cyl_thickness} cylinder {px(A[4]), px(A[1]),cyl_thickness} cylinder {px(A[0]), px(A[4]),cyl_thickness} cylinder {px(A[2]), px(A[6]),cyl_thickness} cylinder {px(A[6]), px(A[12]),cyl_thickness} cylinder {px(A[3]), px(A[6]),cyl_thickness} cylinder {px(A[23]), px(A[28]),cyl_thickness} cylinder {px(A[28]), px(A[31]),cyl_thickness} cylinder {px(A[32]), px(A[28]),cyl_thickness} cylinder {px(A[30]), px(A[26]),cyl_thickness} cylinder {px(A[26]), px(A[20]),cyl_thickness} cylinder {px(A[29]), px(A[26]),cyl_thickness} #local sph = array[26]{0,1,2,4,5,6,7,8,9,10,11,13,14,15,16,17,18,19,20,21,22,24,25,26,27,28} PUT_SPHERES(sph) #if(RIGHT=true) #local R = array[4]{3,12,23,32}; DRAW(R) #local sph = array[3]{3,12,23} PUT_SPHERES(sph) #end #if(LEFT=true) #local R = array[4]{0,9,20,29}; DRAW(R) #end #if(TOP=true) #local R = array[4]{29,30,31,32}; DRAW(R) #local sph = array[3]{29,30,31} PUT_SPHERES(sph) #if(RIGHT=true) sphere {px(A[32]), sph_thickness} #end #end #if(BOTTOM=true) #local R = array[4]{0,1,2,3}; DRAW(R) #end // ------------------------------------- PATCH_4 (1,5,7,10,triangle_mesh,2) PATCH_4 (2,8,5,11,triangle_mesh,2) PATCH_4 (12,17,8,14,triangle_mesh,2) PATCH_4 (23,25,17,19,triangle_mesh,2) PATCH_4 (31,27,25,22,triangle_mesh,2) PATCH_4 (30,24,27,21,triangle_mesh,2) PATCH_4 (20,24,15,18,triangle_mesh,2) PATCH_4 (9,7,15,13,triangle_mesh,2) PATCH_4 (5,11,10,16,triangle_mesh,3) PATCH_4 (8,11,14,16,triangle_mesh,1) PATCH_4 (17,19,14,16,triangle_mesh,3) PATCH_4 (25,22,19,16,triangle_mesh,1) PATCH_4 (27,21,22,16,triangle_mesh,3) PATCH_4 (24,18,21,16,triangle_mesh,1) PATCH_4 (15,13,18,16,triangle_mesh,3) PATCH_4 (7,10,13,16,triangle_mesh,1) PATCH_4 (1,4,7,9,triangle_mesh,3) PATCH_4 (2,6,8,12,triangle_mesh,3) PATCH_4 (23,25,28,31,triangle_mesh,3) PATCH_4 (20,24,26,30,triangle_mesh,3) PATCH_3 (20,15,9,triangle_mesh,1) PATCH_3 (12,17,23,triangle_mesh,1) PATCH_3 (1,2,5,triangle_mesh,1) PATCH_3 (27,30,31,triangle_mesh,1) PATCH_3 (0,1,4,triangle_mesh,1) PATCH_3 (2,6,3,triangle_mesh,2) PATCH_3 (0,4,9,triangle_mesh,2) PATCH_3 (3,6,12,triangle_mesh,1) PATCH_3 (20,26,29,triangle_mesh,1) PATCH_3 (29,26,30,triangle_mesh,2) PATCH_3 (28,31,32,triangle_mesh,1) PATCH_3 (23,28,32,triangle_mesh,2) // ------------------------------------- #break // *************************************************************************************************************** #case (19) // mosaicos #local A = array [16] { <0,0,0>,<1/3,0,0>,<2/3,0,0>,<1,0,0>, <0,1/3,0>,<1/3,1/3,0>,<2/3,1/3,0>,<1,1/3,0>, <0,2/3,0>,<1/3,2/3,0>,<2/3,2/3,0>,<1,2/3,0>, <0,1,0>,<1/3,1,0>,<2/3,1,0>,<1,1,0> } #local R = array [19] {3,2,1,0,4,8,12,8,9,10,14,10,6,7,6,5,1,5,9} DRAW(R) #local sph = array [9] {0,1,2,4,5,6,8,9,10} PUT_SPHERES(sph) #if(RIGHT=true) #local R = array [4] {3,7,11,15} DRAW(R) #local sph = array [3] {3,7,11} PUT_SPHERES(sph) #end #if(TOP=true) #local R = array [4] {12,13,14,15} DRAW(R) #local sph = array [3] {12,13,14} PUT_SPHERES(sph) #if(RIGHT=true) sphere {px(A[15]), sph_thickness} #end #end // ------------------------------------- // 2 1 2 1 PATCH_6 (0,1,4,5,8,9,triangle_mesh,1) PATCH_6 (3,7,2,6,1,5,triangle_mesh,2) PATCH_6 (15,14,11,10,7,6,triangle_mesh,3) PATCH_6 (12,8,13,9,14,10,triangle_mesh,4) // ------------------------------------- #break // *************************************************************************************************************** #case (20) #local A = array [9] { <0,0,0>,<.5,0,0>,<1,0,0>, <0,.5,0>,<.5,.5,0>,<1,.5,0>, <0,1,0>,<.5,1,0>,<1,1,0> }; #local R = array [3]{0,4,8}; DRAW(R) #local R = array [3]{1,4,7}; DRAW(R) #local R = array [3]{2,4,6}; DRAW(R) #local R = array [3]{3,4,5}; DRAW(R) #local sph = array [4]{0,1,3,4} PUT_SPHERES(sph) #if(RIGHT=true) cylinder {px(A[2]), px(A[5]), cyl_thickness} cylinder {px(A[5]), px(A[8]), cyl_thickness} sphere {px(A[2]), sph_thickness} sphere {px(A[5]), sph_thickness} #end #if(LEFT=true) cylinder {px(A[0]), px(A[3]), cyl_thickness} cylinder {px(A[3]), px(A[6]), cyl_thickness} #end #if(TOP=true) cylinder {px(A[6]), px(A[7]), cyl_thickness} cylinder {px(A[7]), px(A[8]), cyl_thickness} sphere {px(A[6]), sph_thickness} sphere {px(A[7]), sph_thickness} #if(RIGHT=true) sphere {px(A[8]), sph_thickness} #end #end #if(BOTTOM=true) cylinder {px(A[0]), px(A[1]), cyl_thickness} cylinder {px(A[1]), px(A[2]), cyl_thickness} #end // ------------------------------------- PATCH_4 (0,4,1,2,triangle_mesh,1) PATCH_4 (6,4,7,8,triangle_mesh,1) PATCH_4 (2,4,5,8,triangle_mesh,2) PATCH_4 (0,4,3,6,triangle_mesh,2) // ------------------------------------- #break // *************************************************************************************************************** #case (21) #local A = array [14]{<6/12,0,0>,<0,2/12,0>,<1,2/12,0>,<4/12,4/12,0>,<8/12,4/12,0>,<0,6/12,0>,<1,6/12,0>, <6/12,8/12,0>,<2/12,10/12,0>,<10/12,10/12,0>,<14/12,10/12,0>,<6/12,1,0>,<0,14/12,0>,<1,14/12,0> } #local R = array [17]{10,9,11,8,7,9,6,4,7,3,4,0,3,1,5,8,12} DRAW(R) cylinder {px(A[9]), px(A[13]), cyl_thickness} cylinder {px(A[3]), px(A[5]), cyl_thickness} cylinder {px(A[7]), px(A[11]), cyl_thickness} cylinder {px(A[2]), px(A[4]), cyl_thickness} #local sph = array [10] {0,1,3,4,5,7,8,9,11,12} PUT_SPHERES(sph) #if(RIGHT=true) cylinder {px(A[2]), px(A[6]), cyl_thickness} cylinder {px(A[6]), px(A[10]), cyl_thickness} cylinder {px(A[10]), px(A[13]), cyl_thickness} sphere {px(A[2]), sph_thickness} sphere {px(A[6]), sph_thickness} sphere {px(A[10]), sph_thickness} #end #if(TOP=true) cylinder {px(A[11]), px(A[12]), cyl_thickness} cylinder {px(A[11]), px(A[13]), cyl_thickness} #if(RIGHT=true) sphere {px(A[13]), sph_thickness} #end #end #if(BOTTOM=true) cylinder {px(A[1]), px(A[0]), cyl_thickness} cylinder {px(A[0]), px(A[2]), cyl_thickness} #end // ------------------------------------- PATCH_4 (0,3,4,7,triangle_mesh,1) PATCH_4 (9,7,11,8,triangle_mesh,1) PATCH_4 (3,5,7,8,triangle_mesh,2) PATCH_4 (4,7,6,9,triangle_mesh,2) PATCH_4 (6,9,10,13,triangle_mesh,1) PATCH_3 (2,4,6,triangle_mesh,1) PATCH_3 (1,3,5,triangle_mesh,1) PATCH_3 (0,1,3,triangle_mesh,2) PATCH_3 (0,2,4,triangle_mesh,2) PATCH_3 (8,11,12,triangle_mesh,2) PATCH_3 (9,11,13,triangle_mesh,2) // ------------------------------------- #break // *************************************************************************************************************** #case (22) #local A = array [13] {<0,1,0>,<1/5,3/5,0>,<-1/5,2/5,0>,<0,0,0>,<2/5,1/5,0>,<3/5,-1/5,0>,<1,0,0>, <4/5,2/5,0>,<6/5,3/5,0>,<1,1,0>,<3/5,4/5,0>,<2/5,6/5,0>,<.5,.5,0>} #local R = array[7]{0,1,2,3,4,5,6} DRAW(R) #local sph = array [6]{0,1,2,4,5,12} PUT_SPHERES(sph) #local R = array[3]{4,12,7} DRAW(R) #local R = array[3]{1,12,10} DRAW(R) #if(RIGHT=true) #local R = array[4]{6,7,8,9} DRAW(R) #local sph = array [3]{6,7,8} PUT_SPHERES(sph) #end #if(TOP=true) #local R = array[4]{0,11,10,9} DRAW(R) #local sph = array [2]{11,10} PUT_SPHERES(sph) #if(RIGHT=true) sphere {px(A[9]), sph_thickness} #end #end #if(BOTTOM=true) sphere {px(A[3]), sph_thickness} #end // ------------------------------------- #local Z = array [5]{2,3,1,4,12} PATCH_array2(Z,triangle_mesh,3) #local Z = array [5]{5,6,4,7,12} PATCH_array2(Z,triangle_mesh,1) #local Z = array [5]{9,8,10,7,12} PATCH_array2(Z,triangle_mesh,4) #local Z = array [5]{0,11,1,10,12} PATCH_array2(Z,triangle_mesh,2) // ------------------------------------- #break // *************************************************************************************************************** #case (23) // hexa-penta #local A = array [19] { <1/8,-1/8,0>, <9/8,-1/8,0>, <4/8,0,0>,<6/8,0,0>, <1/8,1/8,0>,<9/8,1/8,0>, <3/8,2/8,0>,<7/8,2/8,0>, <5/8,3/8,0>, <0,4/8,0>,<2/8,4/8,0>,<8/8,4/8,0>, <5/8,5/8,0>, <3/8,6/8,0>,<7/8,6/8,0>, <1/8,7/8,0>,<9/8,7/8,0>, <4/8,8/8,0>,<6/8,8/8,0> } #local R = array [10]{17,13,10,6,2,3,7,11,14,18} DRAW(R) cylinder {px(A[9]), px(A[10]), cyl_thickness} #local R = array [7]{0,4,6,8,12,13,15} DRAW(R) cylinder {px(A[16]), px(A[14]), cyl_thickness} cylinder {px(A[14]), px(A[12]), cyl_thickness} cylinder {px(A[5]), px(A[7]), cyl_thickness} cylinder {px(A[7]), px(A[8]), cyl_thickness} #local sph = array [13]{0,2,3,4,6,7,8,9,10,12,13,14,15} PUT_SPHERES(sph) #if(RIGHT=true) #local R4 = array [4]{1,5,11,16}; DRAW (R4) #local sph = array [3]{1,5,11} PUT_SPHERES(sph) #end #if(LEFT=true) cylinder {px(A[4]), px(A[9]), cyl_thickness} cylinder {px(A[9]), px(A[15]), cyl_thickness} #end #if(TOP=true) #local R5 = array [4]{15,17,18,16}; DRAW (R5) sphere {px(A[17]), sph_thickness} sphere {px(A[18]), sph_thickness} #if(RIGHT=true) sphere {px(A[16]), sph_thickness} #end #if (RIGHT=true) sphere {px(A[16]), sph_thickness} #end #end #if(BOTTOM=true) cylinder {px(A[0]), px(A[2]), cyl_thickness} cylinder {px(A[3]), px(A[1]), cyl_thickness} #end // ------------------------------------- #local Z = array [5]{6,2,8,3,7} PATCH_array2(Z,triangle_mesh,3) // PENTAGONO INFERIOR CENTRAL #local Z = array [5]{13,17,12,18,14} PATCH_array2(Z,triangle_mesh,4) // PENTAGONO SUPERIOR CENTRAL #local Z = array [5]{6,8,10,12,13} PATCH_array2(Z,triangle_mesh,1) // PENTAGONO IZQ CENTRAL #local Z = array [5]{7,8,11,12,14} PATCH_array2(Z,triangle_mesh,2) // PENTAGONO DER CENTRAL PATCH_4 (0,2,4,6,triangle_mesh,2) // TRAPECIO INFERIOR IZQUIERDO PATCH_3 (13,15,17,triangle_mesh,2) // TRIANGULO SUPERIOR IZQUIERDO PATCH_3 (14,16,18,triangle_mesh,1) // TRIANGULO SUPERIOR DERECHO PATCH_4 (1,3,5,7,triangle_mesh,1) // TRAPECIO INFERIOR DERECHO PATCH_3 (5,7,11,triangle_mesh,4) // TRIANGULO CENTRAL DERECHO INFERIOR PATCH_4 (4,6,9,10,triangle_mesh,4) // TRAPECIO CENTRAL IZQUIERDO INFERIOR PATCH_3 (11,14,16,triangle_mesh,3) // TRIANGULO CENTRAL IZQUIERDO SUPERIOR PATCH_4 (9,10,15,13,triangle_mesh,3) // TRAPECIO CENTRAL DERECHO SUPERIOR // ------------------------------------- #break // *************************************************************************************************************** #case (24) #local adjust_tiles = 1.5 ; #local A = array [21]{ <-1/4,0,0>, <1/4,0,0>, <3/4,0,0>, <5/4,0,0> <0,1/4,0>, <2/4,1/4,0>, <4/4,1/4,0>, <1/4,2/4,0>, <3/4,2/4,0>, <5/4,2/4,0>, <0,3/4,0>, <2/4,3/4,0>, <4/4,3/4,0>, <-1/4,4/4,0>, <1/4,4/4,0>, <3/4,4/4,0>,<5/4,4/4,0>, <6/4,1/4,0>,<6/4,3/4,0> <-2/4,1/4,0>,<-2/4,3/4,0> } #local R = array [13]{2,5,7,10,11,12,15,11,7,4,5,6,2} DRAW (R) #local sph = array [7]{2,4,5,6,7,10,11}; PUT_SPHERES (sph) #if (TOP=true) sphere {px(A[15]), sph_thickness} #end #if(RIGHT=true) #local R = array [7]{9,6,17,9,12,18,9} DRAW(R) sphere {px(A[6]), sph_thickness} sphere {px(A[9]), sph_thickness} sphere {px(A[12]), sph_thickness} sphere {px(A[17]), sph_thickness} sphere {px(A[18]), sph_thickness} #end #if(LEFT=true) #if (TOP=false) #local R = array [4]{20,10,13,20} DRAW (R) sphere {px(A[20]), sph_thickness} sphere {px(A[13]), sph_thickness} #end #if (BOTTOM=false) #local R = array [4]{4,0,19,4} DRAW (R) sphere {px(A[19]), sph_thickness} #end #end // ------------------------------------- PATCH_3 (2,5,6,triangle_mesh,1) PATCH_3 (4,5,7,triangle_mesh,1) PATCH_3 (7,10,11,triangle_mesh,1) PATCH_3 (12,11,15,triangle_mesh,1) #if (RIGHT=true) PATCH_3 (6,17,9,triangle_mesh,1) PATCH_3 (9,12,18,triangle_mesh,1) #end #if (LEFT=true) #if (BOTTOM=false) PATCH_3 (0,4,19,triangle_mesh,1) #end #if (TOP=false) PATCH_3 (10,20,13,triangle_mesh,1) #end #end #local T = array [7]{5,6,9,12,11,7,5}; PATCH_array (8,T,triangle_mesh,2) #if (TOP=false) PATCH_4 (10,11,14,15,triangle_mesh,2) #if (RIGHT=false) PATCH_3 (12,15,16,triangle_mesh,2) #end #if (LEFT=true) PATCH_3 (10,13,14,triangle_mesh,2) #end #end #if (BOTTOM=false) PATCH_4 (2,1,5,4,triangle_mesh,2) #if (RIGHT=false) PATCH_3 (2,3,6,triangle_mesh,2) #end #if (LEFT=true) PATCH_3 (0,1,4,triangle_mesh,2) #end #end // ------------------------------------- #break // *************************************************************************************************************** #case (25) #local adjust_tiles = 1.5 ; #local A = array [12] { <0,0,0>,<1/2,0,0>,<1,0,0>, <0,1/4,0>,<1,1/4,0>, <0,1/2,0>,<1/2,1/2,0>,<1,1/2,0>, <1/2,3/4,0>, <0,1,0>,<1/2,1,0>,<1,1,0> } #local R = array [7]{10,8,6,3,1,4,6} DRAW(R) #local R = array [5]{11,8,5,3,0} DRAW(R) cylinder {px(A[9]), px(A[8]), cyl_thickness} cylinder {px(A[8]), px(A[7]), cyl_thickness} #local sph = array [6]{0,1,3,5,6,8}; PUT_SPHERES (sph) #if(RIGHT=true) #local R3 = array [4]{2,4,7,11} DRAW(R3) #local sph = array [3]{2,4,7}; PUT_SPHERES (sph) #end #if(LEFT=true) cylinder {px(A[5]), px(A[9]), cyl_thickness} #end #if(TOP=true) cylinder {px(A[9]), px(A[10]), cyl_thickness} cylinder {px(A[10]), px(A[11]), cyl_thickness} sphere {px(A[9]), sph_thickness} sphere {px(A[10]), sph_thickness} #if (RIGHT=true) sphere {px(A[11]), sph_thickness} #end #end #if(BOTTOM=true) cylinder {px(A[0]), px(A[1]), cyl_thickness} cylinder {px(A[1]), px(A[2]), cyl_thickness} #end // ------------------------------------- PATCH_3 (0,1,3,triangle_mesh,3) PATCH_3 (1,2,4,triangle_mesh,2) PATCH_3 (5,8,9,triangle_mesh,1) PATCH_3 (7,8,11,triangle_mesh,1) PATCH_3 (8,9,10,triangle_mesh,3) PATCH_3 (8,10,11,triangle_mesh,2) PATCH_4 (3,1,6,4,triangle_mesh,1) PATCH_4 (4,7,6,8,triangle_mesh,3) PATCH_4 (3,5,6,8,triangle_mesh,2) // ------------------------------------- #break // *************************************************************************************************************** #case (26) #local A = array [13] { <3/5,-1/5,0>,<0,0,0>,<1,0,0>,<2/5,1/5,0>,<-1/5,2/5,0>,<4/5,2/5,0>, <1/5,3/5,0>,<6/5,3/5,0>,<3/5,4/5,0>,<0,1,0>,<1,1,0>,<2/5,6/5,0>,<.5,.5,0> } #local R = array [6]{1,3,5,8,6,3} DRAW(R) cylinder {px(A[2]), px(A[5]), cyl_thickness} cylinder {px(A[8]), px(A[10]), cyl_thickness} cylinder {px(A[6]), px(A[9]), cyl_thickness} #local sph = array [5]{1,3,5,6,8}; PUT_SPHERES (sph) #if(RIGHT=true) cylinder {px(A[5]), px(A[7]), cyl_thickness} cylinder {px(A[7]), px(A[10]), cyl_thickness} sphere {px(A[2]), sph_thickness} sphere {px(A[7]), sph_thickness} #end #if(LEFT=true) cylinder {px(A[1]), px(A[4]), cyl_thickness} cylinder {px(A[4]), px(A[6]), cyl_thickness} sphere {px(A[4]), sph_thickness} sphere {px(A[9]), sph_thickness} #end #if(TOP=true) cylinder {px(A[9]), px(A[11]), cyl_thickness} cylinder {px(A[11]), px(A[8]), cyl_thickness} sphere {px(A[9]), sph_thickness} sphere {px(A[11]), sph_thickness} #if (RIGHT=true) sphere {px(A[10]), sph_thickness} #end #end #if(BOTTOM=true) cylinder {px(A[3]), px(A[0]), cyl_thickness} cylinder {px(A[0]), px(A[2]), cyl_thickness} sphere {px(A[0]), sph_thickness} #end // ------------------------------------- #local T = array [5]{3,5,8,6,3} PATCH_array(12,T,triangle_mesh,2) PATCH_4 (0,2,3,5,triangle_mesh,3) // INF PATCH_4 (7,10,5,8,triangle_mesh,1) // RIGHT PATCH_4 (4,1,6,3,triangle_mesh,1) // LEFT PATCH_4 (11,9,8,6,triangle_mesh,3) // TOP // ------------------------------------- #break // *************************************************************************************************************** #case (27) #local Phi = 0.618033989; #local A = array [9] { <0,0,0>,,<1,0,0>, <0,Phi,0>,,<1,Phi,0>, <0,1,0>,,<1,1,0> } #local R = array [9]{0,1,4,7,8,5,4,3,0} DRAW(R) #local sph = array [5]{0,1,3,4,8} PUT_SPHERES(sph) #if(RIGHT=true) cylinder {px(A[2]), px(A[5]), cyl_thickness} sphere {px(A[5]), sph_thickness} #end #if(LEFT=true) cylinder {px(A[3]), px(A[6]), cyl_thickness} #end #if(TOP=true) cylinder {px(A[6]), px(A[7]), cyl_thickness} sphere {px(A[6]), sph_thickness} sphere {px(A[7]), sph_thickness} #end #if(BOTTOM=true) cylinder {px(A[1]), px(A[2]), cyl_thickness} #if (arc_mnr_rd!=360&n_seg_mnr_rem=(0)&n_seg_mjr_rem=(n_s_mjr_rd-1)) sphere {px(A[2]), sph_thickness} #end #end // ------------------------------------- PATCH_4 (0,1,3,4,triangle_mesh,1) PATCH_4 (5,8,4,7,triangle_mesh,1) PATCH_4 (1,2,4,5,triangle_mesh,2) PATCH_4 (4,7,3,6,triangle_mesh,2) // ------------------------------------- #break // *************************************************************************************************************** #case (28) #local A = array [13] { <0,0,0>,<1,0,0>, // 0 1 <.5,.25,0>, // 2 <.375,.375,0>,<.625,.375,0>, // 3 4 <.5,.5,0>, // 5 <0,.75,0>, <1,.75,0>, // 6 7 <.125,.875,0>, <.875,.875,0>, // 8 9 <0,1,0>, <1,1,0>, // 10 11 <.5,1.25,0>, // 12 } #local R = array [22]{11,9,7,4,1,2,0,3,6,5,4,2,3,5,9,12,8,10,6,8,5,7} DRAW (R) #local sph = array [10] {0,2,3,4,5,6,8,9,10,12} PUT_SPHERES(sph) cylinder {px(A[3]), px(A[4]), cyl_thickness} #if(RIGHT=true) cylinder {px(A[1]), px(A[7]), cyl_thickness} cylinder {px(A[7]), px(A[11]), cyl_thickness} sphere {px(A[1]), sph_thickness} sphere {px(A[7]), sph_thickness} #end #if(LEFT=true) cylinder {px(A[0]), px(A[6]), cyl_thickness} #end #if(TOP=true) cylinder {px(A[10]), px(A[12]), cyl_thickness} cylinder {px(A[11]), px(A[12]), cyl_thickness} #if (RIGHT=true) sphere {px(A[11]), sph_thickness} #end #end // ------------------------------------- PATCH_4 (3,5,6,8,triangle_mesh,1) PATCH_4 (4,5,7,9,triangle_mesh,1) PATCH_4 (2,4,3,5,triangle_mesh,3) PATCH_3 (0,2,3,triangle_mesh,1) PATCH_3 (1,2,4,triangle_mesh,1) PATCH_3 (6,8,10,triangle_mesh,3) PATCH_3 (7,9,11,triangle_mesh,3) PATCH_3 (8,10,12,triangle_mesh,1) PATCH_3 (9,11,12,triangle_mesh,1) PATCH_4 (5,9,8,12,triangle_mesh,2) PATCH_3 (1,4,7,triangle_mesh,2) PATCH_3 (0,3,6,triangle_mesh,2) // ------------------------------------- #break // *************************************************************************************************************** #case (29) #local adjust_tiles = 1.5 ; #local A = array [26] { <0,0,0>,<2/6,0,0>,<4/6,0,0>,<6/6,0,0>, <1/6,2/12,0>,<3/6,2/12,0>,<5/6,2/12,0>,<7/6,2/12,0>, <0,4/12,0>,<2/6,4/12,0>,<6/6,4/12,0>, <-1/6,6/12,0>,<1/6,6/12,0>,<3/6,6/12,0>,<5/6,6/12,0>,<7/6,6/12,0>, <0,8/12,0>,<2/6,8/12,0>,<4/6,8/12,0>,<6/6,8/12,0>, <3/6,10/12,0>,<5/6,10/12,0>, <2/6,12/12,0>,<4/6,12/12,0>,<6/6,12/12,0> <-1/6,2/12,0> } #local R = array [18]{24,21,19,18,13,14,10,6,2,1,0,4,5,9,12,17,20,22} DRAW(R) #local sph = array [17] {0,1,2,4,5,6,7,8,9,12,13,14,16,17,18,20,21} PUT_SPHERES(sph) cylinder {px(A[21]), px(A[23]), cyl_thickness} cylinder {px(A[18]), px(A[20]), cyl_thickness} cylinder {px(A[16]), px(A[17]), cyl_thickness} cylinder {px(A[9]), px(A[13]), cyl_thickness} cylinder {px(A[4]), px(A[8]), cyl_thickness} cylinder {px(A[5]), px(A[6]), cyl_thickness} cylinder {px(A[14]), px(A[15]), cyl_thickness} #if(RIGHT=true) cylinder {px(A[15]), px(A[19]), cyl_thickness} cylinder {px(A[3]), px(A[7]), cyl_thickness} cylinder {px(A[10]), px(A[7]), cyl_thickness} sphere {px(A[3]), sph_thickness} sphere {px(A[10]), sph_thickness} sphere {px(A[15]), sph_thickness} sphere {px(A[19]), sph_thickness} cylinder {px(A[10]), px(A[15]), cyl_thickness} PATCH_3 (10,14,15,triangle_mesh,2) #end #if(LEFT=true) cylinder {px(A[8]), px(A[11]), cyl_thickness} cylinder {px(A[11]), px(A[12]), cyl_thickness} cylinder {px(A[12]), px(A[16]), cyl_thickness} cylinder {px(A[8]), px(A[25]), cyl_thickness} cylinder {px(A[25]), px(A[4]), cyl_thickness} PATCH_3 (25,8,4,triangle_mesh,3) sphere {px(A[25]), sph_thickness} sphere {px(A[11]), sph_thickness} #end #if(TOP=true) cylinder {px(A[22]), px(A[23]), cyl_thickness} cylinder {px(A[23]), px(A[24]), cyl_thickness} sphere {px(A[22]), sph_thickness} sphere {px(A[23]), sph_thickness} sphere {px(A[24]), sph_thickness} #end #if(BOTTOM=true) cylinder {px(A[2]), px(A[3]), cyl_thickness} #end // ------------------------------------- PATCH_6 (0,4,1,5,2,6,triangle_mesh,1) #local Z = array [5]{13,18,14,19,15} PATCH_array2(Z,triangle_mesh,1) PATCH_3 (12,16,17,triangle_mesh,1) PATCH_6 (4,5,8,9,11,12,triangle_mesh,2) PATCH_6 (18,19,20,21,22,23,triangle_mesh,2) PATCH_6 (9,12,13,17,18,20,triangle_mesh,3) PATCH_3 (21,23,24,triangle_mesh,3) #local Z = array [5]{2,3,6,7,10} PATCH_array2(Z,triangle_mesh,3) // ------------------------------------- #break // *************************************************************************************************************** #case (30) #local A = array [41] { <0,0,0><1/6,0,0><4/6,0,0><5/6,0,0> <0,1/6,0><1/6,1/6,0><2/6,1/6,0><3/6,1/6,0><4/6,1/6,0><5/6,1/6,0><6/6,1/6,0> <0,2/6,0><1/6,2/6,0><2/6,2/6,0><3/6,2/6,0><4/6,2/6,0><5/6,2/6,0> <1/6,3/6,0><2/6,3/6,0><4/6,3/6,0><5/6,3/6,0> <1/6,4/6,0><2/6,4/6,0><3/6,4/6,0><4/6,4/6,0><5/6,4/6,0><6/6,4/6,0> <0,5/6,0><1/6,5/6,0><2/6,5/6,0><3/6,5/6,0><4/6,5/6,0><5/6,5/6,0><6/6,5/6,0> <1/6,6/6,0><2/6,6/6,0><5/6,6/6,0> <1,0,0><0,1,0><1,1,0><.5,.5,0> } #local R = array [17] {6,7,14,15,16,20,19,24,31,30,23,22,21,17,18,13,6} DRAW(R) #local R = array [5] {3,2,8,9,10} DRAW(R) #local R = array [5] {33,26,25,32,36} DRAW(R) #local R = array [5] {34,35,29,28,27} DRAW(R) #local R = array [5] {4,11,12,5,1} DRAW(R) #local sph = array [32]{6,7,14,15,16,20,19,24,31,30,23,22,21,17,18,13,4,11,12,5,3,2,8,9,33,26,25,32,34,35,29,28} PUT_SPHERES(sph) #if(RIGHT=true) cylinder {px(A[37]), px(A[10]), cyl_thickness} cylinder {px(A[33]), px(A[39]), cyl_thickness} sphere {px(A[37]), sph_thickness} sphere {px(A[10]), sph_thickness} #end #if(LEFT=true) cylinder {px(A[0]), px(A[4]), cyl_thickness} cylinder {px(A[27]), px(A[38]), cyl_thickness} sphere {px(A[0]), sph_thickness} sphere {px(A[27]), sph_thickness} #end #if(TOP=true) cylinder {px(A[38]), px(A[34]), cyl_thickness} cylinder {px(A[36]), px(A[39]), cyl_thickness} sphere {px(A[38]), sph_thickness} sphere {px(A[36]), sph_thickness} #if (RIGHT=true) sphere {px(A[39]), sph_thickness} #end #end #if(BOTTOM=true) cylinder {px(A[0]), px(A[1]), cyl_thickness} cylinder {px(A[3]), px(A[37]), cyl_thickness} sphere {px(A[1]), sph_thickness} sphere {px(A[37]), sph_thickness} #end // ------------------------------------- PATCH_4 (11,12,4,5,triangle_mesh,1) PATCH_4 (0,1,4,5,triangle_mesh,1) PATCH_4 (2,3,8,9,triangle_mesh,1) PATCH_4 (37,10,3,9,triangle_mesh,1) PATCH_4 (26,33,25,32,triangle_mesh,1) PATCH_4 (39,33,36,32,triangle_mesh,1) PATCH_4 (35,29,34,28,triangle_mesh,1) PATCH_4 (38,27,34,28,triangle_mesh,1) PATCH_4 (7,14,6,13,triangle_mesh,1) PATCH_4 (40,14,18,13,triangle_mesh,1) PATCH_4 (20,16,19,15,triangle_mesh,1) PATCH_4 (40,14,19,15,triangle_mesh,1) PATCH_4 (30,31,23,24,triangle_mesh,1) PATCH_4 (40,19,23,24,triangle_mesh,1) PATCH_4 (17,18,21,22,triangle_mesh,1) PATCH_4 (40,23,18,22,triangle_mesh,1) // ------------------------------------- #break // *************************************************************************************************************** #case (31) #local adjust_tiles = 1.25 ; #local A = array [44] { <3/10,0,0>,<5/10,0,0>, <3/10,2/18,0>,<5/10,2/18,0>, <2/10,4/18,0>,<6/10,4/18,0>, <0,5/18,0>,<8/10,5/18,0><1,5/18,0>, <3/10,6/18,0>,<5/10,6/18,0>, <1/10,7/18,0>,<7/10,7/18,0>,<11/10,7/18,0>, <0,9/18,0>,<8/10,9/18,0>,<1,9/18,0>, <0,11/18,0>,<8/10,11/18,0>,<1,11/18,0>, <1/10,13/18,0>,<7/10,13/18,0>,<11/10,13/18,0>, <3/10,14/18,0>,<5/10,14/18,0>, <0,15/18,0>,<8/10,15/18,0>,<1,15/18,0>, <2/10,16/18,0>,<6/10,16/18,0>, <3/10,18/18,0>,<5/10,18/18,0>, <-2/10,5/18,0>, <-3/10,7/18,0>, <-2/10,9/18,0>, <-2/10,11/18,0>, <-3/10,13/18,0>, <-2/10,15/18,0>, <4/10,4/18,0>, <4/10,16/18,0>, <9/10,7/18,0>, <9/10,13/18,0>, <-1/10,7/18,0>, <-1/10,13/18,0> } #local R = array [22]{11,14,17,20,23,24,21,18,15,12,10,9,11,6,4,2,0,1,3,5,7,12} DRAW (R) #local R = array [4]{20,25,28,23} DRAW (R) #local R = array [4]{24,29,26,21} DRAW (R) cylinder {px(A[4]), px(A[9]), cyl_thickness} cylinder {px(A[2]), px(A[3]), cyl_thickness} cylinder {px(A[5]), px(A[10]), cyl_thickness} cylinder {px(A[28]), px(A[30]), cyl_thickness} cylinder {px(A[29]), px(A[31]), cyl_thickness} cylinder {px(A[18]), px(A[19]), cyl_thickness} cylinder {px(A[15]), px(A[16]), cyl_thickness} cylinder {px(A[7]), px(A[8]), cyl_thickness} cylinder {px(A[26]), px(A[27]), cyl_thickness} #local sph = array [24]{0,1,2,3,4,5,6,7,9,10,11,12,14,15,17,18,20,21,23,24,25,26,28,29} PUT_SPHERES(sph) #if(RIGHT=true) #local R4 = array [6]{8,13,16,19,22,27} DRAW (R4) PUT_SPHERES(R4) #end #if(LEFT=true) #local R5 = array [8]{6,32,33,34,35,36,37,25} DRAW (R5) PUT_SPHERES(R5) cylinder {px(A[14]), px(A[34]), cyl_thickness} cylinder {px(A[17]), px(A[35]), cyl_thickness} PATCH_4 (35,34,17,14,triangle_mesh,2) #local T5 = array [7]{32,6,11,14,34,33,32};PATCH_array (42,T5,triangle_mesh,1) #local T6 = array [7]{35,17,20,25,37,36,35};PATCH_array (43,T6,triangle_mesh,1) #end #if(TOP=true) cylinder {px(A[30]), px(A[31]), cyl_thickness} sphere {px(A[30]), sph_thickness} sphere {px(A[31]), sph_thickness} #end // ------------------------------------- PATCH_4 (20,23,25,28,triangle_mesh,2) PATCH_4 (24,21,29,26,triangle_mesh,2) PATCH_4 (18,15,19,16,triangle_mesh,2) PATCH_4 (12,10,7,5,triangle_mesh,2) PATCH_4 (9,11,4,6,triangle_mesh,2) PATCH_4 (2,0,3,1,triangle_mesh,2) #local T = array [7]{2,3,5,10,9,4,2}; PATCH_array (38,T,triangle_mesh,1) #local T = array [7]{23,24,29,31,30,28,23}; PATCH_array (39,T,triangle_mesh,1) #local T = array [7]{7,8,13,16,15,12,7}; PATCH_array (40,T,triangle_mesh,1) #local T = array [7]{18,19,22,27,26,21,18}; PATCH_array (41,T,triangle_mesh,1) // ------------------------------------- #break // *************************************************************************************************************** #case (32) #local adjust_tiles = .5 ; #local A = array [19] { <1/10,0,0> <7/10,0,0> <3/10,1/6,0> <5/10,1/6,0> <0,2/6,0> <8/10,2/6,0> <1,2/6,0> <2/10,3/6,0> <6/10,3/6,0> <0,4/6,0> <8/10,4/6,0> <1,4/6,0> <3/10,5/6,0> <5/10,5/6,0> <1/10,6/6,0> <7/10,6/6,0> <3/10,7/6,0> <5/10,7/6,0> <4/10,3/6,0> } #local R = array [7]{2,3,8,13,12,7,2} DRAW (R) #local R = array [8]{2,0,4,7,9,14,12,16} DRAW (R) #local R= array [8]{17,13,15,10,8,5,1,3} DRAW (R) #local R= array [5]{11,10,5,6,11} DRAW (R) #local sph = array [14]{0,1,2,3,4,5,7,8,9,10,12,13,14,15} PUT_SPHERES(sph) #if(RIGHT=true) sphere {px(A[6]), sph_thickness} sphere {px(A[11]), sph_thickness} #end #if(LEFT=true) cylinder {px(A[4]), px(A[9]), cyl_thickness} #end #if(TOP=true) #local R5= array [4]{14,16,17,15} DRAW (R5) sphere {px(A[16]), sph_thickness} sphere {px(A[17]), sph_thickness} #end // ------------------------------------- PATCH_4 (0,2,4,7,triangle_mesh,1) PATCH_4 (1,5,3,8,triangle_mesh,1) PATCH_4 (9,7,14,12,triangle_mesh,1) PATCH_4 (12,16,13,17,triangle_mesh,1) PATCH_4 (13,15,8,10,triangle_mesh,1) PATCH_4 (5,6,10,11,triangle_mesh,1) PATCH_3 (4,7,9,triangle_mesh,2) PATCH_3 (5,8,10,triangle_mesh,2) PATCH_3 (12,14,16,triangle_mesh,2) PATCH_3 (13,15,17,triangle_mesh,2) // ------------------------------------- #break // *************************************************************************************************************** #case (33) #local adjust_tiles = 1.5 ; #local A = array [57] { <0,0,0><2/8,0,0><6/8,0,0><8/8,0,0> <4/8,1/14,0> <2.5/8,1.5/14,0><5.5/8,1.5/14,0> <-1/8,2/14,0><1/8,2/14,0><7/8,2/14,0><9/8,2/14,0> <0,3/14,0><3/8,3/14,0><5/8,3/14,0><8/8,3/14,0> <-1/8,4/14,0><1/8,4/14,0><4/8,4/14,0><7/8,4/14,0><9/8,4/14,0> <3/8,5/14,0><5/8,5/14,0> <1.5/8,5.5/14,0><6.5/8,5.5/14,0> <0,6/14,0><8/8,6/14,0> <2/8,7/14,0><4/8,7/14,0><6/8,7/14,0> <0,8/14,0><8/8,8/14,0> <1.5/8,8.5/14,0><6.5/8,8.5/14,0> <3/8,9/14,0><5/8,9/14,0> <-1/8,10/14,0><1/8,10/14,0><4/8,10/14,0><7/8,10/14,0><9/8,10/14,0> <0,11/14,0><3/8,11/14,0><5/8,11/14,0><8/8,11/14,0> <-1/8,12/14,0><1/8,12/14,0><7/8,12/14,0><9/8,12/14,0> <2.5/8,12.5/14,0><5.5/8,12.5/14,0> <4/8,13/14,0> <0,14/14,0><2/8,14/14,0><4/8,14/14,0><6/8,14/14,0><8/8,14/14,0> <4/8,15/14,0> } #local R = array [25] {20,12,13,21,18,25,28,30,38,34,42,41,33,36,29,26,24,16,20,21,28,34,33,26,20} DRAW (R) #local R = array [13] {4,12,8,16,15,7,8,1,4,13,9,2,4} DRAW (R) #local R = array [13] {50,41,45,36,35,44,45,52,50,54,46,42,50} DRAW (R) #local sph = array [24] {1,2,4,7,8,12,13,15,16,20,21,24,26,28,29,33,34,35,36,41,42,44,45,50} PUT_SPHERES(sph) #if(RIGHT=true) #local R4 = array [8] {9,18,19,25,30,39,38,46} DRAW (R4) PUT_SPHERES(R4) #end #if(LEFT=true) cylinder {px(A[24]), px(A[29]), cyl_thickness} #end #if(TOP=true) cylinder {px(A[52]), px(A[56]), cyl_thickness} cylinder {px(A[56]), px(A[54]), cyl_thickness} sphere {px(A[52]), sph_thickness} sphere {px(A[54]), sph_thickness} sphere {px(A[56]), sph_thickness} #end // ------------------------------------- #local T = array [5]{1,4,12,8,1} PATCH_array (5,T,triangle_mesh,1) #local T = array [5]{2,4,13,9,2} PATCH_array (6,T,triangle_mesh,1) #local T = array [5]{7,8,16,15,7} PATCH_array (11,T,triangle_mesh,1) #local T = array [5]{12,13,21,20,12} PATCH_array (17,T,triangle_mesh,1) #local T = array [5]{16,20,26,24,16} PATCH_array (22,T,triangle_mesh,1) #local T = array [5]{21,18,25,28,21} PATCH_array (23,T,triangle_mesh,1) #local T = array [5]{26,33,36,29,26} PATCH_array (31,T,triangle_mesh,1) #local T = array [5]{28,30,38,34,28} PATCH_array (32,T,triangle_mesh,1) #local T = array [5]{33,34,42,41,33} PATCH_array (37,T,triangle_mesh,1) #local T = array [5]{35,36,45,44,35} PATCH_array (40,T,triangle_mesh,1) #local T = array [5]{41,50,52,45,41} PATCH_array (48,T,triangle_mesh,1) #local T = array [5]{42,46,54,50,42} PATCH_array (49,T,triangle_mesh,1) PATCH_4 (8,12,16,20,triangle_mesh,3) PATCH_4 (9,13,18,21,triangle_mesh,3) PATCH_4 (33,36,41,45,triangle_mesh,3) PATCH_4 (34,38,42,46,triangle_mesh,3) PATCH_4 (52,50,56,54,triangle_mesh,3) PATCH_3 (28,25,30,triangle_mesh,3) PATCH_3 (24,26,29,triangle_mesh,3) PATCH_3 (4,12,13,triangle_mesh,2) PATCH_3 (18,19,25,triangle_mesh,2) PATCH_3 (30,38,39,triangle_mesh,2) PATCH_3 (41,42,50,triangle_mesh,2) // ------------------------------------- #break // *************************************************************************************************************** #case (34) #local adjust_tiles = 1.5 ; #local A = array [49] { <0,0,0><2/8,0,0><4/8,0,0><6/8,0,0><8/8,0,0> <-1/8,2/16,0><1/8,2/16,0><3/8,2/16,0><5/8,2/16,0><7/8,2/16,0><9/8,2/16,0> <0,4/16,0><2/8,4/16,0><4/8,4/16,0><6/8,4/16,0><8/8,4/16,0> <-1/8,6/16,0><1/8,6/16,0><3/8,6/16,0><5/8,6/16,0><7/8,6/16,0><9/8,6/16,0> <0,8/16,0><2/8,8/16,0><4/8,8/16,0><6/8,8/16,0><8/8,8/16,0> <-1/8,10/16,0><1/8,10/16,0><3/8,10/16,0><5/8,10/16,0><7/8,10/16,0><9/8,10/16,0> <0,12/16,0><2/8,12/16,0><4/8,12/16,0><6/8,12/16,0><8/8,12/16,0> <-1/8,14/16,0><1/8,14/16,0><3/8,14/16,0><5/8,14/16,0><7/8,14/16,0><9/8,14/16,0> <0,1,0><2/8,1,0><4/8,1,0><6/8,1,0><8/8,1,0> } #local R = array [21]{20,15,9,8,13,19,20,25,31,30,35,29,28,23,17,18,13,7,6,11,17} DRAW(R) #local R = array [9] {28,33,39,40,35,41,42,37,31} DRAW(R) #local R = array [4] {1,7,8,3} DRAW(R) #local R = array [4] {45,40,41,47} DRAW(R) #if (LEFT=false) cylinder {px(A[16]), px(A[17]), cyl_thickness} cylinder {px(A[27]), px(A[28]), cyl_thickness} sphere {px(A[16]), sph_thickness} #if (TOP=true) cylinder {px(A[44]), px(A[45]), cyl_thickness} #end #if (BOTTOM=true) cylinder {px(A[0]), px(A[1]), cyl_thickness} #end #end #if ((RIGHT=false)&(TOP=true)) cylinder {px(A[47]), px(A[48]), cyl_thickness} sphere {px(A[48]), sph_thickness} #end #local sph = array [24] {1,3,6,7,8,9,11,13,17,18,19,20,23,25,28,29,30,31,33,35,39,40,41,42} PUT_SPHERES(sph) #if (RIGHT=true) sphere {px(A[15]), sph_thickness} sphere {px(A[37]), sph_thickness} #end #if (TOP=true) #local R = array [3] {45,46,47} DRAW (R) PUT_SPHERES(R) #end #if (BOTTOM=true) #local R = array [3] {1,2,3} DRAW (R) PUT_SPHERES(R) #if (RIGHT=false) cylinder {px(A[3]), px(A[4]), cyl_thickness} sphere {px(A[4]), sph_thickness} #end #end // ------------------------------------- #local T = array [13]{13,19,20,25,31,30,35,29,28,23,17,18,13} PATCH_array (24,T,triangle_mesh,1) #local T = array [7]{6,7,13,18,17,11,6} PATCH_array (12,T,triangle_mesh,2) #local T = array [7]{8,9,15,20,19,13,8} PATCH_array (14,T,triangle_mesh,2) #local T = array [7]{28,29,35,40,39,33,28} PATCH_array (34,T,triangle_mesh,2) #local T = array [7]{30,31,37,42,41,35,30} PATCH_array (36,T,triangle_mesh,2) PATCH_3 (7,8,13,triangle_mesh,3) PATCH_3 (40,35,41,triangle_mesh,3) #local T = array [4]{45,40,41,47} PATCH_array (46,T,triangle_mesh,2) #local T = array [4]{1,7,8,3} PATCH_array (2,T,triangle_mesh,2) #if (RIGHT=false) PATCH_3 (15,20,21,triangle_mesh,3) PATCH_3 (31,32,37,triangle_mesh,3) PATCH_4 (41,42,47,48,triangle_mesh,1) PATCH_4 (37,42,43,48,triangle_mesh,1) PATCH_4 (4,3,9,8,triangle_mesh,1) PATCH_4 (4,10,9,15,triangle_mesh,1) #local T = array [5]{21,20,25,31,32} PATCH_array (26,T,triangle_mesh,2) #end #if (LEFT=false) PATCH_4 (0,1,6,7,triangle_mesh,1) PATCH_4 (40,39,45,44,triangle_mesh,1) PATCH_4 (17,23,22,28,triangle_mesh,2) #end // ------------------------------------- #break // *************************************************************************************************************** #case (35) #local A = array [20] { <1/4,0,0><2/4,0,0><3/4,0,0> <0,1/4,0><1/4,1/4,0><2/4,1/4,0><3/4,1/4,0><1,1/4,0> <0,2/4,0><1/4,2/4,0><3/4,2/4,0><1,2/4,0> <0,3/4,0><1/4,3/4,0><2/4,3/4,0><3/4,3/4,0><1,3/4,0> <1/4,1,0><2/4,1,0><3/4,1,0> } #local R = array [8]{17,12,8,3,0,1,2,7} DRAW(R) #local R = array [12]{1,5,10,11,10,14,18,14,9,8,9,5} DRAW(R) cylinder {px(A[16]), px(A[19]), cyl_thickness} #local sph = array [10] {0,1,2,3,5,8,9,10,12,14} PUT_SPHERES(sph) #if(RIGHT=true) cylinder {px(A[7]), px(A[11]), cyl_thickness} cylinder {px(A[11]), px(A[16]), cyl_thickness} sphere {px(A[7]), sph_thickness} sphere {px(A[11]), sph_thickness} sphere {px(A[16]), sph_thickness} #end #if(TOP=true) cylinder {px(A[17]), px(A[18]), cyl_thickness} cylinder {px(A[18]), px(A[19]), cyl_thickness} sphere {px(A[17]), sph_thickness} sphere {px(A[18]), sph_thickness} sphere {px(A[19]), sph_thickness} #end // ------------------------------------- #local T = array [7]{0,1,5,9,8,3,0} PATCH_array (4,T,triangle_mesh,1) #local T = array [7]{1,2,7,11,10,5,1} PATCH_array (6,T,triangle_mesh,2) #local T = array [7]{10,11,16,19,18,14,10} PATCH_array (15,T,triangle_mesh,1) #local T = array [7]{8,9,14,18,17,12,8} PATCH_array (13,T,triangle_mesh,2) // ------------------------------------- #break // *************************************************************************************************************** #case (36) #local A = array [53] { <1/6,-1/6,0><2/6,-1/6,0><4/6,-1/6,0><5/6,-1/6,0> <0,0,0><1.5/6,0,0><3/6,0,0><4.5/6,0,0><1,0,0> <-1/6,1/6,0><1/6,1/6,0><2/6,1/6,0><4/6,1/6,0><5/6,1/6,0><7/6,1/6,0> <0,1.5/6,0><3/6,1.5/6,0><1,1.5/6,0> <-1/6,2/6,0><1/6,2/6,0><2/6,2/6,0><4/6,2/6,0><5/6,2/6,0><7/6,2/6,0> <0,3/6,0><1.5/6,3/6,0><3/6,3/6,0><4.5/6,3/6,0><1,3/6,0> <-1/6,4/6,0><1/6,4/6,0><2/6,4/6,0><4/6,4/6,0><5/6,4/6,0><7/6,4/6,0> <0,4.5/6,0><3/6,4.5/6,0><1,4.5/6,0> <-1/6,5/6,0><1/6,5/6,0><2/6,5/6,0><4/6,5/6,0><5/6,5/6,0><7/6,5/6,0> <0,1,0><1.5/6,1,0><3/6,1,0><4.5/6,1,0><1,1,0> <1/6,7/6,0><2/6,7/6,0><4/6,7/6,0><5/6,7/6,0> } #local R = array [13]{4,10,11,6,12,21,26,31,40,46,41,42,48} DRAW(R) #local R = array [13]{8,13,22,28,33,32,26,20,19,24,30,39,44} DRAW(R) #local sph = array [20] {4,6,10,11,12,13,19,20,21,22,24,26,30,31,32,33,39,40,41,42} PUT_SPHERES(sph) #if (RIGHT=true) #local R = array [4]{28,34,43,48} DRAW(R) PUT_SPHERES(R) #end #if (LEFT=true) #local R = array [4]{4,9,18,24} DRAW(R) PUT_SPHERES(R) #end #if (TOP=true) #local R = array [4]{44,49,50,46} DRAW(R) PUT_SPHERES(R) #end #if (BOTTOM=true) #local R = array [4]{6,2,3,8} DRAW(R) PUT_SPHERES(R) #end // ------------------------------------- PATCH_4 (10,11,19,20,triangle_mesh,1) PATCH_4 (13,22,12,21,triangle_mesh,2) PATCH_4 (41,42,32,33,triangle_mesh,1) PATCH_4 (39,30,40,31,triangle_mesh,2) #local T = array [7]{6,12,21,26,20,11,6} PATCH_array (16,T,triangle_mesh,1) #local T = array [7]{19,20,26,31,30,24,19} PATCH_array (25,T,triangle_mesh,2) #local T = array [7]{21,22,28,33,32,26,21} PATCH_array (27,T,triangle_mesh,2) #local T = array [7]{26,32,41,46,40,31,26} PATCH_array (36,T,triangle_mesh,1) #local T = array [7]{28,34,43,48,42,33,28} PATCH_array (37,T,triangle_mesh,1) #local T = array [7]{4,10,19,24,18,9,4} PATCH_array (15,T,triangle_mesh,1) #local T = array [7]{39,40,46,50,49,44,39} PATCH_array (45,T,triangle_mesh,2) #local T = array [7]{2,3,8,13,12,6,2} PATCH_array (7,T,triangle_mesh,2) // ------------------------------------- #break // *************************************************************************************************************** #case (37) #local adjust_tiles = 1.5 ; #local A = array [36] { <-1/6,0,0><1/6,0,0><3/6,0,0><5/6,0,0><7/6,0,0> <0,2/12,0><2/6,2/12,0><4/6,2/12,0><1,2/12,0> <-1/6,4/12,0><1/6,4/12,0><3/6,4/12,0><5/6,4/12,0><7/6,4/12,0> <0,6/12,0><2/6,6/12,0><4/6,6/12,0><1,6/12,0> <-1/6,8/12,0><1/6,8/12,0><3/6,8/12,0><5/6,8/12,0><7/6,8/12,0> <0,10/12,0><2/6,10/12,0><4/6,10/12,0><1,10/12,0> <-1/6,1,0><1/6,1,0><3/6,1,0><5/6,1,0><7/6,1,0> <0,14/12,0><2/6,14/12,0><4/6,14/12,0><1,14/12,0> } #local R = array [15]{14,10,11,7,8,12,16,21,26,25,20,19,14,15,16} DRAW(R) #local sph = array [13] {7,8,10,11,12,14,15,16,19,20,21,25,26} PUT_SPHERES(sph) #if (RIGHT=false) sphere {px(A[13]), sph_thickness} sphere {px(A[17]), sph_thickness} sphere {px(A[22]), sph_thickness} #end #if (BOTTOM=false) #local R = array [3]{1,6,11} DRAW(R) cylinder {px(A[2]), px(A[7]), cyl_thickness} sphere {px(A[6]), sph_thickness} #end #if (TOP=false) #local R = array [3]{20,24,28} DRAW(R) cylinder {px(A[25]), px(A[29]), cyl_thickness} sphere {px(A[24]), sph_thickness} sphere {px(A[28]), sph_thickness} sphere {px(A[29]), sph_thickness} #end #if ((RIGHT=false)&(BOTTOM=false)) #local R = array [4]{7,2,3,4} DRAW(R) sphere {px(A[3]), sph_thickness} sphere {px(A[4]), sph_thickness} #end #if (LEFT=false) cylinder {px(A[5]), px(A[10]), cyl_thickness} cylinder {px(A[19]), px(A[23]), cyl_thickness} sphere {px(A[5]), sph_thickness} sphere {px(A[9]), sph_thickness} sphere {px(A[18]), sph_thickness} sphere {px(A[23]), sph_thickness} #if (TOP= false) sphere {px(A[27]), sph_thickness} #end #if (BOTTOM=false) #local sph = array [3] {0,1,2} PUT_SPHERES(sph) #end #end // ------------------------------------- PATCH_4 (8,7,12,11,triangle_mesh,3) PATCH_6 (14,10,15,11,16,12,triangle_mesh,3) PATCH_6 (14,19,15,20,16,21,triangle_mesh,2) PATCH_4 (20,21,25,26,triangle_mesh,2) #if (TOP=false) PATCH_4 (20,24,25,29,triangle_mesh,1) PATCH_4 (24,29,28,33,triangle_mesh,1) #if (LEFT=false) PATCH_4 (20,19,24,23,triangle_mesh,3) PATCH_4 (24,23,28,27,triangle_mesh,3) #end #if (RIGHT=false) PATCH_4 (25,26,29,30,triangle_mesh,3) #end #end #if (RIGHT=false) PATCH_6 (12,16,17,21,22,26,triangle_mesh,1) PATCH_4 (8,13,12,17,triangle_mesh,1) #end #if (BOTTOM=false) PATCH_4 (2,6,7,11,triangle_mesh,1) #if (RIGHT=false) PATCH_4 (2,3,7,8,triangle_mesh,2) #end #if (LEFT=false) PATCH_4 (0,1,5,6,triangle_mesh,2) PATCH_4 (5,6,10,11,triangle_mesh,2) #end #end // ------------------------------------- #break // *************************************************************************************************************** #case (38) #local adjust_tiles = 1.25 ; #local A = array [32] { <0,0,0>, <2/8,0,0>, <1/8,1/14,0>, <0,2/14,0>, <2/8,2/14,0>, <1,2/14,0>, <4/8,3/14,0>, <6/8,3/14,0> <2.5/8,3.5/14,0>,<7.5/8,3.5/14,0> <1/8,4/14,0>, <9/8,4/14,0>, <3/8,5/14,0>, <5/8,5/14,0>, <7/8,5/14,0> <4/8,7/14,0>, <6/8,7/14,0> <5/8,8/14,0>, <4/8,9/14,0>, <6/8,9/14,0>, <0,10/14,0>, <2/8,10/14,0>, <1,10/14,0>, <3.5/8,10.5/14,0>,<6.5/8,10.5/14,0>, <5/8,11/14,0>, <-1/8,12/14,0>, <1/8,12/14,0>, <3/8,12/14,0>, <7/8,12/14,0>, <0,1,0><2/8,1,0> } #local R = array [20]{30,26,20,21,18,15,12,10,3,0,1,4,6,7,14,16,19,25,28,31} DRAW (R) PUT_SPHERES(R) cylinder {px(A[3]), px(A[4]), cyl_thickness} cylinder {px(A[4]), px(A[10]), cyl_thickness} cylinder {px(A[5]), px(A[7]), cyl_thickness} cylinder {px(A[6]), px(A[12]), cyl_thickness} cylinder {px(A[11]), px(A[14]), cyl_thickness} cylinder {px(A[15]), px(A[16]), cyl_thickness} cylinder {px(A[18]), px(A[19]), cyl_thickness} cylinder {px(A[18]), px(A[25]), cyl_thickness} cylinder {px(A[19]), px(A[22]), cyl_thickness} cylinder {px(A[21]), px(A[28]), cyl_thickness} cylinder {px(A[25]), px(A[29]), cyl_thickness} #if (RIGHT=true) cylinder {px(A[5]), px(A[11]), cyl_thickness} cylinder {px(A[22]), px(A[29]), cyl_thickness} #local sph = array [4] {5,11,22,29} PUT_SPHERES(sph) #end #if (TOP=true) cylinder {px(A[30]), px(A[31]), cyl_thickness} #end // ------------------------------------- PATCH_3 (3,4,10,triangle_mesh,1) PATCH_3 (18,19,25,triangle_mesh,1) #local T = array [5]{0,1,4,3,0} PATCH_array (2,T,triangle_mesh,3) #local T = array [5]{4,6,12,10,4} PATCH_array (8,T,triangle_mesh,3) #local T = array [5]{7,5,11,14,7} PATCH_array (9,T,triangle_mesh,3) #local T = array [5]{15,16,19,18,15} PATCH_array (17,T,triangle_mesh,3) #local T = array [5]{18,25,28,21,18} PATCH_array (23,T,triangle_mesh,3) #local T = array [5]{19,22,29,25,19} PATCH_array (24,T,triangle_mesh,3) #local T = array [7]{6,7,14,16,15,12,6} PATCH_array (13,T,triangle_mesh,2) #local T = array [7]{20,21,28,31,30,26,20} PATCH_array (27,T,triangle_mesh,2) // ------------------------------------- #break // *************************************************************************************************************** #case (39) #local N_Segmn = 30 ; #local Counter = 0; #while (Counter*.5 ), sph_thickness } cylinder { px( *.5 ) px( *.5 ) cyl_thickness } cylinder { px( *.5 ) px( *.5 ) cyl_thickness } #local Counter=Counter+1; #end #break // *************************************************************************************************************** #case (40) #local A = array [16] { <2/6,0,0>,<4/6,0,0>, <0,1/6,0>,<1,1/6,0>, <1.5/6,1.5/6,0>,<4.5/6,1.5/6,0>, <3/6,2/6,0>, <1/6,3/6,0>,<5/6,3/6,0>, <3/6,4/6,0>, <1.5/6,4.5/6,0>,<4.5/6,4.5/6,0>, <0,5/6,0>,<1,5/6,0>, <2/6,1,0>,<4/6,1,0> } #local R = array [17]{6,1,3,8,13,15,9,14,12,7,2,0,6,8,9,7,6} DRAW (R) #local sph = array [7] {0,1,2,6,7,9,12} PUT_SPHERES(sph) #if (RIGHT=true) sphere {px(A[3]), sph_thickness} sphere {px(A[8]), sph_thickness} sphere {px(A[13]), sph_thickness} #end #if (TOP=true) sphere {px(A[14]), sph_thickness} sphere {px(A[15]), sph_thickness} #end // ------------------------------------- #local T = array [5]{2,0,6,7,2} PATCH_array (4,T,triangle_mesh,1) #local T = array [5]{1,3,8,6,1} PATCH_array (5,T,triangle_mesh,1) #local T = array [5]{7,9,14,12,7} PATCH_array (10,T,triangle_mesh,1) #local T = array [5]{8,9,15,13,8} PATCH_array (11,T,triangle_mesh,1) PATCH_4(7,6,9,8,triangle_mesh,2) #if (TOP=false) PATCH_3(9,14,15,triangle_mesh,2) #end #if (BOTTOM=false) PATCH_3(0,1,6,triangle_mesh,2) #end #if (RIGHT=false) PATCH_3(3,8,13,triangle_mesh,2) #end #if (LEFT=false) PATCH_3(2,7,12,triangle_mesh,2) #end // ------------------------------------- #break // *************************************************************************************************************** #case (41) #local A = array [68] { <6/18,0,0>,<8/18,0,0>,<10/18,0,0>,<12/18,0,0>, <9/18,1/18,0>, <6/18,2/18,0>,<8/18,2/18,0>,<10/18,2/18,0>,<12/18,2/18,0>, <4/18,4/18,0>,<6/18,4/18,0>,<12/18,4/18,0>,<14/18,4/18,0> <0,6/18,0>,<2/18,6/18,0>,<4/18,6/18,0>,<6/18,6/18,0>,<8/18,6/18,0>,<10/18,6/18,0>,<12/18,6/18,0>,<14/18,6/18,0>,<16/18,6/18,0>,<1,6/18,0>, <0,8/18,0>,<2/18,8/18,0>,<6/18,8/18,0>,<8/18,8/18,0>,<10/18,8/18,0>,<12/18,8/18,0>,<16/18,8/18,0>,<1,8/18,0>, <1/18,9/18,0>,<17/18,9/18,0>, <0,10/18,0>,<2/18,10/18,0>,<6/18,10/18,0>,<8/18,10/18,0>,<10/18,10/18,0>,<12/18,10/18,0>,<16/18,10/18,0>,<1,10/18,0>, <0,12/18,0>,<2/18,12/18,0>,<4/18,12/18,0>,<6/18,12/18,0>,<8/18,12/18,0>,<10/18,12/18,0>,<12/18,12/18,0>,<14/18,12/18,0>,<16/18,12/18,0>,<1,12/18,0>, <4/18,14/18,0>,<6/18,14/18,0>,<12/18,14/18,0>,<14/18,14/18,0> <6/18,16/18,0>,<8/18,16/18,0>,<10/18,16/18,0>,<12/18,16/18,0>, <9/18,17/18,0>, <6/18,1,0>,<8/18,1,0>,<10/18,1,0>,<12/18,1,0> <12/18,-2/18,0>,<-2/18,6/18,0>,<20/18,12/18,0>,<6/18,20/18,0>, } #local R = array [12]{65,13,14,15,16,17,18,27,26,25,24,23} DRAW(R) #local R = array [12]{40,39,38,37,36,45,46,47,48,49,50,66} DRAW(R) #local R = array [12]{2,7,18,27,37,38,28,19,11,8,3,64} DRAW(R) #local R = array [12]{67,60,55,52,44,35,25,26,36,45,56,61} DRAW(R) #local R = array [9]{1,5,9,14,15,10,6,4,2} DRAW(R) #local R = array [9]{61,59,57,53,48,49,54,58,62} DRAW(R) #local R = array [9]{23,31,34,43,52,55,51,42,33} DRAW(R) #local R = array [9]{40,32,29,20,11,8,12,21,30} DRAW(R) cylinder {px(A[6]), px(A[17]), cyl_thickness} cylinder {px(A[10]), px(A[16]), cyl_thickness} cylinder {px(A[46]), px(A[57]), cyl_thickness} cylinder {px(A[47]), px(A[53]), cyl_thickness} cylinder {px(A[34]), px(A[35]), cyl_thickness} cylinder {px(A[43]), px(A[44]), cyl_thickness} cylinder {px(A[28]), px(A[29]), cyl_thickness} cylinder {px(A[19]), px(A[20]), cyl_thickness} cylinder {px(A[56]), px(A[59]), cyl_thickness} cylinder {px(A[4]), px(A[7]), cyl_thickness} cylinder {px(A[31]), px(A[24]), cyl_thickness} cylinder {px(A[32]), px(A[39]), cyl_thickness} /* #local p=1/9; cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} // cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} // cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} // cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} // cylinder {px(), px(), cyl_thickness} // cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} // cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} // cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} // cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} // cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} // cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} // cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} // cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} // cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} // cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} // cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} // cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} // cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} cylinder {px(), px(), cyl_thickness} */ // ------------------------------------- // vertical izquierda PATCH_4 (67,61,60,55,triangle_mesh,1) PATCH_4 (52,56,55,61,triangle_mesh,1) PATCH_4 (44,45,52,56,triangle_mesh,1) PATCH_4 (45,44,36,35,triangle_mesh,1) PATCH_4 (25,26,35,36,triangle_mesh,1) PATCH_4 (16,17,10,6,triangle_mesh,1) // vertical derecha PATCH_4 (47,53,46,57,triangle_mesh,1) PATCH_4 (38,37,28,27,triangle_mesh,1) PATCH_4 (18,19,27,28,triangle_mesh,1) PATCH_4 (19,18,11,7,triangle_mesh,1) PATCH_4 (11,7,8,2,triangle_mesh,1) PATCH_4 (64,2,3,8,triangle_mesh,1) // horizontal abajo PATCH_4 (19,20,28,29,triangle_mesh,2) PATCH_4 (18,27,17,26,triangle_mesh,2) PATCH_4 (25,16,26,17,triangle_mesh,2) PATCH_4 (16,25,15,24,triangle_mesh,2) PATCH_4 (15,24,14,23,triangle_mesh,2) PATCH_4 (65,23,13,14,triangle_mesh,2) // horizontal arriba PATCH_4 (44,43,35,34,triangle_mesh,2) PATCH_4 (45,36,46,37,triangle_mesh,2) PATCH_4 (38,47,37,46,triangle_mesh,2) PATCH_4 (47,38,48,39,triangle_mesh,2) PATCH_4 (48,39,49,40,triangle_mesh,2) PATCH_4 (66,50,40,49,triangle_mesh,2) // diagonal abajo PATCH_3 (1,2,4,triangle_mesh,3) PATCH_4 (14,15,9,10,triangle_mesh,3) PATCH_4 (9,10,5,6,triangle_mesh,3) PATCH_4 (5,6,1,4,triangle_mesh,3) PATCH_3 (23,24,31,triangle_mesh,3) // diagonal derecha PATCH_3 (30,32,40,triangle_mesh,4) PATCH_4 (8,11,12,20,triangle_mesh,4) PATCH_4 (12,20,21,29,triangle_mesh,4) PATCH_4 (21,29,30,32,triangle_mesh,4) PATCH_3 (2,4,7,triangle_mesh,4) // diagonal arriba PATCH_3 (59,61,62,triangle_mesh,3) PATCH_4 (49,48,54,53,triangle_mesh,3) PATCH_4 (54,53,58,57,triangle_mesh,3) PATCH_4 (58,57,62,59,triangle_mesh,3) PATCH_3 (39,40,32,triangle_mesh,3) // diagonal izquierda PATCH_3 (23,31,33,triangle_mesh,4) PATCH_4 (55,52,51,43,triangle_mesh,4) PATCH_4 (51,43,42,34,triangle_mesh,4) PATCH_4 (42,34,33,31,triangle_mesh,4) PATCH_3 (56,59,61,triangle_mesh,4) // ------------------------------------- #break // *************************************************************************************************************** #case (42) #local HEIGTH = 5 ; #local A = array [5]{<0,0,0>,<1,0,0>,<0,1,0>,<1,1,0>,<.5,.5,HEIGTH>}; cylinder { px(A[0]), px(A[1]), cyl_thickness} cylinder { px(A[0]), px(A[2]), cyl_thickness} sphere {px(A[0]), sph_thickness} sphere {px(A[4]), sph_thickness} cylinder { px(A[0]), px(A[4]), cyl_thickness} cylinder { px(A[1]), px(A[4]), cyl_thickness} cylinder { px(A[2]), px(A[4]), cyl_thickness} cylinder { px(A[3]), px(A[4]), cyl_thickness} #if (RIGHT=true) cylinder {px(A[3]), px(A[1]), cyl_thickness } sphere {px(A[1]), sph_thickness} #end #if (TOP=true) cylinder {px(A[2]), px(A[3]), cyl_thickness} sphere {px(A[2]), sph_thickness} #if (RIGHT=true) sphere {px(A[3]), sph_thickness} #end #end // ------------------------------------- PATCH_3 (0,1,4,triangle_mesh,1) PATCH_3 (1,3,4,triangle_mesh,4) PATCH_3 (2,3,4,triangle_mesh,2) PATCH_3 (0,2,4,triangle_mesh,3) // ------------------------------------- #break // *************************************************************************************************************** #case (43) #local HGT1= minor_r*1.25; #local A = array [32]{<0.0,0,0>, // 0 // 0 <1/3,0,0>, // 1 <2/3,0,0>, // 1 // 2 < 1,0,0>, // 2 // 3 <1/4,.25,0>, // 3 // 4 <3/4,.25,0>, // 4 // 5 <0,1/3,0>, // 5 // 6 < 1,1/3,0>, // 6 // 7 <0,2/3,0>, // 8 <1,2/3,0>, // 9 <.25,.75,0>, // 7 // 10 <.75,.75,0>, // 8 // 11 <0,1,0>, // 9 //12 <1/3,1,0>, // 10 //13 <2/3,1,0>, //14 <1,1,0>, // 11 //15 <0.0,0,HGT1>, // 12 // 16 <1/3,0,HGT1>, // 17 <2/3,0,HGT1>, // 13 // 18 < 1,0,HGT1>, // 14 // 19 <1/4,.25,HGT1>, // 15 // 20 <3/4,.25,HGT1>, // 16 // 21 <0,1/3,HGT1>, // 17 // 22 < 1,1/3,HGT1>, // 18 // 23 <0,2/3,HGT1>, // 24 <1,2/3,HGT1>, // 25 <.25,.75,HGT1>, // 19 // 26 <.75,.75,HGT1>, // 20 // 27 <0,1,HGT1>, // 21 // 28 <1/3,1,HGT1>, // 22 // 29 <2/3,1,HGT1>, // 30 <1,1,HGT1> // 23 // 31 }; #local sph = array[9]{16,17,18,22,20,21,26,27,24}; PUT_SPHERES(sph) // #local R = array [14]{3,2,1,0,6,8,12,28,24,22,16,17,18,19} DRAW (R) // cylinder {px(A[0]), px(A[16]), cyl_thickness } sphere {px(A[0]), sph_thickness} // #local R = array [10]{4,5,11,10,4,20,21,27,26,20} DRAW (R) // cylinder {px(A[5]), px(A[21]), cyl_thickness } // cylinder {px(A[10]), px(A[26]), cyl_thickness } // cylinder {px(A[11]), px(A[27]), cyl_thickness } #if (RIGHT=true) #local R = array [8]{31,25,23,19,3,7,9,15} DRAW (R) #local sph = array[3]{19,23,25}; PUT_SPHERES(sph) #end #if (TOP=true) #local R = array [4]{12,13,14,15} DRAW (R) #local R = array [4]{28,29,30,31} DRAW (R) #local sph = array[3]{28,29,30}; PUT_SPHERES(sph) #if (RIGHT=true) cylinder {px(A[15]), px(A[31]), cyl_thickness} sphere {px(A[31]), sph_thickness} #end #end // ------------------------------------- PATCH_4 (4,5,20,21,1,2) // cuadrado interior PATCH_4 (10,11,26,27,1,2) PATCH_4 (4,10,20,26,1,2) PATCH_4 (5,11,21,27,1,2) PATCH_6 (0,6,1,4,2,5,triangle_mesh,1) // cuadrado inferior PATCH_6 (3,2,7,5,9,11,triangle_mesh,1) PATCH_6 (15,9,14,11,13,10,triangle_mesh,1) PATCH_6 (12,13,8,10,6,4,triangle_mesh,1) PATCH_6 (16,22,17,20,18,21,triangle_mesh,1) // cuadrado superior PATCH_6 (19,18,23,21,25,27,triangle_mesh,1) PATCH_6 (31,25,30,27,29,26,triangle_mesh,1) PATCH_6 (28,29,24,26,22,20,triangle_mesh,1) #if (TOP=true) PATCH_8 (15,31,14,30,13,29,12,28,1,1) #end #if (BOTTOM=true) PATCH_8 (3,19,2,18,1,17,0,16,1,1) #end #if (RIGHT=true) PATCH_8 (3,19,7,23,9,25,15,31,1,1) #end #if (LEFT=true) PATCH_8 (0,16,6,22,8,24,12,28,1,1) #end // ------------------------------------- #break // *************************************************************************************************************** #case (44) #local HGT = minor_r*.25 ; #local Hole = .35 ; #local A = array [64] { <0,0,0> <1,0,0> <0,Hole,0> <1,Hole,0> <0,1,0> <1,1,0> <0,1+Hole,0> <1,1+Hole,0> <0,0,HGT*Hole> <1,0,HGT*Hole> <0,Hole,HGT*Hole> <1,Hole,HGT*Hole> <0,1,HGT*Hole> <1,1,HGT*Hole> <0,1+Hole,HGT*Hole> <1,1+Hole,HGT*Hole> <0,0,HGT> <1,0,HGT> <0,Hole,HGT> <1,Hole,HGT> <0,1,HGT> <1,1,HGT> <0,1+Hole,HGT> <1,1+Hole,HGT> <0,0,HGT+(HGT*Hole)> <1,0, HGT+(HGT*Hole)> <0,Hole,HGT+(HGT*Hole)> <1,Hole, HGT+(HGT*Hole)> <0,1,HGT+(HGT*Hole)> <1,1, HGT+(HGT*Hole)> <0,1+Hole,HGT+(HGT*Hole)> <1,1+Hole, HGT+(HGT*Hole)> <1+Hole,0,0>,<1+Hole,Hole,0> <1+Hole,1,0>,<1+Hole,1+Hole,0> <1+Hole,0,HGT*Hole>,<1+Hole,Hole,HGT*Hole> <1+Hole,1,HGT*Hole>,<1+Hole,1+Hole,HGT*Hole> <1+Hole,0,HGT>,<1+Hole,Hole,HGT> <1+Hole,1,HGT>,<1+Hole,1+Hole,HGT> <1+Hole,0,HGT+(HGT*Hole)>,<1+Hole,Hole,HGT+(HGT*Hole)> <1+Hole,1,HGT+(HGT*Hole)>,<1+Hole,1+Hole,HGT+(HGT*Hole)> }; // ------------------------------------- /* _________7_______ / /| /| / | / | / | / | / | 8 2 / | / | / 9 /_________6______/ | | | | | | | | | | | 11 | 5 /-------1---|-----/ | / | / | 3 | 10 | / | / |/ | / /---------4------|/ */ // 1 PATCH_6 (2,5,1,4,0,3,triangle_mesh,1) //-Y PATCH_4 (14,17,13,16,triangle_mesh,1) //+Y PATCH_6 (2,14,1,13,0,12,1,3) //-Z PATCH_4 (5,17,4,16,1,3) //+Z // 2 PATCH_4 (4,16,7,19,1,2) //+x PATCH_6 (0,12,3,15,6,18,1,2) //-X PATCH_4 (3,4,6,7,triangle_mesh,1) //-Y PATCH_4 (15,16,18,19,triangle_mesh,1) //+Y // 3 PATCH_6 (12,13,24,25,36,37,1,3) //-z PATCH_4 (15,16,27,28,1,3) //+z PATCH_6 (12,15,24,27,36,39,1,2) //-x PATCH_4 (13,16,25,28,1,2) //+x // 4 PATCH_4 (25,28,26,29,triangle_mesh,1) //-Y PATCH_6 (39,36,40,37,41,38,triangle_mesh,1) //+Y PATCH_4 (25,37,26,38,1,3) //-z PATCH_4 (28,40,29,41,1,3) //+z // 5 PATCH_4 (27,28,30,31,triangle_mesh,1) //-y PATCH_4 (39,40,42,43,triangle_mesh,1) //+y PATCH_4 (27,39,30,42,1,2) //-x PATCH_4 (28,40,31,43,1,2) //+x #if (TOP=true) // 6 PATCH_4 (31,34,32,35,triangle_mesh,1) //-y PATCH_6 (42,45,43,46,44,47,triangle_mesh,1) //+y PATCH_4 (31,43,32,44,1,3) //-z PATCH_4 (34,46,35,47,1,3) //+z // 7 PATCH_4 (7,10,8,11,triangle_mesh,1) //-y PATCH_4 (19,22,20,23,triangle_mesh,1) //+y PATCH_4 (7,19,8,20,1,3) //-z PATCH_4 (10,22,11,23,1,3) //+z // 8 PATCH_4 (18,19,30,31,1,3) //-z PATCH_6 (21,22,33,34,45,46,1,3) //+z PATCH_4 (18,21,30,33,1,2) //-x PATCH_4 (19,22,31,34,1,2) //+x #if (RIGHT=true) // 12 PATCH_8 (47,63,35,59,23,55,11,51,1,3) //+y PATCH_4 (11,51,8,50,1,1) //+z PATCH_4 (35,23,32,20,1,2) //-x PATCH_8 (62,63,58,59,54,55,50,51,1,2) //+x PATCH_4 (32,58,20,54,1,3) //-y PATCH_4 (44,62,47,63,1,1) //-z #end #end #if (RIGHT=true) // 9 PATCH_6 (2,48,5,49,8,50,1,1) //+z PATCH_4 (17,53,20,54,1,1) //-z PATCH_4 (17,5,20,8,1,2) //-x PATCH_6 (52,48,53,49,54,50,1,2) //+x // 10 PATCH_8 (38,60,26,56,14,52,2,48,1,3) // -y PATCH_4 (26,29,14,17,1,2) //-x PATCH_6 (60,61,56,57,52,53,1,2) //+x PATCH_4 (29,57,17,53,1,3) //+y // 11 PATCH_4 (29,57,32,58,1,1) //+z PATCH_4 (41,29,44,32,1,2) //-x PATCH_4 (61,57,62,58,1,2) //+x PATCH_6 (38,60,41,61,44,62,1,1) //-z #end // ------------------------------------- #break // *************************************************************************************************************** #case (45) #include "shapes.inc" Round_Box_Union (px(<0,0,0>), px(<1,.1,1>), cyl_thickness*0.025) Round_Box_Union (px(<0,0,0>), px(<.1,1,1>), cyl_thickness*0.025) #break // *************************************************************************************************************** #case (46) #local N_Segmn = 9 ; #local Counter = 0 ; #local Degrees = 360 ; #local Recorte = .15 ; #while (Counter),sph_thickness} cylinder {px( <(1/N_Segmn)*Counter,sind((Degrees/N_Segmn)*Counter)*Recorte, 0>) px( <(1/N_Segmn)*(Counter+1),sind((Degrees/N_Segmn)*(Counter+1))*Recorte,0>) cyl_thickness } #if (TOP=true) sphere {px(<(1/N_Segmn)*Counter,1+sind((Degrees/N_Segmn)*Counter)*Recorte,0>),sph_thickness} cylinder {px( <(1/N_Segmn)*Counter,1+sind((Degrees/N_Segmn)*Counter)*Recorte, 0>) px( <(1/N_Segmn)*(Counter+1),1+sind((Degrees/N_Segmn)*(Counter+1))*Recorte,0>) cyl_thickness } #if (RIGHT=true) sphere {px(<(1/N_Segmn)*N_Segmn,1+sind((Degrees/N_Segmn)*N_Segmn)*Recorte,0>),sph_thickness} #end #end // verticales sphere {px(), sph_thickness} cylinder { px( ) px( ) cyl_thickness } #if (RIGHT=true) sphere {px(<1+cosd(((Degrees/N_Segmn)*Counter)+90)*Recorte,((1/N_Segmn)*Counter),0>), sph_thickness} cylinder { px( <1+cosd(((Degrees/N_Segmn)*Counter)+90)*Recorte,((1/N_Segmn)*Counter), 0> ) px( <1+cosd((Degrees/N_Segmn)*(Counter+1)+90)*Recorte,((1/N_Segmn)*(Counter+1)), 0> ) cyl_thickness } #end } #local Counter=Counter+1; #end // ------------------------------------- #local X_Row = 0 ; #while (X_Row<(N_Segmn)) #local Y_Col = 0 ; #while (Y_Col<(N_Segmn)) #if (odd(n_seg_mjr_rem)=1) #if ( odd(n_seg_mnr_rem)=1) #local id_pigment = 1 ; #else #local id_pigment = 2 ; #end #else #if (odd(n_seg_mnr_rem)=1) #local id_pigment = 2 ; #else #local id_pigment = 1 ; #end #end PATCH_3_wo_array ( <(1/N_Segmn)*X_Row + cosd(((Degrees/N_Segmn)*Y_Col)+90)*Recorte,((1/N_Segmn)*Y_Col) + sind((Degrees/N_Segmn)*X_Row)*Recorte,0>, <(1/N_Segmn)*(X_Row+1) + cosd(((Degrees/N_Segmn)*Y_Col)+90)*Recorte,((1/N_Segmn)*Y_Col) + sind((Degrees/N_Segmn)*(X_Row+1))*Recorte,0>, <(1/N_Segmn)*X_Row + cosd(((Degrees/N_Segmn)*(Y_Col+1))+90)*Recorte,((1/N_Segmn)*(Y_Col+1)) + sind((Degrees/N_Segmn)*X_Row)*Recorte,0>, triangle_mesh,id_pigment) PATCH_3_wo_array ( <(1/N_Segmn)*(X_Row+1) + cosd(((Degrees/N_Segmn)*(Y_Col+1))+90)*Recorte,((1/N_Segmn)*(Y_Col+1)) + sind((Degrees/N_Segmn)*(X_Row+1))*Recorte,0>, <(1/N_Segmn)*(X_Row+1) + cosd(((Degrees/N_Segmn)*Y_Col)+90)*Recorte,((1/N_Segmn)*Y_Col) + sind((Degrees/N_Segmn)*(X_Row+1))*Recorte,0>, <(1/N_Segmn)*X_Row + cosd(((Degrees/N_Segmn)*(Y_Col+1))+90)*Recorte,((1/N_Segmn)*(Y_Col+1)) + sind((Degrees/N_Segmn)*X_Row)*Recorte,0>, triangle_mesh,id_pigment) #local Y_Col = Y_Col+1; #end #local X_Row = X_Row+1; #end // ------------------------------------- #break // *************************************************************************************************************** #case (47) #local A = array [6]{<0,0,0>,<1,0,0>,<-.5,.5,0>,<.5,.5,0>,<0,1,0>,<1,1,0>}; #local N_Segmn = 20 ; // always even numbers here #local Counter = 0; #local Degrees = 360 ; #local Recorte = .075 ; #macro Horz_Curve (X,Y,XX) #end #macro Pte_Right (X,Y,XX) #end #macro Pte_Left (X,Y,XX) #end #while (Counter,<0,0>,<-.5,.5>,1) Subdv(<.5,.5>,<.5,.5>,<0,1>,1) Subdv2(<0,0>,<0,0>,<1,0>,2) Subdv2(<-.5,.5>,<-.5,.5>,<.5,.5>,2) //------------------------------------ #break // *************************************************************************************************************** #case (48) #local H = .15 ; #local A = array [48] { <1/8,-1/8,-H><3/8,-1/8,-H> <1/8,1/8,-H><3/8,1/8,-H><5/8,1/8,-H><7/8,1/8,-H><9/8,1/8,-H> <1/8,3/8,-H><3/8,3/8,-H><5/8,3/8,-H><7/8,3/8,-H><9/8,3/8,-H> <-1/8,5/8,-H><1/8,5/8,-H><3/8,5/8,-H><5/8,5/8,-H><7/8,5/8,-H> <-1/8,7/8,-H><1/8,7/8,-H><3/8,7/8,-H><5/8,7/8,-H><7/8,7/8,-H> <5/8,9/8,-H><7/8,9/8,-H> <1/8,-1/8,H><3/8,-1/8,H> <1/8,1/8,H><3/8,1/8,H><5/8,1/8,H><7/8,1/8,H><9/8,1/8,H> <1/8,3/8,H><3/8,3/8,H><5/8,3/8,H><7/8,3/8,H><9/8,3/8,H> <-1/8,5/8,H><1/8,5/8,H><3/8,5/8,H><5/8,5/8,H><7/8,5/8,H> <-1/8,7/8,H><1/8,7/8,H><3/8,7/8,H><5/8,7/8,H><7/8,7/8,H> <5/8,9/8,H><7/8,9/8,H> } #local R = array [5]{24,2,7,37,42} DRAW(R) #local R = array [5]{25,3,8,38,43} DRAW(R) #local R = array [5]{46,20,15,33,28} DRAW(R) #local R = array [5]{47,21,16,34,29} DRAW(R) #local sph = array [8] {24,25,2,3,7,8,37,38} PUT_SPHERES(sph) #local sph = array [8] {28,29,33,34,15,16,20,21} PUT_SPHERES(sph) #local R = array [5]{41,18,19,44,45} DRAW(R) #local R = array [5]{36,13,14,39,40} DRAW(R) #local R = array [5]{30,5,4,27,26} DRAW(R) #local R = array [5]{35,10,9,32,31} DRAW(R) #local sph = array [8] {41,18,19,44,36,13,14,39} PUT_SPHERES(sph) #local sph = array [8] {31,32,9,10,26,27,4,5} PUT_SPHERES(sph) // ------------------------------------- #local Z = array [10]{26,31,27,32,4,9,5,10,30,35} PATCH_array2(Z,1,2) #local Z = array [10]{36,41,13,18,14,19,39,44,40,45} PATCH_array2(Z,1,2) #local Z = array [10]{24,25,2,3,7,8,37,38,42,43} PATCH_array2(Z,1,1) #local Z = array [10]{28,29,33,34,15,16,20,21,46,47} PATCH_array2(Z,1,1) // ------------------------------------- #break // *************************************************************************************************************** #case (49) #local A = array [21]{ <1/3,0,0>,<2/3,0,0>,<1/2,1/12,0>,<2/9,2/9,0>,<7/9,2/9,0>,<0,1/3,0>, <1,1/3,0>,<1/12,1/2,0>,<11/12,1/2,0>,<0,2/3,0>,<1,2/3,0>,<2/9,7/9,0>, <7/9,7/9,0>,<1/2,11/12,0>,<1/3,1,0>,<2/3,1,0>,<1/2,1/2,0>, <0,0,0>,<1,0,0>,<0,1,0>,<1,1,0> } #local R = array [25]{2,1,4,6,8,10,12,15,13,14,11,9,7,5,3,0,2,4,8,12,13,11,7,3,2} DRAW(R) #local sph = array [12] {0,1,2,3,4,5,7,8,9,11,12,13} PUT_SPHERES(sph) #if (TOP=true) #local R = array [4]{19,14,15,20} DRAW(R) #local sph = array [3] {19,14,15} PUT_SPHERES(sph) #if (RIGHT=true) sphere {px(A[20]), sph_thickness} #end #end #if (RIGHT=true) #local R = array [4]{18,6,10,20} DRAW(R) sphere {px(A[6]), sph_thickness} sphere {px(A[10]), sph_thickness} sphere {px(A[18]), sph_thickness} #end #if (LEFT=true) #local R = array [4]{17,5,9,19} DRAW(R) sphere {px(A[17]), sph_thickness} #end #if (BOTTOM=true) #local R = array [4]{17,0,1,18} DRAW(R) #end // ------------------------------------- PATCH_3 (1,2,4,triangle_mesh,1) PATCH_3 (4,6,8,triangle_mesh,1) PATCH_3 (8,10,12,triangle_mesh,1) PATCH_3 (12,13,15,triangle_mesh,1) PATCH_3 (11,13,14,triangle_mesh,1) PATCH_3 (7,9,11,triangle_mesh,1) PATCH_3 (3,5,7,triangle_mesh,1) PATCH_3 (0,2,3,triangle_mesh,1) #local T = array [9]{2,4,8,12,13,11,7,3,2} PATCH_array (16,T,triangle_mesh,2) PATCH_3 (0,1,2,triangle_mesh,3) PATCH_3 (6,8,10,triangle_mesh,3) PATCH_3 (13,14,15,triangle_mesh,3) PATCH_3 (5,7,9,triangle_mesh,3) PATCH_4 (17,0,5,3,triangle_mesh,4) PATCH_4 (1,18,4,6,triangle_mesh,4) PATCH_4 (9,11,19,14,triangle_mesh,4) PATCH_4 (12,10,15,20,triangle_mesh,4) // ------------------------------------- #break // *************************************************************************************************************** #case (50) #local A = array [137]{ <18,-1,0>/20 <0,0,0><3,0,0>/20<6,0,0>/20<7,0,0>/20<9/20,0,0><10/20,0,0><13/20,0,0><16/20,0,0><17/20,0,0><19/20,0,0><1,0,0> //12 <0,1/20,0><8/20,1/20,0><16/20,1/20,0><1,1/20,0> //16 <1/20,2/20,0><15/20,2/20,0><21/20,2/20,0> <0,3/20,0><6/20,3/20,0><10/20,3/20,0><14/20,3/20,0><16/20,3/20,0><1,3/20,0> <0,4/20,0><3/20,4/20,0><5/20,4/20,0><13/20,4/20,0><14/20,4/20,0><16/20,4/20,0><17/20,4/20,0><19/20,4/20,0><1,4/20,0> //34 <4/20,5/20,0><6/20,5/20,0><12/20,5/20,0><18/20,5/20,0> //38 <5/20,6/20,0><7/20,6/20,0><10/20,6/20,0><11/20,6/20,0><13/20,6/20,0><14/20,6/20,0><16/20,6/20,0><17/20,6/20,0> //46 <0,7/20,0><4/20,7/20,0><10/20,7/20,0><14/20,7/20,0><16/20,7/20,0><1,7/20,0>//52 <9/20,8/20,0><15/20,8/20,0> //54 <2/20,9/20,0><10/20,9/20,0><14/20,9/20,0> <0,.5,0><1/20,.5,0><3/20,.5,0><4/20,.5,0><7/20,.5,0><.5,.5,0><11/20,.5,0><13/20,.5,0><14/20,.5,0><17/20,.5,0><1,.5,0>//65 <0,11/20,0><4/20,11/20,0><12/20,11/20,0><1,11/20,0> <-1/20,12/20,0><5/20,12/20,0><19/20,12/20,0> <0,13/20,0><4/20,13/20,0><6/20,13/20,0><10/20,13/20,0><14/20,13/20,0><1,13/20,0> <0,14/20,0><1/20,14/20,0><3/20,14/20,0><4/20,14/20,0><6/20,14/20,0><7/20,14/20,0><15/20,14/20,0><17/20,14/20,0><1,14/20,0> <2/20,15/20,0><8/20,15/20,0><14/20,15/20,0><16/20,15/20,0> <3/20,16/20,0><4/20,16/20,0><6/20,16/20,0><7/20,16/20,0><9/20,16/20,0><10/20,16/20,0><13/20,16/20,0><15/20,16/20,0> <0,17/20,0><4/20,17/20,0><6/20,17/20,0><10/20,17/20,0><16/20,17/20,0><1,17/20,0> <5/20,18/20,0><11/20,18/20,0> <6/20,19/20,0><10/20,19/20,0><18/20,19/20,0> <0,1,0><3/20,1,0><6/20,1,0><7/20,1,0><9/20,1,0><10/20,1,0><13/20,1,0><16/20,1,0><17/20,1,0><19/20,1,0><1,1,0> <8/20,21/20,0> <18/20,2/20,0><12/20,8/20,0><2/20,12/20,0><8/20,18/20,0> <5/20,5/20,0><15/20,5/20,0><5/20,15/20,0><15/20,15/20,0> <12/20,2/20,0><18/20,8/20,0><8/20,12/20,0><2/20,18/20,0> // } #local R = array [26] {2,16,19,25,26,16,12,1,2,3,20,27,26,34,47,38,39,35,20,13,21,6,5,13,4,3} DRAW (R) #local R = array [40] {21,36,42,43,49,53,56,65,64,70,63,62,55,52,48,40,41,36,28,29,22,17,14,8,9,0,10,11,15,18,24,33,32,37,31,30,23,17,7,6} DRAW (R) #local R = array [14] {25,46,57,58,54,47,60,69,73,61,60,59,54,46} DRAW (R) #local R = array [6] {62,61,52,39,40,21} DRAW (R) #local R = array [8] {51,37,45,44,50,53,66,67} DRAW (R) #local R = array [6] {66,65,79,70,78,62} DRAW (R) #local R = array [15] {57,68,72,75,81,82,90,83,84,76,73,77,85,86,91} DRAW (R) #local R = array [29] {91,78,99,100,92,79,87,88,89,88,93,106,101,100,109,105,99,98,91,97,96,104,108,103,95,94,90,102,81} DRAW (R) #local R = array [6] {102,113,114,108,110,115} DRAW (R) #local R = array [4] {118,111,109,119} DRAW (R) #local R = array [7] {122,112,121,120,106,112,107} DRAW (R) #local R = array [3] {88,74,66} DRAW (R) cylinder {px(A[7]),px(A[8]),cyl_thickness} #local sph = array[100]{0,1,2,3,4,5,6,7,8,9,10,12,13,14,16,17,19,20,21,22,23,25,26,27,28,29,30,31,32,34,35,36,37,38,39,40, 41,42,43,44,45,46,47,48,49,50,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,68,69,70,72,73,75,76,77, 78,79,81,82,83,84,85,86,87,88,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,108,109,110,111 } PUT_SPHERES(sph) #if (RIGHT=true) #local R = array [9] {123,107,89,80,74,71,67,51,33} DRAW (R) #local sph = array[13]{11,15,18,24,33,51,67,71,74,80,89,107,123} PUT_SPHERES(sph) #end #if (TOP=true) #local R = array [8] {114,115,116,124,117,118,119,120} DRAW (R) cylinder {px(A[122]),px(A[123]),cyl_thickness} #local sph = array[11]{113,114,115,116,124,117,118,119,120,121,122} PUT_SPHERES(sph) #end // ------------------------------------- #local T1 = array [17]{0,10,11,15,18,24,33,32,37,31,30,23,17,14,8,9,0} #local T2 = array [17]{36,42,43,49,53,56,65,64,70,63,62,55,52,48,40,41,36} #local T3 = array [17]{54,59,60,69,73,76,84,83,90,82,81,75,72,68,57,58,54} #local T4 = array [17]{91,98,99,105,109,111,118,117,124,116,115,110,108,104,96,97,91} PATCH_array (125,T1,triangle_mesh,1) // estrellas 8 puntas PATCH_array (126,T2,triangle_mesh,1) // estrellas 8 puntas PATCH_array (127,T3,triangle_mesh,1) // estrellas 8 puntas PATCH_array (128,T4,triangle_mesh,1) // estrellas 8 puntas #local T5 = array [9]{27,20,35,39,38,47,34,26,27} #local T6 = array [9]{79,87,88,93,106,101,100,92,79} #local T7 = array [17]{73,77,85,86,91,97,96,104,108,103,95,94,90,83,84,76,73} #local T8 = array [17]{17,23,30,31,37,45,44,50,53,49,43,42,36,28,29,22,17} PATCH_array (129,T5,triangle_mesh,3) // estrellas 4 puntas pequeñas PATCH_array (132,T6,triangle_mesh,3) // estrellas 4 puntas pequeñas PATCH_array (131,T7,triangle_mesh,4) // estrellas 4 puntas grandes PATCH_array (130,T8,triangle_mesh,4) // estrellas 4 puntas grandes // puntas de estrella blancas PATCH_4 (1,2,12,16,triangle_mesh,2) PATCH_4 (25,26,19,16,triangle_mesh,2) PATCH_4 (3,4,20,13,triangle_mesh,2) PATCH_4 (5,6,13,21,triangle_mesh,2) PATCH_4 (7,8,17,14,triangle_mesh,2) PATCH_4 (40,21,41,36,triangle_mesh,2) PATCH_4 (39,40,52,48,triangle_mesh,2) PATCH_4 (61,62,52,55,triangle_mesh,2) PATCH_4 (51,37,33,32,triangle_mesh,2) PATCH_4 (57,46,58,54,triangle_mesh,2) PATCH_4 (47,60,54,59,triangle_mesh,2) PATCH_4 (70,78,63,62,triangle_mesh,2) PATCH_4 (65,79,64,70,triangle_mesh,2) PATCH_4 (66,65,53,56,triangle_mesh,2) PATCH_4 (61,60,73,69,triangle_mesh,2) PATCH_4 (78,99,91,98,triangle_mesh,2) PATCH_4 (100,99,109,105,triangle_mesh,2) PATCH_4 (102,81,90,82,triangle_mesh,2) PATCH_4 (114,108,115,110,triangle_mesh,2) PATCH_4 (119,118,109,111,triangle_mesh,2) PATCH_4 (106,120,112,121,triangle_mesh,2) PATCH_4 (107,123,112,122,triangle_mesh,2) PATCH_4 (66,67,74,71,triangle_mesh,2) PATCH_4 (88,89,74,80,triangle_mesh,2) // // ALREDEDOR DE LAS ESTRELLAS AZULES PATCH_6 (2,3,16,20,26,27,triangle_mesh,1) PATCH_6 (20,13,35,21,39,40,triangle_mesh,1) PATCH_6 (25,26,46,34,54,47,triangle_mesh,1) PATCH_6 (38,39,47,52,60,61,triangle_mesh,1) PATCH_6 (65,66,79,74,87,88,triangle_mesh,1) PATCH_6 (78,70,99,79,100,92,triangle_mesh,1) PATCH_6 (100,101,109,106,119,120,triangle_mesh,1) PATCH_6 (88,89,93,107,106,112,triangle_mesh,1) #local T9 = array [9]{6,7,17,22,29,28,36,21,6} #local T10 = array [9]{67,66,53,50,44,45,37,51,67} #local T11 = array [9]{62,78,91,86,85,77,73,61,62} #local T12 = array [9]{113,102,90,94,95,103,108,114,113} PATCH_array (133,T9,triangle_mesh,3) PATCH_array (134,T10,triangle_mesh,3) // estrellas 4 puntas pequeñas PATCH_array (135,T11,triangle_mesh,3) // estrellas 4 puntas grandes PATCH_array (136,T12,triangle_mesh,3) // estrellas 4 puntas grandes // ------------------------------------- #break // *************************************************************************************************************** #case (51) #local A = array [9]{ <0,0,0>,<1,0,0>,<1/2,1/4,0> <1/4,1/2,0><1/2,1/2,0><3/4,1/2,0> <1/2,3/4,0> <0,1,0><1,1,0> } #local R = array [15]{2,1,5,8,6,7,3,0,2, 4,6,4,3,4,5} DRAW (R) #local sph = array [7] {0,2,3,4,5,6,7} PUT_SPHERES(sph) #if (TOP=true) cylinder {px(A[7]),px(A[8]),cyl_thickness} #if (RIGHT=true) sphere {px(A[8]), sph_thickness} #end #end #if (RIGHT=true) cylinder {px(A[1]),px(A[8]),cyl_thickness} #end #if (LEFT=true) cylinder {px(A[0]),px(A[7]),cyl_thickness} #end #if (BOTTOM=true) cylinder {px(A[0]),px(A[1]),cyl_thickness} #end // ------------------------------------- PATCH_4(0,2,3,4,triangle_mesh,1) PATCH_4(4,5,6,8,triangle_mesh,1) PATCH_4(2,1,4,5,triangle_mesh,2) PATCH_4(3,7,4,6,triangle_mesh,2) PATCH_3(0,2,1,triangle_mesh,3) PATCH_3(6,7,8,triangle_mesh,3) PATCH_3(0,3,7,triangle_mesh,4) PATCH_3(1,5,8,triangle_mesh,4) // ------------------------------------- #break // *************************************************************************************************************** #case (52) #local A = array [14]{<0,0,0><1,0,0><3/10,1/10,0><6/10,2/10,0> <-1/10,3/10,0><9/10,3/10,0><5/10,5/10,0> <-2/10,6/10,0><8/10,6/10,0><1/10,7/10,0><4/10,8/10,0><0,1,0><3/10,11/10,0><2/10,4/10,0>} #local R = array [9] {0,2,3,6,10,9,7,4,0} DRAW (R) #local R = array [4] {3,5,8,6} DRAW (R) #local R = array [4] {9,11,12,10} DRAW (R) #local sph = array [8] {0,2,3,4,6,7,9,10} PUT_SPHERES(sph) #if (TOP=true) sphere {px(A[11]), sph_thickness} sphere {px(A[12]), sph_thickness} #end #if (RIGHT=true) sphere {px(A[5]), sph_thickness} sphere {px(A[8]), sph_thickness} #end // ------------------------------------- PATCH_4 (3,5,6,8,triangle_mesh,1) PATCH_4 (9,10,11,12,triangle_mesh,1) PATCH_6 (0,4,2,13,3,6,triangle_mesh,2) PATCH_6 (4,7,13,9,6,10,triangle_mesh,2) // ------------------------------------- #break // *************************************************************************************************************** #case (53) #local adjust_tiles = 1.5 ; #local A = array [36] { <2/8,-1/12,0><6/8,-1/12,0> <0,0,0><4/8,0,0><1,0,0> <2/8,1/12,0><6/8,1/12,0> <0,2/12,0><4/8,2/12,0><1,2/12,0> <2/8,3/12,0><6/8,3/12,0><10/8,3/12,0> <4/8,4/12,0><1,4/12,0> <2/8,5/12,0><6/8,5/12,0><10/8,5/12,0> <0,6/12,0><4/8,6/12,0><1,6/12,0> <2/8,7/12,0><6/8,7/12,0> <0,8/12,0><4/8,8/12,0><1,8/12,0> <2/8,9/12,0><6/8,9/12,0><10/8,9/12,0> <2/8,11/12,0><6/8,11/12,0><10/8,11/12,0> <4/8,10/12,0><1,10/12,0> <4/8,1,0><1,1,0> // } #local R = array [14]{10,8,3,0,2,7,10,15,18,23,26,24,19,15} DRAW (R) #local R = array [4]{8,11,16,19} DRAW (R) #local R = array [3]{3,1,4} DRAW (R) #local R = array [3]{24,27,30} DRAW (R) cylinder {px(A[11]),px(A[9]),cyl_thickness} cylinder {px(A[16]),px(A[20]),cyl_thickness} cylinder {px(A[25]),px(A[27]),cyl_thickness} cylinder {px(A[26]),px(A[29]),cyl_thickness} #local sph = array [16] {0,1,2,3,7,8,10,11,15,16,18,19,23,24,26,27} PUT_SPHERES(sph) #if (TOP=true) #local R = array [5]{29,34,30,35,31} DRAW (R) #local sph = array [4] {29,30,34,35} PUT_SPHERES(sph) #end #if (RIGHT=true) #local R = array [9]{4,9,12,17,20,25,28,31,35} DRAW (R) #local sph = array [8] {4,9,12,17,20,25,28,31} PUT_SPHERES(sph) #end // ------------------------------------- #local T1 = array [7]{0,3,8,10,7,2,0} PATCH_array (5,T1,triangle_mesh,1) #local T2 = array [7]{1,4,9,11,8,3,1} PATCH_array (6,T2,triangle_mesh,2) #local T3 = array [7]{8,11,16,19,15,10,8} PATCH_array (13,T3,triangle_mesh,3) #local T4 = array [7]{9,12,17,20,16,11,9} PATCH_array (14,T4,triangle_mesh,4) #local T5 = array [7]{15,19,24,26,23,18,15} PATCH_array (21,T5,triangle_mesh,2) #local T6 = array [7]{16,20,25,27,24,19,16} PATCH_array (22,T6,triangle_mesh,1) #local T7 = array [7]{24,27,30,34,29,26,24} PATCH_array (32,T7,triangle_mesh,4) #local T8 = array [7]{25,28,31,35,30,27,25} PATCH_array (33,T8,triangle_mesh,3) // ------------------------------------- #break // *************************************************************************************************************** #case (54) #local adjust_tiles = 1.5 ; #local A = array [28] { <0,0,0>,<2/6,0,0>, <-1/6,1/6,0>,<1/6,1/6,0>,<3/6,1/6,0>,<5/6,1/6,0>, <0,2/6,0>,<2/6,2/6,0>,<4/6,2/6,0>,<1,2/6,0>, <-1/6,3/6,0>,<1/6,3/6,0>,<3/6,3/6,0>,<5/6,3/6,0>, <0,4/6,0>,<2/6,4/6,0>,<4/6,4/6,0>,<1,4/6,0>, <-1/6,5/6,0>,<1/6,5/6,0>,<3/6,5/6,0>,<5/6,5/6,0>, <0,1,0>,<2/6,1,0>,<4/6,1,0>,<1,1,0>, <3/6,7/6,0>,<5/6,7/6,0> } #local R = array [14]{22,18,14,10,6,2,0,1,4,7,12,15,20,23} DRAW (R) cylinder {px(A[4]),px(A[5]),cyl_thickness} cylinder {px(A[6]),px(A[7]),cyl_thickness} cylinder {px(A[12]),px(A[13]),cyl_thickness} cylinder {px(A[14]),px(A[15]),cyl_thickness} cylinder {px(A[20]),px(A[21]),cyl_thickness} #local sph = array [12] {0,1,2,4,6,7,10,12,14,15,18,20} PUT_SPHERES(sph) #if (TOP=true) #local R = array [5]{22,23,26,27,25} DRAW (R) #local sph = array [4] {22,23,26,27} PUT_SPHERES(sph) #end #if (RIGHT=true) #local R = array [7]{5,9,13,17,21,25,27} DRAW (R) #local sph = array [6] {5,9,13,17,21,25} PUT_SPHERES(sph) #end // ------------------------------------- #local T1 = array [7]{0,1,4,7,6,2,0} PATCH_array (3,T1,triangle_mesh,1) #local T2 = array [7]{4,5,9,13,12,7,4} PATCH_array (8,T2,triangle_mesh,2) #local T3 = array [7]{6,7,12,15,14,10,6} PATCH_array (11,T3,triangle_mesh,3) #local T4 = array [7]{12,13,17,21,20,15,12} PATCH_array (16,T4,triangle_mesh,1) #local T5 = array [7]{14,15,20,23,22,18,14} PATCH_array (19,T5,triangle_mesh,2) #local T6 = array [7]{20,21,25,27,26,23,20} PATCH_array (24,T6,triangle_mesh,3) // ------------------------------------- #break // *************************************************************************************************************** #case (55) #local A= array [81] { <0,0,0> <1/8,0,0> <2/8,0,0> <3/8,0,0> <4/8,0,0> <5/8,0,0> <6/8,0,0> <7/8,0,0> <1,0,0> <0,1/8,0><1/8,1/8,0> <2/8,1/8,0> <3/8,1/8,0> <4/8,1/8,0> <5/8,1/8,0> <6/8,1/8,0> <7/8,1/8,0> <1,1/8,0> <0,2/8,0><1/8,2/8,0> <2/8,2/8,0> <3/8,2/8,0> <4/8,2/8,0> <5/8,2/8,0> <6/8,2/8,0> <7/8,2/8,0> <1,2/8,0> <0,3/8,0><1/8,3/8,0> <2/8,3/8,0> <3/8,3/8,0> <4/8,3/8,0> <5/8,3/8,0> <6/8,3/8,0> <7/8,3/8,0> <1,3/8,0> <0,4/8,0><1/8,4/8,0> <2/8,4/8,0> <3/8,4/8,0> <4/8,4/8,0> <5/8,4/8,0> <6/8,4/8,0> <7/8,4/8,0> <1,4/8,0> <0,5/8,0><1/8,5/8,0> <2/8,5/8,0> <3/8,5/8,0> <4/8,5/8,0> <5/8,5/8,0> <6/8,5/8,0> <7/8,5/8,0> <1,5/8,0> <0,6/8,0><1/8,6/8,0> <2/8,6/8,0> <3/8,6/8,0> <4/8,6/8,0> <5/8,6/8,0> <6/8,6/8,0> <7/8,6/8,0> <1,6/8,0> <0,7/8,0><1/8,7/8,0> <2/8,7/8,0> <3/8,7/8,0> <4/8,7/8,0> <5/8,7/8,0> <6/8,7/8,0> <7/8,7/8,0> <1,7/8,0> <0,1,0><1/8,1,0> <2/8,1,0> <3/8,1,0> <4/8,1,0> <5/8,1,0> <6/8,1,0> <7/8,1,0> <1,1,0> } // ------------------------------------- #local Grid_pgmnt = 2 ; #local Horz_pgmnt = 3 ; #local Vert_pgmnt = 3 ; #local Square_pgmnt = 1 ; PATCH_8 (1,2,10,11,19,20,28,29,triangle_mesh,Grid_pgmnt) // grid PATCH_8 (28,29,37,38,46,47,55,56,triangle_mesh,Grid_pgmnt) PATCH_8 (11,20,12,21,13,22,14,23,triangle_mesh,Grid_pgmnt) PATCH_8 (14,23,15,24,16,25,17,26,triangle_mesh,Grid_pgmnt) PATCH_8 (25,26,34,35,43,44,52,53,triangle_mesh,Grid_pgmnt) PATCH_6 (29,38,30,39,31,40,triangle_mesh,Grid_pgmnt) PATCH_8 (31,40,32,41,33,42,34,43,triangle_mesh,Grid_pgmnt) PATCH_8 (41,42,50,51,59,60,68,69,triangle_mesh,Grid_pgmnt) PATCH_8 (39,40,48,49,57,58,66,67,triangle_mesh,Grid_pgmnt) PATCH_6 (51,60,52,61,53,62,triangle_mesh,Grid_pgmnt) PATCH_4 (3,4,12,13,triangle_mesh,Grid_pgmnt) PATCH_4 (5,6,14,15,triangle_mesh,Grid_pgmnt) PATCH_4 (7,8,16,17,triangle_mesh,Grid_pgmnt) PATCH_4 (45,46,54,55,triangle_mesh,Grid_pgmnt) PATCH_4 (47,48,56,57,triangle_mesh,Grid_pgmnt) PATCH_4 (66,67,75,76,triangle_mesh,Grid_pgmnt) PATCH_4 (68,69,77,78,triangle_mesh,Grid_pgmnt) PATCH_6 (78,69,79,70,80,71,triangle_mesh,Grid_pgmnt) PATCH_8 (63,72,64,73,65,74,66,75,triangle_mesh,Grid_pgmnt) PATCH_8 (20,29,21,30,22,31,23,32,triangle_mesh,Horz_pgmnt) // horz pgmnt PATCH_6 (23,32,24,33,25,34,triangle_mesh,Horz_pgmnt) PATCH_8 (54,63,55,64,56,65,57,66,triangle_mesh,Horz_pgmnt) PATCH_6 (60,69,61,70,62,71,triangle_mesh,Horz_pgmnt) PATCH_8 (40,41,49,50,58,59,67,68,triangle_mesh,Vert_pgmnt) // vertical pgmnt PATCH_4 (67,68,76,77,triangle_mesh,Vert_pgmnt) PATCH_8 (0,1,9,10,18,19,27,28,triangle_mesh,Vert_pgmnt) PATCH_6 (27,28,36,37,45,46,triangle_mesh,Vert_pgmnt) PATCH_4 (4,5,13,14,triangle_mesh,Vert_pgmnt) PATCH_4 (2,3,11,12,triangle_mesh,Square_pgmnt) PATCH_4 (6,7,15,16,triangle_mesh,Square_pgmnt) PATCH_4 (38,39,47,48,triangle_mesh,Square_pgmnt) PATCH_4 (42,43,51,52,triangle_mesh,Square_pgmnt) // ------------------------------------- #break // *************************************************************************************************************** #case (56) #local adjust_tiles = 4 ; #local A = array [10]{ <0,0,0>,<1,0,0>, <0,1/4,0>,<1,1/4,0>, <1/2,1/2,0>,<1.5,1/2,0>, <1/2,3/4,0>,<1.5,3/4,0>, <0,1,0>,<1,1,0> } #local R = array [7] {3,1,0,2,3,4,2} DRAW (R) #local R = array [4] {8,6,4,5} DRAW (R) #local R = array [3] {9,6,7} DRAW (R) #local sph = array [5] {0,2,4,6,8} PUT_SPHERES(sph) #if (TOP=true) cylinder {px(A[8]),px(A[9]),cyl_thickness} #end #if (RIGHT=true) #local R = array [4] {3,5,7,9} DRAW (R) #local sph = array [4] {1,3,5,7} PUT_SPHERES(sph) #if (TOP=true) sphere {px(A[9]),sph_thickness} #end #end // ------------------------------------- PATCH_4 (0,1,2,3,triangle_mesh,1) PATCH_4 (4,5,6,7,triangle_mesh,1) PATCH_3 (2,3,4,triangle_mesh,2) PATCH_3 (6,7,9,triangle_mesh,2) PATCH_3 (3,4,5,triangle_mesh,3) PATCH_3 (6,8,9,triangle_mesh,3) // ------------------------------------- #break // *************************************************************************************************************** #case (57) #local A = array [94] { <0,0,0>,<1/12,0,0><3/12,0,0><5/12,0,0><6/12,0,0><7/12,0,0><9/12,0,0><11/12,0,0><1,0,0> <0,1/12,0><1/12,1/12,0><2/12,1/12,0><4/12,1/12,0><5/12,1/12,0><6/12,1/12,0><8/12,1/12,0><10/12,1/12,0><1,1/12,0> <1/12,2/12,0><5/12,2/12,0><7/12,2/12,0><9/12,2/12,0><11/12,2/12,0> <0,3/12,0><6/12,3/12,0><8/12,3/12,0><10/12,3/12,0><1,3/12,0> <1/12,4/12,0><5/12,4/12,0><7/12,4/12,0><9/12,4/12,0><11/12,4/12,0> <1/12,5/12,0><2/12,5/12,0><4/12,5/12,0><5/12,5/12,0><6/12,5/12,0><8/12,5/12,0><10/12,5/12,0><1,5/12,0> <0,6/12,0><1/12,6/12,0><3/12,6/12,0><5/12,6/12,0><6/12,6/12,0><7/12,6/12,0><9/12,6/12,0><11/12,6/12,0><1,6/12,0> <0,7/12,0><2/12,7/12,0><4/12,7/12,0><6/12,7/12,0><7/12,7/12,0><8/12,7/12,0><10/12,7/12,0><11/12,7/12,0><1,7/12,0> <1/12,8/12,0><3/12,8/12,0><5/12,8/12,0><7/12,8/12,0><11/12,8/12,0> <0,9/12,0><2/12,9/12,0><4/12,9/12,0><6/12,9/12,0><1,9/12,0> <1/12,10/12,0><3/12,10/12,0><5/12,10/12,0><7/12,10/12,0><11/12,10/12,0> <0,11/12,0><2/12,11/12,0><4/12,11/12,0><6/12,11/12,0><7/12,11/12,0><8/12,11/12,0><10/12,11/12,0><11/12,11/12,0><1,11/12,0> <0,1,0><1/12,1,0><3/12,1,0><5/12,1,0><6/12,1,0><7/12,1,0><9/12,1,0><11/12,1,0><1,1,0> <3/12,3/12,0>, <9/12,9/12,0> } #local R = array [23]{20,14,4,5,15,20,24,29,36,35,43,34,33,28,23,18,10,11,2,12,13,19,24} DRAW (R) #local R = array [6]{15,21,26,31,25,21} DRAW (R) #local R = array [7]{6,16,7,8,17,22,16} DRAW (R) #local R = array [7]{31,39,48,49,40,32,39} DRAW (R) #local R = array [7]{25,30,38,46,45,37,30} DRAW (R) cylinder {px(A[26]),px(A[22]),cyl_thickness} cylinder {px(A[27]),px(A[32]),cyl_thickness} #local R = array [18]{38,47,56,57,63,68,73,81,80,89,79,78,72,67,62,54,55,47} DRAW (R) #local R = array [7]{59,50,41,42,51,59,64} DRAW (R) #local R = array [7]{43,52,61,53,45,44,52} DRAW (R) #local R = array [7]{67,71,76,86,87,77,71} DRAW (R) #local R = array [7]{85,75,69,74,83,84,75} DRAW (R) #local R = array [6]{51,60,66,70,65,60} DRAW (R) cylinder {px(A[61]),px(A[66]),cyl_thickness} cylinder {px(A[70]),px(A[76]),cyl_thickness} cylinder {px(A[65]),px(A[69]),cyl_thickness} #local sph = array [75] {0,1,2,3,4,5,6,7,9,10,11,12,13,14,15,16,18,19,20,21,22,23, 24,25,26,28,29,30,31,32,33,34,35,36,37,38,39,41,42,43,44, 45,46,47,48,50,51,52,53,54,55,56,57,59,60,61,62,63,64,65, 66,67,69,70,71,72,73,74,75,76,77,78,79,80,81 } PUT_SPHERES(sph) #if (RIGHT=true) #local R = array [3]{17,27,40} DRAW (R) #local R = array [5]{49,58,68,82,91} DRAW (R) #local sph = array [9] {8,17,27,40,49,58,68,82,91} PUT_SPHERES(sph) #end #if (TOP=true) #local R = array [3]{84,85,86} DRAW (R) #local R = array [5]{87,88,89,90,91} DRAW (R) #local sph = array [8] {83,84,85,86,87,88,89,90} PUT_SPHERES(sph) #end #if (LEFT=true) #local R = array [4]{0,9,23,41} DRAW (R) #local R = array [3]{50,64,74} DRAW (R) #end #if (BOTTOM=true) #local R = array [5]{0,1,2,3,4} DRAW (R) #local R = array [3]{5,6,7} DRAW (R) #end // ------------------------------------- #local Bckground_pgmtn = 1 ; #local Band_1 = 2 ; #local T = array [17]{2,12,13,19,24,29,36,35,43,34,33,28,23,18,10,11,2} PATCH_array (92,T,triangle_mesh,Bckground_pgmtn) #local T = array [17]{47,56,57,63,68,73,81,80,89,79,78,72,67,62,54,55,47} PATCH_array (93,T,triangle_mesh,Bckground_pgmtn) #local Z = array [5]{4,5,14,15,20} PATCH_array2(Z,triangle_mesh,Bckground_pgmtn) #local Z = array [5]{8,7,17,16,22} PATCH_array2(Z,triangle_mesh,Bckground_pgmtn) #local Z = array [5]{49,40,48,32,39} PATCH_array2(Z,triangle_mesh,Bckground_pgmtn) #local Z = array [5]{45,46,37,38,30} PATCH_array2(Z,triangle_mesh,Bckground_pgmtn) PATCH_4 (21,26,25,31,triangle_mesh,Bckground_pgmtn) #local Z = array [5]{45,44,53,52,61} PATCH_array2(Z,triangle_mesh,Bckground_pgmtn) #local Z = array [5]{41,42,50,51,59} PATCH_array2(Z,triangle_mesh,Bckground_pgmtn) #local Z = array [5]{87,77,86,71,76} PATCH_array2(Z,triangle_mesh,Bckground_pgmtn) #local Z = array [5]{83,84,74,75,69} PATCH_array2(Z,triangle_mesh,Bckground_pgmtn) PATCH_4 (60,66,65,70,triangle_mesh,Bckground_pgmtn) #local Z = array [14]{15,21,20,25,24,30,29,37,36,45,35,44,43,52} PATCH_array2(Z,triangle_mesh,Band_1) #local Z = array [14]{38,47,46,55,45,54,53,62,61,67,66,71,70,76} PATCH_array2(Z,triangle_mesh,Band_1) #local Z = array [7]{51,60,59,65,64,69,74} PATCH_array2(Z,triangle_mesh,Band_1) #local Z = array [7]{17,27,22,32,26,39,31} PATCH_array2(Z,triangle_mesh,Band_1) PATCH_3 (75,84,85,triangle_mesh,Band_1) PATCH_3 (6,7,16,triangle_mesh,Band_1) // #local Z = array []{} PATCH_array2(Z,triangle_mesh,Band_1) PATCH_4 (68,73,82,81,triangle_mesh,2) PATCH_4 (1,2,10,11,triangle_mesh,2) PATCH_6 (0,1,9,10,23,18,triangle_mesh,2) PATCH_6 (82,91,81,90,80,89,triangle_mesh,2) PATCH_3 (6,7,16,triangle_mesh,2) PATCH_8 (30,25,38,31,47,39,56,48,triangle_mesh,3) PATCH_6 (56,48,57,49,63,58,triangle_mesh,3) PATCH_3 (58,63,68,triangle_mesh,3) PATCH_3 (50,59,64,triangle_mesh,3) PATCH_8 (66,61,60,52,51,43,42,34,triangle_mesh,3) PATCH_6 (65,69,70,75,76,85,triangle_mesh,3) PATCH_8 (71,67,77,72,87,78,88,79,triangle_mesh,3) PATCH_3 (76,85,86,triangle_mesh,3) PATCH_3 (79,88,89,triangle_mesh,3) PATCH_6 (23,28,41,33,42,34,triangle_mesh,3) PATCH_6 (2,12,3,13,4,14,triangle_mesh,3) PATCH_3 (27,32,40,triangle_mesh,3) PATCH_6 (5,6,15,16,21,22,triangle_mesh,3) PATCH_3 (21,22,26,triangle_mesh,3) PATCH_4 (13,14,19,20,triangle_mesh,3) PATCH_3 (19,20,24,triangle_mesh,3) // ------------------------------------- #break // *************************************************************************************************************** #case (58) #local A = array [117] { <0,0,0>/12,<1,0,0>/12,<3,0,0>/12,<4,0,0>/12,<6,0,0>/12,<7,0,0>/12,<9,0,0>/12,<10,0,0>/12,<12,0,0>/12 <0,1,0>/12,<1,1,0>/12,<3,1,0>/12,<4,1,0>/12,<6,1,0>/12,<8,1,0>/12,<10,1,0>/12,<12,1,0>/12 <7,2,0>/12,<9,2,0>/12, <0,3,0>/12,<1,3,0>/12,<3,3,0>/12,<4,3,0>/12,<6,3,0>/12,<8,3,0>/12,<10,3,0>/12,<12,3,0>/12, <0,4,0>/12,<1,4,0>/12,<3,4,0>/12,<4,4,0>/12,<7,4,0>/12,<9,4,0>/12,<12,4,0>/12 <1,6,0>/12,<3,6,0>/12, <0,7,0>/12,<2,7,0>/12,<4,7,0>/12, <1,8,0>/12,<3,8,0>/12, <0,9,0>/12,<2,9,0>/12,<4,9,0>/12, <1,10,0>/12,<3,10,0>/12, <0,12,0>/12,<1,12,0>/12,<3,12,0>/12,<4,12,0>/12, <8,8,0>/12, <13,0,0>/12,<15,0,0>/12,<16,0,0>/12, <13,1,0>/12,<15,1,0>/12,<16,1,0>/12, <13,3,0>/12,<15,3,0>/12,<16,3,0>/12, <13,4,0>/12,<15,4,0>/12,<16,4,0>/12, <13,6,0>/12,<15,6,0>/12, <12,7,0>/12,<14,7,0>/12,<16,7,0>/12, <13,8,0>/12,<15,8,0>/12, <12,9,0>/12,<14,9,0>/12,<16,9,0>/12, <13,10,0>/12,<15,10,0>/12, <12,12,0>/12,<13,12,0>/12,<15,12,0>/12,<16,12,0>/12, <6,12,0>/12,<7,12,0>/12,<9,12,0>/12,<10,12,0>/12 <0,13,0>/12,<1,13,0>/12,<3,13,0>/12,<4,13,0>/12,<6,13,0>/12,<8,13,0>/12,<10,13,0>/12,<12,13,0>/12,<13,13,0>/12,<15,13,0>/12,<16,13,0>/12, <7,14,0>/12,<9,14,0>/12, <0,15,0>/12,<1,15,0>/12,<3,15,0>/12,<4,15,0>/12,<6,15,0>/12,<8,15,0>/12,<10,15,0>/12,<12,15,0>/12, <15,15,0>/12,<16,15,0>/12, <0,16,0>/12,<1,16,0>/12,<3,16,0>/12,<4,16,0>/12,<7,16,0>/12,<9,16,0>/12,<12,16,0>/12 ,<15,16,0>/12,<16,16,0>/12, <13,15,0>/12,<13,16,0>/12 } #local R = array [12]{0,9,19,20,10,1,2,3,5,14,6,8} DRAW(R) #local R = array [4]{10,11,21,20} DRAW(R) #local R = array [7]{11,12,13,17,23,22,12} DRAW(R) #local R = array [5]{16,15,18,25,26} DRAW(R) cylinder {px(A[14]),px(A[17]),cyl_thickness} cylinder {px(A[18]),px(A[24]),cyl_thickness} cylinder {px(A[27]),px(A[28]),cyl_thickness} #local R = array [7]{29,28,34,37,35,29,21} DRAW(R) #local R = array [5]{22,30,38,40,37} DRAW(R) #local R = array [5]{27,36,39,42,45} DRAW(R) #local R = array [5]{30,31,24,32,33} DRAW(R) #local R = array [3]{39,41,46} DRAW(R) #local R = array [3]{42,44,47} DRAW(R) #local R = array [5]{40,43,49,48,45} DRAW(R) #if (RIGHT=true) #local R = array [27]{8,16,26,57,54,51,52,53,56,59,62,67,69,72,78,77,74,71,68,65,33, 60,61,64,66,63,60} DRAW(R) #local R = array [4]{54,55,58,57} DRAW(R) #local R = array [3]{68,70,75} DRAW(R) #local R = array [3]{76,73,71} DRAW(R) cylinder {px(A[58]),px(A[61]),cyl_thickness} cylinder {px(A[55]),px(A[56]),cyl_thickness} cylinder {px(A[66]),px(A[69]),cyl_thickness} #local Z = array [5]{60,61,63,64,66} PATCH_array2(Z,triangle_mesh,1) #local Z = array [5]{76,77,73,74,71} PATCH_array2(Z,triangle_mesh,1) PATCH_4 (54,55,57,58,triangle_mesh,1) PATCH_6 (8,51,16,54,26,57,triangle_mesh,2) #local Z = array [12]{60,33,63,65,66,68,69,71,72,74,78,77} PATCH_array2(Z,triangle_mesh,2) #local Z = array [10]{55,56,58,59,61,62,64,67,68,69} PATCH_array2(Z,triangle_mesh,2) PATCH_6 (68,71,70,73,75,76,triangle_mesh,2) PATCH_6 (26,33,57,60,58,61,triangle_mesh,3) PATCH_6 (51,54,52,55,53,56,triangle_mesh,3) #end #if (TOP=true) #local R = array [6]{46,83,96,97,84,47} DRAW(R) #local R = array [4]{84,85,98,97} DRAW(R) #local R = array [7]{85,86,87,94,100,99,86} DRAW(R) cylinder {px(A[47]),px(A[48]),cyl_thickness} #local R = array [7]{49,79,80,88,81,82,75} DRAW(R) #local R = array [4]{106,107,108,98} DRAW(R) #local R = array [7]{99,109,110,101,95,89,90} DRAW(R) cylinder {px(A[94]),px(A[88]),cyl_thickness} #local R = array [3]{95,102,103} DRAW(R) #local R = array [3]{101,111,112} DRAW(R) PATCH_6 (46,47,83,84,96,97,triangle_mesh,2) PATCH_6 (85,86,98,99,108,109,triangle_mesh,2) #local Z = array [11]{47,84,48,85,49,86,79,87,80,94,88} PATCH_array2(Z,triangle_mesh,3) PATCH_6 (96,106,97,107,98,108,triangle_mesh,3) #local Z = array [13]{99,109,100,110,94,101,88,95,81,89,82,90,75} PATCH_array2(Z,triangle_mesh,3) PATCH_6 (101,95,111,102,112,103,triangle_mesh,3) PATCH_4 (84,85,97,98,triangle_mesh,1) #local Z = array [5]{99,86,100,87,94} PATCH_array2(Z,triangle_mesh,1) #local Z = array [5]{90,103,89,102,95} PATCH_array2(Z,triangle_mesh,1) #if (RIGHT=true) #local R = array [6]{75,90,103,115,91,76} DRAW(R) #local R = array [5]{112,116,113,104,115} DRAW(R) #local R = array [5]{114,105,93,92,104} DRAW(R) cylinder {px(A[76]),px(A[77]),cyl_thickness} cylinder {px(A[91]),px(A[92]),cyl_thickness} PATCH_4 (91,92,115,104,triangle_mesh,1) PATCH_6 (76,91,77,92,78,93,triangle_mesh,3) PATCH_6 (103,112,115,116,104,113,triangle_mesh,3) PATCH_6 (75,76,90,91,103,115,triangle_mesh,2) PATCH_6 (92,93,104,105,113,114,triangle_mesh,2) #end #end // ------------------------------------- #local T = array [17]{49,43,40,38,30,31,24,32,33,65,68,70,75,81,88,80,49} PATCH_array (50,T,triangle_mesh,1) PATCH_4 (10,11,20,21,triangle_mesh,1) PATCH_4 (28,29,34,35,triangle_mesh,1) PATCH_3 (34,35,37,triangle_mesh,1) PATCH_4 (47,48,44,45,triangle_mesh,1) PATCH_3 (44,45,42,triangle_mesh,1) PATCH_4 (22,12,23,13,triangle_mesh,1) PATCH_3 (13,23,17,triangle_mesh,1) PATCH_4 (16,26,15,25,triangle_mesh,1) PATCH_3 (15,25,18,triangle_mesh,1) PATCH_6 (0,1,9,10,19,20,triangle_mesh,2) #local Z = array [12]{27,28,36,34,39,37,42,40,45,43,48,49} PATCH_array2(Z,triangle_mesh,2) #local Z = array [10]{11,12,21,22,29,30,35,38,37,40} PATCH_array2(Z,triangle_mesh,2) PATCH_6 (46,47,41,44,39,42,triangle_mesh,2) #local Z = array [10]{1,10,2,11,3,12,5,13,14,17} PATCH_array2(Z,triangle_mesh,3) PATCH_6 (18,24,25,32,26,33,triangle_mesh,3) PATCH_6 (19,27,20,28,21,29,triangle_mesh,3) #local Z = array [12]{22,30,23,31,17,24,14,18,6,15,8,16} PATCH_array2(Z,triangle_mesh,3) // ------------------------------------- #break // *************************************************************************************************************** #case (59) #local A = array [13] {<0,0,0>,<.5,0,0><1,0,0>,<.5,.25,0>,<0,.5,0>,<.5,.5,0>,<1,.5,0>,<0,.75,0>,<1,.75,0> <.5,1,0>,<0,1,0>,<1,1,0>,<.5,1.25,0> } #local R = array [13]{10,7,5,8,9,7,3,8,12,7,4,3,5} DRAW (R) #local R = array [2]{0,3} DRAW (R) #local R = array [3]{2,3,6} DRAW (R) cylinder {px(A[9]),px(A[12]),cyl_thickness} #local sph = array[6]{0,3,4,5,7,9}; PUT_SPHERES(sph) #if (TOP=true) #local R = array [3]{10,12,11} DRAW (R) #local sph = array[2]{10,12}; PUT_SPHERES(sph) #if (RIGHT=true) sphere {px(A[11]),sph_thickness} #end #end #if (RIGHT=true) #local R = array [4]{2,6,8,11} DRAW (R) #local sph = array[3]{2,6,8}; PUT_SPHERES(sph) #end #if (LEFT=true) cylinder {px(A[0]),px(A[4]),cyl_thickness} #end // ------------------------------------- PATCH_4 (8,9,5,7,triangle_mesh,3) PATCH_3 (0,3,4,triangle_mesh,3) PATCH_3 (2,3,6,triangle_mesh,3) PATCH_3 (3,4,7,triangle_mesh,1) PATCH_3 (3,5,7,triangle_mesh,2) PATCH_3 (3,6,8,triangle_mesh,2) PATCH_3 (3,5,8,triangle_mesh,1) PATCH_3 (7,9,12,triangle_mesh,1) PATCH_3 (7,10,12,triangle_mesh,2) PATCH_3 (8,9,12,triangle_mesh,2) PATCH_3 (8,11,12,triangle_mesh,1) // ------------------------------------- #break // *************************************************************************************************************** #case (60) #local A = array [24]{ <0,0,0>,<0.25,0,0><0.75,0,0>,<1,0,0> <0.25,.125,0><0.75,.125,0>, <0,.25,0>,<0.125,.25,0>, <0.25,.25,0>,<0.75,.25,0>,<0.875,.25,0><1,.25,0> <0,.75,0><0.125,.75,0>, <0.25,.75,0>,<0.75,.75,0>,<0.875,.75,0><1,.75,0> <0.25,.875,0><0.75,.875,0> <0,1,0>,<0.25,1,0><0.75,1,0>,<1,1,0> } #local R = array [14]{0,8,4,5,9,10,16,15,19,18,14,13,7,8} DRAW (R) cylinder {px(A[3]),px(A[9]),cyl_thickness} cylinder {px(A[15]),px(A[23]),cyl_thickness} cylinder {px(A[14]),px(A[20]),cyl_thickness} #local sph = array [13] {0,4,5,7,8,9,10,13,14,15,16,18,19} PUT_SPHERES (sph) #if (RIGHT=true) #local R = array [4]{3,11,17,23} DRAW (R) sphere {px(A[3]),sph_thickness} #end #if (LEFT=true) #local R = array [4]{0,6,12,20} DRAW (R) #end #if (TOP=true) #local R = array [4]{20,21,22,23} DRAW (R) sphere {px(A[20]),sph_thickness} #if (RIGHT=true) sphere {px(A[23]),sph_thickness} #end #end #if (BOTTOM=true) #local R = array [4]{0,1,2,3} DRAW (R) #end // ------------------------------------- PATCH_4 (8,0,1,4,triangle_mesh,1) PATCH_4 (9,3,2,5,triangle_mesh,1) PATCH_4 (1,2,4,5,triangle_mesh,1) PATCH_4 (14,20,21,18,triangle_mesh,1) PATCH_4 (23,22,15,19,triangle_mesh,1) PATCH_4 (21,22,18,19,triangle_mesh,1) PATCH_4 (10,11,16,17,triangle_mesh,2) PATCH_4 (6,7,12,13,triangle_mesh,2) PATCH_4 (8,0,6,7,triangle_mesh,2) PATCH_4 (9,3,11,10,triangle_mesh,2) PATCH_4 (14,20,12,13,triangle_mesh,2) PATCH_4 (15,23,17,16,triangle_mesh,2) // ------------------------------------- #break // *************************************************************************************************************** #case (61) #local A = array [21] { <0,0,0>, <0.5,1.5,0>/10, <5,0,0>/10, <9.5,-1.5,0>/10, <10,0,0>/10 <8.5,0.5,0>/10, <10,5,0>/10, <11.5,9.5,0>/10, <10,10,0>/10 <9.5,8.5,0>/10, <5,10,0>/10 <.5,11.5,0>/10. <0,10,0>/10, <1.5,9.5,0>/10, <0,5,0>/10, <-1.5,0.5,0>/10 <5,5,0>/10, <3.5,4.5,0>/10,<5.5,3.5,0>/10,<6.5,5.5,0>/10,<4.5,6.5,0>/10 } #local R = array [17]{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0} DRAW (R) #local R = array [5]{14,20,16,18,6} DRAW (R) #local R = array [5]{2,17,16,19,10} DRAW (R) #local sph = array [12] {16,17,18,19,20,0,1,2,3,5,6,7 } PUT_SPHERES (sph) #if (LEFT=true) #local sph = array [5] {11,12,13,14,15} PUT_SPHERES (sph) #end #if (TOP=true) #local sph = array [4] {8,9,10,11} PUT_SPHERES (sph) #end // ------------------------------------- PATCH_4 (0,15,1,14,triangle_mesh,1) PATCH_4 (16,20,17,14,triangle_mesh,1) PATCH_4 (1,2,14,17,triangle_mesh,1) PATCH_4 (8,7,9,6,triangle_mesh,1) PATCH_4 (16,18,19,6,triangle_mesh,1) PATCH_4 (9,10,6,19,triangle_mesh,1) PATCH_4 (16,17,18,2,triangle_mesh,2) PATCH_4 (4,3,5,2,triangle_mesh,2) PATCH_4 (2,5,18,6,triangle_mesh,2) PATCH_4 (16,19,20,10,triangle_mesh,2) PATCH_4 (12,11,13,10,triangle_mesh,2) PATCH_4 (14,20,13,10,triangle_mesh,2) // ------------------------------------- #break // *************************************************************************************************************** #case (62) #local A = array [25]{ <0,0,0>,<3,0,0>/10,<7,0,0>/10,<10,0,0>/10, <4,2,0>/10,<6,2,0>/10,<0,3,0>/10,<10,3,0>/10, <2,4,0>/10,<8,4,0>/10,<2,6,0>/10,<8,6,0>/10, <0,7,0>/10,<10,7,0>/10,<4,8,0>/10,<6,8,0>/10, <0,10,0>/10,<3,10,0>/10,<7,10,0>/10,<10,10,0>/10, <5,5,0>/10,<2,2,0>/10,<8,2,0>/10,<2,8,0>/10,<8,8,0>/10 } #local R = array [9] {4,5,9,11,15,14,10,8,4} DRAW (R) #local R = array [5] {8,6,0,1,4} DRAW (R) #local R = array [3] {5,2,3} DRAW (R) cylinder {px(A[11]),px(A[13]),cyl_thickness} cylinder {px(A[15]),px(A[18]),cyl_thickness} #local R = array [3] {10,12,16} DRAW (R) cylinder {px(A[14]),px(A[17]),cyl_thickness} #local sph = array [13] {0,1,2,4,5,6,8,9,10,11,12,14,15} PUT_SPHERES (sph) #if (RIGHT=true) #local R = array [4] {3,7,13,19} DRAW (R) #local sph = array [3] {3,7,13} PUT_SPHERES (sph) #end #if (TOP=true) #local R = array [4] {16,17,18,19} DRAW (R) #local sph = array [3] {16,17,18} PUT_SPHERES (sph) #if (RIGHT=true) sphere {px(A[19]),sph_thickness} #end #end #if (LEFT=true) cylinder {px(A[6]),px(A[12]),cyl_thickness} #end #if (BOTTOM=true) cylinder {px(A[1]),px(A[2]),cyl_thickness} #end // ------------------------------------- #local T = array [9]{4,5,9,11,15,14,10,8,4} PATCH_array (20,T,triangle_mesh,1) #local T = array [6]{0,1,4,8,6,0} PATCH_array (21,T,triangle_mesh,2) #local T = array [6]{5,2,3,7,9,5} PATCH_array (22,T,triangle_mesh,3) #local T = array [6]{11,13,19,18,15,11} PATCH_array (24,T,triangle_mesh,2) #local T = array [6]{10,14,17,16,12,10} PATCH_array (23,T,triangle_mesh,3) PATCH_4 (6,8,12,10,triangle_mesh,4) PATCH_4 (7,9,13,11,triangle_mesh,4) PATCH_4 (2,5,1,4,triangle_mesh,4) PATCH_4 (17,14,18,15,triangle_mesh,4) // ------------------------------------- #break // *************************************************************************************************************** #case (63) #local A = array [114] { <2/30,0,0>,<4/30,0,0>,<12/30,0,0>,<14/30,0,0>,<16/30,0,0>,<18/30,0,0>,<26/30,0,0>,<28/30,0,0>, // 8 <1/30,2/20,0><3/30,2/20,0><5/30,2/20,0><9/30,2/20,0><13/30,2/20,0><15/30,2/20,0><17/30,2/20,0><21/30,2/20,0><25/30,2/20,0><27/30,2/20,0>,<29/30,2/20,0> //11 <0/30,4/20,0>,<2/30,4/20,0>,<4/30,4/20,0>,<6/30,4/20,0>,<8/30,4/20,0>,<14/30,4/20,0>,<16/30,4/20,0>,<22/30,4/20,0>,<24/30,4/20,0>,<26/30,4/20,0>,<28/30,4/20,0>,<30/30,4/20,0>, // 13 <1/30,6/20,0>,<7/30,6/20,0>,<9/30,6/20,0>,<11/30,6/20,0>,<13/30,6/20,0>,<15/30,6/20,0>,<17/30,6/20,0>,<19/30,6/20,0>,<21/30,6/20,0>,<23/30,6/20,0>,<29/30,6/20,0>,// 11 <0/30,8/20,0>,<6/30,8/20,0>,<10/30,8/20,0>,<12/30,8/20,0>,<14/30,8/20,0>,<16/30,8/20,0>,<18/30,8/20,0>,<20/30,8/20,0>,<24/30,8/20,0>,<28/30,8/20,0>,<30/30,8/20,0> <1/30,10/20,0>,<3/30,10/20,0>,<11/30,10/20,0>,<13/30,10/20,0>,<17/30,10/20,0>,<19/30,10/20,0>,<27/30,10/20,0>,<29/30,10/20,0>, <0/30,12/20,0>,<6/30,12/20,0>,<10/30,12/20,0>,<12/30,12/20,0>,<14/30,12/20,0>,<16/30,12/20,0>,<18/30,12/20,0>,<20/30,12/20,0>,<24/30,12/20,0>,<28/30,12/20,0>,<30/30,12/20,0> <1/30,14/20,0>,<7/30,14/20,0>,<9/30,14/20,0>,<11/30,14/20,0>,<13/30,14/20,0>,<15/30,14/20,0>,<17/30,14/20,0>,<19/30,14/20,0>,<21/30,14/20,0>,<23/30,14/20,0>,<29/30,14/20,0>,// 11 <0/30,16/20,0>,<2/30,16/20,0>,<4/30,16/20,0>,<6/30,16/20,0>,<8/30,16/20,0>,<14/30,16/20,0>,<16/30,16/20,0>,<22/30,16/20,0>,<24/30,16/20,0>,<26/30,16/20,0>,<28/30,16/20,0>,<30/30,16/20,0>, // 13 <1/30,18/20,0><3/30,18/20,0><5/30,18/20,0><9/30,18/20,0><13/30,18/20,0><15/30,18/20,0><17/30,18/20,0><21/30,18/20,0><25/30,18/20,0><27/30,18/20,0>,<29/30,18/20,0> //11 <2/30,1,0>,<4/30,1,0>,<12/30,1,0>,<14/30,1,0>,<16/30,1,0>,<18/30,1,0>,<26/30,1,0>,<28/30,1,0> } #local R = array [5] {1,10,22,32,33} DRAW (R) // hex inf izq interior #local R = array [5] {34,35,24,13,4} DRAW (R) // hex inf izq interior #local R = array [5] {0,9,21,43,44} DRAW (R) // hex inf izq exterior #local R = array [6] {45,46,36,25,14,5} DRAW (R) // hex inf izq exterior cylinder {px(A[3]),px(A[13]),cyl_thickness} // hex inf derecho interior #local R = array [6] {25,37,38,39,40,27} DRAW (R) // hex inf derecho interior cylinder {px(A[16]),px(A[6]),cyl_thickness} // hex inf derecho interior #local R = array [3] {2,12,24} DRAW (R) // hex inf der ext #local R = array [6] {36,47,48,49,50,28} DRAW (R) // hex inf der ext cylinder {px(A[17]),px(A[7]),cyl_thickness} // hex inf derecho exterior #local R = array [4] {42,31,20,21} DRAW (R) // hex izquierdo interior #local R = array [6] {22,23,33,44,55,63} DRAW (R) // hex izquierdo interior #local R = array [6] {74,87,86,85,84,72} DRAW (R) // hex izquierdo interior #local R = array [3] {19,8,9} DRAW (R) // hex izquierdo exterior #local R = array [6] {10,11,34,45,56,64} DRAW (R) // hex izquierdo exterior #local R = array [6] {75,98,97,96,95,83} DRAW (R) // hex izquierdo exterior #local R = array [6] {41,29,28,27,26,39} DRAW (R) // hex derecho interior #local R = array [6] {49,58,68,80,90,91} DRAW (R) // hex derecho interior #local R = array [4] {92,93,82,71} DRAW (R) // hex derecho interior #local R = array [6] {30,18,17,16,15,38} DRAW (R) // hex derecho exterior #local R = array [6] {48,57,67,79,102,103} DRAW (R) // hex derecho exterior #local R = array [3] {104,105,94} DRAW (R) // hex derecho exterior cylinder {px(A[97]),px(A[107]),cyl_thickness} // hex sup izq interior #local R = array [6] {86,73,74,75,76,88} DRAW (R) // hex sup izq interior cylinder {px(A[100]),px(A[110]),cyl_thickness} // hex sup izq interior cylinder {px(A[106]),px(A[96]),cyl_thickness} // hex sup izq exterior #local R = array [6] {85,62,63,64,65,77} DRAW (R) // hex sup izq interior #local R = array [3] {89,101,111} DRAW (R) // hex sup izq interior #local R = array [5] {109,100,89,78,79} DRAW (R) // hex sup derecho interior #local R = array [5] {80,81,91,103,112} DRAW (R) // hex sup derecho interior #local R = array [6] {108,99,88,77,66,67} DRAW (R) // hex sup derecho exterior #local R = array [5] {68,69,92,104,113} DRAW (R) // hex sup derecho exterior #local R = array [3] {61,53,42} DRAW (R)// borde hex izquierdo interior #local R = array [4] {83,72,54,31} DRAW (R)// borde hex izquierdo exterior #local R = array [3] {71,60,52} DRAW (R)// borde hex derecho interior #local R = array [6] {82,70,59,51,41,30} DRAW (R)// borde hex derecho exterior #local sph = array [102] {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25 26,27,28,29,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51 53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,72,73,74,75,76,77,78,79,80,81 82,83,84,85,86,87,88,89,90,91,92,93,95,96,97,98,99,100,101,102,103,104,105 } PUT_SPHERES (sph) // ------------------------------------- #local LH1 = array [10]{0,1,9,10,21,22,43,32,44,33} // hexagono inferior izquierdo PATCH_array2(LH1,triangle_mesh,1) #local LH2 = array [11]{5,4,14,13,25,24,36,35,46,34,45} PATCH_array2(LH2,triangle_mesh,1) #local LH1 = array [12]{63,64,55,56,44,45,33,34,23,11,22,10} // hexagono izquierda PATCH_array2(LH1,triangle_mesh,2) #local LH2 = array [12]{72,83,84,95,85,96,86,97,87,98,74,75} PATCH_array2(LH2,triangle_mesh,2) #local LH3 = array [7]{21,9,20,8,31,19,42} PATCH_array2(LH3,triangle_mesh,2) #local LH4 = array [7]{82,71,70,60,59,52,41} // hexagono izquierdo -borde derecho- PATCH_array2(LH4,triangle_mesh,2) PATCH_3 (30,41,52,triangle_mesh,2) #local LSi1 = array [12]{86,85,73,62,74,63,75,64,76,65,88,77} // hexagono superior izquierda PATCH_array2(LSi1,triangle_mesh,1) #local LSi2 = array [5]{111,110,101,100,89} PATCH_array2(LSi2,triangle_mesh,1) PATCH_4 (106,107,96,97,triangle_mesh,1) #local LSD1 = array [11]{108,109,99,100,88,89,77,78,66,79,67} // hexagono superior derecha PATCH_array2(LSD1,triangle_mesh,2) #local LSD2 = array [10]{68,80,69,81,92,91,104,103,113,112} PATCH_array2(LSD2,triangle_mesh,2) #local LiD1 = array [5]{2,3,12,13,24} // hexagono inferior derecha PATCH_array2(LiD1,triangle_mesh,2) #local LiD1 = array [12]{25,36,37,47,38,48,39,49,40,50,27,28} PATCH_array2(LiD1,triangle_mesh,2) PATCH_4 (6,7,16,17,triangle_mesh,2) #local RH1 = array [12]{41,30,29,18,28,17,27,16,26,15,39,38} // hexagono derecha PATCH_array2(RH1,triangle_mesh,1) #local RH2 = array [12]{49,48,58,57,68,67,80,79,90,102,91,103} PATCH_array2(RH2,triangle_mesh,1) #local RH3 = array [7]{92,104,93,105,82,94,71} PATCH_array2(RH3,triangle_mesh,1) #local RH3 = array [7]{31,42,54,53,72,61,83} // hexagono derecha -borde izquierdo- PATCH_array2(RH3,triangle_mesh,1) // ------------------------------------- #break // *************************************************************************************************************** #case (64) #local A = array [57]{ <0,0,0>/8,<2,0,0>/8,<3,0,0>/8,<4,0,0>/8,<5,0,0>/8,<7,0,0>/8,//6 <1,1,0>/8,<2,1,0>/8,<3,1,0>/8,<4,1,0>/8,<5,1,0>/8,<6,1,0>/8, //6 <0,2,0>/8,<1,2,0>/8,<2,2,0>/8,<5,2,0>/8,<6,2,0>/8,<7,2,0>/8,<8,2,0>/8, //7 <0,3,0>/8,<1,3,0>/8,<3,3,0>/8,<4,3,0>/8,<6,3,0>/8,<7,3,0>/8,<8,3,0>/8, //7 <0,4,0>/8,<1,4,0>/8,<3,4,0>/8,<4,4,0>/8,<6,4,0>/8,<7,4,0>/8,<8,4,0>/8, //7 <0,5,0>/8,<1,5,0>/8,<2,5,0>/8,<5,5,0>/8,<6,5,0>/8,<7,5,0>/8,<8,5,0>/8, //7 <1,6,0>/8,<2,6,0>/8,<3,6,0>/8,<4,6,0>/8,<5,6,0>/8,<6,6,0>/8,<7,6,0>/8,//7 <0,7,0>/8,<2,7,0>/8,<3,7,0>/8,<4,7,0>/8,<5,7,0>/8,<7,7,0>/8, //6 <2,8,0>/8,<3,8,0>/8,<4,8,0>/8,<5,8,0>/8 //4 } #local R = array [11] {26,19,12,0,1,7,6,13,20,27,26} DRAW (R) #local R = array [4] {2,8,21,20} DRAW (R) #local R = array [3] {13,14,7} DRAW (R) #local R = array [7] {27,28,42,41,35,34,33} DRAW (R) #local R = array [3] {34,40,41} DRAW (R) #local R = array [7] {33,47,48,49,50,43,42} DRAW (R) cylinder {px(A[48]),px(A[53]),cyl_thickness} cylinder {px(A[49]),px(A[54]),cyl_thickness} cylinder {px(A[55]),px(A[50]),cyl_thickness} #local R = array [8] {43,29,30,37,36,44,51,56} DRAW (R) #local R = array [3] {44,45,37} DRAW (R) #local R = array [7] {51,52,38,31,24,23,30} DRAW (R) #local R = array [8] {23,22,9,10,15,16,17,18} DRAW (R) cylinder {px(A[38]),px(A[39]),cyl_thickness} cylinder {px(A[31]),px(A[32]),cyl_thickness} cylinder {px(A[24]),px(A[25]),cyl_thickness} cylinder {px(A[8]),px(A[9]),cyl_thickness} #local R = array [3] {10,11,16} DRAW (R) #local R = array [5] {2,3,4,5,17} DRAW (R) #local sph = array [48] {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,19,20,21,22,23, 24,26,27,28,29,30,31,33,34,35,36,37,38,40,41,42,43,44,45,47, 48,49,50,51,52 } PUT_SPHERES (sph) // ------------------------------------- #local Z = array [10]{1,7,0,6,12,13,19,20,26,27} PATCH_array2(Z,triangle_mesh,1) #local Z = array [10]{2,8,3,9,4,10,5,11,17,16} PATCH_array2(Z,triangle_mesh,1) #local Z = array [11]{24,23,31,30,38,37,46,45,52,44,51} PATCH_array2(Z,triangle_mesh,1) #local Z = array [10]{34,33,40,47,41,48,42,49,43,50} PATCH_array2(Z,triangle_mesh,1) #local Z = array [8]{1,2,7,8,14,21,13,20} PATCH_array2(Z,triangle_mesh,2) #local Z = array [10]{25,18,24,17,23,16,22,15,9,10} PATCH_array2(Z,triangle_mesh,2) #local Z = array [10]{56,55,51,50,44,43,36,29,37,30} PATCH_array2(Z,triangle_mesh,2) #local Z = array [8]{26,33,27,34,28,35,42,41} PATCH_array2(Z,triangle_mesh,2) PATCH_4 (48,49,53,54,triangle_mesh,2) PATCH_4 (31,32,38,39,triangle_mesh,2) // ------------------------------------- #break // *************************************************************************************************************** #case (65) #local A = array [15]{ <0,0,0>,<1/6,0,0>,<1/2,0,0>,<4/6,0,0>,<1,0,0>, <0,1/2,0>,<1/6,1/2,0>,<1/2,1/2,0>,<4/6,1/2,0>,<1,1/2,0>, <0,1,0>,<1/6,1,0>,<1/2,1,0>,<4/6,1,0>,<1,1,0> } #local R = array [5]{0,1,2,3,4} DRAW(R) #local R = array [5]{5,6,7,8,9} DRAW(R) #local R = array [5]{5,6,7,8,9} DRAW(R) cylinder {px(A[0]),px(A[5]),cyl_thickness} cylinder {px(A[6]),px(A[11]),cyl_thickness} cylinder {px(A[7]),px(A[12]),cyl_thickness} cylinder {px(A[3]),px(A[8]),cyl_thickness} #local sph = array [8] {0,1,2,3,5,6,7,8} PUT_SPHERES (sph) #if (RIGHT=true) #local R = array [3]{4,9,14} DRAW(R) #local sph = array [2] {4,9} PUT_SPHERES (sph) #end #if (TOP=true) #local R = array [5]{10,11,12,13,14} DRAW(R) #local sph = array [4] {10,11,12,13} PUT_SPHERES (sph) #if (RIGHT=true) sphere {px(A[14]),sph_thickness} #end #end #if (LEFT=true) cylinder {px(A[5]),px(A[10]),cyl_thickness} #end // ------------------------------------- PATCH_4 (6,7,11,12,triangle_mesh,2) PATCH_4 (3,4,8,9,triangle_mesh,2) PATCH_4 (5,6,10,11,triangle_mesh,1) PATCH_6 (7,12,8,13,9,14,triangle_mesh,1) PATCH_8 (0,5,1,6,2,7,3,8,triangle_mesh,1) // ------------------------------------- #break // *************************************************************************************************************** #case (100) #local A = array [31]{<1/10,1/11,0><3/10,1/11,0><4/10,1/11,0><6/10,1/11,0><8/10,1/11,0> <1/10,3/11,0><3/10,3/11,0><4/10,3/11,0><6/10,3/11,0><8/10,3/11,0> <1/10,5/11,0><3/10,5/11,0><5/10,5/11,0><7/10,5/11,0><9/10,5/11,0> <1/10,6/11,0><4/10,6/11,0><6/10,6/11,0><8/10,6/11,0> <1/10,8/11,0><3/10,8/11,0> <1/10,10/11,0><3/10,10/11,0><4/10,10/11,0><6/10,10/11,0><7/10,10/11,0><9/10,10/11,0> <0,0,-.5>,<1,0,-.5>,<0,1,-.5>,<1,1,-.5> } #local R_R = array [7]{0,5,10,11,6,5,1} DRAW(R_R) #local R_A = array [7]{2,7,12,8,3,8,7} DRAW(R_A) #local R_Y = array [5]{4,9,13,9,14} DRAW(R_Y) #local R_P = array [6]{15,19,21,22,20,19} DRAW(R_P) #local R_O = array [5]{16,23,24,17,16} DRAW(R_O) #local R_V = array [3]{25,18,26} DRAW(R_V) PATCH_4(27,28,29,30,triangle_mesh,1) #break // *************************************************************************************************************** #case (101) #local A = array [8] { <0,0,0>,<1,0,0>,<0,1,0>,<1,1,0> // left right top bottom <-.25,.25,0> <1.25,.75,0>, <.75,1.25,0>,<.25,-.25,0> } #local R = array [3] {2,0,1} DRAW (R) #if (TOP=true) sphere {px (A[6]),sph_thickness*5 pigment {Yellow}} #end #if (BOTTOM=true) sphere {px (A[7]),sph_thickness*5 pigment {Blue}} #end #if (LEFT =true) sphere {px (A[4]),sph_thickness*5 pigment {Red}} #end #if (RIGHT =true) sphere {px (A[5]),sph_thickness*5 pigment {Green}} #end #break // *************************************************************************************************************** #end texture { cylinder_txt } } // ------------------------------------- // ------------------------------------- // ------------------------------------- // ************************* numerar y mostrar los puntos de las teselas #ifdef (A) // existe el array para los puntos? #if (Numbers=yes) #local N_points = dimension_size(A,1); // ¿cuantos puntos hay en el array? #local N_r = 0; #while (N_r translate px(A[N_r]) pigment {Green*3} } disc {px(A[N_r]),y,1 pigment {Gray25} translate y*0.1} no_reflection } #local N_r=N_r+1; #end #end #end // end ifdef // ************************* FIN NUMERAR PUNTOS #local n_seg_mnr_rem = n_seg_mnr_rem + 1; #end #local n_seg_mjr_rem = n_seg_mjr_rem + 1; #local minor_r = minor_r - mnr_rd_index; #local major_r = major_r - mjr_rd_index; #end } object {bt #if (shape=0) Center_Trans (bt,x+y+z) #end } #end //---------------------the objects-------------------------------// #switch (P) #case (1) light_source {<100,200, -100> colour White} light_source {<-100, -200, 100> colour White} object { TBTFH ( 40, // begin major radius with, 40, // end major radius with 10, // begin minor radius with, 10, // end minor radius with 1, // number of segments around major radius, 360, //arc degrees major radius 0, //start major radius tiles from, 1, //number of segments around minor radius, 360, //arc degrees minor radius 0, //start minor radius tiles from 0, // Major Lumps 0, // Radius of lumps 0, // Minor Lumps 0, // Radius of lumps 0, //helix height .5, //wire thickness, Pat, //choose a pattern T, // show triangles or smooth_triangles, 0=nothing 1=triangles 2=smooth_triangles 0, // represents the mesh as a plane=0 or a torus=1, or a cylinder=2 0, // amount of random 0, // auto-twist around minor-radius yes // show numbered points My_Pigment_Array, // array containing all the pigments needed ) scale .125 rotate x*-90 translate y*0 translate z*20 rotate y*-25 // rotate y*25 rotate z*30 // ---------- borrar!! } object { TBTFH ( 40, // begin major radius with, 40, // end major radius with 25, // begin minor radius with, 25, // end minor radius with 4, // number of segments around major radius, 45, //arc degrees major radius 0, //start major radius tiles from, 4, //number of segments around minor radius, 40, //arc degrees minor radius 0, //start minor radius tiles from 0, // Lumps 0, // Radius of lumps 0, // Lumps 0, // Radius of lumps 0, //helix height 0.05, //wire thickness, Pat, //choose a pattern T, // show triangles or smooth_triangles, 0=nothing 1=triangles 2=smooth_triangles 1, // represents the mesh as a plane=0 or a torus=1, or a cylinder=2 0, // amount of random 0, // auto-twist around minor-radius no // show numbered points My_Pigment_Array, // array containing all the pigments needed ) } text { ttf "crystal.ttf", concat("Pattern number:",str(Pat,2,0)), .01,0 pigment {White} scale 1.25 translate <10,5,0> no_reflection } camera { location <5,70, -80> look_at <5,10, 10> right 40/25*x up y direction z*4 } #break // ------------------------------------- // ------------------------------------- // ------------------------------------- #case (2) camera { location <5,70, -90> look_at <0, 0,0> right 40/25*x up y } light_source {<-100,200, -150> colour White} light_source {< 100, -200, 100> colour White*.75} object { TBTFH ( 40, // begin major radius with, 40, // end major radius with 10, // begin minor radius with, 10, // end minor radius with 25, // number of segments around major radius, 360, // arc degrees major radius 18, // start major radius tiles from, 10, // number of segments around minor radius, 300, // arc degrees minor radius 0, // start minor radius tiles from 0, // Major Lumps 0, // Radius of lumps 5, // Minor Lumps 4, // Radius of lumps 0, // helix height .15, // wire thickness, Pat, // choose a pattern T, // show triangles or smooth_triangles, 0=nothing 1=triangles 2=smooth_triangles 1, // represents the mesh as a plane=0 or a torus=1, or a cylinder=2 0, // amount of random 360, // auto-twist around minor-radius no // show grid numbered points My_Pigment_Array, // array containing all the pigments needed ) } /* //plane {y,-15 pigment { colour White }} plane { y, -40 texture { pigment { checker colour rgb < rand(RC)*.75, 0.3019608+(.5*rand(RC)), rand(RC) > colour White warp { turbulence octaves 5*rand(RC) lambda 1.5 omega 0.3 } } normal { checker warp { turbulence octaves 5*rand(RC) lambda 1.5 omega 0.3 } } finish { reflection .5*rand(RC) } scale <1+rand(RC),1,1+rand(RC)>*15 rotate 360*rand(RC) } texture { pigment { dents pigment_map { [0.4 Clear] [0.401 Black] [0.501 Clear] } } scale 3+2*rand(RC) } } */ #break // ------------------------------------- // ------------------------------------- // ------------------------------------- #case (3) object { TBTFH ( 35, // begin major radius with, 40, // end major radius with 35, // begin minor radius with, 10, // end minor radius with 2, // number of segments around major radius, 360, //arc degrees major radius 90, //start major radius tiles from, 2, //number of segments around minor radius, 360, //arc degrees minor radius 0, //start minor radius tiles from 0, // Major Lumps 0, // Radius of lumps 0, // Minor Lumps 0, // Radius of lumps 0, //helix height .25, //wire thickness, Pat, //choose a pattern T, // show triangles or smooth_triangles, 0=nothing 1=triangles 2=smooth_triangles 0, // represents the mesh as a plane=0 or a torus=1, or a cylinder=2 0, // amount of random 0, // auto-twist around minor-radius yes // show numbered points My_Pigment_Array, // array containing all the pigments needed ) scale .1 rotate x*-90 translate z*20 } camera { location <0,0,-60> look_at <0,0, 40> right 40/25*x up y direction z*5 } light_source {<100,200, -100> colour White shadowless} light_source {<-100, -200, 100> colour White shadowless} #break // ------------------------------------- // ------------------------------------- // ------------------------------------- #case (4) light_source {<100,100+(100*rand(RC)), -100> colour White rotate y*360*rand(RC) fade_power 2 fade_distance 150+(100*rand(RC)) area_light <4, 0, 0> <0, 0, 4> 3,3 adaptive 2 jitter circular orient } /* light_source {<-100,100+(100*rand(RC)), 100> colour White*.75 rotate y*360*rand(RC) fade_distance 150+(100*rand(RC)) fade_power 2 area_light <4, 0, 0> <0, 0, 4> 3,3 adaptive 2 jitter circular orient } */ #declare Luminaria = union { box {<-50,200,-100><-5,201,100>} box {<5,200,-100>< 50,201,100>} pigment {White*5} } Luminaria #declare Bl_T = object { TBTFH ( 30+(5*sind(360*rand(RC))), // begin major radius with, 20+(5*sind(360*rand(RC))), // end major radius with 15+(5*sind(360*rand(RC))), // begin minor radius with, 5+(4*sind(360*rand(RC))), // end minor radius with 35+(10*sind(360*rand(RC))), // number of segments around major radius, 300+int(60*rand(RC)), // arc degrees major radius 360*rand(RC), // start major radius tiles from, 20+(5*sind(360*rand(RC))), // number of segments around minor radius, 180+(180*rand(RC)), // arc degrees minor radius 360*rand(RC), // start minor radius tiles from 1+int(5*rand(RC)), // Lumps 4+(3*rand(RC)), // Radius of lumps 1+int(5*rand(RC)), // Lumps 3+(3*rand(RC)), // Radius of lumps 0, // helix height .1+(.06*rand(RC)), // wire thickness, Pat, // choose a pattern T, // show triangles or smooth_triangles, 0=nothing 1=triangles 2=smooth_triangles 1, // represents the mesh as a plane=0 or a torus=1, or a cylinder=2 0, // amount of random 360*rand(RC), // auto-twist around minor-radius no // show grid numbered points My_Pigment_Array, // array containing all the pigments needed ) rotate <10+(5*sind(360*rand(RC))),-10+(5*sind(360*rand(RC))),10+(5*sind(360*rand(RC)))> } Bl_T #declare Min_Tor = min_extent (Bl_T); #declare Max_Tor = max_extent (Bl_T); #declare Locat = <5+(15*sind(360*rand(RC))),80+(10*sind(360*rand(RC))), -120+(15*sind(360*rand(RC)))>; light_source {Locat colour White*.5 fade_distance 50 fade_power 2 shadowless } #include "DoF.inc" camera { location Locat look_at <0,0,0> right (21/13)*x up y rotate y*720*rand(RC) angle 65 DoF(Locat, 1100, 65, <0, 0, 0>, Min_Tor*1.2, Max_Tor*1.2) blur_samples 100 variance 1/256 confidence 0.999 } // ------------------------------------- // ------------------------------------- plane { y, -40 texture { pigment { checker colour rgb < rand(RC)*.75, 0.3019608+(.5*rand(RC)), rand(RC) > colour White warp { turbulence octaves 5*rand(RC) lambda 1.5 omega 0.3 } } normal { checker warp { turbulence octaves 5*rand(RC) lambda 1.5 omega 0.3 } } finish { reflection .5*rand(RC) } scale <1+rand(RC),1,1+rand(RC)>*15 rotate 360*rand(RC) } texture { pigment { dents pigment_map { [0.4 Clear] [0.401 Black] [0.501 Clear] } } scale 3+2*rand(RC) } } // ------------------------------ fin de suelo -- ---------- #break #case (5) object { TBTFH ( 30, // begin major radius with, 30, // end major radius with 5, // begin minor radius with, 5, // end minor radius with 30, // number of segments around major radius, 360, //arc degrees major radius 90, //start major radius tiles from, 8, //number of segments around minor radius, 360, //arc degrees minor radius 0, //start minor radius tiles from 0, // Major Lumps 0, // Radius of lumps 3, // Minor Lumps 2, // Radius of lumps 0, //helix height .05, //wire thickness, 37, //choose a pattern T, // show triangles or smooth_triangles, 0=nothing 1=triangles 2=smooth_triangles 1, // represents the mesh as a plane=0 or a torus=1, or a cylinder=2 0, // amount of random 180, // auto-twist around minor-radius no // show numbered points My_Pigment_Array, // array containing all the pigments needed ) } object { TBTFH ( 0.001, // begin major radius with, 0.001, // end major radius with 15, // begin minor radius with, 15, // end minor radius with 18, // number of segments around major radius, 360, //arc degrees major radius 0, //start major radius tiles from, 11, //number of segments around minor radius, 180, //arc degrees minor radius 90, //start minor radius tiles from 0, // Major Lumps 0, // Radius of lumps 0, // Minor Lumps 0, // Radius of lumps 0, //helix height .05, //wire thickness, 25, //choose a pattern T, // show triangles or smooth_triangles, 0=nothing 1=triangles 2=smooth_triangles 1, // represents the mesh as a plane=0 or a torus=1, or a cylinder=2 0, // amount of random 0, // auto-twist around minor-radius no // show numbered points My_Pigment_Array, // array containing all the pigments needed ) rotate z*-30 translate <25,8,42> } plane {y,-7 pigment { colour White }} camera { location <50,75,-200> look_at <0,0, 40> right 40/25*x up y direction z*3 } //light_source {<-100,200, 125> colour White } light_source {<-100,200, -100> colour White fade_power 2 fade_distance 150 area_light <4, 0, 0> <0, 0, 4> 3,3 adaptive 2 jitter circular orient } #break #case (6) camera { location <5,70, -90> look_at <0, 0,0> right 40/25*x up y } light_source {<-100,200, -150> colour White} light_source {< 100, -200, 100> colour White*.75} object { TBTFH ( 20, // begin major radius with, 5, // end major radius with 3, // begin minor radius with, 3, // end minor radius with 16, // number of segments around major radius, 360, // arc degrees major radius -20, // start major radius tiles from, 10, // number of segments around minor radius, 360, // arc degrees minor radius 0, // start minor radius tiles from 0, // Major Lumps 0, // Radius of lumps 1, // Minor Lumps 4, // Radius of lumps 0, // helix height .15, // wire thickness Pat, // choose a pattern T, // show triangles or smooth_triangles, 0=nothing 1=triangles 2=smooth_triangles 2, // represents the mesh as a plane=0 or a torus=1, or a cylinder=2 0, // amount of random 80, // auto-twist around minor-radius no // show grid numbered points My_Pigment_Array, // array containing all the pigments needed ) } #break #end