With the following code, I expect 2 white lines and one green.
Instead I get 3 multi-colored lines. I have tried all kinds of parameters.

What is wrong?


   public BranchGroup createSceneGraph()
         {
                         BranchGroup objRoot = new BranchGroup();

           LineArray line_view = new LineArray(20, LineArray.COORDINATES |
LineArray.COLOR_3);

       line_view.setCoordinate( 0, new Point3f(-1.0f, 0.5f, -1.0f));
       line_view.setColor(0,white);
       line_view.setCoordinate( 1, new Point3f(1.0f,  0.5f, -1.0f));
       line_view.setColor(1,white);

       line_view.setCoordinate( 2, new Point3f(-1.0f, 0.0f, -1.0f));
       line_view.setColor(2,green);
       line_view.setCoordinate( 3, new Point3f(1.0f, 0.0f, -1.0f));
       line_view.setColor(3,green);

       line_view.setCoordinate( 4, new Point3f(-1.0f, -0.5f, -1.0f));
       line_view.setColor(4,white);
       line_view.setCoordinate( 5, new Point3f(1.0f,  -0.5f, -1.0f));
       line_view.setColor(5,white);

       objRoot.addChild(new Shape3D(line_view));

       objRoot.compile();

                                return objRoot;
    }

import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.event.*;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.*;
import javax.vecmath.*;

public class WWrong extends Applet
{

        public static final Color3f green  = new Color3f(0.0f,1.0f,0.0f);
        public static final Color3f white    = new Color3f(1.0f,1.0f,1.0f);

   public BranchGroup createSceneGraph()
         {
                         BranchGroup objRoot = new BranchGroup();

           LineArray line_view = new LineArray(20, LineArray.COORDINATES | 
LineArray.COLOR_3);

       line_view.setCoordinate( 0, new Point3f(-1.0f, 0.5f, -1.0f));
       line_view.setColor(0,white);
       line_view.setCoordinate( 1, new Point3f(1.0f,  0.5f, -1.0f));
       line_view.setColor(1,white);

       line_view.setCoordinate( 2, new Point3f(-1.0f, 0.0f, -1.0f));
       line_view.setColor(2,green);
       line_view.setCoordinate( 3, new Point3f(1.0f, 0.0f, -1.0f));
       line_view.setColor(3,green);

       line_view.setCoordinate( 4, new Point3f(-1.0f, -0.5f, -1.0f));
       line_view.setColor(4,white);
       line_view.setCoordinate( 5, new Point3f(1.0f,  -0.5f, -1.0f));
       line_view.setColor(5,white);

       objRoot.addChild(new Shape3D(line_view));

       objRoot.compile();

                                return objRoot;
    }

    public WWrong()
    {
        setLayout(new BorderLayout());
        Canvas3D c = new Canvas3D(null);
        add("Center", c);

        BranchGroup scene = createSceneGraph();
        SimpleUniverse u = new SimpleUniverse(c);

        u.getViewingPlatform().setNominalViewingTransform();
        u.addBranchGraph(scene);
    }

    public static void main(String[] args)
    {
                        Frame frame = new MainFrame(new WWrong(), 256, 256);
    }
}

Reply via email to