Here's the testcase...
/* * A hacked version of Sun's HelloUniverse.java */ import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import com.sun.j3d.utils.geometry.ColorCube; import com.sun.j3d.utils.universe.*; import javax.media.j3d.*; import javax.vecmath.*; public class NonPassiveTest extends JFrame { 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)); // simpleBehavior SimpleBehavior sbeh = new SimpleBehavior(); BoundingSphere bounds = new BoundingSphere( new Point3d(), Double.POSITIVE_INFINITY ); sbeh.setSchedulingBounds( bounds ); objRoot.addChild( sbeh ); // Have Java 3D perform optimizations on this scene graph. objRoot.compile(); return objRoot; } public NonPassiveTest() { init(); } public void init() { JPanel panel = new JPanel(); panel.setLayout(new BorderLayout()); GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration(); Canvas3D c = new Canvas3D(config); panel.add( c, BorderLayout.CENTER ); JButton button = new JButton( "Choose Color" ); button.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent e ) { Color newColor = JColorChooser.showDialog( NonPassiveTest.this, "Choose Color", Color.black ); } }); panel.add( button, BorderLayout.NORTH ); this.getContentPane().add( panel ); this.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); this.pack(); this.setSize( 200, 200 ); this.setVisible( true ); // 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 class SimpleBehavior extends Behavior { // Wakeup condition - framecount = 0 -> wakeup on every frame // // passive or active ? // WakeupOnElapsedFrames wakeup = new WakeupOnElapsedFrames(100, false); // WakeupOnElapsedFrames wakeup = new WakeupOnElapsedFrames(0, true); WakeupOnElapsedFrames wakeup = new WakeupOnElapsedFrames(10000); public SimpleBehavior() { setEnable(true); } // Called to init the behavior public void initialize() { // Set the trigger for the behavior wakeupOn(wakeup); } // Called every time the behavior is activated public void processStimulus(java.util.Enumeration critera) { wakeupOn(wakeup); } } // // The following allows NonPassiveTest to be run as an application // as well as an applet // public static void main(String[] args) { new NonPassiveTest(); } } =========================================================================== 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".