import processing.opengl.*; import anar.*; import java.util.ArrayList; /* * Example for Anar library by Guillaume LaBelle + Julien Nembrini * http://anar.ch */ Obj all = new Obj(); Sliders mySliders; 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); RenderSpline.splineRes.set(12); initForm(); } void initForm(){ // ////////////////////////////////////////// // ////////////////////////////////////////// // Initial SHAPE all = new Obj(); ArrayList tr = new ArrayList(); tr.add(new Translate(10,0,0)); tr.add(new Translate(20,0,0)); tr.add(new Translate(30,0,0)); tr.add(new Translate( -10,0,0)); tr.add(new Translate( -20,0,0)); tr.add(new Translate( -30,0,0)); tr.add(new Translate(0,10,0)); tr.add(new Translate(0,20,0)); tr.add(new Translate(0,30,0)); tr.add(new Translate(0, -10,0)); tr.add(new Translate(0, -20,0)); tr.add(new Translate(0, -30,0)); ArrayList tz = new ArrayList(); // tz.add(new RotateX(.1f)); // tz.add(new RotateX(.2f)); // tz.add(new RotateX(.3f)); tz.add(new RotateY((float)Math.PI/6)); tz.add(new RotateY((float)Math.PI/3)); tz.add(new RotateY((float)Math.PI/2)); tz.add(new RotateZ((float)Math.PI/6)); tz.add(new RotateZ((float)Math.PI/3)); tz.add(new RotateZ((float)Math.PI/2)); Pts line = new Pts(); Pt ori = Anar.Pt(0,0,0); for (int i = 0; i<200; i++){ PtDER newPt = Anar.Pt(ori); newPt.apply((Transform)tr.get(Anar.rndi(tr.size()))); newPt.apply(new Transform(ori,(Transform)tz.get(Anar.rndi(tz.size())))); line.add(newPt); ori = newPt; // flush(); // println(Anar.rndi(tz.size())); } CSpline nCs = new CSpline(line,.1f); all.add(nCs); // ////////////////////////////////////////// // HIRARCHY Anar.camTarget(all); mySliders = new Sliders(); for (int i = 0; i