package testlr;

import java.awt.BorderLayout;
import java.awt.GraphicsConfiguration;
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.*;
import javax.vecmath.*;
import java.awt.Dimension;
import java.awt.GraphicsEnvironment;
import javax.swing.JWindow;
import com.sun.j3d.utils.geometry.ColorCube;

public class TestLR extends JWindow implements Runnable
{
   View view;
    private Canvas3D canvas;
    private GraphicsContext3D gc = null, gcAnu=null;
    private SimpleUniverse u = null;
    static Dimension screenSize =java.awt.
                                 Toolkit.
                                 getDefaultToolkit().
                                 getScreenSize();
   Color3f green  = new Color3f(0.0f, 1.0f, 0.0f);
   Color3f blue  = new Color3f(0.0f, 0.0f, 1.0f);
   Color3f red  = new Color3f(1.0f, 0.0f, 0.0f);
   Color3f black  = new Color3f(0.0f, 0.0f, 0.0f);
   int numOfArray = 300;
   double height=1.8, radius=1.4, step=1.0;
   long shortTime=1, longTime=1;

    public void renderTwo()
    {
	if (gc == null)
        {
	 gc = canvas.getGraphicsContext3D();
	}
        gc.setBufferOverride(true);
    //    gc.setStereoMode(gc.STEREO_BOTH);
	gc.clear();
        gc.setStereoMode(GraphicsContext3D.STEREO_LEFT);
        gc.draw(new ColorCube(0.3));
            // This left eye Cube can be viewed
        gc.setStereoMode(GraphicsContext3D.STEREO_RIGHT);
        gc.draw(new ColorCube(0.1));
            // This right eye Cube can not be viewed
	canvas.swap();
    }

    public void run()
    {
     while (true)
      {
       renderTwo();
      }
    }

    public TestLR()
    {
     super();
        GraphicsConfigTemplate3D g3d = new GraphicsConfigTemplate3D();
        g3d.setStereo(GraphicsConfigTemplate3D.REQUIRED);
        canvas = new Canvas3D(SimpleUniverse.getPreferredConfiguration());
        canvas.stopRenderer();

        canvas.setStereoEnable(true);
        canvas.setDoubleBufferEnable(true);
        getContentPane().add(canvas, BorderLayout.CENTER);

	u = new SimpleUniverse(canvas);
        u.getViewingPlatform().setNominalViewingTransform();
        u.getViewer().getView().setMinimumFrameCycleTime(0);
	new Thread(this).start();
    }
  public static void main(String[] args)
  {
     TestLR win = new TestLR();
     java.awt.Dimension screenSize = java.awt.Toolkit.
                                     getDefaultToolkit().
                                     getScreenSize();
     win.setSize(screenSize.width, screenSize.height);
     win.setVisible(true);
  }
}
