package de.wb3player.fileaccess.output.drawstyle.jogl; import javax.media.opengl.GL; import javax.media.opengl.GL2; import javax.media.opengl.glu.GLU; import javax.vecmath.Color3f; import de.wb3player.fileaccess.output.drawstyle.DrawableMethods; import de.wb3player.logger.LoggerFactory; import de.wb3player.logger.LoggerInterface; import de.wb3player.model.exception.DrawableMethodsException; public abstract class AbstractJoglDrawableMethods implements DrawableMethods { protected static LoggerInterface logger = LoggerFactory.getLoggerInstance(AbstractJoglDrawableMethods.class); protected float mat[] = new float[4]; protected GL2 gl; protected GLU glu; protected String name = "AbstractJoglDrawableMethods"; protected String description = "AbstractJoglDrawableMethods: methods for drawing WB3 objects in JOGL"; public AbstractJoglDrawableMethods() { logger.debug("Constructor called"); } public void setGL(GL2 gl, GLU glu) { this.gl = gl; this.glu = glu; } @Override public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } @Override public abstract void draw(Object object) throws DrawableMethodsException; public void setMaterial(GL2 gl, Color3f color, float alpha) { mat[0] = color.x; mat[1] = color.y; mat[2] = color.z; mat[3] = alpha; float mat_diffuse[] = {0.1f, 0.1f, 0.1f, 0.0f}; float mat_specular[] = {0.7f, 0.7f, 0.7f, 0.7f}; float mat_shininess = 50f; float mat_emission[] = {0.1f, 0.1f, 0.1f, 0.1f}; gl.glMaterialfv( GL.GL_FRONT_AND_BACK, GL2.GL_AMBIENT, mat,0 ); gl.glMaterialfv( GL.GL_FRONT_AND_BACK, GL2.GL_DIFFUSE, mat_diffuse,0 ); gl.glMaterialfv( GL.GL_FRONT_AND_BACK, GL2.GL_SPECULAR, mat_specular,0 ); gl.glMaterialf( GL.GL_FRONT_AND_BACK, GL2.GL_SHININESS, mat_shininess ); gl.glMaterialfv( GL.GL_FRONT_AND_BACK, GL2.GL_EMISSION, mat_emission,0 ); } public void setMaterial(GL2 gl, Color3f color) { setMaterial(gl, color, 1.0f); } }