m3g09
Class BillboardSample

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.BillboardSample
All Implemented Interfaces:
Sample

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

This sample displays a field of flowers to demonstrate two alternative billboard techniques: daisies and knotweeds use screen-aligned Sprite3Ds; tulips and irises use axis-aligned, textured quads.

Author:
Claus Hoefele

Field Summary
private  javax.microedition.m3g.Group alignNode
          Group used for alignment.
private  javax.microedition.m3g.Group cameraGroup
          Group that contains camera.
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
          Root node of 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
BillboardSample()
          Constructor.
 
Method Summary
private  javax.microedition.m3g.Node createGrass()
          Creates a patch of grass for the flower field.
private  javax.microedition.m3g.Group createSprite3D(int number)
          Creates a number of billboards using screen-aligned Sprite3Ds.
private  javax.microedition.m3g.Group createTexturedQuad(int number)
          Creates a number of billboards using axis-aligned, textured quads.
 void destroy()
          Destroys the sample.
private  javax.microedition.m3g.Group distribute(javax.microedition.m3g.Group group)
          Distributes the children of the given group randomly on the x-z plane.
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

world

private javax.microedition.m3g.World world
Root node of world.


cameraGroup

private javax.microedition.m3g.Group cameraGroup
Group that contains camera.


alignNode

private javax.microedition.m3g.Group alignNode
Group used for alignment.


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

BillboardSample

public BillboardSample()
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

createGrass

private javax.microedition.m3g.Node createGrass()
Creates a patch of grass for the flower field.

Returns:
grass field.

createSprite3D

private javax.microedition.m3g.Group createSprite3D(int number)
Creates a number of billboards using screen-aligned Sprite3Ds.

Parameters:
number - number of billboards to create.
Returns:
Group node with billboards as children.

createTexturedQuad

private javax.microedition.m3g.Group createTexturedQuad(int number)
Creates a number of billboards using axis-aligned, textured quads.

Parameters:
number - number of billboards to create.
Returns:
Group node with billboards as children.

distribute

private javax.microedition.m3g.Group distribute(javax.microedition.m3g.Group group)
Distributes the children of the given group randomly on the x-z plane.

Parameters:
group - Group with children to distribute.
Returns:
same object as given as parameter.

render

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

Parameters:
graphics - graphics context for drawing.

keyPressed

protected void keyPressed(int keyCode)
Handles key presses.

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

drawMenu

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

Parameters:
graphics - graphics context for drawing.