org.jbox2d.testbed
Class TestbedMain

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Panel
              extended by java.applet.Applet
                  extended by processing.core.PApplet
                      extended by org.jbox2d.testbed.TestbedMain
All Implemented Interfaces:
java.awt.event.FocusListener, java.awt.event.KeyListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.lang.Runnable, java.util.EventListener, javax.accessibility.Accessible, processing.core.PConstants

public class TestbedMain
extends processing.core.PApplet

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class processing.core.PApplet
processing.core.PApplet.RegisteredMethods
 
Nested classes/interfaces inherited from class java.applet.Applet
java.applet.Applet.AccessibleApplet
 
Nested classes/interfaces inherited from class java.awt.Panel
java.awt.Panel.AccessibleAWTPanel
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected static AbstractExample currentTest
          Currently running example
protected static int currentTestIndex
          Index of current example in tests array.
 DebugDraw g
          Drawing handler to use.
protected static boolean handleOptions
          Is the options window open?
 TestbedOptions options
          Our options handler - displays GUI and sets TestSettings for currentTest.
 boolean shiftKey
          Is the shift key held?
protected static java.util.ArrayList<AbstractExample> tests
          The list of registered examples
 
Fields inherited from class processing.core.PApplet
args, ARGS_BGCOLOR, ARGS_DISPLAY, ARGS_EDITOR_LOCATION, ARGS_EXTERNAL, ARGS_HIDE_STOP, ARGS_LOCATION, ARGS_PRESENT, ARGS_SKETCH_FOLDER, ARGS_STOP_COLOR, DEFAULT_HEIGHT, DEFAULT_WIDTH, defaultSize, disposeMethods, dmouseX, dmouseY, drawMethods, emouseX, emouseY, exception, exit, EXTERNAL_MOVE, EXTERNAL_QUIT, EXTERNAL_STOP, finished, firstMouse, focused, frame, frameRate, frameRateLastDelayTime, frameRateLastMillis, frameRateTarget, height, javaVersion, javaVersionName, key, keyCode, keyEvent, keyEventMethods, keyPressed, LEECH_WAKEUP, leechErr, listenersAdded, loadImageFormats, looping, MIN_WINDOW_HEIGHT, MIN_WINDOW_WIDTH, mouseButton, mouseEvent, mouseEventMethods, mousePressed, mouseX, mouseY, online, pixels, platform, platformName, pmouseX, pmouseY, postMethods, preMethods, recorder, redraw, screen, sizeMethods, sketchPath, width
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface processing.core.PConstants
ADD, ALPHA, ALPHA_MASK, ALT, AMBIENT, ARGB, ARROW, BACKSPACE, BASELINE, BEVEL, BLEND, BLUE_MASK, BLUR, BOTTOM, BURN, CENTER, CENTER_RADIUS, CHATTER, CLOSE, CODED, COMPLAINT, CONTROL, CORNER, CORNERS, CROSS, CUSTOM, DARKEST, DEG_TO_RAD, DELETE, DIFFERENCE, DILATE, DIRECTIONAL, DISABLE_DEPTH_TEST, DISABLE_ERROR_REPORT, DISABLE_TEXT_SMOOTH, DODGE, DOWN, DXF, ENABLE_ACCURATE_TEXTURES, ENABLE_DEPTH_SORT, ENABLE_NATIVE_FONTS, ENTER, EPSILON, ERODE, ESC, EXCLUSION, GIF, GRAY, GREEN_MASK, HALF_PI, HAND, HARD_LIGHT, HINT_COUNT, HSB, IMAGE, INVERT, JAVA2D, JPEG, LEFT, LIGHTEST, LINES, LINUX, MACOS9, MACOSX, MITER, MODEL, MOVE, MULTIPLY, NO_FLYING_POO, NORMALIZED, OPAQUE, OPEN, OPENGL, ORTHOGRAPHIC, OTHER, OVERLAY, P2D, P3D, PDF, PERSPECTIVE, PI, PIXEL_CENTER, POINT, POINTS, POLYGON, POSTERIZE, PROBLEM, PROJECT, QUAD_STRIP, QUADS, QUARTER_PI, RAD_TO_DEG, RADIUS, RED_MASK, REPLACE, RETURN, RGB, RIGHT, ROUND, SCREEN, SHAPE, SHIFT, SOFT_LIGHT, SPOT, SQUARE, SUBTRACT, TAB, TARGA, TEXT, THIRD_PI, THRESHOLD, TIFF, TOP, TRIANGLE_FAN, TRIANGLE_STRIP, TRIANGLES, TWO_PI, UP, WAIT, WHITESPACE, WINDOWS
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
TestbedMain()
          Constructor - real initialization happens in setup() function
 
