|
5 | 5 |
|
6 | 6 | public class TruncatedOctahedronCreator implements IMeshCreator { |
7 | 7 |
|
| 8 | + private float a = 1.0f; |
| 9 | + |
| 10 | + private float b = 0.0f; |
| 11 | + |
| 12 | + private float c = 2.0f; |
| 13 | + |
8 | 14 | @Override |
9 | 15 | public Mesh3D create() { |
10 | 16 | Mesh3D mesh = new Mesh3D(); |
| 17 | + createVertices(mesh); |
| 18 | + createFaces(mesh); |
| 19 | + return mesh; |
| 20 | + } |
11 | 21 |
|
12 | | - float a = 1.0f; |
13 | | - float b = 0.0f; |
14 | | - float c = 2.0f; |
| 22 | + private void createFaces(Mesh3D mesh) { |
| 23 | + createQuadFaces(mesh); |
| 24 | + createHexagonalFaces(mesh); |
| 25 | + } |
| 26 | + |
| 27 | + private void createHexagonalFaces(Mesh3D mesh) { |
| 28 | + mesh.addFace(0, 4, 14, 21, 17, 10); |
| 29 | + mesh.addFace(0, 8, 16, 20, 12, 4); |
| 30 | + mesh.addFace(1, 6, 12, 20, 18, 9); |
| 31 | + mesh.addFace(1, 11, 19, 21, 14, 6); |
| 32 | + mesh.addFace(2, 5, 13, 22, 16, 8); |
| 33 | + mesh.addFace(2, 10, 17, 23, 15, 5); |
| 34 | + mesh.addFace(3, 7, 15, 23, 19, 11); |
| 35 | + mesh.addFace(3, 9, 18, 22, 13, 7); |
| 36 | + } |
| 37 | + |
| 38 | + private void createQuadFaces(Mesh3D mesh) { |
| 39 | + mesh.addFace(0, 10, 2, 8); |
| 40 | + mesh.addFace(1, 9, 3, 11); |
| 41 | + mesh.addFace(4, 12, 6, 14); |
| 42 | + mesh.addFace(5, 15, 7, 13); |
| 43 | + mesh.addFace(16, 22, 18, 20); |
| 44 | + mesh.addFace(17, 21, 19, 23); |
| 45 | + } |
15 | 46 |
|
| 47 | + private void createVertices(Mesh3D mesh) { |
16 | 48 | mesh.addVertex(+b, +a, +c); |
17 | 49 | mesh.addVertex(+b, +a, -c); |
18 | 50 | mesh.addVertex(+b, -a, +c); |
@@ -42,23 +74,5 @@ public Mesh3D create() { |
42 | 74 | mesh.addVertex(-c, +a, +b); |
43 | 75 | mesh.addVertex(+c, -a, +b); |
44 | 76 | mesh.addVertex(-c, -a, +b); |
45 | | - |
46 | | - mesh.addFace(0, 10, 2, 8); |
47 | | - mesh.addFace(1, 9, 3, 11); |
48 | | - mesh.addFace(4, 12, 6, 14); |
49 | | - mesh.addFace(5, 15, 7, 13); |
50 | | - mesh.addFace(16, 22, 18, 20); |
51 | | - mesh.addFace(17, 21, 19, 23); |
52 | | - |
53 | | - mesh.addFace(0, 4, 14, 21, 17, 10); |
54 | | - mesh.addFace(0, 8, 16, 20, 12, 4); |
55 | | - mesh.addFace(1, 6, 12, 20, 18, 9); |
56 | | - mesh.addFace(1, 11, 19, 21, 14, 6); |
57 | | - mesh.addFace(2, 5, 13, 22, 16, 8); |
58 | | - mesh.addFace(2, 10, 17, 23, 15, 5); |
59 | | - mesh.addFace(3, 7, 15, 23, 19, 11); |
60 | | - mesh.addFace(3, 9, 18, 22, 13, 7); |
61 | | - |
62 | | - return mesh; |
63 | 77 | } |
64 | 78 | } |
0 commit comments