44 using VertexType = MeshType::VertexType;
45 using CoordType = VertexType::CoordType;
49 const double t = (1.0 + std::sqrt(5.0)) / 2.0;
52 mesh.addVertex(CoordType(-1.0, t, 0.0));
53 mesh.addVertex(CoordType(1.0, t, 0.0));
54 mesh.addVertex(CoordType(-1.0, -t, 0.0));
55 mesh.addVertex(CoordType(1.0, -t, 0.0));
56 mesh.addVertex(CoordType(0.0, -1.0, t));
57 mesh.addVertex(CoordType(0.0, 1.0, t));
58 mesh.addVertex(CoordType(0.0, -1.0, -t));
59 mesh.addVertex(CoordType(0.0, 1.0, -t));
60 mesh.addVertex(CoordType(t, 0.0, -1.0));
61 mesh.addVertex(CoordType(t, 0.0, 1.0));
62 mesh.addVertex(CoordType(-t, 0.0, -1.0));
63 mesh.addVertex(CoordType(-t, 0.0, 1.0));
66 for (VertexType& v : mesh.vertices())
67 v.coord().normalize();
71 mesh.addFace(0, 11, 5);
72 mesh.addFace(0, 5, 1);
73 mesh.addFace(0, 1, 7);
74 mesh.addFace(0, 7, 10);
75 mesh.addFace(0, 10, 11);
76 mesh.addFace(1, 5, 9);
77 mesh.addFace(5, 11, 4);
78 mesh.addFace(11, 10, 2);
79 mesh.addFace(10, 7, 6);
80 mesh.addFace(7, 1, 8);
81 mesh.addFace(3, 9, 4);
82 mesh.addFace(3, 4, 2);
83 mesh.addFace(3, 2, 6);
84 mesh.addFace(3, 6, 8);
85 mesh.addFace(3, 8, 9);
86 mesh.addFace(4, 9, 5);
87 mesh.addFace(2, 4, 11);
88 mesh.addFace(6, 2, 10);
89 mesh.addFace(8, 6, 7);
90 mesh.addFace(9, 8, 1);
MeshType createIcosahedron(bool normalizeVertices=false)
Creates and returns an icosahedron mesh.
Definition icosahedron.h:42