/**
 * 
 */
package p5;
import anar.*;




import processing.core.PApplet;


/**
 * @author gll
 */
public class Test00xFSweepAlongPathCircumCircle extends PApplet {

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


  
  Obj   obj;
  Obj	develop;
  
  Param angle;

  float sizeFrenet = 20f;

  public void setup(){
    size(1000,500,OPENGL);
    Anar.init(this);

    initForm();
    

  }


  void initForm(){

    obj = new Obj();
    develop = new Obj();
    
    // /////////////////////////////
    Pts ptsA = new Pts();
    Pt origin;
    ptsA.add(origin = Anar.Pt(0,0,0,"Origin"));

    // /////////////////////////////
    Param angle = new Param(PI/14f,-PI/4,PI/4);
    Anar.sliders(angle);
    
    Transform t = new Transform();
    t.rotateZ(angle);
    t.translate(Anar.PtNull(5,0,1));

    // /////////////////////////////
    Pt previous = origin;

    for (int i = 0; i<100; i++){
      Pt newPt = Anar.Pt(previous);
      newPt.apply(t);
      ptsA.add(newPt);
      previous = newPt;
    }

    // Spiral created
    // /////////////////////////////
    // /////////////////////////////
    obj.add(ptsA);



    // /////////////////////////////

    for (int i = 1; i<100; i++){
        Pt p0 = obj.line(0).pt(i-1);
        Pt p1 = obj.line(0).pt(i);
        Pt p2 = obj.line(0).pt(i+1);

        Face circle = new Circle(p0,p1,p2);
        
        develop.add(circle);
    }

//    obj = new SweepTwoPaths(ptsA,ptsB);
//    obj.add(ptsA);
//    obj.add(ptsB);
//    TextIO.write("test.lsp",obj.toAutocad());
    Anar.camTarget(obj);

  }
  

  

  public void draw(){
    background(255);
    obj.draw();
    develop.draw();
  }

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

}

