package codechicken.lib.render; import codechicken.lib.render.uv.UV; import codechicken.lib.render.uv.UVTransformation; import codechicken.lib.util.Copyable; import codechicken.lib.vec.Transformation; import codechicken.lib.vec.Vector3; import java.math.BigDecimal; import java.math.MathContext; import java.math.RoundingMode; public class Vertex5 implements Copyable<Vertex5> { public Vector3 vec; public UV uv; public Vertex5() { this(new Vector3(), new UV()); } public Vertex5(Vector3 vert, UV uv) { this.vec = vert; this.uv = uv; } public Vertex5(Vector3 vert, double u, double v) { this(vert, new UV(u, v)); } public Vertex5(double x, double y, double z, double u, double v) { this(x, y, z, u, v, 0); } public Vertex5(double x, double y, double z, double u, double v, int tex) { this(new Vector3(x, y, z), new UV(u, v, tex)); } public Vertex5 set(double x, double y, double z, double u, double v) { vec.set(x, y, z); uv.set(u, v); return this; } public Vertex5 set(double x, double y, double z, double u, double v, int tex) { vec.set(x, y, z); uv.set(u, v, tex); return this; } public Vertex5 set(Vertex5 vert) { vec.set(vert.vec); uv.set(vert.uv); return this; } public Vertex5(Vertex5 vertex5) { this(vertex5.vec.copy(), vertex5.uv.copy()); } public Vertex5 copy() { return new Vertex5(this); } public String toString() { MathContext cont = new MathContext(4, RoundingMode.HALF_UP); return "Vertex: (" + new BigDecimal(vec.x, cont) + ", " + new BigDecimal(vec.y, cont) + ", " + new BigDecimal(vec.z, cont) + ") " + "(" + new BigDecimal(uv.u, cont) + ", " + new BigDecimal(uv.v, cont) + ") (" + uv.tex + ")"; } public Vertex5 apply(Transformation t) { vec.apply(t); return this; } public Vertex5 apply(UVTransformation t) { uv.apply(t); return this; } }