#declare Vertex = array [60] { <-0.265,0.328,-0.695>, <-0.164,-0.796,0.000>, <0.594,-0.531,0.164>, <0.000,0.164,0.796>, <-0.164,-0.594,0.531>, <-0.796,0.000,0.164>, <0.164,-0.594,0.531>, <-0.531,0.164,-0.594>, <0.164,0.594,-0.531>, <0.328,0.695,-0.265>, <-0.594,-0.531,0.164>, <-0.594,0.531,-0.164>, <-0.164,-0.594,-0.531>, <-0.265,-0.328,-0.695>, <-0.695,-0.265,0.328>, <0.695,0.265,0.328>, <-0.164,0.796,0.000>, <0.695,0.265,-0.328>, <-0.328,0.695,0.265>, <-0.695,-0.265,-0.328>, <0.796,0.000,0.164>, <0.265,-0.328,0.695>, <0.695,-0.265,-0.328>, <0.000,-0.164,-0.796>, <0.000,-0.164,0.796>, <0.164,0.594,0.531>, <-0.695,0.265,-0.328>, <-0.328,0.695,-0.265>, <0.164,-0.796,0.000>, <0.695,-0.265,0.328>, <-0.531,-0.164,-0.594>, <0.531,0.164,0.594>, <0.265,0.328,0.695>, <0.594,0.531,-0.164>, <-0.594,-0.531,-0.164>, <0.265,-0.328,-0.695>, <0.328,-0.695,0.265>, <0.796,0.000,-0.164>, <-0.531,0.164,0.594>, <-0.695,0.265,0.328>, <-0.265,-0.328,0.695>, <0.594,-0.531,-0.164>, <-0.164,0.594,0.531>, <-0.265,0.328,0.695>, <0.164,0.796,0.000>, <-0.531,-0.164,0.594>, <0.265,0.328,-0.695>, <0.164,-0.594,-0.531>, <0.531,0.164,-0.594>, <0.531,-0.164,0.594>, <-0.164,0.594,-0.531>, <0.328,0.695,0.265>, <0.594,0.531,0.164>, <-0.328,-0.695,-0.265>, <0.000,0.164,-0.796>, <-0.796,0.000,-0.164>, <0.531,-0.164,-0.594>, <0.328,-0.695,-0.265>, <-0.328,-0.695,0.265>, <-0.594,0.531,0.164> }; #declare Hexagon = array [20][6] { {7,0,54,23,13,30}, {51,25,42,18,16,44}, {31,32,3,24,21,49}, {28,1,53,12,47,57}, {45,38,43,3,24,40}, {37,17,33,52,15,20}, {18,59,39,38,43,42}, {28,1,58,4,6,36}, {25,51,52,15,31,32}, {11,26,7,0,50,27}, {34,19,30,13,12,53}, {10,14,45,40,4,58}, {41,22,56,35,47,57}, {2,36,6,21,49,29}, {44,9,8,50,27,16}, {20,37,22,41,2,29}, {26,11,59,39,5,55}, {5,55,19,34,10,14}, {48,46,54,23,35,56}, {9,8,46,48,17,33} }; #declare Pentagon = array [12][5] { {53,1,58,10,34}, {18,59,11,27,16}, {46,54,0,50,8}, {57,28,36,2,41}, {19,30,7,26,55}, {49,31,15,20,29}, {13,23,35,47,12}, {43,3,32,25,42}, {5,39,38,45,14}, {44,9,33,52,51}, {21,24,40,4,6}, {48,17,37,22,56}, }; #declare HexagonCentre = array [20]; #declare loop=0; #while (loop<20) #declare HexagonCentre [loop] = (Vertex[Hexagon[loop] [0]] + Vertex[Hexagon[loop] [1]] + Vertex[Hexagon[loop] [2]] + Vertex[Hexagon[loop] [3]] + Vertex[Hexagon[loop] [4]] + Vertex[Hexagon[loop] [5]])/6; #declare loop=loop+1; #end #declare PentagonCentre = array [12]; #declare loop=0; #while (loop<12) #declare PentagonCentre [loop] = (Vertex[Pentagon[loop] [0]] + Vertex[Pentagon[loop] [1]] + Vertex[Pentagon[loop] [2]] + Vertex[Pentagon[loop] [3]] + Vertex[Pentagon[loop] [4]])/5; #declare loop=loop+1; #end #declare TruncatedIcosahedron = mesh2{ vertex_vectors {92, #declare loop=0; #while (loop<60) Vertex[loop], #declare loop=loop+1; #end #declare loop=0; #while (loop<20) HexagonCentre[loop], #declare loop=loop+1; #end #declare loop=0; #while (loop<12) PentagonCentre[loop], #declare loop=loop+1; #end } face_indices {180 #declare loop=0; #while(loop<20) <60+loop,Hexagon[loop][0],Hexagon[loop][1]>, <60+loop,Hexagon[loop][1],Hexagon[loop][2]>, <60+loop,Hexagon[loop][2],Hexagon[loop][3]>, <60+loop,Hexagon[loop][3],Hexagon[loop][4]>, <60+loop,Hexagon[loop][4],Hexagon[loop][5]>, <60+loop,Hexagon[loop][5],Hexagon[loop][0]>, #declare loop=loop+1; #end #declare loop=0; #while(loop<12) <80+loop,Pentagon[loop][0],Pentagon[loop][1]>, <80+loop,Pentagon[loop][1],Pentagon[loop][2]>, <80+loop,Pentagon[loop][2],Pentagon[loop][3]>, <80+loop,Pentagon[loop][3],Pentagon[loop][4]>, <80+loop,Pentagon[loop][4],Pentagon[loop][0]>, #declare loop=loop+1; #end } scale 1.23 }