Method Summary
 void draw()
          This is the main looping function, and is called targetFPS times per second.
 void handleCanvasDrag()
          Allows the world to be dragged with a right-click.
 void keyPressed()
          Apply keyboard shortcuts, do keypress handling, and then send the key event to the current test if appropriate.
 void keyReleased()
          Handle keyReleased events and pass them on to currentTest.
static void main(java.lang.String[] args)
          Start PApplet as a Java program (can also be run as an applet).
 void mouseDragged()
          Dispatch mouseDragged events to the current test.
 void mouseMoved()
          Dispatch mouseMoved events to the current test.
 void mousePressed()
          Dispatch mousePressed events to the current test.
 void mouseReleased()
          Dispatch mouseReleased events to the current test.
static void registerExample(AbstractExample test)
          Register an AbstractExample to the current list of examples.
 void setup()
          Called once upon program initialization (by Processing).
 
Methods inherited from class processing.core.PApplet
abs, abs, acos, addListeners, alpha, ambient, ambient, ambient, ambientLight, ambientLight, append, append, append, append, append, append, applyMatrix, applyMatrix, arc, arraycopy, arraycopy, arraycopy, asin, atan, atan2, background, background, background, background, background, background, background, beginCamera, beginRaw, beginRaw, beginRecord, beginRecord, beginShape, beginShape, bezier, bezier, bezierDetail, bezierPoint, bezierTangent, bezierVertex, bezierVertex, binary, binary, binary, binary, blend, blend, blendColor, blue, box, box, breakShape, brightness, camera, camera, ceil, checkKeyEvent, checkMouseEvent, color, color, color, color, color, color, color, color, colorMode, colorMode, colorMode, colorMode, concat, concat, concat, concat, concat, concat, concat, constrain, constrain, copy, copy, cos, createFont, createFont, createFont, createGraphics, createGraphics, createGraphics, createImage, createPath, createReader, createReader, createReader, createWriter, createWriter, createWriter, cursor, cursor, cursor, cursor, curve, curve, curveDetail, curvePoint, curveTangent, curveTightness, curveVertex, curveVertex, dataPath, day, degrees, delay, dequeueKeyEvents, dequeueMouseEvents, destroy, die, die, directionalLight, displayable, dist, dist, ellipse, ellipseMode, emissive, emissive, emissive, endCamera, endRaw, endRecord, endShape, endShape, enqueueKeyEvent, enqueueMouseEvent, exec, exit, exp, expand, expand, expand, expand, expand, expand, expand, expand, expand, expand, expand, expand, expand, expand, fill, fill, fill, fill, fill, fill, filter, filter, floor, focusGained, focusGained, focusLost, focusLost, frameRate, frustum, get, get, get, getPreferredSize, green, gzipInput, gzipOutput, handleDisplay, handleKeyEvent, handleMouseEvent, hex, hex, hex, hex, hint, hour, hue, image, image, image, imageMode, init, inputFile, inputFile, inputFile, inputFile, insertFrame, join, join, keyPressed, keyReleased, keyTyped, keyTyped, lerp, lerpColor, lerpColor, lightFalloff, lights, lightSpecular, line, line, link, link, loadBytes, loadBytes, loadFont, loadImage, loadImage, loadImageIO, loadImageSync, loadImageTGA, loadMatrix, loadPixels, loadStrings, loadStrings, loadStrings, log, loop, mag, mag, map, mask, mask, max, max, max, max, max, max, millis, min, min, min, min, min, min, minute, modelX, modelY, modelZ, month, mouseClicked, mouseClicked, mouseDragged, mouseEntered, mouseExited, mouseMoved, mousePressed, mouseReleased, nf, nf, nf, nf, nfc, nfc, nfc, nfc, nfp, nfp, nfp, nfp, nfs, nfs, nfs, nfs, noCursor, noFill, noHint, noise, noise, noise, noiseDetail, noiseDetail, noiseSeed, noLoop, norm, normal, noSmooth, noStroke, noTint, open, open, openStream, openStream, openStreamGZ, openStreamGZ, ortho, ortho, outputFile, outputFile, outputFile, outputFile, paint, param, parseBoolean, parseBoolean, parseBoolean, parseBoolean, parseBoolean, parseByte, parseByte, parseByte, parseByte, parseByte, parseByte, parseByte, parseByte, parseByte, parseChar, parseChar, parseChar, parseChar, parseFloat, parseFloat, parseFloat, parseFloat, parseFloat, parseFloat, parseInt, parseInt, parseInt, parseInt, parseInt, parseInt, parseInt, parseInt, parseInt, parseInt, parseInt, parseInt, perspective, perspective, point, point, pointLight, popMatrix, pow, print, print, print, print, print, print, print, printCamera, println, println, println, println, println, println, println, println, printMatrix, printProjection, pushMatrix, quad, radians, random, random, randomSeed, rect, rectMode, red, redraw, registerDispose, registerDraw, registerKeyEvent, registerMouseEvent, registerNoArgs, registerPost, registerPre, registerSize, registerWithArgs, resetMatrix, reverse, reverse, reverse, reverse, reverse, reverse, reverse, rotate, rotate, rotateX, rotateY, rotateZ, round, run, saturation, save, saveBytes, saveBytes, saveBytes, saveFrame, saveFrame, savePath, saveStream, saveStream, saveStrings, saveStrings, saveStrings, scale, scale, scale, screenX, screenX, screenY, screenY, screenZ, second, set, set, setupExternalMessages, setupFrameResizeListener, shininess, shorten, shorten, shorten, shorten, shorten, shorten, shorten, sin, size, size, size, sketchPath, smooth, sort_compare, sort_internal, sort_partition, sort_swap, sort, sort, sort, sort, sort, sort, sort, sort, sort, sort, sort, specular, specular, specular, specular, specular, sphere, sphereDetail, splice, splice, splice, splice, splice, splice, splice, splice, splice, splice, splice, splice, splice, split, split, splitTokens, splitTokens, spotLight, sq, sqrt, start, status, stop, str, str, str, str, str, str, str, str, str, str, stroke, stroke, stroke, stroke, stroke, stroke, strokeCap, strokeJoin, strokeWeight, subset, subset, subset, subset, subset, subset, subset, subset, subset, subset, subset, subset, subset, subset, tan, text, text, text, text, text, text, text, text, text, text, text, text, textAlign, textAlign, textAscent, textDescent, textFont, textFont, textLeading, textMode, textSize, texture, textureMode, textWidth, textWidth, tint, tint, tint, tint, tint, tint, translate, translate, triangle, trim, trim, unbinary, unhex, update, updatePixels, updatePixels, updateSize, vertex, vertex, vertex, vertex, year
 
