create GeometryUtil

This commit is contained in:
dfsek
2021-12-27 14:45:37 -07:00
parent 4be63b8c65
commit 287c029bda
2 changed files with 38 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
package com.dfsek.terra.api.util;
import com.dfsek.terra.api.util.vector.Vector3Int;
import java.util.function.Consumer;
public final class GeometryUtil {
private GeometryUtil() {
}
public static void sphere(Vector3Int origin, int radius, Consumer<Vector3Int> action) {
for(int x = -radius; x <= radius; x++) {
for(int y = -radius; y <= radius; y++) {
for(int z = -radius; z <= radius; z++) {
if(x * x + y * y + z * z <= radius * radius) {
action.accept(Vector3Int.of(origin, x, y, z));
}
}
}
}
}
public static void cube(Vector3Int origin, int radius, Consumer<Vector3Int> action) {
for(int x = -radius; x <= radius; x++) {
for(int y = -radius; y <= radius; y++) {
for(int z = -radius; z <= radius; z++) {
action.accept(Vector3Int.of(origin, x, y, z));
}
}
}
}
}

View File

@@ -24,6 +24,10 @@ public class Vector3Int {
return new Vector3Int(x, y, z);
}
public static Vector3Int of(Vector3Int origin, int x, int y, int z) {
return new Vector3Int(origin.x + x, origin.y + y, origin.z + z);
}
public int getX() {
return x;
}