|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--java.awt.Component | +--java.awt.Container | +--javax.swing.JComponent | +--javax.swing.JPanel | +--render.RenderJPanel
Provides an applet interface to the Renderer
.
It also implements control features dealing with mouse and keyboard interaction.
Extend this class to create an interactive web applet.
Renderer
,
Serialized FormNested Class Summary | |
protected class |
RenderJPanel.KeyHandler
|
protected class |
RenderJPanel.MouseHandler
|
Field Summary | |
protected double |
currentTime
Holds current system time. |
protected double |
elapsed
Measures time elapsed from initialization. |
boolean |
enableLod
Enables level of detail computation for meshes. |
protected double |
frameRate
Contains current frame rate of the renderer |
protected int |
H
Image height |
protected java.awt.Image |
im
Image framebuffer |
protected boolean |
isDamage
Flag to force a renderer refresh when true. |
protected int |
mx
Current mouse position |
protected int |
my
Current mouse position |
double |
phi
Euler angle for camera positioning (vertical view rotation). |
Renderer |
renderer
Renderer object |
boolean |
showFPS
Flag that determines whether to display current frame rate. |
protected double |
startTime
Holds actual time of initialization. |
double |
theta
Euler angle for camera positioning (horizontal view rotation). |
protected int |
W
Image width |
Geometry |
world
root of the scene Geometry |
Fields inherited from class javax.swing.JComponent |
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW |
Fields inherited from class java.awt.Component |
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT |
Fields inherited from interface java.awt.image.ImageObserver |
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
Constructor Summary | |
RenderJPanel()
|
Method Summary | |
void |
addLight(double x,
double y,
double z,
double r,
double g,
double b)
Adds light source with direction (x, y, z) & color (r, g, b). |
void |
animate(double time)
Override this to animate. |
void |
damage()
Forces a refresh of the renderer. |
void |
identity()
Sets current matrix to the identity matrix. |
void |
init()
Initializes the applet and internal variables. |
void |
initialize()
Override this to initialize the application program. |
Matrix |
m()
Returns the matrix at the top of the stack. |
void |
paintComponent(java.awt.Graphics g)
Updates the image buffer to output device. |
void |
pop()
Pops the top matrix from the stack. |
int |
pull(Geometry s,
double x0,
double x1,
double x2,
double y0,
double y1,
double y2,
double z0,
double z1,
double z2)
Deforms a geometric shape according to the beginning, middle, and end parameters in each dimension. |
void |
push()
Pushes a copy of the top matrix onto the stack. |
void |
renderFrame()
|
void |
rotateX(double t)
Rotates the top matrix around the X axis by angle t (radians). |
void |
rotateY(double t)
Rotates the top matrix around the Y axis by angle t (radians). |
void |
rotateZ(double t)
Rotates the top matrix around the Z axis by angle t (radians). |
void |
run()
Renderer thread. |
void |
scale(double x,
double y,
double z)
Scales the top matrix by x, y, z in their respective dimensions. |
void |
setBgColor(double r,
double g,
double b)
Sets the background color ( RGB values range: 0..1). |
void |
setFL(double value)
Sets the camera's focal length. |
void |
setFOV(double value)
Sets the field of view value. |
void |
setOpaque(boolean opaque)
|
void |
start()
Starts the renderer thread. |
void |
stop()
Stops the renderer thread. |
void |
transform(Geometry s)
Applies the top transformation matrix to Geometry s. |
void |
translate(double[] v)
Translates the top matrix by vector v. |
void |
translate(double x,
double y,
double z)
Translates the top matrix by x, y, z. |
Methods inherited from class javax.swing.JPanel |
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI |
Methods inherited from class javax.swing.JComponent |
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update |
Methods inherited from class java.awt.Container |
add, add, add, add, add, addContainerListener, addImpl, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, 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, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, 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 |
public Renderer renderer
Renderer
object
public Geometry world
Geometry
public boolean showFPS
public boolean enableLod
public double theta
public double phi
protected int mx
protected int my
protected int W
protected int H
protected java.awt.Image im
protected boolean isDamage
protected double startTime
protected double currentTime
protected double elapsed
protected double frameRate
Constructor Detail |
public RenderJPanel()
Method Detail |
public void animate(double time)
time
- system timepublic void damage()
public void setFOV(double value)
value
- Renderer.setFOV(double value)
public void setFL(double value)
value
- focal lengthRenderer.setFL(double value)
public void setBgColor(double r, double g, double b)
r
- red component 0..1g
- green component 0..1b
- blue component 0..1public void setOpaque(boolean opaque)
setOpaque
in class javax.swing.JComponent
public void addLight(double x, double y, double z, double r, double g, double b)
Arguments x,y,z indicate light direction. Arguments r,g,b indicate light direction.
Renderer.addLight(double x,double y,double z,
double r,double g,double b)
public void identity()
public Matrix m()
public void pop()
public void push()
public void rotateX(double t)
t
- angle in radianspublic void rotateY(double t)
t
- angle in radianspublic void rotateZ(double t)
t
- angle in radianspublic void scale(double x, double y, double z)
x
- x scale factory
- y scale factorz
- z scale factorpublic void transform(Geometry s)
Geometry
s.
s
- Geometry objectpublic void translate(double[] v)
v
- an array of three doubles representing translations
in the x,y,z directions.public void translate(double x, double y, double z)
x
- - translation in the x direction.y
- - translation in the y direction.z
- - translation in the z direction.public int pull(Geometry s, double x0, double x1, double x2, double y0, double y1, double y2, double z0, double z1, double z2)
0 - beginning, 1 - middle, 2 - end. To indicate infinity (a constant transformation) set two adjacent parameters to the same value. Setting all three parameters to the same value transforms the shape geometry consistently across the entire axis of the parameters.
s
- shape object to be deformedx0
- location of beginning of deformation along the x axisx1
- location of beginning of deformation along the x axisx2
- location of beginning of deformation along the x axisy0
- location of beginning of deformation along the y axisy1
- location of beginning of deformation along the y axisy2
- location of beginning of deformation along the y axisz0
- location of beginning of deformation along the z axisz1
- location of beginning of deformation along the z axisz2
- location of beginning of deformation along the z axis
Geometry.pull(render.Matrix, double, double, double, double, double, double, double, double, double)
public void init()
initialize()
.
initialize()
public void initialize()
public void start()
public void stop()
public void run()
run
in interface java.lang.Runnable
public void renderFrame()
public void paintComponent(java.awt.Graphics g)
paintComponent
in class javax.swing.JComponent
g
- Specifies the output device.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |