diff options
Diffstat (limited to 'examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/FogTab.java')
-rw-r--r-- | examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/FogTab.java | 254 |
1 files changed, 0 insertions, 254 deletions
diff --git a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/FogTab.java b/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/FogTab.java deleted file mode 100644 index 9320d59530..0000000000 --- a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/FogTab.java +++ /dev/null @@ -1,254 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.opengl.examples; - - -import org.eclipse.opengl.*; -import org.eclipse.swt.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.widgets.*; - -class FogTab extends OpenGLTab { - - private float rotY = 0.0f; - private float yPos = 0.0f, xPos = 0.0f, zPos = -15.0f; - private int cubeListIndexBase; - private final static int[] FOG_TYPES = { GL.GL_LINEAR, GL.GL_EXP, GL.GL_EXP2 }; - private final static String[] FOG_NAMES = { "LINEAR", "GL_EXP", "GL_EXP2" }; - private final static int SLEEP_LENGTH = 0; - - /** - * @see OpenGLTab#createControls(Composite) - */ - void createControls(Composite composite) { - Group movementGroup = new Group(composite, SWT.NONE); - movementGroup.setText("Translation"); - movementGroup.setLayout(new GridLayout(2, false)); - - new Label(movementGroup, SWT.NONE).setText("X:"); - final Slider xMove = new Slider(movementGroup, SWT.NONE); - xMove.setIncrement(1); - xMove.setMaximum(12); - xMove.setMinimum(0); - xMove.setThumb(2); - xMove.setPageIncrement(2); - xMove.setSelection(5); - xMove.addListener(SWT.Selection, new Listener() { - public void handleEvent(Event e) { - xPos = xMove.getSelection() - 5; - } - }); - - new Label(movementGroup, SWT.NONE).setText("Y:"); - final Slider yMove = new Slider(movementGroup, SWT.NONE); - yMove.setIncrement(1); - yMove.setMaximum(12); - yMove.setMinimum(0); - yMove.setThumb(2); - yMove.setPageIncrement(2); - yMove.setSelection(5); - yMove.addListener(SWT.Selection, new Listener() { - public void handleEvent(Event e) { - yPos = yMove.getSelection() - 5; - } - }); - - new Label(movementGroup, SWT.NONE).setText("Z:"); - final Slider zMove = new Slider(movementGroup, SWT.NONE); - zMove.setIncrement(1); - zMove.setMaximum(24); - zMove.setMinimum(0); - zMove.setThumb(4); - zMove.setPageIncrement(2); - zMove.setSelection(10); - zMove.addListener(SWT.Selection, new Listener() { - public void handleEvent(Event e) { - zPos = zMove.getSelection() - 25; - } - }); - - Composite fogTypesGroup = new Composite(composite,SWT.NONE); - GridLayout layout = new GridLayout(2,false); - layout.marginHeight = 0; - layout.marginWidth = 0; - fogTypesGroup.setLayout(layout); - fogTypesGroup.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL)); - - new Label(fogTypesGroup, SWT.NONE).setText("Fog Types:"); - final Combo fogTypeCombo = new Combo(fogTypesGroup, SWT.READ_ONLY); - GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL); - data.grabExcessHorizontalSpace = true; - fogTypeCombo.setLayoutData(data); - fogTypeCombo.setItems(FOG_NAMES); - fogTypeCombo.select(0); - - new Label(composite, SWT.NONE).setText("Fog Density:"); - final Slider fogDensitySlider = new Slider(composite, SWT.NONE); - fogDensitySlider.setIncrement(1); - fogDensitySlider.setMaximum(32); - fogDensitySlider.setMinimum(0); - fogDensitySlider.setThumb(2); - fogDensitySlider.setPageIncrement(5); - fogDensitySlider.setSelection(0); - fogDensitySlider.setEnabled(false); - fogDensitySlider.addListener(SWT.Selection, new Listener() { - public void handleEvent(Event e) { - float fogDensity = ((float)fogDensitySlider.getSelection()) / 100; - GL.glFogf(GL.GL_FOG_DENSITY, fogDensity); - } - }); - fogTypeCombo.addListener(SWT.Selection, new Listener() { - public void handleEvent(Event e) { - int currentSelection = fogTypeCombo.getSelectionIndex(); - // fog type GL.GL_LINEAR does not utilize fogDensity, but the other fog types do - fogDensitySlider.setEnabled(currentSelection != 0); - GL.glFogf(GL.GL_FOG_MODE, FOG_TYPES[currentSelection]); - } - }); - } - - /** - * Creates a cube at 0,0 in the viewport. - */ - void createCube() { - GL.glNewList(cubeListIndexBase, GL.GL_COMPILE); - GL.glBegin(GL.GL_QUADS); - // front - GL.glColor3f(0.0f, 1.0f, 0.0f); - GL.glVertex3f(-0.5f, -0.5f, 0.5f); // bottom left - GL.glColor3f(0.0f, 0.0f, 1.0f); - GL.glVertex3f(0.5f, -0.5f, 0.5f); // bottom right - GL.glColor3f(1.0f, 1.0f, 0.0f); - GL.glVertex3f(0.5f, 0.5f, 0.5f); // top right - GL.glColor3f(1.0f, 0.0f, 0.0f); - GL.glVertex3f(-0.5f, 0.5f, 0.5f); // top left - // back - GL.glColor3f(0.0f, 0.0f, 1.0f); - GL.glVertex3f(-0.5f, -0.5f, -0.5f); // bottom left - GL.glColor3f(0.0f, 1.0f, 0.0f); - GL.glVertex3f(0.5f, -0.5f, -0.5f); // bottom right - GL.glColor3f(1.0f, 0.0f, 0.0f); - GL.glVertex3f(0.5f, 0.5f, -0.5f); // top right - GL.glColor3f(1.0f, 1.0f, 0.0f); - GL.glVertex3f(-0.5f, 0.5f, -0.5f); // top left - // left - GL.glColor3f(0.0f, 0.0f, 1.0f); - GL.glVertex3f(-0.5f, -0.5f, -0.5f); // bottom left - GL.glColor3f(0.0f, 1.0f, 0.0f); - GL.glVertex3f(-0.5f, -0.5f, 0.5f); // bottom right - GL.glColor3f(1.0f, 0.0f, 0.0f); - GL.glVertex3f(-0.5f, 0.5f, 0.5f); // top right - GL.glColor3f(1.0f, 1.0f, 0.0f); - GL.glVertex3f(-0.5f, 0.5f, -0.5f); // top left - // right - GL.glColor3f(0.0f, 0.0f, 1.0f); - GL.glVertex3f(0.5f, -0.5f, 0.5f); // bottom left - GL.glColor3f(0.0f, 1.0f, 0.0f); - GL.glVertex3f(0.5f, -0.5f, -0.5f); // bottom right - GL.glColor3f(1.0f, 0.0f, 0.0f); - GL.glVertex3f(0.5f, 0.5f, -0.5f); // top right - GL.glColor3f(1.0f, 1.0f, 0.0f); - GL.glVertex3f(0.5f, 0.5f, 0.5f); // top left - // top - GL.glColor3f(1.0f, 0.0f, 0.0f); - GL.glVertex3f(0.5f, 0.5f, -0.5f); - GL.glColor3f(1.0f, 1.0f, 0.0f); - GL.glVertex3f(-0.5f, 0.5f, -0.5f); - GL.glColor3f(1.0f, 0.0f, 0.0f); - GL.glVertex3f(-0.5f, 0.5f, 0.5f); - GL.glColor3f(1.0f, 1.0f, 0.0f); - GL.glVertex3f(0.5f, 0.5f, 0.5f); - // bottom - GL.glColor3f(0.0f, 0.0f, 1.0f); - GL.glVertex3f(0.5f, -0.5f, 0.5f); - GL.glColor3f(0.0f, 1.0f, 0.0f); - GL.glVertex3f(-0.5f, -0.5f, 0.5f); - GL.glColor3f(0.0f, 0.0f, 1.0f); - GL.glVertex3f(-0.5f, -0.5f, -0.5f); - GL.glColor3f(0.0f, 1.0f, 0.0f); - GL.glVertex3f(0.5f, -0.5f, -0.5f); - GL.glEnd(); - GL.glEndList(); - } - - /** - * @see OpenGLTab#dispose() - */ - void dispose() { - super.dispose(); - GL.glDeleteLists(cubeListIndexBase, 1); - } - - /** - * @see OpenGLTab#getSleepLength() - */ - int getSleepLength() { - return SLEEP_LENGTH; - } - /** - * @see OpenGLTab#getTabText() - */ - String getTabText() { - return "Fog"; - } - - /** - * @see OpenGLTab#init() - */ - void init() { - GL.glClearColor(1.0f, 1.0f, 1.0f, 1.0f); - // fog color should be the same as the clear color - // to look appropriate - float[] fogColor = { 1.0f, 1.0f, 1.0f, 1.0f }; - GL.glFogfv(GL.GL_FOG_COLOR, fogColor); - GL.glHint(GL.GL_FOG_HINT, GL.GL_DONT_CARE); - GL.glFogf(GL.GL_FOG_START, 0); - GL.glFogf(GL.GL_FOG_DENSITY, 0.0f); - // set the end of the start distance; anything > 15 - // units from the camera will be covered in fog - GL.glFogf(GL.GL_FOG_END, 15); - GL.glFogf(GL.GL_FOG_MODE, FOG_TYPES[0]); - GL.glEnable(GL.GL_FOG); - GL.glEnable(GL.GL_DEPTH_TEST); - - cubeListIndexBase = GL.glGenLists(1); - createCube(); - } - - /** - * @see OpenGLTab#renderScene() - */ - void renderScene() { - GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); - GL.glLoadIdentity(); - GL.glTranslatef(xPos, yPos, zPos); - GL.glRotatef(rotY, 0.0f, 1.0f, 0.0f); - - GL.glCallList(cubeListIndexBase); - - GL.glPushMatrix(); - GL.glTranslatef(3, 0, -3); - GL.glCallList(cubeListIndexBase); - GL.glPopMatrix(); - - GL.glPushMatrix(); - GL.glTranslatef(-3, 0, -3); - GL.glCallList(cubeListIndexBase); - GL.glPopMatrix(); - - GL.glPushMatrix(); - GL.glTranslatef(0, 0, 4); - GL.glCallList(cubeListIndexBase); - GL.glPopMatrix(); - - rotY += 0.6f; - } -} |