package projectzombie.model; import gl_engine.MathHelpers; import gl_engine.texture.TextureRef3D; import static org.lwjgl.opengl.GL33.*; import org.lwjgl.opengl.GL33; public abstract class Model { int vao, size; boolean loaded = false; private static final int SIZE = 9; private float[] verticies; public int getSize() { return size; } // px, py, pz, tx, ty protected abstract float[] getVerticies(); protected abstract TextureRef3D[] getTextures(); public float[] getLoadedVerticies() { return verticies; } public void bind() { if(loaded) { glBindVertexArray(vao); } else { verticies = this.getVerticies(); TextureRef3D[] refs = this.getTextures(); if(verticies.length % SIZE != 0 || refs.length * 3 != verticies.length / SIZE) { System.err.println("Invalid model"); System.exit(1); return; } size = verticies.length/SIZE; double k = 0.001; for(int i=0;i