Skip to content

Commit b12dcd2

Browse files
committed
Moved update face normals to modifier class.
1 parent e16da6d commit b12dcd2

File tree

3 files changed

+22
-2
lines changed

3 files changed

+22
-2
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package mesh.modifier;
2+
3+
import mesh.Face3D;
4+
import mesh.Mesh3D;
5+
6+
public class UpdateFaceNormalsModifier implements IMeshModifier {
7+
8+
@Override
9+
public Mesh3D modify(Mesh3D mesh) {
10+
11+
for (Face3D face : mesh.faces) {
12+
face.normal = mesh.calculateFaceNormal(face);
13+
}
14+
15+
return mesh;
16+
}
17+
18+
}

src/main/java/workspace/render/Mesh3DRenderer.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import math.Vector3f;
77
import mesh.Face3D;
88
import mesh.Mesh3D;
9+
import mesh.modifier.UpdateFaceNormalsModifier;
910
import mesh.selection.FaceSelection;
1011
import mesh.util.VertexNormals;
1112
import processing.core.PApplet;
@@ -90,7 +91,7 @@ public void drawFaces(Mesh3D mesh, Collection<Face3D> faces, Shading shading) {
9091
private void drawFacesSmooth(Mesh3D mesh, Collection<Face3D> faces) {
9192
context.pushMatrix();
9293

93-
mesh.updateFaceNormals();
94+
mesh.apply(new UpdateFaceNormalsModifier());
9495

9596
VertexNormals normals = new VertexNormals(mesh);
9697

src/test/java/mesh/modifier/subdivision/test/PlanarVertexCenterPlaneTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import mesh.Face3D;
1111
import mesh.Mesh3D;
1212
import mesh.creator.primitives.PlaneCreator;
13+
import mesh.modifier.UpdateFaceNormalsModifier;
1314
import mesh.modifier.subdivision.PlanarVertexCenterModifier;
1415
import util.MeshTestUtil;
1516

@@ -88,7 +89,7 @@ public void resultMeshContainsPlaneCenter() {
8889
@Test
8990
public void faceNormalsPointingTowardsNegativeY() {
9091
Vector3f expectedNormal = new Vector3f(0, -1, 0);
91-
plane.updateFaceNormals();
92+
plane.apply(new UpdateFaceNormalsModifier());
9293
for (int i = 0; i < plane.getFaceCount(); i++) {
9394
Face3D face = plane.getFaceAt(i);
9495
assertEquals(expectedNormal, face.normal);

0 commit comments

Comments
 (0)