package net.sf.openrocket.gui.figure3d.photo.sky;
import java.net.URL;
import javax.media.opengl.GL;
import javax.media.opengl.GL2;
import javax.media.opengl.fixedfunc.GLMatrixFunc;
import net.sf.openrocket.gui.figure3d.TextureCache;
import com.jogamp.opengl.util.texture.Texture;
public class SkyPhoto extends Sky {
private final URL imageURL;
public SkyPhoto(final URL imageURL) {
this.imageURL = imageURL;
}
@Override
public void draw(GL2 gl, final TextureCache cache) {
gl.glMatrixMode(GLMatrixFunc.GL_PROJECTION);
gl.glPushMatrix();
gl.glLoadIdentity();
gl.glMatrixMode(GLMatrixFunc.GL_MODELVIEW);
gl.glPushMatrix();
gl.glLoadIdentity();
gl.glScaled(1, 1, -1);
Texture sky = cache.getTexture(imageURL);
gl.glColor3d(1, 1, 1);
sky.bind(gl);
sky.enable(gl);
gl.glBegin(GL.GL_TRIANGLE_STRIP);
gl.glNormal3f(0, 0, -1);
gl.glTexCoord2f(1, 1);
gl.glVertex3f(-1, -1, 1);
gl.glTexCoord2f(0, 1);
gl.glVertex3f(1, -1, 1);
gl.glTexCoord2f(1, 0);
gl.glVertex3f(-1, 1, 1);
gl.glTexCoord2f(0, 0);
gl.glVertex3f(1, 1, 1);
gl.glEnd();
sky.disable(gl);
gl.glMatrixMode(GLMatrixFunc.GL_PROJECTION);
gl.glPopMatrix();
gl.glMatrixMode(GLMatrixFunc.GL_MODELVIEW);
gl.glPopMatrix();
}
}