m3g08
Class MaterialsSample

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

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

Demonstrates how different materials change the look of a mesh.

Author:
Claus Hoefele

Field Summary
private static int AMBIENT
          Material color for ambient reflection.
private  javax.microedition.m3g.Light ambientLight
          Ambient light for the scene.
private static int COLOR_ALL
          Color target full.
private static int COLOR_AMBIENT
          Color target diffuse.
private static int COLOR_DIFFUSE
          Color target specular.
private static int COLOR_EMISSIVE
          Color target ambient.
private static int COLOR_SPECULAR
          Color target emissive.
private  int colorTarget
          Current color target.
private static int DIFFUSE
          Material color for diffuse reflection.
private static int EMISSIVE
          Material color for emission.
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  boolean isVertexTrackingEnabled
          Flag whether vertex tracking is enabled.
private  javax.microedition.m3g.Light light
          First light for the scene.
private  float lightRotY
          Current rotation value.
private  javax.microedition.m3g.Transform lightTransform
          The first light's transformation.
private  javax.microedition.m3g.Material material
          Current material.
private  javax.microedition.m3g.Mesh mesh
          The mesh for display.
private  javax.microedition.m3g.Transform meshTransform
          The mesh's transformation.
private static int NUMBER_OF_COLOR_TARGETS
          Number of color targets.
private static float SHININESS
          Shininess constant for specular reflection.
private static int SPECULAR
          Material color for specular reflection.
 
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
MaterialsSample()
          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.Light light, javax.microedition.m3g.Light ambientLight, javax.microedition.m3g.Transform lightTransform, float lightRotY)
          Transforms the light and adds it to the Graphics3D context.
private  void setMaterial(javax.microedition.m3g.Mesh mesh, javax.microedition.m3g.Material material, int colorTarget)
          Sets the mesh's material.
 
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
The mesh for display.


meshTransform

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


light

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


lightTransform

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


ambientLight

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


lightRotY

private float lightRotY
Current rotation value.


material

private javax.microedition.m3g.Material material
Current material.


AMBIENT

private static final int AMBIENT
Material color for ambient reflection.

See Also:
Constant Field Values

DIFFUSE

private static final int DIFFUSE
Material color for diffuse reflection.

See Also:
Constant Field Values

SPECULAR

private static final int SPECULAR
Material color for specular reflection.

See Also:
Constant Field Values

EMISSIVE

private static final int EMISSIVE
Material color for emission.

See Also:
Constant Field Values

SHININESS

private static final float SHININESS
Shininess constant for specular reflection.

See Also:
Constant Field Values

COLOR_ALL

private static final int COLOR_ALL
Color target full.

See Also:
Constant Field Values

COLOR_EMISSIVE

private static final int COLOR_EMISSIVE
Color target ambient.

See Also:
Constant Field Values

COLOR_AMBIENT

private static final int COLOR_AMBIENT
Color target diffuse.

See Also:
Constant Field Values

COLOR_SPECULAR

private static final int COLOR_SPECULAR
Color target emissive.

See Also:
Constant Field Values

COLOR_DIFFUSE

private static final int COLOR_DIFFUSE
Color target specular.

See Also:
Constant Field Values

NUMBER_OF_COLOR_TARGETS

private static final int NUMBER_OF_COLOR_TARGETS
Number of color targets.

See Also:
Constant Field Values

colorTarget

private int colorTarget
Current color target.


isVertexTrackingEnabled

private boolean isVertexTrackingEnabled
Flag whether vertex tracking is enabled.


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

MaterialsSample

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

setMaterial

private void setMaterial(javax.microedition.m3g.Mesh mesh,
                         javax.microedition.m3g.Material material,
                         int colorTarget)
Sets the mesh's material.

Parameters:
mesh - mesh.
material - Material object.
colorTarget - color target that will be enabled in the mesh.

setLight

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

Parameters:
light - light one.
ambientLight - light two.
lightTransform - transform object for light one.
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.