package de.gamezock.metacraft.data; import javax.vecmath.Point3f; import javax.vecmath.Vector3f; public class IndexedTriangle { private VertexBuffer buffer; private int[] indices; private Vector3f normal; public IndexedTriangle(VertexBuffer buffer, int v1, int v2, int v3) { this.buffer = buffer; indices = new int[3]; indices[0] = v1; indices[1] = v2; indices[2] = v3; Vector3f edge1 = new Vector3f(), edge2 = new Vector3f(); Point3f p1 = buffer.getVertex(v1), p2 = buffer.getVertex(v2), p3 = buffer.getVertex(v3); edge1.sub(p1, p2); edge2.sub(p3, p2); normal = new Vector3f(); normal.cross(edge1, edge2); normal.normalize(); } public VertexBuffer getBuffer() { return buffer; } public int getIndex(int i) { return indices[i]; } public Point3f getVertex(int i) { return buffer.getVertex(indices[i]); } public Vector3f getVertexNormal(int i) { return buffer.getNormal(indices[i]); } public Vector3f getNormal() { return normal; } }