m3g10
Class M3gFileSample

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

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

Loads 3D models from M3G files that were created with Blender.

Author:
Claus Hoefele

Field Summary
private  int currentModel
          Current model.
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.Mesh mesh
          Mesh for rotation.
private static java.lang.String[][] MODELS
          M3G models.
private static int USER_ID_MESH
          User ID to find the mesh inside the scene graph.
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
M3gFileSample()
          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  javax.microedition.m3g.World loadScene(java.lang.String url)
          Loads a scene graph from the given URL and adjusts the active camera to match the current device.
protected  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
Object that represents the 3D world.


mesh

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


USER_ID_MESH

private static final int USER_ID_MESH
User ID to find the mesh inside the scene graph.

See Also:
Constant Field Values

MODELS

private static final java.lang.String[][] MODELS
M3G models.


currentModel

private int currentModel
Current model.


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

M3gFileSample

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

loadScene

private javax.microedition.m3g.World loadScene(java.lang.String url)
Loads a scene graph from the given URL and adjusts the active camera to match the current device. This method expects a World object to be the first object in the M3G file.

Parameters:
url - the scene graph's URL.
Returns:
scene graph.

keyPressed

protected void keyPressed(int keyCode)
Handles key presses.

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

render

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

Parameters:
graphics - graphics context for drawing.

drawMenu

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

Parameters:
graphics - graphics context for drawing.