Methods inherited from class java.applet.Applet
getAccessibleContext, getAppletContext, getAppletInfo, getAudioClip, getAudioClip, getCodeBase, getDocumentBase, getImage, getImage, getLocale, getParameter, getParameterInfo, isActive, newAudioClip, play, play, resize, resize, setStub, showStatus
 
Methods inherited from class java.awt.Panel
addNotify
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getInsets, getLayout, getListeners, getMaximumSize, getMinimumSize, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, paramString, preferredSize, print, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, removeNotify, setComponentZOrder, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

tests

protected static java.util.ArrayList<AbstractExample> tests
The list of registered examples


currentTest

protected static AbstractExample currentTest
Currently running example


currentTestIndex

protected static int currentTestIndex
Index of current example in tests array. Assumes that the array structure does not change, though it's safe to add things on to the end.


handleOptions

protected static boolean handleOptions
Is the options window open?


shiftKey

public boolean shiftKey
Is the shift key held?


options

public TestbedOptions options
Our options handler - displays GUI and sets TestSettings for currentTest.


g

public DebugDraw g
Drawing handler to use.

Constructor Detail

TestbedMain

public TestbedMain()
Constructor - real initialization happens in setup() function

Method Detail

setup

public void setup()
Called once upon program initialization (by Processing). Here we set up graphics, set the framerate, register all the testbed examples, set up a mousewheel listener, and set up the frame rate timer.

Overrides:
setup in class processing.core.PApplet

draw

public void draw()
This is the main looping function, and is called targetFPS times per second. In the testbed, Processing takes care of the timing of these calls for us, but in your own game you will likely need to handle that yourself. This function also keeps detailed track of the current FPS and Vec2 creations for optimization purposes.

Overrides:
draw in class processing.core.PApplet

handleCanvasDrag

public void handleCanvasDrag()
Allows the world to be dragged with a right-click.


mousePressed

public void mousePressed()
Dispatch mousePressed events to the current test.

Overrides:
mousePressed in class processing.core.PApplet

mouseReleased

public void mouseReleased()
Dispatch mouseReleased events to the current test.

Overrides:
mouseReleased in class processing.core.PApplet

mouseMoved

public void mouseMoved()
Dispatch mouseMoved events to the current test.

Overrides:
mouseMoved in class processing.core.PApplet

mouseDragged

public void mouseDragged()
Dispatch mouseDragged events to the current test.

Overrides:
mouseDragged in class processing.core.PApplet

keyPressed

public void keyPressed()
Apply keyboard shortcuts, do keypress handling, and then send the key event to the current test if appropriate.

Overrides:
keyPressed in class processing.core.PApplet

keyReleased

public void keyReleased()
Handle keyReleased events and pass them on to currentTest.

Overrides:
keyReleased in class processing.core.PApplet

registerExample

public static void registerExample(AbstractExample test)
Register an AbstractExample to the current list of examples.


main

public static void main(java.lang.String[] args)
Start PApplet as a Java program (can also be run as an applet).