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);
}
}