package p5;
import anar.*;




import processing.core.PApplet;

public class Test04tPlatonicPlacement extends PApplet {

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


  boolean record = false;

  

  Sliders mySliders;
  
  Obj baseForm;


  public void setup(){
    size(1000,500,OPENGL);
    Anar.init(this);
    Anar.drawAxis(true);
    Pts.globalRender = new RenderPtsAll();

    Param s1 = new Param(0.1f,0,2);
    Anar.sliders(s1);
    
    Param r1 = new Param(-PI/2f,-PI/2f,PI);
    Anar.sliders(r1);
    
    Param r2 = new Param(0,-PI,PI);
    Anar.sliders(r2);
    
    
    
    Obj plat = new Platonic(2);
    
    Obj baseForm = new Platonic(1).scale(s1);
    Transform reset = new Transform(baseForm.face(0).pt(0),baseForm.face(0).pt(1)).preTransform();
    baseForm = new Obj(baseForm,reset).rotateX(r1).rotateY(r2);
    
    
    
    for(int i=0; i<plat.numOfFaces(); i++)
    {
      Face f = plat.face(i);
      
      for(int j=0; j<f.numOfPts(); j++)
      {
      Transform place = new Transform(f.pt(j%f.numOfPts()), f.pt((j+1)%f.numOfPts()), f.pt((j+2)%f.numOfPts())).postTransform();
      Anar.add(new Obj(baseForm,place));
      }
    }
    
    
    
    //Anar.add(baseForm);
    Anar.add(plat);
    Anar.println(Anar.main);

    Anar.camTarget(Anar.main);

  }


  public void draw(){
    background(155);

    Anar.main.draw();
  }


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