import javax.media.j3d.*; // Canvas3D etc import java.applet.Applet; // Applet import java.awt.BorderLayout; // BorderLayout, Frame import com.sun.j3d.utils.applet.MainFrame; // MainFrame import com.sun.j3d.utils.universe.*; import java.awt.Frame; import com.sun.j3d.utils.behaviors.mouse.*; import javax.vecmath.*; public class Prog3 extends Applet { public Prog3() { setLayout ( new BorderLayout() ); Canvas3D c = new Canvas3D ( null ); add ( "Center", c ); BranchGroup scene = createSceneGraph(); SimpleUniverse u = new SimpleUniverse ( c ); u.getViewingPlatform().setNominalViewingTransform(); u.addBranchGraph ( scene ); } /* from SpinMouse.java */ public TransformGroup defaultMouseGroup() { TransformGroup mouseGroup = new TransformGroup(); mouseGroup.setCapability ( TransformGroup.ALLOW_TRANSFORM_READ ); mouseGroup.setCapability ( TransformGroup.ALLOW_TRANSFORM_WRITE ); BoundingSphere bounds = new BoundingSphere ( new Point3d ( 0.0, 0.0, 0.0 ), 100.0 ); //MouseDrag behavior1 = new MouseDrag ( mouseGroup ); MouseRotate behavior1 = new MouseRotate ( mouseGroup ); mouseGroup.addChild ( behavior1 ); behavior1.setSchedulingBounds ( bounds ); MouseZoom behavior2 = new MouseZoom ( mouseGroup ); mouseGroup.addChild ( behavior2 ); behavior2.setSchedulingBounds ( bounds ); MouseTranslate behavior3 = new MouseTranslate ( mouseGroup ); mouseGroup.addChild ( behavior3 ); behavior3.setSchedulingBounds ( bounds ); return mouseGroup; } public BranchGroup createSceneGraph() { BranchGroup objRoot = new BranchGroup(); TransformGroup objTrans = defaultMouseGroup(); objRoot.addChild ( objTrans ); ColorTetra x = new ColorTetra(); objTrans.addChild ( x ); return objRoot; } public static void main ( String[] args ) { Frame frame = new MainFrame ( new Prog3(), 256, 256 ); } }