commit 11aacd94889e8c51d93e09f608673539a2b95b15 Author: Brendan Date: Thu May 7 20:57:35 2015 -0600 Initial Commit diff --git a/Display3D.java b/Display3D.java new file mode 100644 index 0000000..4d305f5 --- /dev/null +++ b/Display3D.java @@ -0,0 +1,134 @@ +import javax.swing.*; +import javax.swing.event.*; +import java.awt.*; +import processing.core.*; +import java.lang.Math; + +class Display3D extends PApplet { + private final int BACKGROUND_COLOR; + private final int xDim, yDim; + + public float yaw = 0; + public float pitch = 0; + public float roll = 0; + public double camAngle = 0.75; + + //////////////////////// + ///// Constructors ///// + //////////////////////// + + /** + * No-args constructor + */ + public Display3D() { + xDim = 480; + yDim = 480; + BACKGROUND_COLOR = 0; + } + + /** + * @param w - width + * @param h - height + */ + public Display3D( int w, int h ) { + xDim = w; + yDim = h; + BACKGROUND_COLOR = 0; + } + + /** + * @param bkgnd - background color + */ + public Display3D( int bkgnd ) { + xDim = 480; + yDim = 480; + BACKGROUND_COLOR = bkgnd; + } + + /** + * @param w - width + * @param h - height + * @param bkgnd - background color + */ + public Display3D( int w, int h, int bkgnd ) { + xDim = w; + yDim = h; + BACKGROUND_COLOR = bkgnd; + } + + //////////////////////// + ///// Draw methods ///// + //////////////////////// + + public void drawObject() { + noFill(); + stroke( 255 ); + box( xDim / 5, xDim / 3, xDim / 20 ); + } + + /////////////////////////// + ///// PApplet methods ///// + /////////////////////////// + + public void setup() { + size( xDim, yDim, P3D ); + background( BACKGROUND_COLOR ); + + camera( (float)0.0, (float)( -xDim * Math.sin( camAngle )), (float)( xDim * Math.cos( camAngle ) ), + (float)0.0, (float)0.0, (float)0.0, + (float)0.0, (float)1.0, (float)0.0 ); + } + + public void draw() { + background( BACKGROUND_COLOR ); + + // draw image + rotateZ( yaw ); + rotateX( pitch ); + rotateY( roll ); + drawObject(); + + if( keyPressed ) { + if( keyCode == LEFT ) + roll -= 0.02; + else if( keyCode == RIGHT ) + roll += 0.02; + else if( keyCode == UP ) + pitch -= 0.02; + else if( keyCode == DOWN ) + pitch += 0.02; + else if( key == 'a' ) + yaw -= 0.02; + else if( key == 'd' ) + yaw += 0.02; + } + + // set camera + + camera( (float)0.0, (float)( xDim * Math.sin( camAngle )), (float)( xDim * Math.cos( camAngle ) ), // camera position + (float)0.0, (float)0.0, (float)0.0, // center + (float)0.0, (float)1.0, (float)0.0 ); // up axis + } +} + + +class tester { + public static void main(String[] args) { + JFrame frame = new JFrame( "tester" ); + frame.setResizable( true ); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + + Display3D thing = new DisplayQuad( 80 ); + frame.add( thing ); + thing.init(); + while (thing.defaultSize&&!thing.finished) + try {Thread.sleep(5);} catch (Exception e) {} + + frame.pack(); + frame.setVisible( true ); + while( true ) { + System.out.printf( "\rFrames: %8d\tRate: %8f", thing.frameCount, thing.frameRate ); + try{Thread.sleep(10);}catch(Exception ex){} + } + } +} diff --git a/DisplayQuad.java b/DisplayQuad.java new file mode 100644 index 0000000..e42c46b --- /dev/null +++ b/DisplayQuad.java @@ -0,0 +1,115 @@ +class DisplayQuad extends Display3D { + + public DisplayQuad() { + super(); + } + + public DisplayQuad( int bkgnd) { + super( bkgnd ); + } + + /** + * + */ + public void drawObject() { + int s = 1; + noFill(); + + beginShape(); + stroke( 250 ); + vertex( s*25, 0, 0 ); + vertex( s*100, s*75, 0 ); + vertex( s*100, s*85, 0 ); + + // leg + vertex( s*100, s*85, 0 ); + vertex( s*100, s*85, -s*15 ); + vertex( s*100, s*75, -s*10 ); + vertex( s*100, s*75, 0 ); + vertex( s*100, s*85, 0 ); + vertex( s*100, s*85, -s*15 ); + vertex( s*90, s*85, 0 ); + vertex( s*100, s*85, -s*15 ); + vertex( s*90, s*85, -s*10 ); + vertex( s*90, s*85, 0 ); + vertex( s*100, s*85, 0 ); + + // arm + vertex( s*100, s*85, 0 ); + vertex( s*90, s*85, 0 ); + vertex( 0, s*25, 0 ); + vertex( -s*90, s*85, 0 ); + vertex( -s*100, s*85, 0 ); + + // leg + vertex( -s*100, s*85, 0 ); + vertex( -s*100, s*85, -s*15 ); + vertex( -s*100, s*75, -s*10 ); + vertex( -s*100, s*75, 0 ); + vertex( -s*100, s*85, 0 ); + vertex( -s*100, s*85, -s*15 ); + vertex( -s*90, s*85, 0 ); + vertex( -s*100, s*85, -s*15 ); + vertex( -s*90, s*85, -s*10 ); + vertex( -s*90, s*85, 0 ); + vertex( -s*100, s*85, 0 ); + + // arm + vertex( -s*100, s*85, 0 ); + vertex( -s*100, s*75, 0 ); + vertex( -s*25, 0, 0 ); + + stroke( 255, 0, 0 ); + + vertex( -s*25, 0, 0 ); + vertex( -s*100, -s*75, 0 ); + vertex( -s*100, -s*85, 0 ); + + // leg + vertex( -s*100, -s*85, 0 ); + vertex( -s*100, -s*85, -s*15 ); + vertex( -s*100, -s*75, -s*10 ); + vertex( -s*100, -s*75, 0 ); + vertex( -s*100, -s*85, 0 ); + vertex( -s*100, -s*85, -s*15 ); + vertex( -s*90, -s*85, 0 ); + vertex( -s*100, -s*85, -s*15 ); + vertex( -s*90, -s*85, -s*10 ); + vertex( -s*90, -s*85, 0 ); + vertex( -s*100, -s*85, 0 ); + + // arm + vertex( -s*100, -s*85, 0 ); + vertex( -s*90, -s*85, 0 ); + vertex( 0, -s*25, 0 ); + vertex( s*90, -s*85, 0 ); + vertex( s*100, -s*85, 0 ); + + // leg + vertex( s*100, -s*85, 0 ); + vertex( s*100, -s*85, -s*15 ); + vertex( s*100, -s*75, -s*10 ); + vertex( s*100, -s*75, 0 ); + vertex( s*100, -s*85, 0 ); + vertex( s*100, -s*85, -s*15 ); + vertex( s*90, -s*85, 0 ); + vertex( s*100, -s*85, -s*15 ); + vertex( s*90, -s*85, -s*10 ); + vertex( s*90, -s*85, 0 ); + vertex( s*100, -s*85, 0 ); + + // arm + vertex( s*100, -s*85, 0 ); + vertex( s*100, -s*75, 0 ); + vertex( s*25, 0, 0 ); + endShape(); + + // sphere + pushMatrix(); + rotateX((float)(Math.PI/2)); + noFill(); + stroke(100); + sphere(280); + popMatrix(); + } +} \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..b8945a1 --- /dev/null +++ b/Makefile @@ -0,0 +1,11 @@ +all: build run + +build: newVersion_build + +run: run_tester + +newVersion_build: + javac -cp '.:core.jar:gluegen-rt.jar:jogl-all.jar:gluegen-rt-natives-macosx-universal.jar:jogl-all-natives-macosx-universal.jar' Display3D.java DisplayQuad.java + +run_tester: + java -cp '.:core.jar:gluegen-rt.jar:jogl-all.jar:gluegen-rt-natives-macosx-universal.jar:jogl-all-natives-macosx-universal.jar' tester \ No newline at end of file diff --git a/core.jar b/core.jar new file mode 100644 index 0000000..115971a Binary files /dev/null and b/core.jar differ diff --git a/gluegen-rt-natives-macosx-universal.jar b/gluegen-rt-natives-macosx-universal.jar new file mode 100644 index 0000000..1307317 Binary files /dev/null and b/gluegen-rt-natives-macosx-universal.jar differ diff --git a/gluegen-rt.jar b/gluegen-rt.jar new file mode 100644 index 0000000..c20455e Binary files /dev/null and b/gluegen-rt.jar differ diff --git a/jogl-all-natives-macosx-universal.jar b/jogl-all-natives-macosx-universal.jar new file mode 100644 index 0000000..35f72f5 Binary files /dev/null and b/jogl-all-natives-macosx-universal.jar differ diff --git a/jogl-all.jar b/jogl-all.jar new file mode 100644 index 0000000..1d048da Binary files /dev/null and b/jogl-all.jar differ