Hi!
Strange thing!
the sun's example HelloUniverse.java can NOT be run as
applet after I add a background image to the scene.
(the browser states: applet not initialized)
But it can be run as application.
here is the code, if remove the background image, it
can be run as applet as well as application.
Dose anybody know what happened to it? Is that a bug?
import com.sun.j3d.utils.image.TextureLoader;
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.event.*;
import java.awt.GraphicsConfiguration;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.geometry.ColorCube;
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.*;
import javax.vecmath.*;
public class HelloUniverse extends Applet {
private SimpleUniverse u = null;
public BranchGroup createSceneGraph() {
// Create the root of the branch graph
BranchGroup objRoot = new BranchGroup();
// Create the TransformGroup node and initialize it
to the
// identity. Enable the TRANSFORM_WRITE capability so
that
// our behavior code can modify it at run time. Add
it to
// the root of the subgraph.
TransformGroup objTrans = new TransformGroup();
objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
objRoot.addChild(objTrans);
// Create a simple Shape3D node; add it to the scene
graph.
objTrans.addChild(new ColorCube(0.4));
// Create a new Behavior object that will perform the
// desired operation on the specified transform and
add
// it into the scene graph.
Transform3D yAxis = new Transform3D();
Alpha rotationAlpha = new Alpha(-1, 4000);
RotationInterpolator rotator =
new RotationInterpolator(rotationAlpha, objTrans,
yAxis,0.0f, (float) Math.PI*2.0f);
BoundingSphere bounds =
new BoundingSphere(new Point3d(0.0,0.0,0.0),
100.0);
rotator.setSchedulingBounds(bounds);
objRoot.addChild(rotator);
/**** insert a background image here *********/
TransformGroup bgTG = new TransformGroup();
objRoot.addChild(bgTG);
TextureLoader loader=new
TextureLoader("background.jpg", this);
ImageComponent2D image=loader.getImage();
Background bg = new Background(image);
// bg.setCapability(Background.SCALE_FIT_MIN );
bg.setApplicationBounds(new BoundingSphere(new
Point3d(), 1000.0));
bgTG.addChild(bg);
objRoot.compile();
return objRoot;
}
public HelloUniverse() {
}
public void init() {
setLayout(new BorderLayout());
GraphicsConfiguration config =
SimpleUniverse.getPreferredConfiguration();
Canvas3D c = new Canvas3D(config);
add("Center", c);
// Create a simple scene and attach it to the virtual
universe
BranchGroup scene = createSceneGraph();
u = new SimpleUniverse(c);
// This will move the ViewPlatform back a bit
so the
// objects in the scene can be viewed.
u.getViewingPlatform().setNominalViewingTransform();
u.addBranchGraph(scene);
}
public void destroy() {
u.removeAllLocales();
}
//
// The following allows HelloUniverse to be run as
an application
// as well as an applet
//
public static void main(String[] args) {
new MainFrame(new HelloUniverse(), 256, 256);
}
}
__________________________________________________
Do You Yahoo!?
Get personalized email addresses from Yahoo! Mail
http://personal.mail.yahoo.com/
===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST". For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".