aboutsummaryrefslogtreecommitdiffstats
path: root/demos/RonsDemos/renormal.java
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2000-11-18 06:43:49 +0000
committerSven Gothel <[email protected]>2000-11-18 06:43:49 +0000
commit880653d31a8f1ff8384fdbc75b84934bceecfdb8 (patch)
treebdafb71416f176d2a4b73bf716c9dc3f13685a8b /demos/RonsDemos/renormal.java
Initial revision
Diffstat (limited to 'demos/RonsDemos/renormal.java')
-rw-r--r--demos/RonsDemos/renormal.java112
1 files changed, 112 insertions, 0 deletions
diff --git a/demos/RonsDemos/renormal.java b/demos/RonsDemos/renormal.java
new file mode 100644
index 0000000..783bf15
--- /dev/null
+++ b/demos/RonsDemos/renormal.java
@@ -0,0 +1,112 @@
+/**
+ * @(#) renormal.java
+ * @(#) author: Brian Paul (converted to Java by Ron Cemer)
+ */
+
+import java.applet.*;
+import java.awt.*;
+import java.awt.event.*;
+import java.lang.*;
+import java.util.*;
+import java.io.*;
+import java.util.*;
+
+import gl4java.GLContext;
+import gl4java.awt.GLAnimCanvas;
+import gl4java.applet.SimpleGLAnimApplet1;
+
+public class renormal extends SimpleGLAnimApplet1
+{
+ /* Initialize the applet */
+
+
+ public void init()
+ {
+ super.init();
+ Dimension d = getSize();
+ canvas = new renormalCanvas(d.width, d.height);
+ add("Center", canvas);
+ }
+
+
+ /* Local GLAnimCanvas extension class */
+
+
+ private class renormalCanvas extends GLAnimCanvas
+ {
+ private static final float M_PI = 3.14159265359f;
+ private float Phi = 0.0f;
+
+ public renormalCanvas(int w, int h)
+ {
+ super(w, h);
+ GLContext.gljNativeDebug = false;
+ GLContext.gljClassDebug = false;
+ setAnimateFps(30.0);
+ }
+
+ public void preInit()
+ {
+ doubleBuffer = true;
+ stereoView = false;
+ }
+
+ public void init()
+ {
+ System.out.println("init(): " + this);
+ reshape(getSize().width, getSize().height);
+
+ float mat[] = { 0.8f, 0.8f, 0.0f, 1.0f };
+ float pos[] = { -1.0f, 1.0f, 1.0f, 0.0f };
+
+ /* setup lighting, etc */
+ gl.glEnable(GL_LIGHTING);
+ gl.glEnable(GL_LIGHT0);
+ gl.glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, mat);
+ gl.glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ gl.glEnable(GL_CULL_FACE);
+ gl.glEnable(GL_NORMALIZE);
+
+ glj.gljCheckGL();
+ }
+
+ public void reshape(int width, int height)
+ {
+ gl.glViewport(0,0,width,height);
+ gl.glMatrixMode(GL_PROJECTION);
+ gl.glLoadIdentity();
+ gl.glFrustum(-1.0f, 1.0f, -1.0f, 1.0f, 5.0f, 25.0f);
+ gl.glMatrixMode(GL_MODELVIEW);
+ gl.glLoadIdentity();
+ gl.glTranslatef(0.0f, 0.0f, -15.0f);
+ }
+
+ public void display()
+ {
+ if (glj.gljMakeCurrent() == false) return;
+
+ Phi += 0.05f;
+ while (Phi >= (M_PI*2.0f)) Phi -= (M_PI*2.0f);
+
+ float scale = 0.6f + (0.5f * (float)Math.sin(Phi));
+ gl.glClear(GL_COLOR_BUFFER_BIT);
+ gl.glPushMatrix();
+ gl.glScalef(scale, scale, scale);
+
+ int qobj = glu.gluNewQuadric();
+ glu.gluQuadricOrientation(qobj,GLU_OUTSIDE);
+ glu.gluQuadricNormals(qobj,GLU_SMOOTH);
+ glu.gluQuadricTexture(qobj,false);
+ glu.gluSphere(qobj,2.0f,40,40);
+ glu.gluDeleteQuadric(qobj);
+
+ gl.glPopMatrix();
+
+ glj.gljSwap();
+ glj.gljCheckGL();
+ glj.gljFree();
+
+ //if (!isSuspended()) repaint(); // Animate at full speed.
+ }
+ }
+}