At 02:21 PM 7/19/00 -0400, Mark McKay wrote:
>Anyone out there with sample code illustrating the direct use of a
>VirtualUniverse? I'm trying to get around using a SimpleUniverse.
>
>MarkX-Mozilla-Status2: 00000000
>Message-ID: <[EMAIL PROTECTED]>
>Date: Wed, 19 Jul 2000 13:36:47 -0400
>From: Mark McKay <[EMAIL PROTECTED]>
>X-Mailer: Mozilla 4.72 [en] (Win98; I)
>X-Accept-Language: en
>MIME-Version: 1.0
>To: [EMAIL PROTECTED]
>Subject: using VirtualUniverse directly
>Content-Type: text/plain; charset=us-ascii
>Content-Transfer-Encoding: 7bit
>
>Anyone out there with sample code illustrating the direct use of a
>VirtualUniverse? I'm trying to get around using a SimpleUniverse.
>
>Mark
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
import javax.media.j3d.*;
import javax.vecmath.*;
import com.sun.j3d.utils.geometry.*;
import com.sun.j3d.utils.image.TextureLoader;
import com.sun.j3d.utils.universe.*;
import com.sun.j3d.utils.picking.behaviors.*;
import com.sun.j3d.utils.picking.*;
import com.sun.j3d.utils.applet.MainFrame;
public class Virtual extends Applet {
public Virtual(){
this.setLayout(new GridLayout(1, 3, 0, 0));
GraphicsConfigTemplate3D template = new GraphicsConfigTemplate3D();
GraphicsConfiguration gc1 =
GraphicsEnvironment.getLocalGraphicsEnvironment()
.getDefaultScreenDevice().getBestConfiguration(template);
Canvas3D mainCanvas = new Canvas3D(gc1);
View view = new View();
PhysicalBody physicalBody = new PhysicalBody();
PhysicalEnvironment physicalEnvironment = new PhysicalEnvironment();
ViewPlatform viewPlatform = new ViewPlatform();
view.setPhysicalBody(physicalBody);
view.setPhysicalEnvironment(physicalEnvironment);
view.attachViewPlatform(viewPlatform);
view.addCanvas3D(mainCanvas);
Transform3D offset = new Transform3D();
offset.set(new Vector3f(0.0f, 0.0f, 2.0f));
TransformGroup vpTrans = new TransformGroup(offset);
vpTrans.addChild(viewPlatform);
BranchGroup vpRoot = new BranchGroup();
vpRoot.addChild(vpTrans);
BranchGroup sceneRoot = createSceneGraph(mainCanvas);
//*set up universe
VirtualUniverse universe = new VirtualUniverse();
Locale locale = new Locale(universe);
locale.addBranchGraph(sceneRoot);
locale.addBranchGraph(vpRoot);
this.add(mainCanvas);
}
public BranchGroup createSceneGraph(Canvas3D canvas) {
BranchGroup objRoot = new BranchGroup();
TransformGroup objTrans = new TransformGroup();
objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
objTrans.setCapability(TransformGroup.ENABLE_PICK_REPORTING);
objRoot.addChild(objTrans);
objTrans.addChild(new ColorCube(0.4));
BoundingSphere bounds =
new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0);
PickRotateBehavior behavior1 = new PickRotateBehavior(objRoot, canvas,
bounds);
objRoot.addChild(behavior1);
PickZoomBehavior behavior2 = new PickZoomBehavior(objRoot, canvas,
bounds);
objRoot.addChild(behavior2);
PickTranslateBehavior behavior3 = new PickTranslateBehavior(objRoot,
canvas, bounds);
objRoot.addChild(behavior3);
objRoot.compile();
return objRoot;
}
public static void main(String args[]) {
Frame frame = new MainFrame(new Virtual(), 512, 512);
}
}
Jack S. Gundrum
Visualization Group
Center for Academic Computing
Penn State University
Email:[EMAIL PROTECTED]
Phone:(814)865-1863