m3g06
Class TexturingSample

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

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

Displays different shapes with textures and allows changing texture parameters interactively.

Author:
Claus Hoefele

Field Summary
private  int currentFilter
          Current filter mode.
private  int currentMesh
          Current mesh.
private  int currentWrapping
          Current wrapping mode.
private static int FILTER_HIGH
          Texture filter with high quality.
private static int FILTER_LOW
          Texture filter with low quality.
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 display.
private static int MESH_CUBE
          Cube is displayed.
private static int MESH_CYLINDER
          Cylinder is displayed.
private static int MESH_SPHERE
          Sphere is displayed.
private static int MESH_TEAPOT
          Teapot is displayed.
private  javax.microedition.m3g.Transform meshTransform
          The mesh's transformation.
private static int NUMBER_OF_FILTERS
          Number of filter modes.
private static int NUMBER_OF_MESHES
          Number of meshes.
private static int NUMBER_OF_WRAPPINGS
          Number of wrapping modes.
private  boolean perspectiveCorrection
          Stores whether perspective correction is enabled or not.
private  javax.microedition.m3g.PolygonMode polygonMode
          Polygon mode component of appearance.
private  float rotX
          Current rotation value.
private  float rotY
          Current rotation value.
private  javax.microedition.m3g.Texture2D texture
          The mesh's texture.
private static int WRAPPING_CLAMP
          Texture is clamped.
private static int WRAPPING_FULL
          Texture is stretched to cover the entire surface.
private static int WRAPPING_REPEAT
          Texture is tiled.
 
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
TexturingSample()
          Constructor.
 
Method Summary
private  javax.microedition.m3g.Mesh createMesh(int meshId, javax.microedition.m3g.PolygonMode polygonMode, javax.microedition.m3g.Texture2D texture)
          Creates a mesh based on the given ID.
 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 setFiltering(javax.microedition.m3g.Texture2D texture, int filterMode)
          Sets the filter parameters of the given texture.
private  void setWrapping(javax.microedition.m3g.Texture2D texture, int wrappingMode)
          Sets the wrapping parameters of the given texture.
 
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

mesh

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


rotX

private float rotX
Current rotation value.


rotY

private float rotY
Current rotation value.


meshTransform

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


texture

private javax.microedition.m3g.Texture2D texture
The mesh's texture.


polygonMode

private javax.microedition.m3g.PolygonMode polygonMode
Polygon mode component of appearance.


perspectiveCorrection

private boolean perspectiveCorrection
Stores whether perspective correction is enabled or not.


MESH_CUBE

private static final int MESH_CUBE
Cube is displayed.

See Also:
Constant Field Values

MESH_SPHERE

private static final int MESH_SPHERE
Sphere is displayed.

See Also:
Constant Field Values

MESH_CYLINDER

private static final int MESH_CYLINDER
Cylinder is displayed.

See Also:
Constant Field Values

MESH_TEAPOT

private static final int MESH_TEAPOT
Teapot is displayed.

See Also:
Constant Field Values

NUMBER_OF_MESHES

private static final int NUMBER_OF_MESHES
Number of meshes.

See Also:
Constant Field Values

currentMesh

private int currentMesh
Current mesh.


WRAPPING_FULL

private static final int WRAPPING_FULL
Texture is stretched to cover the entire surface.

See Also:
Constant Field Values

WRAPPING_CLAMP

private static final int WRAPPING_CLAMP
Texture is clamped.

See Also:
Constant Field Values

WRAPPING_REPEAT

private static final int WRAPPING_REPEAT
Texture is tiled.

See Also:
Constant Field Values

NUMBER_OF_WRAPPINGS

private static final int NUMBER_OF_WRAPPINGS
Number of wrapping modes.

See Also:
Constant Field Values

currentWrapping

private int currentWrapping
Current wrapping mode.


FILTER_LOW

private static final int FILTER_LOW
Texture filter with low quality.

See Also:
Constant Field Values

FILTER_HIGH

private static final int FILTER_HIGH
Texture filter with high quality.

See Also:
Constant Field Values

NUMBER_OF_FILTERS

private static final int NUMBER_OF_FILTERS
Number of filter modes.

See Also:
Constant Field Values

currentFilter

private int currentFilter
Current filter 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

TexturingSample

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

createMesh

private javax.microedition.m3g.Mesh createMesh(int meshId,
                                               javax.microedition.m3g.PolygonMode polygonMode,
                                               javax.microedition.m3g.Texture2D texture)
Creates a mesh based on the given ID.

Parameters:
meshId - mesh ID.
polygonMode - polygon mode.
texture - texture image.
Returns:
Mesh new mesh.

setWrapping

private void setWrapping(javax.microedition.m3g.Texture2D texture,
                         int wrappingMode)
Sets the wrapping parameters of the given texture.

Parameters:
texture - texture.
wrappingMode - wrapping mode.

setFiltering

private void setFiltering(javax.microedition.m3g.Texture2D texture,
                          int filterMode)
Sets the filter parameters of the given texture.

Parameters:
texture - texture.
filterMode - filter mode.

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.