package de.swagner.ld22; import com.badlogic.gdx.math.Matrix4; import com.badlogic.gdx.math.Vector3; public class Renderable implements Comparable<Renderable> { public Vector3 position = new Vector3(); public Vector3 collisionPosition = new Vector3(); public float sortPosition; public float scale; public float angleX; public float angleY; private Matrix4 tmp = new Matrix4(); public Matrix4 model = new Matrix4(); public Matrix4 normal = new Matrix4(); @Override public int compareTo(Renderable o) { if(!(o instanceof Renderable)) return -1; if((o).sortPosition<this.sortPosition) return -1; return 1; } public void calculateMatrix() { tmp.idt(); model.idt(); tmp.setToTranslation(position.x, position.y, position.z); model.mul(tmp); tmp.setToScaling(scale, scale, scale); model.mul(tmp); tmp.setToRotation(Vector3.X, angleX); model.mul(tmp); tmp.setToRotation(Vector3.Y, angleY); model.mul(tmp); model.getTranslation(collisionPosition); collisionPosition.y = 0; normal.set(model.cpy().toNormalMatrix()); } }