package wecui.render.shapes;
import org.lwjgl.opengl.GL11;
import wecui.obfuscation.RenderObfuscation;
import wecui.render.LineColor;
import wecui.render.LineInfo;
import wecui.util.Vector3;
/**
* Draws a rectangular prism around 2 corners
*
* @author yetanotherx
* @author lahwran
*/
public class Render3DBox {
protected RenderObfuscation obf = RenderObfuscation.getInstance();
protected LineColor color;
protected Vector3 first;
protected Vector3 second;
public Render3DBox(LineColor color, Vector3 first, Vector3 second) {
this.color = color;
this.first = first;
this.second = second;
}
public void render() {
double x1 = first.getX();
double y1 = first.getY();
double z1 = first.getZ();
double x2 = second.getX();
double y2 = second.getY();
double z2 = second.getZ();
for (LineInfo tempColor : color.getColors()) {
tempColor.prepareRender();
// Draw bottom face
obf.startDrawing(GL11.GL_LINE_LOOP);
tempColor.prepareColor();
obf.addVertex(x1, y1, z1);
obf.addVertex(x2, y1, z1);
obf.addVertex(x2, y1, z2);
obf.addVertex(x1, y1, z2);
obf.finishDrawing();
// Draw top face
obf.startDrawing(GL11.GL_LINE_LOOP);
tempColor.prepareColor();
obf.addVertex(x1, y2, z1);
obf.addVertex(x2, y2, z1);
obf.addVertex(x2, y2, z2);
obf.addVertex(x1, y2, z2);
obf.finishDrawing();
// Draw join top and bottom faces
obf.startDrawing(GL11.GL_LINES);
tempColor.prepareColor();
obf.addVertex(x1, y1, z1);
obf.addVertex(x1, y2, z1);
obf.addVertex(x2, y1, z1);
obf.addVertex(x2, y2, z1);
obf.addVertex(x2, y1, z2);
obf.addVertex(x2, y2, z2);
obf.addVertex(x1, y1, z2);
obf.addVertex(x1, y2, z2);
obf.finishDrawing();
}
}
}