package org.ege.gl; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.GL10; public class Material { private final float[] ambient = { 0.2f,0.2f,0.2f,0.2f }; private final float[] diffuse = { 1.0f,1.0f,1.0f,1.0f }; private final float[] specular = { 0.0f,0.0f,0.0f,0.0f }; public Material setAmbient(float r,float g,float b,float a){ ambient[0] = r; ambient[1] = g; ambient[2] = b; ambient[3] = a; return this; } public Material setAmbient(Color c){ ambient[0] = c.r; ambient[1] = c.g; ambient[2] = c.b; ambient[3] = c.a; return this; } public Material setDiffuse(float r,float g,float b,float a){ diffuse[0] = r; diffuse[1] = g; diffuse[2] = b; diffuse[3] = a; return this; } public Material setDiffuse(Color c){ diffuse[0] = c.r; diffuse[1] = c.g; diffuse[2] = c.b; diffuse[3] = c.a; return this; } public Material setSpecular(float r,float g,float b,float a){ specular[0] = r; specular[1] = g; specular[2] = b; specular[3] = a; return this; } public Material setSpecular(Color c){ specular[0] = c.r; specular[1] = c.g; specular[2] = c.b; specular[3] = c.a; return this; } public void enable(GL10 gl){ gl.glMaterialfv(GL10.GL_FRONT_AND_BACK, GL10.GL_AMBIENT, ambient, 0); gl.glMaterialfv(GL10.GL_FRONT_AND_BACK, GL10.GL_SPECULAR, specular, 0); gl.glMaterialfv(GL10.GL_FRONT_AND_BACK, GL10.GL_DIFFUSE, diffuse, 0); } public void enable(){ final GL10 gl = Gdx.graphics.getGL10(); gl.glMaterialfv(GL10.GL_FRONT_AND_BACK, GL10.GL_AMBIENT, ambient, 0); gl.glMaterialfv(GL10.GL_FRONT_AND_BACK, GL10.GL_SPECULAR, specular, 0); gl.glMaterialfv(GL10.GL_FRONT_AND_BACK, GL10.GL_DIFFUSE, diffuse, 0); } }