import processing.opengl.*; import processing.opengl.*; import anar.*; // import geometry.Point3D; import java.util.ArrayList; import rad.*; /* * Example for Anar library by Guillaume LaBelle + Julien Nembrini * http://anar.ch */ Anar goo; Obj myObject; Pts ptsA; Pts ptsB; Pt origin; RadEngine simThread; void setup(){ // size(screen.width,screen.height,OPENGL); size(1000,500,OPENGL); Anar.init(this); myObject = generatorBirdNest00(); // simThread = new RadianceEngine( (RadObserver) // this,((Object)this).getClass().getName(), 1, ""); simThread = new RadEngine(this,50f); simThread.simulate(myObject); RadEngine.measureBack = true; } Obj generatorBirdNest00(){ Obj outputFmz; ptsA = new Pts(); ptsB = new Pts(); ptsA.add(origin = Anar.Pt(5, -5, -50,"Origine")); println(origin); ArrayList spiral = new ArrayList(); Transform tmp; // Transform 1 tmp = new Transform(); tmp.translate(10,1,1); tmp.rotateZ(PI/16f); spiral.add(tmp); // Transform 2 tmp = new Transform(); tmp.translate(10,1,1); tmp.rotateZ(PI/12f); spiral.add(tmp); // Transform 3 tmp = new Transform(); tmp.translate(10,1,1); tmp.rotateZ(PI/8f); spiral.add(tmp); tmp = new Transform(); tmp.translate( -10,1,1); tmp.rotateZ( -PI/16f); spiral.add(tmp); // println(spiralTransform); Pt previous = origin; for (int i = 0; i<10; i++){ // Pt q = Anar.Pt(previous,spiralA); // Pt q = Anar.Pt(previous,spiralTransform); if(random(10)<4) tmp = (Transform)spiral.get((int)random(spiral.size())); Transform ori = new Transform(previous,tmp); Pt q = Anar.Pt(previous,ori); ptsA.add(q); previous = q; } // ArrayList base = new ArrayList(); Transform baseTransform; baseTransform = new Transform(); baseTransform.translate(Anar.PtNull(0,0, -15)); // base.add(baseTransform); /* * baseTransform = new Transform(); * baseTransform.translate(Anar.PtNull(0,0,-5)); base.add(baseTransform); */ // Iterator i = ptsA.iterator(); for (int i = 0; i