Skip to content

Commit e4c2d98

Browse files
committed
Refactoring using translate modifier.
1 parent 4172d55 commit e4c2d98

File tree

5 files changed

+20
-9
lines changed

5 files changed

+20
-9
lines changed

src/main/java/mesh/creator/assets/ArchDoorCreator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import mesh.creator.IMeshCreator;
77
import mesh.creator.primitives.ArcCreator;
88
import mesh.modifier.SolidifyModifier;
9+
import mesh.modifier.TranslateModifier;
910

1011
public class ArchDoorCreator implements IMeshCreator {
1112

@@ -54,8 +55,7 @@ private void solidify() {
5455
}
5556

5657
private void translate() {
57-
mesh.translateX(radius / 2f);
58-
mesh.translateZ(depth / 2f);
58+
mesh.apply(new TranslateModifier(radius / 2, 0, depth / 2));
5959
}
6060

6161
private void createFaces() {

src/main/java/mesh/creator/assets/CrateCreator.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import mesh.creator.IMeshCreator;
99
import mesh.creator.primitives.CubeCreator;
1010
import mesh.modifier.ScaleModifier;
11+
import mesh.modifier.TranslateModifier;
1112
import mesh.util.Mesh3DUtil;
1213

1314
public class CrateCreator implements IMeshCreator {
@@ -115,15 +116,15 @@ private void createLeftCrossBeam() {
115116
Mesh3D mesh = createCrossBeam();
116117
mesh.rotateX(-Mathf.HALF_PI);
117118
mesh.rotateY(-Mathf.HALF_PI);
118-
mesh.translateX(-this.radius);
119+
mesh.apply(new TranslateModifier(radius / 2, 0, 0));
119120
this.mesh.append(mesh);
120121
}
121122

122123
private void createRightCrossBeam() {
123124
Mesh3D mesh = createCrossBeam();
124125
mesh.rotateX(-Mathf.HALF_PI);
125126
mesh.rotateY(Mathf.HALF_PI);
126-
mesh.translateX(this.radius);
127+
mesh.apply(new TranslateModifier(radius / 2, 0, 0));
127128
this.mesh.append(mesh);
128129
}
129130

src/main/java/mesh/creator/assets/ProfileWallCreator.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import mesh.creator.special.QuadStripCreator;
99
import mesh.modifier.ScaleModifier;
1010
import mesh.modifier.SolidifyModifier;
11+
import mesh.modifier.TranslateModifier;
1112
import mesh.selection.FaceSelection;
1213
import mesh.util.Mesh3DUtil;
1314

@@ -115,7 +116,7 @@ private void createSecondSegment() {
115116
private Mesh3D createSegment() {
116117
Mesh3D mesh = creator.create();
117118
new SolidifyModifier(calculateWidth()).modify(mesh);
118-
mesh.translateX(width / 2f);
119+
mesh.apply(new TranslateModifier(width / 2, 0, 0));
119120

120121
if (corner) {
121122
FaceSelection selection = new FaceSelection(mesh);

src/main/java/mesh/creator/assets/SciFiFloorSupportCreator.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import math.Mathf;
44
import mesh.Mesh3D;
55
import mesh.creator.IMeshCreator;
6+
import mesh.modifier.TranslateModifier;
67
import mesh.selection.CompareType;
78
import mesh.selection.FaceSelection;
89
import mesh.selection.FaceSelectionRules;
@@ -78,7 +79,8 @@ private void mirror() {
7879
}
7980

8081
private void centerOnAxisX() {
81-
mesh.translateX(-(getTotalWidth() / 2f) + (getWidth() / 2f));
82+
float deltaX = -(getTotalWidth() / 2f) + (getWidth() / 2f);
83+
mesh.apply(new TranslateModifier(deltaX, 0, 0));
8284
}
8385

8486
private void processCapBack() {
@@ -114,12 +116,15 @@ private void processCapTop() {
114116
private void createSupports() {
115117
for (int i = 0; i < supportCount; i++) {
116118
Mesh3D support = this.support.copy();
117-
support.translateX(i * (width + gap));
119+
float deltaX = i * (width + gap);
120+
support.apply(new TranslateModifier(deltaX, 0, 0));
118121
mesh.append(support);
119122
}
120123
}
121124

122125
private void createSupport() {
126+
float deltaX = getSupportDepth() / 2f;
127+
float deltaY = -radius - extendBottom;
123128
ArchCreator creator = new ArchCreator();
124129
creator.setRadius(radius);
125130
creator.setExtendLeft(extendBottom);
@@ -130,8 +135,7 @@ private void createSupport() {
130135
creator.setSegments(segments);
131136
support = creator.create();
132137
support.rotateZ(-Mathf.HALF_PI);
133-
support.translateY(-radius - extendBottom);
134-
support.translateX(getSupportDepth() / 2f);
138+
support.apply(new TranslateModifier(deltaX, deltaY, 0));
135139
support.rotateY(-Mathf.HALF_PI);
136140
processCapBack();
137141
processCapTop();

src/test/java/util/MeshTestUtil.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@ public static boolean meshHasNoDuplicatedFaces(Mesh3D mesh) {
4141
}
4242
return duplicatedFaces == 0;
4343
}
44+
45+
public static boolean meshHasNoDuplicatedVertices(Mesh3D mesh) {
46+
HashSet<Vector3f> map = new HashSet<Vector3f>(mesh.vertices);
47+
return map.size() == mesh.vertices.size();
48+
}
4449

4550
public static boolean meshHasNoLooseVertices(Mesh3D mesh) {
4651
List<Vector3f> vertices = mesh.getVertices();

0 commit comments

Comments
 (0)