I got the same problem (as said in a previous post <Multiple Canvas3D>), but
don't get any solution ! So if someone could help this would be greatly
appreciated.

Thanks.

> Can anyone confirm if this problem really exists or am I confused , and if
are there some solution ?
>
> Thanks.
>
>
> > Hi everyone,
> >
> > The problem arises when two or more Universes are working together, then
> > if the ColoringAttributes from one shape is changed (under some
> > circumstances) the following message is showed:
> >
>
> --------------------------------------------------------------------------
-------------------------------------
> >
> > java.lang.IndexOutOfBoundsException: Index: -1, Size: 0
> >         at java.util.ArrayList.RangeCheck(ArrayList.java, Compiled Code)
> >
> >         at java.util.ArrayList.remove(ArrayList.java:372)
> >         at
> > javax.media.j3d.RenderMolecule.addRenderAtom(RenderMolecule.java:851)
> >
> >         at
> > javax.media.j3d.RenderBin.findRenderMolecule(RenderBin.java:3115)
> >         at
> > javax.media.j3d.RenderBin.reInsertRenderAtom(RenderBin.java:2627)
> >         at
> >
javax.media.j3d.RenderBin.processRenderMoleculeNodeComponentChanged(RenderBi
n.java:1000)
> >
> >         at javax.media.j3d.RenderBin.processMessages(RenderBin.java:759)
> >
> >         at
> >
javax.media.j3d.StructureUpdateThread.doWork(StructureUpdateThread.java:79)
> >
> >         at javax.media.j3d.J3dThread.run(J3dThread.java:256)
>
> --------------------------------------------------------------------------
-------------------------------------
> >
> > This code reproduces the bug pressing two times the "Change Color"
> > Button: (only tested for W98 and Java3D 1.2 Beta1).
> >
> > kind regards
> > Dani del Rio.
> > ---------------------------------------------
> >
> > import javax.swing.*;
> > import javax.swing.event.*;
> > import java.awt.*;
> > import java.awt.event.*;
> > import javax.media.j3d.*;
> > import javax.vecmath.Color3f;
> > import com.sun.j3d.utils.geometry.Box;
> > import com.sun.j3d.utils.universe.*;
> >
> > public class TestBug {
> >
> >         private Appearance app;
> >         private ColoringAttributes ca;
> >         private PolygonAttributes pa;
> >         private Box box;
> >
> >         public TestBug() {
> >
> >                 createAppearance();
> >                 box = new Box(0.2f, 0.2f, 0.2f, app);
> >                 BranchGroup root = new BranchGroup();
> >                 root.addChild(box);
> >
> >                 GraphicsConfiguration config =
> > SimpleUniverse.getPreferredConfiguration();
> >                 Canvas3D canvas = new Canvas3D(config);
> >                 canvas.setSize(new Dimension(400, 300));
> >                 SimpleUniverse universe = new SimpleUniverse(canvas);
> >
> > universe.getViewingPlatform().setNominalViewingTransform();
> >                 universe.addBranchGraph(root);
> >
> >                 JButton b1 = new JButton("Change Color");
> >                 b1.addActionListener(new ActionListener() {
> >                         public void actionPerformed(ActionEvent e) {
> >                                 ca.setColor(1.0f, 1.0f, 0.0f);
> >                         }
> >                 });
> >
> >                 JFrame frame = new JFrame("Frame 1");
> >                 frame.addWindowListener(new WindowAdapter() {
> >                         public void windowClosing(WindowEvent e) {
> >                                 System.exit(0);
> >                         }
> >                 });
> >                 Container pane1 = frame.getContentPane();
> >                 pane1.add(canvas, BorderLayout.CENTER);
> >                 pane1.add(b1, BorderLayout.SOUTH);
> >                 frame.setSize(new Dimension(400, 300));
> >                 frame.pack();
> >                 frame.setVisible(true);
> >
> >                 // ***************************************
> >                 // ***************************************
> >                 Canvas3D c = new Canvas3D(config);
> >                 c.setSize(new Dimension(400, 300));
> >                 SimpleUniverse uni = new SimpleUniverse(c);
> >                 uni.getViewingPlatform().setNominalViewingTransform();
> >
> >                 JButton button = new JButton("Change Color");
> >                 button.addActionListener(new ActionListener() {
> >                         public void actionPerformed(ActionEvent e) {
> >                                 ca.setColor(0.0f, 1.0f, 1.0f);
> >                         }
> >                 });
> >                 JFrame f = new JFrame("Frame 2");
> >                 Container pane = f.getContentPane();
> >                 pane.add(c, BorderLayout.CENTER);
> >                 pane.add(button, BorderLayout.SOUTH);
> >                 f.setSize(new Dimension(400, 300));
> >                 f.pack();
> >                 f.setVisible(true);
> >         }
> >
> >         private void createAppearance() {
> >                 app = new Appearance();
> >
> > app.setCapability(Appearance.ALLOW_COLORING_ATTRIBUTES_READ);
> >
> > app.setCapability(Appearance.ALLOW_COLORING_ATTRIBUTES_WRITE);
> >
> >                 pa = new PolygonAttributes();
> >                 pa.setPolygonMode(PolygonAttributes.POLYGON_LINE);
> >                 pa.setCullFace(PolygonAttributes.CULL_NONE);
> >                 app.setPolygonAttributes(pa);
> >
> >                 ca = new ColoringAttributes();
> >                 ca.setCapability(ColoringAttributes.ALLOW_COLOR_READ);
> >                 ca.setCapability(ColoringAttributes.ALLOW_COLOR_WRITE);
> >                 app.setColoringAttributes(ca);
> >         }
> >
> >         public static void main(String[] args) {
> >                 TestBug test = new TestBug();
> >         }
> > }
> >
> >
===========================================================================
> > 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".
>
>
===========================================================================
> 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".
>

===========================================================================
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".

Reply via email to