package p5;
import anar.*;



import java.util.ArrayList;

import processing.core.PApplet;

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

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


  Obj     all = new Obj();

  Sliders mySliders;

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

    // Setup DEFAULT rendering of our scene
    Pts.globalRender = new RenderPtsAll();
    Pt.globalRender = new RenderPtCross(new AColor(255,155,155),1);
    Anar.drawAxis(true);
    CSpline.globalRender.splineRes.set(5);

    initForm();
  }


  void initForm(){

    // //////////////////////////////////////////
    // //////////////////////////////////////////
    // Initial SHAPE

    all = new Obj();

    Param inv = new Param( -1);

    Param d1 = new Param(10);
    Param d2 = new Param(20);
    Param d3 = new Param(30);

    Param r1 = new ParamMul(d1,inv);
    Param r2 = new ParamMul(d2,inv);
    Param r3 = new ParamMul(d3,inv);

    ArrayList tr = new ArrayList();

    tr.add(new Translate(d1,0));
    tr.add(new Translate(d1,1));
    tr.add(new Translate(d1,2));

    tr.add(new Translate(r1,0));
    tr.add(new Translate(r1,1));
    tr.add(new Translate(r1,2));

    tr.add(new Translate(d2,0));
    tr.add(new Translate(d2,1));
    tr.add(new Translate(d2,2));

    tr.add(new Translate(r2,0));
    tr.add(new Translate(r2,1));
    tr.add(new Translate(r2,2));

    tr.add(new Translate(d3,0));
    tr.add(new Translate(d3,1));
    tr.add(new Translate(d3,2));

    tr.add(new Translate(r3,0));
    tr.add(new Translate(r3,1));
    tr.add(new Translate(r3,2));

    Pts line = new Pts();
    Pt ori = Anar.Pt(0,0,0);

    for (int i = 0; i<1000; i++){
      PtDER newPt = Anar.Pt(ori);
      newPt.apply((Transform)tr.get(Anar.rndi(tr.size())));
      // newPt.apply(new Origine(ori,tz.get(Anar.rndi(tz.size()))));
      line.add(newPt);
      ori = newPt;
    }

    all.add(line);

    // //////////////////////////////////////////
    // HIRARCHY
    Anar.camTarget(all);
    mySliders = new Sliders(all);
    // print(all.parentList());


  }


  public void draw(){
    background(200);
    all.draw();
    mySliders.draw();
  }

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

}

