Advertisement
Guest User

TreeEngine.java

a guest
Oct 4th, 2011
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.28 KB | None | 0 0
  1. import java.io.*;
  2. import java.util.*;
  3. import com.threed.jpct.*;
  4. import com.threed.jpct.util.*;
  5.  
  6. public class TreeEngine
  7. {
  8.     private Vector<Object3D> trees;
  9.  
  10.     public TreeEngine(World world, Object3D ground)
  11.     {
  12.         char c = File.separatorChar;
  13.  
  14.         Object3D tree = Loader.load3DS("res" + c + "tree.3ds", 3f)[0];
  15.         tree.rotateX((float) (-Math.PI / 2));
  16.         tree.setSpecularLighting(true);
  17.         tree.setShadingMode(Object3D.SHADING_GOURAUD);
  18.         tree.setCollisionMode(Object3D.COLLISION_CHECK_SELF);
  19.         tree.setCollisionOptimization(Object3D.COLLISION_DETECTION_OPTIMIZED);
  20.  
  21.         trees = new Vector<Object3D>();
  22.         for (int i = 0; i < 25; i++)
  23.         {
  24.             trees.add(tree.cloneObject());
  25.             trees.get(i).rotateY((float) (-Math.PI / Math.random() * 2));
  26.             trees.get(i).setCenter(ground.getTransformedCenter());
  27.             trees.get(i).translate(new SimpleVector(Math.random() * 800f - 400f, -200f, Math.random() * 800f - 400f));
  28.             trees.get(i).build();
  29.             world.addObject(trees.get(i));
  30.  
  31.             SimpleVector dir = new SimpleVector(0f, 400f, 0f);
  32.             dir = trees.get(i).checkForCollisionEllipsoid(dir, new SimpleVector(1, 1, 1), 1);
  33.             trees.get(i).translate(dir);
  34.         }
  35.     }
  36.  
  37.     public void setShadows(ShadowHelper sh)
  38.     {
  39.         for (int i = 0; i < trees.size(); i++)
  40.         {
  41.             sh.addCaster(trees.get(i));
  42.         }
  43.     }
  44. }
  45.  
  46.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement