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

Reply via email to