package java3d;

/**
 * Title:
 * Description:
 * Copyright:    Copyright (c) 2001
 * Company:
 * @author
 * @version 1.0
 */
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 com.sun.j3d.utils.geometry.ColorCube;
import javax.media.j3d.*;
import javax.vecmath.*;

public class Lesson2 extends Applet {

  public Lesson2() {
        setLayout(new BorderLayout());
        Canvas3D canvas3D = new Canvas3D(null);
        add("Center", canvas3D);

        BranchGroup scene = createSceneGraph();

        // SimpleUniverse is a Convenience Utility class
        SimpleUniverse simpleU = new SimpleUniverse(canvas3D);

	// This will move the ViewPlatform back a bit so the
	// objects in the scene can be viewed.
        simpleU.getViewingPlatform().setNominalViewingTransform();

        simpleU.addBranchGraph(scene);
  }
     private BranchGroup createSceneGraph() {
	// Create the root of the branch graph
	BranchGroup objRoot = new BranchGroup();
        //TriangleArray ta = new TriangleArray(3, TriangleArray.COORDINATES | TriangleArray.COLOR_3);

        GeometryArray ta = new PointArray(4, QuadArray.COORDINATES | QuadArray.COLOR_3);
        //GeometryArray ta = new QuadArray(4, QuadArray.COORDINATES | QuadArray.COLOR_3);

        ta.setCoordinate(0, new Point3f(-0.50f, 0.50f, 0.0f)); // Top Left
        ta.setCoordinate(1, new Point3f(0.50f, 0.50f, 0.0f)); // Top Right
        ta.setCoordinate(2, new Point3f(0.50f, -0.50f, 0.0f)); // Bottom Right
        ta.setCoordinate(3, new Point3f(-0.50f, -0.50f, 0.0f)); // Bottom Left

        Color3f red = new Color3f(1.0f, 0.0f, 0.0f);
        Color3f yellow = new Color3f(0.7f, 0.5f, 0.0f);
        Color3f blue = new Color3f(0.0f, 0.0f, 1.0f);
        Color3f green = new Color3f(0.0f, 1.0f,0.0f);
        ta.setColor(0, red);
        ta.setColor(1, yellow);
        ta.setColor(2, blue);
        ta.setColor(3, green);

//        objRoot.addChild(new ColorCube(0.4f));
	objRoot.addChild(new Shape3D(ta));



	return objRoot;
    } // end of CreateSceneGraph method of Lesson2

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

