m3g08
Class LightingSample

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

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

A sphere lit with different light sources.

Author:
Claus Hoefele

Field Summary
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.Light light
          Light for the scene.
private static int LIGHT_AMBIENT
          Light mode ambient.
private static int LIGHT_DIRECTIONAL
          Light mode directional.
private static int LIGHT_OMNI
          Light mode omni.
private static int LIGHT_SPOT
          Light mode spot.
private  int lightMode
          Current light mode.
private  float lightRotY
          Current rotation value.
private  javax.microedition.m3g.Transform lightTransform
          The light's transformation.
private  javax.microedition.m3g.Mesh mesh
          Mesh for display.
private  javax.microedition.m3g.Transform meshTransform
          The mesh's transformation.
private static int NUMBER_OF_LIGHTS
          Number of light sources.
 
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
LightingSample()
          Constructor.
 
Method Summary
 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.
private  void setLight(javax.microedition.m3g.Transform lightTransform, float lightRotY)
          Transforms the light and adds it to the Graphics3D context.
private  void setLightMode(javax.microedition.m3g.Light light, int mode)
          Sets the light mode.
 
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, setFullScreenMode, showNotify, sizeChanged
 
Methods inherited from class javax.microedition.lcdui.Displayable
addCommand, getHeight, getTicker, getTitle, getWidth, isShown, removeCommand, setCommandListener, setTicker, setTitle
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

mesh

private javax.microedition.m3g.Mesh mesh
Mesh for display.


meshTransform

private javax.microedition.m3g.Transform meshTransform
The mesh's transformation.


light

private javax.microedition.m3g.Light light
Light for the scene.


lightTransform

private javax.microedition.m3g.Transform lightTransform
The light's transformation.


lightRotY

private float lightRotY
Current rotation value.


LIGHT_AMBIENT

private static final int LIGHT_AMBIENT
Light mode ambient.

See Also:
Constant Field Values

LIGHT_DIRECTIONAL

private static final int LIGHT_DIRECTIONAL
Light mode directional.

See Also:
Constant Field Values

LIGHT_OMNI

private static final int LIGHT_OMNI
Light mode omni.

See Also:
Constant Field Values

LIGHT_SPOT

private static final int LIGHT_SPOT
Light mode spot.

See Also:
Constant Field Values

NUMBER_OF_LIGHTS

private static final int NUMBER_OF_LIGHTS
Number of light sources.

See Also:
Constant Field Values

lightMode

private int lightMode
Current light mode.


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

LightingSample

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

setLightMode

private void setLightMode(javax.microedition.m3g.Light light,
                          int mode)
Sets the light mode.

Parameters:
light - light to be modified.
mode - light mode.

setLight

private void setLight(javax.microedition.m3g.Transform lightTransform,
                      float lightRotY)
Transforms the light and adds it to the Graphics3D context.

Parameters:
lightTransform - transform object to modify.
lightRotY - rotation value around the y axis.

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.

drawMenu

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

Parameters:
graphics - graphics context for drawing.