Example4.java
上传用户:gyyuli
上传日期:2013-07-09
资源大小:3050k
文件大小:2k
源码类别:

J2ME

开发平台:

Java

  1. import javax.microedition.m3g.*;
  2. /**
  3.  * M3G import and show test.
  4.  *
  5.  * The example loads the FILE_NAME file and takes the first object
  6.  * contained in the file. The object is assumed to be of type World.
  7.  * The world is first animated and then rendered. The actions of the
  8.  * camera depend on the contents of the file.
  9.  */
  10. public class Example4 extends ExampleBase
  11. {
  12.     private static final String FILE_NAME = "cartrack";
  13.     private World iWorld;
  14.     public Example4()
  15.     {
  16.         super(SHOW_RENDER_TIME);
  17.     }
  18.     protected void render(int time)
  19.     {
  20.         iWorld.animate(time);
  21.         iWorld.align(null);
  22. //      iWorld.setAlphaFactor((float)Math.cos(time * 0.001f) * 0.45f + 0.5f);
  23.         Graphics3D.getInstance().render(iWorld);
  24.     }
  25.     protected void initialize()
  26.     {
  27.         iWorld = (World)load(FILE_NAME)[0];
  28.         traverse(iWorld);
  29.     }
  30.     private void traverse(Node aNode)
  31.     {
  32.         if (aNode instanceof Mesh)
  33.         {
  34.             Mesh mesh = (Mesh)aNode;
  35.             for (int i = 0; i < mesh.getSubmeshCount(); i++)
  36.             {
  37.                 Appearance app = mesh.getAppearance(i);
  38.                 CompositingMode cm = new CompositingMode();
  39.                 cm.setBlending(CompositingMode.ALPHA_ADD);
  40.                 app.setCompositingMode(cm);
  41.                 app.setTexture(0, null);
  42.                 Material mat = new Material();
  43.                 mat.setColor(Material.AMBIENT | Material.DIFFUSE | Material.SPECULAR, 0xff000000);
  44.                 mat.setColor(Material.EMISSIVE, 0xff444444);
  45.                 app.setMaterial(mat);
  46.             }
  47.         }
  48.         if (aNode instanceof Group)
  49.         {
  50.             Group group = (Group)aNode;
  51.             for (int i = 0; i < group.getChildCount(); i++)
  52.             {
  53.                 traverse(group.getChild(i));
  54.             }
  55.         }
  56.     }
  57. }