import java.applet.Applet;
import java.awt.*;
import javax.media.j3d.*;
import javax.vecmath.*;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.behaviors.mouse.MouseRotate;
import com.sun.j3d.utils.universe.*;
public class threeface extends Applet {
  BranchGroup createSceneGraph(){
  BranchGroup objroot=new BranchGroup();
  
  float[] vert={
  0.0f,0.0f,0.0f,0.0f,0.0f,0.5f,
  0.5f,0.0f,0.0f,0.0f,0.5f,0.0f
  };
  float[] color={
  1.0f,0.0f,0.0f,0.0f,1.0f,0.0f,
  0.0f,0.0f,1.0f,0.0f,1.0f,1.0f,
  
  };
  int[] indices={
  0,1,2,1,0,3,3,2,1,2,0,3,
  
  };
  int[] colorindices={
  0,0,0,1,1,1,
  2,2,2,3,3,3,
  };
  IndexedTriangleArray tri=new IndexedTriangleArray(vert.length,
  TriangleArray.COORDINATES|TriangleArray.COLOR_3,indices.length);
  tri.setCoordinate(0, vert);
  tri.setColor(0, color);
  tri.setCoordinateIndices(0, indices);
  tri.setColorIndices(0, colorindices);
  Shape3D shape=new Shape3D();
  shape.setGeometry(tri);
  TransformGroup objtrans=new TransformGroup();
  objtrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
  objtrans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
  objtrans.addChild(shape);
  objroot.addChild(objtrans);
  BoundingSphere bounds=new BoundingSphere(new Point3d(0,0,0),100);
  Color3f bgcolor=new Color3f(1.0f,1.0f,1.0f);
  Background bg=new Background(bgcolor);
  bg.setApplicationBounds(bounds);
  objroot.addChild(bg);
  objroot.compile();
  return objroot;
  }
  public threeface(){
  setLayout(new BorderLayout());
  GraphicsConfiguration config=SimpleUniverse.getPreferredConfiguration();
  Canvas3D c=new Canvas3D(config);
  add("Center",c);
  BranchGroup scene=createSceneGraph();
      SimpleUniverse u=new SimpleUniverse(c);
  u.getViewingPlatform().setNominalViewingTransform();
  u.addBranchGraph(scene);
  }
  public static void main(String[] args){
  new MainFrame(new threeface(),200,200);
  }
}