package p5;
import anar.*;




import processing.core.PApplet;

public class Test03eFoldingParametrized extends PApplet {

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

  public void setup(){
    size(800,400,OPENGL);
    
    Anar.init(this);
    Anar.drawAxis(true);
    
    initForm();
  }


  void initForm(){

    Anar.sliders.add(new Param(PI,PI,2*PI));

    Transform tx = new TranslateX(10);
    Transform ty = new TranslateY(10);
    
    Anar.sliders.add(tx,ty);
    
    Pt a = Anar.Pt(0,0,0);
    Pt b = Anar.Pt(a,tx);
    Pt c = Anar.Pt(b,tx).apply(ty);
    Pt d = Anar.Pt(a,tx).apply(ty);
    Pt e = Anar.Pt(a,ty);
    
    Face shape = new Face(a,b,c,d,e);

    shape.rotateY(Anar.sliders.get(0));
    shape.fill(255,0,0);
    
    Anar.add(shape);

    Face f = shape;

    for (int i = 0; i<25; i++)
      Anar.add(f = new Face(Anar.face(0),new Transform(f.pt(3),f.pt(1),f.pt(2)).postTransform()).fill(255,255,0));

    for (int i = 0; i<15; i++)
      Anar.add(new Obj(Anar.objEnd()).apply(tx).apply(tx).apply(ty));


  }


  public void draw(){
    background(155);

    Anar.draw();
    if(frameCount%100==0)
    Anar.camTarget(Anar.main);
  }


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

