mirror of
http://git.eaglercraft.rip/eaglercraft/eaglercraft-1.8.git
synced 2025-04-30 02:01:59 -05:00
159 lines
2.4 KiB
Java
159 lines
2.4 KiB
Java
package net.optifine.model;
|
|
|
|
import net.minecraft.util.EnumFacing;
|
|
|
|
public class QuadBounds {
|
|
private float minX = Float.MAX_VALUE;
|
|
private float minY = Float.MAX_VALUE;
|
|
private float minZ = Float.MAX_VALUE;
|
|
private float maxX = -3.4028235E38F;
|
|
private float maxY = -3.4028235E38F;
|
|
private float maxZ = -3.4028235E38F;
|
|
|
|
public QuadBounds(int[] vertexData) {
|
|
int i = vertexData.length / 4;
|
|
|
|
for (int j = 0; j < 4; ++j) {
|
|
int k = j * i;
|
|
float f = Float.intBitsToFloat(vertexData[k + 0]);
|
|
float f1 = Float.intBitsToFloat(vertexData[k + 1]);
|
|
float f2 = Float.intBitsToFloat(vertexData[k + 2]);
|
|
|
|
if (this.minX > f) {
|
|
this.minX = f;
|
|
}
|
|
|
|
if (this.minY > f1) {
|
|
this.minY = f1;
|
|
}
|
|
|
|
if (this.minZ > f2) {
|
|
this.minZ = f2;
|
|
}
|
|
|
|
if (this.maxX < f) {
|
|
this.maxX = f;
|
|
}
|
|
|
|
if (this.maxY < f1) {
|
|
this.maxY = f1;
|
|
}
|
|
|
|
if (this.maxZ < f2) {
|
|
this.maxZ = f2;
|
|
}
|
|
}
|
|
}
|
|
|
|
public float getMinX() {
|
|
return this.minX;
|
|
}
|
|
|
|
public float getMinY() {
|
|
return this.minY;
|
|
}
|
|
|
|
public float getMinZ() {
|
|
return this.minZ;
|
|
}
|
|
|
|
public float getMaxX() {
|
|
return this.maxX;
|
|
}
|
|
|
|
public float getMaxY() {
|
|
return this.maxY;
|
|
}
|
|
|
|
public float getMaxZ() {
|
|
return this.maxZ;
|
|
}
|
|
|
|
public boolean isFaceQuad(EnumFacing face) {
|
|
float f;
|
|
float f1;
|
|
float f2;
|
|
|
|
switch (face) {
|
|
case DOWN:
|
|
f = this.getMinY();
|
|
f1 = this.getMaxY();
|
|
f2 = 0.0F;
|
|
break;
|
|
|
|
case UP:
|
|
f = this.getMinY();
|
|
f1 = this.getMaxY();
|
|
f2 = 1.0F;
|
|
break;
|
|
|
|
case NORTH:
|
|
f = this.getMinZ();
|
|
f1 = this.getMaxZ();
|
|
f2 = 0.0F;
|
|
break;
|
|
|
|
case SOUTH:
|
|
f = this.getMinZ();
|
|
f1 = this.getMaxZ();
|
|
f2 = 1.0F;
|
|
break;
|
|
|
|
case WEST:
|
|
f = this.getMinX();
|
|
f1 = this.getMaxX();
|
|
f2 = 0.0F;
|
|
break;
|
|
|
|
case EAST:
|
|
f = this.getMinX();
|
|
f1 = this.getMaxX();
|
|
f2 = 1.0F;
|
|
break;
|
|
|
|
default:
|
|
return false;
|
|
}
|
|
|
|
return f == f2 && f1 == f2;
|
|
}
|
|
|
|
public boolean isFullQuad(EnumFacing face) {
|
|
float f;
|
|
float f1;
|
|
float f2;
|
|
float f3;
|
|
|
|
switch (face) {
|
|
case DOWN:
|
|
case UP:
|
|
f = this.getMinX();
|
|
f1 = this.getMaxX();
|
|
f2 = this.getMinZ();
|
|
f3 = this.getMaxZ();
|
|
break;
|
|
|
|
case NORTH:
|
|
case SOUTH:
|
|
f = this.getMinX();
|
|
f1 = this.getMaxX();
|
|
f2 = this.getMinY();
|
|
f3 = this.getMaxY();
|
|
break;
|
|
|
|
case WEST:
|
|
case EAST:
|
|
f = this.getMinY();
|
|
f1 = this.getMaxY();
|
|
f2 = this.getMinZ();
|
|
f3 = this.getMaxZ();
|
|
break;
|
|
|
|
default:
|
|
return false;
|
|
}
|
|
|
|
return f == 0.0F && f1 == 1.0F && f2 == 0.0F && f3 == 1.0F;
|
|
}
|
|
}
|