import processing.opengl.*; import anar.*; /* * 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); CSpline.globalRender.splineRes.set(12); initForm(); } void initForm(){ // ////////////////////////////////////////// // ////////////////////////////////////////// // Initial SHAPE all = new Obj(); Transform t = new Transform(); t.add(new Translate(10,0,0)); t.add(new RotateY((float)Math.PI/6)); t.add(new RotateX((float)Math.PI/6)); Pts line = new Pts(); Pt ori = Anar.Pt(0,0,0); Pt last = ori; for (int i = 0; i<10; i++){ Transform oriT = new Transform(ori,t); Transform reallign = new Transform(last,ori,oriT); PtDER newPt = Anar.Pt(ori); newPt.apply(reallign); line.add(newPt); last = ori; ori = newPt; // flush(); // println(Anar.rndi(tz.size())); } CSpline nCs = new CSpline(line,.1f); all.add(nCs); Translate tt = new Translate(10,0.1f,0.1f); for (int i = 0; i<20; i++){ CSpline nC2 = new CSpline(new Pts(nCs),.1f); nC2.apply(tt); all.add(nC2); nCs = nC2; } // ////////////////////////////////////////// // HIRARCHY Anar.camTarget(all); // println(all.parentList()); mySliders = new Sliders(t); mySliders.add(tt); } void draw(){ background(200); all.draw(); mySliders.draw(); }