package p5;
import anar.*;



import processing.core.PApplet;

/**
 * @author goo
 */
public class ExampleSquare02 extends PApplet {

  /*
   * Example for Anar library by Guillaume LaBelle + Julien Nembrini
   * http://anar.ch
   */


  Pt      a;
  RotateZ r;
  Param   n;


  Obj     obj;
  Sliders mySlider;

  public void setup(){
    size(800,400,OPENGL);
    Anar.init(this);
    Scene.autoSeek = false;

    initForm();
  }

  void initForm(){
    // definition of shape parameters

    // starting point
    a = Anar.Pt( -60, -60);

    // rotation
    r = new RotateZ(1.57f);

    reset();
  }

  void reset(){
    // construction of shape
    obj = new Obj();

    Pt axis = a;
    // create square
    Face f = new Face();

    f.add(axis);
    for (int i = 0; i<4; i++){
      axis = Anar.Pt(axis,r);
      f.add(axis);
    }

    obj.add(f);

    // define sliders for shape
    mySlider = new Sliders(obj);
  }


  public void draw(){
    background(153);

    obj.draw();
    mySlider.draw();
  }

  public static void main(String[] args){
    PApplet.main(new String[]{ExampleSquare02.class.getName()});
  }


  // interactivity related stuff
  public void keyPressed(){

    switch(key){
      case 'q':
        reset();
      break;
      case 'w':
        initForm();
      break;
      case 'e':
      break;
      case 'r':
      break;

      // (gll) edited implemented (should be oneDay inside Ogg main class
      case 'a':
        Autolisp.export(obj,this);
      break;

    }

  }

}
