//Title: JBuilder3FirstApplet.java //Version: 1.0 //Copyright: Copyright (c) 2000 ENDO Yasuyuki //Author: ENDO Yasuyuki //Company: javaopen.org //Description: JBuilder 3 Foundation First Java 3D Applet package jb3first; import java.awt.*; import java.awt.event.*; import java.applet.*; import javax.media.j3d.Canvas3D; import javax.media.j3d.BranchGroup; import javax.media.j3d.TransformGroup; import javax.media.j3d.BoundingSphere; import javax.vecmath.Point3d; import com.sun.j3d.utils.universe.SimpleUniverse; import com.sun.j3d.utils.applet.MainFrame; import com.sun.j3d.utils.geometry.ColorCube; import com.sun.j3d.utils.behaviors.mouse.MouseRotate; import com.sun.j3d.utils.behaviors.mouse.MouseZoom; import com.sun.j3d.utils.behaviors.mouse.MouseTranslate; public class JBuilder3FirstApplet extends Applet { boolean isStandalone = false; //Get a parameter value public String getParameter(String key, String def) { return isStandalone ? System.getProperty(key, def) : (getParameter(key) != null ? getParameter(key) : def); } //Construct the applet public JBuilder3FirstApplet() { } //Initialize the applet public void init() { try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } //Component initialization private void jbInit() throws Exception { this.setLayout(new BorderLayout()); GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration(); Canvas3D canvas = new Canvas3D(config); this.add(canvas, BorderLayout.CENTER); SimpleUniverse universe = new SimpleUniverse(canvas); universe.getViewingPlatform().setNominalViewingTransform(); BranchGroup scene = createSceneGraph(); universe.addBranchGraph(scene); } private BranchGroup createSceneGraph() { BranchGroup root = new BranchGroup(); TransformGroup trans = new TransformGroup(); trans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); trans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); root.addChild(trans); BoundingSphere bounds = new BoundingSphere( new Point3d(), 100.0 ); MouseRotate rotetor = new MouseRotate(trans); rotetor.setSchedulingBounds(bounds); root.addChild(rotetor); MouseTranslate translate = new MouseTranslate(trans); translate.setSchedulingBounds(bounds); root.addChild(translate); MouseZoom zoomer = new MouseZoom(trans); zoomer.setSchedulingBounds(bounds); root.addChild(zoomer); trans.addChild(new ColorCube(0.4)); return root; } //Start the applet public void start() { } //Stop the applet public void stop() { } //Destroy the applet public void destroy() { } //Get Applet information public String getAppletInfo() { return "Applet Information"; } //Get parameter info public String[][] getParameterInfo() { return null; } //Main method public static void main(String[] args) { JBuilder3FirstApplet applet = new JBuilder3FirstApplet(); applet.isStandalone = true; Frame frame = new com.sun.j3d.utils.applet.MainFrame(applet, 500, 500); } }