You are on page 1of 2

import java.applet.

Applet;
import java.awt.FlowLayout;
import java.awt.GraphicsConfiguration;
import javax.media.j3d.BoundingSphere;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.Canvas3D;
import javax.media.j3d.PhysicalBody;
import javax.media.j3d.Transform3D;
import javax.media.j3d.TransformGroup;
import javax.media.j3d.View;
import javax.vecmath.Point3d;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.behaviors.keyboard.KeyNavigatorBehavior;
import com.sun.j3d.utils.behaviors.mouse.MouseRotate;
import com.sun.j3d.utils.behaviors.mouse.MouseTranslate;
import com.sun.j3d.utils.geometry.ColorCube;
import com.sun.j3d.utils.universe.SimpleUniverse;
public class StereoCube extends Applet {
Canvas3D c1 = new Canvas3D(SimpleUniverse.getPreferredConfiguration());
Canvas3D c2 = new Canvas3D(SimpleUniverse.getPreferredConfiguration());
static MainFrame mf;
private SimpleUniverse u = null;
private BranchGroup scene = null;
public void init() {
setLayout(new FlowLayout());
GraphicsConfiguration config =
SimpleUniverse.getPreferredConfiguration();

c1.setSize(180, 180);
c1.setMonoscopicViewPolicy(View.LEFT_EYE_VIEW);
add(c1);

c2.setSize(180, 180);
c2.setMonoscopicViewPolicy(View.RIGHT_EYE_VIEW);
add(c2);
// Create a simple scene and attach it to the virtual universe
scene = createSceneGraph(0);
u = new SimpleUniverse(c1);
View view0 = u.getViewer().getView();
View view = new View();
PhysicalBody myBod = view0.getPhysicalBody();
myBod.setLeftEyePosition(new Point3d(-.006,0.0, 0.0)); // default is(-0.
033, 0.0, 0.0)
myBod.setRightEyePosition(new Point3d(+.006,0.0, 0.0));
view.setPhysicalBody(myBod);
view.setPhysicalEnvironment(view0.getPhysicalEnvironment());
view.attachViewPlatform(u.getViewingPlatform().getViewPlatform());
view.addCanvas3D(c2);

// This will move the ViewPlatform back a bit so the
// objects in the scene can be viewed.
u.getViewingPlatform().setNominalViewingTransform();

setTransformGroup(tg).0).addChild(behavior3).setSize((minDimension .ALLOW_TRANSFORM_WRITE). objTrans. behavior3. } } .println("setsize " + width +".(minDimension . int minDimension = Math. c2. behavior. height).setCapability(TransformGroup.min(width/2.1000. int height) { System. } validate().setTransformGroup(tg).setSchedulingBounds(new BoundingSphere( new Point3d(). BoundingSphere bounds = new BoundingSphere(new Point3d(0.setCapability(TransformGroup. TransformGroup objTrans = new TransformGroup(). } public static void main(String[] args) { mf = new MainFrame(new StereoCube().20)). behavior3. tg.0)). 400. objTrans. objTrans. height).setSchedulingBounds(bounds).20). tg.0). TransformGroup tg = new TransformGroup(t). } public void setSize(int width.4)).20).ALLOW_TRANSFORM_READ).0.out.addChild(objTrans). Transform3D t = new Transform3D(). u. behavior.(minDimension . super. } public BranchGroup createSceneGraph(int i) { // Create the root of the branch graph BranchGroup objRoot = new BranchGroup(). } public StereoCube() { } public void destroy() { u.setCapability(TransformGroup. return objRoot.20)). // Create the translate behavior node MouseTranslate behavior3 = new MouseTranslate().removeAllLocales().addChild(keyNavBeh).addBranchGraph(scene).addChild(tg). objTrans.addChild(behavior).setSize(width. objTrans. if (mf != null) { mf. c1. 200).setSchedulingBounds(bounds).0. objRoot.0.appletResize(width.ALLOW_TRANSFORM_WRITE). keyNavBeh. KeyNavigatorBehavior keyNavBeh = new KeyNavigatorBehavior(tg). MouseRotate behavior = new MouseRotate(). height). 100." +height). tg.addChild(new ColorCube(0.setSize((minDimension .0.