Hi,
Bug 4363148 is submitted for this problem.
Thanks for your bug report.
- Kelvin
----------------
Java 3D Team
Sun Microsystems Inc.
>From: "Kasparian, Raffi J." <[EMAIL PROTECTED]>
>To: "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]>, "'Discussion list for Java
3D API'" <[EMAIL PROTECTED]>
>Subject: Bug with Switch/SharedGroup ?
>Date: Wed, 16 Aug 2000 13:35:04 -0400
>MIME-Version: 1.0
>
>I think I have uncovered a bug regarding Switch with a child SharedGroup.
>
>Here is a test program. Setting boolean willCrash = true generates the
>following Exception.
>
>java.lang.NullPointerException
> at
>javax.media.j3d.ContainsNodesList.getContainsNodes(ContainsNodesList.java:28
>)
> at
>javax.media.j3d.Shape3DRetained.setLive(Shape3DRetained.java:1092)
> at javax.media.j3d.GroupRetained.doSetLive(GroupRetained.java:1475)
> at javax.media.j3d.GroupRetained.setLive(GroupRetained.java:1209)
> at
>javax.media.j3d.SharedGroupRetained.setLive(SharedGroupRetained.java:108)
> at javax.media.j3d.LinkRetained.setLive(LinkRetained.java:140)
> at javax.media.j3d.GroupRetained.doSetLive(GroupRetained.java:1475)
> at javax.media.j3d.SwitchRetained.setLive(SwitchRetained.java:370)
> at javax.media.j3d.GroupRetained.doSetLive(GroupRetained.java:1475)
> at
>javax.media.j3d.TransformGroupRetained.setLive(TransformGroupRetained.java:3
>22)
> at javax.media.j3d.GroupRetained.doSetLive(GroupRetained.java:1475)
> at
>javax.media.j3d.BranchGroupRetained.setLive(BranchGroupRetained.java:101)
> at javax.media.j3d.Locale.doAddBranchGraph(Locale.java:183)
> at javax.media.j3d.Locale.addBranchGraph(Locale.java:159)
> at
>com.sun.j3d.utils.universe.SimpleUniverse.addBranchGraph(SimpleUniverse.java
>:235)
> at TestSwitch.<init>(TestSwitch.java:49)
> at TestSwitch.main(TestSwitch.java:62)
>
>Raffi
>
>/************************TestSwitch.java****************************/
>import java.applet.Applet;
>import java.awt.*;
>import java.awt.event.*;
>import com.sun.j3d.utils.applet.MainFrame;
>import com.sun.j3d.utils.geometry.*;
>import com.sun.j3d.utils.universe.*;
>import javax.media.j3d.*;
>import javax.vecmath.*;
>
>public class TestSwitch extends Applet{
>
> boolean willCrash = true;
> Switch switchG;
>
> public BranchGroup createScene(){
> BranchGroup root = new BranchGroup();
> TransformGroup TG1 = new TransformGroup();
> TransformGroup TG2 = new TransformGroup();
> Transform3D T = new Transform3D();
> switchG = new Switch();
> switchG.setCapability( Switch.ALLOW_SWITCH_READ );
> switchG.setCapability( Switch.ALLOW_SWITCH_WRITE );
> SharedGroup cube = new SharedGroup();
> cube.addChild( new ColorCube(0.1) );
>
> T.set( new Vector3d( -0.5, 0, 0 ) );
> TG1.setTransform( T );
> TG1.addChild( new Link( cube ) );
>
> T.set( new Vector3d( 0.5, 0, 0 ) );
> TG2.setTransform( T );
> TG2.addChild( switchG );
> switchG.addChild( new Link( cube ) );
>
> if( willCrash ){
> root.addChild( TG1 );
> root.addChild( TG2 );
> }else{
> root.addChild( TG2 );
> root.addChild( TG1 );
> }
> return root;
> }
> public TestSwitch() {
> GraphicsConfiguration config =
>SimpleUniverse.getPreferredConfiguration();
> Canvas3D canvas = new Canvas3D(config);
> SimpleUniverse universe = new SimpleUniverse(canvas);
> universe.getViewingPlatform().setNominalViewingTransform();
> universe.addBranchGraph( createScene() );
>
> setLayout(new BorderLayout());
> add("Center", canvas);
> Button switcher = new Button( "Switch" );
> switcher.addActionListener( new ActionListener(){
> public void actionPerformed( ActionEvent e ){
> switchShape();
> }
> });
> add( "South", switcher );
> }
> public static void main( String[] arg ){
> new MainFrame(new TestSwitch(), 256, 256);
> }
> public void switchShape(){
> int mask = switchG.getWhichChild() == Switch.CHILD_ALL ?
>Switch.CHILD_NONE : Switch.CHILD_ALL;
> switchG.setWhichChild( mask );
> }
>}
>
>
>
>
===========================================================================
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".