package mods.eln.misc; import com.google.common.base.Objects; import net.minecraft.util.Vec3; public class BoundingBox { public final Vec3 min, max; public BoundingBox(float xMin, float xMax, float yMin, float yMax, float zMin, float zMax) { min = Vec3.createVectorHelper(xMin, yMin, zMin); max = Vec3.createVectorHelper(xMax, yMax, zMax); } public static BoundingBox mergeIdentity() { return new BoundingBox( Float.POSITIVE_INFINITY, Float.NEGATIVE_INFINITY, Float.POSITIVE_INFINITY, Float.NEGATIVE_INFINITY, Float.POSITIVE_INFINITY, Float.NEGATIVE_INFINITY ); } public BoundingBox merge(BoundingBox other) { return new BoundingBox( (float) Math.min(min.xCoord, other.min.xCoord), (float) Math.max(max.xCoord, other.max.xCoord), (float) Math.min(min.yCoord, other.min.yCoord), (float) Math.max(max.yCoord, other.max.yCoord), (float) Math.min(min.zCoord, other.min.zCoord), (float) Math.max(max.zCoord, other.max.zCoord) ); } public Vec3 centre() { return Vec3.createVectorHelper( min.xCoord + (max.xCoord - min.xCoord) / 2, min.yCoord + (max.yCoord - min.yCoord) / 2, min.zCoord + (max.zCoord - min.zCoord) / 2 ); } @Override public String toString() { return Objects.toStringHelper(this) .add("min", min) .add("max", max) .toString(); } }