#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 = mesh{ #declare loop=0; #while (loop<20) triangle {HexagonCentre[loop],Vertex[Hexagon[loop][0]],Vertex[Hexagon[loop][1]]} triangle {HexagonCentre[loop],Vertex[Hexagon[loop][1]],Vertex[Hexagon[loop][2]]} triangle {HexagonCentre[loop],Vertex[Hexagon[loop][2]],Vertex[Hexagon[loop][3]]} triangle {HexagonCentre[loop],Vertex[Hexagon[loop][3]],Vertex[Hexagon[loop][4]]} triangle {HexagonCentre[loop],Vertex[Hexagon[loop][4]],Vertex[Hexagon[loop][5]]} triangle {HexagonCentre[loop],Vertex[Hexagon[loop][5]],Vertex[Hexagon[loop][0]]} #declare loop=loop+1; #end #declare loop=0; #while (loop<12) triangle {PentagonCentre[loop],Vertex[Pentagon[loop][0]],Vertex[Pentagon[loop][1]]} triangle {PentagonCentre[loop],Vertex[Pentagon[loop][1]],Vertex[Pentagon[loop][2]]} triangle {PentagonCentre[loop],Vertex[Pentagon[loop][2]],Vertex[Pentagon[loop][3]]} triangle {PentagonCentre[loop],Vertex[Pentagon[loop][3]],Vertex[Pentagon[loop][4]]} triangle {PentagonCentre[loop],Vertex[Pentagon[loop][4]],Vertex[Pentagon[loop][0]]} #declare loop=loop+1; #end scale 1.23 }