T
Thorsten Kiefer
Hi,
my applet runs nicely as stand alone application,
but when I start it in a browser, the VM gets stuck
consuming 100% CPU. Here is the code :
-----------------------------------------------------------------------
<html>
<head>
</head>
<body>
<applet code="org.jdesktop.applet.util.JNLPAppletLauncher"
width=640
height=480
archive="test3d2.jar,
http://download.java.net/media/applet-launcher/applet-launcher.jar,
http://download.java.net/media/java3d/webstart/release/j3d/latest/j3dcore.jar,
http://download.java.net/media/java3d/webstart/release/j3d/latest/j3dutils.jar,
http://download.java.net/media/jogl/builds/archive/jsr-231-webstart-current/
jogl.jar,
http://download.java.net/media/gluegen/webstart/gluegen-rt.jar,
http://download.java.net/media/java3d/webstart/release/vecmath/latest/
vecmath.jar">
<param name="codebase_lookup" value="false">
<param name="subapplet.classname"
value="test3d2.MainApplet">
<param name="subapplet.displayname"
value="My Java 3D Applet">
<param name="jnlpNumExtensions" value="1">
<param name="jnlpExtension1"
value="http://download.java.net/media/java3d/webstart/release/
java3d-latest.jnlp">
<param name="progressbar" value="true">
<param name="noddraw.check" value="true">
</applet>
</body>
</html>
--------------------------------------------------------------------------
package test3d2;
import com.sun.j3d.utils.geometry.ColorCube;
import com.sun.j3d.utils.universe.SimpleUniverse;
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.GraphicsConfiguration;
import javax.media.j3d.Alpha;
import javax.media.j3d.BoundingSphere;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.Canvas3D;
import javax.media.j3d.Node;
import javax.media.j3d.RotationInterpolator;
import javax.media.j3d.Transform3D;
import javax.media.j3d.TransformGroup;
/**
*
* @author thorsten
*/
public class MainApplet extends Applet {
public void init() {
GraphicsConfiguration graphicsConfig =
SimpleUniverse.getPreferredConfiguration();
Canvas3D canvas = new Canvas3D(graphicsConfig);
setLayout(new BorderLayout());
add(canvas,BorderLayout.CENTER);
BranchGroup scene = createSceneGraph();
scene.compile();
SimpleUniverse su = new SimpleUniverse(canvas);
su.getViewingPlatform().setNominalViewingTransform();
su.addBranchGraph(scene);
}
public void start() {
}
public void stop() {
}
public void destroy() {
}
public BranchGroup createSceneGraph(){
Transform3D tr = new Transform3D();
tr.rotX(Math.PI/4.0);
BranchGroup root = new BranchGroup();
TransformGroup tg1 = new TransformGroup(tr);
TransformGroup tg2 = new TransformGroup();
tg2.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
Node n = new ColorCube(0.4);
Alpha rotAlpha = new Alpha(-1,4000);
RotationInterpolator rotator = new
RotationInterpolator(rotAlpha,tg2);
BoundingSphere bounds = new BoundingSphere();
rotator.setSchedulingBounds(bounds);
tg1.addChild(tg2);
tg2.addChild(n);
tg2.addChild(rotator);
root.addChild(tg1);
return root;
}
}
Best regards
Thorsten
my applet runs nicely as stand alone application,
but when I start it in a browser, the VM gets stuck
consuming 100% CPU. Here is the code :
-----------------------------------------------------------------------
<html>
<head>
</head>
<body>
<applet code="org.jdesktop.applet.util.JNLPAppletLauncher"
width=640
height=480
archive="test3d2.jar,
http://download.java.net/media/applet-launcher/applet-launcher.jar,
http://download.java.net/media/java3d/webstart/release/j3d/latest/j3dcore.jar,
http://download.java.net/media/java3d/webstart/release/j3d/latest/j3dutils.jar,
http://download.java.net/media/jogl/builds/archive/jsr-231-webstart-current/
jogl.jar,
http://download.java.net/media/gluegen/webstart/gluegen-rt.jar,
http://download.java.net/media/java3d/webstart/release/vecmath/latest/
vecmath.jar">
<param name="codebase_lookup" value="false">
<param name="subapplet.classname"
value="test3d2.MainApplet">
<param name="subapplet.displayname"
value="My Java 3D Applet">
<param name="jnlpNumExtensions" value="1">
<param name="jnlpExtension1"
value="http://download.java.net/media/java3d/webstart/release/
java3d-latest.jnlp">
<param name="progressbar" value="true">
<param name="noddraw.check" value="true">
</applet>
</body>
</html>
--------------------------------------------------------------------------
package test3d2;
import com.sun.j3d.utils.geometry.ColorCube;
import com.sun.j3d.utils.universe.SimpleUniverse;
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.GraphicsConfiguration;
import javax.media.j3d.Alpha;
import javax.media.j3d.BoundingSphere;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.Canvas3D;
import javax.media.j3d.Node;
import javax.media.j3d.RotationInterpolator;
import javax.media.j3d.Transform3D;
import javax.media.j3d.TransformGroup;
/**
*
* @author thorsten
*/
public class MainApplet extends Applet {
public void init() {
GraphicsConfiguration graphicsConfig =
SimpleUniverse.getPreferredConfiguration();
Canvas3D canvas = new Canvas3D(graphicsConfig);
setLayout(new BorderLayout());
add(canvas,BorderLayout.CENTER);
BranchGroup scene = createSceneGraph();
scene.compile();
SimpleUniverse su = new SimpleUniverse(canvas);
su.getViewingPlatform().setNominalViewingTransform();
su.addBranchGraph(scene);
}
public void start() {
}
public void stop() {
}
public void destroy() {
}
public BranchGroup createSceneGraph(){
Transform3D tr = new Transform3D();
tr.rotX(Math.PI/4.0);
BranchGroup root = new BranchGroup();
TransformGroup tg1 = new TransformGroup(tr);
TransformGroup tg2 = new TransformGroup();
tg2.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
Node n = new ColorCube(0.4);
Alpha rotAlpha = new Alpha(-1,4000);
RotationInterpolator rotator = new
RotationInterpolator(rotAlpha,tg2);
BoundingSphere bounds = new BoundingSphere();
rotator.setSchedulingBounds(bounds);
tg1.addChild(tg2);
tg2.addChild(n);
tg2.addChild(rotator);
root.addChild(tg1);
return root;
}
}
Best regards
Thorsten