package p5;
import anar.*;



import processing.core.PApplet;

public class Test04iSurfSubdiv extends PApplet {

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


  Obj myObj;

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

    initForm();
  }

  public void initForm(){

    // CUBE
    Obj cube = new Obj();

    Face base = new Face();
    base.add(Anar.Pt( -30,30,0));
    base.add(Anar.Pt( -30, -30,0));
    base.add(Anar.Pt(30, -30,0));
    base.add(Anar.Pt(30,30,0));

    cube.add(new Extrude(base,60));


    // sudivide
    myObj = new SubdivSurf(cube,0,new SubdivCatmullClark());

    Anar.sliders(cube);
    Anar.camTarget(myObj);
  }

  public void draw(){
    background(255);
    myObj.draw();
  }

  public void keyPressed(){
    if(key==' ')
      initForm();
    else
      if(key=='s')
        ((SubdivSurf)myObj).subdivide();
      else
        if(key=='f')
          ((SubdivSurf)myObj).refine();
        else
          if(key=='r')
            ((SubdivSurf)myObj).reset();
  }

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

