package com.javamarcher.geometry;
import com.javamarcher.ecs.component.Transform;
public class Quad {
private Transform transform = new Transform();
private final VertexData[] vertices;
// OpenGL expects to draw vertices in counter clockwise order by default
private final byte[] indices = {
0, 1, 2, // Left bottom triangle
2, 3, 0 // Right top triangle
};
public Quad() {
vertices = setupVertexData();
}
private VertexData[] setupVertexData() {
// The z-coordinate of the vertex positions is used as an index for the frustum rays
final VertexData v1 = new VertexData(); // Top Left
v1.setPosition(-1f, 1f, 0f);
v1.setColor(1f, 0f, 0f);
v1.setUV(0f, 0f);
final VertexData v2 = new VertexData(); // Bottom Left
v2.setPosition(-1f, -1f, 3f);
v2.setColor(0f, 1f, 0f);
v2.setUV(0f, 1f);
final VertexData v3 = new VertexData(); // Bottom Right
v3.setPosition(1f, -1f, 2f);
v3.setColor(0f, 0f, 1f);
v1.setUV(1f, 1f);
final VertexData v4 = new VertexData(); // Top Right
v4.setPosition(1f, 1f, 1f);
v4.setColor(1f, 1f, 1f);
v1.setUV(1f, 0f);
return new VertexData[] {v1, v2, v3, v4};
}
public Transform getTransform() {
return transform;
}
public VertexData[] getVertices() {
return vertices;
}
public byte[] getIndices() {
return indices;
}
}