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 genStrips extends Applet
{
 public static void main( String args[] )
 {
  new MainFrame( new genStrips(), 400,400);
 }
 public genStrips()
 {
  Canvas3D canvas = new Canvas3D( null );
  setLayout( new BorderLayout() );
  add( "Center", canvas );

  SimpleUniverse sUni = new SimpleUniverse( canvas );
  sUni.getViewingPlatform().setNominalViewingTransform();
  sUni.addBranchGraph( getScene() );
 }
 public BranchGroup getScene()
 {
  BranchGroup branchRoot = new BranchGroup();

  //move the whole scene back along the z axis a little
  Transform3D back = new Transform3D();
  back.set( new Vector3f( 0.0f,0.0f,-2.0f) );
  TransformGroup zMove = new TransformGroup( back );
  branchRoot.addChild( zMove );

  //add the plane made from a triangle strip array
  zMove.addChild( getPlane() );

  branchRoot.compile();
  return branchRoot;
 }
 public Appearance getPlaneAppearance()
 {
  Appearance appearance = new Appearance();
  PolygonAttributes polyAttrib = new PolygonAttributes();

  polyAttrib.setPolygonMode(PolygonAttributes.POLYGON_LINE);
  appearance.setPolygonAttributes(polyAttrib);

  return appearance;
 }
 public Shape3D getPlane()
 {
  TriangleStripArray tsa;
  Point3f coords[] = new Point3f[6];

  //we are only using a single strip with 6 coords
  int stripCounts[] = {6};

  coords[0]=new Point3f( 0.0f,0.0f,0.0f);
  coords[1]=new Point3f( 0.2f,0.2f,0.0f);
  coords[0]=new Point3f( 0.1f,0.3f,-0.2f);
  coords[1]=new Point3f( 0.2f,0.4f,-0.3f);
  coords[0]=new Point3f( 0.1f,0.2f,-0.4f);
  coords[1]=new Point3f( 0.3f,0.5f,-0.6f);

  
  tsa = new TriangleStripArray( 6, TriangleStripArray.COORDINATES, stripCounts);
  tsa.setCoordinates( 0, coords );
  Shape3D tPlane = new Shape3D();
  tPlane.setGeometry( tsa );
  tPlane.setAppearance( getPlaneAppearance() );
  return tPlane;
 }
}