m3g09
Class PickingSample

java.lang.Object
  extended by javax.microedition.lcdui.Displayable
      extended by javax.microedition.lcdui.Canvas
          extended by javax.microedition.lcdui.game.GameCanvas
              extended by m3g09.PickingSample
All Implemented Interfaces:
Sample

public class PickingSample
extends javax.microedition.lcdui.game.GameCanvas
implements Sample

Picks meshes in viewport coordinates.

Author:
Claus Hoefele

Field Summary
private  javax.microedition.lcdui.Image crosshair
          Image object for crosshair.
private  javax.microedition.lcdui.Graphics graphics
          2D graphics singleton used for rendering.
private  javax.microedition.m3g.Graphics3D graphics3d
          3D graphics singleton used for rendering.
private  javax.microedition.m3g.World world
          Object that represents the 3D world.
 
Fields inherited from class javax.microedition.lcdui.game.GameCanvas
DOWN_PRESSED, FIRE_PRESSED, GAME_A_PRESSED, GAME_B_PRESSED, GAME_C_PRESSED, GAME_D_PRESSED, LEFT_PRESSED, RIGHT_PRESSED, UP_PRESSED
 
Fields inherited from class javax.microedition.lcdui.Canvas
DOWN, FIRE, GAME_A, GAME_B, GAME_C, GAME_D, KEY_NUM0, KEY_NUM1, KEY_NUM2, KEY_NUM3, KEY_NUM4, KEY_NUM5, KEY_NUM6, KEY_NUM7, KEY_NUM8, KEY_NUM9, KEY_POUND, KEY_STAR, LEFT, RIGHT, UP
 
Constructor Summary
PickingSample()
          Constructor.
 
Method Summary
private  void checkHit()
          Checks whether a ray that originates in the middle of the viewport and has the same direction as the active camera intersects with a mesh.
 void destroy()
          Destroys the sample.
private  void drawMenu(javax.microedition.lcdui.Graphics graphics)
          Draws a menu for the current key assignments.
 void init()
          Initializes the sample.
protected  void keyPressed(int keyCode)
          Handles key presses.
private  void render(javax.microedition.lcdui.Graphics graphics)
          Renders the sample.
 
Methods inherited from class javax.microedition.lcdui.game.GameCanvas
flushGraphics, flushGraphics, getGraphics, getKeyStates, paint
 
Methods inherited from class javax.microedition.lcdui.Canvas
getGameAction, getKeyCode, getKeyName, hasPointerEvents, hasPointerMotionEvents, hasRepeatEvents, hideNotify, isDoubleBuffered, keyReleased, keyRepeated, pointerDragged, pointerPressed, pointerReleased, repaint, repaint, serviceRepaints, setCommandListener, setFullScreenMode, showNotify, sizeChanged
 
Methods inherited from class javax.microedition.lcdui.Displayable
addCommand, getHeight, getTicker, getTitle, getWidth, isShown, removeCommand, setTicker, setTitle
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

crosshair

private javax.microedition.lcdui.Image crosshair
Image object for crosshair.


world

private javax.microedition.m3g.World world
Object that represents the 3D world.


graphics3d

private javax.microedition.m3g.Graphics3D graphics3d
3D graphics singleton used for rendering.


graphics

private javax.microedition.lcdui.Graphics graphics
2D graphics singleton used for rendering.

Constructor Detail

PickingSample

public PickingSample()
Constructor.

Method Detail

init

public void init()
Initializes the sample.

Specified by:
init in interface Sample

destroy

public void destroy()
Destroys the sample.

Specified by:
destroy in interface Sample

render

private void render(javax.microedition.lcdui.Graphics graphics)
Renders the sample.

Parameters:
graphics - graphics context for rendering.

keyPressed

protected void keyPressed(int keyCode)
Handles key presses.

Overrides:
keyPressed in class javax.microedition.lcdui.Canvas
Parameters:
keyCode - key code.

checkHit

private void checkHit()
Checks whether a ray that originates in the middle of the viewport and has the same direction as the active camera intersects with a mesh. If there's a hit, the mesh is colored red.


drawMenu

private void drawMenu(javax.microedition.lcdui.Graphics graphics)
Draws a menu for the current key assignments.

Parameters:
graphics - graphics context for drawing.