File tree Expand file tree Collapse file tree 1 file changed +20
-6
lines changed
src/main/java/mesh/modifier Expand file tree Collapse file tree 1 file changed +20
-6
lines changed Original file line number Diff line number Diff line change @@ -9,6 +9,8 @@ public class PushPullModifier implements IMeshModifier {
99
1010 private Vector3f center ;
1111
12+ private Mesh3D mesh ;
13+
1214 public PushPullModifier () {
1315 this (0 , Vector3f .ZERO );
1416 }
@@ -18,17 +20,29 @@ public PushPullModifier(float distance, Vector3f center) {
1820 this .center = center ;
1921 }
2022
23+ private void pushPullVertices () {
24+ for (Vector3f vertex : mesh .vertices )
25+ pushPullVertex (vertex );
26+ }
27+
28+ private void pushPullVertex (Vector3f vertex ) {
29+ float distanceToCenter = vertex .distance (center );
30+ float displacement = distance - distanceToCenter ;
31+ Vector3f directionToCenter = vertex .subtract (center ).normalize ();
32+ vertex .set (directionToCenter .mult (displacement ).add (center ));
33+ }
34+
2135 @ Override
2236 public Mesh3D modify (Mesh3D mesh ) {
23- for (Vector3f vertex : mesh .vertices ) {
24- float distanceToCenter = vertex .distance (center );
25- float displacement = this .distance - distanceToCenter ;
26- Vector3f directionToCenter = vertex .subtract (center ).normalize ();
27- vertex .set (directionToCenter .mult (displacement ).add (center ));
28- }
37+ setMesh (mesh );
38+ pushPullVertices ();
2939 return mesh ;
3040 }
3141
42+ private void setMesh (Mesh3D mesh ) {
43+ this .mesh = mesh ;
44+ }
45+
3246 public float getDistance () {
3347 return distance ;
3448 }
You can’t perform that action at this time.
0 commit comments