Skip to content

Commit daa4d94

Browse files
committed
removed magic number added constructor with scale parameter
1 parent ae3dce4 commit daa4d94

1 file changed

Lines changed: 61 additions & 48 deletions

File tree

mesh/src/main/java/mesh/creator/catalan/TriakisTetrahedronCreator.java

Lines changed: 61 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -5,62 +5,75 @@
55

66
public class TriakisTetrahedronCreator implements IMeshCreator {
77

8-
private float a = 5f / 3f;
8+
/**
9+
* Scale factor for tetrahedron vertices so that the resulting triakis tetrahedron has symmetric
10+
* (congruent) faces.
11+
*/
12+
private static final float DEFAULT_TRIAKIS_TETRAHEDRON_SCALE = 5f / 3f;
913

10-
private Mesh3D mesh;
14+
private float scale;
1115

12-
@Override
13-
public Mesh3D create() {
14-
initializeMesh();
15-
createVertices();
16-
createFaces();
17-
return mesh;
18-
}
16+
private Mesh3D mesh;
1917

20-
private void createVertices() {
21-
createTetrahedronVertices();
22-
createMidEdgeVertices();
23-
}
18+
public TriakisTetrahedronCreator() {
19+
this(DEFAULT_TRIAKIS_TETRAHEDRON_SCALE);
20+
}
2421

25-
private void createTetrahedronVertices() {
26-
addVertex(a, a, a);
27-
addVertex(a, -a, -a);
28-
addVertex(-a, -a, a);
29-
addVertex(-a, a, -a);
30-
}
22+
public TriakisTetrahedronCreator(float scale) {
23+
this.scale = scale;
24+
}
3125

32-
private void createMidEdgeVertices() {
33-
addVertex(1, -1, 1);
34-
addVertex(-1, 1, 1);
35-
addVertex(1, 1, -1);
36-
addVertex(-1, -1, -1);
37-
}
26+
@Override
27+
public Mesh3D create() {
28+
initializeMesh();
29+
createVertices();
30+
createFaces();
31+
return mesh;
32+
}
3833

39-
public void createFaces() {
40-
addFace(4, 0, 5);
41-
addFace(6, 1, 7);
42-
addFace(2, 4, 5);
43-
addFace(3, 6, 7);
44-
addFace(5, 0, 6);
45-
addFace(1, 4, 7);
46-
addFace(4, 2, 7);
47-
addFace(3, 5, 6);
48-
addFace(0, 4, 6);
49-
addFace(4, 1, 6);
50-
addFace(2, 5, 7);
51-
addFace(5, 3, 7);
52-
}
34+
private void createVertices() {
35+
createTetrahedronVertices();
36+
createInnerVertices();
37+
}
5338

54-
private void initializeMesh() {
55-
mesh = new Mesh3D();
56-
}
39+
private void createTetrahedronVertices() {
40+
addVertex(scale, scale, scale);
41+
addVertex(scale, -scale, -scale);
42+
addVertex(-scale, -scale, scale);
43+
addVertex(-scale, scale, -scale);
44+
}
5745

58-
private void addVertex(float x, float y, float z) {
59-
mesh.addVertex(x, y, z);
60-
}
46+
private void createInnerVertices() {
47+
addVertex(1, -1, 1);
48+
addVertex(-1, 1, 1);
49+
addVertex(1, 1, -1);
50+
addVertex(-1, -1, -1);
51+
}
6152

62-
private void addFace(int... indices) {
63-
mesh.addFace(indices);
64-
}
53+
public void createFaces() {
54+
addFace(4, 0, 5);
55+
addFace(6, 1, 7);
56+
addFace(2, 4, 5);
57+
addFace(3, 6, 7);
58+
addFace(5, 0, 6);
59+
addFace(1, 4, 7);
60+
addFace(4, 2, 7);
61+
addFace(3, 5, 6);
62+
addFace(0, 4, 6);
63+
addFace(4, 1, 6);
64+
addFace(2, 5, 7);
65+
addFace(5, 3, 7);
66+
}
6567

68+
private void initializeMesh() {
69+
mesh = new Mesh3D();
70+
}
71+
72+
private void addVertex(float x, float y, float z) {
73+
mesh.addVertex(x, y, z);
74+
}
75+
76+
private void addFace(int... indices) {
77+
mesh.addFace(indices);
78+
}
6679
}

0 commit comments

Comments
 (0)