1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
| import java.applet.Applet; import java.awt.BorderLayout; import java.awt.GraphicsConfiguration; import java.awt.Label;
import javax.media.j3d.Appearance; import javax.media.j3d.BoundingSphere; import javax.media.j3d.BranchGroup; import javax.media.j3d.Canvas3D; import javax.media.j3d.DirectionalLight; import javax.media.j3d.PolygonAttributes; import javax.vecmath.Color3f; import javax.vecmath.Point3d; import javax.vecmath.Vector3f;
import com.sun.j3d.utils.applet.MainFrame; import com.sun.j3d.utils.behaviors.vp.OrbitBehavior; import com.sun.j3d.utils.geometry.Box; import com.sun.j3d.utils.geometry.ColorCube; import com.sun.j3d.utils.geometry.Sphere; import com.sun.j3d.utils.universe.SimpleUniverse; import com.sun.j3d.utils.universe.ViewingPlatform;
public class WindowDisplay extends Applet {
private ViewingPlatform ourView; private OrbitBehavior B;
public WindowDisplay() { BranchGroup group = new BranchGroup(); setLayout(new BorderLayout()); PolygonAttributes attr1 = new PolygonAttributes( PolygonAttributes.POLYGON_LINE, PolygonAttributes.CULL_FRONT, 0.0f); PolygonAttributes attr2 = new PolygonAttributes( PolygonAttributes.POLYGON_POINT, PolygonAttributes.CULL_FRONT, 0.0f); GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration(); Canvas3D canvas = new Canvas3D(config); add("North", new Label("This is the top")); add("Center", canvas); add("South", new Label("This is the bottom")); SimpleUniverse universe = new SimpleUniverse(canvas); Color3f light1Color = new Color3f(1.8f, 0.1f, 0.1f); BoundingSphere bounds = new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 100.0); Vector3f light1Direction = new Vector3f(4.0f, -7.0f, -12.0f); DirectionalLight light1 = new DirectionalLight(light1Color, light1Direction); light1.setInfluencingBounds(bounds); group.addChild(light1); Appearance appearance = new Appearance(); appearance.setPolygonAttributes(attr1); group.addChild(new Sphere(0.4F,appearance)); ourView = universe.getViewingPlatform(); ourView.setNominalViewingTransform(); B = new OrbitBehavior(canvas); B.setSchedulingBounds(bounds); ourView.setViewPlatformBehavior(B); universe.addBranchGraph(group); }
public static void main(String[] args) { WindowDisplay demo = new WindowDisplay(); new MainFrame(demo, 400, 400); } } |